Croot Blog

Home About Tech Hobby Archive

DAP 4과목. 데이터 모델링

제1장 데이터 모델링 이해

제1절 데이터 모델링 개요

1. 데이터 모델링 정의

현실 세계 조직의 업무에서 필요로 하는 정보를 컴퓨터 세계의 데이터베이스에 저장, 활용하기 위한 지적인 작업 과정

0Untitled.png

현실 세계의 정보를 추상화(Abstraction)를 통해 정보구조와 업무규칙을 ERD로 표현하는 과정을 개념 데이터 모델링 이라고 한다.

개념 데이터 모델을 특정 데이터베이스로 구현하기위해 표현하는 것을 논리 데이터 모델링 이라 한다.

데이터 모델링 탄생 배경

파일 시스템 이용 → 파일 공유 불가로 데이터 중복 발생 → 데이터 불일치 및 시스템 통합 한계 발생

계층형 데이터베이스 환경 → 정보의 고립화 발생 → 중복 데이터 발생

정보의 고립화 현상을 없애기 위해 관계형 데이터베이스 모델링 이용

정보시스템 개발 방법론

1Untitled.png

  • 구조적 방법론 : 절차 중심 업무 파악
  • 정보공학 방법론 : 데이터와 프로세스를 병행 분석 후 상호작용 분석을 정리
    • 정보 아키텍처
    • 시스템 아키텍처
    • 기술 아키텍처
    • 조직 아키텍처
  • 객체지향 방법론
  • 컴포넌트 기반 방법론
  • Agile

2. 데이터 모델링 중요성

데이터베이스 내에 데이터 값의 일관성과 정확성, 즉 데이터 무결성이 결정적으로 중요하기 때문이다.

데이터 모델은 데이터베이스 설계에 대한 계획 또는 청사진이다. 데이터 모델을 통해 구축될 시스템의 데이터 구조에 대한 형상을 이해하고, 요구사항, 변경 등 원활한 의사소통을 할 수 있게 해준다.

분석/설계 단계에서 조기에 오류를 발견하여 정정할 수 있도록 하는 최적의 수단

제2절 데이터 모델링 기법 이해

1. 엔티티-관계 데이터 모델

추상화

현실세계 존재하는 구체적 개체(Entity) 또는 객체(Object)들의 공통된 특징을 파악하여 인식의 대상으로 삼는 행위

논리 모델링에서 사용하는 추상화에는 세가지가 있다.

  • 유형화
    • 같은 성질을 갖는 멤버들을 타입 또는 유형(Class)이라는 하나의 개념으로 정의하는데 사용
  • 집단화
    • 속성이라는 타입들의 세트로 구성되는 새로운 타입을 정의하는 개념
  • 일반화
    • 여러 엔티티 타입 간의 공통적인 특성을 파악하는 과정
    • 추상화와는 다르게 슈퍼타입에 정의된 모든 특성이 서브타입으로 상속됨

타입과 인스턴스

  • 엔티티 타입(타입)은 엔티티(인스턴스)의 집합
  • 관계(타입)는 페어링(인스턴스)의 집합
  • 속성(타입)은 값(인스턴스)의 집합

2. 엔티티-관계 데이터 모델 구성요소

엔티티-관계 데이터 모델은 엔티티, 관계, 속성이라는 세 가지 요소로 구성

엔티티

동일한 업무 행위나 유사한 속성을 갖는 단일 개념으로 정의한 멤버들의 집합체

관계

하나 또는 두 개의 엔티티에서 인스턴스를 연관시키는 업무적인 이유

  • 여러 개의 엔티티를 Join 하여 정보를 조회할 수 있다.
  • 중복 데이터를 배제하여 데이터 정확성 향상에 기여한다.

속성과 도메인

속성은 엔티티에 저장되는 인스턴스들의 특성을 설명하는 항목

하나의 속성이 갖는 같은 종류의 모든 값들의 집합을 그 속성의 도메인(Domain)이라고 한다.

속성은 한 도메인 상에서 정의되어야하며, 정의된 속성은 해당 도메인으로부터만 값을 취할 수 있다.

식별자

엔티티에 저장되는 특정 인스턴스 하나를 식별할 수 있는 하나 또는 여러개의 속성을 **유일 식별자**라고 한다.

  • 일련의 식별자 속성은 반드시 값을 갖는다.
  • 일련의 식별자 속성의 값은 유일하다.
  • 식별자를 구성하는 속성은 최소한의 개수로 해야 한다.

제3절 데이터 모델링 표기법 이해

1. 엔티티-관계 데이터 모델 표기법

