Introdução a Banco de Dados UFMG/2014-02 - Aula 06
-
Upload
junior-grossi -
Category
Technology
-
view
26 -
download
2
Transcript of Introdução a Banco de Dados UFMG/2014-02 - Aula 06
![Page 1: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/1.jpg)
Modelagem RelacionalArmazenamento dos Dados
![Page 2: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/2.jpg)
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.
![Page 3: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/3.jpg)
M. Conceitual vs M. Relacional
![Page 4: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/4.jpg)
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)
![Page 5: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/5.jpg)
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!
![Page 6: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/6.jpg)
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.
![Page 7: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/7.jpg)
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
![Page 8: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/8.jpg)
Conceitual vs Relacional
Modelagem Conceitual
Modelagem Relacional
![Page 9: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/9.jpg)
![Page 10: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/10.jpg)
MySQL Workbenchhttp://www.mysql.com/products/workbench/
http://dev.mysql.com/downloads/mysql/
![Page 11: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/11.jpg)
![Page 12: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/12.jpg)
Relacionamento
Cardinalidade (N)
Entidade (tabela)
Chave PrimáriaCardinalidade (1)
Chaves Estrangeiras Atributos
(tipo de dado)
![Page 13: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/13.jpg)
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
![Page 14: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/14.jpg)
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
![Page 15: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/15.jpg)
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, …
… … …
![Page 16: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/16.jpg)
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
![Page 17: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/17.jpg)
Many to many* *
many to many
* *1 1
![Page 18: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/18.jpg)
![Page 19: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/19.jpg)
BlogModelagem Relacional
![Page 20: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/20.jpg)
• 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?
![Page 21: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/21.jpg)
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
![Page 22: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/22.jpg)
Entidades post, comentario e autor
Relacionamento post (one to many) comentario
![Page 23: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/23.jpg)
Relacionamento autor (one to many) post
![Page 24: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/24.jpg)
![Page 25: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/25.jpg)
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
![Page 26: Introdução a Banco de Dados UFMG/2014-02 - Aula 06](https://reader034.fdocument.pub/reader034/viewer/2022042716/55af57521a28ab6c098b470a/html5/thumbnails/26.jpg)
Obrigado!