DB
DB - 관계형 데이터 모델링 (3)
개발자 포비
2024. 11. 28. 22:29
논리적 데이터 모델링
관계형 DB 패러다임에 어울리는 모습으로 정리
Mapping Rule
- ERD에서 표현한 내용을 관계형 DB에 맞는 내용으로 전환할 때 필요한 방법론
- 이 방법론을 활용하면 덜 고민하고, 더 많은 것을 활용할 수 있음
- Entity -> Table
- Attribute -> Column
- Relation -> PK, FK로 각각 바꾸면 됨
1:1 관계 처리
- 가장 중요한 것은 Cardinality를 따져보는 것
- 1:1 관계에선 누가 누구한테 FK를 줄 건지 헷갈리는데, 누가 누구한테 의존하는가를 따져보면 된다.
- 예시: 휴면저자는 저자 테이블에 의존한다.
- 휴면자 ID 값은 굳이
auto_increment
할 필요 없다. - 저자의 ID 값을 가져오면 된다.
- 저자는 부모 테이블, 휴면저자는 자식 테이블
- 저자에 PK, 휴면저자에 FK를 배치하면 무리 없이 작동
- 휴면자 ID 값은 굳이
- 예시: 휴면저자는 저자 테이블에 의존한다.
- 기능 중, Relation by existing columns를 활용해서 기존에 있는 값을 활용해 FK 지정
- 그 다음 1:1 관계를 맺어줌
1:N 관계의 처리
- 1:N에서는 1에서 PK를 가진다.
- N 쪽에서는 조인을 위해 1에 해당하는 테이블에 대한 FK를 가져야 한다.
- 관계 중에서 가장 간단한 관계이다.
N:M 관계의 처리
- N:M은 서로가 다수의 상대방 엔티티 객체와 연관된다.
- 그러므로 이 관계를 풀어내기 위해서 둘 사이의 조인 테이블을 만들어야 한다.
조인 테이블 예시
CREATE TABLE Student (
student_id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE Course (
course_id INT PRIMARY KEY,
title VARCHAR(255) NOT NULL
);
CREATE TABLE Enrollment (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES Student(student_id),
FOREIGN KEY (course_id) REFERENCES Course(course_id)
);