AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 3134
Accepted
igordcard
igordcard
Asked: 2011-06-03 11:06:56 +0800 CST2011-06-03 11:06:56 +0800 CST 2011-06-03 11:06:56 +0800 CST

No SQL, são chaves compostas ou compostas?

  • 772

Sobre SQL (Computação/Bancos de Dados):

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

Eu vi na web ambos os usos, então não tenho certeza.

terminology database-design
  • 5 5 respostas
  • 55466 Views

5 respostas

  • Voted
  1. Best Answer
    nvogel
    2011-06-03T13:00:28+08:002011-06-03T13:00:28+08:00

    Tanto a chave composta quanto 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 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 uma relação de identificação. Para a maioria dos propósitos, este não é um conceito especialmente útil ou importante, então os termos composto/composto são frequentemente tratados como intercambiáveis. Provavelmente é melhor manter a "chave composta", a menos que você esteja se referindo especificamente ao conceito de modelagem ER de uma chave composta.

    • 37
  2. jcolebrand
    2011-06-03T12:21:28+08:002011-06-03T12:21:28+08:00

    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 projeto de 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 é muitas vezes confundido com uma chave composta em que, embora esta 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 por si só.

    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 de transação é uma subentidade de uma transação. TransactionId é uma chave estrangeira, referenciando a tabela de transações. ItemNumber não é uma chave em si. Ele identifica exclusivamente um item no contexto de uma única transação.

    Uma chave composta é uma chave em que qualquer parte da chave é uma chave estrangeira. Exemplo: em um sistema de reservas de hotel, uma reserva tem a chave composta (GuestId, HotelId, ArrivalDate). GuestId identifica um convidado e faz referência à tabela de convidados. HotelId identifica um Hotel e faz referência à tabela Hotels. ArrivalDate identifica uma Data. Pode ou não haver uma tabela de Datas a que se refere, mas identifica uma Entidade (uma Data) de qualquer maneira.

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

    • 25
  3. Tom Gnade
    2014-06-28T04:25:20+08:002014-06-28T04:25:20+08:00

    Parece-me que uma chave composta é um superconjunto que inclui chaves compostas. Se aceitarmos que uma chave composta é feita de mais de um atributo (de qualquer tipo), e uma chave composta é feita de 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.

    • 3
  4. Hemme
    2011-06-03T11:18:47+08:002011-06-03T11:18:47+08:00

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

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

    Assumindo que a questão diz respeito a Bancos de Dados Relacionais, procurei uma definição "neutra" na Wikipedia :

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

    • 2
  5. user3448324
    2020-11-24T01:53:53+08:002020-11-24T01:53:53+08:00

    Uma chave composta é criada quando 2 ou mais chaves primárias de diferentes tabelas estão presentes como chaves estrangeiras dentro de uma entidade. Uma chave composta é uma composição de duas ou mais colunas que identificam exclusivamente as linhas em uma entidade

    • -3

relate perguntas

  • Os índices filtrados podem ajudar a melhorar as consultas baseadas em uma hora inserida ou isso deve ser evitado?

  • Qual é a diferença entre os tipos de dados MySQL VARCHAR e TEXT?

  • É melhor armazenar os valores calculados ou recalculá-los a pedido? [duplicado]

  • Armazenar vs calcular valores agregados

  • Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve