프로젝트 시작과 설계
https://www.youtube.com/watch?v=GroeyzBNhfU&t=1s
Database Modeling
1. 개념적 모델링
-> Entity
2. 논리적 모델링
-> Data 구조 및 속성 정의
-> 무결성 정의 및 정규화
3. 물리적 모델링
-> Schema, Table, Index 생성
데이터 모델 설계
요구 사항 분석
=> UseCase Diagram 작성
=> Entities, Functions 도출
=> Relationships - ERD 작성
=> 생성
S/W 설계
비즈니스 로직이 어지러우면 flow chart 작성
정규화(Normal Form , NF)
정규화의 목적, 목표
-중복 데이터를 없애고 관계를 단순하게 가져 간다
제1정규화(1NF): 원자성
제2정규화(2NF): 완전 함수적 종속(부분 종속 제거)
제3정규화(3NF): 이행 종속 제거
cf. BCNF(Boyce and Codd Normal Form)
성격이 다른 데이터들은 분리 해야한다.
정규화 과정은 몸에서 체득이 된다.
반정규화 => 데이터유지가 어렵다 (데이터 유지 계획 필수)
빅데이터 사용할때는 반정규화가 유리하다 (성능을 위해서)
모델링 기법(요령)
1.PK(기본키)가 가장 중요하다
유일값을 갖는 기본키 필수
변경이 없는 안정적인 값, null 안됨
가능한 1개 컬럼, 실수형 보다는 정수형(자동증가 컬럼!)
2.적절한 정규화를 하자!
1NF(원자성)을 준수하고 최대한 중복 데이터가 없도록 한다!
계산 결과 컬럼을 최대한 자제한다!
Nullable 할 필요가 없다면 Not Null 로 하자
3.참조 무결성을 위해 FK를 정의한다
4.서로 다른 성격의 컬럼들은 테이블 분리