본문 바로가기
공부/MySQL

관계형 데이터 모델링 (2)

by 드인 2020. 3. 2.

5. 논리적 데이터 모델링1

1) 논리적 데이터 모델링

- Mapping Rule : ERD를 통해서 표현한 내용을 관계형 데이터베이스에 맞는 형식으로 전환하느는 방법론

- Entity => Table

- Attribute => Column

- Relation => PK, FK

 

2) 테이블과 컬럼 생성

ER Master

ermaster.sourceforge.net

 

3) 1:1 관계의 처리

- Relation => PK, FK

- 저자 -l--o-l- 휴면자 - (휴면일)

- 부모 테이블 : 혼자서 있을 수 있음

- 자식 테이블 : 의존하는 테이블

 

4) 1:N 관계의 처리

 

5) N:M 관계의 처리

- 맵핑 테이블 ex) write 테이블

- 스키마 부분만 반영하면됨

- write (1, N) ------ (1) topic

 

6. 논리적 데이터 모델링 - 정규화 

1) 정규화 소개

- 제 3정규형까지 많이 사용

http://bit.ly/2wV2SFj

 

- 제 1정규형 -> 제 2정규형 -> 제 3정규형

 

2) 제1 정규화

- 제 1정규화 원칙 : Atomic columns

- Atomic columns : 각각의 column이 값이 하나만 가짐

하나의 column에 값이 여러개인 경우 

- SELECT * FROM topic WHERE tag=`free`     => 사용 불가능

- SELECT * FROM topic ORDER BY tag   => ,뒤에 내용으로 정렬 불가능

- JOIN 사용 불가능

 => 이러한 문제점이 해소된 상태 : 제 1정규형 상태

 

- 정보의 손실은 없지만 중복이 발생 => 제 1정규형 만족시키지만 바람직하지 않음

title type description created author_id author_name author_profile price tag
MySQL paper MySQL is ... 2011 1 kim developer 10000 rdb
MySQL paper MySQL is ... 2011 1 kim developer 10000 free

- tag1, tag2 column 추가 => 낭비 발생

 

- 하나의 topic이 여러 개의 tag를 가질 수 있음

- 하나의 tag이 여러 개의 topic를 가질 수 있음

 => N대 M 관계 -> 매핑 테이블을 만들어야함

topic

title type description created author_id author_name author_profile price
MySQL paper MySQL is ... 2011 1 kim developer 10000
MySQL online MySQL is ... 2011 1 kim developer 0
ORACLE online ORACLE is ... 2012 1 kim developer 0

tag

id name
1 rdb
2 free
3 commercial

 topic_tag_relation

topic_title tag_id
MySQL 1
MySQL 2
ORACLE 1
ORACLE 3

 

3) 제2 정규화

- 제2 정규화 원칙 : No partial dependencies

- No partial dependencies : 부분 종속성이 없어야됨(=표에서 중복키인 것이 없어야함)

 

title type description created author_id author_name author_profile price
MySQL paper MySQL is ... 2011 1 kim developer 10000
MySQL online MySQL is ... 2011 1 kim developer 0
ORACLE online ORACLE is ... 2012 1 kim developer 0

 

=>

title description created author_id author_name author_profile
MySQL MySQL is ... 2011 1 kim developer
ORACLE ORACLE is ... 2012 1 kim developer

 

topic type

title type price
MySQL paper 10000
MySQL online 0
ORACLE online 0

 

4) 제3 정규화

- 제3 정규화 원칙 : No transitive dependencies

- No transitive dependencies : 이행적 종속성 없어야함

 

- author_id는 title에 의존하지만 author_name, author_profile은 author_id에 의존

 => 이행적 종속성

author
id author_name author_profile
1 kim developer

 

author
id author_name author_profile
1 kim developer

=> 제3 정규형 만족

 

'공부 > MySQL' 카테고리의 다른 글

관계형 데이터 모델링 (3)  (0) 2020.03.02
관계형 데이터 모델링 (1)  (0) 2020.02.27
SQL join  (0) 2020.02.26
DATABASE2-MySQL(4)  (0) 2019.07.31
DATABASE2-MySQL(3)  (0) 2019.07.31