[SQLD] 데이터 모델링의 이해

dohyun-dev·2023년 3월 13일
1

데이터 모델의 이해

모델링의 이해

  1. 모델링의 정의 : 다양한 현상을 표기법의 맞게 표기
  2. 특징 : 추상화(형식에 맞게), 단순화(단순하게), 명확화(정확하게)
  3. 모델링의 3가지 관점
    • 데이터 관점
    • 프로세스 관점
    • 상관 관점
  4. 데이터 모델의 구분
    • Thing : 어떤 것
    • Attributes : 성격
    • Relationship : 연관성

데이터 모델의 기본 개념의 이해

데이터 모델링의 정의 : 데이터관점의 업무분석기법

데이터 모델링의 중요성 및 유의점

  1. 유의점
    • 중복 : 여러 장소에 같은 데이터를 저장하면 안됨
    • 비유연성 : 데이터 정의를 사용 프로세스와 분리해야함 - 데이터의 작은 변화가 DB에 중대한 변화를 일으킬 가능성을 줄여야함
    • 비일관성 : 데이터 중복이 없어도 발생, 상호 관계에 명확히 정의해야 위험 예방

데이터 모델링의 3단계 진행

  1. 개념적 데이터 모델
    • 추상화 수준 ↑
    • 업무 중심적
    • 포괄적
  2. 논리적 데이터 모델
    • Key, 속성, 관계 등을 정확하게 표현
    • 높은 재사용성
    • 정규화
  3. 물리적 데이터 모델
    • 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격 고려 설계

프로젝트 생명주기에서 데이터 모델링

개념

  • 계획 → 분석 → 설계
  • 계획 : 개념적 모델링 → 분석 : 논리적 모델링 → 설계 : 물리적 모델링

실제

  • 분석 → 설계
  • 분석 : 개념적 모델링 + 논리적 모델링 → 설계 : 물리적 모델링

데이터 모델링에서 데이터 독립성의 이해

  1. 데이터 독립성의 필요성
    • 유지보수비용 증가
    • 데이터 복잡도 증가
    • 데이터 중복성 증가
    • 요구사항대응 저하
  2. 데이터 독립성의 효과
    • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능
    • 단계별 시그마에 따라 DDL과 DML이 다름을 제공
  3. 데이터베이스의 3단계 구조
    • 외부 단계 : 사용자와 가까운 단계, 사용자 개개인이 보는 자료에 대한 뷰과 관련된 부분
    • 개념적 단계 : 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 형태로 디자인한 형태
    • 내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조

  1. 데이터 독립성 요소

    • 외부 스키마
    • 개념 스키마
    • 내부 스키마
  2. 두 영역의 데이터 독립성

    • 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에는 영향을 끼치지 않는다.
    • 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향을 미치지 않는다.
  3. 사상(Mapping)

    상호 독립적인 개념을 연결시켜주는 다리

    • 외부적 / 개념적 사상
    • 개념적 / 물리적 사상

데이터 모델링의 중요한 세가지 개념

  1. 데이터 모델링 세 가지 요소
    • Things : 어떤 것
    • Atrributes : 성격
    • Relationships : 관계

데이터 모델의 표기법인 ERD의 이해

  • 데이터 모델 표기법
    • 엔티티 - 사각형
    • 관계 - 마름모
    • 속성 - 타원형
  • ERD 표기법
    • 절차
      1. 엔티티 그리기
      2. 엔티티 배치
      3. 엔티티 관계 설정
      4. 관계명 기술
      5. 관계의 참여도 기술
      6. 관계의 필수여부 기술

좋은 데이터 모델의 요소

  • 완전성
  • 중복 배제
  • 업무 규칙
  • 데이터 재사용
  • 의사소통
  • 통합성

엔터티

엔터티의 개념

엔터티 : 실체, 객체

엔터티와 인스턴스에 대한 내용과 표기법

