Aula3 - ER Estendido Banco de Dados
Aula3 - ER Estendido Banco de Dados
Aula3 - ER Estendido Banco de Dados
MER Estendido
Profª. Dayse Silveira de Almeida
daysesa@ufg.br
Genérico
Específico
Herança
4
Generalização/Especialização em MER
Entidade mais genérica Pessoa
Critério de
Entidade mais específica
Especialização/
Generalização
Subclasse/Superclasse
■ Subclasse (subtipo):
Subconjunto de entidades;
Resulta do agrupamento de entidades em subgrupos
de um tipo-entidade.
■ Outro exemplo:
Superclasse (supertipo) : tipo-entidade Empregado
Subclasses (subtipos): Secretário, Engenheiro,
Técnico
Herança
■ De atributos:
atributos da superclasse são herdados pelas subclasses;
■ De relacionamentos:
instâncias de relacionamentos da superclasse são
herdados pelas entidades das subclasses;
■ Observação:
qualquer entidade membro de uma subclasse também deve ser
membro da superclasse;
qualquer entidade membro da superclasse pode ser
opcionalmente incluída como membro de qualquer
número (incluindo zero) de subclasses.
7
Herança ...
▪ Conjuntos de entidades mais específicos herdam todos
os atributos do conjunto de entidades mais genérico;
Nome Pessoa
Idade
Altura
Vínculo Vínculo
N#Mat
Curso
N#Func
Aluno Professor Funcionário
Função
8
Herança ...
▪ Conjuntos de entidades mais específicos participam de
todos os conjuntos de relacionamentos definidos para o
conjunto de entidades mais genérico.
Herança ...
A chave dos conjuntos de entidades mais específicos é herdada
do conjunto de entidades mais genérico. Ou seja, a chave é
definida implicitamente:
Nome Pessoa
Idade
Altura
Vínculo
Vínculo
N#Mat
Curso
Curso Função
Generalização/Especialização
■ Especialização:
Resultado da separação de um tipo-entidade de nível
mais alto (superclasse), formando vários tipos-entidade
de nível mais baixo (subclasse).
Procedimento:
■ Define-se um conjunto de subclasses de um tipo-entidade;
■ Associam-se atributos adicionais específicos às subclasses
e/ou estabelecem-se tipos-relacionamento adicionais
específicos às subclasses.
12
Especialização
▪ CASO 1:
▪ determinados atributos aplicam-se somente a
alguns conjuntos de entidades específicos;
Especialização ...
▪ CASO 2:
▪ existem relacionamentos dos quais participam apenas
entidades de alguns subconjuntos específicos;
Pessoa
Vínculo
Generalização
Pode ser visto como o processo inverso à especialização;
Procedimento:
■ Suprimir diferenças entre os tipos-entidade;
■ Identificar atributos em comum, generalizando-os em uma
superclasse.
15
nome_empregado CPF_empregado
EMPREGADO
tipo_empregado
generalização d especialização
Restrições
■ Especialização definida pelo atributo:
as subclasses que participam da hierarquia são
determinadas por uma condição baseada em algum
atributo da superclasse;
exemplo: tipo_empregado (secretária, engenheiro,
etc.)
Restrição de Disjunção
■ Subclasses mutuamente exclusivas:
uma entidade de uma superclasse deve ser membro
no máximo de uma única subclasse:
d “d” (disjoint)
Sigla Disciplina
Nome
Tipo
Exclusão Mútua:
Tipo Uma disciplina não pode ser
de graduação e de pós ao
mesmo tempo.
Grad. Pós-Gr.
Semestre Nível
19
Sobreposição ...
Restrição de Completude
Restrição de Totalidade
Sigla Disciplina
Especialização Total:
Nome Qualquer disciplina é de
Tipo pelo menos um tipo:
graduação, pós-graduação,
Tipo
ou especialização.
Especialização parcial
Nome Pessoa
Função
Especialização Parcial:
Um funcionário pode ser,
Função
por exemplo, Gerente de
Recursos Humanos.
Observações
■ Restrições de disjunção e de completude são
independentes. Logo, existem as seguintes
possibilidades de hierarquias:
■ total disjunta;
■ parcial disjunta;
■ total com sobreposição;
■ parcial com sobreposição.
24
Total disjunta
Só há disciplinas de
Sigla Disciplina graduação, de pós-graduação,
Nome e de especialização.
Tipo
Tipo
Uma disciplina ou é de graduação
ou de pós, ou de especialização.
Parcial disjunta
Semestre Nível
26
Total sobreposta
Nome
Aluno Há somente alunos de
Nível
graduação, de pós-graduação,
e de especialização.
Nível
Um aluno pode ao mesmo
tempo estar matriculado em
um curso de graduação e em
Grad. Pós-Grad. Especializ.
um curso de especialização.
Ano Mestr./Dout.
Ingresso
27
Parcial sobreposta
Nome Pessoa
Função
Além de Vigia, Secretário e
Bibliotecário, há outras funções.
Função
Exercício
■ Modele uma hierarquia de generalização/especialização para os
tipos-entidade carro e caminhão. Defina as restrições de
disjunção e de completude.
código-renavam
chassi
número_passageiros
CARRO
preço
velocidade-máxima
número_portas
código-renavam
chassi
CAMINHÃO capacidade_carga
preço
número_eixos
29
Generalização/Especialização
■ Uma subclasse pode possuir outras subclasses
especificadas a partir dela;
Hierarquia de
■ Herança simples: especialização
Especialização
■ Herança múltipla: reticulada
■ Exemplo:
30
CPF_empregado
EMPREGADO
nome_empregado
d
GERENTE
SECRETÁRIO ENGENHEIRO
formação
idioma tipo_engenheiro
TÉCNICO MENSALISTA HORISTA
salário valor_hora
grau_técnico
ENGENHEIRO_GERENTE adicional
31
CPF_empregado
EMPREGADO
nome_empregado
entidades de
engenheiro_gerente herdam os gado
tipo_empre cargo forma_pagamento
atributos e os relacionamentos
d
de empregado, engenheiro,
gerente e mensalista.
d
GERENTE
SECRETÁRIO ENGENHEIRO
formação
idioma tipo_engenheiro
TÉCNICO MENSALISTA HORISTA
salário valor_hora
grau_técnico
subclasse
compartilhada ENGENHEIRO_GERENTE adicional
Tipos União
• Todos os relacionamentos superclasse/subclasse anteriores
possuem uma superclasse única.
Atributos-chave
iguais
Tipos União
• Categoria parcial – controla a união de subconjuntos
de entidades nas superclasses;
Agregação
■ Tipos-entidades/tipos-relacionamentos agregados
são representados como tipos-entidades/tipos-
relacionamentos comuns;
■ Pode englobar:
dois tipos-entidades e um tipo-relacionamento;
dois tipos-relacionamentos e um tipo entidade.
■ Exemplos:
39
Exemplo 1:
ALUNO
CPF_pessoa CGC_univ
N M
PESSOA ingressa UNIVERSIDADE
M
a agregação aluno
o tipo-entidade está relacionada ao
orienta
aluno é composto dos tipo-entidade
tipos-entidade pessoa N professor
e universidade e do
CPF_professor
tipo-relacionamento PROFESSOR
ingressa nome_professor
40
Exemplo 2:
N
EMPREGADO EMPREGADO trabalha
M 1
desenvolve agrega os
tipos-relacionamentos
desen volve trabalha e controla e o DEPARTAMENTO
tipo-entidade
N departamento 1
M
PROJETO PROJETO controla
41
Exemplo 3:
RG Data CRM
Nome Nome
Exemplo 3 ...
Usando RG, CRM e Data é possível identificar cada
consulta univocamente;
RG Data CRM
Nome Nome
Exemplo 3 ...
■ Onde colocar Data ?
Consulta
RG Data CRM
Nome Nome
44
Exemplo 3 ...
Elementos
Com ponentes
Entidade
Agregada
Consulta (elemento
com posto)
Paciente N Atende M Médico
RG Data CRM
Nome Nome
Relacionam ento Atributo da Entidade
Gerador da Agregada
Agregação
45
Exemplo 3 ...
Consulta
RG Data CRM
Nome Nome
46
Exemplo 3 ...
Consulta
M Médico N
Paciente N Atende
CRM Tem
RG
Data Nome
Nome
Preço
1
Recibo
47
Projeto Lógico de BD
■ Modelar agregações;
Exercícios
1. Explicar o conteúdo do modelo apresentado pelo
DER abaixo e sugerir uma alteração que permita
que um mesmo professor possa orientar um
mesmo aluno em diferentes níveis de pós-
graduação.
Nome NMat
Título
Exercícios
2. Considere o DER abaixo, propor uma extensão de tal
forma que se possa modelar o fato de que somente
algumas entrevistas resultam numa oferta/contrato de
emprego.
Candidato N Entrevista
M Empresa
RG CNPJ
Nome Nome
53
Exercícios
3. Elaborar o esquema conceitual para o BD de uma companhia. A
companhia é organizada em departamentos. Cada departamento tem um
nome e um número. Além disto, um departamento controla vários projetos,
cada um dos quais com um nome, um número de identificação e o período
de tempo no qual deve ser desenvolvido. Na referida companhia, cada
projeto somente pode ser desenvolvido por um departamento específico.
Existem somente três tipos de funcionários que trabalham na companhia:
pesquisador, secretário e de limpeza.
Para os pesquisadores, deseja-se armazenar: o nome, o endereço, o
sexo, a data de aniversário, o salário e a área de atuação. Para os secretários,
deseja-se armazenar: o nome, o endereço, o sexo, a data de aniversário, o
salário e o grau de escolaridade. Já para os funcionários de limpeza, deseja-
se armazenar: o nome, o endereço, o sexo, a data de aniversário, o salário, o
cargo e a jornada de trabalho.
54
Exercícios
4. Deseja-se criar um BD para uma agência de turismo,
contendo informações sobre recursos oferecidos pelas cidades que
fazem parte da programação de turismo da agência. As
informações a serem mantidas sobre cada cidade referem-se a
hotéis, restaurantes e pontos turísticos.
Sobre os hotéis que a cidade possui deseja-se guardar o código, o
nome, o endereço, a categoria (sem estrela, 1 estrela, 2 estrelas, ...),
os tipos de quartos que os formam (por exemplo, luxo, superluxo,
...), os números dos quartos e o valor da diária de acordo com o tipo
do quarto.
Sobre cada cidade deve-se armazenar seu nome, seu estado e a
população. Além disso, quando uma nova cidade é cadastrada no
banco de dados da agência, um código é a ela oferecido.
Exercício 4 (continuação do enunciado) ...
Cada restaurante da cidade possui um código que o identifica,
um nome, um endereço e o tipo de sua categoria (luxo, simples, ...).
Além disso, um restaurante pode pertencer a um hotel e um hotel
somente pode ser associado a um restaurante.
Diferentes pontos turísticos da cidade estão cadastrados no
sistema: igrejas, casas de show e museus. A agência de turismo
somente trabalha com estes três tipos de pontos turísticos. Além da
descrição e do endereço, igrejas devem possuir como característica a
data e o estilo de construção. Já casas de show devem armazenar o
horário de início do show (igual para todos os dias da semana) e o
dia de fechamento (apenas um único dia na semana), além da
descrição e do seu endereço. Os museus devem armazenar o seu
endereço, descrição, data de fundação e n. de salas. Um museu pode
ter sido fundado por vários fundadores. Para estes, deve-se
armazenar o seu nome, a data de nascimento e a data da morte, a
nacionalidade e a atividade profissional que desenvolvia. Além disso,
um mesmo fundador pode ter fundado vários museus. Quando
qualquer ponto turístico é cadastrado no sistema, ele também recebe
um código que o identifica. O mesmo é válido para fundadores.
57
M N
CE1 CR CE2
(Min, Max) (Min, Max)
60
Vejamos um exemplo:
Aluno N 1
(0, 1) Orienta Professor
(0, N )
1 1
CE1 Rel. (0, 1) CE2
(0, 1)
1 N
CE1 Rel. CE2
(0, N) (0, 1)
N M
CE1 (0, M ) Rel. CE2
(1, N)
1 N CE2
CE1 Rel. (1, 1) CE2
(0, N)
64
(0, M)
CE1 Rel. CE2 Toda entidade de CE1
(2, N) deve estar associada a
ao menos 2 entidades de
CE2
(1, 8)
Rel. CE2 Toda entidade de CE2
CE1 deve estar associada a no
(2, N)
máximo 8 entidades de
CE1