키는 관계형 데이터베이스 모델의 기본 요구 사항 중 하나입니다. 테이블에서 튜플(행)을 고유하게 식별하는 데 널리 사용됩니다. 또한 관계형 데이터베이스의 다양한 열과 테이블 간의 관계를 설정하기 위해 키를 사용합니다.
다양한 유형의 데이터베이스 키
- 후보 키
- 기본 키
- 슈퍼 키
- 대체 키
- 외래 키
- 복합 키
후보 키
튜플을 고유하게 식별할 수 있는 최소 속성 집합을 후보 키라고 합니다. 예를 들어 STUDENT 관계의 STUD_NO입니다.
- 최소한의 슈퍼 키입니다.
- 반복되는 데이터가 없는 슈퍼 키를 후보 키라고 합니다.
- 레코드를 고유하게 식별할 수 있는 최소 속성 집합입니다.
- 고유한 값을 포함해야 합니다.
- NULL 값을 포함할 수 있습니다.
- 모든 테이블에는 최소한 하나의 후보 키가 있어야 합니다.
- 테이블에는 여러 개의 후보 키가 있을 수 있지만 기본 키는 하나만 있을 수 있습니다.
- 후보 키의 값은 고유하며 튜플의 경우 null일 수 있습니다.
- 관계에는 둘 이상의 후보 키가 있을 수 있습니다.
예:
자바 목록이 비어 있음
STUD_NO is the candidate key for relation STUDENT.>
테이블 학생
| STUD_NO | 스냅 | 주소 | 핸드폰 |
|---|---|---|---|
| 1 | 샴 | 델리 | 123456789 |
| 2 | 라케쉬 | 콜카타 | 223365796 |
| 삼 | 수라지 | 델리 | 175468965 |
- 후보 키는 단순(단 하나의 속성만 가짐)일 수도 있고 복합일 수도 있습니다.
예:
{STUD_NO, COURSE_NO} is a composite candidate key for relation STUDENT_COURSE.> 테이블 STUDENT_COURSE
| STUD_NO | 선생님_NO | COURSE_NO |
|---|---|---|
| 1 | 001 | C001 |
| 2 | 056 | C005 |
메모: ~ 안에 SQL Null 허용 열이 있는 고유 제약 조건을 서버에 적용합니다. 허용한다 가치 ' 없는 ' 해당 열에 한 번만 . 이것이 바로 여기서 STUD_PHONE 속성이 후보이지만 기본 키 속성에서 'null' 값이 될 수 없는 이유입니다.
기본 키
하나 이상의 후보 키가 있을 수 있으며 그 중 하나를 기본 키로 선택할 수 있습니다. 예를 들어, STUD_NO와 STUD_PHONE은 STUDENT 관계의 후보 키이지만 STUD_NO를 후보 키로 선택할 수 있습니다. 기본 키 (여러 후보 키 중 하나만).
파이썬 chr 함수
- 고유한 열쇠입니다.
- 한 번에 하나의 튜플(레코드)만 식별할 수 있습니다.
- 중복된 값이 없으며 고유한 값이 있습니다.
- NULL일 수 없습니다.
- 기본 키가 반드시 단일 열일 필요는 없습니다. 둘 이상의 열이 테이블의 기본 키가 될 수도 있습니다.
예:
STUDENT table ->학생(STUD_NO, SNAME, ADDRESS, PHONE) , STUD_NO는 기본 키입니다>
테이블 학생
| STUD_NO | 스냅 | 주소 | 핸드폰 |
|---|---|---|---|
| 1 | 샴 | 델리 | 123456789 |
| 2 | 라케쉬 | 콜카타 | 223365796 |
| 삼 | 수라지 | 델리 | 175468965 |
슈퍼 키
튜플을 고유하게 식별할 수 있는 속성 집합을 슈퍼 키라고 합니다. 예를 들어 STUD_NO, (STUD_NO, STUD_NAME) 등이 있습니다. 슈퍼 키는 테이블의 행을 식별하는 단일 또는 다중 키 그룹입니다. NULL 값을 지원합니다.
- 후보 키에 0개 이상의 속성을 추가하면 슈퍼 키가 생성됩니다.
- 후보 키는 슈퍼 키이지만 그 반대의 경우도 마찬가지입니다.
- 슈퍼 키 값은 NULL일 수도 있습니다.
예:
Consider the table shown above. STUD_NO+PHONE is a super key .>

