Bancos de Dados - Aula 19 - Formas Normais – Parte I
Formas Normais em Banco de Dados
Introdução às Formas Normais
- A professora Sara introduz o tema da aula, que é sobre formas normais no contexto de banco de dados, destacando sua importância na qualidade do projeto.
- Serão abordadas quatro formas normais: 1NF, 2NF, 3NF e BCNF. Outras formas normais são mencionadas como disponíveis no livro texto.
Importância da Terceira Forma Normal
- A terceira forma normal (3NF) é enfatizada como a meta desejada ao avaliar a qualidade do projeto de banco de dados.
- A normalização é um processo que visa melhorar a qualidade do banco de dados, fundamentado em dependências funcionais e chaves das relações.
Análise das Relações
- O objetivo da análise das relações é minimizar redundâncias para evitar anomalias durante inserções, exclusões ou alterações nos dados.
- Relações que não atendem certas condições devem ser decompostas em esquemas menores que satisfaçam as condições desejáveis.
Medindo a Qualidade do Projeto
- A forma normal mais alta alcançada por uma relação determina a classificação do projeto; se uma relação está em 3NF, todo o projeto será considerado nessa forma.
- Um exemplo prático ilustra que mesmo com várias relações em BCNF, se uma estiver apenas em 3NF, o projeto completo será classificado como 3NF.
Propriedades Adicionais na Avaliação
- Além das formas normais, propriedades adicionais devem ser analisadas para garantir a qualidade do projeto.
- A propriedade de junção sem perdas é crucial para evitar tuplas espúrias e garantir integridade nas junções entre relações.
Preservação das Dependências Funcionais
- É importante preservar as dependências funcionais durante o processo de normalização; no entanto, pode haver situações onde isso não seja possível.
Primeira Forma Normal (1NF)
- A primeira forma normal exige atributos atômicos nas relações; qualquer atributo multivalorado compromete essa condição.
- Um exemplo prático mostra uma relação com um atributo multivalorado (localizações), evidenciando que ela não atende à 1NF.
Normalização de Atributos Multivalorados
Conceito de Atributo Multivalorado
- Um atributo é considerado multivalorado quando pode receber vários valores, o que caracteriza a necessidade de normalização para atender à primeira forma normal.
- Para normalizar, o esquema original é dividido em dois esquemas menores, separando atributos multivalorados em novas relações.
Processo de Normalização
- O modelo entidade-relacionamento permite atributos multivalorados, mas no modelo relacional isso não é permitido. Portanto, esses atributos são transformados em novas relações.
- A transformação dos atributos multivalorados em novas relações deve manter a chave primária da relação original.
Exemplificação da Normalização
- Um exemplo prático envolve uma relação chamada "funk proj", onde um funcionário está associado a múltiplos projetos com diferentes horas dedicadas.
- A chave primária é composta pelo identificador do funcionário e o número do projeto, sendo que o número do projeto pode ser visto como uma chave parcial.
Divisão das Relações
- Ao dividir as relações originais em duas menores, mantemos os dados do funcionário e criamos uma nova relação para associar projetos e horas trabalhadas.
- Essa divisão reflete o mapeamento entre entidades no modelo entidade-relacionamento e suas correspondências no modelo relacional.
Introdução à Segunda Forma Normal
Conceitos Fundamentais
- A segunda forma normal depende dos conceitos de atributo primo e dependência funcional total.
- Um atributo é considerado primo se faz parte de alguma chave candidata; caso contrário, é um atributo não primo.
Dependência Funcional Total
- Dependência funcional total ocorre quando a remoção de qualquer atributo do lado esquerdo da dependência resulta na perda da validade dessa dependência.
Exemplificação das Dependências Funcionais
Teoria de Dependências Funcionais e Normalização
Dependência Funcional e Horas Trabalhadas
- A relação entre funcionário e número de projeto determina a quantidade de horas trabalhadas, estabelecendo que para um determinado funcionário em um projeto específico, sempre haverá uma quantidade fixa de 10 horas.
Análise da Dependência Funcional
- Ao remover o atributo "número do projeto" da dependência funcional, a relação entre "funcionário identificador" e "horas" não se mantém, pois o identificador do funcionário pode estar associado a diferentes projetos com diferentes quantidades de horas.
Totalidade da Dependência Funcional
- A dependência funcional que liga "funcionário identificador" a "horas" é considerada total, pois depende de ambos os atributos. Se apenas um dos atributos for considerado, a relação não se sustenta.
Definição da Segunda Forma Normal
- Um esquema está na segunda forma normal (2FN) se todos os atributos não primos têm dependências funcionais totais em relação à chave primária ou qualquer chave da relação. Isso garante que não haja dependências parciais.
Exemplificação da Normalização
- O exemplo apresentado mostra que embora o esquema inicial esteja na primeira forma normal (1FN), ele não atende à 2FN devido à presença de atributos não primos que dependem parcialmente da chave.
Criação de Novos Esquemas
- Para atender às regras da 2FN, novos esquemas são criados para cada dependência funcional identificada. Cada novo esquema elimina as violações à segunda forma normal.
Conclusão sobre Formas Normais