DBMS에서의 관계(Relationship)란?
DBMS에서 관계(Relationship)란 두 엔티티(Entity) 사이의 연관성을 의미합니다. 예를 들어 직원-부서(Employee-Department), 학생-강좌(Student-Course)처럼 서로 다른 엔티티들이 어떻게 서로 연결되어 있는지를 나타내는 개념입니다.

엔티티 간의 관계는 대응 방식에 따라 크게 세 가지 유형으로 나눌 수 있습니다.
- 일대일(1:1) — 하나의 인스턴스가 다른 엔티티의 단 하나의 인스턴스와 대응
- 일대다(1:N) — 하나의 인스턴스가 여러 개의 인스턴스와 대응
- 다대다(M:N) — 양쪽 모두 여러 개의 인스턴스와 대응
일대일(One-to-One) 관계의 정의
DBMS에서 일대일(One-to-One) 관계는 한 엔티티의 인스턴스가 다른 엔티티의 인스턴스와 정확히 하나씩 대응되는 관계를 말합니다. 즉, A 엔티티의 하나의 레코드는 B 엔티티의 단 하나의 레코드와만 연결되며, 그 반대의 경우도 마찬가지입니다.
이러한 관계는 다음과 같이 표현할 수 있습니다.

예시: 직원과 사원증(ID 카드)
일대일 관계를 이해하기 가장 좋은 예는 직원(Employee)과 사원증(ID 카드)의 관계입니다.
회사에서 한 명의 직원에게는 고유한 ID 카드가 하나씩 발급됩니다. 동시에 하나의 ID 카드는 오직 한 명의 직원에게만 속합니다. 따라서 직원과 ID 카드 사이에는 명확한 일대일 관계가 성립합니다.
여기서 직원(Employee)과 ID 카드(ID_Card)가 바로 엔티티에 해당하며, 두 엔티티는 '발급된다'는 관계로 연결됩니다.

데이터베이스에서의 구현 방식
실제 데이터베이스 설계에서 일대일 관계는 주로 다음과 같은 방식으로 구현됩니다.
- 두 테이블 중 한쪽에 다른 쪽의 기본키를 외래키(Foreign Key)로 저장하고, 해당 컬럼에 UNIQUE 제약조건을 부여하는 방법
- 양쪽 테이블이 서로의 기본키를 공유하도록 설계하는 방법
이처럼 일대일 관계는 데이터를 분리하여 저장함으로써 보안성을 높이거나, 자주 사용하지 않는 컬럼을 별도로 관리할 때 유용하게 활용됩니다.