Buscar

Modelagem de Dados

Prévia do material em texto

Técnicas de Modelagem 
Leandro Correia 
leandro.correia@pro.unifacs.br 
Agenda 
• Modelo Relacional 
– Conceitos 
– Regras de integridade 
– Modelos de BD 
– Diagrama ER 
• Projeto de BDR 
– Implementação de relacionamentos 
– Normalização 
– Desnormalização 
 
 
 
 
 
Modelo Relacional 
S# Name Status 
City 
Domínios 
S# SNAME STATUS CITY 
S1 
S2 
S3 
S4 
S5 
Smith 
Jones 
Blake 
Clark 
Adams 
20 
10 
30 
20 
30 
London 
Paris 
Paris 
London 
Athens 
S 
Relação 
C
a
rd
in
a
lid
a
d
e
 
Tuplas 
Atributos 
Grau da Relação 
Primary 
Key 
Modelo Relacional 
Modelo Relacional 
Conceitos do Modelo Relacional 
• Relação 
• Tupla 
• Cardinalidade 
• Atributo 
• Grau 
• Chave Primária 
(PK) 
• Domínio 
• Tabela 
• Linha ou Registro 
• Número de Linhas 
• Coluna ou Campo 
• Número de 
Colunas 
• Identificador único 
• Conjunto de 
valores válidos 
Modelo Relacional 
Conceitos do Modelo Relacional 
• Uma relação é composta de um 
cabeçalho e um corpo: 
– Cabeçalho: Conjunto fixo de atributos; 
– Corpo: Conjunto de tuplas variando no tempo. 
• Propriedades de uma relação: 
– Não há tuplas duplicadas; 
– As tuplas não seguem um ordenamento (de 
cima para baixo); 
– Os atributos não seguem um ordenamento (da 
esquerda para direita); 
– Todos os valores de atributos são atômicos. 
Modelo Relacional 
Conceitos do Modelo Relacional 
• Predicado 
“Um fornecedor com um número de 
identificação específico (S#) tem um nome 
(SNAME), um valor de status (STATUS), é 
localizado numa cidade (CITY) e não existem 
dois fornecedores com o mesmo número de 
identificação.” 
• Proposição 
S# = “S1” SNAME = “Smith” 
STATUS = 20 CITY = “London” 
• Relação 
S (S#, SNAME, STATUS, CITY) 
 
 
 
 
Modelo Relacional 
Regras de Integridade Relacional 
• Chaves Candidatas 
– Conjunto de atributos que identificam 
uma tupla de maneira única numa 
relação; 
– Uma chave candidata para uma 
relação R é um sub-conjunto do 
conjunto de atributos de R, dito K, se e 
somente se: 
• Não existem duas tuplas distintas de R com o 
mesmo valor de K; (Unicidade) 
• Nenhum sub-conjunto próprio de K atende à 
propriedade de Unicidade. (Irredutibilidade) 
Modelo Relacional 
Regras de Integridade Relacional 
• Chave Primária 
– Caso especial de chave candidata; 
– Dentre o conjunto de chaves 
candidatas: 
• Uma é escolhida como Chave Primária 
(Primary Key); 
• As demais são ditas Chaves Alternativas. 
– Toda Relação possui pelo menos uma 
Chave Candidata, pois relações não 
possuem tuplas duplicadas. 
(propriedade de relações). 
 
Modelo Relacional 
Regras de Integridade Relacional 
• Chave Estrangeira 
– Uma chave estrangeira é um atributo ou 
conjunto de atributos numa relação R2, cujos 
valores são necessariamente equivalentes à 
chave primária de uma relação R1 (R1 e R2 não 
necessariamente distintos); 
 
DEPTO ( DEPTO#, DNAME ) 
 PRIMARY KEY ( DEPTO# ) 
 
EMP ( EMP#, ENAME, DEPTO#, SALARY ) 
 PRIMARY KEY ( EMP# ) 
 FOREIGN KEY ( DEPTO# ) REFERENCES DEPTO 
Modelo Relacional 
Regras de Integridade Relacional 
• Integridade de Entidade 
– Não se permite a nenhum atributo que participe 
da chave primária de uma relação que aceite 
valores nulos. 
• Integridade Referencial 
– Se uma relação R2 inclui uma chave estrangeira 
FK equivalendo a uma chave primária PK de 
uma relação R1, então todo valor de FK em R2 
deve: 
• Ser igual a valor de PK em alguma tupla R1, ou 
• Ser totalmente nulo (cada valor de atributo que 
participa deste valor FK deve ser nulo). 
Obs.: R1 e R2 não são necessariamente distintos. 
 
 
 
 
Modelo Relacional 
Regras de Integridade Relacional 
• Regras de Integridade Referencial 
– Restricted (Restrita) 
• Não é permitido a atualização 
(alteração/exclusão) de tupla pai que possua 
filhos. 
– Cascades (Cascata) 
• As atualizações são propagadas das tuplas 
pai para as tuplas filhas. 
– Nullifies (Nula) 
• Na atualização de tuplas pai, os valores de 
chave estrangeira das tuplas filhas são 
atualizados para NULL. 
 
 
 
 
 
Modelo Relacional 
Modelos de Bancos de Dados 
 
“Um modelo de (banco de) 
dados é uma descrição dos 
tipos de informações que 
estão armazenados em um 
banco de dados.” 
Heuser, C. A. (2001) 
Modelo Relacional 
Modelos de Bancos de Dados 
• Modelo Conceitual 
– Modelo de dados abstrato; 
– Descreve a estrutura de um banco de 
dados independente de um SGBD 
particular; 
– Exemplo: 
 
Departamento Funcionário Lotação 
(1,n) (1,1) 
Modelo Relacional 
Modelos de Bancos de Dados 
• Modelo Lógico 
– Modelo de dados que descreve a 
estrutura de um banco de dados 
conforme vista pelo usuário de um SGBD 
particular; 
– Exemplo: 
• Departamento (cod_departamento, 
nome_departamento, sigla_departamento) 
• Funcionario (mat_funcionario, 
nome_funcionario, cod_departamento) 
 
Modelo Relacional 
Modelos de Bancos de Dados 
• Diagrama Entidade/Relacionamento 
– Criado por Peter Chen, em 1976; 
– Técnica para modelagem de dados; 
– Entidade 
• Conjunto de objetos da realidade modelada 
sobre o qual se deseja manter informações 
no banco de dados (pessoas, empresas, 
departamentos, funcionários, filmes, vendas, 
produtos, etc; 
• Represntada por um retângulo. 
– Relacionamento 
• Conjunto de associações entre as entidades; 
• Representado por um losango. 
 
 
Modelo Relacional 
Modelos de Bancos de Dados 
• Diagrama Entidade/Relacionamento 
– Cardinalidade 
• Número mínimo ou máximo de ocorrências 
de entidade associadas a uma ocorrência 
de outra entidade, através de um 
relacionamento; 
• Máxima: varia de 1 a n, ou seja, uma 
ocorrência de uma entidade estará 
associada a pelo menos 1 e no máxino n 
ocorrências da outra entidade; 
• Mínima: varia de 0 a 1, indicando se 
associação entre as entidade é opcional (0) 
ou obrigatória (1). 
 
 
Modelo Relacional 
Modelos de Bancos de Dados 
• Exemplos: 
 
 
 Disciplina Aluno Matrícula 
(0,n) (0,n) 
Gênero Filme Classificação 
(0,n) (1,1) 
Modelo Relacional 
Modelos de Bancos de Dados 
• Exemplos: 
 
 
 
Pessoa 
Matrimônio 
(0,1) (0,1) 
h
o
m
e
m
 
m
u
lh
e
r 
Projeto de Bancos de 
Dados Relacionais 
Projeto de Bancos de Dados Relacionais 
Implementação de Relacionamentos 
• 3 estratégias básicas 
– Criação de uma tabela para 
representar o relacionamento; 
– Criação de colunas adicionais em uma 
tabela existente; 
– Fusão de tabelas de entidades. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
– Sejam X e Y atributos de uma relação R. 
Representamos a dependência 
funcional de Y em relação a X por: 
 
• R.X  R.Y ou 
• R.X determina funcionalmente R.Y ou 
• Y é funcionalmente dependente de X 
 
se e somente se, para cada valor de X em R, 
existir precisamente um único valor de Y em 
R. 
Determinante  Dependente 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
– Exemplos 
• Na relação SP (S#, P#, QTY): 
 { S#, P# }  { QTY } 
 { S#, P# }  { S# } 
 { S#, P# }  { P# } 
 
– Se o dependente é um sub-conjunto do 
determinante, a dependência é dita trivial 
• Exemplo: { S#, P# }  { S# } 
 
– Caso contrário, a dependência é dita não trivial 
• Exemplo: { S#, P# }  { QTY } 
 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
– Regras de inferência de Armstrong 
• Sejam A, B e C sub-conjuntos arbitrários do conjunto de 
atributos de uma relação R e AB significa a união entre A 
e B, ficam valendo as seguintes regras: 
 
Reflexão 
Se B é sub-conjunto de A, então A  B 
 
Ampliação/Soma 
Se A  B então AC  BC 
 
Transitividade 
Se A  B e B  C então A  C 
 
Auto-Determinação 
A  A 
 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
– Regras de inferência de Armstrong (continuação)Decomposição 
Se A  BC, então A  B e A  C 
 
União 
Se A  B e A  C, então A  BC 
 
Composição 
Se A  B e C  D, então AC  BD 
 
 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
cod_livro  titulo_livro 
cod_livro  cod_editora 
cod_livro  nome_editora 
cod_livro  peso_livro 
cod_livro  qtd_paginas 
cod_livro  qtd_capitulos 
 
titulo_livro  cod_liv 
titulo_livro  cod_ed 
titulo_livro  nome_ed 
titulo_livro  peso_liv 
titulo_livro  qtpaginas_liv 
titulo_livro  qtcapitulos_liv 
cod_editora  nome_editora 
nome_editora  cod_editora 
 
LIVRO 
cod_livro 
titulo_livro 
cod_editora 
nome_editora 
peso_livro 
qtd_paginas 
qtd_capitulos 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Dependências Funcionais 
 
 
cod_livro 
titulo_livro 
cod_editora 
nome_editora 
peso_livro 
qtd_paginas 
qtd_capitulos 
titulo_livro 
cod_livro 
cod_editora 
nome_editora 
peso_livro 
qtd_paginas 
qtd_capitulos 
 cod_livro e titulo_livro são chaves candidatas. Todos os atributos de 
uma relação devem ser funcionalmente dependentes das chaves candidatas 
e, consequentemente, da chave primária. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 1a Forma Normal (1FN ou 1NF) 
– Uma relação está 1FN se e somente se 
todos os seus domínios só contém 
valores atômicos; 
– O modelo relacional exige que as 
relações estejam pelo menos na 1FN; 
– Características: 
• Estrutura tabular; 
• Princípio da atomicidade; 
• Proibição de campos multivalorados. 
 
 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 1a Forma Normal (1FN ou 1NF) 
 FUNCIONARIO 
matricula nome cod_depend 
1052 Bob Jones D213 
1053 Liz Moore 
1107 Ted Smith D240 D241 
FUNCIONARIO 
matricula nome cod_depend 
1052 Bob Jones D213 
1053 Liz Moore 
1107 Ted Smith D240 
1107 Ted Smith D241 
Não está na 1FN 
Está na 1FN 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 2a Forma Normal (2FN ou 2NF) 
– Uma relação está na 2 FN se e somente 
se está na 1FN e todos os atributos não 
chave são totalmente dependentes da 
chave primária; 
– Diz respeito às chaves primárias 
compostas; 
– Se a chave primária de uma relação 
não é composta e a relação está na 
1FN, ela está também na 2FN; 
– Uma relação que está na 1 FN pode não 
estar na 2FN se sua chave for composta. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 2a Forma Normal (2FN ou 2NF) 
– Decomposição funcional 
• p#  nome_peca 
• p#  cod_cor 
• p#  cor 
• p#  peso 
• (f#,p#)  quantidade 
 
 
FORNECEDOR_PECA 
f# 
p# 
nome_peca 
cod_cor 
cor 
peso 
quantidade A única dependência total é de 
quantidade. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 2a Forma Normal (2FN ou 2NF) 
– Dependêcias parciais 
• Problemas de atualização (insert, update, 
delete); 
 FORNECEDOR_PECA 
f# s# nome_peca cod_cor cor peso quantidade 
f1 p1 prego c1 cinza 13 300 
f1 P2 porca c2 preto 15 200 
f2 p1 prego c1 cinza 13 750 
f2 p3 chave c3 azul 10 650 
f2 p4 roda c2 preto 23 400 
f4 p5 jante c1 cinza 25 200 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 2a Forma Normal (2FN ou 2NF) 
– Dependêcias parciais 
• Solução: decomposição de projeção sem 
perda de dados (non-loss projection 
decomposition); 
FORNECEDOR_PECA 
f# 
p# 
quantidade 
PECA 
p# 
nome_peca 
cod_cor 
cor 
peso 
quantidade 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 3ª Forma Normal (3FN ou 3NF) 
– Uma relação está na 3 FN se e somente se ela 
está na 2 FN e seus atributos não chave são 
mutuamente independentes; 
– Os atributos são considerados mutuamente 
independentes quando nenhum atributo é 
funcionalmente dependente de nenhuma 
combinação dos outros, exceto da chave 
primária; 
– A título de simplificação a terceira forma normal 
considera que a relação terá somente uma 
chave candidata, ou seja, a chave primária. 
 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 3ª Forma Normal (3FN ou 3NF) 
– Os atributos cod_cor e cor são 
dependentes funcionalmente um do 
outro; 
– Dependência indesejada durante as 
atualizações de dados; 
– Não está na 3FN. 
 
 
 
 
PECA 
cod_peca 
nome_peca 
cod_cor 
cor 
peso 
Projeto de Bancos de Dados Relacionais 
Normalização 
• 3ª Forma Normal (3FN ou 3NF) 
– Opções para normalização da relação: 
• Eliminar o atributo cod_cor; (Opção 1) 
• Criar uma relação distinta para as 
informações sobre cor. (Opção 2) 
 
 
 
 
PECA 
cod_peca 
nome_peca 
cod_cor 
peso 
COR 
cod_cor 
cor 
Opção 2 
PECA 
cod_peca 
nome_peca 
cor 
peso 
Opção 1 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Boyce and Codd Normal Form 
(BCNF) 
– Uma relação está na BCNF se e somente se todo 
determinante é chave candidata; 
– Um determinante é qualquer atributo do qual 
algum outro atributo é funcionalmente 
dependente; 
– As anomalias resolvidas pela BCNF aparecem 
em relações com as seguintes características: 
• Múltiplas chaves candidatas; 
• Chaves candidatas são compostas; 
• Chaves candidatas possuem ao menos um 
atributo em comum. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Boyce and Codd Normal Form 
(BCNF) 
– Exemplo: Relação de Monitores de 
Disciplinas: 
• Cada disciplina pode ter vários monitores; 
• Um monitor só monitora uma disciplina. 
 
 
MONITOR 
aluno 
disciplina 
monitor 
aluno disciplina monitor 
Aline Física II Mário 
Aline Lógica Marcos 
Aline Pesquisa Ana 
Carlos Física II Paula 
João Física II Mário 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Boyce and Codd Normal Form 
(BCNF) 
– Dependências funcionais 
• monitor  disciplina 
• {aluno, disciplina}  monitor 
• {aluno, monitor}  disciplina 
 
 
 
monitor aluno 
disciplina 
Está na 3FN, mas não está 
na BCNF. 
Projeto de Bancos de Dados Relacionais 
Normalização 
• Boyce and Codd Normal Form 
(BCNF) 
– Solução (decomposição sem perdas): 
 
 
 
ALUNO_MONITOR 
aluno monitor 
Aline Mário 
Aline Marcos 
Aline Ana 
Carlos Paula 
João Mário 
MONITOR_DISCIPLINA 
monitor displina 
Mário Física II 
Marcos Lógica 
Ana Pesquisa 
Paula Física II 
Atende à BCNF.

Continue navegando