Nothing Special   »   [go: up one dir, main page]

Aula3 - ER Estendido Banco de Dados

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 65

Banco de Dados

MER Estendido
Profª. Dayse Silveira de Almeida
daysesa@ufg.br

Universidade Federal de Goiás (UFG)/Regional Catalão


Curso de Ciência da Computação
2019/2
2

MER Estendido (Expandido)


■ Características:
 Introduz semântica adicional ao MER;
 Utilizado na modelagem de aplicações mais
complexas, tais como CAD/CAM, BD gráficos, BD
geográficos.
■ Conceitos:
 Subclasse, superclasse, hierarquia, herança;
 Generalização, especialização;
 União;
 Agregação.
3

Conceito geral de Generalização/Especialização

Genérico

Especializa Generaliza Is-a


(detalha) (abstrai)

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

Aluno Professor Funcionário

Os conceitos superclasse (supertipo), subclasse (subtipo),


herança, generalização, especialização estão intimamente
relacionados.
5

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

Cada entidade que é membro de qualquer uma das


subclasses também é um empregado
6

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.

Nome Pessoa possui Plano Saúde


Idade
Altura
Vínculo
Vínculo

Aluno Professor Funcionário


9

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

Aluno Professor Funcionário N#Func


Função
10

Herança ... (múltiplos níveis)


Nome Pessoa
Idade
Altura
Vínculo
Vínculo
N#Func
Função
N#Mat
Aluno Professor Funcionário
Curso

Curso Função

Graduação Pós-Grad. Técnico Secretário

Semestre Formação Especialidade


11

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;

Atributos Nome Pessoa Atributos


Genéricos
Idade Específicos
Altura
Vínculo
Vínculo
N#Mat N#Func
Curso

Aluno Professor Funcionário


Atributos
Específicos N#Prof
13

Especialização ...
▪ CASO 2:
▪ existem relacionamentos dos quais participam apenas
entidades de alguns subconjuntos específicos;
Pessoa

Vínculo

Aluno Professor Funcionário

cursa Disciplin a ministra


14

Generalização
 Pode ser visto como o processo inverso à especialização;

 Resultado da união de dois ou mais tipos-entidade de


nível mais baixo (subclasse), produzindo um tipo-
entidade de nível mais alto (superclasse);

 É uma abstração de um conjunto de entidades.

 Procedimento:
■ Suprimir diferenças entre os tipos-entidade;
■ Identificar atributos em comum, generalizando-os em uma
superclasse.
15

Generalização & Especialização

nome_empregado CPF_empregado
EMPREGADO

tipo_empregado

generalização d especialização

SECRETÁRIO TÉCNICO ENGENHEIRO

idioma grau_técnico tipo_engenheiro


16

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.)

■ Outras denominações comuns:


 subclasses definidas por predicado;
 subclasses definidas por condição.
17

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)

■ Subclasses que se sobrepõem:


 uma entidade de uma superclasse pode ser membro
de mais do que uma subclasse;
o “o” (overlap)
18

Restrição de Disjunção ...

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 ...

Nome Pessoa Sobreposição:


Função Um funcionário pode
acumular mais de uma
Função função ao mesmo tempo

Vigia Secretário Bibliotecário

Turno Nível Seção


20

Restrição de Completude

■ Total - cada entidade de uma superclasse deve ser


membro de alguma subclasse na especialização;
superclasse

■ Parcial - uma entidade de uma superclasse pode


não pertencer a qualquer uma das subclasses;
superclasse
21

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.

Grad. Pós-Gr. Especializ.

Semestre Nível N#Horas


22

Especialização parcial

Nome Pessoa
Função
Especialização Parcial:
Um funcionário pode ser,
Função
por exemplo, Gerente de
Recursos Humanos.

Vigia Secretário Bibliotecário

Turno Nível Seção


23

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.

Grad. Pós-Gr. Especializ.

Semestre Nível N#Horas


25

Parcial disjunta

Há disciplinas que não são nem de


Sigla Disciplina graduação nem de pós-graduação.
Nome Ex: disciplinas para cursos de
Tipo treinamento em empresas
Tipo

Uma disciplina não pode ser


