<영상공부> 관계형 데이터 모델링

김조은·2023년 10월 2일

영상공부 모음

목록 보기
26/49

movie

<모델이란?>

목적을 가지고 진짜를 모방한 것
→ 좋은 모델은 목적에 부합한 모방이어야 한다


<모델링의 흐름>





<모델링 자세히 살펴보기>

1. 업무 파악



2. 개념적 데이터 모델링 (ER다이어그램)

: 어떠한 개념이 있으며 어떻게 상호작용하는지 심사숙고 하는것

<ER다이어그램>

  • 정보

    정보를 발견하고 그것을 표현해 내는 것
  • 그룹

    연관된 정보를 그룹화하여 표현해 내는 것
  • 관계

    정보, 그룹 사이의 관계를 인식하고 표현해 내는 것




<ERD의 구성요소>



1. Entity(개념) 정의

: 쓰기 화면을 보면 표로 만들기 좋은 엔티티가 드러남



2. Attribute(속성)

  • 식별자 지정(Identifier)

식별할 수 있는 키가 없을 경우 인조키를 만들어 줘야 함(=primary key)
→ 위 그림에서는 저자 아이디가 인조키가 됨. (식별자라는 것을 밑줄로 표시함)


3. Relation(연결)

  • Cardinality

  • Optionality
    <해석>
    -저자는 여러 개의 댓글을 달 수 있다.
    -저자는 댓글을 달지 않을 수도 있다.
    -댓글은 저자가 반드시 필요하며 저자는 한명이다.



ERD 완성본 !





3. 논리적 데이터 모델링

: 관계형 데이터의 패러다임에 맞게 표로 전환 하는 것



  • 정규화



  • 제 1정규화(Atomic columns)
    tag를 atomic한 값(즉 하나의 값)으로 만들어줘야한다
  1. topic과 tag 각각의 표를 만든다.
  2. table(topic_tag_relation)을 만들고 MySQL일때 [rgb, free]이고 ORACLE일때 [rdb, commercial]이다.
    따라서, MySQL의 tag_id는 tag표에서 보면 1, 2가 되고 ORACLE의 tag_id는 1, 3이 된다.

  • 제 2정규화(No partial dependencies)
    title에 의존 하고 있는 중복값들인 description, created, author_id.. 등의 값들을 표시 한 것임
  1. Second normal form에다가 tltle에 의존하고 있는 각각의 중복 값이 있는 항목을 붙여 넣어 topic표를 만들고, 그외 나머지는 topic_type표를 만든다.
  2. topic표에서 중복되는 열은 제거하고 위에 있는 나머지 표들을 붙여넣는다.







4. 물리적 데이터 모델링

: 어떤 데이터베이스 제품을 사용할 것인지 선택하고, 그 데이터베이스 제품에 최적화된 표를 만드는 것 (SQL)

0개의 댓글