[면접 준비] Primary Key, Foreign Key에 대해 설명해주세요 (24/03/29)
2024. 3. 29. 09:48ㆍ공부/면접 준비
Primary Key
기본키는 관계형 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는데 사용되는 필드 또는 필드의 집합 입니다.
- 테이블 내에서 각 레코드는 오직 하나의 Primary Key 값을 가져야 합니다. (user테이블의 경우, id)
- Primary Key는 테이블에서 기본 식별자 역할을 하며, 빠른 검색을 가능케 합니다.
- 테이블 생성 시 지정되며, 변경이 어렵습니다.
Foreign Key
외래키는 관계형 데이터베이스 테이블에서 한 테이블의 필드로 다른 테이블의 Primary Key 값을 가리키는데 사용되는 필드 입니다.
- Foreing Key를 사용하여 여러 테이블을 연결하고, 데이터간의 관계를 정의할 수 있다. 이를 통해 데이터의 무결성을 유지하고 참조 무결성을 강제할 수 있다.
기본 키외래 키
Primary Key | Foreign Key |
기본 키 제약 조건은 테이블의 모든 행을 고유하게 식별하는 열 또는 열 그룹입니다. 관계형 데이터베이스 관리 시스템 | 외래 키는 두 테이블 간의 관계를 생성하는 열입니다. |
이는 테이블의 레코드를 고유하게 식별하는 데 도움이 됩니다. | 다른 테이블의 기본 키인 테이블의 필드입니다. |
Not Nullable | Nullable |
기본 키는 clustered 인덱스와 DBMS 테이블의 데이터는 물리적으로 순서대로 구성됩니다. cluster에드 인덱스. | 외래 키는 자동으로 인덱스를 생성할 수 없습니다. cluster에드 또는 비-cluster에디션. |
테이블에는 단일 기본 키가 있을 수 있습니다. | 한 테이블에 여러 개의 외래 키를 가질 수 있습니다. |
기본 키 값은 상위 테이블에서 제거할 수 없습니다. | 외래 키 값은 하위 테이블에서 제거될 수 있습니다. |
임시 테이블에 기본 키를 암시적으로 정의할 수 있습니다. | 로컬 또는 전역 임시 테이블에는 외래 키를 정의할 수 없습니다. |
기본 키는 cluster에드 인덱스. | 기본적으로는 cluster에드 인덱스. |
두 행은 기본 키에 대해 동일한 값을 가질 수 없습니다. | 외래 키에는 중복된 값이 포함될 수 있습니다. |
테이블 열에 값을 삽입하는 데에는 제한이 없습니다. | 외래 키 테이블에 값을 삽입하는 동안 해당 값이 기본 키 열에 있는지 확인하세요. |
기본 키를 사용하는 이유는 무엇입니까?
기본 키 사용의 단점/이점은 다음과 같습니다.
- 기본 키의 주요 목적은 데이터베이스 테이블의 모든 레코드를 식별하는 것입니다.
- 다른 사람이 Null 값을 입력하는 것을 허용하지 않을 때 기본 키를 사용할 수 있습니다.
- 기록을 삭제하거나 업데이트하는 경우 데이터 무결성을 확인하기 위해 지정한 조치가 수행됩니다.
- 제한 수행 opera삭제 또는 업데이트를 거부하려면 opera상위 테이블에 대한 설명입니다.
- 데이터는 다음과 같은 순서로 구성됩니다. clusterDBMS 테이블을 물리적으로 구성할 때마다 인덱스를 생성합니다.
외래 키를 사용하는 이유는 무엇입니까?
외래 키를 사용하는 중요한 이유는 다음과 같습니다.
- 외래 키는 상위 테이블의 기본 키를 사용하여 엔터티를 마이그레이션하는 데 도움이 됩니다.
- 외래 키를 사용하면 두 개 이상의 테이블을 함께 연결할 수 있습니다.
- 이는 데이터베이스 데이터를 일관되게 만듭니다.
- 외래 키는 상위 테이블의 기본 키와 열 또는 열 조합을 일치시키는 데 사용될 수 있습니다.
- SQL 외래 키 제약 조건은 데이터 상위의 참조 무결성이 하위 테이블의 값과 일치하는지 확인하는 데 사용됩니다.
<답변>
Primary Key는 테이블에서 각 레코드를 식별하기 위한 고유의 필드 또는 필드값의 모임 입니다.
기본키를 사용해 빠른 검색과 레코드간의 식별이 가능합니다.
Foreign Key는 테이블간의 연결을 위해 다른 테이블의 Primary Key를 가리키는데 사용되는 필드값 입니다.
외래키를 사용하면 데이터간의 관계를 정의하고, 데이터의 무결성을 유지하고 참조 무결성을 강제할 수 있습니다.
'공부 > 면접 준비' 카테고리의 다른 글
[면접 준비] ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? (24/04/01) (0) | 2024.04.01 |
---|---|
[면접 준비] 대용량 트래픽 발생 시 어떻게 대응해야 하나요? (24/04/01) (1) | 2024.04.01 |
[면접 준비] RDBMS의 정규화에 대해 설명해주세요 (24/03/29) (0) | 2024.03.29 |
[HTTP] GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요. (24/03/2 (1) | 2024.03.28 |
[HTTP] HTTP 메서드에 관해 아는대로 설명해주세요. (24/03/28) (0) | 2024.03.28 |