엔티티 표기법

  • 정보공학(IE) 엔티티 표기법 : 독립과 종속 엔티티로 구분
    • 독립 엔티티 : 다른 인스턴스에 의존하지 않는 엔티티
    • 종속 엔티티
      • 특성 엔티티 : 하나의 인스턴스에 여러 번 발생하는 속성의 그룹
      • 연관 엔티티 : 두 개 이상의 다른 엔티티로부터 식별자를 상속 받는 엔티티
      • 서브타입 엔티티 : 다른 부분집합과 구별되는 공통 속성이나 관계를 공유하는 부분집합
  • CASE*Method 엔티티 표기법
    • 독립, 종속 엔티티 구분은 없지만 연관, 슈퍼타입, 서브타입 개념은 동일

속성 표기법

‘엔티티 명 + 수식어 + 도메인 명’ 형태로 하는 것이 좋은 방법

  • 유일식별자, 주 키
    • 정보공학(IE) : 엔티티 사각형 상단에 별도 기재
    • CASE*Method : 속성명 앞에 # 표시
  • 외래식별자, 외래 키
    • 속성명 뒤에 (FK) 표기
  • 필수, 선택 속성
    • 정보공학(IE) : 속성명 앞에 필수는 * , 선택은 o 표기

관계 표기법

2Untitled.png

  • 관계 기수성(Cardinality, Degree) 표기법
    • 일대일 관계
    • 일대다 관계
    • 다대다 관계
  • 관계 선택성 표기법
    • 필수 관계
    • 선택 관계

관계 식별성 표기법

  • 식별 관계
    • 부모 엔티티의 식별자가 자식 엔티티의 식별자의 일부분이 되는 관계
    • 정보공학 표기법 : 실선
    • CASE*Method 표기법 : UID Bar 사용
  • 비식별 관계
    • 부모 엔티티의 식별자가 자식 엔티티의 식별자의 일반 속성으로 표현되는 관계
    • 정보공학 표기법 : 점선
    • CASE*Method 표기법 : UID Bar 미사용

제4절 관계형 모델 이론

1. 릴레이션 개념

두 개의 집합 x,y가 있을 때 두 집합간의 관계 R을 만족하는 모든 순서쌍

주어진 도메인들의 카디션 프로덕트의 부분집합

3Untitled.png

  • 릴레이션 스키마 : 릴레이션 이름과 애트리뷰트(Column)들의 집합으로 구성
  • 릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 포함되어 있는 튜플(Row)의 집합
  • 차수(Degree) : 애트리뷰트(Column)의 개수
  • 기수성(Cardinality) : 튜플(Row)의 수

속성과 도메인의 개념

  • 속성 = 애트리뷰트(Attribute)
    • 데이터의 가장 작은 논리적 단위
    • 더 이상 분해할 필요가 없는 원자 값
  • 도메인
    • 하나의 애트리뷰트가 갖는 같은 타입의 모든 원자 값들의 집합

2. 관계형 모델 이론

  • 데이터 구조 : 사용자가 인식하는 데이터의 구성
  • 데이터 조작 : 사용자가 관계형 데이터 구조에 행하는 일련의 처리 형태
  • 데이터 무결성 : 사용자가 관계형 테이블에 데이터 조작을 수행할 때 데이터의 일관성과 정확성을 유지할 수 있도록 하는 일련의 업무 규칙

데이터 구조 특성

  • 각 열은 하나의 값을 가진다
  • 각 열의 값은 동일한 종류이다
  • 각 행은 유일하다
  • 열의 순서는 의미가 없다
  • 행의 순서는 의미가 없다
  • 각 열은 유일한 이름을 가진다

데이터 조작

  • 집합 처리
  • 관계 연산자 : 조회
  • 처리 연산자 : 관계 테이블의 내용 변화

데이터 무결성

  • 엔티티 무결성 규칙
    • 식별자를 구성하는 각 속성이 null이 아닐 것
    • 엔티티 내 특정 인스턴스의 유일성을 보장할 것
    • 최소한의 속성 집합 일 것
  • 참조 무결성 규칙
    • 입력규칙
    • 삭제규칙
  • 도메인 무결성 규칙
    • 같은 도메인 값들끼리만 비교 가능
    • 속성이 취할 수 있는 값의 제한
  • 연쇄 작용 또는 업무 규칙
    • 사용자규칙 : 업무규칙을 쉽고 명확하게 기술
    • 사건 : INSERT, UPDATE, DELETE, SELECT
    • 엔티티 : 사건 대상 테이블
    • 속성 : 사건 대상 속성
    • 조건 : 연쇄작용 일으키기 위한 조건
    • 연쇄작용 : 업무규칙에 의해 해당 사건이 일어났을 때 수행 되어야 할 행위

제2장 데이터 모델링

제1절 논리 데이터 모델링 이해

1. 논리 데이터 모델링 핵심

업무에서 필요로 하는 요구사항을 데이터 관점에서 이해하고 정리하여 문서화하는 것

