Aula-4 Parte 1
Aula-4 Parte 1
Exemplo:
Errado:
IdAluno | Nome | CEP | Cidade
Cidade depende do CEP, não do AlunoID. Deve ser separada.
Correto:
•Tabela Aluno (IdAluno, Nome, IdCEP)
•Tabela CEP (IdCEP, IdCidade)
Analogia:
É como guardar o endereço completo em todos os contatos do
celular, mesmo que vários tenham o mesmo CEP. Melhor guardar
o CEP e puxar a cidade de outro lugar.
SGBDs - Os Gerenciadores dos seus Dados
3. Dependência Funcional
Definição:
É quando o valor de um campo depende
diretamente de outro.
Exemplo:
CPF → Nome
Ou seja, um CPF define exatamente um nome.
Analogia:
É como um código de barras: quando você
passa ele no caixa, ele traz o nome do produto.
Um código → um produto.
SGBDs - Os Gerenciadores dos seus Dados
Definição: Software para gerenciar bancos de dados. "A
database management system (DBMS) is a software
package designed to store, retrieve, and manage data in
a database." (Date, 2004, p. 5).
Funções: definir, manipular, controlar acesso aos dados,
garantir consistência, integridade e segurança.
Tipos: Relacionais (SQL), NoSQL. "Relational databases
are based on the relational model, while NoSQL
databases encompass a wide range of database
technologies that do not follow the relational model."
(Silberschatz et al., 2011, p. 21).
Foco desta aula: SGBDs relacionais (MySQL e
PostgreSQL).
Características: Propriedades ACID (Atomicidade,
Consistência, Isolamento, Durabilidade), linguagem SQL.
"ACID properties are essential for ensuring data integrity
and consistency in database transactions." (Elmasri &
Navathe, 2016, p. 203)
Aplicação: Armazenamento e gerenciamento de dados
em diversos tipos de aplicações, incluindo sistemas de
automação industrial.
Propriedades ACID em Bancos de Dados
Atomicidade Consistência
Transações são Transações mantêm o
executadas por completo banco em estado válido
ou não são executadas
Durabilidade Isolamento
Dados persistem mesmo 4 Transações são isoladas
após falhas do sistema umas das outras
"ACID properties are essential for ensuring data integrity and consistency in database
transactions." (Elmasri & Navathe, 2016, p. 203)
SGBDs - Os Gerenciadores dos seus Dados
SGBDs - Os Gerenciadores dos seus Dados
SGBDs - Os Gerenciadores dos seus Dados
SGBDs - Os Gerenciadores dos seus Dados
MySQL com XAMPP - Um Ambiente Completo para
Desenvolvimento
Instalação do XAMPP
Baixar o instalador do site oficial e seguir os
passos de instalação no Windows
Configuração do MySQL
Acesso ao phpMyAdmin, configuração de
Criação de Bancos e Usuários senha para o root
XAMPP: Pacote de software que inclui Apache, MySQL, PHP. Facilita a instalação e
configuração do MySQL no Windows. "XAMPP is a free and open-source cross-
platform web server solution stack package developed by Apache Friends, consisting
mainly of the Apache HTTP Server, MariaDB database, and interpreters for scripts
written in the PHP and Perl programming languages." (Apache Friends, n.d.).
Requisitos Mínimos: Espaço em disco, memória RAM.
PostgreSQL com Docker - Contêineres
para o seu Banco de Dados
Instalação do Docker Desktop
Baixar e instalar o Docker Desktop para Windows
Criptografia
Utilizar conexões seguras e criptografar dados
sensíveis armazenados no banco.
Configuração de Segurança Avançada
Criptografia de Dados SSL/TLS para Conexões
Utilize criptografia para dados Configure conexões seguras entre
sensíveis armazenados no banco clientes e o servidor de banco de
dados
Autenticação Avançada Auditoria
Implemente autenticação de dois Ative logs de auditoria para monitorar
fatores para acesso administrativo atividades suspeitas
"Creating strong passwords and granting least privilege are fundamental security
practices for database management." (NIST SP 800-123, 2013).
Estratégias de Backup e Recuperação
Criar Container
Execute: docker run --
Verificar Container name postgres-db -e
Execute: docker ps para POSTGRES_PASSWORD=
confirmar que o container senha -p 5432:5432 -v
está rodando pgdata:/var/lib/postgresql
/data -d postgres
Este exercício permite criar um container Docker com PostgreSQL, expondo a porta
padrão (5432) e configurando um volume para persistir os dados.
Exercício 3: Criação de Usuário no
MySQL
1 Acessar phpMyAdmin
Abra o navegador e acesse http://localhost/phpmyadmin
Conceder Privilégios
Selecione "Conceder todos os privilégios no banco de
dados 'teste'"
Criar Usuário
Execute: CREATE USER usuario_iot WITH PASSWORD 'Senha123!';
Conceder Permissões
Execute: GRANT SELECT, INSERT, UPDATE, DELETE ON sensores TO usuario_iot;
No PostgreSQL (dentro do container Docker), crie um usuário chamado "usuario_iot"
com a senha "Senha123!". Conceda a esse usuário permissão de leitura e escrita na
tabela "sensores" do banco de dados "automacao", que deve ser criado previamente.
Exercício 5: Backup no MySQL
Abrir Prompt de Comando
Abra o CMD no Windows
Executar Backup
Execute: mysqldump -u root -p teste > backup_teste.sql
Backup de Tabelas
Especificar tabelas para backup seletivo
Comandos Docker
Usar docker exec para acessar o container
500ms
Tempo de Resposta
Tempo médio para execução de consultas
85%
Utilização de CPU
Uso de processamento em picos de carga
70%
Uso de Memória
Utilização do buffer pool e cache
O monitoramento constante de métricas de
desempenho é essencial para garantir a saúde e
eficiência do banco de dados em ambientes de
produção.
Otimização de Consultas SQL
Análise
Identificar consultas lentas através de logs
Plano de Execução
Analisar como o SGBD executa a consulta
Indexação
Criar índices apropriados para acelerar buscas
Reescrita
Reformular consultas para melhor desempenho
Livros Específicos
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Database System Concepts. 6. ed. Nova
Iorque: McGraw-Hill, 2011.