No SQL, são chaves compostas ou compostas?


31

Sobre SQL (computação / bancos de dados):

Quando temos dois ou mais campos em uma tabela que, juntos, identificam seus registros exclusivamente, qual é a maneira correta de chamá-los? Chaves compostas ou compostas?

Vi na web os dois usos, por isso não tenho muita certeza.


11
Confira estas duas tendências da Pesquisa Google: goo.gl/5u4XdR .
igordcard

Respostas:


32

A chave composta e a chave composta descrevem uma chave candidata com mais de um atributo. De acordo com o Dicionário de Banco de Dados Relacional (CJDate), eles significam a mesma coisa.

Na modelagem de ER, o termo "chave composta" também tem um significado mais específico. Significa uma chave cujos atributos constituintes são referências a chaves em outras entidades - ou seja, uma chave composta forma um relacionamento de identificação. Para a maioria dos propósitos, esse não é um conceito especialmente útil ou importante; portanto, os termos composto / composto costumam ser tratados como intercambiáveis. Provavelmente, é melhor manter a "chave composta", a menos que você esteja se referindo especificamente ao conceito de modelagem de ER de uma chave composta.


3
"Na modelagem de ER, o termo" chave composta "também tem um significado mais específico" - Parece convincente :) Mas você tem uma citação?
usar o seguinte código

Portanto, uma chave composta seria a chave normalmente encontrada em uma tabela de junção usada para muitos relacionamentos, por exemplo?
Josh P

19

Ainda não sei por que http://en.wikipedia.org/wiki/Compound_key não foi consultado. Ele afirma muito claramente (e está correto):

No design do banco de dados, uma chave composta é uma chave que consiste em 2 ou mais atributos que identificam exclusivamente uma ocorrência de entidade. Cada atributo que compõe a chave composta é uma chave simples por si só.

Isso geralmente é confundido com uma chave composta, na qual, embora também seja uma chave que consiste em 2 ou mais atributos que identificam exclusivamente uma ocorrência de entidade, pelo menos um atributo que compõe a chave composta não é uma chave simples.

Uma chave composta é composta de elementos que podem ou não ser chaves estrangeiras. Exemplo: Em uma tabela de detalhes da Transação, a chave é (TransactionId, ItemNumber). Um detalhe da transação é uma subentidade de uma transação. TransactionId é uma chave estrangeira, referenciando a tabela Transações. O ItemNumber não é uma chave por si só. Ele identifica apenas um item exclusivamente no contexto de uma única transação.

Uma chave composta é uma chave pela qual qualquer parte da chave é uma chave estrangeira. Exemplo: em um sistema de reserva de hotel, uma reserva possui a chave composta (GuestId, HotelId, ArrivalDate). GuestId identifica um convidado e faz referência à tabela Convidados. HotelId identifica um hotel e faz referência à tabela de hotéis. ArrivalDate identifica uma data. Pode ou não haver uma tabela Datas que ela faça referência, mas identifica uma Entidade (uma Data) de qualquer maneira.

Também é digno de nota o fato: uma chave simples é uma chave composta de uma coluna, enquanto uma chave composta é composta de duas ou mais colunas.


4
jcolebrand: "Uma chave composta é uma chave pela qual qualquer parte da chave pode identificar o registro." Isso está incorreto. Por definição, uma chave deve ser irredutível (uma superchave mínima). Se apenas alguns dos atributos são necessários para identificar exclusivamente uma tupla, por definição isso é uma superchave e não uma chave.
Nvogel

a) Eu estava citando a página da Wikipedia. b) Eu tendem a concordar com isso. Qualquer parte de uma chave composta é uma chave simples. Não me importo se você também chamar de superchave. Porém, não acredito que todas as chaves compostas possam ser superchaves. Portanto, eu mantenho o que está no artigo da Wikipedia, e mantenho a definição que citei. Posso buscar meu livro de design de banco de dados de capa dura publicado, se isso o deixaria mais feliz.
jcolebrand

2
Acho que você perdeu o ponto relevante, que é que uma chave composta é composta de chaves de outras entidades . Um subconjunto adequado de uma chave não pode ser uma chave. Como eu tenho certeza que você sabe, é necessário que uma chave seja mínima (dentro da tabela da qual é uma chave) - portanto, se você remover qualquer atributo dela, não será mais uma chave.
Nvogel

2
"Chave" é apenas a abreviação de "chave candidata". A definição do livro didático de uma chave candidata é e sempre foi uma "superchave mínima". Referências: Date's Dictionary pg17 ou The Alice Book, se você tiver alguma dúvida sobre a definição de uma chave.
Nvogel

11
As definições de " chave composta " e " chave do site " na página da Wikipedia foram alteradas em 13 de julho de 2014 e não correspondem mais às definições nesta resposta. (Eu não alterar as definições, apenas apontando que as definições não correspondem agora.)
spencer7593

3

Em inglês, são "chaves compostas". Por exemplo, dê uma olhada no site do MSDN (qualquer pesquisa que contenha "chave composta sql" será suficiente).

http://www.google.com/search?q=sql+composite+key+site:msdn.microsoft.com

Supondo que a pergunta se refira a bancos de dados relacionais, procurei uma definição "neutra" na Wikipedia :

Uma chave composta é uma chave composta de dois ou mais atributos em uma tabela que (juntos) identificam exclusivamente um registro


11
Sem fonte, sem referência, sem link, sem nada ... resposta ruim.


google.com/search?q=sql+composite+key+definition só vai trazê-lo para um zilhão de locais que falam sobre SQL Composite Chaves
Hemme

11
assim será uma pesquisa no google por chave composta
jcolebrand

3
Isto é científico: googlefight.com/…
Hemme

3

Uma chave composta consiste em mais de um atributo para identificar exclusivamente uma ocorrência de entidade. Isso difere de uma chave composta, pois um ou mais dos atributos, que compõem a chave, não são chaves simples por si só.

Por exemplo, você tem um banco de dados que contém sua coleção de CDs. Uma das entidades é chamada de faixas, que contém detalhes das faixas em um CD. Esta possui uma chave composta do nome do CD, número da faixa.


2

Parece-me que uma chave composta é um superconjunto que inclui chaves compostas. Se aceitarmos que uma chave composta é feita com mais de um atributo (de qualquer tipo), e uma chave composta é feita com mais de uma chave simples. Uma chave composta é um tipo de chave composta com um significado mais específico, mas o termo chave "composta" é sempre apropriado para uso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.