DBMS 키: 후보, 슈퍼, 기본, 외래 키 유형(예 포함)
DBMS의 키란 무엇입니까?
DBMS의 키 관계(테이블)에서 행(튜플)을 식별하는 데 도움이 되는 속성 또는 속성 집합입니다. 이를 통해 두 테이블 간의 관계를 찾을 수 있습니다. 키를 사용하면 해당 테이블에 있는 하나 이상의 열을 조합하여 테이블의 행을 고유하게 식별할 수 있습니다. 키는 테이블에서 고유한 레코드나 행을 찾는 데에도 유용합니다. 데이터베이스 키는 테이블에서 고유한 레코드나 행을 찾는 데에도 유용합니다.
예:
직원 ID | 이름 | 성 |
---|---|---|
11 | 앤드류 | 존슨 |
22 | 남자 이름 | 목재 |
33 | 알렉스 | 건장한 |
위에 제시된 예에서 직원 ID는 직원 기록을 고유하게 식별하므로 기본 키입니다. 이 테이블에서는 다른 직원이 동일한 직원 ID를 가질 수 없습니다.
왜 열쇠가 필요한가요?
DBMS 시스템에서 SQL 키를 사용하는 몇 가지 이유는 다음과 같습니다.
- 키는 테이블의 데이터 행을 식별하는 데 도움이 됩니다. 실제 애플리케이션에서는 테이블에 수천 개의 레코드가 포함될 수 있습니다. 게다가 기록이 중복될 수도 있다. RDBMS의 키를 사용하면 이러한 문제에도 불구하고 테이블 레코드를 고유하게 식별할 수 있습니다.
- 테이블 간의 관계를 설정하고 식별할 수 있습니다.
- 관계에서 정체성과 진실성을 강화하도록 도와주세요.
DBMS(데이터베이스 관리 시스템)의 키 유형
DBMS에는 주로 XNUMX가지 유형의 키가 있으며 각 키에는 서로 다른 기능이 있습니다.
- 수퍼 키
- 기본 키
- 후보자 키
- 대체 키
- 외래 키
- 복합 키
- 복합 키
- 대리 키
예를 들어 DBMS의 각 키를 살펴보겠습니다.
- 슈퍼 키 – 슈퍼 키는 테이블의 행을 식별하는 단일 또는 다중 키 그룹입니다.
- 기본 키 – 해당 테이블의 모든 행을 고유하게 식별하는 테이블의 열 또는 열 그룹입니다.
- 후보 키 – 테이블의 튜플을 고유하게 식별하는 속성 집합입니다. 후보 키는 반복되는 속성이 없는 슈퍼 키입니다.
- 대체 키 – 해당 테이블의 모든 행을 고유하게 식별하는 테이블의 열 또는 열 그룹입니다.
- 외래 키 – 두 테이블 간의 관계를 생성하는 열입니다. 외래 키의 목적은 데이터 무결성을 유지하고 엔터티의 서로 다른 두 인스턴스 간 탐색을 허용하는 것입니다.
- 복합 키 – 특정 레코드를 고유하게 인식할 수 있는 두 개 이상의 속성이 있습니다. 각 열은 데이터베이스 내에서 그 자체로 고유하지 않을 수도 있습니다.
- 복합 키 – 테이블의 행을 고유하게 식별하는 두 개 이상의 열 조합입니다. 열의 조합은 고유성을 보장하지만 개별 고유성은 보장되지 않습니다.
- 대리 키 – 각 레코드를 고유하게 식별하는 것을 목표로 하는 인공 키를 대리 키라고 합니다. 이러한 종류의 키는 자연 기본 키가 없을 때 생성되므로 고유합니다.
슈퍼 키란 무엇입니까?
슈퍼키는 테이블의 행을 식별하는 단일 또는 다중 키 그룹입니다. 슈퍼 키에는 고유 식별에 필요하지 않은 추가 속성이 있을 수 있습니다.
예:
EmpSSN | EmpNum | 엠프네임 |
---|---|---|
9812345098 | AB05 | 표시된 |
9876512345 | AB06 | 로슬린 |
199937890 | AB07 | James |
위의 예에서 EmpSSN 및 EmpNum 이름은 슈퍼키입니다.
기본 키란 무엇입니까?
기본 키 in DBMS 해당 테이블의 모든 행을 고유하게 식별하는 테이블의 열 또는 열 그룹입니다. 기본 키는 중복될 수 없습니다. 즉, 동일한 값이 테이블에 두 번 이상 나타날 수 없습니다. 테이블에는 기본 키가 두 개 이상 있을 수 없습니다.
기본 키 정의 규칙:
- 두 행은 동일한 기본 키 값을 가질 수 없습니다.
- 모든 행에는 기본 키 값이 있어야 합니다.
- 기본 키 필드는 null일 수 없습니다.
- 외래 키가 해당 기본 키를 참조하는 경우 기본 키 열의 값을 수정하거나 업데이트할 수 없습니다.
예:
다음 예에서 StudID
기본 키입니다.
StudID | 롤 아니오 | 이름 | 성 | 이메일 |
---|---|---|---|---|
1 | 11 | 남자 이름 | 가격 | abc@gmail.com |
2 | 12 | Nick | 라이트 | xyz@gmail.com |
3 | 13 | 다나 | 나단 | mno@yahoo.com |
대체 키란 무엇입니까?
대체 키 해당 테이블의 모든 행을 고유하게 식별하는 테이블의 열 또는 열 그룹입니다. 테이블에는 기본 키에 대한 여러 선택 사항이 있을 수 있지만 기본 키로는 하나만 설정할 수 있습니다. 기본 키가 아닌 모든 키를 대체 키라고 합니다.
예:
이 표에서 StudID, Roll No, Email은 기본 키가 될 자격이 있습니다. 하지만 StudID가 기본 키이므로 Roll No, Email이 대체 키가 됩니다.
StudID | 롤 아니오 | 이름 | 성 | 이메일 |
---|---|---|---|---|
1 | 11 | 남자 이름 | 가격 | abc@gmail.com |
2 | 12 | Nick | 라이트 | xyz@gmail.com |
3 | 13 | 다나 | 나단 | mno@yahoo.com |
후보 키란 무엇입니까?
후보 키 SQL에서 테이블의 튜플을 고유하게 식별하는 속성 집합입니다. 후보 키는 반복되는 속성이 없는 슈퍼 키입니다. 기본 키는 후보 키 중에서 선택되어야 합니다. 모든 테이블에는 최소한 하나의 후보 키가 있어야 합니다. 테이블에는 여러 개의 후보 키가 있을 수 있지만 기본 키는 하나만 있을 수 있습니다.
후보 키의 속성:
- 고유한 값을 포함해야 합니다.
- SQL의 후보 키에는 여러 속성이 있을 수 있습니다.
- Null 값을 포함하면 안 됩니다.
- 고유성을 보장하기 위해 최소 필드를 포함해야 합니다.
- 테이블의 각 레코드를 고유하게 식별합니다.
후보 키 예: 주어진 표에서 학생 ID, 학생 번호, 이메일은 표에서 학생 기록을 고유하게 식별하는 데 도움이 되는 후보 키입니다.
StudID | 롤 아니오 | 이름 | 성 | 이메일 |
---|---|---|---|---|
1 | 11 | 남자 이름 | 가격 | abc@gmail.com |
2 | 12 | Nick | 라이트 | xyz@gmail.com |
3 | 13 | 다나 | 나단 | mno@yahoo.com |
외래 키란 무엇입니까?
외래 키 두 테이블 간의 관계를 생성하는 열입니다. 외래 키의 목적은 데이터 무결성을 유지하고 엔터티의 서로 다른 두 인스턴스 간 탐색을 허용하는 것입니다. 이는 다른 테이블의 기본 키를 참조하므로 두 테이블 간의 상호 참조 역할을 합니다.
예:
부서 코드 | 부서명 |
---|---|
001 | 과학 |
002 | English |
005 | 컴퓨터 |
교사 ID | F이름 | 이름 |
---|---|---|
B002 | 데이비드 | Warner |
B017 | 사라 | 조셉 |
B009 | 마이크 | 브런턴 |
dbms 예제의 이 키에는 학교에 가르치는 테이블과 부서라는 두 개의 테이블이 있습니다. 하지만 어느 부서에서 어떤 검색 작업이 이루어졌는지는 알 수 있는 방법이 없습니다.
이 테이블에서는 Deptcode의 외래 키를 Teacher 이름에 추가하면 두 테이블 간의 관계를 만들 수 있습니다.
교사 ID | 부서 코드 | F이름 | 이름 |
---|---|---|---|
B002 | 002 | 데이비드 | Warner |
B017 | 002 | 사라 | 조셉 |
B009 | 001 | 마이크 | 브런턴 |
이 개념은 참조라고도 알려져 있습니다. Integrity.
복합 키란 무엇입니까?
복합 키 특정 레코드를 고유하게 인식할 수 있는 두 개 이상의 속성이 있습니다. 각 열은 데이터베이스 내에서 그 자체로 고유하지 않을 수도 있습니다. 그러나 다른 열과 결합하면 복합 키의 조합이 고유해집니다. 데이터베이스에서 복합 키의 목적은 테이블의 각 레코드를 고유하게 식별하는 것입니다.
예:
주문번호 | 제품ID | 제품명 | 수량 |
---|---|---|---|
B005 | JAP102459 | 마우스 | 5 |
B005 | DKT321573 | USB | 10 |
B005 | 세상에 446789 | LCD 모니터 | 20 |
B004 | DKT321573 | USB | 15 |
B002 | 세상에 446789 | 레이저 프린터 | 3 |
이 예에서 OrderNo 및 ProductID는 레코드를 고유하게 식별하지 않으므로 기본 키가 될 수 없습니다. 그러나 주문 ID와 제품 ID의 복합 키는 각 레코드를 고유하게 식별하므로 사용할 수 있습니다.
복합 키란 무엇입니까?
복합 키 테이블의 행을 고유하게 식별하는 두 개 이상의 열 조합입니다. 열의 조합은 고유성을 보장하지만 개별적인 고유성은 보장되지 않습니다. 따라서 테이블의 레코드를 고유하게 식별하기 위해 결합됩니다.
복합 키와 복합 키의 차이점은 복합 키의 모든 부분이 외래 키가 될 수 있지만 복합 키는 외래 키의 일부일 수도 있고 아닐 수도 있다는 것입니다.
대리 키란 무엇입니까?
대리 키 각 레코드를 고유하게 식별하는 것을 목표로 하는 인공 키를 대리 키라고 합니다. dbms의 이러한 종류의 부분 키는 자연 기본 키가 없을 때 생성되므로 고유합니다. 이는 테이블의 데이터에 어떤 의미도 부여하지 않습니다. DBMS의 대리 키는 일반적으로 정수입니다. 대리 키는 레코드가 테이블에 삽입되기 직전에 생성되는 값입니다.
F이름 | 성 | 시작 시간 | 종료 시간 |
---|---|---|---|
앤 | 스미스 | 09:00 | 18:00 |
잭 | 프란시스 | 08:00 | 17:00 |
안나 | 매 클린 | 11:00 | 20:00 |
표시된 | 윌리엄 | 14:00 | 23:00 |
위에 주어진 예시는 다른 직원의 교대 근무 시간을 보여줍니다. 이 예시에서 각 직원을 고유하게 식별하기 위해 대리 키가 필요합니다.
대리 키 SQL 다음과 같은 경우에 허용됩니다.
- 기본 키의 매개변수를 갖는 속성이 없습니다.
- 테이블에서 기본 키가 너무 크거나 복잡할 때.
기본 키와 외래 키의 차이점
기본 키와 외래 키의 주요 차이점은 다음과 같습니다.
기본 키 | 외래 키 |
---|---|
테이블의 레코드를 고유하게 식별하는 데 도움이 됩니다. | 다른 테이블의 기본 키인 테이블의 필드입니다. |
기본 키는 null 값을 허용하지 않습니다. | 외래 키는 여러 개의 null 값을 허용할 수 있습니다. |
기본 키는 클러스터형 인덱스이고 DBMS 테이블의 데이터는 물리적으로 클러스터형 인덱스의 시퀀스에 따라 구성됩니다. | 외래 키는 클러스터형이든 비클러스터형이든 인덱스를 자동으로 생성할 수 없습니다. 그러나 외래 키에 대한 인덱스를 수동으로 생성할 수 있습니다. |
테이블에는 단일 기본 키가 있을 수 있습니다. | 한 테이블에 여러 개의 외래 키를 가질 수 있습니다. |
요약
- DBMS의 키란 무엇입니까? DBMS의 키는 관계(테이블)에서 행(튜플)을 식별하는 데 도움이 되는 속성 또는 속성 집합입니다.
- 키 입력 RDBMS 테이블 간의 관계를 설정하고 식별할 수 있습니다.
- DBMS의 키 유형에는 슈퍼, 기본, 후보, 대체, 외부, 복합, 복합 및 대리 키의 XNUMX가지 유형이 있습니다.
- 슈퍼 키는 테이블의 행을 식별하는 단일 또는 다중 키 그룹입니다.
- 해당 테이블의 모든 행을 고유하게 식별하는 데 도움이 되는 테이블의 열 또는 열 그룹을 기본 키라고 합니다.
- 기본 키가 아닌 DBMS의 모든 다른 키를 대체 키라고 합니다.
- 반복되는 속성이 없는 슈퍼 키를 후보 키라고 합니다.
- 복합 키는 특정 레코드를 고유하게 인식할 수 있는 많은 필드가 있는 키입니다.
- 테이블의 행을 고유하게 식별하는 여러 속성이 있는 키를 복합 키라고 합니다.
- 각 레코드를 고유하게 식별하는 것을 목표로 하는 인공 키를 대리 키라고 합니다.
- 기본 키는 null 값을 허용하지 않지만 외래 키는 여러 null 값을 허용할 수 있습니다.