Buscar

Aula03 - Modelos de Dados

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

Modelos de Dados
Etapas do Projeto de Banco de Dados
Prof. Anderson Barroso 2
4. Projeto Físico
3. Projeto Lógico
2. Projeto Conceitual
1. Levantamento de Requisitos
MODELO 
DE DADOS
Introdução
 Arquitetura de “três esquemas” fornece uma visão 
abstraída dos dados armazenados no nível físico - Nível 
Conceitual
– O modelo conceitual fornece uma representação mais 
simples dos dados, garantindo o tratamento eficiente 
das informações
– Esta representação é chamada de Modelo de Dados
 Definição Formal
– “É um conjunto de conceitos que são utilizados para 
descrever a estrutura de um banco de dados 
escondendo detalhes da forma como é feito o 
armazenamento de dados” (ELMASRI; NAVATHE, 2005)
Prof. Anderson Barroso 3
Categorias dos Modelos de Dados
 Modelo de Dados Conceitual
– Características
• Representação de um banco de dados utilizando 
conceitos mais flexíveis
• Linguagem mais próxima ao do usuário final
• Sem regras rígidas de implementação
• Independente de tecnologia
• A primeira proposta de representação do mundo real
• Início do trabalho de definição da estrutura da base de 
dados
• O objetivo principal é propor uma estrutura de banco de 
dados que represente da melhor forma o mundo real
Prof. Anderson Barroso 4
Categorias dos Modelos de Dados
 Modelo de Dados Conceitual
– Modelos da categoria
• Modelo de Entidade e Relacionamento (E-R)
• Modelo Orientado à Objeto (OO)
Prof. Anderson Barroso 5
Categorias dos Modelos de Dados
 Modelo de Dados Representacional
– Características
• Também conhecido como modelo de dados Lógico ou 
de implementação
• Representa uma estrutura de banco de dados que será 
implementado no SGBD
• Possui conceitos mais rígidos e regras de 
implementação no SGBD
• Possui uma linguagem mais afastada do usuário final
• Ainda assim é um modelo de provê um bom nível de 
abstração
Prof. Anderson Barroso 6
Categorias dos Modelos de Dados
 Modelo de Dados Representacional
– Modelos da categoria
• Relacional
• Rede
• Hierárquico
Prof. Anderson Barroso 7
Modelo E-R -
Projeto Conceitual
Modelo E-R
 Conceitos Básicos
– Definido por Peter Chen em 1976
– Utilizado para identificar: 
• Tipos de dados a serem armazenados
• Associações entre os dados
• Características dos dados e das associações
– O Modelo E-R descreve os dados através dos conceitos: 
Entidade, Atributos, Relacionamentos (Cardinalidade, 
Obrigatoriedade)
Prof. Anderson Barroso 9
Modelo E-R
 Baseia-se no princípio que o mundo real deve ser 
representando por dois conjuntos básicos: Entidade e 
Relacionamento
– Entidade
• É o objeto básico do Modelo E-R e representa “algo” do 
mundo real” (ELMASRI; NAVATHE, 2005)
• Pode ser um objeto de existência física: Carro, Pessoa 
ou Funcionário
• Também pode ser um objeto de existência conceitual: 
Um curso de graduação
• Pode ser um evento do mundo real: Uma venda
Prof. Anderson Barroso 10
Modelo E-R
 Entidade
– Exemplo 01: “Cada aluno está vinculado a apenas um 
curso, sendo que cada aluno possui um número de 
matrícula único, nome, data de nascimento, créditos 
cursados e média geral”
• Identificamos a entidade Aluno
– Exemplo 02: “Os cursos de graduação são coordenados 
por apenas um professor e possui um código único, nome e 
total de créditos necessários para que um aluno possa 
concluir o curso”
• Identificamos as entidades Curso e Professor
Prof. Anderson Barroso 11
Modelo E-R
 Entidade
– Instância de entidade: Representa cada ocorrência da 
entidade
– Exemplos da instâncias da entidade Aluno
Prof. Anderson Barroso 12
Modelo E-R
 No modelo E-R as entidades são representadas através de 
retângulos
Prof. Anderson Barroso 13
Modelo E-R
 Entidades
