기본 키와 외래 키의 차이점

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

  • 기본 키 제약 조건은 관계형 데이터베이스 관리 시스템의 테이블에 있는 모든 행을 고유하게 식별하는 열이고, 외래 키는 두 테이블 간의 관계를 생성하는 열입니다.
  • 기본 키는 null 값을 허용하지 않지만 외래 키는 여러 null 값을 허용할 수 있습니다.
  • 테이블에는 기본 키가 하나만 있을 수 있지만, 외래 키는 여러 개가 있을 수 있습니다.
  • 기본 키 값은 상위 테이블에서 제거할 수 없지만 외래 키 값은 하위 테이블에서 제거할 수 있습니다.
  • 두 행은 기본 키에 대해 동일한 값을 가질 수 없습니다. 반면에 외래 키에는 중복된 값이 포함될 수 있습니다.
  • 외래 키 테이블에 값을 삽입하는 동안 테이블 열에 값을 삽입하는 데에는 제한이 없습니다. 해당 값이 기본 키 열에 있는지 확인하세요.
기본 키와 외래 키의 차이점
기본 키와 외래 키의 차이점

여기에서는 기본키와 외래키의 차이점을 분석하고 장단점을 종합적으로 평가해보겠습니다.

기본 키란 무엇입니까?

기본 키 제약 조건은 관계형 데이터베이스 관리 시스템의 테이블에 있는 모든 행을 고유하게 식별하는 열 또는 열 그룹입니다. 중복될 수 없습니다. 즉, 동일한 값이 테이블에 두 번 이상 표시되어서는 안 됩니다.

테이블에는 기본 키가 두 개 이상 있을 수 없습니다. 그만큼 기본 키 열 또는 테이블 수준에서 정의할 수 있습니다. 복합 기본 키를 생성하는 경우 테이블 수준에서 정의해야 합니다.

기본 키의 예

구문 :

다음은 기본 키의 구문입니다.

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

여기

  • Table_Name은 생성해야 하는 테이블의 이름입니다.
  • Column_Name은 기본 키가 있는 열의 이름입니다.

예:

StudID 롤 아니오 이름 이메일
1 11 남자 이름 가격 abc@gmail.com
2 12 Nick 라이트 xyz@gmail.com
3 13 다나 나단 mno@yahoo.com

위의 예에서 우리는 StudID, Roll No., First Name, Last Name, Email과 같은 열이 있는 학생 테이블을 만들었습니다. StudID는 테이블의 다른 행을 고유하게 식별할 수 있기 때문에 기본 키로 선택되었습니다.

기본 키를 사용하는 이유는 무엇입니까?

수년 동안 데이터베이스 시스템을 다루면서 기본 키를 사용할 때 다음과 같은 단점과 이점을 언급했습니다.

  • 기본 키의 주요 목적은 데이터베이스 테이블의 모든 레코드를 식별하는 것입니다.
  • 다른 사람이 Null 값을 입력하는 것을 허용하지 않을 때 기본 키를 사용할 수 있습니다.
  • 귀하가 기록을 삭제하거나 업데이트하는 경우 데이터 무결성을 보장하기 위해 귀하가 지정한 조치가 취해질 것입니다.
  • 부모 테이블에 대한 삭제 또는 업데이트 작업을 거부하려면 제한 작업을 수행합니다.
  • DBMS 테이블을 물리적으로 구성할 때마다 데이터는 일련의 클러스터형 인덱스로 구성됩니다.

외래 키란 무엇입니까?

외래 키는 두 테이블 간의 관계를 생성하는 열입니다. 외래 키의 목적은 데이터 무결성을 유지하고 엔터티의 서로 다른 두 인스턴스 간 탐색을 허용하는 것입니다. 이는 다른 테이블의 기본 키를 참조하므로 두 테이블 간의 상호 참조 역할을 합니다. 데이터베이스의 모든 관계는 외래 키로 지원되어야 합니다.

외래 키의 예

구문 :

다음은 외래 키의 구문입니다.

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

