일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 도커
- 클라우드입문자
- 클라우드기초교육
- spring mvc project
- 일상의행복
- Kubernetes
- 거래소 운영시간
- 성장마인드셋
- 코딩 특수문자
- 미국채권
- 슬래시24
- 다크모드
- sm회사
- 쿠버네티스
- Rectangle
- 3분철학
- m1 sts3 설치
- sts3
- 원씽
- Mac m1
- 만화철학
- si회사
- 쿠버네티스기초
- 만화로보는3분철학
- docker
- 티스토리 야간모드
- 교양철학
- nhn_cloud_console
- 다국어 입력전환
- nhn cloud
- Today
- Total
Good Morning
데이터베이스 관계의 이해: 동영상과 재생목록 예시 본문
데이터베이스 설계에서 테이블 간의 관계를 올바르게 설정하는 것은 매우 중요합니다. 이 포스트에서는 동영상과 재생목록 간의 관계를 예로 들어 1대1, 1대다, 다대다 관계를 설명하고, 각 관계의 장단점을 살펴보겠습니다.
1. 1대1 관계
1대1 관계에서는 하나의 동영상이 오직 하나의 재생목록에만 속할 수 있고, 하나의 재생목록도 오직 하나의 동영상만 포함할 수 있습니다.
장점:
- 구조가 단순함
- 특정 목적(예: 단일 에피소드 시리즈)에 적합할 수 있음
단점:
- 매우 제한적이며 현실적이지 않음
- 동일한 동영상을 여러 재생목록에 추가할 수 없음
- 재생목록에 여러 동영상을 포함할 수 없음
이 관계는 실제 비디오 플랫폼에서는 거의 사용되지 않습니다.
2. 1대다 관계
1대다 관계에서는 하나의 재생목록이 여러 동영상을 포함할 수 있지만, 하나의 동영상은 오직 하나의 재생목록에만 속할 수 있습니다.
장점:
- 1대1 관계보다 유연함
- 구현이 다대다 관계보다 간단할 수 있음
단점:
- 동일한 동영상을 여러 재생목록에 추가할 수 없음
- 실제 사용 사례와 맞지 않을 수 있음
1대다 관계의 SQL 예시
CREATE TABLE Playlists (
playlist_id INT PRIMARY KEY,
playlist_name VARCHAR(255)
);
CREATE TABLE Videos (
video_id INT PRIMARY KEY,
video_title VARCHAR(255),
playlist_id INT,
FOREIGN KEY (playlist_id) REFERENCES Playlists(playlist_id)
);
이 구조에서 Videos
테이블의 playlist_id
열은 외래 키로, 각 동영상이 하나의 플레이리스트에만 속할 수 있게 합니다.
주의점: 외래 키 열에는 하나의 값만 들어갈 수 있습니다. 즉, 하나의 동영상을 여러 플레이리스트에 동시에 연결할 수 없습니다.
3. 다대다 관계
다대다 관계에서는 하나의 동영상이 여러 재생목록에 속할 수 있고, 하나의 재생목록도 여러 동영상을 포함할 수 있습니다.
장점:
- 가장 유연한 구조
- 실제 사용 사례와 가장 잘 맞음
- 사용자가 동영상을 여러 재생목록에 자유롭게 추가할 수 있음
단점:
- 구현이 더 복잡할 수 있음
- 중간 테이블(junction table)이 필요하여 데이터베이스 구조가 복잡해질 수 있음
다대다 관계의 SQL 예시
CREATE TABLE Playlists (
playlist_id INT PRIMARY KEY AUTO_INCREMENT,
playlist_name VARCHAR(255) NOT NULL
);
CREATE TABLE Videos (
video_id INT PRIMARY KEY AUTO_INCREMENT,
video_title VARCHAR(255) NOT NULL,
video_url VARCHAR(255) NOT NULL
);
CREATE TABLE PlaylistVideos (
playlist_id INT,
video_id INT,
PRIMARY KEY (playlist_id, video_id),
FOREIGN KEY (playlist_id) REFERENCES Playlists(playlist_id),
FOREIGN KEY (video_id) REFERENCES Videos(video_id)
);
이 구조에서 PlaylistVideos
테이블은 중간 테이블 역할을 하여 플레이리스트와 동영상 간의 다대다 관계를 관리합니다.
결론
실제 비디오 플랫폼에서는 대부분 다대다 관계를 사용합니다. 이는 사용자가 동일한 동영상을 여러 재생목록에 추가하고, 각 재생목록에 여러 동영상을 포함할 수 있도록 하는 가장 유연한 방식이기 때문입니다.
데이터베이스 설계 시 항상 실제 사용 사례와 요구사항을 고려하여 적절한 관계를 선택해야 합니다. 때로는 단순한 1대다 관계로 충분할 수 있지만, 많은 경우 다대다 관계의 유연성이 필요합니다.
이러한 관계의 이해는 효율적이고 확장 가능한 데이터베이스 시스템을 설계하는 데 큰 도움이 될 것입니다.
'Database' 카테고리의 다른 글
맥북에서 MySQL 중지하는 방법 완벽 가이드 (0) | 2025.06.19 |
---|---|
DBMS와 NoSQL: 기초부터 활용까지 알아보기 (0) | 2025.01.04 |
SQLD 자격증 취득 후기 (비전공자, 한달 공부) (1) | 2024.09.12 |
Oracle SQL에서의 대소문자 구분과 데이터 조작: 주의해야 할 점들 (0) | 2024.08.07 |
SQL 상관 서브 쿼리(Correlated Subquery) 이해하기 (0) | 2024.07.27 |