Database/SQLD 개념

1. 데이터 모델링의 이해

생각없이 해도 생각보다 좋다. 2023. 6. 14. 15:30

데이터 모델링

데이터 모델링의 이해

데이터 모델링

데이터 모델링 특징

  • 추상화
  • 단순화
  • 명확성

    데이터 모델링 단계

  • 개념적 모델링
    • ERD를 만드는 과정
    • 추상적
  • 논리적 모델링
    • ERD로 스키마를 만드는 과정
    • 정규화
  • 물리적 모델링
    • 실제 데이터베이스를 구축하는 과정
    • 테이블, 인덱스 등 실제 구축

      데이터 모델링의 3가지 관점

  • 데이터 : 구조 분석, 정적 분석
  • 프로세스 : 시나리오 분석, 도메인 분석, 동적 분석
  • 데이터와 프로세스 : CRUD 분석

    ERD 작성 절차

  1. 엔티티 도출 및 그리기
  2. 엔티티 배치
  3. 엔티티 관계 설정
  4. 엔티티 관계를 서술
  5. 관계 참여도 표현(1:1, 1:N, M:N 등의 관계 수 표현)
  6. 관계 필수 여부 표현(0 or |)

    데이터 모델링 고려사항

  • 데이터 모델의 독립성(정규화가 필요한 이유)
  • 고객요구사항의 표현
  • 데이터 품질 확보

3층 스키마(3-Level Schema)

3층 스키마

  • 사용자, 설계자, 개발자
  • ANSI 표준
  • 데이터의 독립성을 확보하기 위한 방법
    • 독립성의 장점: 데이터 복잡도 감소, 데이터 중복 제거, 변경에 대한 대응력 향상, 유지보수 유용 등의 장점
    • 3층 스키마 중 하나의 스키마 층이 변경되더라도 다른 층의 스키마는 여향을 받지 않는다

      3층 스키마 구조

  • 외부 스키마
  • 개념 스키마
  • 내부 스키마

    3층 스키마 구조 설명

  • 외부 스키마
    • 사용자 관점 스키마
    • 기능적(업무적) 데이터 접근
  • 개념 스키마
    • 설계자 관점 스키마
    • 데이터 베이스의 규칙, 구조 표현
  • 내부 스키마
    • 개발자 관점 스키마
    • 데이터베이스의 물리적 저장 구조를 의미(테이블, 인덱스 등)

엔터티

엔터티

  • 업무에서 관리해야 하는 데이터 집합
  • 비즈니스 프로세스에서 엔터티를 도출할 수 있다. (실제 기능을 사용하면서 필요한 부분에 대해 엔터티를 도출)

    엔터티의 특징

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

    릴레이션, 테이블, 인스턴스

  • 릴레이션 == 테이블
  • 인스턴스 == rows, records를 의미

    엔터티 종류

  • 형태에 따른 구분
    • 유형 엔터티 : 업무에서 도출되며 지속적으로 사용되는 엔터티, 물리적인 형태가 존재함
    • 개념 엔터티 : 물리적인 형태가 없이 개념적으로만 존재함
    • 사건 엔터티 : 비즈니스 프로레스를 실행하면서 생성되는 엔터티
  • 발생 시점에 따른 구분
    • 기본 엔터티(키 엔터티) : 다른 엔터티에 영향을 받지 않고 독립적으로 생성되는 엔터티
    • 중심 엔터티(메인 엔터티) : 기본 엔터티와 행위 엔터티 중간, 기본 엔터티로부터 발생되고, 행위 엔터티를 생성하는 엔터티
    • 행위 엔터티 : 2개 이상의 엔터티로부터 발생되는 엔터티

속성