논리 데이터 모델링 필수 성공 요소

  • 많은 시간을 업무에 능통한 현업 사용자와 함께 진행할 것
  • 절차보다는 데이터에 초점을 두고 진행할 것
  • 데이터의 구조와 무결성을 함께 고려할 것
  • 개념화와 정규화 기법을 적용할 것
  • 가능하다면 다이어그램을 이용하여 업무를 표현할 것
  • 데이터 모델링을 지원하는 데이터 사전을 구축할 것

논리 데이터 모델링 목적 및 효과

  • 해당 비즈니스에 대한 데이터 관점에서의 명확한 이해
  • 전사적인 통합 데이터 체계 관리
  • 데이터 일관성 및 정확성 유지를 위한 규칙 도출
  • 안정적인 데이터베이스 설계의 토대 마련
  • 정보시스템 관계자와 명확한 의사소통을 위한 수단으로 활용

2. 논리 데이터 모델링 절차

4Untitled.png

  • 주제 영역 정의
  • 엔티티 정의
  • 관계 정의
  • 속성 정의
  • 식별자 확정
  • 정규화
  • 이력 관리

제2절 주제 영역 정의

1. 주제 영역 개념

주요 자원, 상품, 활동을 중심으로 조직이 관심을 가지는 영역

조직이 사용하는 데이터의 최상위 집합

주제 영역은 계층적으로 표현될 수 있으며 분해하면 하위 수준의 주제 영역 또는 엔티티가 나타난다.

2. 주제 영역 도출

주제 영역 발견 기법

5Untitled.png

가치 사슬(Value Chain) 분석 기법 활용

주제 영역 도출 방안

  • 업무 기능의 이름으로부터 도출
  • 업무에서 사용하는 데이터의 명사형 도출
  • 하향식 접근방법
  • 상향식 접근방법

주제 영역 명명

  • 업무에서 사용하는 용어를 부여
  • 유일한 단수형 명사 사용
  • 데이터의 그룹을 의미하는 이름 부여

3. 주제 영역 활용

목적

  • 업무 분석 효율 향상
  • 업무 기능과 병행하여 분석 시, 모델 품질 확보
  • 주제 영역 계층과 업무 기능 계층 간 대응 관계 확인
  • 전사 업무를 위한 전체 데이터 구성에 대한 청사진 제공
  • 데이터 구성 및 통합에 대한 방향을 제시
  • 효율적 데이터 관리 기준 제공

장점

  • 데이터 및 업무 활동 모델의 품질 보증
  • 업무 범위 기준 확보
  • 분할 정복으로 집중화한 토의 가능
  • 모델 개발 조정 용이
  • 저장소 관리 용이

4. 주제 영역 정의 내용

주제 영역 목록

레벨 주제 영역 명 설명 대표 엔티티
주제 영역의 계층 수준 명명 규칙 준수 (단위 주제 영역인 경우) 대표적 엔티티 기술
  • 레벨 : 주제 영역의 계층 수준
  • 주제 영역 명
  • 설명(단위 주제 영역의 경우)
  • 대표 엔티티 : 대표적 엔티티 기술

제3절 엔티티 정의

1. 엔티티 개념

동일한 업무 행위나 유사한 속성을 갖는 단일 개념으로 정의한 멤버들의 집합체

다른 사람들과 소통하기 위하여 현실 세계의 인스턴스들을 추상화를 통해 엔티티로 정의하여 사용하는 것

2. 엔티티 분류

일반적 분류

  • 유형 엔티티 : 물리적 존재 대상
  • 활동 엔티티 : 어떤 사건에 관한 정보
  • 개념 엔티티 : 관리할 정보가 있는 무형

모델 관점 분류

  • 독립 엔티티
  • 종속 엔티티

발생 시점 분류

  • 키 엔티티 : 부모를 가지지 않는 엔티티
  • 메인 엔티티 : 키 엔티티를 제외한 업무 중심에 해당하는 엔티티
  • 액션 엔티티 : 키, 메인 엔티티가 아닌 모든 엔티티

3. 엔티티 도출

