[SQLD] 1과목_데이터 모델링의 이해_개념 정리

juyeon·2022년 10월 23일
0

데이터 다루기

목록 보기
28/35
  • SQLD 1과목 대비 개념 정리.
  • 인터넷에 떠도는 개념정리들을 모아서 최대한 합치되, 기준이 되는 정리본이 있긴 함.

데이터 모델링의 이해

1. 데이터 모델링의 이해

1) 데이터 모델의 이해

모델링

  • 정의: 현실세계를 단순화하여 표현하는 것
  • 특징
    • 추상화: 일정한 형식에 맞춰 표현 (=모형화, 가설적)
    • 단순화: 제한된 표기법이나 언어로 표현 -> 이해하기 쉽게 표현
    • 명확성: 이해하기 쉽게 표현하기 위해 애매모호함 제거, 정확하게 현상을 기술
  • 관점
    • 데이터 관점: 업무와 데이터 또는 데이터 사이의 관계(what, data)
    • 프로세스 관점: 진행되고 있거나 진행되어야 하는 업무(how, process)
    • 상관 관점: 데이터에 대한 업무 처리 방식의 영향(interaction)

데이터 모델링

  • 정의: 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
  • 목적
    • ① 정보에 대한 표기법을 통일하여 업무 내용 분석의 정확도 증대
    • ② 데이터 모델을 기초로 DB 생성
  • 기능
    • 시스템 가시화, 시스템 구조화 행동 명세화, 시스템 구축의 구조화된 틀 제공
    • 문서화, 세부 사항은 숨기는 다양한 관점 제공, 상세 수준의 표현방법 제공(구체화)

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

  • 중요성
    • 파급효과(Leverage)가 크다
    • 복잡한 정보 요구사항의 간결한 표현(Conciseness)
    • 데이터 품질 유지(Data Quality)
  • 유의점
    • 중복
    • 비유연성 -> 데이터 정의와 데이터 사용 프로세스 분리하자
    • 비일관성 -> 데이터들간 상호연관 관계에 대한 명확한 정의 필요

데이터 모델링 3단계 (&프로젝트 생명 주기)

  • 개념적 모델링(in계획, 분석 단계): 추상적, 업무 중심적이고 포괄적인 수준의 모델링. EA 수립시 사용
  • 논리적 모델링(in분석 단계): 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현. 높은 재사용성. 정규화
  • 물리적 모델링(in설계 단계): 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격 고려

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

  • 데이터 독립성의 필요성
    : 유지보수비용 증가, 데이터 복잡도 증가, 데이터 중복성 증가, 요구사항대응 저하
    (이미지 첨부)
  • DB의 3단계 구조: 데이터 독립성 확보를 목표로 함
    • 3층 스키마(3-level Schema)
      • 외부 스키마: 각 사용자 단계의 개인적 DB 스키마. 사용자 관점. 응용 프로그램이 접근하는 DB를 정의
      • 개념 스키마: 조직 전체의 통합된 DB 스키마. 설계자 관점. 데이터 모델링의 자향점
      • 내부 스키마: 물리적으로 데이터가 저장되는 방법을 표현하는 스키마. 개발자 관점. 물리적 저장 구조.
  • 데이터 독립성
    • 논리적 독립성: 외부와 개념 스키마가 서로 변화에 무관
    • 물리적 독립성: 개념과 내부 스키마가 서로 변화에 무관
  • 사상(Mapping): 상호 독립적인 개념을 연결시켜주는 다리
    • 외부적/개념적 사상(논리적 사상)
    • 개념적/내부적 사상(물리적 사상)

데이터 모델링의 3요소

  • Thing: 엔터티
  • Relationships: 관계
  • Attributes: 속성

데이터 모델 표기법: ERD

  • IE, Baker 기법이 많이 쓰임
  • ERD 작업순서: 엔터티 그림 -> 엔터티 배치 -> 엔터티 관계설정 -> 관계멸 기술 -> 관계의 참여도 기술 -> 관계필수여부

좋은 데이터 모델의 요소

  • 완전성: 업무에 필요한 모든 데이터가 모델에 정의
  • 중복배제: 하나의 DB내에 동일한 사실은 한번만
  • 업무규칙: 많은 규칙을 사용자가 공유하도록 제공
  • 데이터 재사용: 데이터가 독립적으로 설계되어야 함
  • 의사소통: 업무규칙은 엔터티, 서브타입, 속성, 관계 등의 형태로 최대한 자세히 표현
  • 통합성: 동일한 데이터는 한번만 정의, 참조 활용

2) 엔터티(Entity)

  • 개념: 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합, 명사형
  • 특징: 업무에서 필요로 하는 정보, 식별자에 의해 식별이 가능해야함, 인스턴스의 집합, 업무 프로세스에 의해 이용, 속성을 포함, 관계의 존재
  • 엔터티 명명: 현업에서 사용하는 용어, 약어 사용X, 단수명사, 유일성 보장, 명확성

엔터티 분류

  • 유무형에 따른 분류
    • 유형 엔터티: 물리적 형태가 있고 지속적으로 활용되는 엔터티. ex. 사원, 물품, 강사
    • 개념 엔터티: 물리적 형태가 없고 개념적 정보. ex. 조직, 보험
    • 사건 엔터티: 업무 수행에 따라 발생하는 엔터티. ex. 주문, 청구, 미납
  • 발생시점에 따른 분류
    • 기본 엔터티: 독립적으로 생성되는 엔터티. 다른 엔터티의 부모 역할. ex. 사원, 부서, 고객, 상품, 자재
    • 중심 엔터티: 기본 엔터티와 행위 엔터티의 중간에 존재하는 엔터티. ex. 계약, 사고, 청구, 주문, 매출
    • 행위 엔터티: 2개 이상의 부모 엔터티로부터 발생. ex. 주문목록, 사원변경이력

