안녕하세요😊 코드카인 여러분!
오늘은 데이터베이스의 가장 기본적이면서도 중요한 개념인 **Primary Key(PK)**와 **Foreign Key(FK)**에 대해 알아볼 거예요. 처음 데이터베이스를 배우는 분들은 이 두 가지를 잘 이해하면 테이블 설계와 관계 정의가 훨씬 쉬워질 거예요.
📌 Primary Key(PK): 데이터베이스의 주민등록번호
Primary Key(PK)는 각 레코드(행)를 고유하게 식별하는 열이에요. 예를 들어 주민등록번호는 사람을 고유하게 구분할 수 있죠? 데이터베이스에서도 마찬가지로, 테이블에서 한 행을 고유하게 식별할 수 있도록 하는 역할이 PK입니다.
특징
- 고유성: 각 값은 중복될 수 없어요.
- Null 불가: PK는 반드시 값을 가져야 해요.
- 단일 또는 복합: PK는 하나의 열(단일 키)로도, 여러 열을 조합(복합 키)해서도 만들 수 있어요.
예시
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
Age INT
);
위 예시에서 StudentID는 PK로 설정되었기 때문에 각 학생은 고유한 StudentID를 가져야 해요.
📌 Foreign Key(FK): 데이터베이스의 가족관계도
Foreign Key(FK)는 다른 테이블의 Primary Key를 참조하는 열이에요. 가족관계도를 생각해보면, 형제의 이름이 부모님을 통해 연결되듯, Foreign Key는 테이블 간의 관계를 정의하는 다리 역할을 해요.
특징
- 참조 무결성: FK는 참조하는 테이블에 반드시 존재하는 값을 가져야 해요.
- 관계 정의: 테이블 간의 1:1, 1:다, 다:다 관계를 설정할 수 있어요.
예시
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
StudentID INT,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
여기서 Orders 테이블의 StudentID는 Students 테이블의 StudentID를 참조해요. 즉, 주문을 한 학생의 정보를 연결할 수 있게 되는 거죠.
🌟 PK와 FK의 관계
PK와 FK는 데이터베이스에서 서로 뗄 수 없는 관계예요. 마치 집 주소와 우편번호처럼, PK는 특정 데이터를 고유하게 식별하고 FK는 이를 연결해서 데이터의 흐름을 만듭니다.
예제: 학생과 주문 테이블의 관계
- 학생(Student)이 주문(Orders)을 할 때, StudentID가 PK로 사용돼요.
- Orders 테이블에서는 StudentID를 FK로 참조해 누가 주문했는지 알 수 있죠.
💻 실전 예제: PK와 FK 설정하기
아래는 PK와 FK를 설정한 테이블과 데이터를 추가하는 SQL 코드예요.
-- 학생 테이블 생성
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
Age INT
);
-- 주문 테이블 생성
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
StudentID INT,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
-- 데이터 추가
INSERT INTO Students (StudentID, Name, Age) VALUES (1, 'Alice', 21);
INSERT INTO Students (StudentID, Name, Age) VALUES (2, 'Bob', 23);
INSERT INTO Orders (OrderID, StudentID) VALUES (101, 1); -- Alice의 주문
INSERT INTO Orders (OrderID, StudentID) VALUES (102, 2); -- Bob의 주문
😊 PK와 FK를 이해해야 하는 이유
- 데이터 무결성 보장: PK와 FK는 데이터의 정합성을 유지하는 데 필수적이에요.
- 관계형 데이터베이스 설계의 핵심: 테이블 간의 관계를 명확히 정의할 수 있어요.
- 효율적 데이터 관리: 데이터를 체계적으로 저장하고 검색할 수 있게 해줘요.
😊 마무리하며..
PK와 FK는 데이터베이스 설계에서 꼭 필요한 기초 개념이에요. 처음에는 약간 헷갈릴 수 있지만, 주민등록번호와 가족관계도로 비유해 생각하면 훨씬 쉽게 이해할 수 있어요. 데이터베이스 설계의 기초를 단단히 다져, 복잡한 데이터 구조도 자신 있게 다룰 수 있길 응원합니다! 🚀
'데이터베이스 > DB 필수지식!' 카테고리의 다른 글
온라인 세상을 움직이는 숨은 영웅, DBMS 완벽 가이드 - 코드카인 티스토리 (0) | 2024.12.31 |
---|---|
SNS 설계도? ER 다이어그램으로 데이터 관계 쉽게 이해하기 - 코드카인 티스토리 (0) | 2024.12.31 |
당신의 DB가 엉망진창인 이유? 정규화를 모르면 답이 없다! - 코드카인 티스토리 (0) | 2024.12.23 |
데이터베이스와 친구 되기! PL/SQL로 자동화의 세계를 열다 - 코드카인 티스토리 (0) | 2024.12.20 |
[데이터베이스] 권한과 역할의 차이, 초보 개발자를 위한 완벽 가이드 (0) | 2024.12.19 |