> 데이터 베이스 > MySQL 튜토리얼 > DBMS의 기본 키와 외래 키의 차이점

DBMS의 기본 키와 외래 키의 차이점

青灯夜游
풀어 주다: 2019-01-24 16:31:00
원래의
4847명이 탐색했습니다.

키는 DBMS의 중요한 부분으로, 스키마의 테이블 간 관계를 식별하고 설정하는 데 사용됩니다. 다음 기사에서는 DBMS의 두 가지 매우 중요한 키, 즉 기본 키와 외래 키를 소개하고 기본 키와 외래 키의 차이점을 소개합니다. 도움이 되길 바랍니다.

DBMS의 기본 키와 외래 키의 차이점

DBMS의 기본 키

기본 키는 관계의 튜플을 고유하게 정의합니다. 관계의 단일 속성일 수도 있고 관계의 속성 집합일 수도 있습니다. 기본 키 속성의 값은 변경되지 않거나 거의 변경되지 않아야 합니다. 이는 주체이기 때문에 데이터베이스의 모든 레코드를 식별하기 위한 것입니다. 기본 키의 속성 값이 변경되면 혼란이 발생합니다. [동영상 튜토리얼 추천: MySQL 튜토리얼]

모든 관계에는 기본 키가 하나만 있을 수 있습니다. 기본 키는 기본적으로 클러스터 인덱싱됩니다. 즉, 테이블의 모든 튜플은 기본 키 속성 값을 기준으로 정렬됩니다. 임시 테이블에 기본 키 제약 조건을 정의할 수 있습니다. 쿼리 실행 중에 생성된 중간 테이블을 임시 테이블이라고 합니다.

DBMS의 외래 키

외래 키는 다른 관계의 기본 키를 참조하는 키입니다. 해당 속성의 관계 R1이 다른 관계 R2의 기본 키를 갖는 경우 해당 속성을 외래 키라고 합니다. 관계의 키 R1 키. 외래 키를 포함하는 관계 R1은 관계 R2의 기본 키를 참조하므로 참조 관계라고 하고, 관계 R2를 참조 관계라고 합니다.

기본 키와 달리 외래 키는 관계에서 레코드의 작업을 명시적으로 식별하지 않기 때문에 NULL 값을 허용할 수 있습니다. 마찬가지로 외래 키도 중복 값을 허용합니다.

관계에는 여러 관계의 기본 키인 서로 다른 속성이 있을 수 있으므로 여러 외래 키가 있을 수 있습니다. 임시 테이블에는 외래 키 제약 조건을 정의할 수 없으며 외래 키는 클러스터형 인덱스 속성이 아닙니다.

기본 키와 외래 키의 주요 차이점

1. 본질적으로 다릅니다.

기본 키는 선택한 후보 키로, 테이블의 외래 키는 기본 키를 참조합니다. 다른 테이블의.

2. NULL 값

기본 키 값은 NULL이 될 수 없습니다. 외래 키는 NULL 값을 허용합니다.

3. 중복 값 ​​

기본 키 속성의 중복 값을 전달하는 기본 키 관계에는 두 개의 튜플이 없습니다. 외래 키의 튜플은 외래 키 속성에 대해 중복된 값을 가질 수 있습니다.

4. 범위

관계에는 기본 키가 하나만 있을 수 있습니다. 관계에는 여러 개의 외래 키가 있을 수 있습니다.

5. 임시 테이블

기본 키 임시 테이블에 기본 키 제약 조건을 정의할 수 있습니다. 외래 키 임시 테이블에는 외래 키 제약 조건을 정의할 수 없습니다.

6. 클러스터형 인덱스

기본적으로 기본 키는 클러스터형 인덱스입니다. 외래 키는 인덱스를 자동으로 클러스터링할 수 없으므로 수동으로 수행해야 합니다.

7. 삽입

기본 키에서는 참조하는 외래 키의 열에 값이 없더라도 기본 키 속성에 값을 삽입할 수 있습니다.

외래 키에서는 참조된 기본 키 열에 값이 없으면 외래 키에 값을 삽입할 수 없습니다.

8. 삭제

기본 키 값을 삭제하기 전에 해당 값이 참조 테이블의 참조 외래 키 열에 여전히 존재하지 않는지 확인하세요. 참조 관계의 참조 기본 키 열에 값이 존재하는지 여부를 걱정하지 않고 외래 키 열에서 값을 삭제할 수 있습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 DBMS의 기본 키와 외래 키의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