관계형 데이터 모델링 - 1

큰모래·2023년 3월 7일
0
post-custom-banner

출처 - 생활코딩

https://www.youtube.com/watch?v=moAXl6fvDO0&list=PLuHgQVnccGMDF6rHsY9qMuJMd295Yk4sa&index=5

생활코딩 이고잉님의 강의를 토대로 정리했습니다.


전체 흐름

  • 업무파악
    • 의뢰한 사람이 어떤 것을 꿈꾸고 있는가
  • 개념적 모델링
    • 어떠한 개념들이 있고, 각각의 개념들은 어떻게 상호작용하고 있는가
  • 논리적 데이터 모델링
    • 관계형 데이터베이스에 맞게 표를 잘 구성하는 것
  • 물리적 데이터 모델링
    • 어떤 데이터베이스 제품을 선택할지
    • 그 데이터베이스 제품으로 실제 표를 만드는 것

업무 파악

  • 일을 의뢰한 사람과 같이 만들어야 할 어플리케이션의 UI를 그려보면서 업무 파악을 확실히 할수 있다.

개념적 데이터 모델링

개념

  • 파악한 업무에서 개념을 뽑아내는 과정
  • 현실에서 개념을 추출하는 일종의 필터
  • 이를 ERD(Entity RelationShip Diagram)으로 표현할 수 있다.
    • ERD는 현실을 3개의 관점으로 바라볼 수 있게 한다.
      • 정보
      • 그룹 - 연관된 정보를 그룹화
      • 관계 - 그룹 사이의 관계
  • ERD는 매우 쉽게 표로 정규화할 수 있다.

  • RDB는 주제에 따라서 데이터를 그룹화할 수 있다.
  • 원하는 표만을 조회해서 컴퓨터의 자원을 아낄 수 있다.
  • JOIN을 통해 테이블을 합성해 원하는 데이터를 다양하게 뽑아낼 수 있다.
  • 정보를 입력하는 UI 가 원인이 되어서 DB의 데이터를 변경하는 결과를 낳는다.
  • 또한 데이터라는 원인에 의해서 UI가 표시된다.
  • DataBase 와 UI 는 서로 원인과 결과를 가진다.

Cardinality

  • Entity 들간의 수적 관계를 명시하는 표현

  • 1대1 관계


  • 1대N 관계


  • N대M 관계 (각 글은 여러 저자가 존재하고, 저자는 여러 글을 작성한다.)


Optionality

  • 저자는 댓글을 작성하지 않을수도 있다. (Optional)
  • 각 댓글은 반드시 저자가 존재한다. (Mandatory)
  • 저자와 댓글은 1대N 관계이다.

논리적 데이터 모델링

뽑아낸 개념을 관계형 데이터베이스 패러다임에 맞게 잘 정리정돈하는 것

Mapping Rule

  • Entity → Table
  • Attribute → Column
  • Relation → PK, FK

테이블 및 컬럼 생성, 관계 처리

  • 1대1 관계 (저자, 휴면아이디)

    저자는 꼭 휴면이 아닐 수 있다. (Optional)
    휴면은 꼭 저자여야 한다. (Mandatory)
    외래키는 휴면테이블의 author_id로 지정한다.


  • 1대N 관계 (저자, 댓글), (게시글, 댓글)

    • 저자와 댓글은 1대N 관계이고, 댓글 테이블은 저자의 아이디를 외래키로 가진다.

    • 게시글과 댓글은 1대N 관계이고, 댓글 테이블은 게시글의 아이디를 외래키로 가진다.


  • N대M 관계 (저자, 글)

    • 애매하다

    • 중재자가 필요함 (연결 테이블)

    • 저자와 게시글을 연결하는 write 테이블을 생성

    • 저자는 write를 안할 수 있으므로 (1) — (0,N) 관계

    • 게시글은 write가 있어야지만 존재하므로 (1) — (1,N) 관계이다.

profile
큰모래
post-custom-banner

0개의 댓글