As teclas fornecem os meios para o uso do banco de dados em qualquer tabela. Por exemplo, em uma tabela de funcionários, tanto o software de enfermagem e aplicativo de funcionários para identificar, acessar e atualizar informações em uma tabela de banco de dados. Pode haver várias chaves no nome e o nome de login são únicas. A aplicação de uma restrição chave (ou seja, uma restrição de exclusividade) em uma tabela também é um recurso de integridade de dados do banco de dados. O DBMS impede atualizações que causariam valores -chave duplicados e, portanto, garantem que as tabelas sempre cumpram as regras desejadas para a singularidade. A seleção adequada das chaves ao projetar um banco de dados é, portanto, um aspecto importante da integridade do banco de dados.
Uma tabela de banco de dados relacional pode ter uma ou mais teclas exclusivas disponíveis (formalmente chamadas de chaves candidatas). Uma dessas chaves por tabela pode ser designada a chave primária; Outras chaves são chamadas de teclas alternativas.
Qualquer chave pode consistir em um ou mais atributos. Por exemplo, um número de previdência social pode ser uma única chave de atributo para um funcionário; Uma combinação de número e data de voo pode ser uma chave que consiste em dois atributos para um voo programado.
Existem vários tipos de chaves usadas na modelagem e implementações do banco de dados.
Key NameDefinitionSimpleA key made from only one attribute.ConcatenatedA key made from more than one attribute joined together as a single key, such as part or whole name with a system generated number appended as often used for E-mail addresses.CompoundA key made from at least two attributes or simple keys, only simple keys exist in a compound key.CompositeLike a compound key, but the individual attributes need not be simple keys.NaturalA key made from data that exists outside the current database. In other words, the data is not system generated, such as a social security number imported from another system.SurrogateAn artificial key made from data that is system assigned or generated when another candidate key exists. Surrogate keys are usually numeric ID values and often used for performance reasons.[citation needed]CandidateA key that may become the primary key.PrimaryThe key that is selected as the primary key. Only one key within an entity is selected to be the primary key. This is the key that is allowed to migrate to other entities to define the relationships that exist among the entities. When the data model is instantiated into a physical database, it is the key that the system uses the most when accessing the table, or joining the tables together when selecting data.AlternateA non-primary key that can be used to identify only one row in a table. Alternate keys may be used like a primary key in a single-table select.ForeignA key that has migrated to another entity.Na definição mais básica, "uma chave é um identificador exclusivo", então a chave única é uma pleonasma. As chaves que estão dentro de sua entidade de origem são únicas nessa entidade. As chaves que migram para outra entidade podem ou não ser únicas, dependendo do design e de como elas são usadas na outra tabela. As chaves estrangeiras podem ser a chave primária em outra tabela; Por exemplo, um PersonID pode se tornar o Funcionário na tabela de funcionários. Nesse caso, o funcionário é uma chave estrangeira e a chave primária única, o que significa que as tabelas têm um relacionamento 1: 1. No caso em que a entidade pessoal continha o pai biológico do pai, não seria de se esperar que o pai seja único porque um pai pode ter mais de um filho.
Aqui está um exemplo de chave primária, tornando -se uma chave estrangeira em uma tabela relacionada. O ID migra da tabela do autor para a tabela de livros.
Aqui, o ID serve como a chave primária da tabela 'Autor', mas também como AuthorID serve como uma chave estrangeira na tabela 'Livro'. A chave estrangeira serve como link e, portanto, a conexão entre as duas tabelas relacionadas neste banco de dados de amostra.
Em um banco de dados relacional, uma chave do candidato identifica exclusivamente cada linha de valores de dados em uma tabela de banco de dados. Uma chave candidata compreende uma única coluna ou um conjunto de colunas em uma única tabela de banco de dados. Não há duas linhas distintas ou registros de dados em uma tabela de banco de dados, pode ter o mesmo valor de dados (ou combinação de valores de dados) nessas colunas principais candidatas, pois os valores nulos não são usados. Dependendo de seu design, uma tabela de banco de dados pode ter muitas chaves candidatas, mas no máximo uma chave candidata pode ser distinguida como a chave primária.
Uma restrição importante se aplica ao conjunto de tuplas em uma tabela em qualquer momento no tempo. Uma chave não é necessariamente um identificador exclusivo em toda a população de todas as instâncias possíveis de tuplas que podem ser armazenadas em uma tabela, mas implica uma regra de integridade de dados que as duplicatas não devem ser permitidas na tabela de banco de dados. Alguns exemplos possíveis de chaves são números de segurança social, ISBNs, números de registro de veículos ou nomes de login de usuários.
Em princípio, qualquer chave pode ser referenciada por chaves estrangeiras. Alguns SQL DBMSs permitem apenas uma restrição de chave estrangeira contra uma chave primária, mas a maioria dos sistemas permitirá que uma restrição de chave estrangeira faça referência a qualquer chave de uma tabela.
A definição de chaves no SQL:
Da mesma forma, as chaves podem ser definidas como parte da instrução CREATE TABLE SQL.
Restrição de chave primária
A primary key cannot allow null (a primary key cannot be defined on columns that allow nulls).Each table cannot have more than one primary key.On some RDBMS a primary key generates a clustered index by default.Restrição única
A unique constraint can be defined on columns that allow nulls, in which case rows that include nulls may not actually be unique across the set of columns defined by the constraint.Each table can have multiple unique constraints.On some RDBMS a unique constraint generates a nonclustered index by default.Observe que, diferentemente da restrição de chave primária, uma restrição exclusiva não implica não nula para as colunas que participam da restrição. Não é especificado nulo para tornar a coluna (s) uma chave (s). É possível colocar restrições exclusivas em colunas anuláveis, mas o padrão SQL afirma que a restrição não garante singularidade de colunas anuláveis (a singularidade não é aplicada para linhas onde qualquer uma das colunas contém um nulo).
De acordo com o padrão SQL, uma restrição exclusiva não aplica a singularidade na presença de nulos e, portanto, pode conter várias linhas com combinações idênticas de valores nulos e não nulos-no entanto, nem todos os RDBMs implementam esse recurso de acordo com o padrão SQL.