외래 키 제약 조건을 활용한 데이터 무결성 검사 연습문제
데이터베이스에서 외래 키 제약 조건을 사용하면 데이터의 무결성을 강화할 수 있습니다. 외래 키 제약 조건을 이해하고, 실제로 데이터 무결성을 검사하는 연습을 해보겠습니다.
문제
주어진 데이터베이스 스키마를 사용하여 다음 질문에 답하시오.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(id)
);
users
테이블의id
컬럼은 어떤 제약 조건을 가지고 있는가?orders
테이블의user_id
컬럼은 어떤 제약 조건을 가지고 있는가?- 유효하지 않은
user_id
값을 가진orders
테이블의 행을 확인하는 쿼리를 작성하시오.
답안
users
테이블의id
컬럼은PRIMARY KEY
제약 조건을 가지고 있습니다. 이는id
컬럼을 테이블의 주키(primary key)로 사용하며, 중복값이나 NULL 값을 허용하지 않습니다.orders
테이블의user_id
컬럼은FOREIGN KEY
제약 조건을 가지고 있습니다. 이는user_id
컬럼을users
테이블의id
컬럼과 연결하며,users
테이블에 있는id
값만이 허용됩니다.- 다음은 유효하지 않은
user_id
값을 가진orders
테이블 행을 확인하기 위한 쿼리입니다.
SELECT *
FROM orders
WHERE user_id NOT IN (
SELECT id
FROM users
);
이 쿼리는 orders
테이블에서 user_id
가 users
테이블의 id
컬럼 값과 일치하지 않는 레코드를 반환합니다.
해설
외래 키 제약 조건을 사용하여 데이터 무결성을 검사하는 방법에 대해 알아보았습니다. 데이터베이스에서 외래 키 제약 조건을 활용함으로써 올바른 데이터의 관계를 유지하고, 잘못된 데이터의 등록을 방지할 수 있습니다. 이를 통해 데이터의 일관성과 신뢰성을 유지할 수 있게 됩니다.