SQLD - 데이터베이스 모델링

1. 데이터 모델링의 이해

  • 데이터 모델링 특징

    • 추상화 - 공통적인 특징으로 간략히
    • 단순화 - 복잡하지않고 누구나 이해하게
    • 명확성 - 모호하지 않고 명확하게
  • 데이터 모델링 단계

    • 개념적 모델링
    • 비즈니스 프로세스 분석 후 업무 전체에 대해 모델링
    • 복잡하지 않게 중요한 부분 위주
    • 개념적 ERD 작성, 기술적인 용어 가급적 사용 X
    • 논리적 모델링
    • 모든 릴레이션 정의
    • 정규화 수행 -> 재사용성, 독립성 향상
    • 물리적 모델링
    • 테이블, 인덱스, 함수 생성
  • 데이터 모델링 관점

    • 데이터 - 비즈니스 프로세스에서 사용되는 데이터
    • 프로세스 - 수행하는 작업
    • 데이터와 프로세스 - 프로세스와 데이터의 관계
  • ERD 그리는 순서

    • 엔티티 도출 - 배치 - 관계설정 - 관계명 서술 - 관계참여도 표현 - 필수 여부 표시
  • 데이터 모델링 고려사항

    • 독립성 확보 - 중복된 데이터 제거, 정규화
    • 고객 요구사항 표현
    • 데이터 품질 확보 - 표준 정의 및 준수

2. 3층 스키마

  • 3단계 계층으로 분리하여 독립성 확보. 각 계층을 ’‘라고 한다.
  • 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마가 영향 x
  • 물리적 독립성 - 내부 스키마가 변경되어도 개념 스키마 영향 x
  • 3층 스키마 구조

    • 외부스키마 - 사용자 관점, 업무 관련, 응용프로그램이 접근하는 DB
    • 개념스키마 - 설계자 관점, 사용자 전체 집단
    • 내부스키마 - 개발자 관점, DB의 물리적 저장구조

3. 엔터티

  • 엔터티의 특징

    • 식별자 - 유일한 식별자 있어야 한다.
    • 인스턴스 집합 - 2개 이상의 인스턴스(행)가 있어야 한다.
    • 속성 - 반드시 속성을 가지고 있어야 한다.
    • 관계 - 다른 엔터티와 최소 한개 이상의 관계가 있어야 한다.
    • 업무 - 업무에서 관리되는 집합이어야 한다.
  • 엔터티 종류

    • 유형/무형
    • 유형 엔터티 - 업무에서 도출되고 지속적으로 사용되는 엔터티
    • 개념 엔터티 - 물리적인 형태가 없는 엔터티
    • 사건 엔터티 - 비즈니스 프로세를 통해 생성되는 엔터티
    • 발생시점
    • 기본 엔터티 - 키 엔터티로 독립적으로 생성되는 엔터티 ex) 고객
    • 중심 엔터티 - 기본 엔터티와 행위 엔터티의 중간에 있는 것 (기본 엔터티로부터 발생되고 행위 엔터티를 생성한다.) ex) 주문, 계좌
    • 행위 엔터티 - 2개 이상의 엔터티로부터 발생된다. ex) 주문이력

4. 속성

  • 속성의 특징

    • 하나의 값만 가진다.
    • 주식별자에게 함수적으로 종속된다.
    • 즉, 기본키가 변경되면 속성 값도 변경된다.
  • 속성의 종류

    • 분해 여부
    • 단일 속성 - 하나의 의미로 구성
    • 복합 속성 - 여러개의 의미로 구성 ex)주소
    • 다중값 속성 - 속성에 여러개의 값을 가질 수 있는것. 다중값 속성은 엔터티로 분해된다. ex) 상품리스트
    • 특성에 따른 종류
    • 기본 속성 - 본래의 속성
    • 설계 속성 - 데이터 모델링하면서 발생되는 속성, 유일한 값 ex) 상품코드
    • 파생 속성 - 다른 속성에 의해 만들어지는 속성 ex) 합계

5. 관계

  • 관계의 종류

    • 존재 관계 - 엔터티 간의 상태. ex) 소속
    • 행위 관계 - 엔터티 간에 어떤 행위가 있는 것.
  • 관계 차수

    • 1대1 관계 - 완전/선택적 1대1 관계가 있다.
    • 1대N 관계
    • M대N 관계 - M대N 관계는 카테시안 곱이 발생해서 1대N, N대1로 해소해야한다.
  • 식별 관계와 비식별 관계

    • 식별 관계 - A 엔터티의 기본키를 B엔터키의 기본키의 하나로 공유할 경우, A의 기본키가 변경되면 B엔터티 값도 변경된다. 여기서 A는 강한 개체가 되고, B는 약한 개체가 된다. 실선으로 표시한다.
    • 비식별 관계 - 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계가 있는 것이다. 점선으로 표시한다.

6. 엔티티 식별자

  • 주 식별자(기본키, Primary key)

    • 최소성 - 최소성을 만족
    • 대표성 - 엔터티를 대표
    • 유일성 - 엔터티의 인스턴스를 유일하게 식별
    • 불변성 - 자주 변경x
  • 키의 종류

    • 기본키
    • 후보키 - 유일성과 최소성 만족 (대표성x)
    • 슈퍼키 - 유일성은 만족하나 최소성 만족x
    • 대체키 - 여러 후보키에서 기본키를 선택하고 남은 키
    • 외래키 - 다른 테이블에 참조 무결성을 위한 키
  • 식별자의 종류

    • 대표성 여부
    • 주 식별자 - 유일성&최소성 + 대표성까지 만족
    • 보조 식별자 - 유일성&최소성 But, 대표성x
    • 생성 여부
    • 내부 식별자 - 엔터티 내부에서 스스로 생성(부서코드)
    • 외부 식별자 - 다른 엔티티와 관계로 만들어지는 식별자.
    • 속성 수
    • 단일 식별자 - 하나의 속성으로 구성
    • 복합 식별자 - 두개 이상의 속성으로 구성
    • 대체 여부
    • 본질 식별자 - 비즈니스 프로세스에서 생성되는 식별자
    • 인조 식별자 - 인위적으로 만들어지는 식별자

Written by@[Ykss]
고이게 두지 않고 흘려보내는 개발자가 되자.

GitHubInstagramLinkedIn