– Atributos
• Após identificação das entidades é preciso localizar os 
atributos que as formam
• “Atributos são características vinculadas a uma 
determinada entidade” (MEDEIROS, 2007)
– Exemplo: “Cada disciplina da universidade possui um 
código único, nome e uma quantidade de créditos”
– É possível identificar os atributos Código da disciplina, 
nome e quantidade de créditos
Prof. Anderson Barroso 14
Modelo E-R
 Entidade
– Atributo chave
• Dentre os atributos elencados é importante identificar um 
atributo chave que consegue identificar uma 
determinada instância de entidade
• Exemplo: Entidade Aluno, atributo chave matrícula
• Os atributos chaves são representados por um círculo 
preenchido
Prof. Anderson Barroso 15
Modelo E-R
 Relacionamentos
– Representa as associações entre as instâncias de entidades 
diferentes
– Conforme estudo de caso, podemos observar situações de 
referências entre as entidades
– Exemplo: “Cada aluno está vinculado a apenas um curso”
– Associação entre a entidade Aluno com a entidade Curso
Prof. Anderson Barroso 16
Modelo E-R
 Relacionamentos
– Cardinalidade ou Multiplicidade
• Define a quantidade de elementos de uma entidade que 
se relaciona com uma quantidade de elementos de outra 
entidade
• Quando identificamos o relacionamento é necessário 
definir as quantidades de associações entre as 
instâncias de entidade
Prof. Anderson Barroso 17
Cardinalidade de
1:N ou N:1
Modelo E-R
 Relacionamentos
– Cardinalidade ou Multiplicidade
• Diagrama de Ocorrência
Prof. Anderson Barroso 18
Modelo E-R
 Relacionamentos
– Cardinalidade de N:N
Prof. Anderson Barroso 19
Modelo E-R
 Relacionamentos
– Cardinalidade de 1:1
Prof. Anderson Barroso 20
Modelo E-R
 O que vimos até então?
– Relacionamentos binários – Envolve duas entidades
 O que veremos ainda?
– Relacionamentos ternários
– Relacionamentos recursivos ou Auto-
Relacionamento
– Realizar generalizações/especialização de entidades
– Entidade associativa
– Obrigatoriedade nos Relacionamentos
– Relacionamentos com Atributos
Prof. Anderson Barroso 21
Modelo E-R
 Relacionamento ternário
– Ocorre quando identificamos três entidades que juntas 
representam alguma informação
– “Ao final do semestre, as disciplinas são associadas 
aos alunos em um determinado período letivo”
• Um aluno em determinado semestre pode ter 
várias disciplinas?
• Um aluno pode cursar a mesma disciplina em 
vários semestres?
• Uma disciplina em determinado semestre pode ser 
cursada por vários alunos?
Prof. Anderson Barroso 22
Modelo E-R
 Relacionamento ternário
Prof. Anderson Barroso 23
Modelo E-R
 Relacionamento Recursivo ou Auto-Relacionamento
– Ocorre quando uma entidade se relaciona com ela 
mesma
– “É possível cada disciplina ter apenas uma outra como 
pré-requisito”
Prof. Anderson Barroso 24
Modelo E-R
 Generalização/Especialização
– Ocorre quando uma entidade pode ser subdividida em 
outras entidades que possuem características 
particulares
– Exemplo: Arquivo pode ter os subtipos Áudio, Imagem 
e Texto
• Atributos comuns: Nome e tamanho
• Áudio: duração
• Imagem: dimensão
• Texto: quantidade de caracteres
Prof. Anderson Barroso 25
Modelo E-R
 Generalização/Especialização
Prof. Anderson Barroso 26
ARQUIVO
ÁUDIO IMAGEM TEXTO
Modelo E-R
 Entidade Associativa
– Surgiu da necessidade de relacionar um 
relacionamento já definido com outra entidade
Prof. Anderson Barroso 27
Modelo E-R
 Obrigatoriedade nos Relacionamentos
– Considere o exemplo
– Aplicando a obrigatoriedade nos relacionamentos podemos fazer 
as seguintes perguntas?
• Qual a quantidade mínima de alunos que um curso pode ter?
• Qual a quantidade máxima de alunos que um curso pode ter?
• Qual a quantidade mínima de cursos que um aluno pode estar 
associado?
• Qual a quantidade máxima de cursos que um aluno pode estar 
associado?
Prof. Anderson Barroso 28
Modelo E-R
 Obrigatoriedade nos Relacionamentos
