실습으로 클론코딩 프로젝트를 진행하기에 앞서 생활코딩 님의 강의로 관계형데이터 모델링을 들으면서 다시한번 개념을 정리하기로 했다.
업무파악 -> ERD(개념적데이터 모델링 -> 논리적 데이터모델링 -> 물리적 데이터 모델링
현실의 문제들을 추상화한후 컴퓨터로직으로 처리할수 있겠금 전환하는 과정이 필요
업무파악할떄 클라이언트와 같이 UI에대해 이야기해보는 것이 좋음 oven.io 활용 추천
RDB 정보,그룹,관계를 정립 RDB는 내포관계를 허용하지 않는다. 주제에 따라서 데이터를 그룹화
entity (draw.io활용 추천) entity에 속하는 속성인 attribute중 다른 데이터와 중복될수없는 식별자를 선별해 기본키인 primary key 그외 식별자로 사용가능한 키들은 alternate key라고 한다 cardinality(몇대몇인가), potionality
entity attribute relation tuple -> table ,column ,pkfk,row
데이터의 정규화 쓰기의 편리함을 위해 읽기의 성능을 포기함 상업단계에서는 주로 제3정규형까지 사용함
제1 정규화의 원칙은 atomic columns 각각의 컬럼이 하나의 값만 가지고 있어야 한다.
제2 정규화 no partial dependencies 테이블상에 부분 종속성이 없어야한다. 테이블에 중복되는 행이 있으면
제3 정규화 no transitive dependencies 이행적 종속성이 없어야 한다.
물리적 데이터 모델링 각 쿼리의 성능을 평가해보고 병목이 지점하는 점을 개선 find slow query
index읽기 속도를 빠르게 하지만 쓰기 속도는 느려짐 , application에서 캐시를 활용알 방법을 모색 마지막으로는 역정규화까지 고려
역정규화 1 하나의 표안에서 컬럼 변경 2.표하나를 여러개로 쪼갬 (컬럼,또는 행을 기준으로)3.테이블과 테이블사이의 관계성을 조작해서 지름길을 만듬
'First step > web depeloper step1' 카테고리의 다른 글
RESTful API (0) | 2021.12.03 |
---|---|
csv파일로 database에 입력하기 (0) | 2021.12.02 |
decorator 를 이해해보자 (0) | 2021.11.28 |
[django]JWT가 뭘까 (0) | 2021.11.24 |
입문할때 어려웠던점 - 개발 환경 셋팅 (0) | 2021.11.23 |