Você está na página 1de 75

Fundamentos de Banco de Dados

2013/1
Aula 3

Pablo Ariel do Prado Lpez

Fundamentos de Banco de Dados

05/03/2013

Agenda
Correo Exerccios / Reviso
Modelo e Diagrama ER
Especializao / Generalizao
Herana
de Atributos
Mltipla

Entidade Associativa / Agregao


Regras de Integridade

Exerccios de Fixao
Exerccios Extra Classe
Fundamentos de Banco de Dados

05/03/2013

Exerccio
Um berrio deseja informatizar suas operaes.
Quando um beb nasce, algumas informaes so
armazenadas sobre ele, tais como:
nome, data do nascimento, peso do nascimento, altura,
a me deste beb e o mdico que fez seu parto.

Para as mes, o berrio tambm deseja manter


um controle, guardando informaes como:
nome, endereo, telefone e data de nascimento.

Para os mdicos, importante saber:


CRM, nome, telefone celular e especialidade.
Fundamentos de Banco de Dados

05/03/2013

Resposta

Fundamentos de Banco de Dados

05/03/2013

Resposta

Fundamentos de Banco de Dados

05/03/2013

Exerccio
Uma floricultura deseja informatizar suas operaes.
Inicialmente, deseja manter um cadastro de todos os
seus clientes, mantendo informaes como:
RG, nome, telefone e endereo.

Deseja tambm manter um cadastro contendo


informaes sobre os produtos que vende, tais como:
Nome do produto, tipo (flor, vaso, planta,...), preo e
quantidade em estoque.

Quando um cliente faz uma compra, a mesma


armazenada, mantendo informao sobre:
Cliente que fez a compra, a data da compra, o valor total e os
produtos comprados.
Fundamentos de Banco de Dados

26/02/2013

Resposta

Fundamentos de Banco de Dados

05/03/2013

Exerccio

Fundamentos de Banco de Dados

05/03/2013

Resposta

Fundamentos de Banco de Dados

05/03/2013

Exerccio

Fundamentos de Banco de Dados

05/03/2013

Modelo ER (Reviso)
O que um Modelo ER?
Quais as formas que ele pode ser representado,
suas siglas e o que cada uma significa?
Quais os objetos bsicos de um modelo ER?
O que uma entidade fraca?
Como resolvemos um relacionamento vrios
para vrios no modelo? Porque essa soluo
adotada?
Fundamentos de Banco de Dados

05/03/2013

Modelo ER (Reviso)
Traduo de relacionamentos orientada
sempre pela cardinalidade mnima.
Se houverem relacionamentos 1:1, verifique se
no melhor fundir as 2 tabelas em uma nica.
A chave primria colocada sempre na tabela
que corresponde ao lado N do relacionamento
1:N.
Relacionamentos N:N sempre geram uma
terceira, com as chaves primrias das 2 tabelas
originais.
Fundamentos de Banco de Dados

05/03/2013

Especializao
Atravs deste conceito possvel atribuir
propriedades
particulares
a
um
subconjunto
das
ocorrncias
(especializadas) de uma entidade
genrica.

Fundamentos de Banco de Dados

05/03/2013

Especializao

Fundamentos de Banco de Dados

05/03/2013

Especializao
Alm de relacionamentos e atributos, propriedades
podem ser atribudas a entidades atravs do conceito de
generalizao/especializao.
Atravs deste conceito possvel atribuir propriedades
particulares a um subconjunto das ocorrncias
(especializadas) de uma entidade genrica.
No
MER,
o
smbolo
para
representar
generalizao/especializao um tringulo isscele. A
especializao da entidade CLIENTE dividida em dois
subconjuntos, as entidades PESSOA FSICA e PESSOA
JURDICA, cada uma com propriedades prprias.
Fundamentos de Banco de Dados

05/03/2013

Especializao
Associada ao conceito de generalizao/especializao est a ideia
de herana de propriedades.
Herdar propriedades significa que cada ocorrncia da entidade
especializada possui, alm de suas prprias propriedades (atributos,
relacionamentos e generalizaes/especializaes), tambm as
propriedades da ocorrncia da entidade genrica correspondente.
Assim, a entidade PESSOA FSICA possui, alm de seus atributos
particulares, CPF e Sexo, tambm todas as propriedades da
ocorrncia da entidade CLIENTE correspondente, ou seja, os
atributos Nome e Cdigo, o seu identificador (atributo Cdigo).
Resumindo, toda PESSOA FSICA tem como atributos Nome, Cdigo
e Sexo, identificada pelo Cdigo e est obrigatoriamente
relacionada a exatamente um CLIENTE. Da mesma maneira, toda
PESSOA JURDICA tem como atributos Nome, Cdigo, CNPJ e Razo
Social, identificada pelo Cdigo e est obrigatoriamente
relacionada a exatamente um CLIENTE.
Fundamentos de Banco de Dados

