DB/Mysql

논리적 데이터 모델링

완자✨ 2021. 11. 3. 00:06

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