Buscar

ARTIGO 15.06.2014 FUNDAMENTOS DE DEPÊNDENCIAS FUNCIONAIS E NORMALIZAÇÃO PARA BANCO DE DADOS RELACIONAIS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

FUNDAMENTOS DE DEPÊNDENCIAS FUNCIONAIS E NORMALIZAÇÃO PARA BANCO DE DADOS RELACIONAIS
Rafael Martins <rafaelmartinsd21@gmail.com>
Allyssandro Souza <allyssandro.08@gmail.com>
 Universidade Federal de Mato Grosso do Sul – Curso de Ciência da Computação – Campus de Ponta Porã
R. Itibire Vieira, s/nº - Residencial Julia O. Cardinal – CEP 79907-414 – Ponta Porã – MS
RESUMO
Este artigo irá apresentar técnicas de normalização de banco de dados relacionais para o desenvolvimento de um banco mais eficiente e confiável. Primeiro será abordada as boas práticas ou diretrizes para elaboração e avaliação de projetos informais de banco de dados. Em seguida será mostrado as técnicas formais de normalização de dados proposta por Codd (1972) baseadas em dependências funcionais.
Palavras-chaves: Banco de dados; Normalização de dados; Banco de dados relacionais. 
ABSTRACT
Title: “Fundamentals of functional dependencies and normalization for relational database”
This article will introduce techniques to normalize relational database to developing a more efficient and reliable bank. First will be addressed best practices or guidelines for the preparation and evaluation of informal projects database. Then be shown the formal technical data normalization proposed by Codd (1972) based on functional dependencies. 
 Key-words: database;
1 ITRODUÇÃO
Um banco de dados para ser desenvolvido é necessário que ele seja mapeado ou modelado de forme que explique as características de seu funcionamento e comportamento para que evite erros de programação e funcionamento. Um projeto é abordado em três partes ou fases:
	