엔티티 도출의 가장 큰 목적은 업무를 빠짐없이 정확하게 표현하기 위한 것으로 방식은 중요하지 않다.

  • 현행 데이터베이스로부터 엔티티 도출
    • 조직의 정보 요구 사항을 빠짐없이 정확하게 지원하는지 확인
    • 현행 데이터베이스의 구조적인 문제점 및 해결 방안을 도출하기 위해
    • 목표 정보 요구 사항을 지원하기 위한 논리 데이터 모델 결정
    • 목표 데이터베이스로의 데이터 이행 시 정확한 원천 데이터 파악 위해
  • 정보요구 분석
    • 정보요구 사항을 범주로 분류하여 각 조직 계층이 원하는 정보요구 사항을 정리
    • 조직 전체 관계자들의 정보요구 사항을 파악하여 논리 데이터 모델에 반영하는 것이 매우 중요
  • 업무에서 사용하는 문서로부터 도출
    • 현업이 사용하는 실 데이터 값이 보이는 문서가 가장 좋은 자료
    • 논리 데이터 모델 검토 시 현업에서 발생하는 문서를 이용하는 방법을 추천
  • 사용자 인터뷰로부터 도출
    • 데이터 모델러는 현업 전문가와 인터뷰를 통해 명확하게 이해해야 좋은 모델을 만들 수 있다.
    • 각 조직만의 특별한 업무 규칙들을 잘 파악하여 모델에 표현하는 것이 가장 중요한 사항이다.
  • 아키텍처 모델로부터 도출
    • 정보 전략 계획(ISP)이나 전사아키텍처 계획(EAP) 수행 산출인 개념 데이터 모델을 이용하는 방법
  • 업무 수행 프로세스로부터 도출
    • 프로세스를 보면 정보가 관리되는 어떤 구별 가능한 인스턴스가 도출된다.
    • 중복이 발생할 수 있지만 통합, 정규화 과정에서 확인 가능
  • 엔티티 분류 기법 활용하여 도출
    • 주제 영역에서부터 분할 정복으로 엔티티를 분류 및 도출하며 모델을 생성

4. 엔티티 검증

  • 조직의 업무를 수행하는데 필요한 의미 있는 정보를 나타냄
  • 특정 사례가 아닌 유사한 사물들을 대표하는 집합체
  • 인스턴스가 포함할 내부 연관성 있는 속성에 의해 결정된 단일개념을 대표
  • 엔티티 내 인스턴스의 출현을 구별할 수 있는 능력을 제공
  • 정규화 규칙을 만족

5. 엔티티 정의 사항

데이터 모델 구축 팀이 수집 및 기록해야 하는 것들이다.

  • 엔티티 명 : 설정된 명명 규칙을 따르는 고유한 이름을 부여받아야 함
    • 지켜야 할 규칙
      • 현실 세계의 인스턴스 및 정보를 대표
      • 엔티티 명 자체로 의미를 표현
      • 물리적인 사항을 개념화한 논리적 사물을 반영
      • 최소한의 어휘로 의미 전달
    • 지키지 말아야 할 규칙
      • 승인되지 않은 약어
      • 정보시스템 구성요소 (테이블, 파일, 메뉴, 보고서 등)
      • 두 가지 이상의 개념을 동시에 사용하는 표현
  • 엔티티 설명
  • 엔티티 분류
  • 현재 발생 건수
  • 발생 건수 변화
  • 권한
  • 식별자 속성
  • 외래 식별자 속성
  • 식별자 이외 속성

6. 엔티티 일반화

일반화 정의

현실세계의 사물, 사건을 단순화하여 표현하는 추상화 기법 중 하나로 엔티티의 부분집합을 정의하는 것

  • 슈퍼타입 엔티티 : 일반화 계층의 가장 상위 엔티티
  • 서브타입 엔티티 : 공통의 속성이나 관계를 공유하는 인스턴스 부분집합

일반화 특성

  • 슈퍼타입은 두 개 이상의 동릭적인 서브타입으로 구성
  • 슈퍼타입은 각 서브타입들의 공통적인 속성과 관계를 가짐
  • 서브타입은 자신의 속성이나 독립적인 관계를 가짐
  • 속성이나 관계를 가지지 않는 서브타입은 되도록 일반 속성으로 처리

일반화 시점

  • 인스턴스가 공통 속성 집합을 가질 때 → 속성의 명확화
  • 인스턴스가 공통 관계 집합을 가질 때 → 관계의 명확화

일반화 장단점

| 구분 | 일반화(Generalization) | 상세화(Specialization) | | – | ———————————————————————- | ——————————————————————— | | 장점 | - 데이터 통합되어 조회가 간편

  • 업무 로직 변화 신속하게 대응 가능 - 명확한 업무 파악 가능
  • 데이터 추가, 변경 용이
  • 장애나 에러 파급효과 낮음
  • 업무파악, 인수인계 용이    
      단점 - 여러 업무 데이터가 섞여 파악 어려움
  • 모든 업무를 이해해야 관리 가능
  • 데이터 변경 시 타 업무 영향 발생 - 엔티티 증가로 관려 어려움
  • 데이터 불일치 발생 가능성
  • 통합 정보 도출 어려움

제4절 관계 정의

1. 관계 개념

하나 또는 두 개의 엔티티로부터 인스턴스를 연관시키는 업무적인 이유

부모·자식 엔티티

엔티티 사이 관계가 있을 때 기수성과 선택성에 따라 부모, 자식 엔티티를 구분한다.

외래 키가 나타나는 곳이 자식 엔티티

