[DB] 1. Database(DB)와 데이터 모델

작성일     업데이트:

카테고리:

태그:

Database(DB) 관련 기본 개념 정리

1. Database(DB)


[ 정의 ]

  • 데이터의 저장소 (데이터의 집합)

  • 데이터를 공용(shared)으로 사용할 수 있도록 중복을 최소화하여 통합(integrated) 저장(stored)한 운영 데이터(operational data)의 집합체

    • 공용 데이터 (Shared Data)

      - 여러 사용자와 응용프로그램들이 공용으로 이용 가능하도록 만든 데이터의 집합
      
    • 통합 데이터 (Integrated Data)

      - 하나의 주제에 따라 중복을 최소화한 데이터의 집합
      - 원칙적으로 데이터베이스에는 같은 데이터의 중복을 허용하지 않는다
        -> 하지만 효율성 문제로 최소의 중복(minimal redundancy)과 통제된 중복(controlled redundancy)이 허용된다
      
    • 저장 데이터 (Stored Data)

      - 컴퓨터가 접근 가능한 매체에 저장된 데이터의 집합
      
    • 운영 데이터 (Operational Data)

      • 조직의 고유 기능을 수행하기 위한 필수적인 데이터의 집합
      • 중복을 최소화하고 여러사람이 공유함에 있어서 문제가 발생하지 않도록 관리를 필요로 하는 데이터의 집합


[ 특징 ]

  • 실시간 접근성 (Real-Time Accessibility)

    • 다수의 사용자의 요구에 실시간으로 처리/응답하는 것을 말함
  • 지속적인 변화 (Continuous Evolution)

    • 저장된 데이터는 최신 정보가 정확하게 저장되어 처리되어야 한다
  • 동시 공유 (Concurrent Sharing)

    • 여러 사용자가 동일한 데이터를 동시에 서로 다른 목적으로 사용할 수 있어야 한다
  • 내용에 의한 참조 (Contents Reference)

    • 데이터 레코드들은 주소나 위치에 의해 참조되는 것이 아니라, 가지고 있는 값에 따라 참조해야 한다
      -> 사용자는 저장된 데이터의 주소나 위치에 관심이 없고 내용에만 관심이 있다
    • 데이터 내용에 의한 직접 참조 가능
  • 데이터 논리적 독립성(independence)

    • 응용프로그램과 데이터베이스를 독립시킴으로써 데이터 논리적 구조를 변경시키더라도 응용프로그램은 변경되지 않는다


[ 구성요소 ]

  • 데이터베이스

  • 스키마

  • DBMS(데이터베이스 관리 시스템)

  • 데이터베이스 언어

  • 데이터베이스 컴퓨터

  • 데이터베이스 사용자


[ 구조 ]

  • 3단계 구조(3-level database architecture)

    • ANSI/SPARC 구조라고도 한다
    • 데이터베이스 시스템은 여러 사용자들에게 효율적으로 사용되기 위해 외부(external) 단계, 개념(conceptual) 단계, 내부(internal) 단계로 구성되어있다
    • 3단계 데이터베이스 구조에서는 세 개의 서로 다른 스키마가 존재한다
  • 스키마 구조

    • 외부 단계(External Level)

      • 추상화의 최상위 단계로서 서브 스키마, 사용자 뷰 단계라고도 한다
      • 사용자의 관점에서 보는 스키마(Table, View)
    • 개념 단계(Conceptual Level)

      • 논리적 단계(ER)
      • 논리적 관점에서 본 전체적인 데이터 구조
      • 사용자들이 필요로 하는 통합 조직의 데이터베이스 구조
      • 물리적 저장 구조의 세부사항을 숨기고, 데이터 유형, 속성, 관계를 기술하는 단계
      • 조직 전체의 데이터베이스
      • 단 하나만 존재한다
    • 내부 단계(Internal Level)

      • 물리적 단계라고 하며 추상화의 최하위 단계이다
      • 물리적 저장장치의 입장에서 데이터베이스 전체가 물리적으로 저장되는 구조, 방법을 명세한 것 (DBMS, B-Tree, HDD)
      • 단 하나만 존재한다


