Buscar

Aula 03 Modelo Relacional

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

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

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ê viu 3, do total de 74 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

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

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ê viu 6, do total de 74 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

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

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ê viu 9, do total de 74 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

Prévia do material em texto

Modelagem de Dados
MODELAGEM DE DADOS
MODELO RELACIONAL
Profa. Rosemary Melo
Modelagem de Dados
2
Conceitos Básicos
 Criado por Edgar Codd, nos anos 70.
 Tornou-se um padrão de fato para aplicações comerciais a
partir de 1987, devido sua simplicidade e performance.
 Representa os dados num BD como uma coleção de relações
(tabelas).
 Uma relação representa um conjunto de valores que pode
implicar numa coleção de relacionamentos entre conjunto
de valores.
2
MODELO LÓGICO RELACIONAL 
Modelagem de Dados
Exemplo: banco de dados de departamento e empregados
DEPTO# NOMEDEPTO ORÇAMENTO
D1 Marketing 10M
D2 Desenvolvimento 12M
D3 Pesquisa 5M
EMP# NOMEEMP DEPTO# SALÁRIO
E1 Lopez D1 40K
E2 Cheng D1 42K
E3 Finzi D2 30K
E4 Saito D2 35K
Depto
Emp
Nome da 
tabela
Tabela
Linhas (registros), 
uma ocorrência de 
Depto
Colunas (campos), dado 
da tabela (associado a um 
tipo de dado)
Modelagem de Dados
4
CONTEMPLA TRÊS ASPECTOS:
 Aspecto estrutural - dados são percebidos como tabelas
 Aspecto de integridade - suas tabelas satisfazem restrições de
integridade (mudanças feitas no banco de dados não
acarretam inconsistência nos dados).
 Aspecto manipulador – uso de operações para que o usuário
possa manipular essas tabelas (derivam tabelas a partir de
outras tabelas, ex.: restrição, projeção e junção)
4
MODELO RELACIONAL 
Modelagem de Dados
Exemplo: banco de dados de departamento e empregados
5
DEPTO# NOMEDEPTO ORÇAMENTO
D1 Marketing 10M
D2 Desenvolvimento 12M
D3 Pesquisa 5M
EMP# NOMEEMP DEPTO# SALÁRIO
E1 Lopez D1 4000
E2 Cheng D1 4200
E3 Finzi D2 3000
E4 Saito D2 3500
Depto
Emp
Restrição: Depto onde 
Orçamento>8M
DEPTO# NOMEDEPTO ORÇAMENTO
D1 Marketing 10M
D2 Desenvolvimento 12M
Projeção: DEPTO sobre DEPTO#, 
Orçamento
DEPTO# ORÇAMENTO
D1 10M
D2 12M
D3 5M
Junção: DEPTOs e EMPs sobre 
DEPTO#
DEPTO# NOMEDPTO ORÇAMENTO EMP# NOMEEMP SALÁRIO
D1 Marketing 1oM E1 Lopez 4000
D1 Marketing 10M E2 Cheng 4200
D2 Desenvolvimento 12M E3 Finzi 3000
D2 Desenvolvimento 12M E4 Saito 3500
Modelagem de Dados
6
Na terminologia de BD Relacional:
 Tabela é chamada de Relação.
 Linha é chamada de Tupla.
 Coluna é chamada de Atributo.
6
MODELO RELACIONAL 
Modelagem de Dados
7
Definições:
 Um esquema de relação R, denotado por R(A1, A2, ..., An)
é usado para descrever uma relação.
Ex.: Empregado (Matr, Nome, Endereço, Função, Depart)
 Cada atributo Ai pertence a um conjunto de valores
possíveis, denotado de domínio (dom(Ai)).
 O grau de uma relação é o número de atributos que seu
esquema contém.
Ex.: Estudante(matr, nome, fone, idade, curso) => grau = 5
7
MODELO RELACIONAL 
Modelagem de Dados
8
Características das Relações:
 Cada tabela terá um nome, que será único e um conjunto de