여기

  • Table Name 매개변수는 생성하려는 테이블의 이름을 나타냅니다.
  • 매개변수 컬럼1, 컬럼2...는 테이블에 추가해야 하는 열을 나타냅니다.
  • 제약조건은 생성 중인 제약조건의 이름을 나타냅니다.
  • 참조는 기본 키가 있는 테이블을 나타냅니다.

예:

부서 코드 부서명
001 과학
002 영어
005 컴퓨터
교사 ID F이름 이름
B002 데이비드 Warner
B017 사라 조셉
B009 마이크 브런턴

위의 예에는 교사와 학교의 부서라는 두 개의 테이블이 있습니다. 그러나 어느 부서에서 어떤 검색이 작동하는지 확인할 방법이 없습니다.

이 테이블에서는 Deptcode의 외래 키를 교사 이름에 추가하여 두 테이블 간의 관계를 만들 수 있습니다.

교사 ID 부서 코드 F이름 이름
B002 002 데이비드 Warner
B017 002 사라 조셉
B009 001 마이크 브런턴

이 개념은 참조 무결성이라고도 합니다.

외래 키를 사용하는 이유는 무엇입니까?

내가 본 바에 따르면 외래 키를 구현하는 중요한 이유는 다음과 같습니다.

  • 외래 키는 상위 테이블의 기본 키를 사용하여 엔터티를 마이그레이션하는 데 도움이 됩니다.
  • A 외래 키 두 개 이상의 테이블을 함께 연결할 수 있습니다.
  • 이는 데이터베이스 데이터를 일관되게 만듭니다.
  • 외래 키를 사용하면 열 또는 열 조합을 상위 테이블의 기본 키와 일치시킬 수 있습니다.
  • SQL 외래 키 제약 조건은 데이터 부모의 참조 무결성이 자식 테이블의 값과 일치하는지 확인하는 데 사용됩니다.

기본 키와 외래 키의 차이점

개인적으로 경험한 것처럼 기본 키와 외래 키의 중요한 차이점을 공유하겠습니다.

기본 키와 외래 키
기본 키와 외래 키
비교 기준 기본 키 외래 키
정의 기본 키 제약 조건은 테이블의 모든 행을 고유하게 식별하는 열 또는 열 그룹입니다. 관계형 데이터베이스 관리 시스템. 외래 키는 두 테이블 간의 관계를 생성하는 열입니다.
Basic 이는 테이블의 레코드를 고유하게 식별하는 데 도움이 됩니다. 다른 테이블의 기본 키인 테이블의 필드입니다.
NULL 기본 키는 null 값을 허용하지 않습니다. 외래 키는 여러 개의 null 값을 허용할 수 있습니다.
색인 기본 키는 클러스터형 인덱스이며, DBMS 테이블의 데이터는 물리적으로 클러스터형 인덱스의 시퀀스에 따라 구성됩니다. 외래 키는 클러스터형 인덱스나 비클러스터형 인덱스를 자동으로 생성할 수 없습니다.
카운트 테이블에는 단일 기본 키가 있을 수 있습니다. 한 테이블에 여러 개의 외래 키를 가질 수 있습니다.
삭제 기본 키 값은 상위 테이블에서 제거할 수 없습니다. 외래 키 값은 하위 테이블에서 제거될 수 있습니다.
임시 테이블 임시 테이블에 기본 키를 암시적으로 정의할 수 있습니다. 로컬 또는 전역 임시 테이블에는 외래 키를 정의할 수 없습니다.
관계 기본 키는 클러스터형 인덱스입니다. 기본적으로 클러스터형 인덱스가 아닙니다.
복사 두 행은 기본 키에 대해 동일한 값을 가질 수 없습니다. 외래 키에는 중복된 값이 포함될 수 있습니다.
삽입 테이블 열에 값을 삽입하는 데에는 제한이 없습니다. 외래 키 테이블에 값을 삽입하는 동안 해당 값이 기본 키 열에 있는지 확인하세요.

기본 키와 외래 키 중에서 선택하는 방법

우리가 살펴본 바에 따르면 기본 키는 테이블 항목을 고유하게 식별하고 외래 키는 테이블 전체에서 이러한 항목을 연결합니다. 둘 다 데이터 무결성을 유지하고 효율적인 데이터 검색을 촉진하는 데 중요합니다.