[Database] 관계형 데이터 모델링

황인용·2020년 8월 27일
8

Database

목록 보기
10/16

관계(Relationships)란

  • 두 개 이상의 엔티티(Entity) 간에 존재하는 연관성

엔터티 간의 연관성

종속관계

  • 부모엔터티가 없으면 자식 엔티티가 존재할 수 없는 관계

참조관계

  • 단순히 참조 데이터를 관리하려는 관계
  • 관계를 삭제하더라도 한 속성의 연관성을 모르게 될 뿐, 하위 엔티티가 존재할 수 없는 것은 아니다

Entity Relationship Diagram(ERD)

  • Perter Chen에 의해 제안(1976)
  • 서로 관계 되어있는 엔터티를 그림(Diagram)으로 표현한 것

ERD 기본 요소

Entiry

  • 시스템화 하고자하는 사건, 사물
  • E.g. 저자, 글, 댓글

Attiribute

  • 엔티티, 관계성의 성질을 나타내는 더 이상 쪼갤수 없는 정보의 단위
  • e.g. 저자 테이블의 column : id(PK), 이름, 생년월일, 주민번호 등등

Relationship

  • 엔티티 또는 속성간의 연관성, 관계
  • 관계성(카디널리티, Cadinality) : 1대1, 1대N, N대M
  • e.g. 저자는 여러댓글을 작성할 수 있고, 댓글은 하나의 저자만 작성가능. 즉, 저자와 댓글은 1대N관계

ERD 표기법

ERD 표현 종류

Entiry

  • 엔티티(사각형)

Attribute

  • 속성(마름모)

Relationship

  • 갯수표현

  • 관계표현

  • 갯수와 관계표현

ERD 표기 순서

  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치한다.
  3. 엔터티간 관계를 설정한다
    • 기본 키로 속성이 상속되는 식별자 관계를 설정한다.
    • 중복되는 관계가 있으면 안된다.
    • Circle 관계가 발생하면 안된다.
  4. 관계명을 기술한다.
    • 현재형을 사용한다.
    • 지나치게 포괄적인 용어는 사용하지 않는다.
    • IE/Crow's 표기법에서는 링크마다 각각의 관계를 기술한다.
  5. 관계의 참여도를 기술한다.
  6. 관계의 필수여부를 기술한다.

ERD 표기 예시

ERD 구현 과정

기획(업무파악)

다른표현(ex. 엑셀, 다이어그램 등등)

Entity(Table)

  • 저자, 글, 댓글

Attribute(Column)

  • 저자 : 저자번호(id), 이름, 소개
  • 글 : 글번호(id), 제목, 내용, 저자_아이디
  • 댓글 : 댓글번호(id), 제목, 내용, 작성일, 저자_아이디

Relationship(PK, FK, JOIN)

  • 저자는 여러글을 작성할 수 있다
  • 글은 여러저자가 작성할 수 있다
  • 저자는 여러댓글을 작성할 수 있다
  • 댓글은 하나의 저자만 작성할 수 있다
  • 글은 여러댓글을 작성할 수 있다
  • 댓글은 한 글에 대해서 작성할 수 있다

Identifier(식별자)

  • 여러개의 집합체를 담고 있는 하나의 엔티티 또는 테이블에서 각 행(row)를 구분할 수 있는 논리적인 이름의 구분자 또는 열(column)
  • 하나의 엔티티에는 반드시 하나의 식별자가 존재해야 한다

Identifier(식별자) 예시

  • Cadidate(후보키) : user_id, email, national_id
  • Primary key(기본키) : user_id
  • Alternamte Key(대체키) : email, national_id

1 대 1 표기

1 대 N 표기

N 대 M 표기

Optional

Mandatory

최종 ERD

profile
dev_pang의 pang.log

0개의 댓글