ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Foreign Key 쉽게 이해하기 : 데이터베이스의 연결고리
    Tool/🐘 DBeaver 설치 및 설정 2024. 12. 4. 22:57
    728x90

    데이터베이스 Foreign Key 쉽게 이해하기

    데이터베이스를 설계하거나 다룰 때 자주 듣는 용어 중 하나가 **Foreign Key(외래 키)**입니다.

    이 개념은 처음 접할 때 조금 생소하게 느껴질 수 있지만, 실제로는 간단한 원리와 활용 방법을 가지고 있습니다.

    오늘은 Foreign Key를 쉽게 이해하고, 이를 활용하는 예제를 살펴보겠습니다.

     

    Foreign Key란?

    Foreign Key는 한 테이블의 열(Column)이 다른 테이블의 기본 키(Primary Key)와 연결되어 있다는 것을 나타냅니다.
    이 연결은 데이터베이스의 두 테이블 사이에 참조 관계를 형성하며, 데이터의 무결성을 유지하는 데 중요한 역할을 합니다.

    쉽게 말해, Foreign Key는 "이 값은 다른 테이블의 특정 값과 연결되어 있어야 해!" 라고 데이터베이스에게 알려주는 약속입니다.

     

    Foreign Key의 역할

    1. 데이터 무결성 유지
      예를 들어, 고객이 주문을 했다고 가정해보세요. 데이터베이스는 해당 주문이 반드시 유효한 고객 ID(Customer ID)와 연결되도록 해야 합니다. Foreign Key는 이런 연결을 강제하여 잘못된 데이터가 입력되는 것을 방지합니다.
    2. 테이블 간 관계 설정
      테이블 간의 관계(1:1, 1:다, 다:다)를 정의합니다. 이 관계를 통해 데이터를 보다 구조적으로 관리할 수 있습니다.

    예제: 쇼핑몰 데이터베이스

    1. 테이블 설계
    쇼핑몰 데이터베이스를 예로 들어봅시다.

    • 고객 정보가 저장된 Customers 테이블
    • 주문 내역이 저장된 Orders 테이블
    -- Customers 테이블
    CREATE TABLE Customers (
        CustomerID INT PRIMARY KEY,
        Name VARCHAR(100),
        Email VARCHAR(100)
    );
    
    -- Orders 테이블
    CREATE TABLE Orders (
        OrderID INT PRIMARY KEY,
        OrderDate DATE,
        CustomerID INT,
        FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
    );

     

    2. 테이블 간 관계 설명

    • Customers 테이블: 고객 정보가 저장된 메인 테이블
    • Orders 테이블: 각 주문 내역과 해당 고객이 연결되어야 하는 테이블
    • Orders.CustomerID는 Customers.CustomerID를 참조합니다.

    즉, 주문(Orders)은 반드시 존재하는 고객(Customers)에만 연결될 수 있습니다.

     

    Foreign Key가 없으면?

    만약 Foreign Key 제약 조건이 없다면, 데이터 무결성이 깨질 가능성이 높아집니다.
    예를 들어:

    • Orders 테이블에 없는 고객 ID를 가진 주문이 추가될 수 있습니다.
    • 고객이 삭제되었는데도 해당 고객의 주문 데이터가 남아 있을 수 있습니다.

    Foreign Key 활용 시 주의사항

    1. 참조 무결성 유지
      • 참조하는 데이터가 변경되거나 삭제되었을 때, Foreign Key를 통해 그 영향을 자동으로 처리할 수 있습니다.
      • 예: ON DELETE CASCADE 또는 ON UPDATE CASCADE 옵션 사용

    ER Diagram

    Foreign Key 설정이 완료되면 ER Diagram 에서 시각화 된 모습을 확인 할 수 있습니다.

     

    728x90

    'Tool > 🐘 DBeaver 설치 및 설정' 카테고리의 다른 글

    Dbeaver 설치부터 RDS 연결까지  (0) 2024.11.25
Designed by Tistory.