04 Banco de Dados
04 Banco de Dados
04 Banco de Dados
Dados
Desenvolvedor de Salesforce
Sumário
Apresentação .......................................................................................................... 4
1. Introdução aos Bancos de Dados ....................................................................... 5
1.1. O que é um Banco de Dados?...................................................................... 5
1.2. História e Evolução dos Bancos de Dados .................................................... 5
1.3. Importância dos Bancos de Dados no Mundo Atual ...................................... 5
2. Conceitos Básicos de Bancos de Dados ............................................................. 6
2.1. Definições e Terminologias ......................................................................... 6
2.2. Características de um Banco de Dados ....................................................... 6
3. Modelagem de Dados ........................................................................................ 7
3.1. Modelagem Conceitual ............................................................................... 7
3.2. Modelagem Lógica ..................................................................................... 7
3.3. Modelagem Física ...................................................................................... 7
3.4. Ferramentas de Modelagem de Dados ......................................................... 8
4. A Estrutura de um Banco de Dados ................................................................... 10
4.1. Campo de texto ........................................................................................ 10
4.2. Campo numérico ..................................................................................... 10
4.3. Campo de data e hora............................................................................... 10
4.4. Campo lógico ........................................................................................... 10
4.5. Campo memo .......................................................................................... 11
4.6. Campo binário ......................................................................................... 11
4.7. Campo autonumerado.............................................................................. 11
4.8. Campo calculado ..................................................................................... 11
4.9. Chave Primária ......................................................................................... 11
4.10. Chave Estrangeira ................................................................................. 11
4.11. Índices ................................................................................................. 11
4.12. Visão.................................................................................................... 12
4.13. Procedimento Armazenado ................................................................... 12
4.14. Gatilho ................................................................................................. 12
4.15. Transação............................................................................................. 12
5. Relacionamento entre Tabelas ......................................................................... 14
5.1. Relacionamento entre Tabelas .................................................................. 14
5.2. Cardinalidade .......................................................................................... 15
6. Diagramação de Banco de Dados ..................................................................... 16
7. Regras Formais e Normalização ....................................................................... 19
7.1. O que é Normalização? ............................................................................. 19
8. Introdução ao SQL........................................................................................... 20
8.1. O que é SQL? ........................................................................................... 20
8.2. Comandos Básicos de SQL ....................................................................... 20
8.3. Consultas Simples ................................................................................... 20
Exercícios Práticos ................................................................................................. 21
4
Apresentação
3. Modelagem de Dados
3.4.1. ER/Studio
Descrição: ER/Studio é uma ferramenta robusta de modelagem de dados
usada para criar diagramas ER, realizar engenharia reversa em bancos de dados
existentes e colaborar em projetos de modelagem.
Recursos: Suporte para múltiplos SGBDs, modelagem conceitual, lógica e
física, visualização de relacionamentos e dependências de dados.
Benefícios: Facilita a comunicação entre desenvolvedores e partes
interessadas, garante a integridade dos dados e melhora a qualidade do design do
banco de dados.
3.4.3. Lucidchart
Descrição: Lucidchart é uma ferramenta de diagramação baseada em nuvem
que permite a criação colaborativa de diagramas ER e outros tipos de diagramas.
Recursos: Colaboração em tempo real, integração com diversas plataformas
(Google Drive, Confluence, etc.), fácil compartilhamento e exportação de diagramas.
9
4.11. Índices
Um índice é essencialmente uma estrutura de ordenação baseada em um
campo escolhido. A definição de índices permite que o SGBDs crie pré-ordenações
12
4.12. Visão
Uma visão (view) é um texto com uma consulta em SQL que pode ser
referenciado como uma fonte de dados por uma outra consulta. São recomendadas
para o suporte de consultas simples e emissão de relatórios.
4.14. Gatilho
Um gatilho (trigger) é um procedimento armazenado especial associado a
eventos de uma tabela. Ele não pode ser diretamente executado como o procedimento
armazenado; ao invés disso, ele é disparado somente em resposta a um evento de
inserção, atualização, ou deleção em uma tabela.
4.15. Transação
Uma transação é uma sequência de tarefas que juntas constituem uma
unidade lógica de trabalho. Todas as tarefas devem ser completadas ou, caso uma
delas falhe a transação inteira deve ser abortada. A qualidade de um SGBD é
mensurada, entre outras características, pela sua aderência às propriedades ACID de
uma transação.
ACID é um acrônimo para quatro propriedades interdependentes:
atomicidade, consistência, isolamento e durabilidade. Muito da arquitetura de
qualquer SGBD relacional atualmente é fundamentada sobre estas propriedades.
Bancos de dados estão muito associados à ideia de integridade de transações, tendo
13
Os tipos de dados definem o tipo de valor que uma coluna em uma tabela pode
armazenar. Alguns tipos de dados comuns incluem:
Exemplos Práticos:
• Nome do Cliente: VARCHAR(100)
• Idade do Cliente: INT
• Preço do Produto: DECIMAL(10,2)
• Data de Criação: TIMESTAMP
14
5.2. Cardinalidade
A cardinalidade define o número de ocorrências de uma entidade que pode se
relacionar com o número de ocorrências de outra entidade. Ela é representada pelo
mínimo e máximo número de vezes que uma entidade pode estar associada a outra.
Como cada pedido deve possuir um ou mais produtos e cada produto pode
estar em mais de um pedido, sendo este um relacionamento de Muitos-para-Muitos,
precisamos então criar uma nova tabela, para armazenar ambas as chaves-
estrangeiras, e demais informações necessárias a esse relacionamento.
No diagrama abaixo, foram incluidos os campos de cada tabela, bem como as
identificações de chaves-primárias (PK) e chaves-estrangeiras (FK).
Exemplos de Normalização:
• 1NF: Divida uma tabela de "Pedidos" que tem múltiplos produtos em várias
linhas.
• 2NF: Separe informações do cliente em uma tabela diferente se houver
dependência parcial.
20
8. Introdução ao SQL
Inserir Dados:
Selecionar Dados:
Atualizar Dados:
Deletar Dados:
Exercícios Práticos
Faça uma analise dos estudos de caso apresentados a seguir e crie diagramas
de acordo com a necessidade de cada caso. Em seguida tente criar os bancos de
dados utilizando SQL.
Cada exercício pode ter algumas diferenças em sua resolução.
);
CREATE TABLE Locatario (
LocatarioId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
CidadeId INTEGER UNSIGNED NOT NULL,
NomeLocatario VARCHAR(60) NOT NULL,
Endereco VARCHAR(60),
Numero VARCHAR(10),
Bairro VARCHAR(50),
Cep CHAR(8),
Email VARCHAR(100),
Telefone VARCHAR(20),
Celular VARCHAR(20) NOT NULL,
PRIMARY KEY(LocatarioId),
FOREIGN KEY(CidadeId) REFERENCES Cidade(CidadeId)
);