기본키, 후보키, 슈퍼키의 관계
대체 키
기본키가 아닌 후보키를 후보키라고 합니다. 대체 키 .
- 기본 키가 아닌 모든 키를 대체 키라고 합니다.
- 보조 키입니다.
- 두 개 이상의 레코드를 식별하는 두 개 이상의 필드가 포함되어 있습니다.
- 이 값은 반복됩니다.
- 예:- SNAME 및 ADDRESS는 대체 키입니다.
예:
Consider the table shown above. STUD_NO, as well as PHONE both, are candidate keys for relation STUDENT but PHONE will be an alternate key (only one out of many candidate keys).>

기본 키, 후보 키, 대체 키
외래 키
속성이 다른 속성의 값으로 존재하는 값만 취할 수 있는 경우 외래 키 그것이 참조하는 속성에. 참조되는 관계를 참조 관계라고 하고 해당 속성을 참조 속성이라고 합니다. 참조된 관계의 참조된 속성은 해당 관계에 대한 기본 키여야 합니다.
- 하나의 테이블에서 기본 키 역할을 하는 키이며 다음과 같은 역할을 합니다.
다른 테이블의 보조 키입니다. - 한 번에 두 개 이상의 관계(테이블)를 결합합니다.
- 이는 테이블 간의 상호 참조 역할을 합니다.
- 예를 들어, DNO는 DEPT 테이블의 기본 키이고 EMP의 키가 아닙니다.
예:
osi 모델 레이어
Refer Table STUDENT shown above. STUD_NO in STUDENT_COURSE is a foreign key to STUD_NO in STUDENT relation.>
테이블 STUDENT_COURSE
| STUD_NO | 선생님_NO | COURSE_NO |
|---|---|---|
| 1 | 005 | C001 |
| 2 | 056 | C005 |
특정 관계의 기본 키와 달리 외래 키는 NULL일 수 있고 중복된 튜플을 포함할 수도 있습니다. 즉 고유성 제약 조건을 따를 필요가 없다는 점에 주목할 가치가 있습니다. 예를 들어 STUDENT_COURSE 관계의 STUD_NO는 고유하지 않습니다. 첫 번째와 세 번째 튜플에 대해 반복되었습니다. 그러나 STUDENT 관계의 STUD_NO는 기본 키이므로 항상 고유해야 하며 null일 수 없습니다.

기본 키와 외래 키의 관계
복합 키
때로는 테이블에 테이블의 모든 레코드를 고유하게 식별하는 단일 열/속성이 없을 수도 있습니다. 테이블의 행을 고유하게 식별하려면 두 개 이상의 열/속성을 조합하여 사용할 수 있습니다. 드문 경우지만 여전히 중복된 값을 제공할 수 있습니다. 따라서 테이블의 행을 고유하게 식별할 수 있는 최적의 속성 집합을 찾아야 합니다.
- 테이블에 기본 키가 없는 경우 기본 키 역할을 합니다.
- 두 개 이상의 속성을 함께 사용하여 복합 키 .
- 속성을 다르게 조합하면 행을 고유하게 식별하는 측면에서 정확도가 달라질 수 있습니다.
예:
호주의 도시들
FULLNAME + DOB can be combined together to access the details of a student.>

다양한 유형의 키
결론
결론적으로, 관계형 모델은 여러 키를 사용합니다. 후보 키는 고유한 식별을 허용하고, 기본 키는 선택된 식별자 역할을 하며, 대체 키는 다른 선택을 제공하고, 외래 키는 테이블 간의 데이터 무결성을 보장하는 중요한 연결을 만듭니다. 강력하고 효과적인 관계형 데이터베이스를 생성하려면 이러한 키를 신중하게 적용해야 합니다.
관계형 모델의 키 유형에 대한 FAQ
Q.1: DBMS에 키가 필요한 이유는 무엇입니까?
답변:
키는 DBMS의 중요한 측면 중 하나입니다. 키는 테이블에서 고유하게 튜플(행)을 찾는 데 도움이 됩니다. 또한 데이터베이스의 열이나 테이블 간의 다양한 관계를 개발하는 데 사용됩니다.
Q.2: 고유 키란 무엇입니까?
답변:
고유 키는 테이블에서 레코드를 고유하게 정의하는 키입니다. 고유 키는 하나의 NULL 값을 포함할 수 있지만 기본 키에는 NULL 값이 포함되지 않는다는 점에서 기본 키와 다릅니다.
Q.3: 인공키란 무엇인가요?
답변:
인공 키는 기본 키의 모든 속성을 포함하는 속성이 없거나 기본 키가 매우 크고 복잡한 경우에 사용되는 키입니다.