기본 키와 외래 키의 차이점

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

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

키란 무엇입니까?

키는 관계(테이블)에서 행(튜플)을 식별하는 데 도움이 되는 속성입니다. 이를 통해 두 테이블 간의 관계를 찾을 수 있습니다. 키를 사용하면 해당 테이블에 있는 하나 이상의 열을 조합하여 테이블의 행을 고유하게 식별할 수 있습니다. 데이터베이스 키는 테이블에서 고유한 레코드나 행을 찾는 데에도 유용합니다.

기본 키란 무엇입니까?

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

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

외래 키란 무엇입니까?

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

기본 키와 외래 키의 차이점

기본 키와 외래 키의 중요한 차이점은 다음과 같습니다.

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

데이터베이스 관계란 무엇입니까?

데이터베이스 관계는 조인 문을 사용하여 생성된 하나 이상의 테이블 간의 연결입니다. 데이터베이스에서 데이터를 효율적으로 검색하는 데 사용됩니다. 관계에는 주로 세 가지 유형이 있습니다. 1) 일대일, 2) 일대다, 3) 다대다.

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

기본 키 사용의 단점/이점은 다음과 같습니다.

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

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

외래 키를 사용하는 중요한 이유는 다음과 같습니다.

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

기본 키의 예

구문 :

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

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

여기

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

예:

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

위의 예에서는 StudID, Roll No, First Name, Last Name 및 E와 같은 열이 있는 학생 테이블을 만들었습니다.mail. StudID는 테이블의 다른 행을 고유하게 식별할 수 있으므로 기본 키로 선택됩니다.

외래 키의 예

구문 :

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

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의 외래 키를 Teacher 이름에 추가하면 두 테이블 간의 관계를 만들 수 있습니다.

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

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