1.논리적 데이터 모델링
- 논리적 설계 단계에서는 개념적 데이터 모델링 작업에서 만든 ERD를 기반으로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다.
- 즉 ERD( 개념적 스키마)를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다.
- 관계형 데이터베이스의 데이블을 설계하는 단계이다.
1.1 ERD -> 논리적 데이터 모델링의 스키마
ERD | 논리적 스키마 |
---|---|
![]() |
![]() |
2. 논리적 데이터 모델링 - 정규화(Normalization)
2.1 정규화(Normalization)
- 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마를 만들어가는 과정입니다.
- 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.
- 정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장한다.
- 정규화 수준이 높을수록 유연한 데이터 구축이 가능하고 데이터의 정확성이 높아지는 반면 물리적 접근이 복잡하고 너무 많은 조인으로 인해 조회 성능이 저하된다.
2.2 정규화 과정
1NF | 하나의 속성에 열개의 값이 존재하지 않도록 테이블을 쪼개는 작업입니다. |
---|---|
2NF | 함수적 종속관계가 만족해야한다. 복합키 또는 기본키에 완전 함수적 종속이어야 한다. 이를 만족하지 않는 것은 테이블을 분해한다. (부분 함수적 종속 제거) |
3NF | 기본키가 아닌 키가 다른 속성의 값을 결정할 때를 이행적 종속이라고 한다. 이 것을 없애기 위해 테이블을 쪼갠다. |
BCNF | 후보키가 아닌 속성이 후보키를 결정할 때 잘못된 구조입니다. 이때 테이블을 분리합니다. (결정자이면서 후보키가 아닌 것 제거) |
4NF | 다치종속(MVD)제거 |
5NF | 조인종속성 이용 - 하나의 테이블을 분리했을 때 2개로 분리하면 무손실 분해를 위배합니다. - 하나의 테이블을 3개로 분해하는 경우가 있습니다. -속성들이 후보키가 아닐 때 발생합니다. |
'DB > Mysql' 카테고리의 다른 글
💻RDB 와 NoSQL의 차이점 (0) | 2022.06.16 |
---|---|
물리적 데이터 모델링 (0) | 2021.11.03 |
개념적 데이터 모델링 (0) | 2021.11.02 |
관계형 데이터베이스 JOIN 개념정리 (0) | 2021.10.31 |
MySQL 테이블 생성(CREATE)& TABLE 구조 보기 (0) | 2021.10.29 |