본문 바로가기
공부/정보처리기사

[6] 데이터 입출력 구현(논리 데이터 저장소)

by Lagooni 2021. 9. 29.

데이터 모델(Data Model): 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.

데이터 모델 절차 (개/논/물)

  • 개념적 데이터 모델
    • 현실 세계에 대한 인식을 추상적 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
    • 주요 산출물로는 개체관계 다이어그램이 있음
  • 논리적 데이터 모델
    • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
    • 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델이다.
    • 논리적 데이터 모델링에서 정규화를 수행
  • 물리적 데이터 모델
    • 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 데이터 모델
    • 성능 측면에서 반 정규화를 수행

논리적 데이터 모델링 종류

  • 관계 데이터 모델
    • 논리적 구조가 2차원 테이블 형태로 구성된 모델
    • 기본키와 이를 참조하는 외래키로 관계 표현
  • 계층 데이터 모델
    • 논리적 구조가 트리형태로 구서된 모델
    • 상하 관계가 존재한다.
  • 네트워크 데이터 모델
    • 논리적 구조가 그래프 형태로 구성된 모델

관계 데이터 모델 구성요소

  • 릴레이션: 행과 열로 구성된 테이블
  • 튜플(Tuple): 릴레이션의 행에 해당되는 요소
  • 속성(Attribute): 릴레이션의 열에 해당되는 요소
  • 카디널리티(Cardinality): 튜플의 수
  • 차수(Degree): 속성의 수
  • 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
  • 인스턴스(Instance): 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다.

관계 대수 연산자의 종류

  • 일반 집합 연산자: 수학의 집합 개념을 릴레이션에 적용한 연산자이다
    • 합집합, 교집합, 차집합, 카티션 프로덕트
  • 순수 관계 연산자: 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다.
    • 셀렉트, 프로젝트, 조인, 디비전

관계 해석: 관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.

논리 데이터 모델링 속성 (개/속/관)

  • 개체(Entity): 관리할 대상이 되는 실체
    • 사물 또는 사건으로 정의된다
  • 속성(Attributes): 관리할 정보의 구체적 항목
    • 개체가 가지고 있는 요소 또는 성질이다.
  • 관계(Relationship): 개체 간의 대응 관계
    • 두 개체간의 관계를 정의한다.

개체 관계(E-R) 모델: E-R모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델이다.

정규화(Normalization): 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.

이상 현상(Anomaly): 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.

데이터베이스 이상현상

  • 삽입 이상: 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
  • 삭제 이상: 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상: 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

데이터 베이스 정규화 단계 (원/부/이/결/다/조)

  • 1정규형(1NF): 원자값으로 구성
    • 테이블 내의 속성값은 원자값을 가지고 있어야 한다.
  • 2정규형(2NF): 부분 함수 종석 제거(완전 함수적 종속 관계)
    • 부분 관계를 갖는 경우 별도의 테이블로 두면 부분 함수 종속 관계가 제거 되어 2차 정규화를 만족한다.
  • 3정규형(3NF): 이행함수 종속 제거
    • A->B 이고 B->C 이면서 A->C 관계가 같이 있는 경우를 이행함수 종속 관계라고 한다.
  • 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF): 다치 종속 제거
  • 5정규형(5NF): 조인 종속 제거
    • 조인 종속 관계를 제거하기 위해서는 모든 속성 관계에 대한 테이블을 만들어 줌으로써 조인했을 때 정확히 원래의 데이터로 복원할 수 있게 한다.

반 정규화(De-Normalization): 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.

반 정규화 특징

  • 장점: 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
  • 단점: 데이터의 일관성 및 정합성 저하, 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음

반 정규화 기법 (테병분중 컬중 관중)

구분 수행방법 설명
테이블 테이블 병합 1:1관계, 1:M 관계를 통합하여 조인 횟수를 줄어 성능을 향상
슈퍼타입/서브타입 테이블 통합 통해 성능 향상
테이블 분할 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함
수평분할: 테이블 분할에 레코드를 기준으로 활용
수직분할: 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용
중복 테이블 추가 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가
컬럼 컬럼 중복화 조인 성능 향상을 위한 중복 허용
관계 중복관계 추가 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법

 

댓글