2. Modelagem Relacional
• Pensamento não no modelo, mas sim na
armazenagem dos dados;
• Pensamento em funcionalidades;
• Diagrama Entidade Relacionamento (DER);
• Parecido com Modelagem Conceitual no ponto de
vista de representação visual;
• Objeto de modelagem diferente da Modelagem
Conceitual.
4. Modelagem Conceitual Modelagem Relacional
Baseado no modelo
Baseado na armazenagem dos
dados
Conceito Entidade
Atributos Atributos
Associações Relacionamento
1 ou * one (1), many (N)
5. Como pensar?
• Tudo o que precisa ser armazenado é uma Entidade
• Deve possuir um ou mais atributos
• Os relacionamentos somente existem para representar
relacionamentos e cardinalidade, basicamente.
• Sempre associar perguntando “possui um” ou
“possui muitos”.
• Pense sempre nos dados armazenados!
6. Banco de Dados Relacional
• Tabelas como forma de armazenar os dados de
uma Entidade;
• Cada linha é um registro da tabela
• Cada coluna um atributo da Entidade
• Tabelas podem se relacionar com outras
• DICA: Não usar acentos ou caracteres especiais
para nomes de tabelas ou atributos.
7. Tabela "cliente"
id nome cpf rg
1 Luan Murilo Tomás Araújo 255.439.755-46 38.482.664-7
2 Marcos Vinicius Eduardo Ribeiro 358.759.431-73 13.437.510-5
3 André Ryan André Moura 735.854.288-60 17.798.939-7
4 Thales Gabriel Ribeiro 504.062.242-26 41.880.743-7
5 Danilo Otávio Diogo Fernandes 584.504.965-27 45.650.089-3
6 Lucca Enrico Ribeiro 518.361.699-06 46.480.017-1
7 Davi Daniel Araújo 811.927.356-76 21.305.687-2
8 Cauã Gustavo Carlos Rodrigues 149.681.709-55 11.920.294-3
9 Nathan Carlos Eduardo Freitas 892.136.345-95 34.259.458-8
13. Chave Primária
• Garante apenas um registro com aquele valor, seja
ele número (inteiro, por exemplo) ou texto
• Exemplo: CPF de uma pessoa (não existe duas
pessoas com o mesmo CPF)
• Geralmente chamamos de ID (identificador)
• Pode existir mais de uma chave primária por tabela
14. Chave Estrangeira
• Demonstra a relação entre um determinado
registro com outro registro de outra tabela
• Segue sempre o mesmo tipo do atributo na
tabela de relacionamento
id nome cpf …
67 José Silva 123.456.789.-11 …
cliente
id data_emprestimo data_devolucao cliente_id …
871 2014-09-19 2014-09-25 67 …
emprestimo
15. Tipos de Atributos
• Cada atributo deve ter seu tipo informado.
Tipo O que representa? Exemplo
INT(N) Número inteiro INT(9) = 999999999
VARCHAR(N) String (texto em geral) VARCHAR(255) = 255 caract.
CHAR(N) String (texto em geral) CHAR(40) = 40 caract. fixos
BOOL Booleano True (V) ou False (F)
DECIMAL(M, D) Números com casas decimais DECIMAL(4,2) = 1234.12
DATE Data com dia, mês e ano 2014-09-19 (YYYY-MM-DD)
DATETIME Data completa com horários 2014-09-19 17:23:54 (HH:MM:SS)
YEAR(2|4) Ano com 2 ou 4 dígitos 14 ou 2014
BLOB String/Arquivos em binário Imagem, arquivo PDF, etc
TEXT Texto em geral sem limite Texto de um post no Facebook
ENUM(xxx,…) Enumeração (opções pré-definidas) Chevrolet, Fiat, GM, …
… … …
16. Cardinalidade
One to one!
(non identifying)
“um para um” sem identificação;
chave estrangeira não precisa
existir para registro existir
One to many!
(non identifying)
“um para muitos” sem identificação;
chave estrangeira não precisa
existir para registro existir
One to one!
(identifying)
“um para um” com identificação;
chave estrangeira precisa existir
para registro existir
One to many!
(identifying)
“um para muitos” com
identificação; chave estrangeira
precisa existir para registro existir
Many to many "ver exemplo"
inclui uma tabela com “one to
many” dos dois lados
20. • Um blog possui várias postagens (posts).
• Um post possui um título, texto e data de criação.
• Um post pode ter um ou mais comentários.
• Um comentário deve ter um texto e data de criação,
somente.
• Um post é escrito por um autor
• Um autor possui nome e email
• Um autor pode escrever vários posts
Blog
Entidades?
21. Blog
• Um blog possui várias postagens (posts).
• Um post possui um título, texto e data de criação.
• Um post pode ter um ou mais comentários.
• Um comentário deve ter um texto e data de criação,
somente.
• Um post é escrito por um autor
• Um autor possui nome e email
• Um autor pode escrever vários posts
25. Resultado
id titulo texto criacao autor_id
1 Meu primeiro post Este é um post… 2014-09-19 20:54:23 2
… … … … …
post
id texto criacao post_id
3 Gostaria de dizer que… 2014-09-19 21:32:19 1
… … … …
comentario
id nome email
2 Junior Grossi jgrossi@ufmg.br
… … …
autor