[DB] ERD

NORMAN·2023년 10월 24일
0

DB

목록 보기
4/6

데이터 모델링

업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는 것

  • 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용
  • 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성 가능 -> 핵심 과정!

모델링 순서

1. 업무 파악 (요구사항 수집 및 분석)

  • 업무에 대해 파악하는 단계

2. 개념적 데이터 모델링

  • 일의 데이터 간의 관계를 구상하는 단계

다음은 피터 첸 표기법으로 ERD 다이어그램을 구성한 그림

3. 논리적 데이터 모델링

  • 개념적 데이터 모델링 후, 구체화된 업무 중심의 데이터 모델 만듦 -> 논리적 데이터 모델링
  • 업무에 대한 Key, 속성 관게 등을 표시, 정규화 활동 수행
  • 정규화는 데이터 모델링의 일관성 확보, 중복 제거, 신뢰성있는 데이터 구조 획득을 목적으로 함
  • 이때 각 데이터의 타입을 명시, 데이터간의 관계를 정밀하게 맺음, Key 지정 등을 수행

4. 물리적 데이터 모델링

  • 최종적으로 데이터를 관리할 데이터 베이스를 선택, 실제 테이블 만드는 작업 -> 실제로 SQL 코딩을 통해 완성하는 단계

데이터 모델링 총 정리

ERD

Entity Relationship Diagram, 데이터 구조를 한 눈에 알아보기 위해 사용

  • DB를 개발하기 전에 많은 아이디어 도출, 데이터베이스 설계의 이해 높이기 위해 데이터 모델링 실시
  • 쿼리문 작성할 때 테이블들이 구조화된 다이어그램을 보면서 도움을 받을 수 있음
  • 데이터의 다양한 특징 확인 가능 -> 요구사항을 그에 맞게 개발 가능


ERD의 핵심 세가지
1. Entity
2. Relationship
3. Attribute

Entity (개체)

  • Entity는 관리하고자 하는 정보의 실체 -> 사람, 객체, 개념 등
  • 데이터베이스를 설계할 때, 테이블이 엔티티로 정의될 수 있다.
  • 모든 엔티티는 하나 이상의 식별자(UID)를 지녀야 함 -> 없으면 엔티티라고 할 수 없다.
  • Weak Entity
    • 엔티티가 가진 속성들로는 엔티티를 고유하게 정의할 수 없는 개체를 의미
    • EX) 1203 이라는 강의가 있을 때, 001, 002, 003, ... 분반이 있을 때, 이 분반 이름은 따로 특징이 없고 다른 강의와도 겹칠 수 있다. -> 단독으로 존재할 수 없고 다른 엔티티에 의존해야 하는 Weak Entity

Attribute (속성)

  • 엔티티를 구성하고 있는 구성 요소
  • 데이터 타입을 반드시 같이 명시
  • Key Attribute
    • 다른 엔티티들과 중복되지 않는 고유한 값을 가진 속성으로 엔티티를 식별하는 데 사용
  • Composite Attribute (복합 속성)
    • 독립적인 속성들이 모여서 생성된 속성
    • EX) OO시, OO동, OO아파트 등의 독립적인 속성들이 모여 생성된 주소라는 속성은 복합 속성
  • Multi-Valued Attribute
    • 하나의 속성이 여러 개의 값을 가지는 속성
    • EX) 하나의 영상물에 로맨스, SF, 호러 등의 여러 장르가 공통적으로 존재
  • Derived Attribute
    • 다른 속성이 갖고 있는 값으로부터 유도된 속성
    • EX) 모든 상품의 총 가격을 나타내는 total이라는 속성 = 가격 속성 * 상품의 개수 속성 -> Derived Attribute

Relationship (관계)

  • 엔티티 간의 관계 의미
  • 두 엔티티 간에 선을 긋고, 관계 명칭 기록
  • 선택 사항 표시
    • 점선은 선택적 사항
      • EX) 사원과 부서 엔티티가 있을 때, 부서 입장에서는 사원을 배치 받을수도, 받지 않을수도 있다.
    • 실선은 필수적 사항
      • EX) 사원 입장에서는 부서를 무조건 받아야 함
  • 관계 형태 표시
    • 삼지창 -> 하나 이상 의미
    • 단선은 하나를 의미
      • 부서는 여러명의 사원을 가질 수 있음
      • 사원은 하나의 부서만 가능

Cardinality (관계 형태)

엔티티들이 가지고 있는 관계에는 여러 형태 존재

1:1 관계

  • 양쪽 모두 단 하나씩 존재하는 경우
  • EX) 어떤 상점에는 하나의 주소만이 존재

1:N 관계

  • 일대다 / 다대일 관계
  • 하나의 원소가 두 개 이상의 원소와 관계를 맺는 것을 의미
  • EX) 사원의 정보에 부서 번호를 추가한다고 생각하면 됨

    관계 모델로 바꿀 때 따로 relation 테이블을 만들지 않고, "Many"쪽에 있는 엔티티에 "one"쪽의 기본키를 속성(FK)으로 추가하게 된다.

N:M 관계

  • 다대다 관계
  • 양쪽 모두 하나 이상과 연결
  • EX) 하나의 수업에는 여러명의 학생 있을 수 있고, 한 명의 학생이 여러 개의 수업을 들을 수 있음

    M:N 관계를 M:1 관계로 분할, 관계를 맺는 두 엔티티의 기본키를 가져와 하나의 relation을 생성.
    즉, 수강신청이라는 테이블을 하나 더 만들어 학생은 자신이 수강신청하는 수업에만 관계를 맺고 있으면 된다.

Reference

mslilsunshine님의 티스토리
inpa님의 티스토리

profile
백엔드 개발자 노먼입니다.

0개의 댓글