본문 바로가기
코딩 어쩌구/Data

[생활코딩] 관계형 데이터 모델링

by annmunju 2020. 12. 23.

opentutorials.org/course/3883

 

관계형 데이터 모델링 - 생활코딩

수업소개 관계형 데이터베이스의 테이블을 설계하는 방법을 알려드리는 수업입니다. 이 수업은 아래와 같은 내용을 담고 있습니다.  데이터 모델링의 효용 업무파악 개념적 데이터 모델링 논

opentutorials.org

0. 관계형 데이터 모델링

 - Model : 어떤 목적을 가지고 진짜를 모방한 것. (좋은 모델은 목적에 부합하는 모델)

 - 데이터 모델링 : 컴퓨터에 복잡한 정보 담기

1. 데이터 모델링의 순서

 - 업무파악 > 개념적 데이터 모델링 > 논리적 데이터 모델링 > 물리적 데이터 모델링

2. 업무 파악 

 - 1) 컴퓨터 자체 문제 해결 2) 데이터를 통해 현실 문제 해결

 - 2)의 경우 실무자와 교류해 업무 파악, UI를 그려 이해 편하게 하기 (말의 기능을 불신하기)

 * 기획 : ovenapp (UI 그려보기)

3. 개념적 데이터 모델링 : ERD (Entity Relation Diagram : 개체 관계성 모델)

 - 정보 / 그룹 / 관계

 - Entity : Table

 - Attribute : Column

 - Relation : PK, FK (주키, 보조키)

 - Tuple : Row

 - 정규화

 * ERD 그려보기 (모델링과 UI 함께하면 이해도 편하고 왕 좋음!) : draw

 - 식별자 지정 (Identifier) : 고유값 (기본키, 대체키, 중복키-여러가지 대체키를 합침)

 - 엔티티간의 연결 : 관계

 - Cardinality : 기수. 1:1 관계, 1:다 관계, 다:다 관계 ㅁㅡㅁ, ㅁㅡ<ㅁ, ㅁ>-<ㅁ

 - Optionality : 옵션. ㅁㅡo-ㅁ (우측 Entity는 옵션), ㅁ-|ㅡo-ㅁ (좌측은 Mandatory, 우측은 Optional)

 - 연습 사이트 : erd.yah.ac

4. 논리적 데이터 모델링

 - 관계형 데이터 프로그램에 잘 적응시키기 (Mapping Rule)

 - Entity : Table

 - Attribute : Column

 - Relation : PK, FK (주키, 외래키)

 - ER Master 프로그램 실습 이용

 - N:M관계

 cf) 한 Tuple에 하나만 올 수 있으므로 다대다관계에서 한쪽에만 외래키를 만들어주면 여러가지 값들이 오게 됨 

 > 연결테이블 만들어주기

 - 완성 결과

4+. 논리적 데이터 모델링 : 정규화

 - 제 1 정규화 : Atomic columns : 각 컬럼을 원자화하기. 

 - 제 2 정규화 : No partial dependencies : 부분 종속성이 없어야함.

 - 제 3 정규화 : No transitive dependences : 이행적 종속성이 없어야함. (테이블 안에 분리된 의존(이행적 종속성)이 있는지 확인해서 분리) 

5. 물리적 데이터 모델링 : 성능 향상

 - 역정규화(반정규화, denormalization) : 정규화 만든 것이 성능 향상을 위해 (읽기 편리해 지기 위해) 최후의 수단

 1) 컬럼의 역정규화 

   (1) Join 줄이기

   (2) 파생 컬럼의 형성 : 계산 작업 줄이기

 2) 테이블의 역정규화

   (1) 컬럼을 기준으로 테이블을 분리 (한 열이 용량이 유난히 큰 경우)

   (2) 행을 기준으로 테이블 분리 (특정 행을 기준으로 이전, 이후로 분리)

 3) 관계의 역정규화

   (1) 지름길 만들기

728x90

'코딩 어쩌구 > Data' 카테고리의 다른 글

[생활코딩] MySQL (1)  (0) 2021.01.18
[시험 준비] SQLD 일정 및 내용  (0) 2021.01.15
[생활코딩] SQL Join  (0) 2020.12.22
[생활코딩] DATABASE1  (0) 2020.12.21
<고객DB분석>  (0) 2020.11.24