관계 읽기

엔티티에 인스턴스가 입력되는 시점에 관계가 있는 상대 엔티티에 인스턴스 필요여부에 따라 관계 선택성 결정

2. 관계 도출

일반적으로 현업이 사용하는 용어에서 동사적인 표현에 유의할 필요가 있다.

유형

  • 존재 관계 : 부서에는 사원이 근무한다.
  • 기능 관계 : 교수는 학생을 가르친다.
  • 사건 관계 : 고객은 상품을 주문한다.

3. 관계 정의 사항

데이터 모델 구축 팀이 수집 및 기록해야 하는 것.

  • 관계명 : 명명 규칙이나 표준에 맞는 이름 부여
  • 관계요약 설명 :
  • 외래 키 : 모든 외래 키 속성은 반드시 데이터 모델 내 주 키로 선언되어 있어야 한다. (참조무결성 기본 규칙)
  • 관계유형 : 부모의 이전 키들이 자식 엔티티에서 수행하는 역할에 따라 관계유형 구분
  • 기수성, 선택성 : 업무규칙을 정밀하게 묘사하는 내용
  • 참조무결성 : 데이터의 정확성과 일관성을 보장하는 입력, 수정, 삭제 규칙 세가지가 있다.

4. 특수 관계

자기 참조 관계

6Untitled.png

다대다 관계

다디대 관계는 카티션 프로덕트가 박생하여 정보의 왜곡이 따름.

따라서 논리 데이터 모델링 끝 시점에 연결(Associative) 엔티티로 다대다 관계 해소 필요

7Untitled.png

배타적 관계

엔티티의 행(Row)이 두 개 이상의 다른 엔티티 행과 관계를 맺는데 있어서 어느 시점에 반드시 하나의 엔티티의 행과 관계를 맺는 형태

정보공학(IE) 표기법에서는 표기가 불가능하여 대체로 설명해야한다.

8Untitled.png

제5절 속성 정의

1. 속성 개념

업무에서 필요로 하는 엔티티에 속하는 모든 인스턴스들이 공통으로 가지는 각각의 특성

데이터베이스 내에 저장되는 최소 단위의 정보로 속성 값을 통해 많은 의사 결정을 하게 된다.

2. 속성 도출

  • 현행 시스템 자료
  • 현업 장표 보고서
  • 사용자와 협의
  • 데이터 흐름도의 데이터 저장소
  • 전문 서적 및 자료
  • 다른 시스템 자료

3. 속성 정의 사항

엔티티 속성을 위한 속성 명세를 작성하는 데 걸리는 시간은 고품질의 데이터를 보장하기 위한 투자

속성 정의 사항

  • 속성 명
    • 의미가 명확한 속성 명칭 부여
    • 유일한 복합명사 사용
    • 단수형으로 속성 명 사용
    • 표준 단어 및 용어 제정
  • 속성 설명
  • 선택성 및 선택성 조건
  • 속성 유형
    • 기본 속성
    • 유도 속성 : 다른 속성 값으로부터 유도되는 속성
    • 설계 속성 : 업무 제약사항이나 운영 단순화 용 속성
  • 유도 알고리즘
  • 도메인
  • 허용 값
  • 기본 값
  • 소유 권한
    • 데이터 거버넌스 차원의 속성 정의 및 승인 권한
    • 데이터 생성 및 사용 권한 기록 관리

속성 상세정보 중요성

  • 업무 관련 데이터의 본질과 목적을 이해하는데 도움
  • 속성 수준의 무결성 설정 및 강화
  • 데이터 무결성을 개선하여 품질 향상
  • 데이터 사전을 구성

4. 속성 검증 및 확정

  • 원자 값 단위까지 분할
  • 하나의 값만 가지는지 검증
  • 유도 속성인지 검증

5. 유도 속성 규칙

  • 데이터 모댈 내에 반드시 기술 권장
  • 경영층이 원하는 정보를 대표
  • 사용자의 데이터 요구사항을 나타낸다
  • 식별자로서 역할 금지

제6절 식별자 확정

1. 식별자 개념

식별자 종류

  • 본질 식별자(Natural Key) : 유일성과 대표성을 보장하는 속성
  • 인조 식별자(Surrogate Key) : 인위적으로 만든 속성
  • 보조 식별자(Alternate Key) : 유일성을 만족하지만 대표성을 갖지 못하는 속성

후보 식별자 도출

  • Null 불가능
  • 유일성 만족
  • 나머지 속성도 직접 식별 가능
  • 속성 집합을 선택 시 개념적으로 유일해야 한다.
  • 자주 변경되지 않아야 한다

보조 식별자

유일한 값을 가지면서 필수적으로 정의되었다면 가능.