atributos com seus respectivos nomes e tipos.
 Todos os valores de um atributo são do mesmo tipo de dados
(domínio).
 Cada atributo numa relação tem um nome que é único
dentro da relação.
8
MODELO RELACIONAL 
Modelagem de Dados
9
Características das Relações:
Um mesmo atributo pode ter nomes diferentes nas diversas
relações em que participa.
Atributos que representam diferentes conceitos podem ter
mesmo nome.
Ex.:
Empregado (Matr, Nome, End, Função, Salário, Dep)
Departamento(CodDepart, Nome, Gerente, DataInicio)
9
MODELO RELACIONAL 
12
1
2
Modelagem de Dados
10
Características das Relações:
 A ordem dos atributos e das tuplas não têm importância.
 Todo atributo possui valor atômico.
 Todas as tuplas devem ser únicas (conjuntos).
EMP# NOMEEMP DEPTO# SALÁRIO
E1 Lopez D1 40K
E2 Cheng D1 42K
E3 Finzi D2 30K
E4 Saito D2 35K
MODELO RELACIONAL 
Modelagem de Dados
11
Restrições de Integridade:
 Integridade de chave
 Toda tupla tem um conjunto de atributos (chave
primária) que a identifica de maneira única na relação.
 Integridade de Entidade:
 Nenhum valor de chave primária poderá ser NULO.
 Integridade referencial:
 Relação pode ter um conjunto de atributos que contém
valores com mesmo domínio de um conjunto de atributos
que forma a chave primária de uma outra relação (chave
estrangeira).
11
MODELO RELACIONAL 
Modelagem de Dados
1212
MODELO RELACIONAL 
DEPTO# NOMEDEPTO ORÇAMENTO
D1 Marketing 10M
D2 Desenvolvimento 12M
D3 Pesquisa 5M
EMP# NOMEEMP DEPTO# SALÁRIO
E1 Lopez D1 40K
E2 Cheng D1 42K
E3 Finzi D2 30K
E4 Saito D2 35K
Depto
Emp
Observação:
 Uma chave estrangeira pode referenciar-se a sua própria
relação (auto-relacionamento).
Ex.: Empregado(matrícula, nome, salário, matr_supervisor)
Exemplo:
Modelagem de Dados
13
Regras para definição de chaves estrangeiras:
 Um conjunto de atributos de uma relação R1 é uma chave
estrangeira se satisfaz as seguintes regras:
Regra 1 :
 Os atributos da chave estrangeira tem o mesmo
domínio dos atributos da chave primária de outra
relação R2.
Regra 2:
 Um valor da chave estrangeira numa tupla t1 de R1
possui o mesmo valor da chave primária para alguma
tupla t2 em R2 ou é NULO.
13
MODELO RELACIONAL 
Modelagem de Dados
Exemplos
F# FNOME STATUS CIDADE
F1 Smith 20 Londres
F2 Jones 10 Paris
F3 Blake 30 Paris
F4 Clark 20 Londres
F5 Adams 30 Atenas
P# PNOME COR PESO CIDADE
P1 Porca Vermelho 12 Londres
P2 Pino Verde 17 Paris
P3 Parafuso Azul 17 Oslo
P4 Parafuso Vermelho 14 Londres
P5 Came Azul 12 Paris
P6 Tubo Vermelho 19 Londres
F# P# QDE
F1 P1 300
F1 P2 200
F1 P3 400
F1 P4 200
F1 P5 100
F1 P6 100
F2 P1 300
F2 P2 400
F3 P2 200
F4 P2 200
F4 P4 300
F4 P5 400
Fornecedor
Peça
FornecedorPeca
Chave primária
Chave candidata
Chave primária
Chave 
estrangeira
Chave 
estrangeira
F# e P# 
Chave primária
Modelagem de Dados
15
 Coleção de operadores que tomam relações como seus
operandos e retornam uma relação como seu resultado.
 Sua função é oferecer uma fundamentação teórica para
