Bancos de Dados - Aula 20 - Formas Normais – Parte II

Bancos de Dados - Aula 20 - Formas Normais – Parte II

Introdução às Formas Normais em Banco de Dados

Conceito de Normalização

  • A aula aborda a normalização em bancos de dados, focando em duas formas normais e suas propriedades essenciais.
  • A dependência funcional transitiva é introduzida como um conceito fundamental para entender as regras da normalização.

Dependência Funcional Transitiva

  • Definição: uma dependência funcional é transitiva se existe um conjunto de atributos que não é chave candidata e que conecta outras dependências funcionais.
  • Exemplo prático: a relação entre funcionário e departamento ilustra como o identificador do funcionário determina o gerente do departamento através de uma cadeia de dependências.

Tratamento da Dependência Transitiva

  • É necessário tratar as dependências funcionais transitivas para alcançar a terceira forma normal (3FN).
  • Para que um esquema esteja na 3FN, deve estar primeiro na segunda forma normal (2FN), sem atributos não primos que sejam transitivos.

Regras para Alcançar a Terceira Forma Normal

Condições Necessárias

  • A 3FN requer que todas as regras da 2FN sejam seguidas, além das especificidades próprias da 3FN.
  • O tratamento das dependências parciais também é crucial, pois elas determinam se uma relação está ou não na 2FN.

Exemplificação da Normalização

  • O exemplo apresentado mostra como decompor um esquema complexo em esquemas menores para facilitar a normalização até a 3FN.
  • As novas relações criadas seguem as dependências funcionais estabelecidas no projeto original, melhorando sua estrutura.

Diretrizes Informais no Projeto de Banco de Dados

Importância das Diretrizes

  • Um bom projeto evita misturar atributos diferentes, mantendo clareza nas relações entre entidades.

Estudo da Última Forma Normal em Banco de Dados

Introdução à Dependência Funcional e Chaves

  • O departamento é uma chave primária que se relaciona com o funcionário, representando um relacionamento entre eles.
  • A forma normal BCNF (Boyce-Codd Normal Form) é definida quando uma dependência funcional não trivial implica que X é uma super chave do esquema.
  • A dependência funcional trivial ocorre quando um atributo depende de si mesmo, enquanto a não trivial envolve atributos diferentes.

Análise de Esquemas e Dependências Funcionais

  • Ao analisar esquemas para a segunda forma normal, nem sempre se obtém relações que obedecem às regras da BCNF.
  • Um exemplo diferente será analisado para entender como a DCNF (Dependência Chave Não Funcional) é mais restritiva.
  • As dependências funcionais definidas pelo projetista são essenciais para determinar as chaves das relações.

Identificação de Chaves Candidatas

  • A primeira dependência funcional determina todos os demais atributos da relação, tornando-se uma chave primária.
  • Existe outra chave candidata definida por uma segunda dependência funcional, onde um conjunto de atributos determina outros na relação.
  • A última dependência funcional indica que o atributo área determina o estado, exigindo repetição do valor do estado conforme as regras estabelecidas.

Validação das Dependências Funcionais

  • Para validar a dependência funcional 5, deve-se garantir que valores repetidos atendam às regras estabelecidas no esquema.
  • Se o valor do estado não se repetir corretamente ao longo das entradas, isso pode violar a regra da dependência funcional.

Normalização e Criação de Novas Relações

  • A relação analisada não está na BCNF devido à falta de super chave na dependência funcional 5; portanto, precisa ser normalizada.
  • É possível ter relações em 3M/S (terceira forma normal), mas ainda assim não alcançar a próxima forma normal desejada (BCNF).
  • Para alcançar a BCNF, novas relações serão construídas considerando as independências funcionais existentes.

Construção das Novas Relações

  • O primeiro passo na normalização envolve trabalhar com a dependência funcional 5 para criar novas relações adequadas à DCNF.
  • Uma nova relação chamada "lotes" foi criada com dois atributos relacionados à dependência funcional 5.

Análise de Dependências Funcionais em Relações de Banco de Dados

Criação da Relação Lote 11 Aces

  • Foi criada a relação "lote 11 aces", que inclui os atributos de propriedade e lote, além do atributo área, essencial para a dependência funcional.

Importância da Junção nas Decomposições

  • A área é determinada pelo atributo de propriedade e serve como chave primária na nova relação. É crucial que as relações possam ser unidas novamente através de junções sem perdas.

Perda de Dependência Funcional

  • Ao decompor as relações, uma dependência funcional foi perdida. Isso significa que um atributo necessário para verificar essa dependência não está mais presente na nova estrutura.

Verificação das Dependências Funcionais

  • Para validar se a dependência funcional ainda é obedecida, será necessário realizar uma junção, o que pode ser custoso em termos de desempenho no banco de dados.

Propriedades Necessárias na Normalização

  • Durante a normalização, cada atributo deve aparecer em pelo menos uma relação. Nenhum atributo do projeto original deve ser excluído na decomposição.

Formas Normais e Preservação das Dependências

  • O objetivo é alcançar a forma normal mais alta possível (BCNF), mas se isso causar problemas, pode-se optar por formas normais inferiores que preservem as dependências funcionais.

Garantia contra Perdas nas Junções

  • É fundamental assegurar que a decomposição não cause perdas durante as junções. Caso contrário, informações erradas podem ser criadas, resultando em duplas espúrias.

Sacrifício da Normalização por Dependências Funcionais

Video description

Engenharia de Computação – Bancos de Dados Disciplina EID - 002 - Bancos de Dados Professora responsável: Sarajane Marques Peres Playlist da disciplina: https://www.youtube.com/playlist?list=PLxI8Can9yAHeHQr2McJ01e-ANyh3K0Lfq