관계형 데이터 모델링

이제우·2023년 10월 4일
0

생활코딩 관계형 데이터 모델링
https://www.youtube.com/playlist?list=PLuHgQVnccGMDF6rHsY9qMuJMd295Yk4sa

MODEL

어떤 목적을 가지고 진짜모방한 것

좋은 모델이란 목적에 부합하는 모방

우리의 목표는 ? 데이터에 담는 것.

순서

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

업무 파악
의뢰인이 어떤것을 꿈꾸고 있는가를 파악하는 단계 - 기획서

개념적 데이터 모델링
현실의 업무를 뜯어내 개념을 찾아내는 단계 - ERD

ERD?
Entity Relationship Diagram의 약자로 요구사항을 분석한 뒤 그림으로 그려내어 그 관계를 도출한 것

논리적 데이터 모델링
우리가 생각한 개념들을 표로 전환하는 단계

물리적 데이터 모델링
데이터베이스 제품을 선택하고 그 제품에 최적하된 코드를 작성하여 표를 생성하는 단계

결국 데이터 모델링이란,
고도의 추상화 과정을 거쳐 현실의 개념을 컴퓨터가 처리할 수 있는 모습으로 바꾸는 것

개념적 데이터 모델링

  • 파악한 업무에서 개념을 뽑아내는 과정
  • 다른 데이터 모델링 단계보다 중요함
  • ERD는 현실로부터 개념을 인식하게 하며, 다른사람이 알아볼 수 있게 표현하는 도구
  • 관계형 데이터 베이스는 내포관계를 포함하지 않음
  • 초거대 표로 데이터를 표현한다면 데이터를 낭비하게 되고 중복이 발생
  • 개념적 데이터 모델링에서 찾아낸 개념들을 Entity라고 부름
이 Entity는 후에 Table로 전환됨
  • Entity에 구체적인 개념들을 Attribute라고 부르고 Column이 됨

  • Entity들 사이의 연관성을 표현한 것을 Relation이라고 하며 PK, FK가 됨
  • Entity를 대표하는 식별자가 필요. 중복되지 않아야하며 이후 PK가 됨
  • 관계형 데이터 베이스는 PK와 FK를 연결하여 생성된다.
  • 한 테이블에서의 PK는 다른 테이블에서 FK로 활용된다.
  • Cardinality : 1:1, 1:다, 다:다를 나타낸다.
  • Optionality : 필수(Mandatory)와 선택(Optional)을 나타낸다.

논리적 데이터 모델링

  • 개념적 데이터 모델링의 결과를 관계형 데이터베이스에 맞게 바꾸는 과정
  • 관계 > PK/FK
  • 1:1 관계에서는 auto_increment가 필요 없을 수도 있다.
  • 1:1 관계에서 누구에게 FK를 줄지 헷갈릴 땐 의존 관계를 따진다.

    예를 들어 계정과 휴면계정 테이블을 따져봤을때
    휴면계정은 계정을 의존하고 있기에 휴면계정에 FK를 주면 된다.
    (계정은 부모, 휴면계정은 자식 테이블)

  • 정규화 ( 다른 게시글에서 정리 )

물리적 데이터 모델링

  • 조회 시 속도가 느려지는 쿼리를 찾는다. find slow query (병목발생)
  • 성능을 향상 시키기 위한 여러 방법을 적용 (INDEX, CACHE)
  • 최후에 방법으로는 정규화된 테이블을 수정하는데 이걸 역정규화라고 함

    역정규화는 대가를 치뤄야하기 때문에 다른 방법들을 먼저 사용한 후 시도해야함.

  • INDEX는 읽기를 향상시키지만 쓰기를 희생시킴
  • CACHE는 애플리케이션 영역에서 자주 조회하는 정보를 저장한다.
profile
게으른 사람 중에 제일 부지런하게 사는 사람이 꿈

0개의 댓글