– Notação (Min, Max)
• Uma notação alternativa para expressar restrições de 
cardinalidade e participação
Prof. Anderson Barroso 29
Modelo E-R
 Relacionamentos com Atributos
 “Cada curso está associado a um conjuntode disciplinas, 
sendo que para cada curso a disciplina é vinculada a um 
determinado período curricular”
Prof. Anderson Barroso 30
Modelo E-R
 Entidade Fraca
– Uma entidade é caracterizada como fraca em relação a 
outra entidade quando sua identificação unívoca é 
dependente da identificação de outra
– Banco é uma entidade forte a agência é uma entidade 
fraca
Prof. Anderson Barroso 31
Exercícios
1) Represente o D.E.R para cada situação abaixo:
a) Um paciente ocupa obrigatoriamente, apenas um leito do 
hospital
b) Um funcionário está sempre alocado a um único setor que 
por sua vez possui vários funcionários alocados
c) Em um zoológico cada animal ocupa sempre uma única 
jaula. Uma jaula pode ser coletiva.
Prof. Anderson Barroso 32
Exercícios
Prof. Anderson Barroso 33
2) Represente o D.E.R para cada situação abaixo:
“Para o aluno que estudou em escola pública por mais de 5 anos ou mais 
a Universidade permite que ele entre em um tipo de programa de ajuda de 
custo”
“Cada aluno nesta situação pode estar ligado a um único tipo de 
programa. Atualmente os tipos de programas existentes são: Aluno 
Trabalhador, Aluno Estagiário, Aluno Atleta e Aluno Carente”
“Alunos com menos de 5 anos de escola pública somente podem estar 
associados ao programa Aluno Trabalhador”
“Cada tipo de programa possui uma quantidade máxima de alunos que 
podem ser atendidos atualmente. O valor de ajuda de custo de cada tipo 
de programa é diferenciado entre eles”
O modelo deve responder:
a) Dado um aluno, qual o seu nome e de que tipo de programa participa?
b) Qual o valor da ajuda de custo de cada programa, o máximo de alunos que 
cada tipo de programa pode atender e o total de alunos atingidos por cada 
programa?
Modelo E-R
 Dicionário de dados
– São notações vinculadas ao DER que auxiliam na descrição dos 
dados
– Existem várias notações para descrever os dados
– Notação de Yordon
= : Equivalente
+ : Concatenação
| : Seleção
n{a}m: Repetição de n até no máximo M
(a) : Opcionalidade
/* */: Comentários
@ : Atributo chave
() : Opcionalidade
– Exemplos
• Aluno = @matrícula + nome + endereco + (email) + 
sexo + 0{disciplinas}N
• sexo = M|F 
Prof. Anderson Barroso 34
Modelo E-R
 Considere o DER
Prof. Anderson Barroso 35
Pessoa
Idioma Cargo
Habilidade
 Domínio 
do Idioma
Experiência
Modelo E-R
 Exemplo de dicionário de dados
Prof. Anderson Barroso 36
idioma = @cod-idioma + nom-idioma 
domínio do idioma = @cod-idioma + @cod-pessoa + leitura + escrita + fala 
/* os atributos leitura, escrita e fala são graduados em pouco, regular e 
bastante */ 
habilidade = @cod-hab + dsc-hab 
experiência = @cod-pessoa + @cod-cargo + dat-início + ( dat-fim ) + tipo-exp 
pessoa = @cod-pessoa + cpf-pessoa + nom-pessoa + tipo-pessoa + ( cod-
setor + dat-admissão ) + dat-nasc + sexo + endereço + com-endereço + 
bairro + cidade + uf + cep + ( fone + celular + e-mail ) + 0 { num-cur + 
tipo-cur + ( ano-conclusão + nom-curso + cod-inst + cod-área + 
crg-horária ) } N 
/* para cursos incompletos o ano de conclusão não possuirá valor e para 
especialização, a carga horária é requerida O atributo tipo-cur determina 
a graduação que vai do 1º grau até o doutorado*/ 
cargo = @cod-cargo + dsc-cargo + tipo-cargo 
 
