Artigo: 209534 - Última revisão: terça-feira, 15 de Abril de 2003 - Revisão: 1.0 ACC2000: Conceitos básicos de normalização de bases de dados
Este artigo foi publicado anteriormente em PT209534
Inexperiente: Requer conhecimento da interface de utilizador em computadores individuais.
Nesta páginaSumário
Este artigo explica as noções básicas da terminologia de normalização de bases de dados para utilizadores inexperientes. A compreensão básica desta terminologia pode ser útil para a discussão do projecto de uma base de dados relacional.
NOTA: A Microsoft também disponibiliza uma WebCast que explica as noções básicas de normalização de bases de dados. Para visualizar esta WebCast, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1
(http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fservicedesks%2fwebcasts%2fwc060600%2fwc060600.asp%3ffr%3d1)
NOTA: Para visualizar estas informações para uma versão anterior do Microsoft Access, consulte o seguinte artigo na Microsoft Knowledge Base:
100139
(http://support.microsoft.com/kb/100139/
)
ACC: Conceitos básicos de normalização de bases de dados
Mais InformaçãoDescrição de normalizaçãoNormalização é o processo de organizar dados numa base de dados. Este processo envolve a criação de tabelas e o estabelecimentos de relações entre essas tabelas, de acordo com regras concebidas para proteger os dados e para tornar a base de dados mais flexível, através da eliminação da redundância e da dependência inconsistente.Os dados redundantes desperdiçam espaço em disco e criam problemas de manutenção. Se é necessário alterar dados que existem em mais do que um local, esses dados têm de ser alterados exactamente do mesmo modo em todos os locais. Uma alteração de morada de um cliente é muito mais fácil de implementar se esses dados estiverem apenas armazenados na tabela Clientes e em mais nenhum local da base de dados. O que é uma "dependência inconsistente"? Apesar de ser intuitivo para um utilizador procurar o endereço de um determinado cliente na tabela Clientes, poderá não fazer sentido procurar, nessa tabela, o salário do funcionário que trabalha com esse cliente. O salário do funcionário está relacionado com o (ou depende do) funcionário, pelo que deve ser movido para a tabela Funcionários. As dependências inconsistentes podem dificultar o acesso aos dados, visto que o caminho para localizar os dados pode estar em falta ou interrompido. Existem algumas regras para a normalização de bases de dados. Cada regra é chamada "formula normal". Se a primeira regra é respeitada, diz-se que a base de dados está na "primeira formula normal". Se as três primeiras regras são observadas, considera-se que a base de dados está na "terceira formula normal". Apesar de ser possível existirem outros níveis de normalização, considera-se que a terceira formula normal corresponde ao nível mais alto necessário para a maior parte das aplicações. Tal como acontece com outras regras e especificações formais, os cenários reais nem sempre permitem uma concordância exacta. De um modo geral, a normalização requer mais tabelas e alguns clientes acham este procedimento confuso. Se decidir violar uma das três primeiras regras da normalização, certifique-se de que a sua aplicação antecipa quaisquer problemas que possam ocorrer, tais como a existência de dados redundantes e dependências inconsistentes. As descrições seguintes incluem exemplos. Primeira formula normal
O que irá acontecer se adicionar um terceiro fornecedor? Adicionar um campo não é a resposta; requer modificações ao programa e às tabelas e não acomoda suavemente um número dinâmico de fornecedores. Em vez disso, todas as informações sobre os fornecedores devem ser colocadas numa tabela chamada Fornecedores; em seguida, o inventário deve ser ligado ao fornecedores através de uma chave de número de item ou os fornecedores devem ser ligados ao inventário através de uma chave de código de fornecedor. Segunda formula normal
Terceira formula normal
Por exemplo, numa tabela Recrutamento de funcionários é possível incluir o nome e o endereço da universidade dos candidatos. No entanto, é necessária uma lista completa de universidades para o envio de mailings. Se as informações sobre as universidades estiverem armazenadas na tabela Candidatos, não existe nenhuma maneira de listar as universidades sem candidatos actuais. Neste caso, deve ser criada uma tabela Universidades separada e ligá-la à tabela Candidatos através de uma chave de código de universidade. Excepção: A concordância com a terceira formula normal, apesar de ser teoricamente desejável, nem sempre é prática. Se tiver uma tabela Clientes e pretender eliminar todas as dependências possíveis entre campos, tem de criar tabelas separadas para cidades, códigos postais, representantes de vendas, classes de clientes e qualquer outro factor que possa ser duplicado em múltiplos registos. Teoricamente, a normalização é um objectivo a atingir. No entanto, a existência de muitas tabelas pequenas pode diminuir o desempenho ou exceder as capacidades de número de ficheiros abertos e de memória. Pode ser mais prático aplicar a terceira formula normal apenas aos dados que sejam frequentemente alterados. Se permanecerem alguns campos dependentes, conceba a sua aplicação de modo a requerer que o utilizador verifique todos os campos relacionados quando apenas um campo é alterado. Outras formulas de normalizaçãoExiste uma quarta formula normal, também chamado BCNF (Boyce Codd Normal Form), e uma quinta formula normal, mas são raramente tidos em consideração na concepção prática de uma base de dados. O facto de estas regras serem ignoradas pode produzir uma base de dados menos perfeita mas não deve afectar o respectivo desempenho.Normalizar uma tabela de exemploEstes passos demonstram o processo de normalização de uma tabela de estudantes fictícia.
Referências
FoxPro 2 A Developer's Guide
, Hamilton M. Ahlo Jr. et al., págs. 220-225, M & T Books, 1991
Using Access for Windows , Roger Jennings, págs. 799-800, Que Corporation, 1993
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Voltar ao topo