Grad. Pós-Gr. de graduação e de pós ao
mesmo tempo

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

Um funcionário pode acumular


mais de uma função, como
Vigia Secretário Bibliotecário
Secretário e Bibliotecário ao
mesmo tempo.
Turno Nível Seção
28

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

 cada subclasse participa em apenas um relacionamento


superclasse/subclasse.

Especialização
■ Herança múltipla: reticulada

 cada subclasse pode participar em mais do que um


relacionamento superclasse/subclasse.

■ Exemplo:
30

CPF_empregado
EMPREGADO
nome_empregado

tipo_empregado cargo forma_pagamento


d

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.

• Ex.: ENGENHEIRO_GERENTE é uma subclasse nos três


diferentes relacionamentos superclasse/subclasse;
• Cada um dos três tem uma superclasse única.
• Intersecção – subclasse de cada uma das três: ENGENHEIRO,
GERENTE, MENSALISTA.

• Necessidade: modelar um único relacionamento


superclasse/subclasse com mais de uma superclasse;
• Superclasses representam diferentes tipos de entidade.

• Subclasse tipo união ou categoria – subclasse é uma


coleção de objetos que é subconjunto da união de diferentes
tipos entidade.
Tipos União
• Exemplo: Em um BD para o registro de veículos, um
proprietário de um veículo pode ser uma pessoa, um
banco (com direito de alienação) ou uma empresa.
Necessitamos criar uma classe (coleção de entidades)
que inclua entidades dos três tipos, para desempenhar o
papel de proprietário do veículo.
• PROPRIETÁRIO – subclasse da união dos três conjuntos.
Tipos
União

Atributo de herança é mais seletivo:


PROPRIETÁRIO herda os atributos da
EMPRESA, da PESSOA ou do BANCO,
dependendo da superclasse à qual a
entidade pertence.
Tipos Atributos-chave
diferentes
União

Atributo de herança é mais seletivo:


PROPRIETÁRIO herda os atributos da
EMPRESA, da PESSOA ou do BANCO,
dependendo da superclasse à qual a Categorias parciais
entidade pertence.

Atributos-chave
iguais
Tipos União
• Categoria parcial – controla a união de subconjuntos
de entidades nas superclasses;

• Categoria total – controla a união de todas as


entidades em suas superclasses.
• Pode ser representada como uma especialização total;
• Se duas classes representam o mesmo tipo entidade e
compartilham numerosos atributos, incluindo os mesmos atributos-
chave, a especialização/generalização é apropriada.
38

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

nome_pessoa data_ingresso nome_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:

Paciente N Atende M Médico

RG Data CRM
Nome Nome

Como identificar cada atendimento (consulta)?


42

Exemplo 3 ...
Usando RG, CRM e Data é possível identificar cada
consulta univocamente;

Paciente N Atende M Médico

RG Data CRM
Nome Nome

⇒ compor uma entidade Consulta a partir de um


relacionamento entre uma entidade Paciente e uma
entidade Médico, com uma Data específica.
43

Exemplo 3 ...
■ Onde colocar Data ?
Consulta

Paciente N Atende M Médico

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 ...

■ Chave de Consulta: {RG, CRM, Data}

Consulta

Paciente N Atende M Médico

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

Algumas observações sobre Agregação


▪ Toda Agregação sempre é gerada a partir de
somente um conjunto de relacionamentos;

▪ Toda instância do conjunto de


relacionamentos gera pelo menos um
elemento composto.
48

Projeto Lógico de BD

■ Classificar tipos-entidades e atributos


 tipos-entidade possuem informações
descritivas, atributos não;
 atributos devem ser mantidos de forma atômica;
 atributos devem ser relacionados às entidades que
eles descrevem.

■ Identificar chaves primárias


49

Projeto Lógico de BD ...


■ Identificar tipos-relacionamentos e seus atributos:
 determinar o grau dos tipos-relacionamentos;
 identificar as restrições que se aplicam sobre cada
tipo- relacionamento:
■ Cardinalidade;
■ Participação;

■ Identificar tipo-entidade forte e tipo-entidade


fraca
50

Projeto Lógico de BD ...