[ 성능 ]

데이터베이스의 성능 이슈는 디스크 I/O 를 어떻게 줄이느냐에서 시작된다.

디스크 I/O 란 디스크 드라이브의 플래터(원판)을 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미한다.

이때 데이터를 읽는 데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다.

즉 디스크의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정된다고 볼 수 있다.


2. 데이터 모델


[ 데이터 모델이란 ]

  • 데이터베이스에서 데이터를 어떻게 저장하고 보여줄 것인지 구성하는 과정 및 구성된 모델
    -> 조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 또는 청사진을 생성하는 프로세스
    -> 이 청사진 또는 데이터 모델은 다양한 이해관계자들이 조직의 데이터에 대한 통일된 개념을 생성할 수 있게 돕는다

  • 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형이다
  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형이다
  • 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임이다
    -> 이 모델은 해당 비즈니스가 수집하는 데이터, 서로 다른 데이터 세트 사이의 관계, 데이터를 저장하고 분석하는 데 사용되는 방식을 설명한다
  • 현실 세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구이다
  • 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적 도구이다

  • 데이터 모델링 : 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업


[ 구분 ]

  • 개념적 데이터 모델

    • 현실 세계에 대한 인간의 이해를 돕기위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다
    • 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현한다
    • 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 한다.
    • 개념적 모델은 비즈니스 규칙과 기본 물리적 데이터베이스 관리 시스템(DBMS) 간의 다리 역할을 한다
    • 도메인 모델이라고도 한다
    • 대표적인 개념적 데이터 모델로는 E-R모델이 있다
  • 논리적 데이터 모델

    • 구현 모델이라고도 한다
    • 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있도록 컴퓨터 세계의 환경에 맞게 변환하는 과정이다
    • 필드로 기술된 데이터 타입과 이 데이터 타입들간의 관계를 이용하여 현실 세계를 표현한다
      -> 필드, 데이터타입 등으로 개념적 모델을 구현한다
    • 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다
    • 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다
    • 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계모델, 계층모델, 네트워크 모델로 구분한다
  • 물리적 데이터 모델

    • 성능과 직접적인 연관이 있다
    • 하위수준의 데이터 모델로 데이터가 저장되는 방법을 표현한다
    • 레코드형식, 레코드 순서, 접근경로, 저장방법에 관한 전문가가 정의한다
    • 논리적 데이터 모델을 특정 DBMS 기술에 매핑하고 소프트웨어의 용어를 사용한다
    • 물리적 데이터 모델은 논리적 데이터 모델과 최종 기술 구현 사이의 다리 역할을 한다


[ 구성요소 ]

  • 구조 (Structure)

    • 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들간의 관계
    • 데이터 구조 및 정적 성질을 표현
  • 연산 (Operation)

    • 저장된 실제 데이터를 처리하는 방법에 대한 명세
    • 데이터를 조작하는 기본 도구
  • 제약조건 (Constraint)

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


[ 표현 용어 ]

  • 개체 (entity)

    • 행, 튜플
    • 카디날리티(Entity) : 개체의 수
    • 데이터베이스가 표현하려는 분리된 유무형의 정보대상으로 서로 구분할 수 있는 것
    • 사람이 생각하는 개념이나 정보 단위같은 현실 세계의 대상체
    • 개체는 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다
    • 파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행한다
    • 독립적으로 존재하거나 그 자체로서도 구별 가능하다
  • 속성 (attribute)

    • 열, 필드
    • 디그리(Degree) : 속성의 수
    • 개체의 특성이나 상태를 기술하는 데이터의 가장 작은 논리적 단위
    • 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다
    • 개체를 구성하는 항목이다
  • 관계 (relationship)

    • 둘 이상의 개체들이 어떻게 연관되었는지를 나타냄
    • 개체 간의 관계 또는 속성 간의 관계
    • 일대일, 일대다, 다대다 의 형태가 있다


