logo

DBMS의 외래 키

외래 키는 두 테이블을 함께 연결하거나 둘 사이의 연결을 생성하는 데 사용되는 키이기 때문에 슈퍼 키, 후보 키 또는 기본 키와 다릅니다.

여기 이 섹션에서는 외래 키와 그 사용에 대해 논의하고 외래 키의 작동 및 사용을 이해하는 데 도움이 되는 몇 가지 예를 살펴보겠습니다. 또한 데이터베이스에서의 실제 구현, 즉 테이블에서 외래 키를 생성하고 삭제하는 방법도 살펴보겠습니다.

외래 키란 무엇입니까?

외래 키는 기본 키를 통해 두 테이블을 연결하는 데 사용되는 키입니다. 이는 한 테이블의 열이 다른 테이블의 기본 키 속성을 가리킨다는 의미입니다. 이는 또한 어떤 속성이 기본 키 속성으로 설정되면 다른 테이블에서 외래 키 속성으로 작동한다는 것을 의미합니다. 그러나 외래 키는 기본 키와 아무런 관련이 없다는 것을 알아야 합니다.

외래 키 사용

외래 키의 사용은 단순히 기본 키 속성의 도움을 받아 두 테이블의 속성을 연결하는 것입니다. 따라서 두 관계 사이의 관계를 생성하고 유지하는 데 사용됩니다.

외래 키의 예

외래 키의 작동을 이해하기 위한 예를 살펴보겠습니다.

자바스크립트를 위해 잠자기

두 개의 테이블을 고려하십시오. 학생 그리고 부서 아래 표 구조에 표시된 대로 해당 속성이 있습니다.

DBMS의 외래 키
DBMS의 외래 키

표에서 볼 수 있는 한 가지 속성은 공통적입니다. 스터드_ID , 그러나 두 테이블 모두에 대해 서로 다른 키 제약 조건이 있습니다. Student 테이블에서 Stud_Id 필드는 기본 키 Student 테이블의 다른 모든 필드를 고유하게 식별하기 때문입니다. 반면 Stud_Id는 외래 키 Department 테이블의 속성은 Student 테이블의 기본 키 속성 역할을 하기 때문입니다. 이는 Stud_Id 속성으로 인해 Student 테이블과 Department 테이블이 서로 연결되어 있음을 의미합니다.

아래 그림에서는 두 테이블 간의 관계에 대해 다음과 같은 구조를 볼 수 있습니다.

DBMS의 외래 키

참고: DBMS의 참조 무결성은 외래 키 개념에서 개발되었습니다. 기본 키는 단독으로 존재하는 키이고 외래 키는 항상 다른 테이블의 기본 키를 참조한다는 것이 분명합니다. 여기서 기본 키를 포함하는 테이블은 참조된 테이블 또는 다른 테이블의 상위 테이블로 알려져 있습니다. 외래 키가 있습니다.

외래 키 제약조건 생성

CREATE TABLE에서

다음은 테이블에서 외래 키 생성을 학습할 수 있는 구문입니다.

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) ); 

따라서 이런 방식으로 MYSQL 데이터베이스의 테이블에 대한 외래 키를 설정할 수 있습니다.

JS 배열

SQL 또는 Oracle 서버에서 테이블에 대한 외래 키를 생성하는 경우 다음 구문이 작동합니다.

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) ); 

ALTER 테이블에서

다음은 ALTER TABLE에 외래 키 제약 조건을 생성하는 구문입니다.

 ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id); 

외래 키 삭제

외래 키를 삭제하려면 아래에 설명된 구문을 사용할 수 있습니다.

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

따라서 이런 방식으로 MYSQL 데이터베이스에서 ALTER TABLE을 사용하여 외래 키를 삭제할 수 있습니다.

리눅스 make 명령

기억할 점

외래 키를 삭제할 때 외래 키를 통해 연결된 테이블의 무결성을 관리해야 합니다. 한 테이블을 변경하고 두 테이블의 무결성을 방해하는 경우 두 테이블 간의 부적절한 연결로 인해 특정 오류가 표시될 수 있습니다.

참조 작업

외래 키 테이블 보유자가 수행하는 작업과 연결된 몇 가지 작업이 있습니다.

1) 캐스케이드

상위 테이블(즉, 기본 키를 보유한 테이블)에서 행을 삭제하면 다른 테이블(즉, 외래 키를 보유한 테이블)의 동일한 열도 삭제됩니다. 따라서 해당 작업은 다음과 같이 알려져 있습니다. 종속 .

2) NULL로 설정

이런, 자바에서

이러한 참조 작업은 두 테이블 모두의 참조 무결성을 유지합니다. 상위/참조 테이블에서 참조 행을 조작/삭제하면 하위 테이블(외래 키가 있는 테이블)에서는 해당 참조 행의 값이 NULL로 설정됩니다. 수행된 이러한 참조 작업은 다음과 같이 알려져 있습니다. NULL로 설정 .

3) 기본값으로 설정

이러한 작업은 상위 테이블의 참조 행 값이 업데이트되거나 행이 삭제되고 하위 테이블의 값이 열의 기본값으로 설정될 때 발생합니다.

4) 제한

상위 테이블에서 참조되는 행의 값은 하위 테이블의 외래 키에서 참조하지 않는 한 수정하거나 삭제할 수 없는 제한 제약 조건입니다. 따라서 이는 외래 키의 일반적인 참조 작업입니다.

5) 조치 없음

하둡 튜토리얼

이는 외래 키의 제한 제약 조건이기도 하지만 상위 테이블의 참조 행을 수정하거나 삭제하려고 시도한 후에만 구현됩니다.

6) 트리거

이러한 모든 참조 작업과 기타 참조 작업은 기본적으로 외래 키의 작업이 사용자 정의 트리거와 매우 유사하거나 거의 유사한 트리거로 구현됩니다. 그러나 경우에 따라 적절한 트리거 실행을 보장하기 위해 순서가 지정된 참조 작업이 동등한 사용자 정의 트리거로 대체됩니다.