banco de dados relacional, particularmente linguagem de
consulta para tais banco de dados.
 Oriunda da álgebra original que consistia em sete operadores
divididos em dois grupos:
 Operadores de conjunto :
 União, Interseção, Diferença e Produto Cartesiano.
 Operadores relacionais :
 Restrição (Seleção), Projeção e Junção.
15
ÁLGEBRA RELACIONAL
Modelagem de Dados
Para que serve a álgebra?
16
 Definir os dados que deverão ser obtidos como resultado de 
uma consulta.
 Definir os dados que deverão ser inseridos, alterados ou 
eliminados.
 Definir os dados que deverão ser visualizados através de uma 
visão.
Modelagem de Dados
Operadores
17
a 
b 
c
x 
y
a 
a
b 
b
c 
c
x 
y 
x 
y 
x 
y
a1 
a2 
a3
b1 
b1
b3
b1 
b2 
b3
c1 
c1
c3
a1 
a2 
a3
b1 
b1
b3
c1 
c1
c3
Restrição Projeção
Produto 
Cartesiano União
Interseção Diferença Junção
Modelagem de Dados
18
OPERADORES RELACIONAIS:
UNIÃO
18
ÁLGEBRA RELACIONAL
Modelagem de Dados
19
OPERADORES RELACIONAIS:
INTERSEÇÃO
19
ÁLGEBRA RELACIONAL
Modelagem de Dados
20
OPERADORES RELACIONAIS:
DIFERENÇA
 Operação de União e Interseção são comutativas, mas a Diferença não é.
 Os operadores de União, Interseção e Diferença requerem que as tabelas
contenham a mesma estrutura das colunas (mesmo grau e mesmo
domínio).
20
ÁLGEBRA RELACIONAL
Modelagem de Dados
21
OPERADORES RELACIONAIS:
PRODUTO CARTESIANO
21
ÁLGEBRA RELACIONAL
Modelagem de Dados
22
OPERADORES RELACIONAIS:
SELEÇÃO22
ÁLGEBRA RELACIONAL
Modelagem de Dados
23
OPERADORES RELACIONAIS:
PROJEÇÃO
23
ÁLGEBRA RELACIONAL
Modelagem de Dados
24
OPERADORES RELACIONAIS:
JUNÇÃO
 Na junção, quando a comparação é uma igualdade (ex.: Depto=CodDep)
=> é chamada equijoin.
 Junção Natural: é uma equijoin onde uma das colunas idênticas é
eliminada.
24
ÁLGEBRA RELACIONAL
Modelagem de Dados
Exercícios
• Para as Relações acima
– Quantas tuplas?
– Qual o grau?
– Quais os atributos?
– Quais os tipos?
– Quais os valores?
• Qual o resultado da
– União de A e B
– Diferenca de A e B
– Interseção entre A e B
• Defina uma projeção para A
• Defina uma restrição para B
A
F# FNOME STATUS CIDADE
F1 Smith 20 Londres
F2 Jones 10 Paris
F5 Adams 30 Atenas
B
F# FNOME STATUS CIDADE
F3 Blake 30 Paris
F4 Clark 20 Londres
F5 Adams 30 Atenas
Modelagem de Dados
Exercícios
26
• Dada as tabelas Funcionário e Dependente abaixo:
F# FNOME FSALARIO FCARGO
1 Maria da Silva 2000,00 Programador
2 Jose Santos 3000,00 Analista
3 Carla Costa 3500,00 Gerente
4 Antônio Souza 2200,00 Programador
5 Marcelo Duarte 2800,00 Analista
F# D# DNOME PARENTESCO
1 1 Mariana da Silva Filho
1 2 Jorge da Silva Cônjuge
2 3 Ana Santos Cônjuge
3 4 Antônia Costa Mãe
4 5 Maria Souza Filho
4 6 Paulo Souza Filho
 Qual o resultado das seguintes expressões:
 FUNCIONARIO WHERE FCARGO = “Programador”
 DEPENDENTE {NOME,PARENTESCO}
 FUNCIONARIO JOIN DEPENDENTE WHERE F#=F# (1) {DNOME}
 Qual a expressão para as seguintes necessidades:
 Fornecer nome dos funcionários que possuem cônjuge como dependente
 Fornecer nome dos funcionários com salário acima de 3000,00
