외래 키 제약 조건을 활용한 데이터 무결성 검사 연습문제

데이터베이스에서 외래 키 제약 조건을 사용하면 데이터의 무결성을 강화할 수 있습니다. 외래 키 제약 조건을 이해하고, 실제로 데이터 무결성을 검사하는 연습을 해보겠습니다.

문제

주어진 데이터베이스 스키마를 사용하여 다음 질문에 답하시오.

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)
);
  1. users 테이블의 id 컬럼은 어떤 제약 조건을 가지고 있는가?
  2. orders 테이블의 user_id 컬럼은 어떤 제약 조건을 가지고 있는가?
  3. 유효하지 않은 user_id 값을 가진 orders 테이블의 행을 확인하는 쿼리를 작성하시오.

답안

  1. users 테이블의 id 컬럼은 PRIMARY KEY 제약 조건을 가지고 있습니다. 이는 id 컬럼을 테이블의 주키(primary key)로 사용하며, 중복값이나 NULL 값을 허용하지 않습니다.
  2. orders 테이블의 user_id 컬럼은 FOREIGN KEY 제약 조건을 가지고 있습니다. 이는 user_id 컬럼을 users 테이블의 id 컬럼과 연결하며, users 테이블에 있는 id 값만이 허용됩니다.
  3. 다음은 유효하지 않은 user_id 값을 가진 orders 테이블 행을 확인하기 위한 쿼리입니다.
SELECT *
FROM orders
WHERE user_id NOT IN (
    SELECT id
    FROM users
);

이 쿼리는 orders 테이블에서 user_idusers 테이블의 id 컬럼 값과 일치하지 않는 레코드를 반환합니다.

해설

외래 키 제약 조건을 사용하여 데이터 무결성을 검사하는 방법에 대해 알아보았습니다. 데이터베이스에서 외래 키 제약 조건을 활용함으로써 올바른 데이터의 관계를 유지하고, 잘못된 데이터의 등록을 방지할 수 있습니다. 이를 통해 데이터의 일관성과 신뢰성을 유지할 수 있게 됩니다.