foreign key 예제

참고: 실제로 외래 키는 다른 테이블의 고유 열(반드시 기본 키일 필요는 아님)을 가리키는 경우 다른 테이블의 기본 키 태그와는 아무 관련이 없습니다. 따라서 외래 키의 올바른 정의는 외래 키가 다른 테이블의 후보 키를 가리키는 테이블의 열입니다. 외부 키는 저장 프로시저 문으로 정의할 수 있습니다. [추가 설명 필요] 예: 아래 예에서 Course_Register 테이블의 Stu_Id 열은 학생 테이블의 기본 키를 가리키는 외래 키입니다. 트랜잭션 격리와 함께 나타나는 또 다른 중요한 제한 사항: 행에 대한 변경 내용은 트랜잭션이 „볼 수 없는“ 데이터에 의해 참조되므로 행이 완전히 계단식으로 배열되지 않을 수 있으므로 행에 계단식으로 배열되지 않을 수 있습니다. 예: 트랜잭션이 고객 계정의 번호를 다시 매기려고 시도하는 동안 동시 트랜잭션이 동일한 고객에 대해 새 송장을 만들려고 시도하는 경우입니다. CASCADE 규칙은 트랜잭션이 볼 수 있는 모든 송장 행을 수정하여 번호가 다시 매겨진 고객 행과 일관되게 유지하지만 다른 트랜잭션에 도달하지 못하여 데이터를 수정합니다. 데이터베이스는 두 트랜잭션이 커밋될 때 일관된 데이터를 보장할 수 없기 때문에 그 중 하나가 강제로 롤백되어야 합니다(종종 선착순으로). 이 페이지에는 „product_order“ 테이블에 다른 두 테이블에 대한 외래 키가 있는 예제가 있습니다. 하나의 외래 키는 „제품“ 테이블에서 두 열 인덱스를 참조합니다. 다른 하나는 „고객“ 테이블의 단일 열 인덱스를 참조합니다.

외래 키는 데이터베이스 디자인에서 중요한 역할을 합니다. 데이터베이스 디자인의 중요한 부분 중 하나는 외래 키를 사용하여 한 테이블에서 다른 테이블로 참조하는 참조를 사용하여 실제 엔터티 간의 관계가 데이터베이스에 반영되도록 하는 것입니다. [9] 데이터베이스 디자인의 또 다른 중요한 부분은 테이블이 분리되고 외래 키를 사용하여 테이블을 재구성할 수 있도록 하는 데이터베이스 정규화입니다. [10] 외래 키는 좋은 데이터베이스 관리에 필수적입니다. 이제 사용의 고급 예제를 살펴보는 데 관심이 있으시면 여기에서 외래 키 절 예제 섹션을 참조하십시오.