ERD Basic

TIL Day 83

By polaris0208

ERD

데이터 베이스 설계 과정에서 중요한 역할

  • Entity : 개체
  • Relationship : 관계
  • Attribute : 속성

필요성

  • 요구사항의 체계적 이해
    • 요구사항을 분석
    • 개체와 개체간의 관계 파악
  • 데이터 구조의 시각화
  • 데이터 정규화
    • 중복 최소화, 데이터 무결성 유지

구성요소

Entity

  • 개체 : 데이터베이스에서 독립적으로 관뢰할 가치가 있는 대상 또는 실체
  • 데이터베이스의 테이블

판단 기준

  • 독립성
    • 로직 상 독립적으로 존재
    • 하나의 테이블로 따로 관리할 가치가 있는지
  • Primary Key
    • 고유한 식별자로 삼을만한 속성을 보유하는지
  • 속성의 집합
    • 여러 속성 대상을 상세하게 표현해야 하는지
  • 비지니스 가치
    • 데이터베이스로 관리할 비지니스적 가치
    • 중요한 정보, 필수적인 정보
  • 관계성
    • 다른 개체와의 관계를 가지고 있는지

Attribute

  • 개체의 특성, 정보
  • Colum으로 표현

Key 개념

  • Primary Key
    • 해당 테이블의 대표 식별자
    • 기본키를 통해 데이터베이스 엔진은 특정 행을 식별
      • 고유하게 식별하기 위해 반드시 유일해야 함
      • NULL값을 허용하지 않음
    • 예: 고객(Customer) 테이블의 Customer_ID
  • Candidate Key
    • 식별자의 집합
    • 고유하게 식별하기 위해 반드시 유일해야 함
      • NULL값을 허용하지 않음
    • 하나의 테이블에는 여러 후보키가 존재하며 하나를 선정 해 기본키로 사용
  • Alternate Key
    • 후보키 중 기본키로 선택되지 않은 나머지 후보키
    • 보조적인 식별자 역할
  • Foreign Key
    • 단른 테이블의 기본키 또는 후보키를 참조하는 경우
    • 두 테이블 간의 관계 Relationship와 참조 무결성 Referential Integrity를 보장
    • 예: 주문(Order) 테이블에서 Customer_ID 컬럼이 고객(Customer) 테이블의 Customer_ID를 참조
  • Composite Key
    • 두 개 이상의 속성을 합쳐서 하나의 키로 사용하는 경우
    • 단일 속성으로는 유일하게 식별하기 어려운 경우 여러 속성을 조합하여 유일성을 확보
    • 예: 수강 기록(Enrollment) 테이블에서 (Student_ID, Course_ID, Semester_ID)를 합쳐 복합키로 사용

Key의 고려사항

  • 유일성(Unique)
    • 테이블 내에서 각 행을 고유하게 식별
    • 중복, NULL값을 허용하지 않음
  • 간결성(Simplicity)
    • 단순한 속성을 사용
    • 향후 관리와 성능에 유리
  • 변경 빈도 최소화(Minimal Variability):
    • 키로 사용되는 속성은 자주 바뀌지 않도록 설정
  • 성능(Performance)
    • 효율적인 키 선정은 데이터 조회, 정렬, 조인 등의 효율에 영향
  • 관계(Relationship)
    • 두 개체 간의 연관성
    • 개체가 어떻게 연결되는지 표현

ERD Tools

MySQL Workbench

  • MySQL 공식 툴, 연동
  • 무료, 직관적인 인터페이스
  • MySQL 특화로 다른 DBMS와 호환성 우려

ERwin Data Modeler

  • 다양한 DBMS 지원
  • 고급 기능 보유
  • 유료

ER/Studio Data Architect

  • ERwin Data Modeler 비슷한 급
  • 양방향 동기화(Reverse/Forward Engineering) 가능
  • 유료

Lucidchart, Draw.io, Creately 등 클라우드 기반 다이어그램 툴

  • 웹 기반
  • 간단한 인터페이스
  • 실시간 협업
  • 전문적 기능은 제한적

PgModeler

  • PostgreSQL 전용
  • 오픈소스

Oracle SQL Developer Data Modeler

  • Oracle 전용
  • 다른 DBMS 환경은 제한적
Tags: TIL Tools