Modelo Relacional
Modelo Relacional
 Criado por Edgar Ted Codd, em 1970
 Definição
– Consiste de uma teoria desenvolvida para bancos de dados 
relacionais, visando o processamento eficiente de requisições dos 
usuários a informações da base de dados
 Estrutura Básica
– Coleção de relações (tabelas)
– As tabelas são compostas por uma coleção de atributos (colunas) 
onde cada tupla (linha) representa um relacionamento entre o 
conjunto de valores
Prof. Anderson Barroso 38
Modelo Relacional
 Relação ou tabela “Alunos”
Prof. Anderson Barroso 39
Modelo Relacional
 Considerações sobre as relações
– O cabeçalho de uma relação é o conjunto de atributos que a 
compõe;
– O corpo de uma relação é o conjunto de tuplas que a 
compõe;
– O número de atributos de uma relação determina o seu grau
– A cardinalidade de uma relação é dada pela número de 
tuplas que a compõe;
– O domínio de um atributo determina os tipos de operações 
aplicáveis ao atributo;
Prof. Anderson Barroso 40
Modelo Relacional
 Propriedades das relações
– Em uma relação não é permitida, sob nenhuma hipótese, a 
existência de tuplas duplicadas;
– As tuplas de uma relação não seguem um determinado nível 
de ordenação;
– Os atributos de uma relação também não seguem um 
determinado nível de ordenação;
– Todos os domínios, e consequentemente os possíveis 
valores dos atributos, devem ser atômicos:
• Cada coluna ou atributo deve armazenar apenas um valor e 
não um conjunto de valores
• Uma vez definido o tipo da coluna os valores das colunas 
devem obedecer ao tipo de dado definido
Prof. Anderson Barroso 41
Restrições
 Além de representar os dados em formas de tabelas, o modelo 
relacional também define um conjunto de validações que devem ser 
impostas aos dados com objetivo de não permitir que os dados fiquem 
inconsistentes
 Estas validações são conhecidas como Restrições
 Podemos impor as principais restrições
– Restrição de Domínio
– Restrições de Atributos Obrigatórios
– Restrições de Chave
– Restrições de Integridade Referencial
– Restrições de Integridade Semântica
Prof. Anderson Barroso 42
Restrições
 Restrição de Domínio
– Restrição que atua sobre os dados de uma coluna
– Precisamos definir qual o tipo de valor que pode ser atribuído a 
cada coluna
– Valores do tipo inteiro, real, lógico, caracter, texto, data, dentre 
outros
– Também é possível definir restrições condicionais, por exemplo: O 
atributo média da tabela de alunos deve ter valores maiores ou 
iguais a zero e menores ou iguais a dez
Prof. Anderson Barroso 43
nome caracter(80)
salario real(8,2) check (salario <= 10000)
sexo caracter(1) check( sexo in ('M','F') )
Restrições
 Restrições de Atributos Obrigatórios
– Atributos que não são obrigatórios são identificados no 
modelo relacional como NULL
– Já os obrigatórios são representador como NOT NULL
– O SGBD deve garantir que um atributo definido como 
NOT NULL, sempre será preenchido no cadastro da 
linha
– Exemplos
• E-mail: NULL (O atributo “e-mail” é opcional)
• Nome: NOT NULL (O atributo “nome” é obrigatório)
Prof. Anderson Barroso 44
Restrições
 Restrições de Chave
– Para evitar redundância as linhas (tuplas) de uma 
tabela (relação) devem ser distintas
– Para garantir este conceito, devemos selecionar um 
conjunto de atributos que não se repetirá em linhas 
diferentes da tabela, atributo chave
– Tabela de alunos com os atributos: Nome, Cidade, 
Estado
• Solução: Criar um campo que faça a identificação, 
número da matrícula
Prof. Anderson Barroso 45
Restrições
 Restrições de Chave
– Tipos de restrições de chave
• Superchave
– Conjunto de atributos que identificam unicamente 
uma tupla da relação
• Chave candidata (UNIQUE KEY)
– São as menores superchaves
• Chave primária (PRIMARY KEY)
– É a chave candidata escolhida para identificar a 
tupla de uma relação
Prof. Anderson Barroso 46
Restrições
 Chaves – Considere a relação:
