Conceito de Chave Composta Combinação de dois ou mais campos que têm altas chances de serem...
Transcript of Conceito de Chave Composta Combinação de dois ou mais campos que têm altas chances de serem...
Conceito de Chave Composta
• Combinação de dois ou mais campos que têm altas chances de serem chaves:
Matr Nome Endereco
15315 Judson
11239 Angelica
24217 Amanda
Codigo Nome Carga_Horaria
A-100 POO 22B-100 ED 35C-100 Compiladores 65
Aluno Disciplina
Matr_Aluno Codigo_Disciplina Data_Matricula
15315 A-100 12/03/2010
11239 B-100 12/03/2010
24217 C-100 12/03/2010
24217 A-100 12/03/2010
Matricula
Normalização
Profa. Angélica Félix de Castro
3
Consistência de Dados
• Controlar a construção do sistema através da criação de tabelas segundo regras que garantam a manutenção de certas propriedades.
• As tabelas que atendem a um determinado conjunto de regras, diz-se estarem em uma determinada forma normal.
Normalização • Processo de definir o formato lógico adequado para as
estruturas de dados
• Objetivo de minimizar o espaço utilizado pelos dados e garantir a integridade e confiabilidade das informações
• Evita redundância
• Possibilita maior desempenho do BD
• A normalização é feita, através da análise dos dados que compõem as estruturas utilizando o conceito chamado "Formas Normais (FN)".
Normalização • As FN são conjuntos de restrições nos quais os dados
devem satisfazê-las.
• Exemplo: pode-se dizer que a estrutura está na primeira forma normal (1FN), se os dados que a compõem satisfizerem as restrições definidas para esta etapa.
• A normalização completa dos dados é feita, seguindo as restrições das três formas normais existentes, sendo que a passagem de uma FN para outra é feita tendo como base o resultado obtido na etapa anterior, ou seja, na FN anterior.
• Para realizar a normalização dos dados, é primordial que seja definido um campo chave para a estrutura, campo este que permite irá identificar os demais campos da estrutura. Formas Normais existentes:
Primeira Forma Normal
Consiste em retirar da estrutura os elementos repetitivos, ou seja, aqueles dados que podem
compor uma estrutura de vetor. Podemos afirmar que uma estrutura está normalizada
na 1FN, se não possuir elementos repetitivos.
Primeira Forma Normal
• Estrutura original:– Tabela Projetos (Cod_Proj, Tipo, Descricao, Empresa
• (onde para cada Empresa temos: Id_Emp, Nome, Categoria, Salario, data_inicio)
Analisando a estrutura acima, observamos que existem várias empresas no campo Empresa, sendo portanto
elementos repetitivos que deverão ser retirados.
Cod_Proj* Tipo Descricao Empresa
Cod_Emp
Nome Categoria Salario Data_inicio
LSC001 RH Sistema RH 2191 Maria A1 4.000,00 01/05/2003
4112 João B1 9.000,00 04/01/2001
6126 José B1 9.000,00 1/11/2002
PAG004 Est Estoque 2191 Maria A1 4.000,00 01/07/2007
Primeira Forma NormalEstrutura na primeira forma normal (1FN):
Duas tabelas: Projeto e Projeto_Empregado, onde a segunda tabela (Projeto_Empregado) tem que possuir uma chave estrangeira vinda da primeira tabela (Projeto).
Cod_Proj* Tipo Descricao Empresa
Cod_Emp
Nome Categoria Salario Data_inicio
LSC001 RH Sistema RH 2191 Maria A1 4.000,00 01/05/2003
4112 João B1 9.000,00 04/01/2001
6126 José B1 9.000,00 1/11/2002
PAG004 Est Estoque 2191 Maria A1 4.000,00 01/07/2007
Cod_Proj* Tipo Descricao
LSC001 RH Sistema RH
PAG004 Est Estoque
Cod_Proj* Cod_Emp* Nome Categoria Salario Data_inicio
LSC001 2191 Maria A1 4.000,00 01/05/2003
LSC001 4112 João B1 9.000,00 04/01/2001
LSC001 6126 José B1 9.000,00 1/11/2002
PAG004 2191 Maria A1 4.000,00 01/07/2007
Projeto
Projeto_Empregado
Segunda Forma Normal
Uma relação está na 2FN se, e somente se:• Estiver na 1FN
• entidades que tem chaves compostas, os campos não-chave precisam depender de toda a chave. Se algum campo depende apenas de parte da chave, então é necessário desmembrá-lo
Cod_Proj* Cod_Emp* Nome Categoria Salario Data_inicio
LSC001 2191 Maria A1 4.000,00 01/05/2003
LSC001 4112 João B1 9.000,00 04/01/2001
LSC001 6126 José B1 9.000,00 1/11/2002
PAG004 2191 Maria A1 4.000,00 01/07/2007
Tabela Projeto_Empregado
Dependência Parcial
Cod_Proj* Cod_Emp* Nome Categoria Salario Data_inicio
LSC001 2191 Maria A1 4.000,00 01/05/2003
LSC001 4112 João B1 9.000,00 04/01/2001
LSC001 6126 José B1 9.000,00 1/11/2002
PAG004 2191 Maria A1 4.000,00 01/07/2007
Segunda Forma Normal:Duas novas tabelas:
Da 1 FN: Projeto (Cod_Proj, Tipo, Descricao)
Da 2 FN: Projeto_empregado (Cod_Proj, Cod_Empr, Data_inicio)
Da 2 FN: Empregado (Cod_Emp, Nome, Categoria, Salario)
Terceira Forma Normal
Uma tabela está na 3FN, se e somente se:• Estiver na 2FN
• se os campos não-chave são dependentes de outro campo não-chave, é necessário desmembrar em outra entidade
Cod_Emp* Nome Categoria Salario
2191 Maria A1 4.000,00
4112 João B1 9.000,00
6126 José B1 9.000,00
2191 Maria A1 4.000,00
Tabela Empregado: Dependência Transitiva
Cod_Emp* Nome Categoria Salario
2191 Maria A1 4.000,00
4112 João B1 9.000,00
6126 José B1 9.000,00
2191 Maria A1 4.000,00
Terceira Forma Normal:Duas novas tabelas:
Da 1 FN: Projeto (Cod_Proj, Tipo, Descricao)
Da 2 FN: Projeto_empregado (Cod_Proj, Cod_Empr, Data_inicio)
Da 3 FN: Empregado (Cod_Emp, Nome, Categoria)
Da 3 FN: Categoria (Categoria, Salario)
Tabela Inicial X NormalizaçãoCod_Proj* Tipo Descricao Empresa
Cod_Emp
Nome Categoria Salario Data_inicio
LSC001 RH Sistema RH 2191 Maria A1 4.000,00 01/05/2003
4112 João B1 9.000,00 04/01/2001
6126 José B1 9.000,00 1/11/2002
PAG004 Est Estoque 2191 Maria A1 4.000,00 01/07/2007
Da 1 FN: Projeto (Cod_Proj, Tipo, Descricao)
Da 2 FN: Projeto_empregado (Cod_Proj, Cod_Empr, Data_inicio)
Da 3 FN: Empregado (Cod_Emp, Nome, Categoria)
Da 3 FN: Categoria (Categoria, Salario)
Mais exemplos de Normalização...
20
Formas NormaisPrimeira Forma Normal
Uma relação está na 1a. forma normal quando todos os seus atributos são atômicos-monovalorados (não permite tabelas aninhadas).
21
Formas NormaisPrimeira Forma Normal
Atributos multivalorados
Nome Idade DataNasc Telefone
Quantos números de telefone?
22
Formas NormaisPrimeira Forma Normal
Atributos multivalorados
Nome Idade DataNasc Telefone
Nome Idade DataNasc fone1 fone2 fone3
Se forem 3 números
23
Formas NormaisPrimeira Forma Normal
Atributos multivalorados
Nome Idade DataNasc Telefone
Nome Idade DataNascNome Telefone
Se forem muitos números
24
Formas NormaisSegunda Forma Normal
Uma relação está na 2a. forma normal quando: está na 1a. F.N. e; entidades que tem chaves compostas, os campos
não-chave precisam depender de toda a chave. Se
algum campo depende apenas de parte da chave,
então é necessário desmembrá-lo
25
Formas NormaisSegunda Forma Normal
Número turma
Sigla Número -HorasSala
Sigla Número-Horas
Número, Sigla Sala, Número-Horas
26
Formas NormaisSegunda Forma Normal
Número turma
Sigla Número -HorasSala
Número turma
Sigla Sala Sigla Número-Horas
27
Formas NormaisSegunda Forma Normal
Evita:
• Inconsistências devido a duplicidade de informações
• Perda de dados em operações de remoções / alteração na relação
28
Segunda Forma NormalNúmero turma
Sigla Número-HorasHorário
DC1221
2
10:00
14:00
8:00
15:00
16:00
1
2
1
2
2
2
4
3
DC134
DC122
DC189
DC189
Sigla Número-Horas
Número,Sigla Horário, Número-HorasValores Inconsistentes
29
Segunda Forma NormalNúmero turma
Sigla Número-HorasHorário
DC1221
2
10:00
14:00
8:00
15:00
16:00
1
2
1
2
2
2
4
3
DC134
DC122
DC189
DC189
Se não houver turmas de uma determinada disciplina em um semestre,
perde-se a informação sobre oNúmero de Horas!!!
30
Formas NormaisTerceira Forma Normal
Uma relação está na 3a. Forma normal
quando: Está na 2a. F.N. e; se os campos não-chave são dependentes de
outro campo não-chave, é necessário
desmembrar em outra entidade.
31
Formas NormaisTerceira Forma Normal
Número Sigla Sala Prédio
Número, Sigla Sala
Sala Prédio
32
Formas NormaisTerceira Forma Normal
Número Sigla Sala Prédio
Número, Sigla Sala Sala Prédio
Número Sigla Sala Sala Prédio
Terceira Forma Normal
Valores Inconsistentes!!!!!
Número, Sigla Sala
Sala Prédio
Número Sigla PrédioSala
DC1021
2
3
4
12
4
12
1
2
1
E1
C2
E1
C2
C2
DC155
DC102
DC104
DC155
34
Terceira Forma NormalNúmero Sigla PrédioSala
DC1021
2
3
4
12
4
12
1
2
1
E1
C2
E1
C2
C2
DC155
DC102
DC104
DC155
Se não houver aula em uma determinada sala nessesemestre perde-se a informação sobre qual prédio
contém a tal sala.
Vamos tentar praticar um pouco...Vamos tentar praticar um pouco...
Esta tabela não está na 1FN!
O que é preciso fazer?
Uma possível tabela, com a respectiva chave primária: Alunos-Disciplinas (IdAluno, Nome, Morada, IdDisciplina,
Disciplina, IdProfessor, Professor)
Segunda Forma Normal (2FN)Segunda Forma Normal (2FN)
A tabela: Alunos-Disciplinas (IdAluno, Nome, Morada, IdDisciplina,
Disciplina, IdProfessor, Professor)
não está na 2FN, pois os atributos:Nome e Morada dependem de parte da chave primária (IdAluno),
Disciplina, IdProfessor e Professor, que depende de outra parte da chave primária (IdDisciplina).
Tabelas na 2FN:Alunos (IdAluno, Nome, Morada) Alunos-Disciplinas (IdAluno, IdDisciplina)Disciplinas (IdDisciplina, Disciplina, IdProfessor, Professor)
Terceira Forma Normal (3FN)Terceira Forma Normal (3FN)
Uma tabela está na terceira forma normal (3FN) quando estiver na 2FN e nenhum atributo que não seja parte da chave primária depender funcionalmente de outros atributos que não sejam parte da chave primária.
É necessário verificar, tabela a tabela:
As tabelas seguintes já estão na 3FN:
Alunos-Disciplinas (IdAluno, IdDisciplina)Alunos (IdAluno, Nome)
A tabela seguinte não está na 3FN
Disciplinas (IdDisciplina, Disciplina, IdProfessor, Professor)
pois o atributo Professor depende funcionalmente de IdProfessor que não é um atributo que faça parte da chave primária.
Terceira Forma Normal (3FN)Terceira Forma Normal (3FN)
Desta forma, obtemos as seguintes tabelas normalizadas (3FN):
Alunos-Disciplinas (IdAluno, IdDisciplina)
Alunos (IdAluno, Nome)
Disciplinas (IdDisciplina, Disciplina, IdProfessor)
Professores (IdProfessor, Professor)