반응형
👭 테이블 관계
테이블 관계는 일반적으로
일대일 (1:1)
,일대다(1:N)1
,다대다(N:M)
세가지로 나눌 수 있습니다.
1:1 관계
- 한
테이블
의 각 행이 다른테이블
의 한 행과 관련이 있는 경우입니다. - 예를 들어,
사용자 정보
와 해당사용자의 프로필
정보가 각각 다른 테이블에 저장되어 있을 때, 두 테이블 간에1:1 관계
가 있을 수 있습니다. Customer1 테이블
의CustomerID
(PK)가CreditCard1 테이블
의CustomerID
(FK)와 1:1 매핑이 됨으로1:1 관계
입니다.
🔠1:1 테이블 생성 DDL
-- Customer1 테이블 생성 1:1
CREATE TABLE Customer1 (
CustomerID INT PRIMARY KEY,
Name VARCHAR(255)
);
CREATE TABLE CreditCard1 (
CardID INT PRIMARY KEY,
CustomerID INT UNIQUE NOT NULL, -- FK UNIQUE 설정
CardNumber VARCHAR(16),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
1:N 관계
- 한
테이블
의 한 행이 다른테이블
의 여러 행과 관련이 있는 경우입니다. 예를 들어,부서 테이블
과직원 테이블
이 있을 때,하나의 부서
에여러 직원
이 속할 수 있으므로1:N 관계
가 있을 수 있습니다. Customer2 테이블
의CustomerID
(PK)가CreditCard2 테이블
의CustomerID
(FK)와 1:N 매핑이 됨으로1:N 관계
입니다.
🔠1:N 테이블 생성 DDL
-- Customer2 테이블 생성 1:n
CREATE TABLE Customer2 (
CustomerID INT PRIMARY KEY,
Name VARCHAR(255)
);
-- CreditCard 테이블 생성
CREATE TABLE CreditCard2 (
CardID INT PRIMARY KEY,
CustomerID INT, -- FK에 UNIQUE 조건이 없으므로 1:N 관계
CardNumber VARCHAR(16),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
다대다 (N:M) 관계
- 한
테이블
의 한 행이 다른테이블
의 여러 행과 관련이 있고, 그 반대도 마찬가지인 경우입니다. 예를 들어, 학생과 강의 테이블이 있을 때,하나의 학생
이여러 강의를 수강
하고각 강의
에는여러 학생이 수강
할 수 있으므로N:M 관계
가 있을 수 있습니다. N:M 관계
를 만들기 위해서는관계 테이블
이 필요합니다. 이테이블
은 관계를 연결하기 원하는 두 테이블의PK
를FK
로 가지고 있고 각 테이블과1:N 관계
입니다.
🔠N:M 테이블 생성 DDL
-- Students 테이블 생성
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
StudentName VARCHAR(255) NOT NULL
);
-- Course 테이블 생성
CREATE TABLE Courses (
CourseID INT PRIMARY KEY,
CourseName VARCHAR(255) NOT NULL
);
-- StudentCourses(관계) 테이블 생성
CREATE TABLE StudentCourses (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
1:0, N:0 관계
1:0
,N:0
은 보통 사용되지 않는 표현이지만, 특정 상황에서는 필요한 경우가 있을 수 있습니다. 예를 들어, 선택적인 외래 키(Foreign Key) 관계에서 한 테이블의 행이 다른 테이블의 행과 연결될 수 있거나 없을 수 있을 때1:0
,N:0
이라는 표현을 사용할 수 있습니다.1:1 관계
에서 선택적인(옵셔널) 부분을 표현할 때0 또는 1
로 나타낼 수 있습니다.1:N 관계
에서 선택적인(옵셔널) 부분을 표현할 때0 또는 1
로 나타낼 수 있습니다.
참고
🎢 ERD 관계선
반응형
'DB' 카테고리의 다른 글
[DB] NoSQL의 모든 것 (0) | 2024.11.24 |
---|---|
MariaDB란 무엇인가 (0) | 2024.11.23 |
[DB] JOIN과 EXISTS의 차이점 (1) | 2024.09.27 |
[DB] DB Table Key의 종류 (0) | 2024.08.07 |