Modelagem de Dados
27
 Permite traduzir os esquemas concebidos de um BD em um
nível de abstração mais alto (MER) para o nível de
implementação.
 Principais conceitos do MER:
 Tipos de entidades (regular, fraca)
 Graus de relacionamentos (binário, n-ário)
 Atributos (simples, compostos, multivalorados)
 Restrições (chave, cardinalidade, etc)
27
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
28
 Regras para efetuar o mapeamento:
Regra 1 - Entidades Regulares
Regra 2 - Atributo Multivalorado
Regra 3 - Entidades Fracas
Regra 4 - Relacionamento Binário 1:1
Regra 5 - Relacionamento Binário 1:N
Regra 6 - Relacionamento Binário N:M
Regra 7 - Relacionamentos Ternários
Regra 8 - Generalização/Especialização
Regra 9 - Agregação
28
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
29
 O modelo gerado a partir das noves regras executadas pode
ser considerado o modelo relacional inicial.
 Nos casos em que este modelo relacional inicial não atende
aos requisitos de performance do BD, há um processo de
refinamento e melhoria do modelo, até ser atingido o modelo
relacional satisfatório.
 As regras foram definidas tendo em vista dois objetivos
básicos:
 Obter um banco de dados que permita boa performance
de instruções de consulta e alteração do banco de dados.
 Obter um banco de dados que simplifique o
desenvolvimento e manutenção de aplicações.
29
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
30
Regra 1 – Entidades Regulares
 Para cada entidade regular E no esquema E-R, criar uma
relação R que inclua todos os atributos simples e derivados de
E.
 Para cada atributo composto de E inclua somente os seus
atributos simples.
 Escolha um dos atributos identificadores de E para ser a chave
primária de R.
 Se a chave escolhida de E for composta, então o conjunto
de atributos simples que o compõem irão formar a chave
primária de R.
30
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
31
Regra 1 – Entidades Regulares
Exemplo: MER
Modelo Relacional
31
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
32
Regra 2 – Atributo Multivalorado
 Criar uma nova relação R que inclua o atributo multivalorado
A mais a chave primária K da relação que representa a
entidade (ou relacionamento) que tem A como atributo.
 A chave primária de R é a combinação de A e K.
 Se o atributo multivalorado é composto, inclua apenas os
atributos simples que o compõe.
32
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
33
Regra 2 – Atributo Multivalorado
Exemplo: MER
Modelo Relacional
33
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
34
Regra 3 – Entidades Fracas
 Para cada entidade fraca W, com entidade forte E, no
esquema E-R, criar uma relação R e incluir todos os atributos
simples de W como atributo de R.
 Incluir como atributos da chave estrangeira de R, os atributos
que compõem à chave primária da entidade forte E.
 A chave primária de R é a combinação da chave primária da
entidade forte E e a chave da entidade fraca W.
34
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
35
Regra 3 – Entidades Fracas
Exemplo: MER
Modelo Relacional
35
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
36
Regra 4 – Relacionamento Binário 1:1
 Identifique as relações S e T que correspondem às entidades
que participam do relacionamento.
 Escolha uma das relações, digamos S, e inclua como chave
estrangeira em S a chave primária de T.
 É melhor escolher para desempenhar o papel de S, a entidade
que tenha participação total no relacionamento.
 Inclua todos os atributos simples do relacionamento 1:1 como
atributo de S.
36
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
37
Regra 4 – Relacionamento Binário 1:1
Exemplo: MER
Modelo Relacional
37
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
38
Regra 5 – Relacionamento Binário 1:N
 Identifique as relações S que represente a entidade que
participa do lado N do relacionamento.
 Inclua como chave estrangeira em S, a chave primária da
