3.5. Definindo chave primária, nulidade, valor padrão e unicidade dos atributos

Cada atributo pode ter algumas características específicas. Um atributo pode ser definido como chave primária. Isso informa ao modelo e ao SGBD que é aquele campo que identifica exclusivamente cada tupla da tabela. Ao definir que um campo é chave primária, também estamos dizendo que não pode haver duas tuplas com o mesmo valor para esse campo (ou seja, ele é único). Também, para fins de otimização de consultas, ao definir um campo como chave primária, o SGBD irá criar um índice de pesquisa, para que as relações e consultas sejam mais rápidas. É nesse índice que fica a definição de que não pode haver dois valores idênticos. Por fim, um campo que é chave primária não pode ser nulo. A própria definição do campo em ser chave primária restringe que não aceita valor nulo.

Outra característica importante é definir se os atributos (que não são chaves primárias) aceitam valores nulos ou não. Ao definir que o campo não aceita nulo, o SGBD tentará usar um valor definido como padrão para inserções onde não forem informados valores. Se não houver um valor padrão, poderão ocorrer erros, caso uma inserção não possua valor para esse campo.

Uma terceira propriedade é definir o valor padrão para o campo. O valor padrão tanto pode ser um valor fixo, como 0 (zero), “<<não informado>>”, “xxxx”, “01/01/2015”, como também pode ser um campo calculado pelo SGBD, como por exemplo dizer que o valor padrão para um determinado campo do tipo data seja a data na qual o registro está sendo salvo. Isso normalmente é feito por meio da função NOW(), que retorna a data e hora exata do relógio interno do computador onde está o SGBD.

Outro valor computado automaticamente pelo SGBD é o tipo “auto contador”, muito utilizado para chaves primárias, que gera números sequenciais e automáticos para cada inserção no banco de dados. Parecido com esse auto contador, existe um tipo especial denominado “identificador único exclusivo”. Esse valor é um número binário muito grande e aleatório onde o SGBD garante que nunca poderá ser gerado dois números como esses idênticos (em nenhum momento, em nenhum outro SGBD do mundo todo). Esse tipo de funcionalidade é interessante para sistemas que replicam ou trocam dados e se deseja que nunca poderá haver valores de chave primária duplicados entre eles.
Copyright © 2014 AIEC.