[sql] 뷰의 기본키와 외래키

데이터베이스 시스템에서 는 하나 이상의 기본 테이블을 기반으로 생성된 가상 테이블을 말합니다. 뷰를 사용하면 복잡한 쿼리를 간단하게 작성할 수 있고, 데이터에 대한 접근을 제어할 수 있습니다. 따라서 뷰에 대한 기본키(primary key)와 외래키(foreign key)를 지정하는 것이 중요합니다.

뷰의 기본키

뷰는 기본 테이블을 기반으로 만들어지므로, 뷰의 기본키는 기본 테이블의 기본키에 의해 결정됩니다. 즉, 뷰가 기본테이블의 기본키 칼럼을 포함하고 있다면, 해당 칼럼으로 뷰의 기본키를 설정할 수 있습니다.

예를 들어, employees 테이블과 departments 테이블이 있을 때, employeesdepartments 테이블을 결합한 뷰를 생성한다면, 뷰의 기본키는 employees 테이블과 departments 테이블의 기본키를 포함해야 합니다.

CREATE VIEW employee_department_view AS
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

위의 예시에서는 employee_id를 기본키로 설정할 수 있습니다.

뷰의 외래키

뷰는 기본 테이블과 관계를 맺고 있는 경우가 많습니다. 이때 뷰에서 기본테이블의 외래키를 표현하고자 할 때, 뷰에 외래키 제약 조건을 추가할 수 있습니다.

ALTER VIEW employee_department_view 
ADD FOREIGN KEY (department_id) REFERENCES departments(department_id);

위의 예시에서는 employee_department_viewdepartment_id 칼럼이 departments 테이블의 department_id 칼럼을 참조하도록 외래키 제약 조건을 추가했습니다.

뷰를 사용함으로써 테이블 간의 관계와 데이터에 대한 접근 제어를 보다 효과적으로 할 수 있지만, 뷰에는 자체적인 데이터가 없으므로 외래키를 설정할 경우에는 해당 기본테이블의 제약조건을 준수해야 합니다.

뷰를 통해 데이터를 간편하게 조회하고 조작할 수 있지만, 기본 테이블과의 관계를 명확히 이해하고, 뷰의 구조를 설계할 때 이러한 기본테이블의 특성을 고려해야 합니다.