Página substituída por '= Normalização= <br> = Dependência Funcional = <br> * O que é? ** <br> = Normalização = <br> * O que é? ** <br> == 1FN == <br> * Procedimento ** <br> ==...' |
Sem resumo de edição |
||
| Linha 1: | Linha 1: | ||
* '''1FN - 1ª Forma Normal''': todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Os grupos repetidos devem ser postos em tabelas separadas, conectados por uma chave primária ou estrangeira. | |||
'''Exemplo:''' | |||
= | PESSOAS = {Id+ Nome + Endereço + Telefones} | ||
Ela contém a chave primária “Id” e o atributo “Telefones” é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, cria-se uma nova tabela chamada TELEFONES que conterá “IdPessoa” como chave estrangeira de PESSOAS e “Telefone” como o valor multivalorado que será armazenado. | |||
PESSOAS = { Id + Nome + Endereço } | |||
TELEFONES = { IdPessoa + Telefone } | |||
* '''2FN - 2ª Forma Normal''': todos os atributos não chaves da tabela devem depender unicamente da chave primária. Para tanto, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados. | |||
'''Exemplo:''' | |||
* | |||
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota + DescriçãoCurso } | |||
Nessa tabela, o atributo “DescriçãoCurso” depende apenas da chave primária IdCurso. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSOS que tem como chave primária IdCurso e atributo “Descrição” retirando, assim, o atributo “DescriçãoCurso” da tabela ALUNOS_CURSOS. | |||
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota } | |||
CURSOS = {IdCurso + Descrição} | |||
* '''3FN - 3ª Forma Normal''': os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela. | |||
'''Exemplo:''' | |||
FUNCIONARIOS = { Id + Nome + IdCargo + DescriçãoCargo } | |||
O atributo “DescriçãoCargo” depende exclusivamente de “IdCargo” (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Assim: | |||
FUNCIONARIOS = { Id + Nome + IdCargo } | |||
CARGOS = { IdCargo + Descrição } | |||
*'''Exemplo:''' | |||
**Caso discutido em sala de aula: | |||
[[Arquivo:DiagramaBDUniversidade.png]] | |||
Edição das 03h25min de 7 de maio de 2015
- 1FN - 1ª Forma Normal: todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Os grupos repetidos devem ser postos em tabelas separadas, conectados por uma chave primária ou estrangeira.
Exemplo:
PESSOAS = {Id+ Nome + Endereço + Telefones}
Ela contém a chave primária “Id” e o atributo “Telefones” é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, cria-se uma nova tabela chamada TELEFONES que conterá “IdPessoa” como chave estrangeira de PESSOAS e “Telefone” como o valor multivalorado que será armazenado.
PESSOAS = { Id + Nome + Endereço }
TELEFONES = { IdPessoa + Telefone }
- 2FN - 2ª Forma Normal: todos os atributos não chaves da tabela devem depender unicamente da chave primária. Para tanto, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados.
Exemplo:
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota + DescriçãoCurso }
Nessa tabela, o atributo “DescriçãoCurso” depende apenas da chave primária IdCurso. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSOS que tem como chave primária IdCurso e atributo “Descrição” retirando, assim, o atributo “DescriçãoCurso” da tabela ALUNOS_CURSOS.
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota }
CURSOS = {IdCurso + Descrição}
- 3FN - 3ª Forma Normal: os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela.
Exemplo:
FUNCIONARIOS = { Id + Nome + IdCargo + DescriçãoCargo }
O atributo “DescriçãoCargo” depende exclusivamente de “IdCargo” (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Assim:
FUNCIONARIOS = { Id + Nome + IdCargo }
CARGOS = { IdCargo + Descrição }
- Exemplo:
- Caso discutido em sala de aula:
