포스트

19. 데이터모델링 & 설계

19. 데이터모델링 & 설계

데이터모델

개념

  • 현실세계의 요소를 인간과 컴퓨터가 이해할 수 있는 정보로 표현한 것

  • 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형

  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형

종류

  • 계층형 모델Hierarchical Data Model
  • 망형(네트워크형) 데이터 모델

  • 관계형 데이터 모델Relational Data Model
  • 객체 지향형 데이터 모델Object Oriented Data Model

구분

개념적 데이터 모델

  • 현실세계에 대한 인식을 추상적인 개념으로 표현

  • 인간이 이해할 수 있는 정보 구조로 표현

  • 대표적으로 E-R Model

논리적 데이터 모델

  • 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조

  • 필드, 데이터타입 등으로 개념적 모델 구현

  • 관계 모델, 계층 모델, 네트워크 모델 등으로 구분

물리적 모델

  • 데이터가 저장되는 방법을 표현

  • 레코드 형식, 레코드 순서, 접근 경로, 저장방법에 관한 정의

구조

개체 | Entity

  • DB에 데이터로 표현하려고 하는 현실 세계의 대상체

  • 저장할 만한 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물 등

개체 타입 | Entity type

  • 개체를 구성하고 있는 속성들의 집합

개체 인스턴스 | Entity instance

  • DB에 저장되는 구체적인 객체

개체 세트 | Entity set

  • 개체 인스턴스의 집합

속성 | Attribute

  • 데이터의 가장 작은 논리적 단위

  • 개체가 가지고 있는 고유한 특성

관계 | Relation

  • 개체와 개체가 맺고 있는 의미있는 연관성

요소

구조 | Structure

  • DB에 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계

  • 데이터 구조 및 정적 성질

연산 | Operation

  • DB에 저장될 실제 데이터를 처리하는 방법

제약조건 | Constraint

  • 저장될 수 있는 데이터의 논리적인 제약 조건

Entity Relation Model

개념

  • DB에 대한 요구사항을 그래픽적으로 표현하는 방법

  • 피터 첸이 제안한 개념적 데이터 모델로써 현실 세계를 개체와 개체 간의 관계를 이용하여 개념적 구조로 표현

  • 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술하는 데이터 모델

  • 특정 DBMS 및 하드웨어에 독립적으로 DB의 구조를 나타낼 수 있음

  • 산출물로 E-R Diagram이 만들어짐

Entity

  • 현실 세계에서 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것

  • 데이터로써 DB에 저장할 가치가 있는 중요한 사람, 사물, 개념, 사건 등

  • E-R Diagram에서 개체는 사각형으로 표현

Attribute

  • 개체나 관계가 가지고 있는 고유의 특성

  • DB에 저장할 데이터의 가장 작은 논리적 단위

  • E-R Diagram에서 속성은 기본적으로 원으로 표현, 키 속성은 원에 밑줄 표현, 다중값은 두 개의 원으로 표현, 유도 속성은 원을 점선으로 표현

유형

단일 값 속성
값을 하나만 가질 수 있는 속성(이름, 학번 등)
다중 값 속성
값을 여러 개 가질 수 있는 속성(취미 등)
단순 속성
의미를 더는 분해할 수 없는 속성(성별 등)
복합 속성
의미를 분해할 수 있는 속성(주소, 생년월일 등)
이중 타원으로 표현
유도 속성
기존의 다른 속성의 값에서 유도되어 결정되는 속성(주민번호와 성별)
널 속성
아직 결정되지 않은 존재 하지 않는 값
키 속성
각 개체를 식별하는 데 사용하는 속성
밑줄 타원

Relationship

  • 서로 다른 개체가 맺고 있는 의미 있는 연관성

  • 개체 사이의 대응 관계

  • E-R Diagram에서 관계는 마름모로 표현

개체 간 대응 관계의 종류

1 : 1
개체 집합 A의 원소가 개체 집합의 B의 원소 1개와 대응
  |             |  
1 : N
개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소는 개체 집합 A의 원소 1개와 대응
  |             |<
N : M
개체 집합 A의 각 원소는 개체 집합 B의 원소 여러 개와 대응할 수 있고, 개체 집합 B의 각 원소도 개체 집합 A의 원소 여러 개와 대응
>|             |<
관계가 있을 수도 없을 수도 있음
~~             O  ~~

논리적 데이터 모델링

개념

  • 개념적 설계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계

  • 개념모델로부터 업무 데이터 및 규칙을 구체적으로 표현한 모델

  • 모든 업무용 개체와 속성, 관계, 프로세스 등이 포함

  • 모든 데이터를 정규화(Normalizaton)하여 모델링

  • 성능, 제약사항과는 독립적인 모델로, 특정 DBMS로부터 독립적

  • 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분

종류

  • 관계형 데이터 모델

  • 계층형 데이터 모델

  • 네트워크(망)형 데이터 모델

  • 객체지향 데이터 모델


데이터베이스 정규화

개념

  • 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화
    • 릴레이션을 작게 분해하는 과정
  • 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)을 유지할 수 있으며, DB의 저장용량 역시 줄일 수 있음

목적

  • 데이터 중복 최소화

  • 데이터 구조 안정성 최대화

  • 정보의 무손실 : 정보가 사라지지 않아야 함

  • 독립적인 관계는 별개의 릴레이션으로 표현

  • 정보의 검색을 보다 용이하게 함

  • 이상현상 최소화

  • 데이터 삽입 시 릴레이션 재구성 필요성 최소화

장 & 단점

장점

  • 데이터 중복의 최소화

  • 저장 공간의 효율적 사용

  • 릴레이션에서 발생 가능한 이상 현상 제거

단점

  • 처리 명령의 복잡

  • 실행 속도 저하

  • 분리된 두 릴레이션 간 참조 무결성 유지를 위한 노력 필요

  • 분리된 여러 개의 테이블에서 정보를 취합하기 위한 JOIN 연산이 필요

이상 현상 | Anomaly

  • 데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생

  • 이상은 속성들 간에 존재하는 여러 종류의 종속 관계를 하나의 릴레이션에 표현할 때 발생

이상의 종류

삽입 이상
데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
삭제 이상
한 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실
갱신 이상
튜플의 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

함수적 종속 | Functional Dependency

  • 어떤 릴레이션 R이 있을 때 X와 Y를 각각 속성의 부분집합이라고 가정했을 때
    • X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속
    • X -> Y

함수적 종속 관계

완전 함수적 종속 | Full Functional Dependency
종속자가 기본키에만 종속되어, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우
부분적 함수 종속 | Partial Functional Dependency
기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 속성 중 일부만 종속되는 경우
이행적 함수 종속 | Transitive Fucntional Dependency
X -> Y, Y -> Z 이란 종속 관계가 있을 경우, X -> Z가 성립 되는 경우

정규화 과정

  1. 비정규 릴레이션
    ↓ 도메인이 원자 값
  2. 1NF
    ↓ 부분적 함수 종속 제거
  3. 2NF
    ↓ 이행적 함수 종속 제거
  4. 3NF
    ↓ 결정자이면서 후보키가 아닌 것 제거
  5. BCNF
    ↓ 다치 종속 제거
  6. 4NF
    ↓ 조인 종속성 이용
  7. 5NF

제 1 정규형 | 1NF

  • 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있음

제 2 정규형 | 2NF

  • 부분 함수적 종속을 모두 제거하여 완전 함수적 종속으로 만듬

제 3 정규형 | 3NF

  • 이행적 함수 종속을 없앰

보이스 / 코드 정규형 | BCNF

  • 3차 정규형을 조금 더 강화한 버전

  • 결정자 중 후보키가 아닌 것들을 제거

제 4 정규형 | 4NF

  • 다치 종속을 제거

제 5 정규형 | 5NF

  • 조인 종속 제거

논리 데이터모델 품질 검증

개념

  • 데이터 모델 설계가 완료되면 이해관계자는 데이터 모델 리뷰를 통해 작성된 데이터 모델의 품질 검토

  • 향후의 모든 공정에 대해 영향을 미칠 수 있는 매우 의미있는 작업

기준

정확성

  • 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무영역 또는 요구사항이 정확하게 반영되었음을 의미

완전성

  • 데이터 모델의 구성 요소를 정의하는데 있어서 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미

준거성

  • 제반 준수 요건들이 누락 없이 정확하게 준수되었음을 의미

최신성

  • 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있고, 이슈사항들이 지체없이 반영되고 있음을 의미

일관성

  • 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 참조 & 활용 되면서, 모델 표현상의 일관성을 유지하고 있음을 의미

활용성

  • 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달할 수 있으면서, 업무 변화 시에 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.