Buscar

Banco - Parte II_MER

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 218 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 218 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 218 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados
Modelagem de dados - Modelo Entidade Relacionamentos
(MER)
Modelagem de dados1
Francisco Antonio de Sousa
xsousa@yahoo.com.br
Modelos de Banco de Dados
 Modelo de (Banco de) Dados : descrição das 
informações que estão armazenadas em um banco 
de dados.
2
Modelo de Dados
=
descrição formal da estrutura de um
banco de dados
Modelos de Banco de Dados
 Modelo Conceitual
4
Modelo Conceitual
=
modelo de dados abstrato, que 
descreve a estrutura de um banco de 
dados de forma independente de
um SGBD particular
Modelos de Banco de Dados
 Modelo Conceitual
 Também conhecido como Modelo Lógico com Base em 
Objetos;
 Registra que dados podem aparecer no banco de 
dados, mas não registra como estes dados estão 
armazenados a nível de SGBD;
 Existem vários técnicas de modelagem conceitual:
 Abordagem Entidade-Relacionamento; e
 Abordagem orientada a objetos.
5
Modelos de Banco de Dados
 Diagrama Entidade-Relacionamento (DER)
6
Cliente CidadeMora
Endereço Nome
Código Código
MODELO ENTIDADE – RELACIONAMENTO
(MER)
Modelo Entidade-Relacionamento
Modelo Entidade - Relacionamento
=
Percepção de que o mundo real é formado por um conjunto de 
objetos chamados entidades e pelo conjunto dos relacionamentos
entre estes objetos.
9
Modelo Entidade-Relacionamento
 A abordagem ER foi criada em 1976 por Peter Chen;
 Considerada padrão para modelagem conceitual;
 Maior capacidade semântica; os aspectos semânticos do modelo 
se referem a tentativa de representar o significado dos dados;
 O modelo de dados desta abordagem é o MER, representado 
graficamente por um DER.
10
Modelo Entidade-Relacionamento
 O MER é fundamentado em três conceitos básicos:
 Conjunto de Entidades; 
 Conjunto de Relacionamentos; e 
 Atributos das Entidades.
11
Modelo Entidade-Relacionamento
Entidade
12
Entidade
=
conjunto de objetos da realidade
modelada, sobre os quais deseja-se
manter informações no banco 
de dados
Modelo Entidade-Relacionamento
Entidade
 Uma entidade pode ser concreta (pessoa, 
livro), ou pode ser abstrata (empréstimo, 
viagem de férias ou um conceito);
 Instância de uma entidade: um objeto da 
coleção (ocorrência da entidade);
 Graficamente representada através de um 
retângulo que contém o nome da 
entidade. Exemplo:
13
Pessoa Departamento
Modelo Entidade-Relacionamento
 Relacionamento
14
Relacionamento
=
conjunto de associações
entre entidade
 Relacionamento
 Mostra a associação entre as instâncias das 
entidades. 
Exemplo: saber quais pessoas estão associadas a quais 
departamentos em uma organização.
 Representado graficamente através de um 
losango, ligado por linhas aos retângulos que 
representam as entidades que participam do 
relacionamento.
Modelo Entidade-Relacionamento15
Modelo Entidade-Relacionamento
 Relacionamento - Diagrama de Ocorrências
18
Entidade
DEPARTAMENTO
p3
p2
p4
p5
Entidade
PESSOA
Relacionamento
Atuam
p1,d1
p1
p2,d1 p5,d3
d1 d2 d3
Modelo Entidade-Relacionamento
 Relacionamento - Auto-Relacionamento
 Papel da Entidade: define que função uma instância 
da entidade cumpre dentro de uma instância do 
relacionamento.
19
PESSOA
CASAMENTO
esposamarido
Modelo Entidade-
Relacionamento
 Relacionamento - Auto-Relacionamento
20
p3
p2
p4
p5
p1,p3
p1
p2,p4
marido
esposa
marido
esposa
p5,p4
Modelo Entidade-
Relacionamento
 Relacionamento - Cardinalidade
21
Cardinalidade ( mínima, máxima) de
entidade em relacionamentos
=
número (mínimo, máximo) de
ocorrências de entidade associadas a 
uma ocorrência da entidade em 
questão através do relacionamento
Modelo Entidade-
Relacionamento
 Relacionamento - Cardinalidade Máxima
22
DEPARTAMENTO PESSOALotação
1 n
PESSOA
CASAMENTO
esposamarido
1 1
Modelos de Banco de Dados
 Diagrama Entidade-Relacionamento (DER)
23
Cliente CidadeMora/Tem
Endereço Nome
Código Código_CID
(1,1)(0,N)
Código_CID
Chave Primaria (PK) – Primary Key
Chave Estrangeira (FK) – Foreign Key
Modelo Entidade-
Relacionamento
 Relacionamento - Cardinalidade Máxima
 As cardinalidades máximas expressam quantas 
instâncias de uma entidade podem estar associadas, via 
relacionamento, a uma instância de outra entidade.
24
Modelo Entidade-
Relacionamento
 Relacionamento - Cardinalidade Mínima
 representa o 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;
 duas cardinalidades mínimas: 0 e 1.
 cardinalidade mínima 1 - denominada obrigatória;
 cardinalidade mínima 0 - denominada opcional.
25
Modelo Entidade-
Relacionamento
 Relacionamento - Cardinalidade Mínima
 Representada junto à cardinalidade máxima
26
ALUNO CURSOInscrição
(0,n) (1,1)
Modelo Entidade-
Relacionamento
 Atributo
27
Atributo
=
dado que é associado a cada
ocorrência de uma entidade ou de
um relacionamento
Modelo Entidade-
Relacionamento
 Atributo
 Representação gráfica:
 Na prática, atributos não são representados 
graficamente.
28
Cliente CidadeMora
Endereço Nome
Código Código
Tipos de Atributos
 Simples (Não possui características especiais)
 Compostos (Possui Itens Menores) 
 Multivalorado (Mais de uma informação) *
 Determinante (Chave Primária) ____
30
Modelo Entidade-Relacionamento
 Identificando Entidades
Um avião a jato, um cavalo puro-sangue, um livro de ficção, uma
garrafa térmica, uma chave da porta de entrada, o lápis preto, sua
borracha usada, os computadores da rede, o disquete, um quadro-
negro, sua máquina de escrever. O cachorro dobermann do vizinho, a
mesa de trabalho, o telefone sobre a mesa, a mala que transporta seus
pertences, as camisas da mala, os dois vidros de compota da cozinha,
uma carteira de dinheiro, sua agenda de compromissos, os elefantes do
circo, seu automóvel novo, etc..
31
Modelo Entidade-Relacionamento32
CONJUNTO (ENTIDADE) OBJETOS QUE PERTENCEM AO CONJUNTO 
Meios de Transporte O avião, o automóvel 
Animais O cavalo, os elefantes, o cachorro 
Utensílios Domésticos A garrafa, a mesa, o telefone, os vidros de compota 
Utensílios Escolares O livro, o lápis, a borracha, o quadro, o disquete 
Equipamentos Os computadores, a máquina de escrever 
Pertences Pessoais A chave, a mala, as camisas, a carteira, a agenda 
 
Com um nível de abstração maior:
Modelo Entidade-Relacionamento33
CONJUNTO (ENTIDADE) OBJETOS QUE PERTENCEM AO CONJUNTO 
Produtos O avião, o automóvel, os computadores, a máquina de 
escrever 
Animais O cavalo, os elefantes, o cachorro 
Utensílios A garrafa, a mesa, o telefone, os vidros de compota, o 
livro, o lápis, a borracha, o quadro, o disquete, a chave, 
a mala, as camisas, a carteira, a agenda 
 
Com um nível de abstração mais generalista:
Modelo Entidade-Relacionamento34
Com um nível de abstração extremamente especializado:
CONJUNTO (ENTIDADE) OBJETOS QUE PERTENCEM AO CONJUNTO 
Aviões Todos os t ipos de avião observados 
individualmente 
Automóveis Todos os t ipos de automóveis individualmente 
Cachorros Todos os t ipos de cachorros observados , 
independentemente de sua raça 
 
Modelo Entidade-Relacionamento
 Identificando Entidades
35
MARIA
PEDRO
ANA
MARTA
EDUARDOANTONIO
 Identificando Entidades
36
PESSOAS
Modelo Entidade-Relacionamento
37
⚫ Identificando Entidades
SPORTAGE
ONIX
CIVIC
FOCUS
STRADA
HB20
Modelo Entidade-Relacionamento
38
⚫ Identificando Entidades
AUTOMÓVEIS
Modelo Entidade-Relacionamento
 Relacionamentos - Identificando
39
“Eduardo é proprietário de um HB20”
PESSOA AUTOMÓVELPROPRIETÁRIA
EDUARDO HB20PROPRIETÁRIO
Instância
Modelo Entidade-Relacionamento
 Relacionamentos - Caracterizando
 Nem toda PESSOA é proprietária de um AUTOMÓVEL
 Um AUTOMÓVEL pode pertencer a uma PESSOA, ou não
 Algumas PESSOAS têm mais de um AUTOMÓVEL
 Se um AUTOMÓVEL pertence a uma PESSOA ele não pertenceráa mais ninguém
