외래키(Foreign Key)는 데이터베이스에서 테이블 간의 관계를 정의하고 데이터의 무결성을 보장하기 위해 사용되는 중요한 제약 조건입니다.
아래에 외래키의 역할과 외래키를 설정했을 때와 안 했을 때의 차이를 설명해드릴게요.
| 항목 | 외래키 설정 O | 외래키 설정 X |
| 관계 명시 | 명확하게 관계 설정됨 (ERD 가능) | 논리적 관계만 존재 (개발자 인지 필요) |
| 무결성 보장 | 데이터 정합성 강제됨 | 잘못된 참조 삽입 가능 (고아 데이터 발생 가능) |
| 삭제/수정 연쇄 제어 | CASCADE, RESTRICT 등 활용 가능 | 직접 코드로 처리해야 함 |
| 쿼리 이해도 | JOIN 관계 명확해짐 | JOIN 구조 파악 어려움 |
| 유지보수성 | 구조적 안정성 확보 | 예기치 못한 버그 가능성↑ |
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
→ orders에 삽입 시, 존재하지 않는 customer_id는 오류 발생
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT
);
→ customer_id = 9999 같은 존재하지 않는 ID도 삽입 가능 → 데이터 불일치 가능성↑
| sqlite에서 평균값 구하는 함수는? (0) | 2025.06.17 |
|---|---|
| sqlite 소수점 자리수 반올림하는 방법은? (0) | 2025.06.17 |
| 외래키와 인덱스 관계는? (0) | 2025.05.12 |
| 쿼리에서 group concat 함수 사용하는 방법은? (0) | 2025.04.17 |
| SQL 쿼리에서 문자열 검색 조건 REGEXP 사용하는 방법은? (0) | 2025.04.13 |