05/03/2013

Especializao

Fundamentos de Banco de Dados

05/03/2013

Especializao
Vamos
supor
uma
entidade
com
especializaes:
Entidade: Pessoa Atributos: Cdigo, Nome,
Endereo e Telefone
Entidade: Pessoa Fsica Atributos: Todos os
atributos de Pessoa, CPF, RG
Entidade: Pessoa Jurdica Atributos: Todos
os atributos de Pessoa, CNPJ, IE, Razo Social
Fundamentos de Banco de Dados

05/03/2013

Especializao
As entidades Pessoa Fsica e Jurdica so
especializaes da entidade Pessoa.
Como representar isso no banco de
dados?

Fundamentos de Banco de Dados

05/03/2013

Especializao
Temos 2 alternativas:
1) Criar uma nica tabela para todas as
especializaes
e
incluir
um
campo
diferenciador: Seria juntar todos os tipos de
Pessoa, em uma nica tabela e acrescentar mais
um campo para identificar a Pessoa. Exemplo:
Pessoa: Cdigo, TipoDePessoa, Nome, Endereo,
Telefone, CPF, RG, CNPJ, IE, RazaoSocial

Fundamentos de Banco de Dados

05/03/2013

Especializao
2) Criar uma tabela para cada especializao e
definir mais um campo identificador
Pessoa: Cdigo, Nome, Endereo, Telefone
Pessoa_Fisica: CodPessoa, CPF, RG
Pessoa_Juridica:
CodPessoa,
CNPJ,
RazaoSocial

Fundamentos de Banco de Dados

IE,

05/03/2013

Especializao
A vantagem da primeira alternativa que no
precisaremos
fazer
junes
da
tabela
generalizada (Pessoa) com a tabela especializada
(Pessoa Fsica ou Jurdica) quando precisarmos de
informaes especficas. Outra vantagem que a
chave primria da tabela Pessoa fica armazenada
somente 1 vez no banco de dados. A
desvantagem que, ao fazermos uma consulta
no banco de dados, a linha inteira (todos os
campos) so carregados na memria, mas
sabemos que havero campos em branco,
dependendo do tipo de Pessoa cadastrada
Fundamentos de Banco de Dados

05/03/2013

Especializao
Na segunda alternativa, h a necessidade de fazer
junes quando formos obter todas as
informaes de uma Pessoa. Porm, a vantagem
que teremos somente os dados necessrios
sem a necessidade de carregar todos os campos
na memria, gerando mais acessos ao banco de
dados. As chaves primrias de Pessoa so
repetidas nas tabelas especializadas e, quando
houver atualizao das informaes de uma
pessoa, haver a necessidade de criar uma
instruo para cada tabela especializada.
Fundamentos de Banco de Dados

05/03/2013

Especializao
Exclusiva: uma ocorrncia de entidade
genrica tem apenas uma especializao.

Fundamentos de Banco de Dados

05/03/2013

Especializao
No exclusiva: uma ocorrncia de
entidade genrica pode ter mltiplas
especializaes.

Fundamentos de Banco de Dados

05/03/2013

Especializao
O principal problema que
este tipo de especializao
apresenta que neste caso
as entidades especializadas
no podem herdar o
identificador da entidade
genrica.
Fundamentos de Banco de Dados

05/03/2013

Especializao
Ao invs do conceito de
especializao. O modelo deveria
conter
trs
relacionamentos,
associando a entidade PESSOA com
as entidades correspondentes a
cada um dos papis de PESSOA
(PROFESSOR, FUNCIONRIO e
ALUNO).
Fundamentos de Banco de Dados

05/03/2013

Especializao
A generalizao/especializao pode ser
classificada em dois tipos, TOTAL ou
PARCIAL,
de
acordo
com
a
obrigatoriedade ou no de a cada
ocorrncia da entidade genrica
(CLIENTE) corresponder uma ocorrncia
da entidade especializada (PESSOA
FSICA/PESSOA JURDICA).
Fundamentos de Banco de Dados

