[sql] SQL 데이터베이스 테이블 관계 설정

관계형 데이터베이스에서 테이블 간의 관계 설정은 중요한 작업입니다. 테이블 간의 관계를 설정함으로써 데이터 정합성을 유지하고, 데이터베이스의 성능을 최적화할 수 있습니다.

1. 기본 키 및 외래 키

각 테이블은 기본 키(primary key)를 가지고 있어야 합니다. 기본 키는 테이블에서 각 행(row)을 고유하게 식별하는 역할을 합니다. 기본 키는 다른 테이블과의 관계를 구축할 때 사용됩니다.

CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

위의 예제에서 users 테이블의 id 필드가 기본 키로 설정되어 있고, orders 테이블의 user_id 필드는 users 테이블의 id 필드를 외래 키(foreign key)로 참조하고 있습니다.

2. 관계 유형

관계형 데이터베이스에서는 주로 일대다(One-to-Many) 및 다대다(Many-to-Many) 관계를 설정합니다. 일대다 관계는 한 테이블의 레코드가 다른 테이블의 여러 레코드와 관련되어 있을 때 사용되며, 다대다 관계는 두 테이블 간의 복수 대 복수 관계를 나타냅니다.

예를 들어, 하나의 사용자는 여러 주문을 생성할 수 있으므로 users 테이블과 orders 테이블은 일대다 관계를 가집니다.

3. 관계 설정

테이블 간의 관계는 FOREIGN KEY 제약 조건을 사용하여 설정됩니다. FOREIGN KEY 제약 조건을 사용하면 다른 테이블의 기본 키를 참조하여 외래 키 관계를 구성할 수 있습니다.

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

위의 예제에서 ON DELETE CASCADE는 부모 테이블에서 행이 삭제될 때 자식 테이블의 해당 행도 함께 삭제되도록 설정되었습니다.

테이블 간의 관계 설정은 데이터베이스 설계의 핵심 부분이며, 데이터 정합성과 일관성을 유지하는 데 중요한 역할을 합니다.

참고 자료

위의 내용은 SQL 데이터베이스 테이블 관계 설정에 대한 기본적인 내용을 다루었습니다. 향후 상세한 내용을 고려할 때, 추가적인 정보가 필요할 수 있습니다.