-
Foreign Key 쉽게 이해하기 : 데이터베이스의 연결고리Tool/🐘 DBeaver 설치 및 설정 2024. 12. 4. 22:57728x90
데이터베이스 Foreign Key 쉽게 이해하기
데이터베이스를 설계하거나 다룰 때 자주 듣는 용어 중 하나가 **Foreign Key(외래 키)**입니다.
이 개념은 처음 접할 때 조금 생소하게 느껴질 수 있지만, 실제로는 간단한 원리와 활용 방법을 가지고 있습니다.
오늘은 Foreign Key를 쉽게 이해하고, 이를 활용하는 예제를 살펴보겠습니다.
Foreign Key란?
Foreign Key는 한 테이블의 열(Column)이 다른 테이블의 기본 키(Primary Key)와 연결되어 있다는 것을 나타냅니다.
이 연결은 데이터베이스의 두 테이블 사이에 참조 관계를 형성하며, 데이터의 무결성을 유지하는 데 중요한 역할을 합니다.쉽게 말해, Foreign Key는 "이 값은 다른 테이블의 특정 값과 연결되어 있어야 해!" 라고 데이터베이스에게 알려주는 약속입니다.
Foreign Key의 역할
- 데이터 무결성 유지
예를 들어, 고객이 주문을 했다고 가정해보세요. 데이터베이스는 해당 주문이 반드시 유효한 고객 ID(Customer ID)와 연결되도록 해야 합니다. Foreign Key는 이런 연결을 강제하여 잘못된 데이터가 입력되는 것을 방지합니다. - 테이블 간 관계 설정
테이블 간의 관계(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 활용 시 주의사항
- 참조 무결성 유지
- 참조하는 데이터가 변경되거나 삭제되었을 때, Foreign Key를 통해 그 영향을 자동으로 처리할 수 있습니다.
- 예: ON DELETE CASCADE 또는 ON UPDATE CASCADE 옵션 사용
Foreign Key 설정이 완료되면 ER Diagram 에서 시각화 된 모습을 확인 할 수 있습니다.
728x90'Tool > 🐘 DBeaver 설치 및 설정' 카테고리의 다른 글
Dbeaver 설치부터 RDS 연결까지 (0) 2024.11.25 - 데이터 무결성 유지