05/03/2013

Especializao Total
Para cada ocorrncia da entidade
genrica existe sempre uma ocorrncia
em uma das entidades especializadas.

Fundamentos de Banco de Dados

05/03/2013

Especializao Total

Fundamentos de Banco de Dados

05/03/2013

Especializao Parcial
Nem toda ocorrncia da entidade
genrica
possui
uma
ocorrncia
correspondente em uma entidade
especializada.

Fundamentos de Banco de Dados

05/03/2013

Especializao Parcial
Indica que nem todo
FUNCIONRIO
MOTORISTA ou
SECRETRIA

Fundamentos de Banco de Dados

05/03/2013

Especializao
Compartilhada
Indica que, em uma hierarquia de
generalizao/especializao, uma ocorrncia
de entidade genrica pode aparecer em vrias
entidades nas folhas da rvore de
generalizao/especializao.

Fundamentos de Banco de Dados

05/03/2013

Especializao
Compartilhada

A Especializao compartilhada, no exemplo, indica que uma


pessoa pode ser professor e aluno e funcionrio ao mesmo tempo.
Fundamentos de Banco de Dados

05/03/2013

Generalizao
Processo inverso da Especializao.
Resultado da unio de dois ou mais conjuntos
de entidades de nvel inferior produzindo um
conjunto de entidades de nvel superior.
Por qu? Atributos so comuns a dois ou mais
conjuntos de entidades.

Fundamentos de Banco de Dados

05/03/2013

Generalizao
Generalizao e Especializao podem
conviver no mesmo conjunto de entidades

Fundamentos de Banco de Dados

05/03/2013

Generalizao
Exemplo: cada empregado ou um secretrio
ou um encarregado. Cada secretrio ou
encarregado tem um gerente, que por sua vez,
um empregado

Fundamentos de Banco de Dados

05/03/2013

Resumo
Especializao: resultado da separao de um
conjunto de entidades de nvel mais alto
(superclasse), formando um conjunto de
entidades de nvel mais baixo (subclasse).
Generalizao: Resultado da unio de dois ou
mais conjuntos de entidades de nvel mais
baixo produzindo um conjunto de entidades
de nvel mais alto.
Fundamentos de Banco de Dados

05/03/2013

Herana de Atributos
Cada ocorrncia da entidade especializada
possui, alm de suas prprias propriedades,
tambm as propriedades da ocorrncia da
entidade genrica correspondente

Fundamentos de Banco de Dados

05/03/2013

Herana de Atributos
Cada instncia da entidade especializada
possui,
alm de suas prprias
propriedades, tambm as propriedades
da instncia da entidade genrica
correspondente
Atributos
Relacionamentos
Generalizaes ou especializaes
Fundamentos de Banco de Dados

05/03/2013

Herana Mltipla
Uma mesma entidade sendo a
especializao de diversas entidades
genricas.

Fundamentos de Banco de Dados

05/03/2013

Herana Mltipla

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Um relacionamento uma associao entre
entidades.
Na modelagem ER no foi prevista a
possibilidade de associar uma entidade com
um relacionamento ou ento de associar
dois relacionamentos entre si.
Limitao do Modelo E-R no consegue
expressar
relacionamentos
entre
relacionamentos.
Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa

Considere o modelo acima

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Vamos supor que precisemos saber quais
medicamentos
existem
e
que
medicamentos foram prescritos em cada
consulta.
Como modelar esta associao se
consulta um relacionamento?

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Criamos
ento
uma
entidade
MEDICAMENTOS
para
saber
quais
medicamentos existem.
A questo : com que entidade devemos
associar MEDICAMENTO?
No podemos associar a MDICO, seno s
saberamos que o mdico prescreveu o
MEDICAMENTO sem saber para quem...
Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Se ligarmos o MEDICAMENTO ao PACIENTE,
no saberamos qual mdico prescreveu tal
medicamento...
A sada relacionar o Medicamento
consulta, ou seja,
Deseja-se
relacionar
uma
Entidade
(Medicamento) a um relacionamento
(Consulta), o que no permitido no modelo
ER...
Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Para isto criou-se um conceito especial, o
de entidade associativa.
Ele nada mais do que uma redefinio
de um relacionamento para que ele seja
tratado tambm como uma entidade...
Graficamente, traa-se um retngulo em
volta do losango do relacionamento.
Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Soluo: consulta torna-se uma entidade
associativa
Entidade que representa (agrega) uma associao
entre entidades.
a redefinio de um relacionamento, que passa
a ser tratado como se fosse tambm uma
entidade

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Mecanismo de agregao, a
transformao de um conjunto de
relacionamentos em conjunto de
entidades.
Abstrao
atravs
da
qual
relacionamentos so tratados como
entidades de nvel mais alto.
Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa
Outra alternativa substituir
relacionamento por uma entidade.

