Você está na página 1de 16

1

Prof. Gilberto Braga de Oliveira Prof. Gilberto Braga de Oliveira


Tecnologias e Linguagens Tecnologias e Linguagens
para Banco para Banco de de Dados I Dados I
Efetivao Lgica Efetivao Lgica de de Relacionamentos Relacionamentos
Normalizao Normalizao
2 2
Expresso do Expresso do
Relacionamento Relacionamento
Necessidade de incluir campos nas tabelas para que os Necessidade de incluir campos nas tabelas para que os
relacionamentos sejam efetivados. relacionamentos sejam efetivados.
Campo de identificao nica em uma entidade: Campo de identificao nica em uma entidade: Chave Chave
Primria Primria; ;
Uma entidade que contem a Chave Primria de Uma entidade que contem a Chave Primria de Outra Outra
Entidade Entidade ter, neste campo, uma Chave Estrangeira. ter, neste campo, uma Chave Estrangeira.
A ligao a A ligao a comparao comparao dos valores da dos valores da Chave Chave
Primria Primria com os da com os da Chave Estrangeira Chave Estrangeira em ambas as em ambas as
tabelas. tabelas.
3 3
Expresso do Expresso do
Relacionamento Relacionamento
Se temos uma Se temos uma consulta consulta marcada para o dia marcada para o dia
13/07/2007 as 15:00 e a Dra. Joana, Pediatra 13/07/2007 as 15:00 e a Dra. Joana, Pediatra
eles s estaro relacionados se, e somente se: eles s estaro relacionados se, e somente se:
O campo CRM na tabela consulta na ocorrncia O campo CRM na tabela consulta na ocorrncia
13/07/2007, 15:00 for 13/07/2007, 15:00 for igual igual ao valor do campo ao valor do campo
CRM na tabela Mdico na ocorrncia Joana, CRM na tabela Mdico na ocorrncia Joana,
Pediatra. Pediatra.
CRM da Consulta = CRM do Mdico CRM da Consulta = CRM do Mdico
2
4 4
Relacionamento Lgico: Relacionamento Lgico:
47
35
21
12
07
Cod
13:00 21/07/07 0789-0
11:00 19/07/07 0234-5
15:00 13/07/07 0345-6
09:00 08/07/07 0234-5
08:00 05/07/07 0345-6
HrCons DtCons CRM
Consulta
Ortopedista Ana 0789-0
Cardiologista Josefa 0456-7
Pediatra Joana 0345-6
Clnico Mrio 0234-5
Cardiologista Joana 0123-4
Especialidade Mdico CRM
Medico
Quantas consultas
marcadas o Dr. Mrio
tem? E a Dra. Josefa?
Quais os Mdicos que
tm consulta marcada
no perodo da manh?
5 5
Evitando confuses Evitando confuses
Em uma escola cada Em uma escola cada aluno aluno registrado por registrado por nmero nmero, ,
nome nome e e endereo endereo pode pode cursar cursar uma e somente uma uma e somente uma
disciplina disciplina; ;
As As disciplinas disciplinas podem ser podem ser cursadas cursadas por por um ou um ou
mais mais alunos alunos. .
As As disciplinas disciplinas so registradas por so registradas por cdigo cdigo e e nome nome da da
disciplina. disciplina.
Uma vez matriculado um aluno em uma Uma vez matriculado um aluno em uma disciplina disciplina
registra registra- -se a se a data data e a e a hora hora do do curso curso do aluno. do aluno.
6 6
Evitando confuses Evitando confuses
Interpretando o diagrama: Interpretando o diagrama:
Um aluno cursa uma disciplina enquanto uma disciplina cursada Um aluno cursa uma disciplina enquanto uma disciplina cursada
por muitos alunos. por muitos alunos.
A data e hora do curso so atributos que pertencem ao A data e hora do curso so atributos que pertencem ao
Curso, mas onde aloc Curso, mas onde aloc- -lo? lo?
1 1
1 N
Cursa Aluno Disciplina
N 1
So campos da
tabela Aluno pois
possuem uma nica
existncia para cada
ocorrncia de aluno.
3
7 7
Modelo Conceitual Modelo Conceitual
com Aluno 1:N
Parcial
CodDisciplina
Disciplina
Disciplina
com Disciplina 1:1
Parcial
Numero
Nome
Endereco
DataCurso
HoraCurso
Aluno
Relacionamentos Atributos Entidade
8 8
1 1 Identificar chaves Identificar chaves
candidatas candidatas
com Aluno 1:N
Parcial
#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:1
Parcial
#Numero
Nome
Endereco
DataCurso
HoraCurso
Aluno
Relacionamentos Atributos Entidade
9 9
2 2 Determinar ou criar Determinar ou criar
chaves primrias chaves primrias
com Aluno 1:N
Parcial
*#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:1
Parcial
*#Numero
Nome
Endereco
DataCurso
HoraCurso
Aluno
Relacionamentos Atributos Entidade
4
10 10
3 3 Criar chaves Criar chaves
estrangeiras estrangeiras
com Aluno 1:N
Parcial
*#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:1
Parcial
*#Numero
CodDisciplina
Nome
Endereco
DataCurso
HoraCurso
Aluno
Relacionamentos Atributos Entidade
11 11
Exemplo Aluno x Exemplo Aluno x
Disciplina 1:N Disciplina 1:N
Matemtica 09
12
07
Cod
Rec. Humanos
Lgica
Disciplina
DISCIPLINA
13:30 02/02/07 07 Rua Zero, 01 Marcelo 003
13:30
19:00
<NULO>
HrCurso
02/02/07
02/04/07
<NULO>
DtCurso
07
12
<NULO>
CodDisc
Rua Seis, 07 Ana 032
Rua Dois, 03 Roberto 012
Rua Hum, 02 Joaquina 007
Endereco Nome Num
ALUNO
12 12
Valor Nulo Valor Nulo
Nulo no zero Nulo no zero
Exemplo: Exemplo:
CodDisciplina CodDisciplina, , DataCurso DataCurso e e HoraCurso HoraCurso
Nulo Nulo desconhecido desconhecido
Neste Neste caso: caso:
nulo nulo = aluno ainda no escolheu uma = aluno ainda no escolheu uma
disciplina. disciplina.
5
13 13
Mudando as regras de Mudando as regras de
negcio negcio
Em uma escola cada Em uma escola cada aluno aluno registrado por registrado por nmero nmero, ,
nome nome e e endereo endereo pode pode cursar cursar UMA OU MAIS UMA OU MAIS
disciplinas disciplinas; ;
As As disciplinas disciplinas podem ser podem ser cursadas cursadas por por um ou um ou
mais mais alunos alunos. .
As As disciplinas disciplinas so registradas por so registradas por cdigo cdigo e nome da e nome da
disciplina disciplina. .
Uma vez matriculado um aluno em uma Uma vez matriculado um aluno em uma disciplina disciplina
registra registra- -se a se a data data e a e a hora hora do do curso curso do aluno do aluno
14 14
Evitando confuses Evitando confuses
Interpretando o diagrama: Interpretando o diagrama:
Um aluno cursa uma ou mais disciplinas enquanto uma Um aluno cursa uma ou mais disciplinas enquanto uma
disciplina cursada por um ou mais alunos. disciplina cursada por um ou mais alunos.
A data e hora do curso so informaes que A data e hora do curso so informaes que
pertencem ao Curso, mas onde alocar esses pertencem ao Curso, mas onde alocar esses
atributos? atributos?
1 N
1 N
Cursa Aluno Disciplina
N N
So campos do
relacionamento Curso pois
possuiria vrias existncias
nas tabelas aluno e
disciplina. (Redundncia)
15 15
Modelo Conceitual Modelo Conceitual
com Aluno 1:N
Parcial
CodDisciplina
Disciplina
Disciplina
com Disciplina 1:N
Parcial
Numero
Nome
Endereco
Aluno
Relacionamentos Atributos Entidade
DtCurso
HrCurso
Curso
ATRIBUTOS RELACIONAMENTO
6
16 16
1 1 Identificar chaves Identificar chaves
candidatas candidatas
com Aluno 1:N
Parcial
#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:N
Parcial
#Numero
Nome
Endereco
Aluno
Relacionamentos Atributos Entidade
DtCurso
HrCurso
Curso
ATRIBUTOS RELACIONAMENTO
17 17
2 2 Determinar ou criar Determinar ou criar
chaves primrias chaves primrias
com Aluno 1:N
Parcial
*#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:N
Parcial
*#Numero
Nome
Endereco
Aluno
Relacionamentos Atributos Entidade
*CodCurso
DtCurso
HrCurso
Curso
ATRIBUTOS RELACIONAMENTO
18 18
3 3 Criar chaves Criar chaves
estrangeiras estrangeiras
com Aluno 1:N
Parcial
*#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:N
Parcial
*#Numero
Nome
Endereco
Aluno
Relacionamentos Atributos Entidade
*CodCurso
Numero
CodDisciplina
DtCurso
HrCurso
Curso
ATRIBUTOS RELACIONAMENTO
7
19 19
Utilizao de Chave Utilizao de Chave
secundria secundria
4. 4. Otimizar o modelo identificando chaves Otimizar o modelo identificando chaves
secundrias secundrias
Observar Observar a a composio das chaves composio das chaves
estrangeiras do relacionamento N:N estrangeiras do relacionamento N:N
A combinao dos campos pode se repetir? A combinao dos campos pode se repetir?
Sim: Sim: O modelo no pode ser otimizado O modelo no pode ser otimizado
No: No: Elimine a chave primria do relacionamento, Elimine a chave primria do relacionamento,
(se ela foi criada artificialmente) e torne (se ela foi criada artificialmente) e torne as chaves as chaves
estrangeiras estrangeiras chaves primrias marcando ambas com chaves primrias marcando ambas com
astersco * astersco *
20 20
4 4 Otimizar o modelo Otimizar o modelo
com Aluno 1:N
Parcial
*#CodDisciplina
#Disciplina
Disciplina
com Disciplina 1:N
Parcial
*#Numero
Nome
Endereco
Aluno
Relacionamentos Atributos Entidade
*CodCurso
*Numero
*CodDisciplina
DtCurso
HrCurso
Curso
ATRIBUTOS RELACIONAMENTO
21 21
Exemplo Relacionamento Exemplo Relacionamento
Aluno x Disciplina: N:N Aluno x Disciplina: N:N
Matemtica 09
12
07
Cod
Rec. Humanos
Lgica
Disciplina
DISCIPLINA
Rua Zero, 01 Marcelo 003
Rua Seis, 07 Ana 032
Rua Dois, 03 Roberto 012
Endereco Nome Num
ALUNO
13:30 02/02/07 032 07
13:30
19:00
13:30
HrCurso
032
003
003
NumAl
02/04/07 12
12
07
CodDisc
02/02/07
02/02/07
DtCurso
CURSO
8
Prof. Gilberto Braga de Oliveira Prof. Gilberto Braga de Oliveira
Tecnologias e Linguagens Tecnologias e Linguagens
para Banco de Dados I para Banco de Dados I
Normalizao Normalizao
23 23
Definio Definio
Objetivo: Objetivo:
Melhorar a organizao, a recuperao, a alterao e a Melhorar a organizao, a recuperao, a alterao e a
atualizao dos dados armazenados. atualizao dos dados armazenados.
Trs formas normais so aplicadas na maioria dos Trs formas normais so aplicadas na maioria dos
modelos de banco de dados: modelos de banco de dados:
1FN: (Toda tabela deve conter ao menos uma chave 1FN: (Toda tabela deve conter ao menos uma chave
primria) primria)
Cada dado um campo, cada campo um dado Cada dado um campo, cada campo um dado
No deve haver campos multivalorados nas tabelas No deve haver campos multivalorados nas tabelas
2FN: (1FN deve estar OK) 2FN: (1FN deve estar OK)
Campos devem depender da chave primria completa (Dependncia Campos devem depender da chave primria completa (Dependncia
Funcional Total) Funcional Total)
3FN: (1FN e 2FN devem estar OK) 3FN: (1FN e 2FN devem estar OK)
Campos com dependncia funcional transitiva so colocados em Campos com dependncia funcional transitiva so colocados em
outra tabela ou eliminados (no caso de campos calculados). outra tabela ou eliminados (no caso de campos calculados).
24 24
Situao problema Situao problema
Aplicando a 1FN: Aplicando a 1FN:
Cada dado um campo: Cada dado um campo:
Coloque um terceiro telefone para algum funcionrio Coloque um terceiro telefone para algum funcionrio
O dado telefone est distribudo nos campos tel1 e tel2 O dado telefone est distribudo nos campos tel1 e tel2 no escalveis no escalveis. .
Cada campo um dado: Cada campo um dado:
Altere os prefixos 1234 para 4321 Altere os prefixos 1234 para 4321
O prefixo e o sufixo dos telefones podem ser armazenados em camp O prefixo e o sufixo dos telefones podem ser armazenados em campos os
diferentes, evitando diferentes, evitando anomalias de atualizao anomalias de atualizao. .
90 90 21/05/08 21/05/08 Intranet Intranet Vendas Vendas 8998 8998- -9989 9989 5678 5678- -9012 9012 Mrio Mrio 045 045
30 30 18/05/08 18/05/08 Reciclagem Reciclagem Produo Produo 7997 7997- -8890 8890 5678 5678- -9012 9012 Joana Joana 039 039
60 60 22/06/08 22/06/08 Intranet Intranet Vendas Vendas 8899 8899- -0012 0012 3645 3645- -6789 6789 Pedrina Pedrina 032 032
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
60 60
90 90
30 30
PrazoAl PrazoAl
Reciclagem Reciclagem Produo Produo 7788 7788- -9901 9901 3645 3645- -6789 6789 Pedro Pedro 021 021
Reciclagem Reciclagem Vendas Vendas 8901 8901- -2345 2345 1234 1234- -5678 5678 Marisa Marisa 019 019
Reciclagem Reciclagem Produo Produo 7890 7890- -1234 1234 1234 1234- -5678 5678 Joo Joo 001 001
Projeto Projeto Depto Depto Tel2 Tel2 Tel1 Tel1 Nome Nome Mat Mat
9
25 25
Resoluo do problema Resoluo do problema
Aplicando a 1FN: Aplicando a 1FN:
2345 2345 8901 8901 05 05
1234 1234 7890 7890 04 04
9012 9012 5678 5678 03 03
6789 6789 3645 3645 02 02
5678 5678 1234 1234 01 01
Sufixo Sufixo Prefixo Prefixo *CodTel *CodTel
90 90 21/05/08 21/05/08 Intranet Intranet Vendas Vendas Mrio Mrio 045 045
30 30 18/05/08 18/05/08 Reciclagem Reciclagem Produo Produo Joana Joana 039 039
60 60 22/06/08 22/06/08 Intranet Intranet Vendas Vendas Pedrina Pedrina 032 032
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
60 60
90 90
30 30
PrazoAl PrazoAl
Reciclagem Reciclagem Produo Produo Pedro Pedro 021 021
Reciclagem Reciclagem Vendas Vendas Marisa Marisa 019 019
Reciclagem Reciclagem Produo Produo Joo Joo 001 001
Projeto Projeto Depto Depto Nome Nome *Mat *Mat
001 001 05 05
032 032 02 02
021 021 02 02
019 019 01 01
001 001 01 01
*Mat *Mat *CodTel *CodTel
26 26
Anomalias de atualizao Anomalias de atualizao
Aplicando a 1FN: Aplicando a 1FN:
Anomalias de atualizao de Projeto e Departamento; Anomalias de atualizao de Projeto e Departamento;
Altere Vendas para Marketing e veja quantas alteraes so Altere Vendas para Marketing e veja quantas alteraes so
necessrias necessrias
Observe que o usurio precisa preencher o Departamento Observe que o usurio precisa preencher o Departamento
toda vez que um funcionrio cadastrado. toda vez que um funcionrio cadastrado.
90 90 21/05/08 21/05/08 Intranet Intranet Vendas Vendas Mrio Mrio 045 045
30 30 18/05/08 18/05/08 Reciclagem Reciclagem Produo Produo Joana Joana 039 039
60 60 22/06/08 22/06/08 Intranet Intranet Vendas Vendas Pedrina Pedrina 032 032
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
60 60
90 90
30 30
PrazoAl PrazoAl
Reciclagem Reciclagem Produco Produco Pedro Pedro 021 021
Reciclagem Reciclagem Vendas Vendas Marisa Marisa 019 019
Reciclagem Reciclagem Produo Produo Joo Joo 001 001
Projeto Projeto Depto Depto Nome Nome *Mat *Mat
27 27
Resoluo do problema Resoluo do problema
Aplicando a 1FN: Aplicando a 1FN:
Produo Produo 03 03
Vendas Vendas 02 02
Recursos Humanos Recursos Humanos 01 01
Departamento Departamento *CodDep *CodDep
Integrao Integrao 03 03
Intranet Intranet 02 02
Reciclagem Reciclagem 01 01
Projeto Projeto *CodProjeto *CodProjeto
90 90 21/05/08 21/05/08 02 02 Mrio Mrio 045 045
30 30 18/05/08 18/05/08 03 03 Joana Joana 039 039
60 60 22/06/08 22/06/08 02 02 Pedrina Pedrina 032 032
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
60 60
90 90
30 30
PrazoAl PrazoAl
03 03 Pedro Pedro 021 021
02 02 Marisa Marisa 019 019
03 03 Joo Joo 001 001
CodDep CodDep Nome Nome *Mat *Mat
001 001 01 01
032 032 02 02
021 021 01 01
019 019 01 01
001 001 01 01
*Mat *Mat *CodProjeto *CodProjeto
10
28 28
Resoluo do problema Resoluo do problema
Aplicando a 1FN: Aplicando a 1FN:
Crie a entidade Crie a entidade Telefone Telefone para conter o para conter o prefixo prefixo e o e o sufixo sufixo de cada telefone de cada telefone
Relacione a entidade Relacione a entidade Telefone Telefone a entidade a entidade Funcionrio Funcionrio
Crie a entidade Crie a entidade Departamento Departamento para conter o para conter o nome nome do do Departamento Departamento; ;
Relacione a entidade Relacione a entidade Departamento Departamento com a entidade com a entidade Funcionrio Funcionrio
Crie e relacione a entidade Crie e relacione a entidade Projeto, Projeto, que armazena o nome de cada que armazena o nome de cada projeto projeto
Relacione a entidade Relacione a entidade Funcionrio a Funcionrio a entidade entidade Projeto Projeto
1 N
N
1
N N N N
tem Telefone aloca Projeto Funcionario
Departamento
lota

