SQL에서 복합 또는 복합 키입니까?


31

SQL 정보 (컴퓨팅 / 데이터베이스) :

테이블에 레코드를 고유하게 식별하는 두 개 이상의 필드가있는 경우이를 호출하는 올바른 방법은 무엇입니까? 복합 또는 복합 키?

웹에서 모두 사용하는 것을 보았으므로 확실하지 않습니다.


1
goo.gl/5u4XdR의 두 가지 Google 검색 트렌드를 확인하십시오 .
igordcard

답변:


32

복합 키와 복합 키는 둘 이상의 속성을 가진 후보 키를 설명합니다. 관계형 데이터베이스 사전 (CJDate)에 따르면 동일한 의미입니다.

ER 모델링에서 "복합 키"라는 용어는보다 구체적인 의미를 갖습니다. 이는 구성 요소 속성이 다른 엔티티의 키에 대한 참조 인 키를 의미합니다. 즉 복합 키는 식별 관계를 형성합니다. 대부분의 경우, 이것은 특히 유용하거나 중요한 개념이 아니므로 복합 / 화합물이라는 용어는 종종 상호 교환 가능한 것으로 취급됩니다. 복합 키의 ER 모델링 개념을 구체적으로 언급하지 않는 한 "복합 키"를 사용하는 것이 가장 좋습니다.


3
"ER 모델링에서"복합 키 "라는 용어는보다 구체적인 의미를 가지고 있습니다."-설득력있는 소리 :) 그러나 인용이 있습니까?
1

예를 들어 복합 키가 일반적으로 많은 관계에 사용되는 접합 테이블에서 발견되는 키입니까?
Josh P

19

http://en.wikipedia.org/wiki/Compound_key 를 참조 하지 않았는지 확실 하지 않습니다. 그것은 매우 명확하게 진술하고 정확합니다.

데이터베이스 설계에서 복합 키 는 엔티티 발생을 고유하게 식별하는 둘 이상의 속성으로 구성된 키입니다. 복합 키를 구성하는 각 속성은 그 자체로 간단한 키입니다.

이것은 종종 복합 키 와 혼동됩니다. 여기서 이것은 엔티티 발생을 고유하게 식별하는 둘 이상의 속성으로 구성되는 키이지만 복합 키 를 구성하는 하나 이상의 속성은 그 자체로는 단순한 키가 아닙니다.

복합 키는 외래 키이거나 아닐 수있는 요소로 구성됩니다. 예 : 트랜잭션 세부 사항 테이블에서 키는 (TransactionId, ItemNumber)입니다. 트랜잭션 세부 사항은 트랜잭션의 하위 항목입니다. TransactionId는 Transactions 테이블을 참조하는 외래 키입니다. ItemNumber는 그 자체로 키가 아닙니다. 단일 트랜잭션 컨텍스트 내에서만 항목을 고유하게 식별합니다.

복합 키는 키의 일부가 외래 키인 키입니다. 예 : 호텔 예약 시스템에서 예약에는 복합 키 (GuestId, HotelId, ArrivalDate)가 있습니다. GuestId는 손님을 식별하고 손님 테이블을 참조합니다. HotelId는 호텔을 식별하고 Hotels 테이블을 참조합니다. ArrivalDate는 날짜를 식별합니다. 참조하는 Dates 테이블이있을 수도 있고 없을 수도 있지만 어느 쪽이든 엔티티 (날짜)를 식별합니다.

단순 키는 하나의 열로 구성된 키인 반면 복합 키는 두 개 이상의 열로 구성됩니다.


4
jcolebrand : "복합 키는 키의 모든 부분이 레코드를 식별 할 수있는 키입니다." 맞습니다. 정의에 따라 키는 복구 할 수 없어야합니다 (최소 수 퍼키). 튜플을 고유하게 식별하기 위해 일부 속성 만 필요한 경우 정의에 따라 키가 아닌 수 퍼키입니다.
nvogel 2016 년

a) 위키 백과 페이지를 인용하고있었습니다. b) 나는 그것에 동의하는 경향이있다. 복합 키의 모든 부분은 그 자체가 단순한 키입니다. 슈퍼 키라고해도 상관 없습니다. 그러나 모든 복합 키가 슈퍼 키가 될 수 있다고는 생각하지 않습니다. Ergo, 나는 wikipedia 기사에있는 것을지지하고, 내가 인용 한 정의를지지한다. 출판 된 하드 커버 데이터베이스 디자인 북으로 가서 더 행복해질 수 있습니다.
jcolebrand

2
복합 키가 다른 엔티티 의 키로 구성되어 있다는 점에서 관련 요점을 놓쳤다 고 생각합니다 . 키의 적절한 서브 세트는 키가 될 수 없습니다. 잘 아시다시피, 키는 키가 최소한이어야합니다 (키가있는 테이블 내). 따라서 속성을 제거하면 더 이상 키가되지 않습니다.
nvogel 2016 년

2
"키"는 "후보 키"의 줄임말입니다. 후보 키의 교과서 정의는 항상 "최소 슈퍼 키"였습니다. 참고 문헌 : 날짜 사전 pg17 또는 키 정의에 대해 의심이가는 경우 Alice Book.
nvogel 2016 년

1
Wikipedia 페이지 의 " 복합 키 "및 " compsite 키 "의 정의는 2014 년 7 월 13 일에 변경되었으며 더 이상이 답변의 정의와 일치하지 않습니다. (정의를 바꾸지 않고 정의가 지금 일치하지 않음을 지적했습니다.)
spencer7593

3

영어에서는 "복합 키"입니다. 예를 들어 MSDN 웹 사이트 ( "sql composite key"를 포함하는 모든 검색)를 살펴보십시오.

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

질문이 관계형 데이터베이스와 관련이 있다고 가정하면 Wikipedia 에서 "중립"정의를 검색했습니다 .

복합 키는 테이블 내에서 레코드를 고유하게 식별하는 둘 이상의 속성으로 구성된 키입니다.


1
소스도없고, 참조도없고, 링크도없고, 아무것도 ... 나쁜 대답.


google.com/search?q=sql+composite+key+definition 은 SQL 복합 키에 대해 이야기하는 수많은 사이트로 연결됩니다
Hemme

1
구글은 복합 키를 검색합니다
jcolebrand

3
이것은 과학적입니다 : googlefight.com/…
Hemme

3

복합 키는 엔티티 발생을 고유하게 식별하기위한 둘 이상의 속성으로 구성됩니다. 이것은 키를 구성하는 하나 이상의 속성이 그 자체로는 단순한 키가 아니라는 점에서 복합 키와 다릅니다.

예를 들어, CD 콜렉션을 보유한 데이터베이스가 있습니다. 엔티티 중 하나를 트랙이라고하며 CD에있는 트랙의 세부 사항을 보유합니다. 여기에는 CD 이름, 트랙 번호의 복합 키가 있습니다.


2

복합 키가 복합 키를 포함하는 수퍼 세트처럼 들립니다. 복합 키가 둘 이상의 속성 (모든 종류)으로 만들어지고 복합 키가 둘 이상의 단순 키로 만들어지는 경우. 복합 키는보다 구체적인 의미의 복합 키 유형이지만 "복합"키라는 용어는 항상 사용하기에 적합합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.