Fundamentos de Banco de Dados

05/03/2013

Entidade Associativa

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Os conceitos de Entidade, Relacionamento e
Atributo no so suficientes para descrever
todas as propriedades dos dados de um
esquema ER.

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Se uma pessoa participa
associao casamento , ento
seu estado civil deve ser
'casado'

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Em geral SGBDs, as RI so verificadas por
programas ad hoc, criados na fase de
implementao do BD.
Outras regras seriam possveis neste mesmo
exemplo:
Se uma pessoa participa a associao casamento
com o papel marido ento sexo=M'
Se uma pessoa participa a associao casamento
com o papel esposa ento sexo=F'
Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Definem os estados possveis do
BD.
Se os valores do BD no as
satisfazem, existe um "erro" no
BD, diz-se que o BD est
incoerente.
Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade

Domnio
Duplicidade de Chaves
Valores nulos
Integridade Referencial
Integridade Semntica.

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Domnio
Conjunto de valores permitidos para um
determinado atributo.
Exemplo: Sexo {M, F}

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Duplicidade de Chaves

terminantemente
negada
a
possibilidade de se haver chave iguais
para elemento distintos. Caso isso
ocorra, esse fenmeno pode ser
chamado de inconsistncia.

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Valores nulos
Campos identificadores no podem ser
nulos.
Observao: Espao e 0 (zero)
diferente de nulo.

Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Integridade Referencial
Campos referenciados em outras tabela
no podem ser excludos.
Para que isso no ocorra, usa-se o
principio do cancelamento.
Nota: Pode-se liberar as referencias para
que se proceda a excluso sem afetar a
integridade do BD.
Fundamentos de Banco de Dados

05/03/2013

Regras de Integridade
Integridade Semntica
Esta depende das regras de negcio.
Nota: As limitaes de linguagem e
tcnicas no podem implicar em
mudanas nos processos j existentes
no mundo real.

Fundamentos de Banco de Dados

05/03/2013

Dicas
Classificar entidades e atributos
Entidades
possuem
informaes
descritivas, atributos no
Atributos devem ser mantidos de forma
atmica
Atributos deve ser relacionados s
entidades que eles descrevem

Identificar chaves primrias


Fundamentos de Banco de Dados

05/03/2013

Dicas
Identificar os relacionamentos e seus
atributos
Determinar o grau do relacionamento
Definir
relacionamentos
ternrios
cuidadosamente
Determinar a cardinalidade

Identificar tipos-entidade forte e tiposentidade fracas


Fundamentos de Banco de Dados

05/03/2013

Dicas
Identificar
as
hierarquias
generalizao e de subconjunto
Identificar as agregaes

Fundamentos de Banco de Dados

de

05/03/2013

Exerccios
Modele o problema abaixo:
Em um banco, clientes possuem contas.
Estas contas podem ser conta corrente e
conta poupana, entre outras.
Conta corrente possui como caractersticas
nmero, saldo, data de abertura e limite do
cheque especial
Conta poupana possui os atributos nmero,
saldo, data de abertura e taxa de juros.
Fundamentos de Banco de Dados

05/03/2013

Exerccios
Uma biblioteca deseja manter informaes sobre
seus livros. Inicialmente, quer armazenar para os
livros as seguintes caractersticas: ISBN, ttulo, ano
editora e autores deste livro. Para os autores, deseja
manter: nome e nacionalidade. Cabe salientar que
um autor pode ter vrios livros, assim como um livro
pode ser escrito por vrios autores. Cada livro da
biblioteca pertence a uma categoria. A biblioteca
deseja manter um cadastro de todas as categorias
existentes, com informaes como: cdigo da
categoria e descrio. Uma categoria pode ter vrios
livros associados a ela.
Fundamentos de Banco de Dados

05/03/2013

