프로젝트 시작과 설계

강지훈·2022년 9월 24일
0

프로젝트 시작과 설계

https://www.youtube.com/watch?v=GroeyzBNhfU&t=1s

  1. 계획 / 기획(interview)
  2. 분석 및 ideation
  3. ui / ux 설계
  4. db 설계
  5. s/w 및 인프라 설계
  6. 구현
  7. 테스트 및 통합
  8. 오픈
  9. 유지보수(운영)

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개의 물건만 올린다고 했을때 '물건'에 임차인 이름?

성격이 다른 데이터들은 분리 해야한다.

정규화 과정은 몸에서 체득이 된다.

반정규화 => 데이터유지가 어렵다 (데이터 유지 계획 필수)

빅데이터 사용할때는 반정규화가 유리하다 (성능을 위해서)

모델링 기법(요령)

1.PK(기본키)가 가장 중요하다
유일값을 갖는 기본키 필수
변경이 없는 안정적인 값, null 안됨
가능한 1개 컬럼, 실수형 보다는 정수형(자동증가 컬럼!)

2.적절한 정규화를 하자!
1NF(원자성)을 준수하고 최대한 중복 데이터가 없도록 한다!
계산 결과 컬럼을 최대한 자제한다!
Nullable 할 필요가 없다면 Not Null 로 하자

3.참조 무결성을 위해 FK를 정의한다

4.서로 다른 성격의 컬럼들은 테이블 분리

profile
never stop

0개의 댓글