40
PESSOA AUTOMÓVELPROPRIETÁRIA
(0, (0,n)1)
Modelo Entidade-Relacionamento
41
⚫ Identificando Entidades
CASA
FLAT
CABANA
APARTAMENTO
RANCHO
Modelo Entidade-Relacionamento
42
⚫ Identificando Entidades
IMÓVEIS
Modelo Entidade-Relacionamento
43
⚫ Relacionamentos 
“Eduardo mora em um Rancho”
PESSOA IMÓVEL MORA
EDUARDO RANCHO MORA
Instância
Modelo Entidade-Relacionamento
44
⚫ Relacionamentos - Caracterizando
⚫ Toda PESSOA utiliza um, e somente um IMÓVEL para morar
⚫ Um IMÓVEL nem sempre será utilizado por uma PESSOAS
⚫ Um IMÓVEL pode ser utilizado por uma ou mais PESSOAS
PESSOA IMÓVEL MORA
(1,1)n)(0,
Modelo Entidade-Relacionamento
 Relacionamentos 
45
“Eduardo possui um HB20 e um Onix e
mora em um Rancho com sua família”
PESSOA IMÓVEL MORA
AUTOMÓVELPROPRIETÁRIA
(1,1)(0,n)
(0,n)
(0,1)
Modelo Entidade-Relacionamento
Exercícios - DER – Aquecimento
(Hands in the Mass)
1. Um aluno realiza vários trabalhos. Um trabalho é 
realizado por um ou mais alunos.
2. Um diretor dirige no máximo um departamento. 
Um departamento tem no máximo um diretor. 
3. Um autor escreve vários livros. Um livro pode ser 
escrito por vários autores. 
4. Um treinador treina muitas equipes. Uma equipe só 
pode ser treinada por um treinador.
5. Um cliente realiza várias encomendas. Uma 
encomenda diz respeito apenas a um cliente. 
6. Um entregador de pizza entrega muitas 
encomendas por dia. Um cliente realiza muitas 
encomendas. Uma encomenda pode ter vários 
produtos
7. Um mecânico conserta vários carros. Um carro 
pode ser consertado por vários mecânicos.
46
Exercícios - RPG
 RPG é a sigla inglesa de Role-Playing Game, 
que em português significa "jogo de 
interpretação de personagens", é um gênero 
de videogames. Consiste em um tipo 
de jogo no qual os jogadores desempenham o 
papel de um personagem fictício. Imaginando 
que um Jogo teria os jogadores e cada um 
deles poderia interpretar somente um 
Personagem. Um personagem pode ser 
interpretado por somente um jogador. Monte o 
modelo de dados para atender a situação 
acima.
47
Exercício – Shopping Azul
Zeca o “camelô” e não o “camelo”. possui um
estabelecimento comercial alternativo no Shopping
Azul. Zeca´s Shopping é uma loja especializada na
venda de produtos importados trazidos diretamente da
fronteira para o cliente. Ocasionalmente ocorre
indisponibilidade de alguns produtos por conta de
algumas apreensões da PF,e caso os Zeca´s Clients
procure um item indisponível, ele pode encomendar
pagando antecipadamente e retirando quando o
“baguio” chegar. Faça a modelagem de dados que
atenda a empresa (idônea) acima.
48
Faça a Modelagem de dados com: 
Entidades, chaves primarias e estrangeiras 
e relacionamentos.
Criar o Banco, as tabelas e carregar os 
dados
 Dona Maria, possui uma loja de venda 
de bolos, doces, quitutes e guloseimas. 
Para fabricar seus produtos dona maria 
usa os ingredientes (em um bolo utiliza-
se vários ingredientes com quantidades 
diferentes). DM possui um site onde seus 
clientes fazem as suas encomendas, e 
pagam com cartão de credito. Os 
clientes da DM possuem uma 
pontuação de acordo com suas 
compras (R$ 1,00 = 1 ponto). Para a 
entrega das encomendas DM usa um 
Motoboy, ou os correios.
49
Exercises – Hard Level
 Draw an ER diagram (Chen) for the following scenario. Remember to 
use the extended ER concepts if necessary. Write down all constraints 
that cannot be modeled in ER in text form. You have to model a soccer 
database for the European Championship 2012. There are teams that 
are identified by their country. Each team consists of a number of
players having different positions. A team can have 2-3 goalies, 8-9 
defence, 8-9 midfield and 4-5 offence players. A player is only allowed 
to have exactly one position. Each player is identified by its player-pass-
id (ppid). Furthermore, for each player its name, birthday, age, several 
telephone numbers (mobile, home, …), number of games he played for 
his country, and the club he is currently playing for is stored. In addition, 
for goalies also the number of shutouts and the total number of goals 
against them are stored. Each team participates in a game, identified 
by an id and having a score. A game takes place in a stadium at a 
specific date. Each stadium is identified by its name, is located in a city 
and has a certain capacity. Furthermore, it has a number of seats, 
identified by a block, row-number and seat-number. Of course, the 
capacity has to be equal to the number seats in the stadium.
50
 Identificadores de Entidade
 Cada entidade deve possuir um identificador;
 Pode ser um ou mais atributos, cujos valores servem para distinguir uma 
ocorrência de outra dentro da mesma entidade;
51
Cliente
Endereço
Código
Nome
Modelo Entidade-Relacionamento
 Exemplo de Identificador com mais de um atributo.
52
PRATELEIRAS
Capacidade
Número da Prateleira
Número do Corredor
Modelo Entidade-Relacionamento
 Identificador com atributos de outra entidade, 
com quem tem um relacionamento 
(relacionamento identificador)
Entidade Fraca: entidade somente existe 
quando relacionada a outra entidade; utiliza 
como parte de seu identificador entidades 
relacionadas.
53
Cliente DEPENDENTEMora
Nome NomeCódigo Número
(0,n)(1,1)
Código
Modelo Entidade-Relacionamento
 Propriedades de um identificador de entidade:
 Deve ser mínimo: caso seja retirado um atributo do 
identificador, a ocorrência não consegue mais ser 
identificada. Ex: Código do Cliente e Nome.
 Deve possui apenas um identificador: em caso de mais 
de uma opção para identificador escolher uma. Ex: 
código do cliente e RG.
54 Modelo Entidade-Relacionamento
 Entidades Associativas
 Em que data ocorreram as consultas ? 
 Qual foi o motivo da consulta ?
 Que diagnóstico foi elaborado para a consulta em questão ?
55
MÉDICO PACIENTEconsulta
(0,n)(1,n)
Modelo Entidade-Relacionamento
MÉDICO
Código Nome Endereço Telefone Paciente DataCon Diagnóstico
01 Luis XXXX 9999 Carlos 12/03/17 XXXXXXX
01 Luis XXXX 9999 Ana 12/03/17 XXXXXXX
01 Luis XXXX 9999 Carlos 20/03/16 XXXXXXX 
02 Luisa YYYY 8888 Angela 17/02/17 XXXXXXX
02 Luisa YYYY 8888 Paula 10/04/17 XXXXXXX
03 Manoel ZZZZ 2222 Carlos 28/07/17 XXXXXXX 
PACIENTE
Código Nome Endereço Telefone Médico DataCon Diagnóstico
01 Ana YYYY 8888 Luis 12/03/17 XXXXXXX
02 Angela WWW 7777 Luisa 17/02/17 XXXXXXX
03 Carlos XXXX 9999 Luis 12/03/17 XXXXXXX
03 Carlos XXXX 9999 Manoel 28/07/17 XXXXXXX 
03 Carlos XXXX 9999 Luis 20/03/16 XXXXXXX
04 Paula ZZZZ 2222 Luisa 10/04/17 XXXXXXX 
56 Modelo Entidade-Relacionamento
 Entidades Associativas
 IMAGINE: Deseja-se criar uma Entidade para armazenar 
medicamentos e que medicamentos foram prescritos por um médico, 
para um paciente em uma determinada consulta.
57
MÉDICO PACIENTEconsulta
(0,n)(1,n)
MEDICAMENTO
Modelo Entidade-Relacionamento
 Entidades Associativas
Consegue-se a informação de que médico prescreveu determinado medicamento, mas 
que paciente o recebeu ??
58
MÉDICO PACIENTEconsulta
(0,n)(1,n)
MEDICAMENTO(0,n)
(0,n)
receita
Modelo Entidade-Relacionamento
 Entidades Associativas
Consegue-se a informação de que paciente 
recebeu determinado medicamento, mas que 
médico o prescreveu ??
59
MÉDICO PACIENTEconsulta
(0,n)(1,n)
MEDICAMENTO
(0,n)
(0,n)
recebe
Modelo Entidade-Relacionamento
 Entidades Associativas
Não é possível associar dois relacionamentos, logo....60
MÉDICO PACIENTEconsulta
(0,n)(1,n)
MEDICAMENTO
prescrito
(0,n)
(0,n)
Modelo Entidade-Relacionamento
 Entidades Associativas
61
MÉDICO PACIENTECONSULTA
(0,n)(1,n)
MEDICAMENTO
prescrito
(0,n)
(0,n)
Modelo Entidade-Relacionamento
 Entidades Associativas
62
MÉDICO PACIENTE
(0,n)(0,n)
MEDICAMENTO
prescrito
(0,n)
(0,n)
CONSULTArealiza faz
(1,1) (1,1)
Modelo Entidade-Relacionamento
63
CÓDIGO NOME ENDERECO TELEFONE
01 Luis XXXX 9999
02 Luisa YYYY 8888
03 manoel ZZZZ 2222
MÉDICO
CÓDIGO NOME ENDERECO TELEFONE
01 Ana YYYY 8888
02 Angela WWWW 7777
03 Carlos XXXX 9999
04 Paula ZZZZ 2222
PACIENTE
MÉDICO PACIENTE DATACONS DIAGNOSTICO
Luis Carlos 12/03/17 XXXXXX
Luis Ana 12/03/17 XXXXXX
Luis Carlos 20/03/16 XXXXXX
Luisa Ângela 17/02/17 XXXXXX
Luisa Paula 10/04/17 XXXXXX
Manoel Carlos 28/07/17 XXXXXX
CONSULTA
Modelo Entidade-Relacionamento
64
Avalie o Modelo de dados para o problema do Medico, Medicamento 
e Paciente e corrija se achar conveniente
MÉDICO PACIENTE
(0,n)(0,n)
MEDICAMENTO
prescrito
(0,n)
(0,n)
CONSULTArealiza faz
(1,1) (1,1)
Modelo Entidade-Relacionamento
65
Desenvolva o DER para a questão abaixo:
Uma empresa de Turismo, trabalha com excursões e 
fretamento de seus ônibus e vans. O fretamento pode 
ser feito por uma empresa, solicitando um onibus para 
determinado trajeto em uma data e horario especifico.
Os veículos são conduzidos por motoristas da empresa (ou 
terceirizados).
A empresa promove também excursões para o publico em 
geral.
Modele um banco de dados que atenda a necessidade 
acima.
Mais Exercícios.....
66
Desenvolva o DER para a seguinte situação:
Um cliente solicitou um projeto para a criação de um app (aplicativo
mobile) que tenha a seguinte característica:
- Permitir o cadastramento de lojas (bar, restaurantes, lanches) que
poderão cadastrar seus cardápios de produtos. Os produtos são
separados por categoria (bebidas, lanches, pizzas).
- As lojas precisam ter obrigatoriamente a cidade e o bairro onde
estão situadas.
- Os clientes podem fazer seus pedidos via smartphones que serão
registrados para a loja
- A loja entrega os pedidos usando entregadores
- Os clientes pagam seus pedidos usando o cartão de credito.
Exercício – Aplicativo (App)
67 Normalização
Com o surgimento e o aperfeiçoamento do
sistema relacional na década de 70, várias regras
foram definidas para a simplificação de tabelas,
recebendo o nome de formas normais.
Cada uma destas regras apresenta um critério
de adequação, e o processo de adequação de
tabelas a estas regras práticas chama-se
normalização.
Normalização
⚫ O que é?
A normalização é uma metodologia para 
projeto de BDs relacionais, uma vez que 
sugere uma organização de dados em 
tabelas. Assim sendo, a normalização é 
uma ferramenta para projeto lógico de 
BDs relacionais. 
Normalização
⚫ Qual o objetivo?
⚫ O objetivo desta técnica é evitar problemas de 
redundância e anomalias de atualização, que 
podem estar presentes em uma relação. 
Normalização
Como funciona?
A solução para resolver estes problemas é a
decomposição de uma relação em uma ou mais
relações, com base na aplicação de certas regras de
normalização (formas normais). Esta proliferação de
relações nem sempre é ideal do ponto de vista de
performance, devendo ser balanceado vantagens e
desvantagens antes da efetivação dos resultados de
uma forma normal (FN).
Formas Normais
Existem, ao todo, cinco formas normais, porém, se
diz que ao passar pela terceira forma normal, a
maioria dos bancos já estará normalizado.
Exercício-Exemplo
Tabela não normalizada
CódProj Tipo Descr Emp 
 CodEmp Nome Cat Sal DataIni TempAl 
LSC001 Novo 
Desenv. 
Sistema de 
Estoque 
2146 
3145 
6126 
1214 
8191 
João 
Silvio 
José 
Carlos 
Mário 
A1 
A2 
B1 
A2 
A1 
4 
4 
9 
4 
4 
1/11/16 
2/11/16 
3/10/16 
4/10/16 
1/11/16 
24 
24 
18 
18 
12 
PAG02 
 
Manuten
ção 
 
Sistema de 
RH 
8191 
4112 
6126 
Mário 
João 
José 
A1 
A2 
B1 
4 
4 
9 
1/05/17 
4/01/17 
1/11/17 
12 
24 
12 
 
Esquema de tabelas relacionais:
Proj (codproj, tipo, descr, (codemp, nome, cat, sal, dataini, tempal))
⚫ O parêntese apresenta aninhamento de tabelas.
⚫ No caso de tabelas aninhadas, as colunas sublinhadas
indicam a coluna ou grupo de colunas que servem
para distinguir diferentes linhas da tabela aninhada
referente a uma linha da tabela de seu nível externo.
⚫ Assim, a coluna CodProj distingue as linhas (cada uma
referente a um projeto) da tabela PROJ. Já a coluna
CodEmp, serve para distinguir diferentes linhas de
empregado dentro do grupo referente a um projeto.
Passagem à primeira forma normal (1FN)
•Diz-se que uma tabela está na primeira forma
normal, quando ela não contém tabelas aninhadas.
•O próximo passo da normalização consta da
transformação do esquema de tabela não
normalizada em um esquema relacional na primeira
forma normal.
•Portanto, a passagem à primeira forma normal
consta da eliminação das tabelas aninhadas
eventualmente existentes.
Como passar para 1FN
Para transformar um esquema de tabela não-
normalizada em um esquema da 1FN há duas
alternativas:
• Construir uma única tabela com redundância de
dados.
• Construir uma tabela para cada tabela aninhada.
Construir uma única tabela com redundância 
de dados.
Cria-se uma tabela na qual os dados das linhas
externas à tabela aninhada são repetidos para cada
linha da tabela aninhada. No caso que estamos
analisando seria o seguinte:
PROJEMP (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni, TempAl).
Neste caso, os dados aparecem repetidos para
cada linha de empregados.
Passagem à segunda forma normal (2FN)
A passagem à segunda forma normal objetiva eliminar
um certo tipo de redundância de dados.
Uma tabela encontra-se na segunda forma normal
quando, além de encontrar-se na primeira forma normal,
cada coluna não chave depende da chave primária
completa.
Uma tabela que não se encontra na segunda forma
contém dependências funcionais parciais, ou seja,
contém colunas não chave que dependem apenas de
uma parte da chave primária.
Uma tabela encontra-se na 2FN quando, além de estar na 1FN, não
contém dependências parciais.
Construir uma tabela para cada tabela aninhada.
Cria-se uma tabela referente a própria tabela que está
sendo normalizada e uma tabela para cada tabela
aninhada. O resultado seria o seguinte:
PROJ(CodProj, Tipo, Descr)
PROJEMP (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl).
 Ao se decompor desta forma, em duas tabelas, as
relações entre as informações podem ser perdidas.
Dependência funcional
⚫ Dependência funcional:Dizemos que determinada
coluna é dependente funcionalmente de outra coluna
desde que a primeira coluna determine a existência da
segunda. Por exemplo, salário é dependente
funcionalmente de código do funcionário. Isso ocorre
já que, sem funcionário não há salário.
⚫ Dependência parcial: Uma dependência funcional
parcial ocorre quando uma coluna depende apenas
de parte da chave primária composta.
⚫ Portanto, toda tabela que está na 1FN e que possui
apenas uma coluna como chave primária já está na
2FN.
⚫ O mesmo aplica-se para uma tabela que contenha
apenas colunas chave primária.
No exercício -passar para 2FN
⚫ A tabela PROJEMP deve ser examinada para procurar
dependências parciais, pois possui uma chave primária
composta.
⚫ As colunas Nome, Cat e Sal dependem, cada uma, apenas
da coluna CodEmp.
⚫ As colunas nome, categoria funcional e salário são
determinados somente pelo código do empregado. Porém,
DataIni e TempAl dependem da chave primária completa.
Como passar para 2FN
Para passarmos o esquema PROJ e PROJEMP para a segunda 
forma normal, vamos dividir a tabela PROJEMP em duas tabelas:
PROJ: (CodProj, Tipo, Descr)
PROJEMP: (CodProj, CodEmp, DataIni, TempAl)
EMP: (CodEmp, Nome, Cat, Sal)
Exemplo -Resultado - 2FN
Resumo – passos 2FN
⚫ A passagempara a segunda forma normal obedece a alguns
passos importantes:
1) Copiar para a 2FN cada tabela que tenha chave primária
simples ou que não tenha colunas além da chave.
2) Para cada tabela com chave primária composta e com pelo
menos uma coluna não chave:
a)Criar na 2FN uma tabela com as chaves primárias da tabela
na 1FN.
b)Para cada coluna não chave fazer a seguinte pergunta:
A coluna depende de toda chave ou de apenas parte dela?
Resumo – passos 2FN
Caso a coluna dependa de toda a chave completa na 2FN (a
coluna DataIni e TempAl)
→ Criar a coluna correspondente na tabela com a chave
completa na 2FN.
Caso a coluna dependa apenas de parte da chave (as colunas,
nome, sal e cat da tabela ProjEmp)
→ Criar, caso ainda não existir, uma tabela na 2FN que tenha como
chave primária a parte da chave que é determinante da coluna em
questão (tabela EMP).
Criar a coluna dependente dentro da tabela na 2FN (Colunas
nome, sal e Cat).
Passagem à terceira forma normal (3FN)
A passagem à terceira forma normal objetiva eliminar um
outro tipo de redundância.
Vamos supor que o salário do funcionário seja determinado
pela sua categoria funcional.
Neste caso, a informação de que salário é pago à uma
categoria funcional está representado redundantemente na
tabela.
As categorias funcionais se repetirão, tantas vezes quantos
empregados estiverem em uma categoria.
A passagem à 3FN objetiva eliminar este tipo de redundância
de dados.
3FN
⚫ Uma tabela encontra-se na 3FN quando, além de
estar na 2FN, toda coluna não chave depende
diretamente de chave primária, isto é, quando não há
dependências funcionais transitivas ou indiretas.
⚫ Uma dependência funcional transitiva ou indireta
acontece quando uma coluna não chave primária
depende funcionalmente de outra coluna ou
combinação de colunas não chave primária.
Dependência transitiva
Dependência transitiva: Uma 
dependência funcional transitiva ocorre
quando uma coluna, além de depender da 
chave primária da tabela, depende de 
outra coluna ou conjunto de colunas da 
tabela.
3FN
PROJ(CodProj, Tipo, Descr)
PROJEMP: (CodProj, CodEmp, DataIni, TempAl)
EMP: (CodEmp, Nome, Cat)
CAT(Cat, Sal)
Resultado 3FN
Resumo 2FN para 3FN
1) Para tabelas com duas ou mais colunas não chave.
 a) Criar uma tabela no esquema 3FN com a chave primária da tabela em