Exerccios
Administradora de Imveis
Uma entrevista com o gerente da administradora
resultou nas seguintes informaes:
A administradora administra condomnios formados por
unidades condominiais (lotes);
Cada unidade condominial de propriedade de uma ou
mais pessoas. Uma pessoa pode possuir diversas unidades;
Cada unidade pode estar alugada para no mximo uma
pessoa.
Uma pessoa pode alugar diversas unidades.

Fundamentos de Banco de Dados

05/03/2013

Exerccios
Clnica: em uma clnica trabalham mdicos e existem
pacientes internados. Cada mdico identificado pelo seu
CRM, possui um nome e recebe um salrio na clnica. Um
mdico tem formao em diversas especialidades (ortopedia,
traumatologia, etc), mas s exerce uma delas na clnica. Para
todo paciente internado na clnica so cadastrados alguns
dados pessoais: nome, RG, CPF, endereo, telefone(s) para
contato e data do nascimento. Um paciente tem sempre um
determinado mdico como responsvel (com um horrio de
visita dirio predeterminado), porm vrios outros mdicos
podem participar do seu tratamento. Pacientes esto sempre
internados em quartos individuais, que so identificados por
um nmero e ficam em um andar da clnica.
Fundamentos de Banco de Dados

05/03/2013

Exerccios
Uma Escola tem vrias turmas e vrios funcionrios.
Uma turma tem vrios professores e vrios alunos,
sendo que um professor pode ministrar aulas em
mais de uma turma. Uma turma tem sempre aulas
na mesma sala, mas uma sala pode estar associada a
vrias turmas (com horrios diferentes). Os alunos
estudam em apenas uma turma. Elabore o MER e o
DER que responda a:
Quais os professores de uma dada turma?
Que turmas um professor ensina?
Em que salas um professor ensina?

Fundamentos de Banco de Dados

05/03/2013

Exerccios
Construa diagramas Entidade-relacionamento para as
situaes abaixo. Utilize os conceitos de generalizao,
especializao e entidade associativa.
Em uma seguradora de automveis, um cliente tem pelo
menos um carro e um carro pertence a um nico cliente. Cada
carro possui um nmero de acidentes associados a ele,
devendo ser armazenados a data, o local e uma descrio do
acidente. O acidente pode ser com vtima ou sem vtima. Se
for com vtima, devem ser armazenados um histrico
(contendo os nomes das vtimas e o tipo de leso sofrida) e o
valor gasto com indenizao das vtimas. Se for sem vtima
deve ser armazenado o valor gasto com danos materiais.

Fundamentos de Banco de Dados

05/03/2013

Exerccios
Em um hospital, um paciente pode realizar consultas com
vrios mdicos. Cada consulta pode ter vrios exames
realizados. Devem ser armazenados os dados da consulta
(data, horrio e motivo) e os dados dos exames (descrio e
resultado).
Em uma biblioteca h vrios tipos de materiais (livros, revistas
e audiovisual). Para os livros so armazenados o autor e a
editora; as revistas tm nmero, volume e data; os materiais
audiovisuais tm o nome do diretor e o tempo de durao.
Um cliente pode retirar vrios materiais e um material pode
ser retirado por vrios clientes. Para toda retirada devem ser
armazenadas a data de retirada e a data de devoluo. Os
materiais devolvidos com atraso tm uma multa. Sobre a
multa, devem ser armazenados a quantidade de dias e o valor.
Fundamentos de Banco de Dados

05/03/2013

Exerccios
Um clube deseja manter informaes sobre seus scios. Cada scio
possui no. de matrcula (nico), nome, endereo e telefone. Os
scios podem participar de atividades (aulas de ginstica, tnis,
natao, etc) e de eventos realizados pelo clube (festas, chs
beneficentes, etc). Os eventos podem ser pblicos ou privados.
Somente os chamados scios classe A podem participar dos
eventos privados do clube. Alm disso, cada scio desta categoria
pode participar das decises do clube com um certo no. de votos.
Este no. varia de scio para scio. As atividades so identificadas
por um cdigo. desejvel que se armazene tambm o nome da
atividade. Cada evento tambm identificado por um cdigo.
necessrio que se saiba a descrio e a data de cada evento.
importante ainda que o clube conhea a participao de cada scio
em cada atividade ou evento.
Fundamentos de Banco de Dados

05/03/2013

Obrigado!

Perguntas?
Dvidas?

Fundamentos de Banco de Dados

05/03/2013