DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Normalização e desnormalização de dados - Revista SQL Magazine 100 - Parte 2

Este artigo trata de técnicas de normalização de dados para implementação de um modelo de dados considerando um banco de dados relacional.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?





SQL Magazine 100

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da SQL Magazine 100


Na primeira parte desta série de dois artigos vimos, em detalhes, o processo de normalização de bancos de dados relacionais. É uma etapa de extrema importância que, feita da maneira correta, contribui substancialmente para o êxito de um sistema de banco de dados como um todo.

Porém, em alguma situações uma “normalização extrema” pode trazer “efeitos colaterais” indesejado para a performance do banco de dados e é justamente nestas situações que a desnormalização se faz necessária.

Mas antes de tudo vamos relembrar um pouco da normalização. Um banco de dados relacional relaciona subconjuntos de dados (subset) de um conjunto de dados (dataset) com outro subconjunto de dados. Neste ponto, poderíamos questionar: Como podemos relacionar esses subconjuntos de dados (subset)? O que queremos dizer por um subconjunto de dados (subset) e o que é um conjunto de dados (dataset)?

• Um conjunto de dados (dataset) é o equivalente a um banco de dados nos SGBDs (Sistema de Gerenciamento de Banco de dados – ver Nota DevMan 1) Sybase ou Ingres e um esquema no SGBD Oracle. Um conjunto de dados é um conjunto de tabelas;
• Um subconjunto de dados (subset) é uma tabela. A tabela define a estrutura e contém a linha e coluna de dados para cada subconjunto;
• As tabelas são relacionadas entre si, ligando-se com base nos itens e valores comuns entre duas tabelas.

Basicamente, existem cinco níveis de normalização conhecidos como 1ª, 2ª, 3ª, 4ª e 5ª formas normais (ou 1FN, 2FN, 3FN, 4FN e 5FN) e cada uma das formas normais é um refinamento da forma normal anterior, ou seja, para dizermos que o modelo se encontra na 2ª forma normal, entende-se que este modelo também atende as regras da 1ª forma normal.
Vejamos rapidamente do que se trata cada uma dessas formas normais:

• 1ª Forma Normal: Dizemos que uma tabela está em 1FN quando todas as repetições de informação foram removidas e enviadas para uma nova tabela, criando-se um relacionamento um-para-muitos (1:n). Neste caso, cada linha na tabela recém criada possuirá uma referência à linha relacionada na tabela original. A partir de agora a tabela original possui apenas dados não duplicados;

• 2ª Forma Normal: Podemos dizer que a 2FN não cria relacionamentos um-para-muitos (1:n), mas sim relacionamentos muitos-para-um (n:1) através da separação de dados estáticos de dados dinâmicos. Dados estáticos são sérios candidatos a repetição e, em função disso, estes dados são movidos para uma nova tabela, criando-se o relacionamento;

• 3ª Forma Normal: A 3FN é usada para converter relacionamentos muitos-para-muitos (n:m) em valores únicos, ou seja, permitir que se encontre um valor único na tabela;

• 4ª Forma Normal: Basicamente a 4FN é usada para mover informações multi-valoradas para tabelas separadas;

• 5ª Forma Normal: A 5FN é usada para dividir colunas relacionadas em tabelas separadas com base no relacionamento existente.

Nota DevMan 1: SGBD – Sistema de Gerenciamento de Banco de Dados
Um sistema de gerenciamento de banco de dados é um pacote de software com programas de computador que controlam a criação, manutenção e utilização de um banco de dados. Ele permite que as organizações desenvolvam bases de dados para várias aplicações por administradores de banco de dados (DBAs) e outros especialistas. Um banco de dados é uma coleção integrada de registros de dados, arquivos e outros objetos. Um SGBD permite que vários usuários utilizando diferentes programas aplicativos acessem concorrentemente o mesmo banco de dados.

SGBDs podem utilizar uma variedade de modelos de banco de dados, tais como o modelo relacional ou modelo orientado a objetos para suportar diversos tipos de aplicações da maneira mais conveniente. Os SGBDs normalmente suportam linguagens de consulta, que são de fato linguagens de alto nível de programação que simplificam consideravelmente o desenvolvimento de programas de aplicações de banco de dados. Linguagens de banco de dados também simplificam a organização e gerenciamento de banco de dados, bem como a recuperação e apresentação de informações a partir dele.
"
A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Ricardo Rezende
Ricardo Rezende ricardo@devmedia.com.br / ricarezende@gmail.com http://twitter.com/ricarezende DBA Oracle certificado pela Oracle University (DBA 9i track e DBA OCP 10g). IBM Certified Associated em DB2 V9. DBA Oracle na IBM do Brasil em projeto internacional administrando ambiente de produção....
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03