본문 바로가기

컴퓨터 공학/데이터베이스

ERD (Entity Relationship Diagram) 기초

1. 기본 개념

  • 데이터 모델링의 3요소
    1. 엔티티 - 사각형
    2. 관계 - 마름모
    3. 속성 - 타원형
  • ERD 그리기 절차
    1. 엔티티 도출
    2. 엔티티 배치
    3. 엔티티 간 관계 설정
    4. 관계명 기술
    5. 관계 차수 표현 : 1:1, 1:N, M:N
    6. 관계선택사양 표현 : 필수, 선택

2. 엔티티

  • 업무에서 관리해야 하는 데이터의 집합, 명사형, 인스턴스의 집합
  • 특징
    • 업무에서 필요로함
    • 유일한 식별자를 가짐
    • 2개 이상의 인스턴스를 포함함
    • 속성을 가지고 있음
    • 다른 엔티티와의 관계를 가지고 있음
  • 종류
    • 유무형에 따른 분류
      1. 유형 엔티티 : 물리적 형태가 있고, 지속적으로 활용되는 것
      2. 개념 엔티티 : 물리적 형태가 없는 것
    • 발생 시점에 따른 분류
      1. 기본 엔티티 Key Entity : 독립적으로 생성되는 엔티티
      2. 중심 엔티티 Main Entity: 기본 엔티티와 행위 엔티티 중간에 존재하는 엔티티
      3. 행위 엔티티 Active Entity/사건엔티티 : 2개 이상의 부모 엔티티로부터 발생하는 것으로, 비지니스 프로세스를 실행하면서 생성되는 엔티티, 지속적으로 추가 변경되어 데이터 양이 가장 많음
  • 명명 규칙
    1. 실무에서 사용하는 용어
    2. 약어 지양
    3. 단수 명사
    4. 유일성 보장
    5. 명확성

3. 속성

  • 엔티티가 가지는 최소 의미 단위
  • 인스턴스의 구성 요소
  • 엔티티, 인스턴스, 속성, 관계의 관계
    • 하나의 엔티티에 여러개의 인스턴스가 대응될 수 있음
    • 각각의 인스턴스들은 여러개의 속성을 가질 수 있음
  • 종류
    • 특성에 따른 분류
      1. 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
      2. 설계 속성 : 데이터 모델링 과정에서 업무 규칙하를 위해 발생하는 속성
      3. 파생 속성 : 다른 속성에 의해 만들어지는 속성
    • 분해 가능 여부에 따른 분류
      1. 단일 속성 : 하나의 의미
      2. 복합 속성 : 여러 의미, 단일 속성으로 분해 가능 ex) 주소
      3. 단일값 속성 : 하나의 값
      4. 다중값 속성 : 여러 값, 엔티티로 분해 가
    • 엔티티 구성 방식에 따른 분류
      1. 기본키 속성 : 엔티티를 식별할 수 있는 속성
      2. 외래키 속성 : 다른 엔티티와의 관계에서 포함된 속성
      3. 일반 속성 : 엔티티에 포함되고 기본키, 외래키가 아닌 속성

4. 관계

  • 엔티티 간의 논리적 관련성, 동사형
  • 관계 표기법
    1. 관계명
    2. 관계 차수 Cardinality : 관계 내 튜플의 전체 개수
      • 1 은 직선으로 표현
      • 여러개면 삼발로 표시
      • M:N = 관계형 DB에서 이 형태의 조인은 cartesian product 발생
    3. 관계선택사양 Optionality : 필수는 I, 선택은 O로 표시
  • 종류
    • ERD 기준
      1. 존재 관계 : 엔티티 간의 상태
      2. 행위 관계 : 엔티티 간에 발생하는 행위
    • UML (Unified Modeling Language) 기준
      1. 연관 관계 Association : 실선
      2. 의존 관계 Dependency : 점선
    • 식별자에 따른 분류
      1. 식별 관계 : 부모 엔티티의 식별자를 자식 엔티티의 주식별자로 사용, 즉 어떤 엔티티의 PK를 그 엔티티를 참조한 다른 엔티티가 PK로 사용하는 것
      2. 비식별 관계 : 부모 엔티티의 식별자를 자식 엔티티가 일반 컬럼으로 사용하고 식별자는 별도의 컬럼을 이요함 (약한 종속 관계)

5. 식별자

  • 엔티티를 대표할 수 있는, 각 인스턴스를 구별할 수 있는, 유일성을 만족하는 속성
  • 유일성, 최소성, 불변성, 존재성
  • DB키 종류
    1. 기본키 primary key : 엔티티를 대표하는 키, 후보키 중 하나 선정
    2. 후보키 : 유일성, 최소성 만족
    3. 대체키 : 기본키를 제외한 나머지 후보키
    4. 외래키 foreign key : 여러 테이블의 기본 키 필드, 참조 무결성을 확인하기위해 사용됨
  • 식별자 종류
    • 대표성 여부에 따른 분류
      1. 주식별자 : 대표성을 만족하는 식별자 업무에 자주 이용되는 속성으로 도출하고, 이름명 또는 복합 식별자는 지양
      2. 보조 식별자 : 유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음, 이 중 선택된 것이 주식별자로
    • 생성 여부에 따른 분류
      1. 내부 식별자 : 자연스럽게 존재하는 식별자 (=본질식별자)
      2. 외부 식별자 : 다른 엔티티와의 관계를 통해 생성되는 식별자
    • 속성 수에 따른 분류
      1. 단일 식별자 : 하나의 속성으로 이루어진 식별자
      2. 복합 식별자 : 여러 속성으로 구성된 식별자
    • 대체 여부에 따른 분류
      1. 본질 식별자 : 대체될 수 없는 식별자
      2. 인조 식별자 : 인위적으로 만들어지는 대체 가능한 식별자 ex) 순서 번호 후보 식별자 중 주 식별자로 선정할 것이 없거나, 주식별자가 너무 많은 복합 식별자인 경우 사용

'컴퓨터 공학 > 데이터베이스' 카테고리의 다른 글

반정규화 De-normalization  (0) 2022.01.07
정규화 Normalization  (0) 2022.01.07
데이터 모델링의 이해  (0) 2022.01.07
ELK) Logstash 기본 개념  (0) 2021.12.27
ELK) Elasticsearch 기본 개념  (0) 2021.12.27