속성

  • 엔터티가 가지는 항목
  • 더 이상 분리되지 않는 단위
  • 인스턴스의 구성요소(같다고 봐도 무관할 듯?)

    속성의 특징과 종류

  • 특징
    • 업무에서 관리되는 정보(엔터티가 가지는 정보)
    • 속성은 하나의 값만 가진다.
    • 주식별자에 종속된다. (기본키가 변경되면 속성의 값도 변경됨)
  • 종류
    • 분해 여부에 따른 구분
      • 단일 속성
      • 복합 속성 : 주소(시, 군, 동)와 같이 여러 의미를 포함하는 속성(분해 가능)
      • 다중값 속성 : 상품 리스트와 같이 여러 값을 갖는 속성. 이는 엔터티로 분해 가능하다.
    • 특성에 따른 구분
      • 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
      • 설계 속성 : 데이터모델링 과정에서 발생되는 속성. 유일한 값을 부여(상품 코드)
      • 파생 속성 : 다른 속성에 의해서 만들어지는 속성(평균, 합계)

        도메인

  • 속성이 가질 수 있는 값의 범위
  • 성별이라는 속성의 도메인은 남자와 여자

관계; Relationship

관계

  • 두 엔터티 간의 관련성
  • 존재 관계와 행위 관계로 분류

    관계의 종류

  • 존재 관계
    • 회원과 관리점의 관계처럼 엔터티 간에 상태(종속 여부)를 의미
  • 행위 관계
    • 회원과 주문의 관계처럼 엔터티 간에 특정 행위가 있는 것

      관계 차수

  • 엔티티 간에 관계에 참여하는 수
    • 1:1
    • 1:N
    • M:N : M:N의 경우 카테시안 곱, 즉 M*N의 연산이 발생하므로 관계를 해소해야 한다.
    • 필수적 관계, 선택적 관계 : O 와 |로 표현한다.

      식별 관계와 비식별 관계

  • 식별 관계(강한 연결 관계)
    • Strong Entity: 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있는 엔터티
    • 식별 관계란 공유받는 Strong Entity의 기본키, 즉 FK를 기본키로 하는 관계이다.
    • 실선으로 표현
  • 비식별 관계(약한 연결 관계)
    • 공유받는 Strong Entity의 기본키, 즉 FK를 일반 Column으로 하는 관계
    • 점선으로 표현

엔터티 식별자

주식별자의 조건

  • 유일성
    • 주식별자에 의해 엔티티 내의 모든 인스턴스(데이터)들이 유일하게 구분되어야 한다.
    • 데이터의 중복이 없다는 의미
  • 최소성
    • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수이어야 한다.
    • 주식별자는 하나의 속성만으로 이루어져야 한다는 의미
  • 불변성
    • 주식별자 값은 자주 변하지 않는 것이어야 함
  • 존재성
    • 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
    • NOT NULL
  • 대표성
    • 주식별자는 엔터티를 대표할 수 있어야 한다.

      키의 종류

  • 기본키 : 대표
  • 후보키 : 유일성 O, 최소성 O
  • 슈퍼키 : 유일성 O, 최소성 X
  • 대체키 : 남은 키
  • 외래키 : 참조 무결성을 확인하기 위해 사용되는 키(허용된 값만 저장하기 위함)

    식별자의 종류

  • 대표성에 따른 구분
    • 주식별자
      • 유일성, 최소성 만족
      • 엔터티를 대표하는 식별자
    • 보조 식별자
      • 유일성, 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
  • 생성 여부에 따른 구분
    • 내부 식별자
      • 엔터티 내부에서 스스로 생성되는 식별자
    • 외부 식별자
      • 다른 엔터티와의 관계로 인해 생성되는 식별자
  • 속성의 수에 따른 구분
    • 단일 식별자
      • 하나의 속성
    • 복합 식별자
      • 두 개 이상의 속성
  • 대체 여부
    • 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
    • 인조 식별자 : 인위적으로 만들어지는 식별자, 최대한 범용적인 값을 사용해서 만든 식별자

'Database > SQLD 개념' 카테고리의 다른 글

3. SQL 기본 및 활용  (0) 2023.06.14
2. 데이터 모델과 성능  (0) 2023.06.14
0. 용어 정리  (0) 2023.06.14