questão.
 b) Para cada coluna não chave fazer a seguinte pergunta:
 “a coluna depende de alguma outra coluna não chave”
 Caso a coluna dependa apenas da chave: Copiar a coluna para a tabela 3FN.
 Caso a coluna depender da outra coluna:
 Criar, caso ainda não exista, uma tabela no esquema na 3FN que tenha como
chave primária a coluna da qual há a dependência indireta.
 Copiar a coluna dependente para a tabela criada.
 A coluna determinante deve permanecer também na tabela original.
Considerações importantes
⚫ Para a maioria dos documentos e arquivos, a
decomposição até a 3FN é suficiente para obter um
esquema de banco de dados correspondente ao
documento.
⚫ Existem outras formas normais, como a forma normal
de Boyce/Codd, a 4FN e a 5FN.
⚫ A grande maioria dos bancos de dados estarão
normalizados até a terceira forma normal.
⚫ A normalização pode apresentar alguns problemas um
deles é o exagero na hora de normalizar as tabelas
⚫ Excesso de normalização leva à lentidão nas consultas
e relatórios.
CASE STUDIO 2.25
Desenvolva o DER:
A seguir é descrito um conjunto de informações a ser armazenada num Banco de Dados do 
departamento pessoal de uma empresa.
➢ A empresa tem um conjunto de departamentos;
➢ Cada departamento tem um conjunto de funcionários, um conjunto de projetos e um 
conjunto de escritórios;
➢ Cada funcionário tem um histórico funcional (conjunto de funções que o funcionário teve). 
Para cada função, o funcionário tem um histórico salarial (conjunto de salários que 
recebeu enquanto designado naquela função);
➢ Cada escritório tem um conjunto de telefones.
O modelo deve conter as seguintes informações:
➢ Para cada departamento: número do departamento (único), orçamento e o número de 
funcionários relativo ao gerente do departamento (único).
➢ Para cada funcionário: número de funcionário (único), número do projeto atual, número 
de escritório e número de telefone; ainda, título de cada função que teve, além da data e 
do salário relativo a cada salário que recebeu na função.
➢ Para cada projeto: número de projeto (único) e orçamento.
➢ Para cada escritório: número de escritório (único), área em metros e números (únicos) de 
telefones neste escritórios.
93
Exercícios – Departamento Pessoal
(3FN)
 Generalização/Especialização
 Imagine um ambiente hospitalar:
 MÉDICOS
 PACIENTES
 QUARTOS
 SALAS DE CIRURGIA 
 Cada conjunto destes possuirá diversos elementos 
