관계형 데이터 모델링2

알비레오·2024년 8월 8일

DB

목록 보기
3/16

movie

논리적 데이터 모델링

Mapping Rule
-> E-R Diagram에서 표현한 내용을 관계형 데이터 베이스에 맞는 형식으로 전환할때 사용해 볼 수 있는 방법론

entity -> table
attribute -> column
relation -> pk, fk

movie

테이블과 컬럼 생성

ER Master(eclipse에 설치되는 도구)

movie

1:1 관계의 처리

Relationship -> pk, fk

movie

1:N 관계의 처리

movie

N:M 관계의 처리

어느 한쪽에 컬럼을 추가하기 어려움
-> Mapping table이 필요
-> E-R Diagram, 스키마에 Mapping table 추가

movie

N:M 관계의 처리 - 내용 정정

movie

정규화 소개

Normalization
-> 정제되지 않은 표를 관계형 데이터베이스에 어울리는 표로 만들어주는 레시피
http://bit.ly/2wV2SFj(스프레드 시트) -> 참고

movie

제 1 정규화

-> 각 컬럼의 값들이 모두 Atomic 해야 한다

tag 컬럼이 Atomic하지 않아 1 정규형을 만족하지 않는다

movie

제 2 정규화

-> No partial dependencies(부분 종속성이 없어야 한다)

movie

제 3 정규화

-> No transitive dependencies(이행적 종속성이 없어야 한다)

author_id는 title에 의존, author_name, author_profile은 author_id에 의존

movie

물리적 데이터 모델링

find slow query -> 어디에서 병목이 발생하는지(느려지는지) 찾아낼 것

index
행에 대한 읽기 성능을 비약적으로 향상, 쓰기 성능을 비관적으로 희생

application
캐시와 같은 방법을 활용

이런 방법 외에 많은 것들을 해보았는데도 해결이 안될때 denormalization(역정규화) 활용

movie

역정규화 소개

denormalization
정규화를 통해 만들어 놓은 이상적인 표를 성능이나 개발의 편의성을 위해 구조를 바꾸는 것
http://bit.ly/2WLMCko(스프레드 시트) -> 참고

movie

역 정규화 : 컬럼을 조작해서 join을 줄이기

movie

역 정규화 : 컬럼을 조작해서 계산을 줄이기

movie

역정규화 : 표를 쪼개기

movie

역정규화 : 관계의 역정규화

0개의 댓글