INF1383 -Bancos de Dados - PUC-Rio

Propaganda
BD1 Sérgio Lifschitz
INF1383 -Bancos de Dados
Prof. Sérgio Lifschitz
DI PUC-Rio
Eng. Computação, Sistemas de Informação e Ciência da Computação
PROJETO DE BANCOS DE DADOS
MODELAGEM CONCEITUAL:
ABORDAGEM ENTIDADES E RELACIONAMENTOS
Slides baseados ou modificados dos originais de
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados,
Ed. Sagra&Luzzatto, Porto Alegre, 1999
1
Projeto de Bancos de Dados - níveis
de abstração
modelo conceitual
abstração
modelo lógico
modelo físico
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
2
1
BD1 Sérgio Lifschitz
Modelagem conceitual
• Independente de tipo de SGBD
• Registra
– Estrutura dos dados podem aparecer no banco de
dados
• Não registra
– Como estes dados estão armazenados a nível de
SGBD
– Como os dados são manuseados
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
3
Modelo conceitual - diagrama ER
• Técnica mais difundida de modelagem conceitual
– Abordagem entidade-relacionamento (ER)
• Modelo conceitual é representado através de
diagrama entidade-relacionamento (DER)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
4
2
BD1 Sérgio Lifschitz
Diagrama entidade-relacionamento
preço
Produt o
n
1
Tipo de
produt o
descrição
descrição
código
código
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
5
Modelagem lógica
• Nível
de
abstração
implementação
mais
próximo
de
• Especifica estrutura dos dados e também forma de
manuseio dos dados Definição de modelo de
dados
• Há vários modelos conhecidos: relacional,
orientado a objetos, semi-estruturado, etc.
• Modelo relacional: estrutura os dados em relações
(tabelas) e usa algebra ou SQL para vê-los
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
6
3
BD1 Sérgio Lifschitz
Modelagem lógica - Relacional
• Esquema relacional para o exemplo
TipoDeProduto
CodTipoProd DescrTipoProd
1 Computador
2 Impressora
Produto
CodProd
1
2
3
4
DescrProd
PC desktop modelo X
PC notebook ABC
Impressora jato de tinta
Impressora laser
PrecoProd
2.500
3.500
600
800
CodTipoProd
1
1
2
2
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
7
Esquema lógico para o exemplo
Modelo lógico escolhido: RELACIONAL
TipoDeProduto(CodTipoProd,DescrTipoProd)
Produto(CodProd,DescrProd,PrecoProd,CodTipoProd)
CodTipoProd referencia TipoDeProduto
Chaves primárias sublinhadas
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
8
4
BD1 Sérgio Lifschitz
Modelagem Física
• Contém detalhes de armazenamento interno
• Dependentes do SGBD particular escolhido
– Sintaxe LMD/LDD e objetos do banco de dados
• Detalhes que
– não têm influencia sobre a programação de aplicações
no SGBD
– influenciam no desempenho das aplicações
• Usados por profissionais que fazem sintonia fina
(tuning) de performance em banco de dados
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
9
Projeto de BD
• Tipicamente em duas fases:
1 Modelagem conceitual
2 Projeto lógico
• Adequado para a construção de um novo banco
de dados
• Caso já exista um banco de dados ou um
conjunto de arquivos convencionais, usar
reengenharia
• Terceira fase (modelagem física) completa o ciclo
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
10
5
BD1 Sérgio Lifschitz
Modelagem Conceitual de Dados:
Abordagem Entidade-Relacionamento
• Técnica para construir modelos conceituais de
bases de dados
– Também usada para análise de sistemas em geral
• Técnica de modelagem conceitual de dados mais
difundida e utilizada
• Publicada em 1976 por Peter Chen e com várias
extensões propostas desde então
• Não é um modelo de dados lógico pois especifica
somente a estrutura, não há manuseio de dados!
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
11
Abordagem Entidade-Relacionamento
• Padrão de fato para modelagem conceitual
• Não é única:
– NIAM/ORM (técnica européia da década de 70)
– UML (Técnica para modelos Orientados a Objetos)
• Técnicas de modelagem orientada a objetos (UML)
baseiam-se nos conceitos da abordagem ER
– UML é linguagem com objetivos que vão além da
modelagem conceitual!
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
12
6
BD1 Sérgio Lifschitz
Abordagem Entidade-Relacionamento
• Modelo conceitual de dados é representado
através de um
– modelo entidade-relacionamento (MER)
• MER é representado graficamente por um
– diagrama entidade-relacionamento (DER)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
13
Conceitos centrais da abordagem ER
• Entidade
• Relacionamento
• Atributo
• Generalização/especialização
• Entidade associativa
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
14
7
BD1 Sérgio Lifschitz
Entidade
Conjunto de objetos da realidade
modelada sobre os quais deseja-se
manter informações no banco de
dados
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
15
Entidade – exemplos
• Sistema de contas correntes
–
–
–
–
clientes
contas correntes
cheques
agências
• Entidade pode representar
– objetos concretos da realidade (uma pessoa, um
automóvel)
– objetos abstratos (um departamento, um endereço)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
16
8
BD1 Sérgio Lifschitz
Entidade no DER
• Representada através de um retângulo
• Retângulo contém o nome da entidade.
PESSOA
DEPARTAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
17
Entidade e instância
• Para referir um objeto particular
fala-se em instância ou ocorrência de entidade
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
18
9
BD1 Sérgio Lifschitz
Propriedades de entidades
• Entidade isoladamente não informa nada
• É necessário atribuir propriedades às entidades:
basicamente seus atributos!
• Propriedades básicas especificadas na forma de
– Relacionamentos
– Atributos
– Generalizações/especializações
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
19
Relacionamento - conceito
Conjunto de associações entre
entidades sobre as quais
deseja-se manter informações
na base de dados
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
20
10
BD1 Sérgio Lifschitz
Relacionamento no DER
DEPARTAMENTO
LOTAÇÃO
PESSOA
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
21
Relacionamento e instância
• Relacionamento é um conjunto de associações
entre instâncias de entidades
• Uma instância (ocorrência) é uma associação
específica entre determinadas instâncias de
entidade
• Exemplo (relacionamento LOTAÇÃO)
– ocorrência = par específico formado por uma
ocorrência de PESSOA e uma ocorrência de
DEPARTAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
22
11
BD1 Sérgio Lifschitz
Diagrama de ocorrências
p3
p7
p1
p8
p4
p6
p2
p1,,d1
d1
p2,d1
p5
p4,d2
p5,d3
d2
d3
entidade
EMPREGADO
relacionamento
LOTAÇÃO
entidade
DEPARTAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
23
Auto-relacionamento
PESSOA
esposa
marido
CASAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
24
12
BD1 Sérgio Lifschitz
Papel de relacionamento
• Função que uma ocorrência de uma entidade
cumpre em uma ocorrência de um
relacionamento
• Relacionamento de casamento
– Uma ocorrência de pessoa exerce o papel de marido
– Uma ocorrência de pessoa exerce o papel de esposa
• Relacionamentos entre entidades diferentes:
– não é necessário indicar os papéis das entidades
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
25
Auto-relacionamento:
diagrama de ocorrências
p3
p7
p1
p8
p6
p2
p4
p5
marido
marido
esposa
esposa
p1,p3
p6,p8
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
26
13
BD1 Sérgio Lifschitz
Cardinalidade de relacionamentos
• Propriedade importante de um relacionamento
– Quantas ocorrências de uma entidade podem estar
associadas a uma determinada ocorrência de entidade
através do relacionamento
• Chamada de cardinalidade de uma entidade em
um relacionamento
• duas cardinalidades
– máxima
– mínima
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
27
Cardinalidade máxima no DER
DEPARTAMENTO
EMPREGADO
LOTAÇÃO
1
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
n
28
14
BD1 Sérgio Lifschitz
Cardinalidade máxima - DER
DEPARTAMENTO
LOTAÇÃO
EMPREGADO
n
1
expressa que a uma ocorrência de
EMPREGADO (entidade do lado oposto da
anotação) pode estar associada ao máximo
uma (“1”) ocorrência de DEPARTAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
29
Cardinalidade máxima no DER
DEPARTAMENTO
LOTAÇÃO
1
EMPREGADO
n
expressa que a uma ocorrência de
DEPARTAMENTO (entidade ao lado
oposto da anotação) podem estar
associadas muitas (“n”) ocorrências de
EMPREGADO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
30
15
BD1 Sérgio Lifschitz
Cardinalidade máxima - valores
• Para projeto de BD relacional
– não é necessário, porém por vez recomendável,
distinguir entre diferentes cardinalidades máximas > 1
• Dois valores de cardinalidades
– cardinalidade máxima 1
– cardinalidade máxima “muitos”, referida pela letra n
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
31
Classificação de relacionamentos
• Cardinalidade máxima pode ser usada para
classificar relacionamentos binários
• Relacionamento binário
– é aquele cujas instâncias envolvem duas instâncias de
entidades
• Relacionamentos binários
– n:m (muitos-para-muitos – n e m valores quaisquer)
– 1:n (um-para-muitos)
– 1:1 (um-para-um)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
32
16
BD1 Sérgio Lifschitz
Relacionamentos 1:1
PESSOA
EMPREGADO
1
1
esposa
marido
1
ALOCAÇÃO
CASAMENTO
1
MESA
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
33
Relacionamentos 1:n
n
ALUNO
EMPREGADO
1
INSCRIÇÃO
1
n
CURSO
DEPENDENTE
EMPREGADO
supervisionado
supervisor
1
n
SUPERVISÃO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
34
17
BD1 Sérgio Lifschitz
Relacionamentos n:n
ENGENHEIRO
n
n
ALOCAÇÃO
n
MÉDICO
PROJETO
n
CONSULTA
n
PACIENTE
n
PEÇA
CAPACIDADE
FORNECEDOR
PRODUTO
componente
composto
n
n
COMPOSIÇÃO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
35
Relacionamento ternário
CIDADE
DISTRIBUIDOR
DISTRIBUIÇÃO
PRODUTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
36
18
BD1 Sérgio Lifschitz
Cardinalidade
ternário
em
relacionamento
CIDADE
DISTRIBUIDOR
n
1
DISTRIBUIÇÃO
a cardinalidade
“1” refere-se
a um par
cidade e
produto
n
PRODUTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
37
Cardinalidade mínima
• Número mínimo de ocorrências de entidade que
são associadas a uma ocorrência de uma
entidade através de um relacionamento
• Para fins de projeto de BD, consideram-se
apenas duas cardinalidades mínimas
– cardinalidade mínima 0
– cardinalidade mínima 1
• Denominação alternativa:
– cardinalidade mínima 1 = “associação obrigatória”
– cardinalidade mínima 0 = “associação opcional”
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
38
19
BD1 Sérgio Lifschitz
Cardinalidade mínima - DER
e1
EMPREGADO
e3
e4
e2
(0,1)
e3,m6
e1,m1
ALOCAÇÃO
e4,m4
e2,m2
(1,1)
m4
m1
MESA
m2
m3
m6
m5
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
39
Atributo
Dado ou informação que é associado a cada
ocorrência de uma entidade ou de um
relacionamento
PROJETO
tipo
código
nome
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
40
20
BD1 Sérgio Lifschitz
Atributos com cardinalidade
• Cardinalidade mínima
– atributo obrigatório (cardinalidade mínima “1”)
• cada entidade possui no mínimo um valor associado)
– atributo opcional (cardinalidade mínima “0”)
• Cardinalidade máxima
– atributo monovalorado (cardinalidade máxima “1”)
• cada entidade possui no máximo um valor associado)
– atributo multivalorado (cardinalidade máxima “n)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
41
Atributo com cardinalidade
CLIENTE
telefone (0,n)
código
nome
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
Atributo opcional
e multi-valorado
42
21
BD1 Sérgio Lifschitz
Atributo em relacionamento
(0,n)
ENGENHEIRO
Código
(0,n)
ATUAÇÃO
Nome
Função
PROJETO
Código
Título
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
43
Atributo em relacionamento 1:n
nº de parcelas
(0,1)
FINANCEIRA
(0,n)
FINANCIAMENTO
VENDA
taxa de juros
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
44
22
BD1 Sérgio Lifschitz
Identificador de entidade
• Cada entidade deve possuir um identificador
• identificador
=
conjunto propriedades de uma entidade
(atributos e relacionamentos) cujos valores
servem para distinguir uma ocorrência da
entidade das demais ocorrências da mesma
entidade
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
45
Atributo identificador
código
PESSOA
nome
endereço
capacidade
PRATELEIRA
número do corredor
número da prateleira
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
46
23
BD1 Sérgio Lifschitz
Relacionamento identificador
• Entidade fraca
código
número
seqüência
nome
(1,1)
(0,n)
EMPREGADO
nome
DEPENDENTE
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
47
Relacionamento com atributo identificador
m
MÉDICO
n
CONSULTA
PACIENTE
data/hora
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
48
24
BD1 Sérgio Lifschitz
Generalização/especialização
• Conceito permite
– atribuir propriedades particulares
a um subconjunto das ocorrências (especializadas) de
uma entidade genérica
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
49
Generalização/especialização
(1,1)
(0,n)
nome
CLIENTE
FILIAL
código
PESSOA
FÍSICA
CIC
sexo
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
PESSOA
JURÍDICA
CGC
tipo de organização
50
25
BD1 Sérgio Lifschitz
Generalização/especialização
• Herança de propriedades
• Herdar propriedades significa
– cada ocorrência da entidade especializada possui
• além de suas próprias propriedades)
• também as propriedades da ocorrência da entidade
genérica correspondente
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
51
Especialização total
CLIENTE
indica que todo
CLIENTE é ou
t
PESSOA FÍSICA ou
PESSOA JURíDICA
PESSOA
FÍSICA
PESSOA
JURÍDICA
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
52
26
BD1 Sérgio Lifschitz
Especialização parcial
FUNCIONÁRIO
tipo de
funcionário
p
MOTORISTA
indica que nem todo
FUNCIONÁRIO é
MOTORISTA ou
SECRETÁRIA
SECRETÁRIA
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
53
Generalização/especialização
(recursão)
VEÍCULO
VEÍCULO
AQUÁTICO
VEÍCULO
TERRESTRE
AUTOMÓVEL
VEÍCULO ANFÍBIO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
BARCO
54
27
BD1 Sérgio Lifschitz
Especialização não é exclusiva
especialização
não exclusiva
PESSOA
PROFESSOR
ALUNO
FUNCIONÁRIO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
55
Entidade associativa
• Modificar modelo:
• Adicionar medicamentos prescritos em uma
consulta
n
MÉDICO
CONSULTA
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
n
PACIENTE
56
28
BD1 Sérgio Lifschitz
Substituindo relacionamento por entidade
MÉDICO
PACIENTE
(1,1)
(1,1)
n
n
CONSULTA
n
PRESCRIÇÃO
n
MEDICAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
57
Entidade associativa
n
n
MÉDICO
CONSULTA
PACIENTE
n
PRESCRIÇÃO
n
MEDICAMENTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
58
29
BD1 Sérgio Lifschitz
Conceito
Símbolo
Entidade
Símbolos
DER
Relacionamento
Atributo
Atributo
identificador
Relacionamento
identificador
(1,1)
Generalização/
especialização
Entidade
associativa
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
59
Explo: DER recursos humanos
tipo de
empregado
nome
CIC
(1,1)
(0,n)
EMPREGADO
LOTAÇÃO
DEPARTAMENTO
(1,n)
p
GERÊNCIA
(0,1)
GERENTE
CREA
SECRETÁRIA
(1,n)
DOMÍNIO
(0,n)
PROCESSADOR
DE TEXTOS
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
ENGENHEIRO
(0,n)
PARTICIPAÇÃO
(0,n)
PROJETO
60
30
Download