Vendedor
1
1
1 N
1
N
1
1
1
1
1 N
1 N
1
1
29 29
Situao problema Situao problema
Aplicando a 2FN: Aplicando a 2FN:
Todo atributo no chave deve depender totalmente da chave Todo atributo no chave deve depender totalmente da chave
primria: primria:
Para existir um Para existir um nome nome de um funcionrio precisa existir apenas um de um funcionrio precisa existir apenas um
funcionrio cadastrado? funcionrio cadastrado?
Sim: Depende totalmente da chave primria Sim: Depende totalmente da chave primria
No: Depende parcialmente da chave primria No: Depende parcialmente da chave primria
Para existir uma Para existir uma D Da at ta de a de Al Alocao de um funcionrio precisa apenas ocao de um funcionrio precisa apenas
existir um funcionrio cadastrado? existir um funcionrio cadastrado?
90 90 21/05/08 21/05/08 02 02 Mrio Mrio 045 045
30 30 18/05/08 18/05/08 03 03 Joana Joana 039 039
60 60 22/06/08 22/06/08 02 02 Pedrina Pedrina 032 032
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
60 60
90 90
30 30
PrazoAl PrazoAl
03 03 Pedro Pedro 021 021
02 02 Marisa Marisa 019 019
03 03 Joo Joo 001 001
CodDep CodDep Nome Nome *Mat *Mat
30 30
Resoluo do problema Resoluo do problema
Aplicando a 2FN: Aplicando a 2FN:
02 02 Mrio Mrio 045 045
03 03 Joana Joana 039 039
02 02 Pedrina Pedrina 032 032
03 03 Pedro Pedro 021 021
02 02 Marisa Marisa 019 019
03 03 Joo Joo 001 001
CodDep CodDep Nome Nome *Mat *Mat
30 30
60 60
60 60
90 90
30 30
PrazoAl PrazoAl
18/05/08 18/05/08
22/06/08 22/06/08
21/06/08 21/06/08
17/05/08 17/05/08
21/05/08 21/05/08
DtAl DtAl
001 001 01 01
032 032 02 02
021 021 01 01
019 019 01 01
001 001 01 01
*Mat *Mat *CodProjeto *CodProjeto
A Data de Alocao depende de um funcionrio a ser A Data de Alocao depende de um funcionrio a ser
alocado, mas depende tambm de um Projeto onde o alocado, mas depende tambm de um Projeto onde o
funcionrio possa ser alocado. funcionrio possa ser alocado.
A Data da Alocao depende da chave primria do A Data da Alocao depende da chave primria do
funcionrio e da chave primria do projeto funcionrio e da chave primria do projeto
11
31 31
Situao problema Situao problema
Aplicando a 3FN: Aplicando a 3FN:
Atributos no chave que dependam funcionalmente de Atributos no chave que dependam funcionalmente de
outros atributos no chave so eliminados: outros atributos no chave so eliminados:
Comisso depende do Salrio Fixo ou do Salrio Total? Comisso depende do Salrio Fixo ou do Salrio Total?
No. Apenas do cdigo do vendedor No. Apenas do cdigo do vendedor
Salrio Fixo depende da Comisso ou do Salrio Total? Salrio Fixo depende da Comisso ou do Salrio Total?
No. Apenas do cdigo do vendedor No. Apenas do cdigo do vendedor
Salrio Total depende da Comisso ou do Salrio Total? Salrio Total depende da Comisso ou do Salrio Total?
805 805 700 700 15 15 045 045
660 660 600 600 10 10 032 032
960 960 800 800 20 20 019 019
SalTotal SalTotal SalFixo SalFixo Comissao Comissao Mat Mat
32 32
Resoluo do problema Resoluo do problema
Aplicando a 3FN: Aplicando a 3FN:
O Salrio Total do vendedor o produto do clculo do O Salrio Total do vendedor o produto do clculo do
Salrio Fixo vezes a Comisso Salrio Fixo vezes a Comisso
A coluna Salrio Total deve ser eliminada pois os dados A coluna Salrio Total deve ser eliminada pois os dados
contidos nela so desnecessrios. contidos nela so desnecessrios.
805 805 700 700 15 15 045 045
660 660 600 600 10 10 032 032
960 960 800 800 20 20 019 019
SalTotal SalTotal SalFixo SalFixo Comissao Comissao Mat Mat
Prof. Gilberto Braga de Oliveira Prof. Gilberto Braga de Oliveira
Banco de Dados Banco de Dados
Exerccio Exerccio
Modelo de Negcio: Comrcio Modelo de Negcio: Comrcio
12
34 34
Exemplo: Exemplo: Comrcio Comrcio
Os Os produtos produtos so registrados pela so registrados pela descrio, valor descrio, valor
unitrio unitrio e e quantidade quantidade de cada produto, pelo de cada produto, pelo setor setor onde o onde o
produto est contido e a produto est contido e a data de fabricao data de fabricao dos dos
produtos perecveis; produtos perecveis;
Os Os cliente cliente so cadastrados pelo so cadastrados pelo nome nome, , endereo1 endereo1, ,
endereo2 endereo2 e e CPF CPF de cada cliente, pela de cada cliente, pela quantidade quantidade e e total total
da venda da venda de cada de cada produto produto a cada a cada cliente cliente
Cada Cada cliente cliente pode pode comprar comprar um ou mais um ou mais produtos produtos, ,
enquanto cada enquanto cada produto produto pode ser pode ser vendido vendido para para um ou um ou
mais mais cliente clientes. s.
35 35
Modelo Conceitual Modelo Conceitual
com Produto 1:N
Parcial
Nome
Endereco1
Endereco2
CPF
QtdVenda
TotalVenda
Cliente
com Cliente 1:N
Parcial
Descricao
Quantidade
ValorUnitario
Setor
DtFabricacao
Produto
Relacionamentos Atributos Entidade
Venda
ATRIBUTOS RELACIONAMENTO
Venda Cliente
N
Produto
N
36 36
1 1 Encontrar chaves Encontrar chaves
candidatas candidatas
com Produto 1:N
Parcial
Nome
Endereco1
Endereco2
#CPF
QtdVenda
TotalVenda
Cliente
com Cliente 1:N
Parcial
#Descricao
Quantidade
ValorUnitario
Setor
DtFabricacao
Produto
Relacionamentos Atributos Entidade
Venda
ATRIBUTOS RELACIONAMENTO
13
37 37
2 2 Criar ou promover Criar ou promover
chaves primrias chaves primrias
com Produto 1:N
Parcial
*CodCliente
Nome
Endereco1
Endereco2
#CPF
QtdVenda
TotalVenda
Cliente
com Cliente 1:N
Parcial
*CodProduto
#Descricao
Quantidade
ValorUnitario
Setor
DtFabricacao
Produto
Relacionamentos Atributos Entidade
*CodVenda
Venda
ATRIBUTOS RELACIONAMENTO
38 38
3 3 Criar chaves Criar chaves
estrangeiras estrangeiras
com Produto 1:N
Parcial
*CodCliente
Nome
Endereco1
Endereco2
#CPF
QtdVenda
TotalVenda
Cliente
com Cliente 1:N
Parcial
*CodProduto
#Descricao
Quantidade
ValorUnitario
Setor
DtFabricacao
Produto
Relacionamentos Atributos Entidade
*CodVenda
CodProduto
CodCliente
Venda
ATRIBUTOS RELACIONAMENTO
39 39
Anomalias de Atualizao: Anomalias de Atualizao:
De Incluso De Incluso
Cada Cada cliente cliente novo deve se relacionar a uma novo deve se relacionar a uma quantidade quantidade de de
produtos produtos vendidos vendidos
Cada Cada produto produto, mesmo que no seja perecvel, exige o , mesmo que no seja perecvel, exige o
preenchimento do campo preenchimento do campo Data de Fabricao Data de Fabricao
A cada A cada produto produto cadastrado em um cadastrado em um setor setor j existente obriga j existente obriga
o recadastramento do o recadastramento do setor setor
De Alterao De Alterao
Os Os cliente clientes no podem ter mais de trs s no podem ter mais de trs endereo endereos e no s e no
podem ser pesquisados por qualquer dado do podem ser pesquisados por qualquer dado do endereo endereo. .
A atualizao do A atualizao do endereo endereo de um de um cliente cliente ou do ou do nome nome de um de um
setor setor ser muito difcil ser muito difcil
De Excluso De Excluso
Cada Cada venda venda excluda exclui tambm o registro do excluda exclui tambm o registro do cliente cliente e e
vice vice- -versa versa
14
40 40
1FN 1FN
Todas as entidades e atributos com relacionamentos devem ter Todas as entidades e atributos com relacionamentos devem ter
ao menos uma chave primria ao menos uma chave primria
Cada dado um campo, cada campo um dado Cada dado um campo, cada campo um dado
No devem haver atributos multivalorados No devem haver atributos multivalorados
com Produto 1:1
Total
*CodProduto
DtFabricacao
Perecivel
com Produto 1:N
Total
*CodSetor
#Setor
Setor
com Cliente 1:N
Parcial
com Perecivel 1:1
Parcial
com Setor 1:1
Parcial
*CodProduto
CodSetor
#Descricao
Quantidade
ValorUnitario
Produto
Relacionamentos Atributos Entidade
41 41
1FN ...continuao 1FN ...continuao
Relacionamento Atributo Entidade
com Cliente 1:N
Parcial
*CodEndereco
Tipo
Logradouro
Bairro
Cidade
CEP
Endereco
com Produto 1:N
Parcial
com Endereco 1:N
Total
*CodCliente
Nome
#CPF
QtdVenda
TotalVenda
Cliente
*CodCliente
*CodEndereco
EnderecoCliente
*CodVenda
CodProduto
CodCliente
Venda
ATRIBUTOS RELACIONAMENTO
42 42
2FN 2FN
Todas as tabelas devem estar na primeira forma normal Todas as tabelas devem estar na primeira forma normal
No devem haver atributos que dependam parcialmente da No devem haver atributos que dependam parcialmente da
chave primria (depedncia funcional parcial) chave primria (depedncia funcional parcial)
com Produto 1:1
Total
*CodProduto
DtFabricacao
Perecivel
com Produto 1:N
Total
*CodSetor
#Setor
Setor
com Cliente 1:N
Parcial
com Perecivel 1:1
Parcial
com Setor 1:1
Parcial
*CodProduto
CodSetor
#Descricao
Quantidade
ValorUnitario
Produto
Relacionamentos Atributos Entidade
15
43 43
2FN ...continuao 2FN ...continuao
Relacionamento Atributo Entidade
com Cliente 1:N
Parcial
*CodEndereco
Tipo
Logradouro
Bairro
Cidade
CEP
Endereco
com Produto 1:N
Parcial
com Endereco 1:N
Total
*CodCliente
Nome
CPF
QtdVenda
TotalVenda
Cliente
*CodCliente
*CodEndereco
EnderecoCliente
*CodVenda
CodProduto
CodCliente
QtdVenda
TotalVenda
Venda
ATRIBUTOS RELACIONAMENTO
44 44
3FN 3FN
Todas as tabelas devem estar na segunda forma normal Todas as tabelas devem estar na segunda forma normal
No devem haver atributos que dependam de campos No devem haver atributos que dependam de campos
no chave (depedncia funcional transitiva) no chave (depedncia funcional transitiva)
com Produto 1:1
Total
*CodProduto
DtFabricacao
Perecivel
com Produto 1:N
Total
*CodSetor
#Setor
Setor
com Cliente 1:N
Parcial
com Perecivel 1:1
Parcial
com Setor 1:1
Parcial
*CodProduto
CodSetor
#Descricao
Quantidade
ValorUnitario
Produto
Relacionamentos Atributos Entidade
45 45
3FN ...continuao 3FN ...continuao
Relacionamento Atributo Entidade
com Cliente 1:N
Parcial
*CodEndereco
Tipo
Logradouro
Bairro
Cidade
CEP
Endereco
com Produto 1:N
Parcial
com Endereco 1:N
Total
*CodCliente
Nome
#CPF
QtdVenda
TotalVenda
Cliente
*CodCliente
*CodEndereco
EnderecoCliente
*CodVenda
CodProduto
CodCliente
QtdVenda
TotalVenda
Venda
ATRIBUTOS RELACIONAMENTO
16
46 46
Modelo Entidade Modelo Entidade- -
Relacionamento Relacionamento
1 N
1
1
1 N
1
N
1
1
1
1
1
1
N N
Vende Cliente
N
1
Produto
Setor
lota
e
Perecivel
Endereco
tem
N
N 1
N
N
1

Você também pode gostar