인조 식별자 지정

  • 범용적인 값을 사용
  • 유일 값을 만들기 위해 사용
  • 단일 인조 식별자로 대체할 수 없는 형태 주의
  • 편의성, 단순성 확보를 위해 사용 가능
  • 의미의 체계화를 위해 사용 가능
    • 코드화를 위하여 식별자 지정
  • 내부적으로만 사용

식별자 확정

하향식 방식으로 진행하는 것이 좋음

  1. 기준정보 엔티티 식별자 확정
  2. 중요 거래처리 엔티티 식별자 확정
  3. 기타 거래처리 엔티티 식별자 확정

제7절 정규화

1. 정규화 정의

엔티티에 데이터의 입력, 수정, 삭제 연산을 수행할 때 발생하는 이상현상을 제거하여 논리 데이터 모델링의 목적인 정확성, 일관성, 단순성, 비중복성, 안정성을 만족시키는 최적의 데이터 구조를 만들어가는 과정

2. 정규화 장점

  • 중복값 제거
  • Null 값 제거
  • 복잡한 코드 사용 감소
  • 새로운 요구 사항 발견 가능성
  • 업무 규칙 체계화
  • 데이터 구조 안정성 확보

3. 정규화 과정

_암기 : 완부이결다조_

  • 입력 이상
  • 수정 이상
  • 삭제 이상

제1정규형

  • 모든 속성은 하나의 원자적 값을 가져야 한다.
  • 모든 값은 동일한 형식이며 유일한 이름을 가져야 한다.
  • 행(Row) 간 식별 가능해야 한다.

제2정규형

  • 모든 속성은 식별자 속성에 완전 종속되어야 한다.

제3정규형

  • 식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다.

제8절 이력 관리

1. 이력 관리란?

데이터는 오랜 기간 유지시켜 좀 더 가치 있는 정보를 제공할 수 있도록 해야한다.

2. 이력 관리 대상 선정

사용자 조사

데이터 이력 관리는 비용이 들어가게 된다 따라서 검증 과정을 거쳐야 한다.

  • 변경 내역 감시 필요 여부
  • 시간에 따른 데이터 변경 여부
  • 시간에 따른 데이터 관계 변경 여부
  • 과거의 데이터 조회 필요 여부
  • 과거 버전 보관 필요 여부

이력 데이터 종류

  • 발생 이력 데이터
    • 이벤트 기반 이력 데이터 생성
    • 배치(batch) 기반 이력 데이터 생성
  • 변경 이력 데이터
  • 진행 이력 데이터

이력 관리 형태

  • 시점 이력 : 변경 발생 시각만 관리
  • 선분 이력 : 변경 시작부터 종료까지 관리

선분 이력 관리 유형

  • 인스턴스 레벨 이력 관리 : 변경 인스턴스 전체
    • 한 번의 액세스로 스냅샷 참조 가능
    • 로그성 데이터에 적합
    • 저장 용이
    • 컬럼 변경 시 추적 어려움
    • 자식정보(하위 데이터) 추적 어려움
  • 속성 레벨 이력 관리 : 변경 속성만
    • 변경 이벤트가 분명함
    • 통합 이력 관리 가능
    • 독립적 처리 가능(변경 부분만 처리 가능)
    • 변경이 많은 경우 적용 어려움
  • 주제 레벨 이력 관리 : 인스턴스 레벨 + 속성 레벨
    • 확장성 확보 용이
    • 독립적 처리 가능(변경 부분만 처리 가능)
    • 통합 이력 관리 가능
    • 부문 변경 정도 차이가 심한 경우 유리

3. 선분 이력 관리용 식별자 확정

선분 이력 관리 엔티티의 UID 확정은 향후 테이블로 만들어지고 사용될 때의 성능 측면도 고려해야한다.

데이터는 유일하지만 의미적으로 유일하지 않는 부분의 유일성 검증 조치를 병행해야 한다.

선분 이력에서 종료점 처리 시 주의 사항

  • NULL 처리
    • 비교 불가능, 인덱스 사용 불가
  • 최대값 부여
    • 가능한 기본값 제약 부여
    • 수행 속도 유리

제9절 논리 데이터 모델 품질 검토

데이터 모델 품질 검토 기준은 주로 논리 데이터 모델과 물리 데이터 모델에 대해 적용하며, 조직에 따라 개념 데이터 모델에 대한 검토 기준을 추가하기도 한다.

논리 데이터 모델 품질 기준

  • 정확성 : 데이터 모델 표기법 및 요구사항 반영 정확성
  • 완전성 : 요구사항 및 업무 영역 완전성
  • 준거성 : 제반 준수 요건들 누락 없이 준수 여부 확인
  • 최신성 : 현행 시스템 최신 상태 반영 확인
  • 일관성 : 데이터 요소 정의 및 참조 일관성 확인
  • 활용성 : 설명 충분성 및 변경 유연성 확인