Alunos( #matricula, nome, cpf, rg )
São superchaves:
matricula, nome, cpf, rg
matricula, cpf
matricula, rg
cpf, rg
cpf, nome
matricula
cpf
Prof. Anderson Barroso 47
São chaves candidatas:
matricula
cpf
Chave primária escolhida:
matricula
Restrições
 Restrições de Chave
“Além de impor a não repetição das chaves primárias 
e candidatas, o SGBD também garante que as chaves 
primárias não deverão ser NULL. Esta restrição é imposta, 
pois com os atributos vazios não é possível realizar a 
distinção das linhas” (ELMARSI; NAVATHE, 2005).
Prof. Anderson Barroso 48
Restrições
 Restrição de Integridade Referencial
– Para implementar os relacionamentosidentificados no 
Modelo E-R utilizamos a restrição de integridade 
referencial
– A integridade referencial consiste na referência que 
uma linha de uma tabela faz em relação a outra linha 
da tabela
– Por exemplo, para podermos indicar o curso que um 
aluno está vinculado, precisamos definir um atributo na 
tabela de alunos para referenciar um curso na tabela 
de cursos
Prof. Anderson Barroso 49
Restrições
 Restrição de Integridade Referencial
– O campo criado na tabela de Alunos é chamado de chave 
estrangeira
– A chave estrangeira deve estar sempre associada a uma 
chave primária na tabela de referência
– O SGBD deve garantir a consistência de referência, ou seja, 
obrigatoriamente deve existir na tabela referenciada
Prof. Anderson Barroso 50
Restrições
 Tipos de Integridade Referencial
– CASCADE
• Deleção: remove todas as linhas que referenciam a 
linha removida
• Atualização: atualização em cascata o valor da chave 
estrangeira para as linhas que referenciam a chave 
primária atualizada
Prof. Anderson Barroso 51
Restrições
 Tipos de Integridade Referencial
– RESTRICTED
• Deleção: não permite a remoção se existirem linhas que 
referenciam a chave excluída
• Atualização: não permite a atualização da chave 
primária se existirem linhas referenciando a mesma
Prof. Anderson Barroso 52
Restrições
 Tipos de Integridade Referencial
– NULLIFIES
• Deleção: todas as chaves estrangeiras que referenciam 
a chave primária removida têm seu valor modificado 
para nulo
• Atualização: todas as chaves estrangeiras que 
referenciam a chave primária alterada são modificadas 
para o valor nulo
Prof. Anderson Barroso 53
Restrições
 Outros tipos de restrição
– As restrições vistas até então já garantem bons resultados 
quanto a consistência de dados
– Entretanto, existem restrições que ultrapassam os limites do 
modelo relacional
– Exemplos:
• “O salário de um funcionário não pode ser superior ao 
salário do seu superior imediato”
• “O aluno não pode cursar uma disciplina se não tiver 
cursados os pré-requisitos para ela”
– São chamadas de Restrições de Integridade Semântica
Prof. Anderson Barroso 54
Restrições
 Asserções
– São restrições que validam os dados diante de qualquer 
manutenção no banco de dados
– Expressa uma condição que sempre deve ser satisfeita para 
os dados de uma base
– Exemplo:
Prof. Anderson Barroso 55
create assertion salario_funcionario
check ( not exists ( 
select cod_func
from funcionarios f, setores s
where f.cod_setor = s.cod_setor and
f.salario > s.sal_maximo ) )
Restrições
 Triggers
– São comandos executados automaticamente quando ocorre 
alguma atualização no SGBD
– Os comandos são definidos em um linguagem de programação 
específica do SGBD
– São executados diante de um comando de inclusão, alteração ou 
exclusão
– Devem ser utilizadas para validar a entrada de dados, gerando 
mensagens de erro quando algo de errado ocorra
– Exemplos:
• Matrícula: verificação de pré-requisito
• Histórico: não permitir lançamento caso aluna já possua 
aprovação na disciplina
Prof. Anderson Barroso 56
Restrições
 Exemplo trigger Oracle:
Prof. Anderson Barroso 57
create trigger turmas_aiu
after insert, update on turmas
for each row
declare begin
if :new.vagas < :new.vagas_ocupadas then
raise_application_error( -20000,'As vagas ocupadas '||
'não pode ser maior '|| 
'do a quantidade de vagas'||
'ofertadas' );
else
insert into log
( usuario, log )
values
( user, :new.vagas||';'||:new.vagas_ocupadas);
end if;
end;
Restrições
 Operações que podem violar as Restrições
– As principais operações em bancos de dados 
relacionais são recuperação e atualização
– Iremos tratar apenas das operações de atualização 
que são: 
• Inclusão (Insert)
• Alteração (Update)
• Exclusão (Delete)
Prof. Anderson Barroso 58
Restrições
 Operações que podem violar as Restrições
– Inclusão (Insert)
• Realiza a inclusão de uma linha em uma determinada 
tabela
• Esta operação é feita informando as colunas e os 
valores para cada coluna da tabela
• Nesta operação podemos ter as seguinte violações
– Violação de restrição de domínio
– Violação de restrição de chave
– Violação de obrigatoriedade
– Violação de integridade referencial
– Violação de integridade semântica
Prof. Anderson Barroso 59
Restrições
 Operações que podem violar as Restrições
– Exclusão (Delete)
• Realiza a exclusão de linhas em determinada 
tabela
• Restrições que podem ser violadas: Integridade 
referencial e integridade semântica
• Existe uma artifício que pode evitar que a violação 
ocorra – Chamado de remoção em cascata (deve 
ser utilizada com muita cautela)
Prof. Anderson Barroso 60
Restrições
 Operações que podem violar as Restrições
– Atualização (Update)
• Realiza a alteração do valor de um ou mais 
atributos de uma linha
• Durante a operação de atualização, devem ser 
especificados os atributos que serão alterados e 
seus valores novos
• Caso a alteração não seja realizada nos atributos 
que façam parte da chave primária ou da 
estrangeira, as violações que podem ocorrer são 
de domínio, integridade semântica e atributos 
obrigatórios
Prof. Anderson Barroso 61
Restrições
 Operações que podem violar as Restrições
– Atualização (Update)
• Quando ocorrer alteração do valor de um campo de 
chave primária podemos ter as violações de:
– Restrição de Chave
– Restrição de Integridade Referencial
– Restrição de Atributos Obrigatórios
– Restrição de Domínio
– Restrição de Integridade Semântica
Prof. Anderson Barroso 62
Projeto de Banco de Dados
 Objetivo: Projetar um esquema de banco de dados relacional 
com base no esquema conceitual (Projeto Lógico)
 Algumas ferramentas utilizam o Modelo E-R para desenvolver o 
esquema graficamente, e depois o convertem de maneira 
automática em um esquema de banco de dados relacional, 
gerando até mesmo os scripts DDL do banco
 Nesta etapa ocorre a escolha do SGBD levando em 
consideração os Custos e Requisitos Técnicos
 Existe um algoritmo para converter as construções básicas do 
modelo E-R em relações
 Em suma, o projeto lógico, utilizando o modelo relacional realiza 
a transformação de:
– Entidades em tabelas
– Atributos em colunas
Prof. Anderson Barroso 63
Projeto de Banco de Dados
Projeto Conceitual
 Entidades
 Atributos
 Relacionamentos
 Especializações
 Entidades fracas
 etc
Projeto Lógico
 Tabelas
 Campos
 Chaves primárias, 
estrangeiras e restrição 
de chave única
 Restrição de integridade
Prof. Anderson Barroso 64
Projeto de Banco de Dados
 Etapa 1: Mapeamento de entidades
– Cada entidade vira uma relação
– Definição das chaves primárias (CP), candidatas (CC) e 
estrangeiras (CE)
Prof. Anderson Barroso 65
#mat_alu (CP)
*nom_alu
ºend_alu
*media_alu
*cpf (cc)
Alunos
Projeto de Banco de Dados
 Etapa 2: Mapeamento de tipos de entidade fraca
Prof. Anderson Barroso 66
#COD_BANCO (CP) (CE)
#COD_AGENCIA
*NOM_AGENCIA
AGENCIAS
#COD_BANCO (CP)
*NOM_BANCO
BANCOS
(1,1) (0,N)
Projeto de Banco de Dados
 Etapa 3: Mapeamento de tipos de relacionamento binários 1:1
Prof. Anderson Barroso 67
#COD_PROF (cp)
*NOM_PROF
PROFESSORES
#COD_CURSO (CP)
*NOM_CURSO
COD_PROF (CE)
CURSOS
(0,1)
(0,1)
#COD_CURSO (cp)
*NOM_CURSO
CURSOS
#COD_PROF (CP)
*NOM_PROF
COD_CURSO (CE)
PROFESSORES
(0,1)
(0,1)
a) b)
Projeto de Banco de Dados
 Etapa 4: Mapeamento de tipos de relacionamento binários 1:N