[ 종류 ]

  • 관계형 데이터 모델

    • 표(Table)을 이용해 데이터 관계를 정의
    • 데이터간의 관계를 Key를 통해 구성되고 서로 다른 데이터 테이블을 결합하거나 연결할 수 있다
    • 1:1, 1:N, N:M 관계를 자유롭게 표현
    • 간결하고 명확하고 상호변환성이 좋지만 성능이 떨어진다.
    • 관계형 DBMS 는 Relational DBMS로 RDBMS라고 부르기도 한다
    • 대표 DBMS: 오라클, MySQL, MsSQL, SQLite, 포스트그레
  • 계층형 데이터 모델

    • 트리 형태의 논리적 구조를 가지며, 개체는 트리의 노드로 표현
    • 개체간의 관계를 링크로 표현되며 부모-자식(종속적) 관계를 가짐
    • 1:N 대응관계만 존재
      -> 대용량 데이터베이스 처리에 매우 강력하다
    • 레코드 삭제 시 연쇄 삭제(Triggered Delete)가 이루어짐
    • 개체들 간 Cycle이 허용되지 않음
    • 개체(Entity)를 세그먼트(Segment)라 지칭
    • 한번 구축하면 구조를 변경하기 어렵고 데이터 저장의 물리적 구조에 대한 이해도가 높아야 한다
    • 대표 DBMS: IMS
  • 네트워크형 데이터 모델

    • 망형 모델, 그래프형 모델이라고도 불린다.
    • CODASYL이 제안한 모델로, CODASYL 모델이라고도 한다.
    • 대표적인 DBMS가 DBTG로, DBTG 모델이라고도 한다.
    • 그래프를 이용해서 데이터 논리 구조를 표현
    • 상하위 레코드는 N:M 대응 관계
    • 상위 레코드를 Owner, 하위 레코드를 Member라 지칭
      -> 이러한 구조 때문에 Owner-Member 모델이라고도 한다.
    • 계층형 데이터 모델에서 나타나는 중복 문제를 해결했고 레코드간의 관계가 그물처럼 되어있는 구조이다
    • 복잡한 구조 때문에 추후 구조 변경시 많은 어려움이 따른다
    • 데이터 추출이 빠르고 효과적이다
    • 유지 및 보수 비용이 많이 든다
    • 대표 DBMS: DBTG, EDBS, TOTAL


3. 데이터 모델링

주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말하며, 일반적으로 이를 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함한다


[ 단계 ]

단계 설명 산출물
요구사항 정의 목표 기능을 위한 데이터적 요구사항 정의 및 분석 요구사항 명세서
개념 모델링 핵심 엔티티 도출 및 관계를 개념적으로 정의 개념 ERD
논리 모델링 데이터 구조, 연산, 제약조건을 정확하게 표현 상세 ERD, 테이블 정의서
물리 모델링 구현할 DBMS를 기준으로 스키마 설계 DDL Query
데이터베이스 구현 실제 테이블을 생성하고 스키마 구현 데이터베이스
  • 데이베이스 스키마 설계·개발 순서

    • 1. 요구 조건 분석(Requirement Formulation)
    • 2. 개념적 설계(Conceptual Schema)
      • DBMS에 독립적인 개념 스키마 모델링
      • 트랜잭션 모델링
      • ER 다이어그램 산출
    • 3. 논리적 설계(Logical Schema)
      • 논리 스키마의 설계
      • DBMS의 구현 데이터 모델로 표현된 데이터베이스 스키마 도출
      • 컴퓨터가 이해하고 처리할 수 있는 특정 DBMS가 지원가능한 논리적 데이터 구조로 변환
      • 트랜잭션의 전체적인 골격을 개발하고 인터페이스를 정의한다
    • 4. 물리적 설계(Physical Schema)
      • DB 파일에 대한 저장 구조와 접근 경로를 결정
      • 응답시간, 저장공간의 효율, 트랜잭션 처리도를 고려
    • 5. 데이터베이스 구현
      • 해당 DBMS의 DDL을 통해 구축


댓글남기기