2. 논리 데이터 모델 품질 검토 체크리스트의 활용

검토대상 검토항목
엔티티 엔티티명, 엔티티 정의, 통합 수준, 권한, 발생 건수·빈도, 엔티티 관계, 법규 준수, 요구 사항 추적 가능성
속성 속성명, 속성 정의, 속성 설명, 속성 유형, 식별자 정의, 법규 준수, 도메인 정의, 추출 속성 정의, 요구 사항 추적 가능성, 오너십 정의
관계 관계명, 관계 정의, 관계 설명, 관계 표현, 식별자 상속, 표구 사항 추적 가능성, 외래키, 참조무결성
모델 전반 주제영역 적절성, 논리모델 상세화, 이력 관리

제3장 물리 데이터 모델링

제1절 물리 데이터 모델링 이해

1. 물리 데이터 모델 정의

논리적 모델을 특정 데이터베이스로 설계함으로써 생성된 데이터를 저장할 수 있는 물리적인 스키마

논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환하는 것

2. 물리 데이터 모델 의의

사전에 작성된 논리적 데이터 모델을 각각의 관계형 데이터베이스 관리 시스템의 특성, 기능, 성능 등을 고려하여 데이터베이스의 물리적인 구조(Schema)를 작성해가는 과정

저장 공간, 분산, 데이터 저장 방법, 성능 등을 함께 고려하는 단계

3. 논리 데이터 모델-물리 데이터 모델

물리적 데이터 모델 설계 경우는 다음 4가지로 나눌 수 있다.

  • 분산 데이터베이스 구축 시
  • 물리 데이터 모델 비교
  • 물리적 환경의 변화
  • 물리적 모델의 형상 관리

제2절 물리 요소 조사 및 분석

1. 시스템 구축 관련 명명 규칙

시스템 구축과 관련된 명명 규칙 파악하여 물리 데이터 모델에 적용해야 한다.

2. 하드웨어 자원 파악

  • CPU
  • 메모리
  • 디스크
  • I/O 컨트롤러
  • 네트워크
    • 처리 가능 속도
    • 집중 부하 발생 시간대
    • 동시 접속 가용성

3. 운영체제 및 DBMS 버전 파악

운영 환경과 관련된 운영체제 관련 요소 파악 및 관리 현황 파악

4. DBMS 파라미터 정보 파악

DBMS가 관리하는 파라미터의 종류와 관리 대상들을 정확하게 파악하고 정의해야 한다.

데이터 저장 공간 관리 기법, 메모리 관리 기법 등의 파라미터 주의 필요.

5. 데이터베이스 운영과 관련된 관리 요소 파악

  • 사용자 관리 기법 및 정책
  • 백업·복구 기법 및 정책
  • 보안 관리 정책

제3절 논리-물리모델 변환

💡
변환은 글보다는 실제 ERD를 찾아볼 것.

1. 논리 데이터 모델-물리 데이터 모델 변환 용어

  • Entity → Table
  • Attribute → Column
  • Primary UID → Primary Key
  • Alternate UID ⇒ Unique Key
  • Relationship → Foreign Key
  • Business Constraints → Check Constraints

2. 엔티티-테이블 변환

테이블 설명

  • 테이블 : 컬럼, 로우, 지정된 유형의 데이터 값으로 이루어진 구조
  • 로우 : =튜플, 인스턴스, 어커런스
  • 칼럼 : Value 저장 항목
  • 기본키 : 하나 또는 여러 칼럼 조합으로 유일성
  • 외래키 : 외부 데이터 집합과의 관계 구현

서브타입 변환

논리모델링에서 표현된 서브타입은 물리 데이터 모델에서 테이블의 형태로 설계되어야 한다.

  • 슈퍼타입 기준 테이블 변환
    • 통합하여 하나의 테이블
    • 모든 서브타입 데이터 포함
    • 서브타입의 양이나 속성이 적을 경우 적용
  • 서브타입 기준 테이블 변환
    • 슈퍼타입 속성을 각 서브타입에 추가
    • 서브타입이 양이나 속성이나 관계가 많을 경우 적용
  • 개별타입 기준 테이블 변환
    • 슈퍼타입과 서브타입을 각각 테이블로 변환
    • 1:1 관계가 생성

3. 속성-칼럼 변환

일반 속성 변환

  • 칼럼 명칭은 표준화된 약어 사용
  • 칼럼 명칭은 짧은 것이 좋음

Primary UID → 기본키 변환

  1. Primary UID 속성에 PK 표시
  2. 여러 칼럼으로 구성된 UID는 NN, U1 표시
  3. 다른 Unique Key는 U2 표시

Primary UID(관계의 UID Bar) → 기본키 변환

  1. 외래키 칼럼 포함
  2. PK 일부로 표시
  3. 추가된 FK 칼럼에 표본 데이터 추가

