Chaves, Normalização e Anomalias em Bancos de Dados
Classificado em Computação
Escrito em em português com um tamanho de 4,64 KB
Conceitos Essenciais de Chaves em Bancos de Dados
Chave Primária, Candidata ou Alternativa
Para esses tipos de chaves, é criado um índice com valores únicos ou não repetidos, tendo em vista que os valores dessas chaves nas tuplas não podem se repetir ou são únicos em cada tupla.
O CPF do candidato é uma chave candidata alternativa, tendo em vista que a matrícula é a chave primária.
Chave Estrangeira
O índice criado para uma chave estrangeira depende da cardinalidade do relacionamento.
- Relacionamento 1:1: Neste tipo de relacionamento, é criado um índice com valores únicos, tendo em vista que os valores da chave estrangeira que representam um relacionamento 1:1 não podem se repetir.
- Relacionamento 1:N e N:N: É criado um índice com valores que podem se repetir, pois na tabela as chaves estrangeiras que representam esses relacionamentos também podem se repetir.
Normalização de Bancos de Dados
A normalização é um conjunto de regras que tem por finalidade remover das tabelas ou relações de um banco de dados aquelas que possuem anomalias de atualização.
A normalização é constituída de três regras, denominadas formas normais, que devem ser aplicadas em cada uma das tabelas de acordo com uma ordem específica. Ou seja, a segunda forma normal só é aplicada quando a primeira já foi, e a terceira forma normal só é aplicada quando a segunda já foi.
1ª Forma Normal (1FN)
Os atributos de uma relação (tabela) são atômicos, ou seja, jamais podem ser subdivididos em outros valores e jamais poderão representar uma tupla. Atributo atômico é o oposto de um atributo multivalorado. Para normalizar uma relação que não está na primeira forma normal, é necessário criar uma nova tabela com chave primária composta, contendo a chave primária onde se encontrava o atributo não atômico, gerando na nova tabela uma chave estrangeira e um atributo não atômico.
2ª Forma Normal (2FN)
A relação deverá estar na primeira forma normal.
Para uma relação estar na segunda forma normal, é necessário que os atributos pertencentes à chave primária e aqueles que não pertencem à chave primária tenham uma dependência funcional completa, e jamais essa dependência funcional poderá ser parcial.
Para normalizar uma relação que não está na segunda forma normal, é necessário remover as dependências funcionais parciais, criando novas tabelas.
3ª Forma Normal (3FN)
Uma relação ou tabela, para estar na 3ª Forma Normal, não poderá conter dependência funcional transitiva.
Para normalizar uma relação que não está na terceira forma normal, é necessário remover da tabela as dependências funcionais transitivas, criando novas tabelas ou relações.
Anomalias de Atualização em Bancos de Dados
São redundâncias que ocorrem em um banco de dados de modo que a atualização de dados é prejudicada, impedindo que a mesma ocorra sem que o banco de dados se torne inconsistente.
Este fato ocorre quando há um erro no projeto conceitual do banco de dados, que é o MER, ou no mapeamento do MER para o MDR. Essa última possibilidade é a que menos ocorre.
1) Operação de Inclusão de Dados
Ao incluir um novo empregado, é necessário, além do código do departamento, o nome do departamento, causando redundância de dados.
Ao cadastrar um novo departamento, o usuário é forçado a cadastrar também um empregado.
Esses dois fatos (item A e item B) não ocorrem se a tabela não possui anomalias de atualização.
Se um banco de dados não possui anomalias de atualização em suas tabelas, então o banco de dados está normalizado ou normatizado.
2) Operação de Alteração de Dados
Ao alterar as informações contidas no atributo redundante de uma tabela com anomalias de atualização, é necessário alterar em várias tuplas ou registros, fato que não ocorre quando a tabela está normalizada. Ou seja, fato que não ocorre quando as tabelas do banco de dados não possuem anomalias de atualização. A alteração de dados é somente em uma única tupla.
3) Operação de Exclusão de Dados
Ao excluir a única tupla de um atributo redundante, é excluída também a informação que se encontra na tupla inteira, fato que não ocorre com as tabelas normalizadas.
Exemplo:
Ao excluir o código do departamento Y, é excluído também o único empregado que se encontra nesse departamento, o que não era a intenção inicial. Esse fato não ocorre com as tabelas normalizadas.