Modelagem RelacionalArmazenamento dos Dados
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.
M. Conceitual vs M. Relacional
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)
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!
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.
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
Conceitual vs Relacional
Modelagem Conceitual
Modelagem Relacional
MySQL Workbenchhttp://www.mysql.com/products/workbench/
http://dev.mysql.com/downloads/mysql/
Relacionamento
Cardinalidade (N)
Entidade (tabela)
Chave PrimáriaCardinalidade (1)
Chaves Estrangeiras Atributos
(tipo de dado)
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
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
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, …
… … …
CardinalidadeOne 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
Many to many* *
many to many
* *1 1
BlogModelagem Relacional
• 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?
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
Entidades post, comentario e autor
Relacionamento post (one to many) comentario
Relacionamento autor (one to many) post
Resultadoid 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 [email protected]
… … …
autor
Obrigado!
Top Related