relação T que representa a outra entidade (lado 1) que
participa do relacionamento.
 Inclua qualquer atributo simples do relacionamento 1:N em S.
38
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
39
Regra 5 – Relacionamento Binário 1:N
Exemplo: MER
Modelo Relacional
39
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
40
Regra 6 – Relacionamento Binário N:M
 Crie uma nova relação S para representar o relacionamento.
 Inclua como chave estrangeira em S as chaves primárias das
relações que participam do relacionamento.
 A combinação destas chaves formará a chave primária da
relação S.
 Inclua qualquer atributo do relacionamento N:M em S.
Dica: Pode-se mapear o relacionamento 1:1 ou 1:N de maneira
similar ao M:N. Isto é usado quando poucas instâncias do
relacionamento existe, evitando valores nulos nas chaves
estrangeiras.
40
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
41
Regra 6 – Relacionamento Binário N:M
Exemplo: MER
Modelo Relacional
41
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
42
Regra 7 – Relacionamentos Ternários
 Para cada relacionamento n-ário R, criar uma nova relação S
para representar R.
 Incluir como chave estrangeira em S, as chaves primárias das
relações que representam as entidades participantes em R.
 Incluir qualquer atributo simples do relacionamento R (ou
componentes simples dos atributos compostos) como
atributo de S.
 A chave primária de S é a combinação de todas as chaves
estrangeiras de S.
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
43
Regra 7 – Relacionamentos Ternários
Exemplo: MER
Modelo Relacional
43
MAPEAMENTO DO MODELO E-R PARA RELACIONALModelagem de Dados
44
Regra 8 – Generalização/Especialização
 Converta cada especialização E e sua generalização G, cujos
atributos são {k, a1, a2,...,na} e k é a chave primária, em
esquemas de relações usando uma das seguintes opções:
Opção 1:
 Criar uma relação L para G com os atributos Atrib(L)= {k,
a1,...,an} e chave primária k. Criar também uma relação Li
para cada especialização Ei, com os seguintes atributos:
Atrib(Li) = {k} U {atributos de Ei}, k será a chave primária de G
Exemplo:
Empregado(Matr, Nome, Salario, TipoTrab)
Secretária(Matr, VelocDigit)
Técnico(Matr, Especialidade)
Engenheiro(Matr, Tipo, CREA)
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
45
Regra 8 – Generalização/Especialização
Opção 1: 
Exemplo: MER
Modelo Relacional
45
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
46
Regra 8 – Generalização/Especialização
Opção 2:
 Criar uma relação Li para cada especialização Ei, com os
atributos Atrib(Li)= {atributos de Ei} U {k,a1,a2,...,an} e chave
primária (Li)=k
Exemplo:
Secretária(Matr, Nome, Salário, VelDigitação)
Técnico(Matr, Nome, Salário, Especialidade)
Engenharia(Matr, Nome, Salário, CREA)
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
47
Regra 8 – Generalização/Especialização
Opção 2: 
Exemplo: MER
Modelo Relacional
 Atenção ! O atributo Tipotrab não precisa neste caso.
47
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
48
Regra 8 – Generalização/Especialização
Opção 3:
 Criar uma única relação L com atributos Atrib(L) = {k,a1,...,na}
U {atributos de E1} U ... U {atributos de Em} U {t} e chave
primária k.
 Onde t é um atributo de tipo que indica a especialização a
qual a tupla pertence (opção usada para especialização
cujas especializações são disjuntas)
Exemplo:
Empregado(Matr, Nome, Salário, Endereco, TipoEmp,
VelDigitação, EspTec, TipoEng, CREA)
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
49
Regra 8 – Generalização/Especialização
Opção 3: 
Exemplo: MER
Modelo Relacional
49
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
50
Regra 8 – Generalização/Especialização
Opção 4:
 Criar uma única relação L com atributos Atrib(L) = {k,a1,...,an}
U {atributos de E1} U ... U {atributos de Em} U {t1,t2,...,tm} e
chave primária k.
 Onde cada ti é um atributo booleano que indica se uma
