Sem resumo de edição Etiqueta: visualeditor |
|||
| (21 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
= '''Conceito''' = | = '''Conceito''' = | ||
*Normalização é um processo no qual se aplicam regras a todas as tabelas de um banco de dados | <br> | ||
* Normalização é um processo no qual se aplicam regras a todas as tabelas de um banco de dados | |||
* Objetivo: evitar falhas no projeto, exemplos: | |||
*** Redundância de dados | |||
*** Mistura de diferentes assuntos numa mesma tabela | |||
*** Ineficiência no uso das tabelas | |||
<br> | <br> | ||
= Formas Normais = | = Formas Normais = | ||
* | * Sequência de passos que podem ser aplicados a uma proposta inicial de um DER de forma que posteriormente teremos um padrão normalizado | ||
* ''' | <br> | ||
* Uma tabela estará na 1FN se não houver grupo de dados repetidos, isto é, se todos os valores | |||
* '''1a. Forma Normal - 1FN''' | |||
** Uma tabela estará na 1FN se não houver grupo de dados repetidos, isto é, se todos os domínios onde os valores estão armazenados são únicos. Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor. | |||
** Para se aplicar a 1FN é necessário: | |||
*** 1 - Identificar a chave(endereço) primaria da entidade | |||
*** 2 - Identificar o grupo repetitivo e removê-lo da entidade | |||
*** 3 - Criar uma nova entidade com a chave da entidade anterior e o grupo repetitivo. | |||
<br> | |||
* ''' | * '''2a. Forma Normal - 2FN'''' | ||
* Uma tabela estará na 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave | ** Uma tabela estará na 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária. | ||
** Para se aplicar a 2FN é necessário: | |||
*** 1 - Identificar os atributos não dependentes de toda a chave primária | |||
*** 2 - Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. | |||
<br> | |||
* ''' | * '''3a. Forma Normal - 3FN'''' | ||
* Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na 3FN nenhum campo é resultado da relação de outros campos. | ** Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na 3FN nenhum campo é resultado da relação de outros campos. | ||
** Para se aplicar a 3FN é necessário: | |||
*** 1 - Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave | |||
*** 2 - Removê-los. | |||
<br> | |||
= Exemplos = | = Exemplos = | ||
* 1FN. | <br> | ||
* 1FN: | |||
* Antes: | |||
{| class="wikitable" | |||
!chave | |||
!nome | |||
!endereço | |||
|- | |||
|U001 | |||
|matheus | |||
|av. floriano peixoto bairro umuarama | |||
|- | |||
|U002 | |||
|vitor | |||
|av. rondon pacheco bairro saraiva | |||
|- | |||
|U003 | |||
|rafael | |||
|av. brasil bairro Brasil | |||
|} | |||
<br> | |||
* Depois: | |||
{| class="wikitable" | {| class="wikitable" | ||
!chave | !chave | ||
| Linha 25: | Linha 69: | ||
|matheus | |matheus | ||
|av. floriano peixoto | |av. floriano peixoto | ||
| | | umuarama | ||
|- | |- | ||
|U002 | |U002 | ||
|vitor | |vitor | ||
|av. Rondon Pacheco | |av. Rondon Pacheco | ||
| | | Saraiva | ||
|- | |- | ||
|U003 | |U003 | ||
|rafael | |rafael | ||
|av. Brasil | |av. Brasil | ||
| | | Brasil | ||
|} | |} | ||
<br> | |||
* 2FN. | * 2FN. | ||
<br> | |||
* Antes: | |||
{| class="wikitable" | {| class="wikitable" | ||
!N_Pedido | !N_Pedido | ||
!Codigo_produto | !Codigo_produto | ||
!produto | |||
!Qtd | !Qtd | ||
!unidade | !unidade | ||
!subtotal | !subtotal | ||
|- | |- | ||
|1 | |||
|P01 | |||
|mesa | |||
|5 | |||
|200 | |||
|1000 | |1000 | ||
|- | |||
|2 | |||
|P02 | |||
|cadeira | |||
|5 | |||
|100 | |||
|500 | |||
|- | |||
|3 | |||
|P03 | |||
|computador | |||
|5 | |||
|500 | |||
|2500 | |||
|} | |||
* <br>Depois: | |||
{| class="wikitable" | |||
!N_Pedido | |||
!Codigo_produto | |||
!Qtd | |||
!unidade | |||
!subtotal | |||
|- | |||
|1 | |||
|P01 | |P01 | ||
|5 | |5 | ||
| Linha 77: | Linha 157: | ||
|} | |} | ||
* 3FN. | * 3FN. | ||
* Depois: | |||
{| class="wikitable" | |||
!n_pedido | |||
!codigo_produto | |||
!qtd | |||
!unidade | |||
|- | |||
|1 | |||
|P01 | |||
|5 | |||
|100 | |||
|- | |||
|2 | |||
|P02 | |||
|5 | |||
|200 | |||
|- | |||
|3 | |||
|P03 | |||
|5 | |||
|300 | |||
|} | |||
<br> | |||
= | = Exercícios = | ||
<br> | <br> | ||
* 1. Normalizar as tabelas definidas na última aula | |||
* 2. Abrir software DIA online ou outro que crie diagramas | |||
* 3. Criar DER usado o software | |||
* 4. Gerar PDF | |||
* 5; Enviar para email luiz.theodoro@ufu.br | |||
** Prazo: 17/11 - 23 hs. | |||
Edição atual tal como às 23h59min de 16 de novembro de 2017
Conceito
- Normalização é um processo no qual se aplicam regras a todas as tabelas de um banco de dados
- Objetivo: evitar falhas no projeto, exemplos:
- Redundância de dados
- Mistura de diferentes assuntos numa mesma tabela
- Ineficiência no uso das tabelas
Formas Normais
- Sequência de passos que podem ser aplicados a uma proposta inicial de um DER de forma que posteriormente teremos um padrão normalizado
- 1a. Forma Normal - 1FN
- Uma tabela estará na 1FN se não houver grupo de dados repetidos, isto é, se todos os domínios onde os valores estão armazenados são únicos. Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.
- Para se aplicar a 1FN é necessário:
- 1 - Identificar a chave(endereço) primaria da entidade
- 2 - Identificar o grupo repetitivo e removê-lo da entidade
- 3 - Criar uma nova entidade com a chave da entidade anterior e o grupo repetitivo.
- 2a. Forma Normal - 2FN'
- Uma tabela estará na 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária.
- Para se aplicar a 2FN é necessário:
- 1 - Identificar os atributos não dependentes de toda a chave primária
- 2 - Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles.
- 3a. Forma Normal - 3FN'
- Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na 3FN nenhum campo é resultado da relação de outros campos.
- Para se aplicar a 3FN é necessário:
- 1 - Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave
- 2 - Removê-los.
Exemplos
- 1FN:
- Antes:
| chave | nome | endereço |
|---|---|---|
| U001 | matheus | av. floriano peixoto bairro umuarama |
| U002 | vitor | av. rondon pacheco bairro saraiva |
| U003 | rafael | av. brasil bairro Brasil |
- Depois:
| chave | nome | rua/av | bairro |
|---|---|---|---|
| U001 | matheus | av. floriano peixoto | umuarama |
| U002 | vitor | av. Rondon Pacheco | Saraiva |
| U003 | rafael | av. Brasil | Brasil |
- 2FN.
- Antes:
| N_Pedido | Codigo_produto | produto | Qtd | unidade | subtotal |
|---|---|---|---|---|---|
| 1 | P01 | mesa | 5 | 200 | 1000 |
| 2 | P02 | cadeira | 5 | 100 | 500 |
| 3 | P03 | computador | 5 | 500 | 2500 |
Depois:
| N_Pedido | Codigo_produto | Qtd | unidade | subtotal |
|---|---|---|---|---|
| 1 | P01 | 5 | 200 | 1000 |
| 2 | P02 | 5 | 100 | 500 |
| 3 | P03 | 5 | 500 | 2500 |
| codigo_produto | produto |
|---|---|
| P01 | mesa |
| P02 | cadeira |
| P03 | computador |
- 3FN.
- Depois:
| n_pedido | codigo_produto | qtd | unidade |
|---|---|---|---|
| 1 | P01 | 5 | 100 |
| 2 | P02 | 5 | 200 |
| 3 | P03 | 5 | 300 |
Exercícios
- 1. Normalizar as tabelas definidas na última aula
- 2. Abrir software DIA online ou outro que crie diagramas
- 3. Criar DER usado o software
- 4. Gerar PDF
- 5; Enviar para email luiz.theodoro@ufu.br
- Prazo: 17/11 - 23 hs.