Modelagem, Integridade e Normalização

Modelagem, Integridade e Normalização

O objetivo desse post não é explicar o modelo lógico, conceitual e físico e demonstrar o que cada fase deve ter como objetivo, pois já há diversos artigos na internet com essa finalidade. Meu objetivo é apenas mostrar o que uma modelagem deve ter para iniciarmos nosso projeto com o pé direito, definir os tipos de integridade e mostrar exemplos reais de aplicação das regras de normalização.

A Modelagem de Dados consiste em um processo que tem como objetivo capturar a visão estática de um determinado problema ou situação. A parte estática é composta de dados que espelham os objetos do mundo real.

Trata-se de uma das fases de análise de sistemas em qualquer metodologia de desenvolvimento de software.

Ao término da modelagem de dados, devemos conseguir observar um modelo:

  • Completamente normalizado;
  • Que represente fielmente o NEGÓCIO;
  • Conter descrição sucinta das entidades, atributos e relacionamentos;
  • Conter os nomes de entidades e atributos, extensos e abreviados, atribuídos de acordo com algum padrão adotado na organização e formados por termos previamente convencionados em um glossário;
  • Contemplar, para cada um dos atributos, o tipo de dado, tamanho e opcionalidade

Tipos de Integridade:

a)      Integridade de entidade: define uma linha como entidade exclusiva. Ex: UNIQUE ou PRIMARY KEY

b)      Integridade de domínio: validade de entradas para uma coluna específica. Ex: IDADE

c)       Integridade referencial: preserva a relação definida entre tabelas quando linhas são excluídas. Ex:

d)      Integridade definida pelo usuário: define regras comerciais q não se encaixam em outras categorias de integridade. Ex: Procedures e triggers

Normalização:

Utilizada para evitar problemas que podem provocar falhas no projeto do banco de dados, bem como eliminar a mistura de assuntos e as correspondentes redundâncias dos dados desnecessárias. A abreviação usada, (NF), vem do inglês, “Normal Form”

O processo de normalização aplica uma série de regras sobre as tabelas (também chamadas de entidades) de um banco de dados, para verificar se estão corretamente projetadas, vamos então as 3 NFs e seus exemplos práticos:

1º Forma Normal

a)      Identificar a chave primária da entidade

b)      Identificar o grupo repetitivo e removê-lo

c)       Criar uma nova entidade com a chave primária da entidade anterior e o grupo onde há repetição

Vamos ao exemplo prático:

Tabela CLIENTE:

Seguindo as regras mencionadas acima, temos:

Separação do atributo endereço, dividindo em colunas : Rua, Bairro e CEP

A tabela ainda não está adequada totalmente 1º Forma Normal, pois também temos que adequar a coluna Telefone:

Tabela CLIENTE:

Tabela TELEFONE:

Agora sim, temos a tabela totalmente adequada a primeira forma normal.

2º Forma Normal

a)      Identificar os atributos que não são funcionalmente dependentes de toda a chave primária

b)      Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles

Tabela VENDAS:

As coluna produto não é integralmente dependente do N_Pedido e não é necessário estar na tabela VENDAS.

Tabela PRODUTO:

Tabela VENDAS:

Tabelas totalmente adequadas a segunda forma normal.

3º Forma Normal

a)      Identificar todos os atributos que são funcionalmente dependentes de outros atributos NÃO CHAVE; e

b)      Removê-los

Continuando com a tabela VENDAS:

Aplicando a Elimininação do campo Subtotal, pois depende do valor_unit e não da chave:

E assim finalizo mais um post espero ter ajudado no entendimento de conceitos fundamentais a DBAs e Desenvolvedores.

José Eduardo Fiamengui Júnior
jeduardounicamp@gmail.com

Sobre oradeep

José Eduardo Fiamengui Júnior Graduação: Tecnologia em Informática pela Universidade Estadual de Campinas (Unicamp) Pós-Graduação: Administração em Banco de Dados Oracle pelo Instituto Brasileiro de Tecnologia Avançada (IBTA) Mba em Gestão Estratégica em TI pela FGV OCE Certified ITIL Certified Empresa Atual: Dba Oracle e Performance Specialist na Ccee Empresa Atual: Instrutor Oracle IBTA
Esta entrada foi publicada em Uncategorized. ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s