Secondary(Alternate) UID → Unique Key 변환

Primary UID 변환 절차와 동일

테이블 정의서

테이블, 칼럼 변환 작업이 완료되면 테이블 정의서를 생성.

구축 시 개발자들이 가장 많이 참조하는 산출물

4. 관계 변환

1:M 관계 변환

  1. 1→PK, M→FK 로 변환
  2. 표본 데이터 추가

1:1 관계 변환

  1. Optional 테이블 기본키를 Mandatory 테이블의 외래키로 변환
  2. NN 표시

1:M 순환 관계 변환

  1. 외래키 칼럼 추가
  2. 칼럼 명칭은 가능한 관계 명칭 반영

배타적 관계 변환

  • 외래키 분리 방법 : 각각의 관계 칼럼으로 생성
  • 외래키 결합 방법 : 하나의 관계 칼럼으로 생성

5. 관리상 필요한 칼럼 추가

관리상의 이유나 프로그래밍 용이 차원에서 테이블이나 칼럼을 추가한다.

6. 데이터 타입 선택

  • 문자 타입
    • 영문만 사용 여부 확인
    • 문자열 최대 및 고정 길이 확인
  • 숫자 타입
    • 실제 숫자 타입 여부 확인
    • 세부 타입 결정 : Boolean, Integer, Decimal, Money 등
  • 날짜 타입
    • 세부 날짜 타입 기준 선정

7. 데이터 표준 적용

개념

표준 용어, 표준 도메인, 표준 명명 규칙 등 존재

적용 대상

  • 데이터베이스
  • 스토리지 그룹
  • 테이블스페이스
  • 테이블
  • 칼럼
  • 인덱스

데이터 표준 적용 방법

  • 명명 규칙
  • 표준 용어집

제4절 반정규화

시스템 성능 향상, 개발 과정 편의성, 운영 단순화를 위해 정규화의 원칙에 위배되는 행위를 의미함

성능과 관리효율을 증대시킬 수 있지만, 데이터의 일관성 및 정합성 유지 불리함

1. 테이블 분할

수직 혹은 수평 분할하는 것을 테이블 분할 또는 파티셔닝이라고 한다.

  • 수평 분할 : 레코드를 기준으로 테이블을 분할하는 것
  • 수직 분할 :
    • 조회 및 갱신 칼럼 분리
    • 조회 빈도가 잦은 칼럼
    • 거대한 칼럼 크기
    • 특정 칼럼 보안 적용

2. 중복 테이블 생성

Group by, Sum 등 집계 함수를 위해 특정 통계 테이블이나 중복 테이블을 추가하는 경우도 있다.

중복 테이블 생성 판단 근거

  • 정규화에 충실하지만 수행 속도가 증가 시
  • 많은 범위를 자주 처리해야 하는 경우
  • 특정 범위 데이터가 자주 처리되는 경우
  • 요약 자료만 주로 요구되는 경우
  • 인덱스, 클러스터링 으로 우선 해결

중복테이블 유형

  • 집계 테이블
  • 진행 테이블

3. 중복 칼럼 생성

중복 칼럼 생성 상황

  • 빈번한 조인이 필요한 칼럼
  • 상위 레벨 텡이블에 집계 칼럼 추가
  • 하위 레벨 테이블에 중복 칼럼 복사
  • 연산 컬럼 추가
  • 기타

제5절 물리 데이터 모델 품질 검토

1. 물리 데이터 모델 품질 검토 개요

물리 데이터 모델은 시스템 성능에 대해 직접적인 영향을 미치기 때문에 성능 문제를 사전에 검토하여 최소화하는 노력이 필요

물리 데이터 모델 품질 기준

  • 정확성 : 데이터 모델 표기법 및 요구사항 반영 정확성
  • 완전성 : 요구사항 및 업무 영역 완전성
  • 준거성 : 제반 준수 요건들 누락 없이 준수 여부 확인
  • 최신성 : 현행 시스템 최신 상태 반영 확인
  • 일관성 : 데이터 요소 정의 및 참조 일관성 확인
  • 활용성 : 설명 충분성 및 변경 유연성 확인

2. 물리 데이터 모델 품질 검토 체크리스트의 활용

검토대상 검토항목
테이블 테이블명, 테이블 설명, 테이블 정의, 통합 수준, 권한, 발생 건수·빈도, 법규 준수, 요구 사항 추적 가능성
칼럼 칼럼명, 칼럼 정의, 칼럼 설명, Primary Key, Unique Key, 법규 준수, 도메인 정의, 추출 칼럼의 정의, 요구사항 추적 가능성, 오너십 정의
FK 참조무결성 규칙 정의
모델 전반 바정규화, 인덱스 정의, 스토리지 정의