Prof. Anderson Barroso 68
#COD_CURSO (CP)
*NOM_CURSO
CURSOS
#MAT_ALU (CP)
*NOM_ALU
ºEND_ALU
* COD_CURSO 
(CE)
ALUNOS
(0,N)
(1,1)
Projeto de Banco de Dados
 Etapa 5: Mapeamento de tipos de relacionamento binários N:N
Prof. Anderson Barroso 69
#MAT_ALU 
(CP)
*NOM_ALU
ºEND_ALU
ALUNOS
#MAT_ALU (CP)(CE)
#COD_DISC (CP)(CE)
*DAT_MAT
MATRICULAS
#COD_DISC (CP)
*NOM_DISC
*QTD_CRED
DISCIPLINAS
(0,N) (0,N)
Projeto de Banco de Dados
 Etapa 6:Mapeamento de Generalização/Especialização
– O mapeamento pode ser feito utilizando três estratégias
1. Agregar todas as entidades em uma só, e todos os 
atributos das entidades de nível inferior serão incorporados 
nesta entidade permitindo valores nulos
2. Cada entidade de nível inferior são mapeadas para uma 
tabela quem mantém um relacionamento de 1:1 com a 
tabela de nível superior
3. Cada entidade de nível inferior gera uma nova tabela 
agregando os campos da entidade de nível superior
Prof. Anderson Barroso 70
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
Prof. Anderson Barroso 71
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 01: Agregar todas as entidades em uma só, e todos os 
atributos das entidades de nível inferior serão incorporados nesta 
entidade permitindo valores nulos
Prof. Anderson Barroso
72
#MAT_ALU (CP)
*NOM_ALU
ºEND_ALU
ºDISSERTACAO
ºTESE
ºMEDIA_GERAL
ºTIPO_INGRESSO
ALUNOS
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 01: Agregar todas as entidades em uma só, e todos os 
atributos das entidades de nível inferior serão incorporados nesta 
entidade permitindo valores nulos
– Observações
• Tabelas com grande quantidade de valores nulos
• Não existe a necessidade de junções com outras tabelas
• É necessário implementar regras para garantir a consistência 
dos campos
Prof. Anderson Barroso 73
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 02: Cada entidade de nível inferior são mapeadas para 
uma tabela quem mantém um relacionamento de 1:1 com a tabela 
de nível superior
Prof. Anderson Barroso 74
#MAT_ALU
*NOM_ALU
*TPO_ALU
ºEND_ALU
ALUNOS
#MAT_ALU 
*DISSERTACAO
MESTRADOS
#MAT_ALU
*TESE
DOUTORADOS
#MAT_ALU
*MEDIA_GERAL
ESPECIALIZACOES
#MAT_ALU
*TIPO_INGRESSO
GRADUACOES
1
00
0 0
1
1
1
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 02: Cada entidade de nível inferior são mapeadas para 
uma tabela que mantém um relacionamento de 1:1 com a tabela 
de nível superior
– Observações
• É necessário realizar junções para obter os dados necessários
• Elimina a necessidade de campos nulos
• Necessidade de se implementar validações para consistência 
entre tabelas de nível superior e de nível inferior
Prof. Anderson Barroso 75
1
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 03: Cada entidade de nível inferior gera uma nova 
tabela agregando os campos da entidade de nível superior
Prof. Anderson Barroso 76
#MAT_ALU
*NOM_ALU
ºEND_ALU
*DISSERTACAO
MESTRADOS
#MAT_ALU
*NOM_ALU
ºEND_ALU
*TESE
DOUTORADOS
#MAT_ALU
*NOM_ALU
ºEND_ALU
*MEDIA_GERAL
ESPECIALIZACOES
#MAT_ALU
*NOM_ALU
ºEND_ALU
*TIPO_INGRESSO
GRADUACOES
Projeto de Banco de Dados
 Etapa 6: Mapeamento de Generalização/Especialização
