관계형 데이터베이스
관계형 데이터베이스는 데이터를 키(Key)와 밸류(Value)를 테이블 형태로 저장하고 관리하는 시스템입니다. 각 테이블은 행(row)과 열(column)로 구성됩니다.
관계
관계형 데이터베이스에서 "관계"는 테이블 간의 연결 및 연관성을 의미합니다. 테이블은 서로 독립적으로 존재할 수 있지만, 외래 키(foreign key)를 사용하여 하나의 테이블의 데이터가 다른 테이블의 데이터와 어떻게 연관되는지를 정의합니다. 이러한 관계는 데이터의 무결성을 유지하고, 중복을 최소화합니다.
관계형 데이터베이스에서 테이블 간의 관계는 세 가지 형식이 있습니다!
예시와 같이 설명하겠습니다.
1:1 관계 (일대일 관계)
1:1 관계란 테이블 A와 테이블 B의 Row(행)가 정확히 일대일 매칭이 되는 관계

유저 테이블과 유저 프로필 테이블은 1:1 관계를 가집니다. 즉, 각 사용자는 하나의 프로필만 가질 수 있습니다.
1:N 관계 (일대다 관계)
테이블 A의 한 개의 Row(행)가 테이블 B의 여러개의 Row(행)와 연결 되는 관계

실제 DB를 설계할 때 자주 쓰이는 방식입니다.
고객 테이블과 주문 테이블은 1:N 관계를 가집니다. 즉, 한 고객은 여러 개의 주문을 할 수 있습니다.
⭐️N:M 관계 (다대다 관계)⭐️
N:M 관계는 한 엔티티가 다수의 다른 엔티티와 관계를 맺을 수 있고, 그 역도 성립하는 관계를 말합니다. 즉, 서로가 서로를 1:N 관계로 보고 있습니다.

학생 테이블과 강의 테이블은 다대다 관계로 연결되어있습니다. 즉, 한 학생은 여러 강의를 수강할 수 있고, 한 강의는 여러 학생이 수강할 수 있습니다.
학생 강의 테이블을 사용하여 학생과 강의 사이의 다대다 관계를 관리합니다. 이 테이블은 특정 학생이 특정 강의를 수강하는 것을 나타냅니다.
사실, 실무에서는 다대다 테이블을 사용하지 않습니다. 개발하다 보면, 연결 테이블이 단순히 연결만 하고 끝나지 않기 때문입니다. 관계형 데이터베이스는 정규화된 테이블의 집합이기 때문에 2개의 테이블로 다대다 관계를 표현할 수 없습니다. 따라서 각 테이블의 PK를 외래키(FK)로 참조하고 있는 연결 테이블(매핑 테이블)을 추가하여 일대다, 다대일의 관계로 풀어내야 합니다.
TIP!!
- 관계를 생각할 때 테이블을 기준으로 생각하지 않고, '한 행'을 기준으로 생각한다.
- 논리적으로 생각할 때에는 연결 테이블(매핑 테이블)을 생각하지 않는다.
- 항상 일대다(1:N) 기준으로 생각한다. 다대일(N:1)보다 직관적으로 이해하기 쉽다.
'DB' 카테고리의 다른 글
Redis를 활용한 확장 가능한 세션 관리 전략 (0) | 2024.12.23 |
---|---|
트랜잭션이란? (0) | 2024.07.23 |
DB 파티셔닝(Partitioning)이란 (2) | 2024.07.22 |
[DB] DDL, DML, DCL, TCL 이란? (0) | 2024.07.21 |
관계형 DB와 비관계형 DB의 차이(RDBMS vs NoSQL) (4) | 2024.07.11 |
관계형 데이터베이스
관계형 데이터베이스는 데이터를 키(Key)와 밸류(Value)를 테이블 형태로 저장하고 관리하는 시스템입니다. 각 테이블은 행(row)과 열(column)로 구성됩니다.
관계
관계형 데이터베이스에서 "관계"는 테이블 간의 연결 및 연관성을 의미합니다. 테이블은 서로 독립적으로 존재할 수 있지만, 외래 키(foreign key)를 사용하여 하나의 테이블의 데이터가 다른 테이블의 데이터와 어떻게 연관되는지를 정의합니다. 이러한 관계는 데이터의 무결성을 유지하고, 중복을 최소화합니다.
관계형 데이터베이스에서 테이블 간의 관계는 세 가지 형식이 있습니다!
예시와 같이 설명하겠습니다.
1:1 관계 (일대일 관계)
1:1 관계란 테이블 A와 테이블 B의 Row(행)가 정확히 일대일 매칭이 되는 관계

유저 테이블과 유저 프로필 테이블은 1:1 관계를 가집니다. 즉, 각 사용자는 하나의 프로필만 가질 수 있습니다.
1:N 관계 (일대다 관계)
테이블 A의 한 개의 Row(행)가 테이블 B의 여러개의 Row(행)와 연결 되는 관계

실제 DB를 설계할 때 자주 쓰이는 방식입니다.
고객 테이블과 주문 테이블은 1:N 관계를 가집니다. 즉, 한 고객은 여러 개의 주문을 할 수 있습니다.
⭐️N:M 관계 (다대다 관계)⭐️
N:M 관계는 한 엔티티가 다수의 다른 엔티티와 관계를 맺을 수 있고, 그 역도 성립하는 관계를 말합니다. 즉, 서로가 서로를 1:N 관계로 보고 있습니다.

학생 테이블과 강의 테이블은 다대다 관계로 연결되어있습니다. 즉, 한 학생은 여러 강의를 수강할 수 있고, 한 강의는 여러 학생이 수강할 수 있습니다.
학생 강의 테이블을 사용하여 학생과 강의 사이의 다대다 관계를 관리합니다. 이 테이블은 특정 학생이 특정 강의를 수강하는 것을 나타냅니다.
사실, 실무에서는 다대다 테이블을 사용하지 않습니다. 개발하다 보면, 연결 테이블이 단순히 연결만 하고 끝나지 않기 때문입니다. 관계형 데이터베이스는 정규화된 테이블의 집합이기 때문에 2개의 테이블로 다대다 관계를 표현할 수 없습니다. 따라서 각 테이블의 PK를 외래키(FK)로 참조하고 있는 연결 테이블(매핑 테이블)을 추가하여 일대다, 다대일의 관계로 풀어내야 합니다.
TIP!!
- 관계를 생각할 때 테이블을 기준으로 생각하지 않고, '한 행'을 기준으로 생각한다.
- 논리적으로 생각할 때에는 연결 테이블(매핑 테이블)을 생각하지 않는다.
- 항상 일대다(1:N) 기준으로 생각한다. 다대일(N:1)보다 직관적으로 이해하기 쉽다.
'DB' 카테고리의 다른 글
Redis를 활용한 확장 가능한 세션 관리 전략 (0) | 2024.12.23 |
---|---|
트랜잭션이란? (0) | 2024.07.23 |
DB 파티셔닝(Partitioning)이란 (2) | 2024.07.22 |
[DB] DDL, DML, DCL, TCL 이란? (0) | 2024.07.21 |
관계형 DB와 비관계형 DB의 차이(RDBMS vs NoSQL) (4) | 2024.07.11 |