DCC011 Introdução a Banco de Dados Projeto de Bancos de

Propaganda
DCC011
Introdução a Banco de Dados
Projeto de Bancos de Dados
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
[email protected]
Construindo Esquema Conceitual
Na primeira parte da matéria aprendemos a notação
de modelos ER
Agora vamos aprender a construir esquemas
conceituais, garantindo suas propriedades formais
Construindo o Esquema
Conceitual
1. Propriedades do Esquema Conceitual
2. Processo de construção
1. Propriedades de Modelos ER
(a) Modelo ER é um modelo formal
(b) Poder de expressão é limitado
(c) Equivalência entre modelos
Slide adaptado de HEUSER
Projeto de Banco de Dados Ed. Sgra & Luzzatto
(a) Modelo ER é um modelo formal
(b) Poder de expressão limitado
• Esquema ER preciso, não ambíguo
• Diferentes leitores de um mesmo esquema ER
devem sempre entender exatamente o mesmo
• DER pode ser usado como entrada a uma
ferramenta CASE
• Fundamental: todos os envolvidos devem estar
treinados na sua perfeita compreensão
• Risco: sub-utilização
• Modelo ER apresenta apenas algumas propriedades
de um banco de dados
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
• Foi concebido para o projeto da estrutura de um BD
relacional
• Pouco poderoso para expressar restrições de
integridade (regras de negócio)
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Poder de expressão: exemplo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Poder de expressão
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
(c) Equivalência entre esquemas
Poder de expressão: exemplo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Poder de expressão
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Equivalência entre esquemas: exemplo
• Dois esquemas ER podem ser equivalentes
• Esquemas equivalentes
• Expressam o mesmo
• Modelam a mesma realidade
• Para fins de projeto de BD, dois esquemas ER são
equivalentes
• Geram o mesmo esquema de BD
• Considerar um conjunto de regras de tradução de
esquemas ER para esquemas lógicos de BD
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Equivalência entre esquemas: exemplo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Equivalência entre esquemas: exemplo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
2. Processo de Construção
A. Identificando construções
A. Identificando construções
B. Verificação do esquema
C. Esquema deve refletir o aspecto temporal
Determinação da construção da abordagem ER
(entidade, relacionamento, ...) que será usada para
modelar um objeto de uma realidade
• Não pode ser feita através da observação do objeto
isoladamente
• É necessário conhecer o contexto (esquema dentro do
qual o objeto aparece)
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Identificando construções
Identificando construções
Recomendação geral
Dúvidas mais comuns
• Decisão por uma construção para a modelagem de
um objeto está sujeita à alteração durante a
modelagem
• Não despender um tempo excessivo em longas
discussões sobre como modelar um objeto
• Desenvolvimento do esquema e o aprendizado
sobre a realidade irão refinar e aperfeiçoar o
esquema
• Atributo versus entidade relacionada
• Atributo versus especialização/generalização
• Atributo opcional
• Atributo multivalorado
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributo versus entidade relacionada
Atributo versus entidade relacionada
• Objeto está vinculado a outros objetos
• Deve ser modelado como entidade
• Caso contrário
• Pode ser modelado como atributo
• Conjunto de valores de um determinado objeto é fixo
(domínio fixo)
• Pode ser modelado como atributo
• Existem transações no sistema que alteram o conjunto de
valores do objeto (domínio variável)
• Não deve ser modelado como atributo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributo versus generalização/especialização
Atributo versus generalização/especialização
• Questão
• Modelar um determinado objeto (por exemplo, a
categoria funcional de cada empregado de uma
empresa)
Especialização deve ser usada quando
• As classes especializadas de entidades possuem
propriedades particulares
• Como atributo?
• Categoria funcional como atributo da entidade EMPREGADO
• Como especialização?
• Atributos
• Relacionamentos
• Generalizações/especializações
• Cada categoria funcional corresponde a uma especialização da
entidade EMPREGADO
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributo versus generalização/especialização
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributo opcional
• Atributo opcional
• Podem indicar subconjuntos de entidades que são
modelados mais corretamente através de especializações
• Exemplo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributo multivalorado
• Atributo multivalorado é indesejável
• SGBD relacional que segue o padrão SQL/2
• Atributo multivalorado não possui implementação direta
• SGBD OO ou objeto/relacional
• Atributo multi-valorado normalmente é modelado como classe
separada
• Atributos multivalorados podem induzir a um erro de
modelagem
• Ocultar entidades e relacionamentos em atributos multivalorados
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & DCC011
Luzzatto
- profa Mirella M. Moro
25
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
B. Verificação do Esquema
b.1. Esquema deve ser correto
b.2. Esquema deve ser completo
b.3. Esquema deve ser livre de redundâncias
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
b.1. Esquema deve ser correto
Erros
•
•
•
•
Erros semânticos: exemplos
A partir da próxima aula
Estabelecer associações incorretas
•
Sintáticos
Semânticos
Erros semânticos mais difíceis de verificar
Regras de normalização auxiliam na validação
•
•
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
•
Usar uma entidade como atributo de outra
entidade
Usar o número incorreto de entidades em um
relacionamento
•
•
•
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Associar a uma entidade um atributo que na realidade
pertence a outra entidade
Fundir em um único relacionamento ternário dois
relacionamentos binários independentes
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
b.2. Esquema deve ser completo
Deve fixar todas propriedades desejáveis do
banco de dados
Somente pode ser verificado por alguém que
conhece profundamente o sistema a ser
implementado
•
•
•
Envolver o usuário
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
b.3. Esquema deve ser livre de redundâncias
•
•
•
•
Verificar completude
• Forma de verificar
• Dados que devem ser obtidos do banco de dados estão
presentes?
• Todas as transações de modificação do banco de dados
podem ser executadas sobre o esquema?
• Requisito é aparentemente conflitante com a falta
de poder de expressão de modelos ER
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
O que fazer com construções redundantes?
Esquema deve ser mínimo, isto é, não deve
conter conceitos redundantes
• Alternativas
Tipos de redundância
• Implementação pode conter redundância
controlada de dados (desempenho)
Relacionamentos redundantes
Atributos redundantes
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
• Não devem aparecer no esquema ou
• Devem aparecer indicadas como dedundantes
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Atributos redundantes ou deriáveis
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
C. Esquema e Aspecto Temporal
Atributos temporais
• O esquema deve refletir o aspecto temporal
• Dados temporais
• Dados que mudam ao longo do tempo e
• Para os quais BD mantém histórico
• Tipos de dados temporais
• Atributos cujos valores modificam ao longo do tempo
• Relacionamentos que modificam ao longo do tempo
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Relacionamento 1:1 temporal
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Relacionamento N:N temporal
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Relacionamento 1:N temporal
© Carlos A. Heuser
Projeto de Banco de Dados Ed. Sgra & Luzzatto
Download