quinta-feira, 18 de fevereiro de 2016

3º Forma Normal

    1. Terceira forma normal

    A Terceira forma normal vem para eliminar redundância codependente ou relativa. Quando 
    se tem duas informações em uma tabela que são diretamente dependentes uma da outra, 
    considera-se uma agregação de informação redundante. Isso é considerado, em palavras 
    mais funcionais, desperdício de processamento e espaço, pois quando se fala de 
    aplicações que vão exigir do seu servidor de banco de dados um grande trafego, logo 
    começa a se perceber o impacto do desperdício que foi causado pelo uso desnecessário 
    do método correto de arquivamento. Nesses casos, a terceira forma normal, orienta uma 
    forma mais eficiente e funcional de armazenamento dos dados por meio da criação de uma 
    nova tabela e referenciá-la na primeira tabela por meio de uma chave estrangeira, que é a 
    chave primaria de uma tabela que contem informações que poderão ser usadas por mais 
    de uma entidade que está em outra tabela, o que diminui a quantidade de informações 
    geradas e padroniza de maneira funcional os dados a serem usados no banco de dados.

    Exemplo prático


    Tabela “colaboradores”
    id_colaborador
    nome_colaborador
    cargo_colaborador
    area_colaborador
    sexo_colaborador
    1
    João Miguel
    Faxineiro
    Serviços Gerais
    M
    2
    Joaquim Mineiro
    Copeiro
    Serviços Gerais
    M
    3
    José da Silva
    Aux. Administrativo
    Administrativo
    M
    4
    Maria dos Santos
    Copeiro
    Serviços Gerais
    F
    5
    Miguel Paulista
    Aux. Administrativo
    Administrativo
    M
    6
    Solange Pereira
    Faxineiro
    Serviços Gerais
    F
    7
    Marta João
    Copeiro
    Serviços Gerais
    F


    Podemos ver claramente que, nessa tabela, o “cargo_colaborador”, é diretamente 
    dependente da “area_colaborador”. Quando isso acontece, temos informações repetidas na 
    tabela que poderiam ser evitadas, e também podem ocorrer erros de grafia no momento de 
    inserir as informações. O que pode gerar uma falha na consulta, por exemplo.
    id_colaborador
    nome_colaborador
    cargo_colaborador
    area_colaborador
    sexo_colaborador
    1
    João Miguel
    Faxineiro
    Serviços Gerais
    M
    2
    Joaquim Mineiro
    Copeiro
    Serviços Gerais
    M
    3
    José da Silva
    Aux. Escritório
    Administrabivo
    M
    4
    Maria dos Santos
    Copeiro
    Serviços Gerais
    F
    5
    Miguel Paulista
    Aux. Escritório
    Administrativo
    M
    6
    Solange Pereira
    Faxineieo
    Serviços Gerais
    F
    7
    Marta João
    Copeiro
    Serviços Gerais
    F
    Suponhamos fazer uma pesquisa nessa tabela para listar todos os funcionários que são da 
    categoria “Faxineiro” cadastrados nessa tabela, ele só vai me retornar o “João Miguel”, pois 
    a “Solange Pereira” está cadastrada como “Faixineio” erroneamente.

    Imagine uma situação em que se colocaremos essas informações em uma tabela 
    separada. Criamos uma tabela chamada “cargos” e nela colocamos as informações que 
    estão sendo redundantes para nós.

    Tabela “Cargos”


    id_cargo
    nome_cargo
    area_cargo
    1
    Faxineiro
    Serviços Gerais
    2
    Copeiro
    Serviços Gerais
    3
    Aux. Escritório
    Administrativo


    Observe que ainda temos informações redundantes no campo “area_cargo”, podemos fazer 
    uma terceira tabela chamada “Areas” para melhorarmos a padronização do nosso banco.
    Tabela “Areas”
    id_area
    nome_area
    1
    Serviços Gerais
    2
    Administrativo
    Agora o banco vai ficar assim:


    Tabela “Areas”
    id_area
    nome_area
    1
    Serviços Gerais
    2
    Administrativo
    Tabela “Cargos”
    id_cargo
    nome_cargo
    fk_id_area
    1
    Faxineiro
    1
    2
    Copeiro
    1
    3
    Aux. Escritório
    2


    Tabela “colaboradores”
    id_colaborador
    nome_colaborador
    fk_id_cargo
    sexo_colaborador
    1
    João Miguel
    1
    M
    2
    Joaquim Mineiro
    2
    M
    3
    José da Silva
    3
    M
    4
    Maria dos Santos
    2
    F
    5
    Miguel Paulista
    3
    M
    6
    Solange Pereira
    1
    F
    7
    Marta João
    2
    F

    Nenhum comentário:

    Postar um comentário