associados a ele e isso indicará a criação de entidades 
no modelo.
94 Modelo Entidade-Relacionamento
 Generalização/Especialização
 Suponha que os MÉDICOS são divididos em categorias:
 MÉDICOS RESIDENTES
 MÉDICOS EFETIVOS
 Cada uma dessas categorias, além de características comuns, possui 
atributos distintos
 Especialidade, Nome do Médico, Local de atuação, Tempo de Permanência, 
Data de Efetivação, Data de Início da Residência, Nome do Orientador, Data 
de avaliação Prevista, Tempo de Experiência na Função
95 Modelo Entidade-Relacionamento
 Generalização/Especialização
ATRIBUTO MÉDICO RESIDENTE MÉDICO EFETIVO
Especialidade X
Nome do Médico ` X X
Local de Atuação X
Tempo de Permanência X
Data de Efetivação X
Data de Início da Residência X
Nome do Orientador X
Data de Avaliação Prevista X
Tempo de Experiência na Função X X
96 Modelo Entidade-Relacionamento
 Generalização/Especialização
97
MÉDICO
MÉDICO
RESIDENTE
MÉDICO 
EFETIVO
Generalização
Especialização
Modelo Entidade-Relacionamento
 Generalização/Especialização
 Através deste conceito é possível atribuir propriedades 
particulares a um subconjunto das ocorrências 
(especializadas) de uma entidade genérica.
 Herança de propriedades: cada ocorrência da 
entidade especializada possui, além de seus próprios 
atributos e relacionamentos, também as propriedades 
da entidade “mãe”, a entidade generalizada.
98 Modelo Entidade-Relacionamento
 Generalização/Especialização
 No DER, o símbolo é um triângulo; 
99
PESSOA
PESSOA
FÍSICA
PESSOA
JURÍDICA
Nome
Código
CNPJCPF
Sexo
CIDADE 
(0,n)(1,1)
Modelo Entidade-Relacionamento
 Generalização/Especialização
 Pode ser classificada em dois tipos: 
 Parcial : nem toda ocorrência da entidade genérica possui 
uma ocorrência correspondente em uma entidade 
especializada.
 Total : para cada ocorrência da entidade genérica existe 
sempre uma ocorrência em uma das entidades 
especializadas.
100 Modelo Entidade-Relacionamento
 Generalização/Especialização - Parcial
101
FUNCIONÁRIO
MOTORISTA SECRETÁRIA
p
Indica que nem todo 
FUNCIONÁRIO é 
MOTORISTA ou
SECRETÁRIA
Tipo de
funcionário
Modelo Entidade-Relacionamento
102
⚫ Generalização/Especialização - Total
CLIENTE
PESSOA
FÍSICA
PESSOA
JURÍDICA
t
Indica que todo 
CLIENTE é ou
PESSOA FÍSICA ou
PESSOA JURÍDICA
Modelo Entidade-Relacionamento
 Generalização/Especialização - Especialização Única
103
FUNCIONÁRIO
SECRETÁRIA
p
cargo de
funcionário
Modelo Entidade-Relacionamento
 Generalização/Especialização - Especializações 
Múltiplas
104
VEÍCULO
VEÍCULO
TERRESTRE
VEÍCULO
AQUÁTICO
AUTOMÓVEL VEÍCULO ANFÍBIO BARCO
Modelo Entidade-Relacionamento
 Generalização/Especialização 
 Podem ser:
 Mutuamente exclusivas: sempre que uma ocorrência de um entidade 
generalizada pertencer a somente uma entidade especializada.
 Não (Mutuamente) Exclusivas: uma ocorrência da entidade 
generalizada pode pertencer a mais de um subconjunto ( entidade 
especializada).105 Modelo Entidade-Relacionamento
 Generalização/Especialização - Mutuamente Exclusiva
106
VEÍCULO
TREM AUTOMÓVELAVIÃO
Modelo Entidade-Relacionamento
107
⚫ Generalização/Especialização - Não 
Exclusiva
PESSOA
PROFESSOR FUNCIONÁRIOALUNO
Modelo Entidade-Relacionamento
 Generalização/Especialização - Quando Utilizar ???
 Regra 1 : Existe algum atributo que seja aplicável a somente uma 
entidade especializada e não a todas?
 Regra 2 : Existe algum relacionamento que seja aplicável a somente uma 
entidade especializada e não a classe generalizada ?
 Regra 3 : Não estaremos “poluindo” o modelo com a inserção de 
detalhes desnecessários?
108 Modelo Entidade-Relacionamento
 Generalização/Especialização - Quando Utilizar ???
Situação em que a especialização deve ser explicitada
Situação em que a especialização pode ser explicitada
109
Regra 1 e Regra 2
Regra 3
Modelo Entidade-Relacionamento
 Aspectos Temporais
 Pode ser necessário manter um histórico de alteração 
das informações no Banco de Dados. 
 Podem ser:
 atributos cujos valores se modificam ao longo do tempo;
 relacionamentos que se modificam ao longo do tempo.
110 Modelo Entidade-Relacionamento
 Aspectos Temporais: modificação nos valores de 
atributos
111
EMPREGADO
salário
Banco de Dados contém 
apenas o salário atual
EMPREGADO
SALÁRIO 
data valor
(0,n)
(1,1)
Banco de Dados contém 
a história dos salários
Modelo Entidade-Relacionamento
 Aspectos Temporais: modificação nos relacionamentos
112
EMPREGADO
DEPARTAMENTO
(1,1)
(1,n)
EMPREGADO
DEPARTAMENTO
data inicial
(1,n)
(1,n)
trabalha trabalha
data final
Banco de Dados contém 
apenas a alocação atual
Banco de Dados contém 
o histórico de alocações
Modelo Entidade-Relacionamento
 Atributos Opcionais e Multivalorados
 Atributo Opcional: nem toda ocorrência da entidade 
possui um valor para um determinado atributo;
 Atributo Multivalorado: um atributo pode possui mais de 
um valor associado a ele.
113 Modelo Entidade-Relacionamento
 Atributos Opcionais
114
EMPREGADO
nome
tipo de 
empregado
código
CREA CRM Num. Carteira
habilitação(0,1) (0,1)
(0,1)
EMPREGADO
MOTORISTA MÉDICO ENGENHEIRO
Num. Carteira
habilitação
CREACRM
(0,1)(0,1)
nome
código
t
Modelo Entidade-Relacionamento
 Atributos Multivalorados
115
EMPREGADO
nome
dependentecódigo
(0,n) EMPREGADO
nome
código
DEPENDENTE
nome
(o,n)
(1,1)
Modelo Entidade-Relacionamento
 Atributos Opcionais e Multivalorados
116
Tentar restringir-se ao uso de atributos 
OBRIGATÓRIOS 
e 
MONOVALORADOS
Modelo Entidade-Relacionamento
 Verificação do Modelo
 Modelo deve ser correto: livre de erros sintáticos e 
semânticos;
 Modelo deve ser completo: verificar se todos os dados 
que devem ser obtidos do banco de dados estão 
presentes e se todas as manipulações sobre o banco de 
dados podem ser executadas sobre o modelo;
 Modelo deve ser livre de redundâncias: atributos e 
relacionamentos.
117 Modelo Entidade-Relacionamento
 Notações
 Peter Chen (acadêmica)
 Engenharia de Informações (James Martin)
 MERISE (notação européia)
118 Modelo Entidade-Relacionamento
Modelo Entidade-
Relacionamento
 Notações : Engenharia de Informações (James Martin) 
 relacionamentos representados por linhas;
 denominação do relacionamento em forma de verbo;
 notação para cardinalidade máxima e mínima é gráfica.
119
• cardinalidade (mínima, máxima) é 1
• cardinalidade mínima é 0
• cardinalidade máxima é n
Cargo Funcionário
(1,1) (0,N)
lotação
Cargo Funcionário
é ocupado por
ocupa
Modelo Entidade-
Relacionamento
 Notações : Merise
 Utilizada na França;
 Relacionamento representado por uma elipse;
120
Cargo Funcionário
(1,1) (0,N)
lotação
Cargo Funcionário
(1,1)
lotação
(0,N)
Associativa
Participativa
Exercício... Vem_Q_Tem
 Um estacionamento de veículos, trabalha com compra e venda de 
autos. O proprietário do estabelecimento também aceita trabalhar 
com Consignação (veículos de terceiro que ele somente revende). 
As vezes um possível cliente procura o local em busca de um 
automóvel especifico, e caso não haja o veiculo disponível é 
anotado o desejo do cliente para futuras consultas. Construa um 
diagrama Entidade/Relacionamentos para o projeto.
121
MODELO 
RELACIONAL
Modelo Relacional123
Banco de Dados Relacional
=
consiste em uma coleção de tabelas
ou relações, cada uma das quais 
com um nome único.
Modelo Relacional
 Tabelas
 Conjunto não ordenado de linhas (tuplas); 
 Cada linha é composta por uma série de campos 
(valor de atributo);
 Cada campo é identificado por um nome de campo 
(nome de atributo);
 O conjunto de campos iguais da tabela formam uma 
coluna
124
Modelo Relacional125
Coluna (atributo)
nome do campo
(nome do atributo)
linha (tupla)
valor do campo
(valor do atributo)
... ... ......
N
o
Matrícula Nome End. Residencial Cargo
01 João Av. 9 de julho,140 Diretor
02 José Rua das Flores, 35 Gerente
03 Maria Al. Casa Branca, 110 Escriturário
05
Modelo Relacional
 Chaves
 Identificam as linhas de uma tabela e permitem o 
relacionamento entre linhas de várias tabelas.
 Podem ser:
 Chaves primárias;
 Chaves estrangeiras; e
 Chaves alternativas.
126
Modelo Relacional
 Chaves - Chave Primária
 É uma coluna ou uma combinação de colunas cujos 
valores distinguem uma linha das demais dentro de uma 
tabela. 
 Podem ser:
 Chaves únicas; ou
 Chaves compostas.
127
Modelo Relacional128
C ó di goEm p N o me C ó di go Dept o
E 3 P a u lo D 1
E 1 Lu c ia na D 2
E 2 An t o n io D 1
E 4 Lu c ia D 3
Chave Única
C ó di goEm p Nu mDe pe nd No me Ti po
E 1 0 1 Lu i s Fi l h o
E 1 0 2 Mar ta E spo sa
E 2 0 1 An a E spo sa
E 2 0 2 C ar l o s Fi l h o
Chave Composta
Modelo Relacional
 Chaves - Chave Estrangeira
 É uma coluna ou uma combinação de colunas, cujos 
valores aparecem necessariamente na chave primária 
de uma tabela.
 Permite a implementação do relacionamento em um 
banco de dados relacional
129
Modelo Relacional130
C ó di goEm p N o me C ó di go Dept o
E 3 P a u lo D 1
E 1 Lu c ia na D 2
E 2 An t o n io D 1
E 4 Lu c ia D 3
C o di go Dept o N o me
D 1 C om pra s
D 2 V en da s
D 3 E n ge nha r i a
Chave Estrangeira
Modelo Relacional
 Chaves - Chave Estrangeira
 Restrições:
 Quando for incluída uma nova linha na tabela que contém a chave 
estrangeira;
 Quando for alterado o valor da chave primária referenciada pela chave 
estrangeira;
 Quando for alterado o valor de uma chave estrangeira;
 Quando for excluída uma linha da tabela que contém a chave primária 
referenciada pela chave estrangeira;
131
Modelo Relacional
 Chaves - Chave Estrangeira dentro da própria tabela
132
C o di goEm p N o me C o di go Dept o C o dEmp Ge re n t e
E 3 P e dro D 1 _ _
E 2 Lu c a s D 1 E 3
E 1 M ar i s a D 3 E 3
Chave estrangeira 
referencia chave primária na 
própria tabela
Modelo Relacional
 Chaves - Chave Alternativa
 Quando mais de uma coluna podem servir para distinguir uma linha das 
demais, uma é escolhida chave primária e as demais são denominadas 
chaves alternativas.
133
C o di goEm p N o me C o di go Dept o C P F
E 3 P e dro D 1 1 3 2 . 12 1 . 33 1 -2 0
E 2 Lu c a s D 1 8 7 6 . 34 6 . 23 5 -9 0
E 1 M ar i s a D 3 3 1 2 . 69 2 . 45 1 -7 8
Chave alternativa
Modelo Relacional
 Domínios
 Conjunto de valores ( alfanuméricos, numéricos...) que os campos 
de uma determinada coluna podem assumir. Ex:
 números de salas de aula [o conj.de números de 1 a 150, inteiros do formato 
999]
 nomes de alunos [o conj.de nomes possíveis de pessoas, formato A(50)]
 códigos de disciplinas [o conj.de 3 letras seguidos de um traço e de 3 dígitos; 
formato AAA-999]
134
Modelo Relacional
 Domínios
 Podem ser:
 obrigatórios : não são admitidos valores vazios para as colunas.
 Opcionais : podem aparecer valores vazios para as colunas. Normalmente, chaves primárias são obrigatórias.
135
Modelo Relacional
 Restrições de Integridade
136
Integridade dos dados de 
um Banco de Dados
=
os dados refletem corretamente a 
realidade representada pelo 
banco de dados e são 
consistentes entre si
Modelo Relacional
 Restrições de Integridade
 Regras de consistência de dados que é garantida pelo 
próprio SGBD:
 Integridade de Domínio;
 Integridade de Vazio;
 Integridade de Chave; e
 Integridade Referencial.
137
Modelo Relacional
 Restrições de Integridade
 Integridade de Domínio: especificam que o valor de um 
campo deve obedecer a definição dos valores 
admitidos para a coluna. 
 Integridade de Vazio: através deste tipo de restrição é 
especificado se os campos de uma coluna podem ou 
não ser vazios ( se a coluna é obrigatória ou opcional).
138
139
Modelo Relacional
⚫ Restrições de Integridade
⚫ Integridade de Chave: trata-se da restrição que 
define que os valores da chave primária e 
alternativa devem ser únicos.
⚫ Integridade Referencial: define que os valores 
dos campos que aparecem em uma chave 
estrangeira devem aparecer na chave primária 
da tabela referenciada.
140
Modelo Relacional
⚫ Restrições de Integridade
⚫ Restrições Semânticas: não são 
automaticamente controladas pelo SGBD; o 
programador deve escrever procedimentos que 
garantam tais integridades. Ex:
⚫ Um empregado não pode ter um salário maior que 
seu superior imediato;
Modelo Relacional
 Especificação de Banco de Dados Relacional
 Chamada de Esquema do Banco de Dados, deve 
conter no mínimo:
 Tabelas que formam o banco de dados;
 Colunas que as tabelas possuem; e
 Restrições de integridade.
141
Modelo Relacional
 Esquema do Banco de Dados
NOMETABELA (nomes das colunas)
<nome da coluna ch. estrangeira> 
referencia <nome da tabela>
Ex:
DEPARTAMENTO (CodigoDepto, Nome)
EMPREGADO (CodigoEmp, Nome, CodigoDepto)
CodigoDepto referencia DEPARTAMENTO
142
Mapeamento entre 
Modelos
143
Engenharia Reversa 
de BD Relacional
Projeto Lógico 
de BD Relacional
Modelo ER
( nível conceitual)
Modelo Relacional
( nível lógico)
Mapeamento ER -
Relacional
 Regras:
 obter um banco de dados que permita a eficiência das 
instruções de consulta e alteração do banco; e
 obter um banco de dados simplificado, no que diz 
respeito ao desenvolvimento e manutenção das 
aplicações.
144
Mapeamento ER -
Relacional
 Para isso:
 Evitar junções: ter os dados necessários a uma 
consulta em uma única linha;
 Diminuir o número de chaves:
Cliente (CodCliente, Nome, Endereço, CEP,Telefone)
Ou
Cliente (CodCliente, Nome)
ClienteEnder (CodCliente, Endereco, CEP, Telefone)
 Evitar campos opcionais :
CGC – Nome Fantasia
CPF - RG
145
Mapeamento ER -
Relacional
 Passos para a transformação de um modelo ER para 
o modelo Relacional:
 tradução inicial de entidades e respectivos atributos;
 tradução de relacionamentos e respectivos atributos;
 tradução de generalizações - especializações
146
Mapeamento ER -
Relacional
 Mapeamento das Entidades
 Cada entidade é traduzida para uma tabela.
 Cada atributo da entidade define uma coluna da 
tabela.
 Os atributos identificadores da entidade 
correspondem às colunas que compõem a chave 
primária da tabela.
147
CLIENTE 
Código
NomeData 
Nascimento
Endereço
Esquema Relacional Correspondente:
Pessoa ( CodCliente, Nome, Endereço, DataNasc)
Mapeamento ER -
Relacional
 Mapeamento dos Nomes de atributos
 Nomes de Colunas devem ser curtos;
 Nomes de colunas não devem conter espaços em branco;
 Não é necessário utilizar o nome da tabela para compor o nome de uma 
coluna, com exceção da chave primária. 
Exemplo:
Nome do Cliente NomeCliente Nome
Codigo do Cliente Codigo CodigoCliente
CodCliente CodigoCli 
148
Mapeamento ER -
Relacional
 Mapeamento do Relacionamento Identificador (Entidade Fraca)
Cliente (CodigoCli, Nome)
Autorizado (CodigoCli, Numero, Nome)
149
Cliente AUTORIZADOpossui
Nome NomeCódigo Número
(0,n)(1,1)
Mapeamento ER -
Relacional
150
GRUPO EMPRESA
EMPREGADODEPENDENTE
nome código número da empresa
nome
nome
número do 
empregado
número do
dependente
nome
(1,n)
(1,n)
(0,n)
(1,1)
(1,1)
(1,1)
Grupo ( CodGrupo, Nome)
Empresa ( NumEmpresa, CodGrupo, Nome)
Empregado ( NumEmpreg, NumEmpresa, CodGrupo, Nome)
Dependente ( NumDepend, NumEmpreg, NumEmpresa, CodGrupo, Nome)
Mapeamento ER -
Relacional
 Mapeamento dos Relacionamentos : 
determinado pelas cardinalidades mínima e 
máxima das entidades envolvidas nos 
relacionamentos.
 Três possibilidades:
 tabela própria : relacionamentos n para n;
 coluna (s) adicional (is) dentro de uma das tabelas : relacionamentos n para 1 ou 1 
para n; e
 fusão das tabelas relacionadas em uma só : relacionamentos 1 para 1.
151
Mapeamento ER -
Relacional
 Mapeamento Relacionamentos – 1:1
 quando as duas entidades tem participação opcional
Inserção dos atributos em uma das tabelas
152
HOMEM MULHER
NomeCódigo
(0,1)(0,1)
Código Nome
Data
Regime
Casamento
Mapeamento ER -
Relacional
 Mapeamento Relacionamentos – 1:1
Dentro da Entidade Mulher 
Mulher ( CodigoMul, Nome CodigoHom, Data, Regime)
CodigoHom referencia Homem
Homem (CodigoHom, Nome)
Criar uma tabela para Casamento
Mulher ( CodigoMul, Nome 
Homem (CodigoHom, Nome)
Casamento (CodigoMul, CodigoHom, Data, Regime)
CodigoMul referencia Mulher
CodigoHom referencia Homem
153
Mapeamento ER -
Relacional
 Mapeamento Relacionamentos – 1:1
 quando uma entidade tem participação opcional e a outra obrigatória
Fusão das tabelas correspondentes as duas 
entidades
154
CORRENTISTA
CARTÃO 
MAGNÉTICO
NomeCódigo
(0,1)(1,1)
Código Data Expedição
possui
Mapeamento ER -
Relacional
 Mapeamento Relacionamentos – 1:1
Todos os atributos em uma só tabela (Correntista)
Correntista (CodCorrent, Nome, CodCartao, DataExp)
Manter as duas tabelas
Correntista (CodCorrent, Nome)
Cartao (CodCartao, DataExp, CodCorrent)
CodCorrent referencia Correntista
155
156
Mapeamento Relacionamentos – 1:1
Fusão das tabelas correspondentes às duas entidades
Mapeamento ER - Relacional
CONFERENCIA COMISSÃO
NomeCódigo
(1,1)(1,1)
Endereco Nome
Organizada por
Data
Todos os atributos em uma só tabela (Conferência)
Conferência (CodConf, Nome, Data, EnderComisOrg)
157
Mapeamento Relacionamentos – 1:1
Mapeamento ER - Relacional
DIRETOR DEPARTAMENTO
NomeCódigo
(1,1)(1,1)
Codigo Nome
Dirige
?
158
Mapeamento Relacionamentos – 1:n
Adição de colunas à uma das tabelas
Edifício (CodigoEdif, Endereço)
Apartamento (CodigoEdif, NumeroAp, AreaAp)
CodigoEdif referencia Edificio
Mapeamento ER - Relacional
EDIFÍCIO APARTAMENTOS
EndereçoCódigo
(0,n)(1,1)
Número Área
contém
159
Mapeamento Relacionamentos – 1:n
Adição de colunas à uma das tabelas
Cliente (CodigoCli, Nome)
Venda (NumNotaF, Data, CodigoCli)
CodigoCli referencia Cliente
Mapeamento ER - Relacional
CLIENTE VENDA
NomeCódigo
(0,n)(1,1)
Número da 
Nota Fiscal Data
contém
160
Mapeamento Relacionamentos – n:n
Criação de um tabela própria para o relacionamento
Medico (CRM, Nome)
Paciente (CodPaciente, Nome)
Consulta (CRM, CodPaciente, Data, Hora, Diagnostico)
CRM referencia Medico
CodPaciente referencia Paciente
Mapeamento ER - Relacional
MEDICO PACIENTE
NomeCRM
(1,n)(1,n)
Código Nome
atende
Data
Hora
Diagnóstico
161
Mapeamento de Generalização - Especialização
Duas alternativas:
uso de um única tabela para toda a hierarquia de 
generalização-especialização; ou
uso de uma tabela para cada entidade.
Mapeamento ER - Relacional
162
Uma única tabela para toda a hierarquia
A Chave primária é correspondente ao identificador da entidade 
mais genérica;
Caso não exista, criar uma coluna TIPO, para identificar o tipo de 
ocorrência que está sendo representada em cada linha;
Uma coluna para cada atributo da entidade genérica;Colunas referentes aos relacionamentos dos quais participa a 
entidade genérica (se necessário);
Colunas para todos os atributos das entidades especializadas 
(opcionais); e
Colunas referentes aos relacionamentos dos quais participa cada 
entidade especializada (se necessário e opcionais).
Mapeamento ER - Relacional
163
Mapeamento ER - Relacional
EMPREGADO
ENGENHEIROMOTORISTASECRETÁRIA
Codigo Nome
Tipo
Carteira de 
Habilitação
PROJETO
participa
CREA
DEPARTAMENTO
Codigo Nome
trabalha
Codigo Nome
(1,n) (1,1)
p
(0,n)
(o,n)
RAMO
ENGENHARIA
atua
(1,1)
(0,n)
Codigo Nome
Mapeamento ER -
Relacional
Empregado (CodEmpreg, Nome, Tipo, CartHabil, CREA, CodDepto, CodRamo)
CodDepto referencia Departamento
CodRamo referencia Ramo
Departamento (CodDepto, Nome)
Projeto (CodProjeto, Nome)
Ramo (CodRamo, Nome)
Participação (CodEmpreg, CodProjeto)
CodEmpreg referencia Empregado
CodProjeto referencia Projeto
164
165
Uma tabela para cada entidade especializada
Empregado (CodEmpreg, Nome, Tipo, CodDepto)
CodDepto referencia Departamento
Motorista (CodEmpreg, CartHabil)
CodEmpreg referencia Empregado
Engenheiro (CodEmpreg, CREA, CodRamo)
CodEmpreg referencia Empregado
CodRamo referencia Ramo
Departamento (CodDepto, Nome)
Projeto (CodProjeto, Nome)
Ramo (CodRamo, Nome)
Participação (CodEmpreg, CodProjeto)
CodEmpreg referencia Empregado
CodProjeto referencia Projeto
Mapeamento ER - Relacional
166
Eliminação da Entidade Genérica
OutrosEmpreg (CodEmpreg, Nome, Tipo, CodDepto)
CodDepto referencia Departamento
Motorista (CodMotor, Nome, CartHabil, CodDepto)
CodDepto referencia Departamento
Engenheiro (CodEngen, Nome, CREA, CodRamo, CodDepto)
CodDepto referencia Departamento
CodRamo referencia Ramo
Departamento (CodDepto, Nome)
Projeto (CodProjeto, Nome)
Ramo (CodRamo, Nome)
Participação (CodEngen, CodProjeto)
CodEngn referencia Engenheiro
CodProjeto referencia Projeto
Mapeamento ER - Relacional
Engenharia Reversa de MR167
Engenharia Reversa 
de BD Relacional
Projeto Lógico 
de BD Relacional
Modelo ER
( nível conceitual)
Modelo Relacional
( nível lógico)
Engenharia Reversa de MR
Etapas:
Identificação das ENTIDADES 
correspondentes a cada TABELA
Definição de RELACIONAMENTOS 
1:n e 1:1
Definição de ATRIBUTOS
Definição de IDENTIFICADORES de 
entidades e relacionamentos
168
169
⚫ Identificação das ENTIDADES 
correspondentes a cada TABELA
⚫ Uma tabela pode corresponder a:
⚫ uma entidade;
⚫ um relacionamento n:n; ou
⚫ uma entidade especializada.
⚫ O que define qual das situações acima ocorre é a 
composição da chave primária da tabela.
Engenharia Reversa de MR
170
⚫ Regras para identificar o tipo de tabela:
⚫ Regra 1- a chave primária é composta por mais de uma chave 
estrangeira: a tabela implementa um relacionamento n:n
⚫ Regra 2 - Toda chave primária é uma chave estrangeira: a 
tabela implementa uma especialização
⚫ Regra 3 - Outras situações - quando a chave não for composta 
por diversas chaves estrangeiras ( regra 1) ou toda a chave 
primária for uma chave estrangeira (regra 2) a tabela representa 
uma entidade
Engenharia Reversa de MR
171
Engenharia Reversa de MR
Empregado (CodEmpreg, Nome, Tipo, CodDepto)
CodDepto referencia Departamento
Dependente (CodEmpreg, NumeroDepend, Nome)
CodEmpreg referencia Empregado
Motorista (CodEmpreg, CartHabil)
CodEmpreg referencia Empregado
Engenheiro (CodEmpreg, CREA, CodRamo)
CodEmpreg referencia Empregado
CodRamo referencia Ramo
Departamento (CodDepto, Nome)
Projeto (CodProjeto, Nome)
Ramo (CodRamo, Nome)
Participação (CodEmpreg, CodProjeto,Função)
CodEmpreg referencia Empregado
CodProjeto referencia Projeto
Engenharia Reversa de MR
Relacionamento n:n - chave primária 
composta por mais de uma chave 
estrangeira
Participação (CodEmpreg, CodProjeto, Função)
CodEmpreg referencia Empregado
CodProjeto referencia Projeto
172
PARTICIPAÇÃO
173
⚫Especialização - Toda chave primária é 
uma chave estrangeira
Motorista (CodEmpreg, CartHabil)
CodEmpreg referencia Empregado
Engenheiro (CodEmpreg, CREA, CodRamo)
CodEmpreg referencia Empregado
CodRamo referencia Ramo
Engenharia Reversa de MR
MOTORISTA ENGENHEIRO
174
⚫Outras Situações - Entidade
Empregado (CodEmpreg, Nome, Tipo, CodDepto)
CodDepto referencia Departamento
Departamento (CodDepto, Nome)
Projeto (CodProjeto, Nome)
Ramo (CodRamo, Nome)
Dependente (CodEmpreg, NumeroDepend, Nome)
CodEmpreg referencia Empregado
Engenharia Reversa de MR
EMPREGADO DEPARTAMENTO
PROJETO RAMO DEPENDENTE
175
Engenharia Reversa de MR
MOTORISTA ENGENHEIRO
EMPREGADO
176
⚫ Identificação de RELACIONAMENTOS 
1:n OU 1:1
⚫ Quando a chave estrangeira não se enquadra nas Regras 
1(relacionamento n:n) e 2 (especialização) da identificação de 
entidades, esta chave estrangeira identifica um relacionamento 
1:n ou um relacionamento 1:1
Empregado (CodEmpreg, Nome, Tipo, CodDepto)
CodDepto referencia Departamento
Engenheiro (CodEmpreg, CREA, CodRamo)
CodEmpreg referencia Empregado
CodRamo referencia Ramo
Engenharia Reversa de MR
Engenharia Reversa de MR177
MOTORISTA ENGENHEIRO
EMPREGADO DEPARTAMENTO
RAMO
PROJETO
PARTICIPAÇÃO
DEPENDENTE
178
⚫ Identificação de ATRIBUTOS
⚫ Para cada coluna de uma tabela, que não 
seja Chave Estrangeira, é definido um 
atributos na entidade/relacionamento 
correspondente à tabela.
Engenharia Reversa de MR
179
EMPREGADO
ENGENHEIROMOTORISTA
Codigo Nome
Tipo
Carteira de 
Habilitação
PROJETO
participação
CREA
DEPARTAMENTO
Codigo Nome
trabalha
Codigo Nome
(1,n) (1,1)
(0,n)
(o,n)
RAMO
atua
(1,1)
(0,n)
Codigo Nome
Engenharia Reversa de MR
Função
DEPENDENTE
Numero Nome
possui
(1,1)
(0,n)
180
⚫ Identificação de IDENTIFICADORES de 
Entidades
⚫ Regras:
⚫ Coluna da chave primária que não é chave estrangeira:
toda coluna que faz parte da chave primária e que não é 
chave estrangeira corresponde a um atributo identificador 
da entidade;
⚫ Coluna da chave primária que é chave estrangeira: toda 
coluna que é chave primária e que é chave estrangeira 
corresponde a um identificador externo da entidade. Isto 
identifica uma entidade fraca.
Engenharia Reversa de MR
Engenharia Reversa de MR181
EMPREGADO
ENGENHEIROMOTORISTA
Codigo Nome
Tipo
Carteira de 
Habilitação
PROJETO
participação
CREA
DEPARTAMENTO
Codigo Nome
trabalha
Codigo Nome
(1,n) (1,1)
(0,n)
(o,n)
RAMO
atua
(1,1)
(0,n)
Codigo Nome
Função
DEPENDENTE
Numero Nome
possui
(1,1)
(0,n)
182
MANIPULAÇÃO 
DOS
DADOS
Manipulação dos Dados
Linguagens de Consulta
permitem a manipulação e recuperação de dados 
em bancos de dados;
 linguagens orientadas a conjuntos e não a registros;
classificadas em procedurais e não-procedurais.
Linguagens Matemáticas utilizadas 
como referência
Álgebra Relacional; e
Cálculo Relacional.
183
Álgebra Relacional
Linguagem de Consulta procedural: 
especificação de quais dados são 
desejados e como chegar até eles 
Coleção de operadores que têm uma ou duas relações 
(tabelas) de entrada e produzem uma relação de saída;
Consiste de:
Operações da teoria dos conjuntos;
Operações específicas para banco de dados 
relacionais unárias e binárias.
184
Álgebra Relacional
Operações da Teoria dos Conjuntos:
 União (  ) Interseção (  )
 Diferença ( – ) Produto Cartesiano ( X )
Operações Relacionais Unárias
 Seleção (  )
 Projeção (  )
Operações Relacionais Binárias
 Junção ( ) Divisão ( ÷ )
 Renomear (  ) Atribuição (  )
185
Álgebra Relacional
Seleção ()
Operação relacional unária;
 Seleciona tuplas que satisfaçam um determinado 
predicado;
 Representada graficamente pela letra grega minúscula 
sigma ();
O predicado (condição) aparece subscrito a ;
O argumento da relação (tabela pesquisada) é 
representado entre parênteses;
 condição (relação)
186
187
⚫ Seleção -  condição (relação)
Exemplo:
Considere a tabela abaixo MÉDICO Especialidade = ´Pediatria´ (MÉDICO)
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M4 Carla Pediatria 30
188
⚫ Seleção -  condição (relação)
Exemplo:
 Especialidade=´Pediatria´ ^ Idade<35 (MÉDICO)
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
Cod_Medico Nome Especialidade Idade
M4 Carla Pediatria 30
189
⚫ Seleção () - Operadores Utilizados
⚫ Comparação 
⚫ = : igual
⚫  : diferente
⚫ >, > : maior e maior ou igual
⚫ < , < : menor e menor ou igual
⚫ Conectivos 
⚫ ^ : e
⚫ : ou
Álgebra Relacional
190
⚫ Projeção ()
⚫ Operação relacional unária;
⚫ Seleciona apenas os atributos especificados de uma 
determinada relação (tabela);
⚫ Representada graficamente pela letra grega pi ();
⚫ Os atributos desejados como resultado aparecem 
subscrito a ;
⚫ O argumento da relação (tabela pesquisada) é 
representado entre parênteses;
 lista de atributos (relação)
Álgebra Relacional
191
⚫ Projeção -  lista de atributos (relação)
Exemplo:
Considere a tabela abaixo MÉDICO
 Nome, Especialidade (MÉDICO)
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
Nome Especialidade
Luis Carlos Pediatria
Ana Maria Cardiologia
João Pedro Oftalmologia
Carla Pediatria
192
⚫ Projeção -  lista de atributos (relação)
Exemplo:
Considere a tabela abaixo MÉDICO
 Especialidade = ´Pediatria´ (MÉDICO)
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M4 Carla Pediatria 30
193
⚫ Projeção -  lista de atributos (relação)
Exemplo:
 Especialidade = ´Pediatria´ (MÉDICO)
 Cod_Medico, Nome, idade ( Especialidade = 
´Pediatria´ (MÉDICO))
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M4 Carla Pediatria 30
Cod_Medico Nome Idade
M1 Luis Carlos 35
M4 Carla 30
194
⚫ União (  )
⚫ Operação da teoria dos conjuntos;
⚫ Realiza a união de duas relações, selecionando as 
tuplas que aparecem em uma ou ambas as relações;
⚫ As duas relações precisam ser compatíveis para a 
união, ou seja:
⚫ mesmo número de colunas;
⚫ colunas correspondentes com o mesmo tipo;
relação1  relação2
Álgebra Relacional
195
⚫ União - relação1  relação2
Exemplo:
Considere a tabela MÉDICO
Considere a tabela CONSULTA
Álgebra Relacional
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
196
⚫ União - relação1  relação2
Exemplo:
Deseja-se obter o código dos médicos que são pediatras e dos médicos que 
têm consulta marcada no dia 14/05/2015 
 Cod_Medico ( Especialidade = ´Pediatria´ (MÉDICO))
 Cod_Medico ( Data_Cons = ´14/05/2015´ (CONSULTA))
Álgebra Relacional
Cod_Medico
M1
M4
Cod_Medico
M1
M2
197
⚫ União - relação1  relação2
Exemplo:
Deseja-se obter o código dos médicos que são pediatras e dos médicos que 
têm consulta marcada no dia 14/05/2015 
 Cod_Medico ( Especialidade = ´Pediatria´ (MÉDICO)) U
 Cod_Medico ( Data_Cons = ´14/05/2015´ (CONSULTA))
U = 
Álgebra Relacional
Cod_Medico
M1
M4
Cod_Medico
M1
M2
Cod_Medico
M1
M2
M4
198
⚫ Interseção ()
⚫ Operação da teoria dos conjuntos;
⚫ Realiza a interseção de duas relações, selecionando as tuplas 
que aparecem em ambas as relações;
⚫ As duas relações precisam ser compatíveis para a interseção, 
ou seja:
⚫ mesmo número de colunas;
⚫ colunas correspondentes com o mesmo tipo;
relação1  relação2
Álgebra Relacional
199
⚫ Interseção - relação1  relação2
Exemplo:
Deseja-se obter o código dos médicos que são pediatras e que têm consulta 
marcada no dia 14/05/2015 
 Cod_Medico ( Especialidade = ´Pediatria´ (MÉDICO)) 
 Cod_Medico ( Data_Cons = ´14/05/2015´ (CONSULTA))
 = 
Álgebra Relacional
Cod_Medico
M1
M4
Cod_Medico
M1
M2
Cod_Medico
M1
200
⚫ Diferença ( – )
⚫ Operação da teoria dos conjuntos;
⚫ Realiza a diferença entre duas relações, selecionando as tuplas 
que aparecem em uma relação mas não em outra;
⚫ As duas relações precisam ser compatíveis para a diferença, ou 
seja:
⚫ mesmo número de colunas;
⚫ colunas correspondentes com o mesmo tipo;
relação1 – relação2 : seleção de tuplas que existem em relação1 
e não existem em relação 2
relação2 – relação1 : seleção de tuplas que existem em relação2 
e não existem em relação 1
Álgebra Relacional
201
⚫ Diferença ( – )
Exemplo:
Deseja-se obter o código dos médicos que são pediatras e que não têm 
nenhuma consulta marcada.
 Cod_Medico ( Especialidade = ´Pediatria´ (MÉDICO)) –
 Cod_Medico (CONSULTA)
– =
Álgebra Relacional
Cod_Medico
M1
M2
M4
Cod_Medico
M1
M2
NULL
202
⚫ Diferença ( – )
Exemplo:
Deseja-se obter o código dos médicos que têm consultas 
marcadas e que não são pediatras.
 Cod_Medico (CONSULTA) –  Cod_Medico (
Especialidade = ´Pediatria´ (MÉDICO)) 
– =
Álgebra Relacional
Cod_Medico
M1
M2
M4
Cod_Medico
M1
M2
Cod_Medico
M4
203
⚫ Produto Cartesiano ( Relação1 X Relação2 )
⚫ Operação da teoria dos conjuntos;
⚫ Realiza a combinação entre duas relações quaisquer;
⚫ Concatena cada tupla da relação 1 com todas as tuplas da 
relação 2.
Relação1 X Relação2 
Relação 1 Relação 2 Relação Resultante
A C AC 
B D AD
E AE
BC ....
Álgebra Relacional
204
⚫ Produto Cartesiano ( Relação1 X Relação2 )
Exemplo:
Concatenar PACIENTE e CONSULTA
PACIENTE X CONSULTA 
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Codigo Nome
P1 Cláudia
P2 Augusto
P3 Rosane
P4 Alfredo
205
⚫ Produto Cartesiano (PACIENTE X CONSULTA)
Álgebra Relacional
Codigo Nome
P1 Cláudia
P2 Augusto
P3 Rosane
P4 Alfredo
P1 Cláudia
P2 Augusto
P3 Rosane
P4 Alfredo
P1 Cláudia
P2 Augusto
P3 Rosane
P4 Alfredo
P1 Cláudia
P2 Augusto
P3 Rosane
P4 Alfredo
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M2 P1 14/05/2015 12:18
M2 P1 14/05/2015 12:18
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M1 P2 10/04/2015 14:20
M1 P2 10/04/2015 14:20 
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
206
⚫ Produto Cartesiano (PACIENTE X CONSULTA)
Exemplo: Apenas as relações em que os pacientes, nas 
duas relações, coincidam
 PACIENTE.Codigo = CONSULTA.Cod_Paciente
(PACIENTE X CONSULTA) 
Álgebra Relacional
Codigo Nome
P1 Cláudia
P1 Cláudia
P2 Augusto 
P3 Rosane
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
207
⚫ Produto Cartesiano (PACIENTE X CONSULTA) 
Exemplo: Apenas as relações associadas ao Médico M1
 Cod_Medico = ´M1´
(  PACIENTE.Codigo = CONSULTA.Cod_Paciente
(PACIENTE X CONSULTA) )
Álgebra Relacional
Codigo Nome
P1 Cláudia
P2 Augusto 
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M1 P2 10/04/2015 14:20
208
⚫ Produto Cartesiano (PACIENTE X CONSULTA)
Exemplo: Finalmente, se não quisermos repetir os códigos 
dos pacientes, podemos fazer uma projeção.
 Cod_Medico, Cod_Paciente,Nome, Data_Cons, 
Hora
(  Cod_Medico = ´M1´
(  PACIENTE.Codigo = CONSULTA.Cod_Paciente
(PACIENTE X CONSULTA) ) )
Álgebra Relacional
Hora 
13:05 
14:20 
Cod_Medico Cod_Paciente Nome Data-Cons 
M1 P1 Cláudia 14/05/2015
M1 P2 Augusto 10/04/2015
209
⚫ Produto Cartesiano (MÉDICO X CONSULTA )
Exemplo: Mostrar os nomes dos Médicos que têm consulta com o paciente 
P1, juntamente com sua especialidade, a data da consulta e a hora da 
consulta
CONSULTA
MÉDICO
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
210
⚫ Produto Cartesiano (MÉDICO X CONSULTA )
Álgebra Relacional
 Nome, Especialidade, Data_Cons, Hora
(  MÉDICO.Cod_Medico = CONSULTA.Cod_Medico
(CONSULTA X MÉDICO) ) )
(  Cod_Paciente = ´P1´
211
⚫ Produto Cartesiano (CONSULTA X MÉDICO)
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18 
M2 P1 14/05/2015 12:18 
M2 P1 14/05/2015 12:18 
M2 P1 14/05/2015 12:18 
M1 P2 10/04/2015 14:20
M1 P2 10/04/2015 14:20
M1 P2 10/04/2015 14:20
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
(  MÉDICO.Cod_Medico = CONSULTA.Cod_Medico
(CONSULTA X MÉDICO) ) )
212
⚫ Produto Cartesiano (MÉDICO X CONSULTA )
Álgebra Relacional
(  MÉDICO.Cod_Medico = CONSULTA.Cod_Medico
(CONSULTA X MÉDICO) ) )
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18 
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M1 Luis Carlos Pediatria 35
M4 Carla Pediatria 30
213
⚫ Produto Cartesiano (MÉDICO X CONSULTA )
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28 
(  Cod_Paciente = ´P1´
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18 
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M1 Luis Carlos Pediatria 35
M4 Carla Pediatria 30
214
⚫ Produto Cartesiano (MÉDICO X CONSULTA )
Álgebra Relacional
 Nome, Especialidade, Data_Cons, Hora
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28 
Data-Cons Hora
14/05/2015 13:05
14/05/2015 12:18
Nome Especialidade 
Luis Carlos Pediatria
Ana Maria Cardiologia
215
⚫ Junção ou Junção Natural ( ) 
⚫ Operação relacional binária;
⚫ Produz uma relação em que as tuplas relacionadas de duas relações 
aparecem combinadas em uma única tupla;
⚫ Eqüivale à seqüência de operações:
⚫ produto Cartesiano da Relação1 e Relação2;
⚫ seleção da condição para a junção
condição de junção (relação1 relação2)
relação1 condição de junção relação2
Álgebra Relacional
216
⚫ Junção
Mostrar os nomes dos Médicos que têm consulta , juntamente 
com o codigo do paciente, a data e a hora da consulta
CONSULTA
MÉDICO
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
217
⚫ Produto Cartesiano
⚫ Junção
Álgebra Relacional
 Nome, Cod_Paciente, Data_Cons, Hora
(  MÉDICO.Cod_Medico = CONSULTA.Cod_Medico (CONSULTA X MÉDICO) ) 
IMPORTANTE: Para isso, os nomes dos atributos 
devem ser iguais nas duas relações
 Nome, Cod_Paciente, Data_Cons, Hora (CONSULTA MÉDICO) ) 
218
⚫ Junção Externa
⚫ Garante que todas as linhas de uma das tabelas de 
junção apareçam no resultado, mesmo sem 
satisfazer a condição de junção.
⚫ Podem ser:
⚫ Junção Externa Esquerda : linhas à esquerda do 
operador join aparecem na relação resultante -
⚫ Junção Externa Direita : linhas à direita do 
operador join aparecem na relação resultante -
Álgebra Relacional
219
⚫ Vejamos o exemplo anterior
Mostrar os nomes dos Médicos que têm consulta , juntamente 
com o codigo do paciente, a data e a hora da consulta
CONSULTA
MÉDICO
Álgebra Relacional
Cod_Medico Cod_Paciente Data-Cons Hora
M1 P1 14/05/2015 13:05
M2 P1 14/05/2015 12:18
M1 P2 10/04/2015 14:20
M4 P3 12/04/2015 13:30
Cod_Medico Nome Especialidade Idade
M1 Luis Carlos Pediatria 35
M2 Ana Maria Cardiologia 28
M3 João Pedro Oftalmologia 42
M4 Carla Pediatria 30
220
⚫ Junção Natural -
Álgebra Relacional
 Nome, Cod_Paciente, Data_Cons, Hora (CONSULTA MÉDICO) ) 
Nome Cod_Paciente Data-Cons Hora
Luis Carlos P1 14/05/2015 13:05
Ana Maria P1 14/05/2015 12:18
Luis Carlos P2 10/04/2015 14:20
Carla P3 12/04/2015 13:30
221
⚫ Junção Externa Direita -
⚫ Mostrar todas os médicos existentes na 
relação MÉDICO, mesmo que não exista uma 
consulta associada ao mesmo na relação 
CONSULTA
Álgebra Relacional
 Nome, Cod_Paciente, Data_Cons, Hora (CONSULTA MÉDICO) ) 
Nome Cod_Paciente Data-Cons Hora
Luis Carlos P1 14/05/2015 13:05
Ana Maria P1 14/05/2015 12:18
Luis Carlos P2 10/04/2015 14:20
Carla P3 12/04/2015 13:30
João Pedro <nulo> <nulo> <nulo>
222
⚫ Junção Externa Esquerda -
⚫ Mostrar todas as consultas existentes na relação CONSULTA, 
mesmo que não exista um médico associado na relação 
MÉDICO
Álgebra Relacional
 Nome, Cod_Paciente, Data_Cons, Hora (CONSULTA MÉDICO) ) 
Nome Cod_Paciente Data-Cons Hora
Luis Carlos P1 14/05/2015 13:05
Ana Maria P1 14/05/2015 12:18
Luis Carlos P2 10/04/2015 14:20
Carla P3 12/04/2015 13:30
Neste caso, equivalente à junção natural
223

Outros materiais