0% acharam este documento útil (0 voto)
10 visualizações29 páginas

Aula-4 Parte 1

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
10 visualizações29 páginas

Aula-4 Parte 1

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 29

Aula 4 Parte 1

Configuração do Banco de Dados


Revisão da aula anterior: Normalização de dados em ambientes de simulação. Formas
normais (1FN, 2FN, 3FN) e dependências funcionais. Revisão da atividade prática
(exercícios de normalização). Conexão com a aula atual: após a modelagem e
normalização, a próxima etapa é configurar o banco de dados.
Objetivo da aula (Bloom - Aplicar): Ao final desta aula, o aluno será capaz de instalar e
configurar um sistema de gerenciamento de banco de dados (SGBD) em um ambiente
Windows, utilizando o XAMPP para o MySQL, e o Docker para criar um container com
PostgreSQL, configurando os parâmetros de segurança, como usuários, senhas e
permissões, e realizando backups para garantir a segurança e a integridade dos
dados.
Competências e Capacidades Técnicas: Instalação e configuração de SGBDs,
configuração de segurança, realização de backups.
Fundamentos Técnicos e Científicos: SGBD (MySQL, PostgreSQL), XAMPP, Docker,
segurança de banco de dados, backup.
SGBDs - Os Gerenciadores dos seus Dados
1. Normalização de Dados
Definição simples:
É o processo de organizar os dados em um banco de dados para
evitar repetições e garantir consistência.
Exemplo fácil:
Imagine um cadastro de pedidos num fast-food:
Makefile
Pedido: #001 Cliente: João Endereço: Rua A, 123 Hambúrguer:
X-Burguer Bebida: Coca-Cola

Se o João fizer outro pedido, vai repetir os dados dele. A normalização


evita isso, separando em tabelas diferentes.
Analogia:
Pense em uma mochila escolar. Se você coloca tudo bagunçado
dentro, vai ter lápis repetido, folhas amassadas… A normalização é
como separar os materiais por estojo, cadernos por matéria, etc.
SGBDs - Os Gerenciadores dos seus Dados
2. Formas Normais (1FN, 2FN, 3FN)
1FN – Primeira Forma Normal
Definição:
Remove valores repetidos ou múltiplos em uma célula.
Cada campo deve ter um único valor.
Exemplo:
Errado:
Pedido: #001
Itens: X-Burguer, Coca-Cola
Correto:
Pedido: #001 | Item: X-Burguer
Pedido: #001 | Item: Coca-Cola
Analogia:
É como um álbum de figurinhas, onde cada espaço guarda
apenas uma figurinha, não duas coladas juntas.
SGBDs - Os Gerenciadores dos seus Dados
2FN – Segunda Forma Normal
Definição:
Além de estar na 1FN, remove dependência parcial, ou seja,
informações que não dependem totalmente da chave primária.
Exemplo:
Errado:
IdPedido + Produto → NomeCliente
Nome do cliente não depende do produto, mas sim apenas do
Pedido. Então deve ser separado.
Correto:
•Tabela Pedido (IdPedido, IdCliente)
•Tabela Itens (IdItens, IdProduto)
Analogia:
Imagine que um boleto bancário tenha seu nome escrito em
cada linha de item. Você paga uma conta só, então seu nome
deveria aparecer só uma vez.
SGBDs - Os Gerenciadores dos seus Dados
3FN – Terceira Forma Normal
Definição:
Além da 1FN e 2FN, remove dependência transitiva (quando um
campo depende de outro que não é a chave primária).

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: se você sabe o CPF, sabe o nome


da pessoa.

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

Criar bancos de dados e configurar usuários


com permissões adequadas

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

Baixar Imagem PostgreSQL


Usar o comando docker pull para baixar a
imagem oficial
Criar Container PostgreSQL
Executar o container configurando porta e volume
para persistência
Acessar o PostgreSQL
Conectar ao banco usando psql ou outra ferramenta

Docker: Plataforma para criar e gerenciar contêineres.


"Docker is an open platform for developing, shipping, and
running applications. Docker enables you to separate your
applications from your infrastructure so you can deliver
software quickly." (Docker, n.d.). Vantagens do uso de
Docker: isolamento, portabilidade, reprodutibilidade.
Comparação: MySQL vs
PostgreSQL
Característica MySQL PostgreSQL
Licença GPL/Comercial PostgreSQL License
(similar BSD)
Conformidade SQL Parcial Alta
Tipos de Dados Básicos Avançados (Arrays,
JSON, etc.)
Replicação Master-Slave Síncrona/Assíncrona
Performance Excelente em Balanceada
leitura leitura/escrita
Segurança - Protegendo seus Dados
Usuários e Senhas Firewall
Criar usuários com Configurar o firewall
senhas fortes, conceder para bloquear
privilégios mínimos acessos não
necessários. "Creating autorizados à porta
strong passwords and do SGBD.
granting least privilege
are fundamental security
practices for database
management." (NIST SP
800-123, 2013).

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

Backup Completo Backup Incremental Recuperação Pontual