tupla pertence a uma especialização Ei (opção usada para
especializações sobrepostas)
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
51
Regra 8 – Generalização/Especialização
Opção 4:
Exemplo:
Peça(Código, Descrição, Mflag, Desenho, Data, Lote, Cflag,
Fornecedor, Preço)
MAPEAMENTO DO MODELO E-R PARA RELACIONAL 
Modelagem de Dados
MAPEAMENTO DO MODELO E-R PARA RELACIONAL
Regra 9 – Agregação
Modelagem de Dados
Exercício
1) Fazer o mapeamento do seguinte modelo ER abaixo para o relacional
Modelagem de Dados
Exercício
2) Considere o cenário a seguir:
• Uma empresa de TI precisa construir um sistema para gerenciar sua fabrica de 
software de acordo com o seguinte cenário:
• Todo funcionário da empresa possui um nome, CPF, telefone, email e salário. Os 
analistas de sistemas são responsáveis por definir o que será desenvolvido junto 
com o usuário e, portanto, seu cadastro deve conter a descrição da sua formação 
superior e o nome do idioma que ele mais conhece. Os programadores devem 
informar o nome da linguagem que tem mais domínio. A Fábrica de Software é 
chefiada por um funcionário é dividida em equipes de trabalho. Uma equipe está 
dedicada a uma área, é composta por diversos funcionários e é responsável por 
uma lista de sistemas. 
• Cada sistema desenvolvido na empresa possui um nome, é desenvolvido em uma 
linguagem e possui uma versão. Os sistemas desktop são desenvolvidos para uma 
plataforma e contêm a lista dos programas que o compõe. Cada programa possui 
um nome e uma quantidade de linhas. Os sistemas Web devem indicar o servidor 
onde estão instaladas e contem uma lista com o nome a URL das páginas que o 
compõe. 
• Para o cenário acima construa o modelo conceitual de dados utilizando os 
conceitos vistos em sala de aula, em seguida faça o mapeamento deste modelo 
para o Relacional.
Modelagem de Dados
 Teoria formal que auxilia no projeto de um BD, de modo a
avaliar a qualidade do esquema relacional.
OBJETIVOS GERAIS
 Organizar os dados de modo que eles possam ser
representados em tabelas, onde cada atributo seja atômico.
 Garantir que os itens de dados estejam associados com as