엔터티의 특징

  • 업무에서 필요로 하는 정보
  • 식별자에 의해 식별이 가능 해야함
  • 인스턴스의 집합
  • 업무 프로세스에 의해 이용
  • 속성을 포함
  • 관계의 존재

엔터티의 분류

  • 유무형에 따른 분류
    • 유형 엔터티 : 물리적 형태
    • 개념 엔터티 : 개념적 정보
    • 사건 엔터티 : 업무 수행에 발생
  • 발생시점에 따른 분류
    • 기본 엔터티 : 고유 식별자 O
    • 중심 엔터티 : 기본에서 발생 업무에 중심 역할
    • 행위 엔터티 : 두개이상 부모, 내용자주바뀜

속성

속성의 개념

업무에서 필요로 하는 인스턴스로 관리하고자하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위

엔터티, 인스턴스와 속성, 속성값의 관계

  • 한개의 엔터티는 두개 이상의 인스턴스 집합이어야 한다
  • 한 개의 엔터티는 두개 이상의 속성을 갖는다
  • 한 개의 속성은 한개의 속성값을 갖는다.

속성의 특징

  • 하나의 속성에는 한 개의 값
  • 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리

속성의 분류

속성의 특성에 따른 분류

  • 기본 속성 : 업무로부터 도출한 모든 속성
  • 설계 속성 : 속성을 새로 만들거나 변형하여 정의
  • 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성 계싼값

엔터티 구성방식에 따른 분류

  • PK 속성 : 엔터티를 식별할 수 있는 속성
  • FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
  • 일반 속성 : 엔터티에 포함되어 있고 PK, FK에 포함되지 않는 속성
  • 의미를 쪼갤 수 있는지에 따라 단순형, 복합형으로 분류
  • 단일값 : 속성 하나에 한 개의 값, 다중값 : 속성 하나에 여러 개의 값

도메인

각 속성이 가질 수 있는 값의 범위

  • 엔터티 내에서 속성에 대한 데이터 타입, 크기 그리고 제약사항을 지정하는 것

관계

개념

  • 엔터티의 인스턴스 사이의 논리적인 연관석으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
  • 관계의 페어링 : 페어링은 엔터티안에 인스턴스가 개별적으로 관계를 가니는 것이고, 이것의 집합을 관계로 표현
  • 관계의 분류
    • ERD : 존재에 의한 관계 / 행위에 의한 관계
    • UML : 연관 관계 / 의존 관계

관계의 표기법

  • 관계명
  • 관계 차수
    • 1:1
    • 1:M
    • M:N
  • 관계선택사양
    • 필수 관계
    • 선택 관계

식별자

식별자 개념

  • 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성
  • 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다

식별자의 특징

  • 유일성
  • 최소성
  • 불변성
  • 존재성

식별자 분류

  1. 대표성 여부 : 주식별자 / 보조식별자
  2. 엔터티 내에서 스스로 생성 : 내부식별자 / 외부식별자
  3. 단일 속성 여부 : 단일식별자 / 복합식별자
  4. 업무적으로 의미가 있던 식별자 속성을 대체하여 새로 만들었는지 : 본질식별자 / 인조식별자

식별자 표기법

주식별자 도출 기준

  • 해당 업무에서 자주 이용되는 속성
  • 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함
  • 속성의 수가 많아지지 않도록함

식별자관계와 비식별자 관계에 따른 식별자

  • 식별자 관계와 비식별자 관계의 결정 : 다른 엔터티와의 관계를 통해 자식 엔터티에 생성되는 속성을 외부식별자라고 하며 데이터베이스 생성시 Foregin Key 역할을 한다
    • 식별자 관계 : 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
      • Null 값이 오면 안되므로 반드시 부모엔터티가 생성되어야 자기자신의 엔터티 생성
      • 문제점 : 주식별자 속성이 지속적으로 증가, 복잡성과 오류 가능성 유발
    • 비식별자 관계 : 부모 엔터티로부터 속성을 ㅗ받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
      • 문제점 : 쓸데없이 부모엔터티까지 찾아가야 하는 경우가 발생한다.

0개의 댓글