Cópia integral de todos os Cópia apenas das Restauração do banco
dados do banco, realizada alterações desde o último para um momento
periodicamente backup, economizando específico no tempo
espaço e tempo usando logs de transação
Exercício 1: Instalação do XAMPP
Baixar o XAMPP
Acesse o site oficial do XAMPP e baixe a versão mais recente para Windows
Executar o Instalador
Siga as instruções do assistente de instalação
Iniciar Serviços
Abra o painel de controle do XAMPP e inicie os serviços Apache e MySQL
Configurar Senha Root
Acesse o phpMyAdmin e configure uma senha segura para o usuário root
Criar Banco de Dados
Crie um banco de dados chamado "teste"
Exercício 2: PostgreSQL com Docker
Instalar Docker Desktop Baixar Imagem PostgreSQL
Baixe e instale o Docker Execute o comando:
Desktop para Windows 1 docker pull postgres

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

Criar Novo Usuário


Acesse a aba "Contas de usuário" e clique em "Adicionar
conta de usuário"
Configurar Credenciais
Nome de usuário: "usuario_iot", Senha: "Senha123!"

Conceder Privilégios
Selecione "Conceder todos os privilégios no banco de
dados 'teste'"

No MySQL (via XAMPP), crie um usuário chamado


"usuario_iot" com a senha "Senha123!". Conceda a
esse usuário todos os privilégios no banco de
dados "teste".
Exercício 4: Criação de Usuário no PostgreSQL
Acessar o Container
Execute: docker exec -it postgres-db bash
Conectar ao PostgreSQL
Execute: psql -U postgres

Criar Banco de Dados


Execute: CREATE DATABASE automacao;

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

Navegar até o Diretório


Acesse a pasta do MySQL: cd C:\xampp\mysql\bin

Executar Backup
Execute: mysqldump -u root -p teste > backup_teste.sql

Realize um backup do banco de dados "teste" no MySQL usando o mysqldump. Este


comando exporta a estrutura e os dados do banco para um arquivo SQL que pode ser
usado para restauração.
Exercício 6: Backup no PostgreSQL
Backup Completo
1 pg_dump para backup completo do banco

Backup de Tabelas
Especificar tabelas para backup seletivo

Comandos Docker
Usar docker exec para acessar o container

Para realizar um backup de um banco de dados PostgreSQL em um container Docker,


você pode usar o comando:
docker exec -t postgres-db pg_dump -U postgres automacao > backup_automacao.sql
Este comando executa o utilitário pg_dump dentro do container, conectando como
usuário postgres ao banco automacao, e redirecionando a saída para um arquivo local.
Para restaurar o backup, você pode usar:
cat backup_automacao.sql | docker exec -i postgres-db psql -U postgres -d automacao
Pesquise e descreva como realizar um backup de um banco de dados PostgreSQL em um
container Docker. Apresente os comandos e explique o processo.
Monitoramento de Desempenho
95%
Uptime
Disponibilidade do banco de dados em produção

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

A otimização de consultas é fundamental para


garantir o bom desempenho de aplicações que
utilizam bancos de dados, especialmente em
sistemas com grande volume de dados ou alta
concorrência.
Conclusão e Fechamento

Resumo dos principais tópicos: SGBDs relacionais (MySQL, PostgreSQL), instalação e


configuração usando XAMPP e Docker, segurança, backups.
Tema da próxima aula: Introdução ao NoSQL. Aprenderemos sobre bancos de dados
NoSQL, seus tipos e aplicações.
Dúvidas: Espaço para perguntas e esclarecimentos.
Referências Bibliográficas (Parte 1)
APACHE FRIENDS. XAMPP. Disponível em:
https://www.apachefriends.org/pt_br/index.html. Acesso
em: 06 dez. 2024.

CONNOLLY, T.; BEGG, C. Database Systems: A Practical


Approach to Design, Implementation, and Management. 6.
ed. Harlow: Pearson Education Limited, 2014.

DATE, C. J. An Introduction to Database Systems. 8. ed.


Boston: Addison-Wesley, 2004.

DOCKER. Docker Overview. Disponível em:


https://www.docker.com/get-started/. Acesso em: 06 dez.
2024.

ELMASRI, R.; NAVATHE, S. B. Fundamentals of database


systems. 7. ed. Harlow: Pearson Education Limited, 2016.
Referências Bibliográficas (Parte 2)
Livros Técnicos Padrões e Normas
GROVER, V. Cloud Computing: Principles, NATIONAL INSTITUTE OF STANDARDS
Technologies, and Applications. Cham: AND TECHNOLOGY. NIST Special
Springer, 2019. Publication 800-123, Guide to General
Server Security. Gaithersburg, MD, 2013.
ÖZSU, M. T.; VALDURIEZ, P. Principles of
Distributed Database Systems. 4. ed.
Cham: Springer, 2020.

RAMAKRISHNAN, R.; GEHRKE, J.


Database management systems. 3. ed.
Nova Iorque: McGraw-Hill, 2003.

Livros Específicos
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Database System Concepts. 6. ed. Nova
Iorque: McGraw-Hill, 2011.

VAUGHAN, C. MySQL 8.0 Server Administration. Indianapolis: Wiley, 2020.

Você também pode gostar