데이터베이스/DB 필수지식!

초보자를 위한 데이터베이스 설계 핵심: Primary Key와 Foreign Key 쉽게 배우기 - 코드카인 티스토리

CodeCaine Explorer 2024. 12. 31. 15:29
728x90
반응형
SMALL

안녕하세요😊 코드카인 여러분!

오늘은 데이터베이스의 가장 기본적이면서도 중요한 개념인 **Primary Key(PK)**와 **Foreign Key(FK)**에 대해 알아볼 거예요. 처음 데이터베이스를 배우는 분들은 이 두 가지를 잘 이해하면 테이블 설계와 관계 정의가 훨씬 쉬워질 거예요.


📌 Primary Key(PK): 데이터베이스의 주민등록번호

Primary Key(PK)는 각 레코드(행)를 고유하게 식별하는 열이에요. 예를 들어 주민등록번호는 사람을 고유하게 구분할 수 있죠? 데이터베이스에서도 마찬가지로, 테이블에서 한 행을 고유하게 식별할 수 있도록 하는 역할이 PK입니다.

특징

  1. 고유성: 각 값은 중복될 수 없어요.
  2. Null 불가: PK는 반드시 값을 가져야 해요.
  3. 단일 또는 복합: 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는 테이블 간의 관계를 정의하는 다리 역할을 해요.

특징

  1. 참조 무결성: FK는 참조하는 테이블에 반드시 존재하는 값을 가져야 해요.
  2. 관계 정의: 테이블 간의 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는 이를 연결해서 데이터의 흐름을 만듭니다.

예제: 학생과 주문 테이블의 관계

  1. 학생(Student)이 주문(Orders)을 할 때, StudentID가 PK로 사용돼요.
  2. 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를 이해해야 하는 이유

  1. 데이터 무결성 보장: PK와 FK는 데이터의 정합성을 유지하는 데 필수적이에요.
  2. 관계형 데이터베이스 설계의 핵심: 테이블 간의 관계를 명확히 정의할 수 있어요.
  3. 효율적 데이터 관리: 데이터를 체계적으로 저장하고 검색할 수 있게 해줘요.

😊 마무리하며..

PK와 FK는 데이터베이스 설계에서 꼭 필요한 기초 개념이에요. 처음에는 약간 헷갈릴 수 있지만, 주민등록번호와 가족관계도로 비유해 생각하면 훨씬 쉽게 이해할 수 있어요. 데이터베이스 설계의 기초를 단단히 다져, 복잡한 데이터 구조도 자신 있게 다룰 수 있길 응원합니다! 🚀

728x90
반응형
SMALL