3) 속성(Attribute)

  • 정의: 업무에서 필요로 하는 인스턴스로, 최소의 데이터 단위
  • 엔터티, 인스턴스, 속성, 속성값의 관계
    • 한 개의 엔터티는 두 개 이상의 인스턴스 집합
    • 한 개의 엔터티는 두 개 이상의 속성을 갖는다
    • 한 개의 속성은 한 개의 속성값을 갖는다
  • 속성의 표기법: IE, Baker 표기법

속성의 종류

  • 특성에 따른 분류
    • 기본 속성: 본래의 속성
    • 설계 속성: 업무 규칙화를 위해 발생하는 속성
    • 파생 속성: 다른 속성에 의해 만들어지는 속성. ex. 계산된 값
  • 분해 가능 여부에 따른 분류
    : 단일 속성, 복합 속성, 단일값 속성, 다중값 속성
  • 엔터티 구성방식에 따른 분류
    • 기본키 속성: 엔터티를 식별할 수 있는 속성
    • 외래키 속성: 다른 엔터티와의 관계에서 포함된 속성
    • 일반 속성: 엔터티에 포함되고 PK나 FK 속성이 아닌 속성

도메인

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

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

4) 관계(Relationship)

  • 정의: 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
  • 페어링: 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
  • 종류
    • ERD 기준: 존재 관계(엔터티간의 상태), 행위 관계(엔터티간에 발생하는 행위)
    • UML 기준: 연관 관계(실선 표기), 의존 관계(점선 표기)
    • 식별자에 따른 분류: 식별 관계, 비식별 관계

5) 식별자(Identifier)

  • 정의: 엔터티를 대표할 수 있는 속성.
    • 하나의 엔터티에는 반드시 하나의 유일한 식별자가 존재
  • 특징: 유일성, 최소성, 불변성, 존재성
  • 종류
    • 대표성 여부에 따른 분류: 주 식별자(대표성 만족), 보조 식별자(유일성과 최소성만 만족)
    • 생성 여부에 따른 분류: 내부 식별자(자연스럽게 존재), 외부 식별자(다른 엔터티와의 관계를 통해 생성됨)
    • 속성 수에 따른 분류: 단일 식별자, 복합 식별자
    • 대체 여부, 업무적 의미에 따른 분류: 본질 식별자(대체X), 인조 식별자(대체O)

2. 데이터 모델과 성능

1) 성능 데이터 모델링의 개요

  • 정의: 데이터 모델링시, 어떤 작업유형에 따라 성능향상을 도모해야하는지 목표를 분명히 해야 정확한 성능향상 모델링 가능
  • 수행 시점: 분석/설계단계
  • 고려사항: 정규화(반드시 해야함), 반정규화

2) 정규화(Normalization)와 성능

  • 정규화를 통한 성능 향상
    • 데이터의 중복성 제거.
    • 입력/수정/삭제의 성능 향상
  • 함수적 종속성: 데이터들이 어떤 기준값에 의해 종속되는 현상(= 종속자가 결정자에 의해 종속됨). ex. 이름, 주소 등이 주민등록번호에 의해 종속됨
  • 반정규화를 통한 성능 향상
    • 조회의 성능 향상
  • 반정규화 기법
    • 테이블 반정규화, 칼럼 반정규화, 관계 반정규화

3) 대량 데이터에 따른 성능

  • 블록: 테이블의 데이터 저장 단위
  • 로우 체이닝(row chaining): 행 길이가 너무 길어 여러 블록에 걸쳐 저장되는 현상
  • 로우 마이그레이션(row migration): 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상
  • 테이블 분할: 반정규화 기법
    • 수직분할: column 단위로
    • 수평분할: row 단위로
      • 파티셔닝(patitioning): 하나의 테이블을 여러 데이터 파일에 분산 저장

4) 데이터베이스 구조와 성능

  • 슈퍼타입: 공통 부분
  • 서브타입: 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성
  • 슈퍼타입/서브타입 데이터 모델 변환을 통한 성능 향상
    : 속성을 할당하여 배치하는 수평분할된 형태의 모델 변환을 통해 1 정확하게 업무 표현 가능 2 물리적 모델링 시 선택의 폭 넓혀짐
  • 변환 기술
    • OneToOne type(1:1 타입)
    • Plus type(슈퍼/서브 타입)
    • Single type(All in One 타입)

5) 분산 데이터베이스와 성능

  • 설계 방식
    • 상향식: 지역 스키마 작성 후 전역 스키마 작성
    • 하향식: 전역 스키마 작성 후 지역사상 스키마 작성
  • 장점: 1 신뢰성과 가용성 증가 2 빠른 응답 속도와 통신비용 절감 3 용량 확장 용이
  • 단점: 1 관리 및 통제 어려움 2 데이터 무결성 관리 어려움 3 S/W 개발 비용 및 처리 비용 증가 4 불규칙한 응답 속도
  • 분산 DB의 투명성
    • 분할 투명성: 하나의 논리적 관계가 분할되어 각 단편의 사본이 여러 사이트에 저장됨
    • 위치 투명성: 사용하려는 데이터 저장 장소가 명시되지 안하도 됨
    • 지역사상 투명성: 지역 DBMS와 물리적 DB 사이의 사상이 보장됨
    • 중복 투명성: DB 객체 중복 여부를 몰라도 됨
    • 장애 투명성: 구성요소(DBMS, 컴퓨터)의 장애에 무관하게 트랜잭션의 원자성이 유지됨
    • 병행 투명성: 다수의 트랜잭션을 동시 수행했을 때 겨과의 일관성이 유지됨
profile
내 인생의 주연

0개의 댓글