■ Modelar hierarquias de generalização:
 identificar atributos e relacionamentos comuns;
 determinar as restrições de disjunção e de
completude;

■ Modelar agregações;

→ Um projetista de BD necessita de um bom


conhecimento do minimundo que está sendo
modelado.
51

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.

Professor M Orienta N Aluno-


Pós

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ício 3 (continuação do enunciado) ...

Os cargos dos funcionários responsáveis pela limpeza são


hierárquicos. Assim, deseja-se armazenar também, para cada
funcionário de limpeza, informações sobre o funcionário de
limpeza que o gerencia. Os funcionários da companhia são
identificados por meio de um código de identificação, e podem
estar associados a apenas um único departamento.
Funcionários que são pesquisadores podem trabalhar em
diversos projetos, independentemente desses projetos estarem
sendo desenvolvidos no mesmo departamento no qual o
empregado está associado. Deve-se armazenar o número de horas
semanais trabalhadas por cada pesquisador em cada projeto no
qual ele trabalha.
Deve-se armazenar também informações sobre os
dependentes de cada funcionário para propósitos de ajuda família.
Deve-se armazenar o nome, o sexo e a data de aniversário, além
do grau de parentesco com o funcionário.
55

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

Exercício 4 (continuação do enunciado) ...


Casas de show podem possuir restaurante. Quando o cliente da
agência reserva um passeio para uma casa de show, ele já sabe se esta
possui restaurante e qual o preço médio da refeição, além da especialidade
(comida chinesa, japonesa, ...). Dentro de uma casa de show, apenas um
único restaurante pode existir.
Faça o esquema conceitual para o banco de dados acima descrito.
Defina restrições de participação total e parcial de forma apropriada.
58

Material extra – Multiplicidade.


Cardinalidade x Multiplicidade:

■ Cardinalidade - determina o número máximo de


relacionamentos de um conjunto de relacionamentos (CR)
dos quais uma entidade pode participar;

■ Participação Total em CR- determina a participação


obrigatória de cada entidade de um conjunto de entidades
(CE) em um CR;

■ No entanto, a idéia de “quantidade” em si não é suportada


nem pelo conceito de Cardinalidade nem pelo de
Relacionamento com Participação Total.
59

▪ Por este motivo, alguns autores usam os conceitos


de multiplicidades mínimas e máximas:

M N
CE1 CR CE2
(Min, Max) (Min, Max)
60

Vejamos um exemplo:
Aluno N 1
(0, 1) Orienta Professor
(0, N )

▪ Cardinalidade N:1 do CR indica que: um aluno pode


ter nenhum ou no máximo 1 orientador, e um
professor pode orientar nenhum ou vários alunos;

▪ Multiplicidade correspondente seria: (0,1) e


(0,N).
61

▪ Para cada CE em um papel do CR indica-se a Quantidade


Mínima e a Quantidade Máxima de instâncias de
relacionamento das quais uma entidade pode participar;

▪ Dada uma entidade e1 de CE1, definem-se os números mínimo


e máximo de entidades de CE2 com as quais e1 pode se
relacionar;

▪ Multiplicidade - explora um conjunto de situações muito mais


ricas semanticamente, englobando os conceitos de
Cardinalidade e de Participação Total.
Outro exemplo:
▪ O que fazer se quisermos restringir o
relacionamento de tal forma que um professor
oriente pelo menos dois alunos?

▪ Cardinalidade e a participação total não são


suficientes para representar a informação ⇒
podemos usar multiplicidade.

Aluno Orienta Professor


(0, 1) (2, N )
63

Para algumas combinações de multiplicidade podem existir


combinações de cardinalidade + restrição de
participação correspondentes. Exemplos:

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

Diversas outras combinações de multiplicidades não oferecem


combinações correspondentes. Exemplos:

(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

Toda entidade de CE1


(1, 1) deve estar associada a
CE1 Rel. CE2
CE2
(2, 4) no mínimo 2 e no
máximo 4 entidades de
CE2
Referências
• Baseado no material do Prof. Eduardo R. Hruschka,
ICMC-USP.

• ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de


Dados. São Paulo: Editora Pearson, 2005.

Você também pode gostar