Socorro Vânia socorro.vania@gmail.com Anomalias de Atualização Anomalias de Atualização Anomalias de Atualização
Anomalias são problemas que ocorrem em
banco de dados mal planejados e não- normalizados, geralmente ocorrendo por excesso de dados armazenados em uma mesma tabela. São causadas pelas dependências parciais e transitivas. As anomalias de atualização são classificadas em anomalias de inserção, de exclusão e de modificação. Eliminar Anomalias
Projetar os esquemas de relações (tabelas) no
banco de dados de modo que nenhuma anomalia de inserção, exclusão ou modificação esteja presente nas relações.
Para isso, usamos o processo de
Normalização. Normalização
Normalização consiste em um processo de
análise de um relação para assegurar que seja bem formada. Significa decompor relações com anomalias para produzir relações menores e bem estruturadas. Ou seja, em uma relação normalizada podemos inserir, excluir ou modificar registros sem criar anomalias. Normalização
O processo de normalização, proposto por
Codd em 1972, aplica a um esquema de relação uma série de testes para certificar que ele satisfaça uma Forma Normal (FN). Codd propôs originalmente 3 formas normais: 1ª, 2ª e 3ª FNs. Posteriormente, a 3FN foi revisada e uma definição mais robusta foi proposta por Boyce e Codd, denominada Forma Normal de Boyce Codd (FNBC). Projeto Lógico - Normalização
Processo muito importante para um projeto de
banco de dados. Consiste em analisar o modelo e através de regras formais, reestruturar possíveis tabelas e atributos, reduzindo assim redundâncias e permitindo o crescimento do BD com o mínimo de efeito colateral. Consiste em diminuir redundância e anomalias de inserção, atualização e exclusão. Projeto Lógico - Normalização
Consiste em analisar relações para satisfazer
requisitos cada vez mais rigorosos acarretando agrupamentos cada vez melhores, mais estáveis e seguros. Realiza-se uma série de testes para certificar se a relação está ou não em uma determinada forma normal. O processo consiste em certificar e decompor. Fundamentado no conceito de Dependência Funcional. Projeto Lógico – Formas Normais (FN)
Dividem-se em 6 formas normais:
1 FN (1o Forma Normal) 2 FN (2o Forma Normal) 3 FN (3o Forma Normal) * Diz-se normalizado FNBC (Forma Normal de Boyce e Codd) 4 FN (4o Forma Normal) 5 FN (5o Forma Normal) Projeto Lógico – Formas Normais (FN)
O ideal é que o projeto do banco de dados
relacional alcance a 3FN ou a FNBC para cada tabela. Não é adequado normalizar apenas até a 1FN ou a 2FN, pois na verdade essas formas normais são usadas para se chegar à 3FN. Projeto Lógico – Normalização
1ª Forma Normal (1FN ou 1NF)
Definida historicamente para reprovar atributos multivalorados, compostos e suas combinações. O domínio de um atributo deve incluir apenas valores atômicos (indivisíveis), e o valor de qualquer atributo em uma tupla deve ser o único valor do domínio desse atributo. O modelo relacional exige que as relações estejam pelo menos na 1FN. Projeto Lógico – Normalização
1ª Forma Normal (1FN ou 1NF)
Uma tabela está na 1FN quando: Somente possui valores atômicos. Não há grupos de atributos repetidos (há apenas um dado por coluna nas linhas). Existe uma chave primária. A tabela não possui atributos multivalorados ou relações aninhadas. Projeto Lógico – Normalização Projeto Lógico – Normalização
1ª Forma Normal (1FN ou 1NF):
Tabela com anomalias
Exemplo disponível em:
https://www.youtube.com/watch?v=eRaAMNjCFYw&t=577s Projeto Lógico – Normalização
1ª Forma Normal (1FN ou 1NF):
Tabela sem anomalias
Exemplo disponível em:
https://www.youtube.com/watch?v=eRaAMNjCFYw&t=577s Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF)
Basada no conceito de Dependência Funcional Total. A dependência funcional corresponde a uma restrição entre conjuntos de atributos em uma relação. Se X identifica Y, então X→Y e diz-se que há uma dependência funcional entre eles. X determina Y, Y é funcionalmente dependente de X. Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF)
Diz respeito às chaves primárias compostas. Uma relação R (tabela) está na 2FN se e somente se está na 1FN e cada atributo não chave de R for total e funcionalmente dependente da chave primária (PK) de R. Para testar a 2FN, testamos as dependências funcionais cujos atributos fazem parte da PK. Caso a PK tenha um único atributo, esse teste não precisa ser aplicado. Se a PK não é composta e a relação está na 1FN, ela também está na 2FN. Uma relação que está na 1FN pode não estar na 2FN se sua chave for composta. Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF)
Todos os atributos não-chave são funcionalmente dependentes de todas as partes da chave primária. Não existe dependências parciais. Caso contrário, deve-se gerar uma nova tabela com os dados. Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF)
Deve-se criar uma nova relação para cada chave PK ou combinação de atributos que forem determinantes em uma dependência funcional. Esse atributo será a PK na nova tabela. Mova os atributos não chave dependentes desta OK para a nova tabela. Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF):
Tabela com anomalias
Exemplo disponível em:
https://www.youtube.com/watch?v=6ER9lWOk-cY Projeto Lógico – Normalização
2ª Forma Normal (2FN ou 2NF):
Tabela sem anomalias
Exemplo disponível em:
https://www.youtube.com/watch?v=6ER9lWOk-cY Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização Projeto Lógico – Normalização