CIÊNCIAS DA COMPUTAÇÃO
Base de Dados Avançadas I
TEMA: NORMALIZAÇÃO DA BASE DE DADOS
(2ª Forma Normal)
Turma:302
Integrantes do grupo:
1º- Gabriel Taty
2º- Josias Neves
O que é a normalização de uma base de dados?
A normalização de banco de dados é a aplicação de uma série de regras
para evitar a realização de consultas desnecessariamente complexas no futuro.
Essas regras buscam eliminar redundâncias e inconsistências de
dependências no projeto das tabelas criadas para organizar os bancos de
dados.
Para que serve a normalização da base de dados?
Os bancos de dados são normalizados para que você possa:
- Evitar redundância de dados;
- Proteger a integridade dos dados;
- Evitar problemas de atualização dos dados nas tabelas
Primeira Forma Normal (1FN)
É necessário seguir uma série de passos para cumprir esse tipo de
normalização. Quando concluímos esse processo, podemos dizer que nossa
tabela está na Primeira Forma Normal.
São eles:
1. Remova grupos repetidos de tabelas individuais;
2. Crie uma tabela separada para cada grupo de dados relacionados;
3. Identifique cada grupo de dados relacionados com uma chave primária.
Para identificar se o fizemos da forma correta, devemos considerar os
seguintes aspetos:
Todos os atributos devem ser atômicos. Um atributo é atômico se os
elementos do domínio são indivisíveis, mínimos;
A tabela deve conter uma chave primária exclusiva;
A chave primária não deve conter atributos nulos;
Não deve haver variação no número de colunas;
Campos não-chave devem ser identificados pela chave (dependência
funcional);
Deve haver uma independência da ordem das linhas e das colunas,
assim, caso os dados mudem de ordem, seus significados não devem
mudar;
Prática da 1ª FN.
Todos os atributos da tabela devem ser atômicos, ou seeja, a tabela não
deve conter geupos de repetidos e nem atributos com maisde um valor.
Exemplo a baixo.
Pessoa
Cha idPessoa: INTEGER
nomePessoa: VARCHAR
enderecoPeessoa:VARCHAR
telefonePessoa: VARCHAR
idPessoa nomePessoa enderecoPeessoa telefonePessoa
1 Gabrie Rua 28 de Maio 923-437546
2 Josy Rua Casseque 222-97543/922-053472
Como resolver isso?
Pessoa Pessoa
Cha idPessoa: INTEGER Cha idTelefone: INTEGER
nomePessoa: VARCHAR Pessoa_idPessoa : INTEGER (FK)
enderecoPeessoa: VARCHAR descricaoTelefone: VARCHAR
numeroTelefone: VARCHAR
Telefone_FKndex1
Pessoa_idPessoa
Todos os registos estão atômicos e não tem repetição dentro dos campos.
idPessoa nomePessoa enderecoPessoa
2 Josy Rua Casseque
idTelefone Pessoa_idPessoa descricãoTelefone numeroTelefone
1 2 Fixo 222-97543
2 2 Móvel 922-053472
Segunda Forma Normal (2FN)
Nesta fase, o passo-a-passo a ser seguido é
1. Conclua a 1ª Forma Normal;
2. Crie tabelas separadas para os grupos de dados que se aplicam a vários
registros;
3. Relacione essas tabelas usando uma chave estrangeira.
Um banco de dados está na Segunda Forma Normal se ele cumprir as regras
da Primeira Forma Normal e se seus atributos não primários dependerem
totalmente da chave primária.
Em outras palavras, não deve haver dependências parciais.
Prática da 2ª FN.
Estar na 1ª FN e todos os atributos não chave, devem depender unicamente da
chave primária da tabela. Exemplo a baixo:
Aluno
Cha idAluno: INTEGER
nomeAluno: VARCHAR
idadeAluno: INTEGER
codigoCurso: INTEGER
nomeCurso: VARCHAR
O que acontece ao registar:
idAluno nomeAluno idadeAluno codigoCurso nomeCurso
1 Josy 14 3 computacao
2 Gabriel 12 3 computacao
3 Faria 11 3 computacao
Como resolver Isso?
Aluno Curso
Cha idAluno: INTEGER Cha idCurso: INTEGER
Curso_idCurso : INTEGER (FK) nomeCurso: VARCHAR
nomeAluno: VARCHAR
idadeAluno: VARCHAR Rel 01
Aluno_FKIndex1
Curso_idCurso
Assim teremos a tabela do Curso com o código e a descrição
idCurso nomeCurso
3 computacao
E a tabela do Aluno totalmente idependente da tabela do curso
idAluno Curso_idCurso nomeAluno idadeAluno
1 3 Josy 14
2 3 Gabriel 12
3 3 Farias 11