– Estratégia 03: Cada entidade de nível inferior gera uma nova 
tabela agregando os campos da entidade de nível superior
– Observações
• Elimina o uso de valores nulos
• Para se recuperar, por exemplo, o nome de todos os alunos, 
será necessário a realizar união
• Possibilidade de redundância de dados
• Dificuldade de implementar relacionamento com a tabela de 
nível superior
• Como não existe a tabela de nível superior, há a necessidade 
de implementação de mecanismos que mantenham a 
consistência sem redundância entre de dados referente à 
tabela pai
Prof. Anderson Barroso 77
Projeto de Banco de Dados
 Etapa 7: Mapeamento de relacionamentos recursivos ou Auto 
Relacionamento
Prof. Anderson Barroso 78
#COD_DISC
*NOM_DISC
*QTD_CRED
*COD_DISC_PRE (CE)
DISCIPLINAS
Projeto de Banco de Dados
 Etapa 8: Mapeamento de entidade associativa
Prof. Anderson Barroso 79
DISCIPLINAS{ #COD_DISC, NOM_DISC, QTD_CRED}
PERIODOS_LETIVOS{ #ANO, #SEMESTRE, DAT_INI, DAT_TER}
PROFESSORES {#COD_PROF, NOM_PROF}
OFERTAS { #COD_DISC (ce), #ANO (ce), #SEMESTRE (ce), 
#COD_PROF (ce), TOTAL_VAGAS, VAGAS_OCUP }
Projeto de Banco de Dados
 Etapa 9: Mapeamento de relacionamentos ternários
Prof. Anderson Barroso 80
DISCIPLINAS{ #COD_DISC, NOM_DISC, QTD_CRED}
ALUNOS { #MAT_ALU, NOM_ALU }
PERIODOS_LETIVOS{ #ANO, #SEMESTRE, DAT_INI, DAT_TER}
HISTORICOS {#COD_DISC (ce), #MAT_ALU (ce), #ANO, 
#SEMESTRE, MEDIA}
Exemplo - Requisitos
Prof. Anderson Barroso 81
Fábrica
 A Fábrica comercializa vários produtos, cada
um dos quais com um código, um nome, e um
preço. Em cada momento a empresa deve
ainda saber qual a quantidade existente no
armazém de cada um dos produtos;
 Uma encomenda deve ter um número e a
data em que foi feita, pode ter vários
produtos, mas diz respeito apenas a um
fornecedor;
 De cada fornecedor a empresa deseja guardar
a informação do seu nome, número de
contribuinte, morada, forma de pagamento,
prazo de pagamento, e um código interno de
tipo de fornecedor;
Produto N 
X
Armazém 1
Produto N
X
Encomenda N
Encomenda N
X
Fornecedor 1
Exemplo – Modelo Conceitual
Prof. Anderson Barroso 82
Exemplo – Lógico
Prof. Anderson Barroso 83
Exemplo – Projeto de Banco
Prof. Anderson Barroso 84
Prof. Anderson Barroso 85
Modelo de Representação
Prof. Anderson Barroso 86
Leitura Complementar
 NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de 
Banco de Dados. Addison Wesley BRA, 2005.
– Capítulo 7: Modelagem de dados usando o modelo 
Entidade -Relacionamento
 DATE, Christopher J. Introdução a Sistemas de Banco 
de Dados. 8 ed. Rio de Janeiro: Campus, 2004.
– Capítulo 5: Modelo Relacional
 NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de 
Banco de Dados. Addison Wesley BRA, 2005.
– Capítulo 3: O modelo de dados relacional e as 
restrições em banco de dados.
 NAVATHE, Shamkant B, ELMASRI, Ramez. Sistemas de 
Banco de Dados. Addison Wesley BRA, 2005.
– Capítulo 9: Projeto de banco de dados relacional 
por mapeamento ER e ERR para relacional
Prof. Anderson Barroso 87

Outros materiais