Modelagem Conceitual: é usada como representação de alto nível e considera exclusivamente o ponto de vista do usuário criador dos dados;
Modelagem Lógica: agrega mais alguns detalhes de implementação.
Modelagem Física: demonstra como os dados são fisicamente armazenados.
Existem alguns modelos de mapeamento de dados, iremos abordar o modelo de entidade-relacionamento, ou também chamado de modelo relacional. Este considera seus dados em agrupamentos divididos em entidade que se relacionam com outras. 
Uma entidade com seus dados é apresentada em tabelas, daí surge uma descrição formal deste modelo de dados, onde as tabelas são chamadas de relação, as linhas de uma tabela que contém dados referentes a um registro e os atributos são as colunas da tabela é um campo ou característica de um registro.
As tabelas de um modelo relacional que se relacionam umas com as outras através de chaves que referenciam um registro unicamente, ou seja, tem um valor exclusivo para este. Existem dois tipos de chaves:
Chave primaria: é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá.
Chave Secundaria: é a chave formada através de um relacionamento com a chave primária de outra tabela.
Com isso Codd (1972) propôs inicialmente três formas normais para o processo de normalização de dados de banco de dados relacionais baseadas em dependências funcionais e chaves primarias que visam principalmente garantir a integridade, diminuir a redundância e anomalias de exclusão, inserção e atualização.
2 DIRETRIZES DE PROJETO INFORMAIS PARA ESQUEMAS DE RELAÇÃO
Segundo o dicionário informal a diretriz é uma meta ou alvo que se quer atingir (Ricardo Pavani, dicionário informal.com.br). Em banco de dados foram estabelecidas quatro diretrizes bases para ser usadas como medidas para determinar a qualidade de um projeto de esquema relação. 
As diretrizes são técnicas de analise informal de banco de dados relacional que busca apontar problemas de anomalias em operações de inserção ou modificação, desperdício de espaço de armazenamento e geração de dados falsos.
As diretrizes estabelecidas são:
Semântica dos atributos.
Informações redundantes.
Valores NULLs nas tuplas.
Tuplas falsas.
2.1 GARANTIR A SEMÂNTICA DOS ATRIBUTOS.
A semântica é o estudo do significado que um atributo expressa. Esta diretriz diz respeito ao significado dos atributos pertencente a uma relação que é interpretada por um conjunto de fatos. O significado do atributos tem que representar aquela relação. Desta forma um desenvolvedor que garante com que a semântica doa atributos seja combinado com a relação ele terá um esquema fácil de ser explicado ou até entendido por futuros desenvolvedores daquele banco.
Exemplo 1: violação da primeira diretriz:
Fonte: (ELMASRI; NAVATH, 2011).
No exemplo 1 os atributos Fnome, Datanasc, Endereco e Dnumero corresponde ao atributo chave Fnome, porem os atributos Dnome e Cpf_gerente corresponde a outro atributo o Dnumero desrespeitando a primeira diretriz.
No segundo exemplo é mostrada uma solução para que este esquema se encaixe na primeira diretriz. A solução é dividir a relação anterior em duas outras relações, uma com atributos de funcionários e outra com atributos de departamento onde essas duas se relacional com uma chave estrangeira Dnumero.
Fonte: (ELMASRI; NAVATH, 2011).
2.2 EVITAR INFORMAÇÕES REDUNDANTES
Uma informação redundante são atributos duplicados que ocupam desnecessariamente espaço no disco de armazenamento. A diretriz diz que deve fazer o uso de chaves estrangeiras quando uma relação precisa de informações de outra, porém o uso de chaves estrangeiras podem gerar anomalias de exclusão, modificação e de inserção.
Anomalias de exclusão: quando excluímos uma tupla que possui uma chave primaria usada em uma chave estrangeira de uma tupla de outra relação, esta tupla perdera as informações da tupla excluída.
Anomalia de Inserção: acontece quando inserimos uma tupla que necessite de informações de uma tupla ainda não tem seus valores atribuídos.
Anomalias de modificação: quando modificamos uma informação de uma tupla que servia de chave estrangeira à tuplas de outra relação essas poderão ficar com inconsistência de dados.
2.3 REDUZIR VALORES NULLS NAS TUPLAS
Esta diretriz diz que devemos se os atributos poderão receber valores nulos tanto na hora de atribuição de valores por um usuário ou em operações algébricas. A solução nesses casos é de excluírem esses atributos.
2.4 NÃO GERAR TUPLAS FALSAS
As tuplas falsas não devem existir em um banco de dados, pois infringe sua funcionalidade onde o um banco deve ser integro, só é útil informações verdadeiras. A diretriz diz que não se deve fazer junção em casos que não seja entre uma chave primaria com chave estrangeira, essas junções geram tuplas falsas.
3 DEPENDÊNCIAS FUNCIONAIS
As dependências funcionais é um conceito base para técnicas formais e normalização de dados que se baseia na primeira diretriz a garantia da semântica dos atributos com a relação.
Uma dependência funcional é quando um conjunto de atributos é gerado a partir de outro atributo ou conjunto. 
Representa-se por: A → B: O conjunto de atributo A denominado de determinante que determina funcionalmente o B e então B é depende funcionalmente de A.
Exemplo 2:
 