chaves corretas, minimizando a redundência dos dados.
NORMALIZAÇÃO 
Modelagem de Dados
NORMALIZAÇÃO
• ANOMALIAS DE MODIFICAÇÃO
Relação: cliente = {nome, atividade, taxa}
Tabela
Anomalia de Eliminação
Eliminando a linha do aluno José, perdemos as informações referentes a atividade 
Musculação, bem como seu valor.
Anomalia de Inserção
Quando a academia implanta um novo curso, não podemos inseri-lo até que um 
aluno tenha a disposição de fazê-lo.
Anomalia de Alteração
Para modificar o texto da modalidade Judô, teremos que modificá-lo em duas linhas.
Modelagem de Dados
NORMALIZAÇÃO
A Normalização tem como objetivo avaliar a qualidade do esquema relacional e
transformá-lo, se for o caso, em um esquema relacional equivalente, menos
redundante e mais estável.
Codd identificou 3 tipos de formas normais:
• Primeira Forma Norma (1FN)
• Segunda Forma Normal (2FN)
• Terceira Forma Normal (3FN)
Outros pesquisadores acrescentaram outros tipos:
• Forma Normal Boyce-Codd (FNBC)
• Quarta Forma Normal (4FN)
• Quinta Forma Normal (5FN)
Uma relação é dita estar em determinada forma normal se ela satisfizer a um 
conjunto específico de restrições.
Normalizar demais diminui a eficiência dos aplicativos. 
Normalizar pouco abre brechas para inconsistências.
• FORMAS NORMAIS
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Primeira Forma Norma (1FN)
Uma entidade está na primeira forma normal quando não possuir grupos 
repetitivos, ou seja, quando todos os seus atributos são Atômicos e Monovalorados.
Um atributo atômico é aquele que não é tratado em partes separadas.
Um atributo monovalorado é aquele que possui somente um valor (não uma lista).
Relação cliente: cliente={CPF, nome, endereço, (telefone)}
Qual o atributo multivalorado?
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Primeira Forma Norma (1FN)
A aplicação da 1FN consiste em:
• Substituir o atributo composto pelas partes que o compõem.
• Eliminar da entidade os atributos multivalorados, criando uma entidade para 
os mesmos, conforme seu agrupamento.
• Definir como chave primária desta nova entidade: a chave da entidade 
origem + o atributo da nova entidade.
Exemplo:
Relação Cliente: cliente={CPF, nome, endereço, (telefone)}
Solução:
cliente={CPF, nome, rua, bairro, número, cep}
fone_cliente={CPF, telefone}
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Dependência Funcional
Dados dois conjuntos de atributos A e B de uma entidade, diz-se que:
• B é funcionalmente dependente de A ou
• A determina B ou
• B depende de A,
Se a cada valor de A estiver associado um, e só um, valor de B.
Uma dependência funcional é representada por: A → B 
Onde A é denominado Determinante
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Dependência Funcional
Exemplo1 - identificação de dependências funcionais:
Departamento → N_funcionário ?
N_funcionário → Departamento ?
Nome_próprio → N_funcionário ?
N_funcionário → Apelido ?
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Dependência Funcional
Exemplo2 - identificação de dependências funcionais:O preço é funcionalmente dependente de artigo (Artigo → Preço) ?
O preço é funcionalmente dependente de papelaria (Papelaria → Preço) ? 
Preço depende funcionalmente de quem?
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Segunda Forma Norma (2FN)
Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, 
não contém Dependências Funcionais Parciais, ou seja, todos atributos não chave 
devem depender funcionalmente da chave primária composta.
Podemos observar então que se aplica a segunda forma normal, apenas em 
entidades que possuem chave primária composta
Entidades com apenas um atributo na chave primária, já estão na segunda forma 
normal.
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Segunda Forma Norma (2FN)
Exemplo – Identificar dependências funcionais
Relação Alunos/Disciplinas: 
aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota}
Dependências Funcionais:
mat_aluno -> nome_aluno
cod_discip -> carga_horar_discip
(mat_aluno,cod_discip) -> nota
Existem atributos que contêm dependência parcial da chave?
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Segunda Forma Norma (2FN)
A aplicação da 2FN consiste em:
• Eliminar da entidade os atributos que não dependam de todos os atributos 
da chave primária.
• Criar uma nova entidade com os atributos excluídos mais os atributos da 
chave primária que causam a dependência dos atributos excluídos na 
entidade origem.
• Definir como chave primária desta nova entidade, os atributos herdados da 
chave primária da entidade de origem.
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Segunda Forma Norma (2FN)
Exemplo1 - Aplicação da 2FN
Relação Alunos/Disciplinas:
aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota}
Onde:
mat_aluno -> nome_aluno
cod_discip -> carga_horar_discip
(mat_aluno,cod_discip) -> nota
Solução:
aluno_disciplina = {mat_aluno, cod_discip, nota}
disciplina = {cod_discip, carga_horar_discip}
aluno = {mat_aluno, nome_aluno}
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Segunda Forma Norma (2FN)
Exemplo2 - Aplicação da 2FN
Relação Projeto/Funcionário:
projeto_funcionario = {cod_proj, cod_func, nome, categoria, salario, data_ini, 
temp_proj}
Onde:
(cod_proj, cod_func) -> data_ini, temp_proj
cod_func -> nome, categoria, salario
Solução:
projeto_funcionario = {cod_proj, cod_func, data_ini, temp_proj}
Funcionario = {cod_func, nome, categoria, salario}
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Terceira Forma Norma (3FN)
Uma Relação está na 3FN quando estiver na 2FN e não existir dependência transitiva
dos atributos, ou seja, todos os atributos da entidade dependam única e
exclusivamente dos atributos da chave primária.
Exemplo – Identificar dependências funcionais
Relação Compra:
compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente}
Dependências Funcionais:
cod_compra-> cod_cliente, valor_compra
cod_cliente -> nome_cliente, tel_cliente
Existem atributos que contêm dependência funcional transitiva?
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Terceira Forma Norma (3FN)
A aplicação da 3FN consiste em:
• Eliminar da entidade os atributos que dependam de atributos que não 
pertencem a chave primária.
• Criar uma nova entidade com os atributos excluídos mais o atributo 
causador da dependência transitiva dos atributos excluídos
• Definir como chave primária desta nova entidade, o atributo herdado da 
entidade de origem e que causou a dependência transitiva
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Terceira Forma Norma (3FN)
Exemplo1 - Aplicação da 3FN
Relação Compra:
compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente}
Onde:
cod_compra-> cod_cliente, valor_compra
cod_cliente -> nome_cliente, tel_cliente
Solução:
compra = {cod_compra, cod_cliente, valor_compra}
cliente = {cod_cliente, nome_cliente, tel_cliente}
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Terceira Forma Norma (3FN)
Exemplo2 - Aplicação da 2FN e 3FN
Relação Chamada/Funcionario :
chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, 
nome_funcion, cod_cidade_chamada, nome_cidade_chamada}
Onde:
rg_funcion, num_chamado -> duracao_chamada, cod_cidade_chamada
rg_funcion -> nome_funcion
cod_cidade -> nome_cidade
Solução:
chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, 
cod_cidade_chamada}
funcionario = {rg_funcion, nome_funcion}
cidade = {cod_cidade, nome_cidade}
Modelagem de Dados
NORMALIZAÇÃO
• FORMAS NORMAIS
Considerações Finais
Uma entidade estará normalizada se estiver atendendo até a terceira forma normal, 
ou seja, uma entidade estará normalizada se:
• Não possuir grupos repetitivos (1 FN)
• Os atributos dependem de todos e unicamente de todos os atributos da 
chave primária (2FN e 3FN)
Um modelo de dados está normalizado se todas as suas entidades estão 
normalizadas até a terceira forma normal.
Modelagem de Dados
Exercício
• Considere o cenário a seguir:
• Uma empresa de fornecimento de energia elétrica precisa construir um 
sistema para controlar as contas de energia dos seus clientes que funcione 
da seguinte maneira. O sistema deverá ter todos os clientes cadastrados 
com nome e telefone. Os clientes podem ser pessoa física ou jurídica. Para 
pessoa física também é cadastrado o CPF e para pessoa jurídica o CNPJ. O 
valor do Kw /h cobrado depende do tipo de cliente. Além disso, pessoa 
jurídica paga um adicional de 5% de imposto sobre o valor da conta. 
Clientes possuem contas mensais geradas a partir do seu consumo de 
energia. Desta forma, quando um cliente solicita a ligação da energia para 
a sua casa, é instalado um relógio (medidor) na residência. As residências 
são cadastradas com rua, número, bairro, cidade e estado. É possível que 
um cliente tenha mais de uma residência. Todos os meses um funcionário 
da empresa vai às casa dos clientes para fazer uma leitura no medidor. 
Assim, o sistema deve guardar os registros mensais de leitura do medidor 
realizados em cada residência (mês, ano, consumo no mês em kW). Este 
consumo é utilizado para calcular o valor da conta naquele mês. 
Modelagem de Dados
Exercício
• O sistema deverá prover os seguintes relatórios: gráfico com o consumo 
mensal de um cliente ao longo do ano; Relatório de faturamento total da 
empresa em venda de energia; Relatório com a quantidade de energia 
mensalmente vendida pela empresa a seus clientes. 
Para o cenário acima, desenvolver
– Modelo de entidades e relacionamentos
– Mapeamento do modelo de entidade e relacionamento para 
relacional
– Definição das tabelas normalizadas na 3FN.

Outros materiais