Escolar Documentos
Profissional Documentos
Cultura Documentos
Chaves estrangeiras
o Fazem referência a outra tabela.
Conceitos de um DER
Entidades Fracas
Dependentes de outra entidade.
Conceitos de um DER
Generalização/especialização
Generalização conjunto de entidades visto como uma
entidade genérica.
Especialização algumas ocorrências de entidades
possuem atributos ou relacionamentos adicionais, sendo
especializadas em uma ou mais entidades.
Conceitos de um DER
Agregação
Relacionamento visto como uma entidade.
Exercício1
Vídeo-locadora: Uma vídeo-locadora trabalha com o aluguel de
fitas, cd's e cartuchos de jogos. Todos os 3 tem um código , o
titulo que o descreve e a categoria. As fitas possuem a sinopse e
os artistas principais; os Cd's, o nome do cantor e uma descrição
das músicas contidas. Os cartuchos possuem apenas o nome do
fabricante.
A locadora empresta apenas para os clientes cadastrados. O seu
nome, endereço, data de nascimento e telefone ficam
armazenados junto com um código numérico seqüencial atribuído
ao cliente no momento do cadastro.
Cada cliente pode alugar um ou mais objetos de locação (fita, cd
ou cartucho), sendo que cada um deste só pode ser alugado por
apenas um cliente em um determinado momento(data).
Exercício 2
Clínica médica: em uma clínica trabalham médicos e
existem pacientes internados. Cada médico é identificado
pelo seu CRM, possui um nome e recebe um salário na
clínica. Um médico tem formação em diversas
especialidades (ortopedia, traumatologia, etc), mas só
exerce uma delas na clínica. Para todo paciente internado
na clínica são cadastrados alguns dados pessoais: nome,
RG, CPF, endereço, telefone(s) para contato e data do
nascimento. Um paciente possui um determinado médico
como responsável (com um horário de visita diário
predeterminado), porém vários outros médicos podem
participar do seu tratamento. Pacientes estão sempre
internados em leitos individuais, que são identificados por
um número e ficam em um andar da clínica.
Exercício 3
Campeonato de voley: Cada equipe é caracterizada pela sua
sigla, nome, cidade, estado, nome do técnico, número de títulos
importantes já conquistados. Cada equipe é composta por no
máximo 15 jogadores. Cada jogador tem armazenado seu nome,
CPF, data de nascimento e especialidade. Cada jogador está
associado a no máximo um time.
De cada partida é importante saber a data, público, renda e placar.
Para cada partida é interessante saber também quais foram os
jogadores que participaram, bem como a pontuação de cada um.
Um patrocinador é composto por código e nome. Este pode
patrocinar várias equipes e/ou jogadores. Enquanto um jogador ou
um time pode ter um único patrocinador.
Obs.:
• O sistema só guarda dados do campeonato atual.
• No meio do campeonato não há troca de jogadores, nem de
patrocinadores.
Vantagens do projeto
conceitual
Abstração de dados de alto nível.
Indicação de dados e seus relacionamentos da
forma como percebidos no mundo real.
Independência de detalhes de representação de
SGBDs.
Fácil compreensão pelo usuário leigo.
Facilita a validação da modelagem dos dados.
Facilita a manutenção dos dados.
Modificação dos requisitos.
Migração de SGBD.
Tradução para qualquer modelo de SGBD.
Projeto lógico
Conversão do esquema conceitual para o
esquema de representação de um SGBD
(esquema lógico ou DED).
Forma de realização: aplicação de regras
de conversão.
Resultado: esquema lógico (tabelas,
restrições de integridade, transações,
visões, autorizações de acesso, índices, ...).
Exemplo de projeto lógico
(1,1) (1,1)
Produto Possui Estoque
Projeto lógico
(0,1) (1,1)
(1,1) (0,1)
Paciente Ocupa Leito
Projeto lógico
(0,1) (0,1)
(0,1) (0,1)
Homem Casado Mulher
Projeto lógico
1N
(1,1) (0,N)
Médico Resp. Paciente
Projeto lógico
NN
(0,N) (0,N)
Médico Trata Paciente
Projeto lógico
Atributo multivalorado.
Generalização / Especialização.
Chave estrangeira.
Remoção / alteração em cascata.
Remoção / alteração proibida.
Projeto físico
Definição do esquema lógico em um
SGBD adequado ao modelo.
Forma de realização: DDL do SGBD.
Resultado: esquema físico.
Exemplo de projeto físico
Servidores (Matrícula, Nome, Função, CódigoDepto)
chave primária: Código
chave estrangeira: CódigoDepto referência para Departamentos
Função IN {professor, funcionário}
Departamentos (Código, Nome)
chave primária: Código
PEDIDO CLIENTE NOME TELEFONE PRODUTO DESCRIÇÃO QTDE VALUNIT VALTOT TOTPED VENDEDOR NOMEVEND
2625 A AAA 111 001 ARROZ 10 1,00 10,00 290,00 I PEDRO
2625 A AAA 111 002 FEIJ AO 50 2,00 100,00 290,00 I PEDRO
2625 A AAA 111 003 FARINHA 60 3,00 180,00 290,00 I PEDRO
3001 B BBB 222 003 FARINHA 20 3,00 60,00 120,00 2 ANTONIO
3001 B BBB 222 004 OLEO 15 4,00 60,00 120,00 2 ANTONIO
4954 A AAA 111 001 ARROZ 40 1,00 40,00 70,00 3 SILVIA
4954 A AAA 111 003 FARINHA 10 3,00 30,00 70,00 3 SILVIA
Normalização
Anomalias de atualização:
Anomalia de inclusão: para ser incluído um
cliente este tem que obrigatoriamente
pertencer a um pedido.
Anomalia de exclusão: ao ser excluída uma
linha, caso ela seja a única linha em que um
produto foi vendido os seus dados
desaparecerão.
Anomalia de alteração: para se alterar o
telefone de um cliente sou obrigado a
percorrer todas as linhas da minha tabela que
se refere àquele cliente realizando esta
alteração uma a uma.
Normalização
Dependência Funcional ( )
Dados dois elementos A e B, podemos
dizer que o elemento B é dependente
funcionalmente do elemento A se para
cada valor de A encontrado obtemos os
mesmos valores de B.
Sendo PEDIDO a chave primária podemos
dizer que todos os outros campos são
dependentes funcionalmente de PEDIDO.
Normalização
Observamos também que toda vez que o
CLIENTE A aparece o NOME e
TELEFONE também se repetem, o que
caracteriza uma outra dependência
funcional no nosso exemplo.
Toda vez que PRODUTO se repete,
também se repete DESCRIÇÃO e
VALUNIT.
Toda vez que VENDEDOR se repete, se
repete também nome vendedor.
Normalização
Atributos Multivalorados
São atributos cujo valor muda em
relação ao atributo chave da minha
tabela.
No nosso exemplo temos que
PRODUTO, DESC, QTDE, VALUNIT,
VALTOT, não são iguais no mesmo
PEDIDO (que é chave primária),
portanto estes atributos são
multivalorados.
Normalização
Dependência Parcial X Dependência
Total
Toda vez que temos uma chave composta os atributos
que possuírem dependência sobre uma parte da chave
são ditos parcialmente dependentes, enquanto os outros
são ditos completamente dependentes.
A B C D
Normalização
Dependência Transitiva
Temos dependência Transitiva, quando o atributo
possuir dependência a outro que não pertence a
chave primária.
Cód Nome*
Paciente Nome
Plano Plano
Formas Normais
1ª Forma Normal (1FN)
Dizemos que uma relação está na primeira forma
normal se todos os seus atributos forem atômicos,
ou seja, não possuir atributos multivalorados.
A B
A B C D
A C D
Formas Normais
2ª Forma Normal (2FN)
Dizemos que uma relação está na 2FN, se ela
estiver na 1FN e nenhum de seus atributos possuir
dependência parcial.
A B C D E
A B C E
B D
Formas Normais
3ª Forma Normal (3FN)
Uma relação está na 3FN, se ela estiver na 2FN e
não possuir dependência transitiva entre seus
atributos que não façam parte da chave primária.
A B C D
A B C C D
Normalização - Exercícios
A B C D E F G
Normalização - Exercícios
2. As tabelas abaixo estão ferindo qual forma
normal? Consertem (Mostre o DED
consertado).
a) Funcionários (matricula, nome, salário, filhos)
b) Departamento (coddepto, descrição,
gerencia, nome_gerencia)
c) Produção(coddepto, codprojeto, mês,
n_horas, nome_projeto)
Normalização - Exercícios
3. Normalize (3FN):
Particionamento vertical
Ex.: Algumas colunas são bem mais
acessadas do que as outras.
Integração OO-Relacional
Mapeamento:
A princípio, cada tipo de objeto persistente
(Classe) pode ser mapeado para uma tabela no
banco de dados relacional.
Atributos de objetos que armazenam valores de
tipos de dados primitivos (char, boolean, integer,
real, etc.) são mapeados diretamente para
colunas das tabelas.
Integração OO-Relacional
Mapeamento:
Nomes de Classes devem ser mantidos
nas Tabelas, assim como os nomes dos
atributos de instância também devem ser
mantidos para as suas colunas.
Chave primária
Objetos têm identidade. Objetos são
únicos.
Objetos possuem um OID: Object
Identifier.
Valor numérico seqüencial.
BDs Relacionais possuem Chaves
Primárias (PK).
Exemplo de mapeamento
Mapeando herança