Fonte: (ELMASRI; NAVATH, 2011).
Cpf → Fnome: Fnome depende funcionalmente de Cpf que é a chave primaria da relação e Cpf determina funcionalmente o Fnome.
Projnumero → {Projnome, Projlocal}: O conjunto de Projnome, Projlocal depende funcionalmente de Projnumero.
{Cpf,Projnumero} → Horas: A combinação de Cpf,Projnumero determina funcionalmente as horas.
4 FORMAS NORMAIS
O Processo de normalização, como foi inicialmente proposto por Codd (1972), sujeita um esquema de relação a uma série de testes para certifica-se de que ele satisfaça certa forma normal. Inicialmente, Codd propôs três formas normais: 1ª, 2ª e 3ª. Todas baseadas nas dependências funcionais entre os atributos de uma relação. Uma nova forma normal foi proposta por Boyce-Codd, que é mais forte do que 3ª FN.
4.1 PRIMEIRA FORMA NORMAL.
A 1FN afirma que o domínio de um atributo deve incluir apenas valores atômicos(simples, indivisíveis) e que o valor de qualquer atributo em uma tupla deve ser único valor do domínio desseatributo.
Simplificando: Em outras palavras, os campos de uma tabela não devem ser compostos(que são descritos por vários valores como endereço que possui, Rua, numero, bairro) ou multivalorados(que pode assumir vários valores diferentes que diz respeito a mesma coisa. Ex: Titulo acadêmico).
Técnicas para alcançar a 1FN:
 Criar uma nova relação que contenha as repetição de valores em atributos e uma chave primaria da tupla de origem.
Expandir a chave.
Usar vários atributos atômicos.
A primeira técnica é a mais recomendada pois não causa redundância(4.1.2) nem abordagem genérica que atribui muitos valores nulos (4.1.3).
4.2 SEGUNDA FORMA NORMAL
A definição mais rigorosa descreve que um esquema de relação está na 2FN se todo atributo não primário tem dependência funcional total da chave primária daquela relação. 
Podemos dizer também que não existe dependência parcial. (Todo atributo deve depender da chave). A ideia é que cada atributo não chave seja definido por todos os atributos pertencentes à chave primária da relação. 
Técnica para se alcançar a 2FN
Gerar uma relação para cada subconjunto de atributos com suas dependências funcionais, as chaves primarias.
4.3 TERCEIRA FORMA NORMAL.
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.
Técnicas para se alcançar a 3FN:
Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave;
Temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
5 CONCLUSÃO
Este artigo, apresentou os fundamentos de dependências funcionais e normalização para banco de dados, ou formas de normalização.
As dependências e normalizações são de muita importância em projetos de banco de dados, pois com elas se consegue um melhor resultado, pois seguindo esses critérios e regras podemos obter um banco de dados mais eficiente.
Como vimos também, entre as três formas citadas neste artigo, temos mais duas, porém quem já trabalhou com banco de dados, acaba percebendo que utilizava as formas normais mesmo sem conhecê-las. Para desenvolvedores mais experientes, a eliminação de redundâncias em bancos de dados se configura uma prática essencial para o sucesso do projeto.
Apesar de existirem outras formas normais como a quarta forma normal e quinta forma normal, apenas a três primeiras tem sido considerada atualmente. As formas normais são importantes instrumentos para resolver antecipadamente problemas na estrutura do banco de dados.
Para aplicar a normalização de dados é necessário considerar a sequência das formas normais, isto é, para aplicar a segunda forma normal por exemplo, é necessário que seja aplicado a primeira forma normal. Da mesma forma, para aplicar a terceira forma normal é necessário que já tenha sido feita a normalização na segunda forma normal.
REFERÊNCIAS
CAVALCANTI, Thiago Rodrigues. Desmistificando as formas normais. Disponível em: <http://www.itnerante.com.br/profiles/blogs/desmistificando-as-formas-normais>. Acesso em: 12 Jun. 2014
ELMASRI, Ramez; NAVATH, Shamkant B. Sistemas de Banco de Dados. - 6ª Edição. São Paulo: PEARSON:2011.
O que é a Terceira Forma Normal 3FN - Normalização de dados. Disponível em:<http://www.luis.blog.br/terceira-forma-normal-3fn-normalizacao-de-dados.aspx>. Acesso em: 12 Jun. 2014
Dicionário Informal. Disponível em:<http://www.dicionarioinformal.com.br/sem%C3%A2ntica/>. Acesso em: 12 Jun. 2014
Banco de dados relacional. Disponível em < http://pt.wikipedia.org/wiki/Banco_de_dados_relacional>. Acesso em: 12 Jun. 2014

Outros materiais