데이터베이스 모델링은 현실 세계의 데이터를 체계적으로 저장하고 관리하기 위해 데이터베이스의 구조를 설계하는 과정입니다.
이번 포스트에서는 데이터베이스 모델링의 4단계에 대해 자세히 살펴보겠습니다.
1️⃣ 업무 파악
우리가 해결하려는 문제는 무엇인가?
데이터베이스 모델링의 첫 번째 단계는 해결하고자 하는 문제나 과업을 명확히 이해하는 것입니다. 이를 통해 요구사항을 분석하고, 최종 사용자가 필요로 하는 데이터를 파악하게 됩니다.
- 목표 설정: 데이터베이스의 목적과 기능을 정의합니다.
- 사용자 요구사항: 최종 사용자가 필요로 하는 데이터를 수집합니다.
2️⃣ 개념적 데이터 모델링
어떤 개념이 있고, 각 개념들은 어떻게 상호작용하는가?
개념적 데이터 모델링은 현실 세계의 개념과 관계를 추상화하여 데이터베이스의 기본 구조를 설계하는 과정입니다. 이를 통해 데이터베이스의 기본 틀을 만들 수 있습니다.
ER 다이어그램
ER 다이어그램(Entity-Relationship Diagram)은 개념적 데이터 모델링에서 주로 사용되는 도구입니다. 주요 구성 요소는 다음과 같습니다:
- 엔티티(Entity) → 테이블(Table): 현실 세계에서 구별될 수 있는 독립적인 존재를 나타냅니다. 예를 들어, 게시글, 회원, 댓글 등이 있습니다.
- 속성(Attribute) → 컬럼(Column): 엔티티의 특징이나 속성을 나타냅니다. 예를 들어, 게시글 엔티티는 제목, 내용, 생성일 등의 속성을 가질 수 있습니다.
- 관계(Relation) → PK, FK: 두 개 이상의 엔티티 간의 연결을 나타냅니다. 예를 들어, "회원은 게시글을 작성할 수 있다"는 관계를 정의할 수 있습니다.
- 관계 대응수(Cardinality): 엔티티 간의 관계의 수를 나타냅니다. 예를 들어, 하나의 회원은 여러 개의 게시글을 작성할 수 있으므로 1:N 관계가 됩니다.
- 옵셔널리티(Optionality): 엔티티와 엔티티의 필수, 선택 표기를 나타냅니다. 예를 들어, 모든 게시글은 반드시 작성자가 있어야 한다는 필수 관계를 정의할 수 있습니다.
- 관계 유형
- 1:N 관계: 예를 들어, 회원과 게시글의 관계. 하나의 회원이 여러 개의 게시글을 작성할 수 있습니다.
- M:N 관계: 예를 들어, 회원과 강의의 관계. 여러 회원이 여러 강의를 수강할 수 있습니다.
- ER 다이어그램 도구
- draw.io: 설치가 필요 없는 웹 기반 다이어그램 소프트웨어로, ER 다이어그램을 그리는 데 유용합니다.
3️⃣ 논리적 데이터 모델링
관계형 데이터베이스에 맞게 데이터를 표로 전환하는 작업
논리적 데이터 모델링은 개념적 데이터 모델을 관계형 데이터베이스에 맞게 구체화하는 과정입니다. 이 과정을 통해 실제로 데이터베이스에서 사용될 테이블 구조를 정의하게 됩니다. 또한, 테이블 정규화를 통해 데이터 중복을 최소화하고 데이터 무결성을 유지합니다.
정규화(Normalization)
정규화는 정제되지 않은 데이터를 관계형 데이터베이스에 어울리게 만들어주는 방법입니다. 주로 제 1정규화부터 제 3정규화까지 적용됩니다.
제 1정규화 (First Normal Form, 1NF)
- 도메인이 원자값: 데이터베이스의 각 칸에는 하나의 값만 들어가야 합니다.
예시:
- Before:
이름 수강과목 홍길동 수학, 과학 - After:
이름 수강과목 홍길동 수학 홍길동 과학
제 2정규화 (Second Normal Form, 2NF)
- 부분적 함수 종속 제거: 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속을 만족해야 합니다.
예시:
- Before:
이름 수강과목 성적 나이 홍길동 수학 A 20 홍길동 과학 B 20 - After:
이름 나이 홍길동 20 이름 수강과목 성적 홍길동 수학 A 홍길동 과학 B
제 3정규화 (Third Normal Form, 3NF)
- 이행적 함수 종속 제거: 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속을 만족하지 않아야 합니다.
예시:
- Before:
고객번호 이름 등급 할인율 001 김철수 A 10% 002 이영희 B 5% - After:
고객번호 이름 등급 001 김철수 A 002 이영희 B 등급 할인율 A 10% B 5%
BCNF (Boyce-Codd Normal Form, 강화된 제 3정규화)
- 결정자가 키 값: 모든 결정자가 후보키가 되도록 테이블을 설계합니다.
예시:
- Before:
이름 과목 교수명 홍길동 수학 김교수 홍길동 과학 이교수 - After:
과목 교수명 수학 김교수 과학 이교수 이름 과목 홍길동 수학 홍길동 과학
제 4정규화 (Fourth Normal Form, 4NF)
- 다치 종속 제거: 다치 종속을 제거합니다.
제 5정규화 (Fifth Normal Form, 5NF)
- 조인 종속성에 의한 정규화: 조인 종속성을 제거하여 정규화합니다.
이와 같이 정규화를 통해 데이터베이스의 일관성을 유지하고, 데이터 중복을 최소화하여 데이터 무결성을 보장할 수 있습니다. 실무에서는 주로 제 1정규화부터 제 3정규화까지 적용하여 테이블을 설계합니다.
4️⃣ 물리적 데이터 모델링
데이터베이스를 선택하고, 실제 표를 생성
물리적 데이터 모델링은 논리적 데이터 모델을 기반으로 실제 데이터베이스를 구축하는 단계입니다. 이 과정을 통해 데이터베이스 스키마를 생성하고, 테이블, 인덱스, 뷰 등을 정의하게 됩니다.
- 스키마 설계: 데이터베이스 구조와 관련된 모든 요소를 정의합니다.
- 테이블 및 인덱스 생성: 실제 데이터 저장을 위한 테이블과 검색 효율을 높이기 위한 인덱스를 생성합니다.
'🗄️ Backend > SQL' 카테고리의 다른 글
PL/SQL (Procedural Language/SQL) (3) | 2024.10.15 |
---|---|
SQL 권한 및 사용자 생성 가이드 (0) | 2024.10.15 |
SQL 인덱스 개요 (0) | 2024.10.15 |
뷰 생성, 관리 및 시퀀스 (4) | 2024.10.14 |
데이터베이스 제약조건의 종류와 예시 (0) | 2024.10.14 |