Outro exemplo de projeto - Where is my food?





  • DER - Pedido
Erro ao criar miniatura: Arquivo não encontrado


Conceito

  • A normalização de dados é uma série de passos que se seguem no projeto de um banco de dados e que permitem um armazenamento consistente e um eficiente acesso aos dados em modelos relacionais
  • Vantagens:
    • Esses passos reduzem a redundância de dados e as chances deles se tornarem inconsistentes
    • É um conjunto de limitações impostas a uma estrutura de dados para que a mesma fique mais concisa e sem falhas estruturais
    • Dados redundantes desperdiçam espaço em disco e criam problemas de manutenção
  • Aspecto interessante:
    • Uma alteração de endereço de cliente é muito mais fácil de implementar se esses dados são armazenados somente na tabela Clientes e não espalhados em vários outros locais.


Prós e contras

Prós


  • Padronização de Bancos de Dados
  • BDs normalizados facilitam o trabalho do desenvolvedor
  • Facilita a recuperação de informações
  • Evita as redundâncias de informações.


Contra


  • Como é um método criado a décadas, atendeu bem a questões comuns mas como nos dias de hoje temos novas demandas como armazenamento de mídia (áudio, vídeo, imagens), buscas inteligentes e também de conteúdos não formatados (logs, mensagens, textos diversos) novas tecnologias de Banco de Dados foram sendo desenvolvidas
    • Por isso, os BDs normalizados vão tomando espaço


Chave Primária

  • As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.
  • A unicidade dos registros, determinada por sua chave, também é fundamental para a criação dos índices.
  • Temos dois tipos de chaves:
    • Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá.
    • Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será.


Formas Normais


  • As formas normais permitem que o profissional de TI consiga seguir alguns passos para tornar o BD gradativamente mais estruturado
  • Diz-se que uma tabela num banco de dados relacional está numa certa forma normal se satisfaz certas condições
  • Existem várias formas normais e cada uma listada abaixo representa uma condição mais forte que a precede na lista, ou seja, para implementar uma forma, devemos antes fazer a anterior.
  • Para a maioria dos efeitos práticos, considera-se que as bases de dados estão normalizadas se aderirem à terceira forma normal mas existem mais que isso.


Primeira Forma Normal (1FN)

Definição

Uma tabela está na 1FN, se e somente se, não possuir atributos multivalorados.

  • A primeira forma normal diz que atributos de uma entidade que tem características de armazenamento de vários valores, devem gerar uma nova entidade (ou ser extraído para outra entidade já existente) de dados relacionada a entidade origem. Ou seja, separar grupo repetitivo.


  • Entidade Cliente (Sem normalização)
Exemplo
  • CPF
  • RG
  • DataNascimento
  • Nome
  • Dependentes




  1. O cliente pode ter mais de um CPF? Não => Por isso ele é chave primária
  2. O cliente pode ter mais de um RG? Não
  3. O cliente pode ter mais de um nome? Não
  4. O cliente pode ter mais de uma data de Nascimento? Não
  5. O cliente pode ter mais de um Dependente? SIM

Isso torna o atributo "Dpendentes" uma nova entidade!

  • Entidade Cliente (Com normalização)
Exemplo
  • CPF
  • RG
  • DataNascimento
  • Nome


  • Entidade Dependentes
  • CPF
  • NomeDependente






Segunda Forma Normal (2FN)

Definição
  • A segunda forma normal fala sobre a dependência relativa de dados
  • Em termos claros pode-se dizer que todo atributo de uma entidade que não depender exclusivamente da chave primária, deve gerar uma nova entidade.
Exemplo
  • Associado
  • CPF
  • N.o do contrato
  • RG
  • Nome
  • Data_Venc_Contrato





  1. Trocando o atributo nome o cliente será descaracterizado? Sim
  2. Trocando o atributo os CPF e RG o cliente será descaracterizado? Sim
  3. Trocando o atributo N.o do contato o cliente srá descaracterizado? Sim
  4. Trocando a Data_venc_contrato o cliente é descaracteriza? Não

Então o atributo Contrato é uma Entidade!



Terceira Forma Normal (3FN)

Definição
  • A terceira forma normal utiliza o principio de transitividade, e diz que todo atributo que depende não transitivamente da chave primária gera uma entidade. Basicamente perguntar se o atributo depende ou não da chave do qual pertence.
Exemplo
  • Cliente
  • CPF
  • RG
  • Nome
  • UF
  • Nome_Cidade
  • Código_Cidade





  1. O nome da cidade depende do CPF? Não

Então o atributo Cidade é uma Entidade



Referências