Home Database 1. 데이터베이스 개론
Post
Cancel

Database 1. 데이터베이스 개론

Database

  • 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것

데이터의 종류

  • 통합된 데이터(integrated data) : 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거
  • 저장된 데이터(stored data) : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
  • 운영 데이터(operational data) : 조직의 목적을 위해 사용되는 데이터, 즉 업무를 위한 검색을 할 목적으로 저장된 데이터
  • 공용 데이터(shared data) : 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미

데이터 베이스의 특성

  • 실시간 접근성(real time accessibility) : 데이터베이스는 실시간으로 서비스됨(사용자가 요청하면 즉각 반응)
  • 계속적인 변화(continuous change) : 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀜
  • 동시 공유(concurrent sharing) : 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유.(데이터 베이스에 접근하는 프로그램이 여러 개 존재)
  • 내용에 따른 참조(reference by content) : 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 간에 따라 참조

DBMS(Database Management System)

  • 데이터를 통합 관리하는 시스템
  • 데이터를 가진 쪽을 서버, 외부에서 데이터 요청하는 쪽을 클라이언트(client)라고 함
  • DBMS 서버가 파일을 다루며 데이터 일관성 유지, 복구, 동시 접근 제어 등을 수행
  • 데이터의 중복을 줄이며 무결성을 유지함

File System vs Database System

구분파일 시스템DBMS
데이터 중복데이터를 파일 단위로 저장하므로 중복 가능DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음
데이터 일관성데이터의 중복 저장으로 일관성이 결여됨중복 제거로 데이터의 일관성이 유지됨
데이터 독립성데이터 정의와 프로그램의 독립성 유지 불가데이터 정의와 프로그램의 독립성 유지 가능
관리 가능보통데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행
프로그램 개발 생산성나쁨짧은 시간에 큰 프로그램을 개발할 수 있음
기타 장점별도의 소프트웨어 설치가 필요 없음데이터 무결성 유지, 데이터 표준 준수용이

Database의 구조화

Hierarchy

  • 내부 단계(Internal Level) : 물리적인 저장 장치의 관점
  • 개념 단계(Conceptual Level) : 조직 전체의 관점
  • 외부 단계(External Level) : 개발 사용자 관점

Metadata

Overview

  • database를 정의하거나 기술하는 data
  • catalog라고도 부름
  • e.g : 데이터 유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹 등등
  • Metadata 또한 DBMS를 통해 저장/관리 된다.

Da†a model

  • DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
  • DB구조를 추상화해서 표현할 수 있는 수단을 제공한다.
    • DB 구조 : 데이터 유형, 데이터 관계(relationship), 제약 사항(constraints) 등등
  • data model은 여러 종류가 있으며 추상화 수준과 DB구조화 방식이 조금씩 다르다.
    • DB에서 읽고 쓰기 위한 기본적인 동작들(operation)도 포함된다.
  • 분류
    • conceptual(or high-level) data model
      • 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이뤄진 모델
      • 추상화 수준이 가장 높다.
      • 비즈니스 요구 사항을 추상화하여 기술할 때 사용
      • entity-relationship model entity-relationship model
    • logical(or representational) data model
      • 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공
      • 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
      • 특정 DBMS나 storage에 종송되지 않는 수준에서 DB를 구조화 할 수 있는 모델
      • relational data model relational-data-model
      • 이외에도 object data model, object-relational data model 등이 있다.
    • physical(or low-level) data models
      • 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
      • data format, data ordering, access path 등등
        • access path : 데이터 검색을 빠르게 하기 위한 구조체(e.g. index)

Schema & State

Schema

  • data model을 바탕으로 database의 구조를 기술한 것
  • schema는 database를 설계할 때 정해지며 한 번 정해진 후에는 자주 바뀌지 않는다.

State

  • database에 있는 실제 데이터는 자주 바뀐다.
  • 특정 시점에 database에 있는 데이터를 database state 혹은 snapshot이라고 한다.
  • 혹은 instances의 집학이라고도 한다.

three-schema architecture

three-level

  • database system을 구축하는 architecture 중의 하나
  • 각 레벨을 독립시켜서 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위함
  • user application으로 부터 물리적인 database를 분리 시키는 목적
  • 세 가지 level이 존재하며 각각의 level마다 schema가 정의되어 있다.
    • external schema
    • conceptual schema
    • internal schema
      • 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
      • data storage, data structure, access path 등등 실체가 있는 내용 기술
    • external schema
      • external views, user views 라고 부름
      • 특정 유저들이 필요로 하는 데이터만 표현
      • 그 외 알려줄 필요가 없는 데이터는 숨김
      • logical data model을 통해 표현
    • conceptual schema
      • 전체 database에 대한 구조를 기술
      • 물리적인 저장 구조에 관한 내용은 숨김
      • entities, data types, relationships, user operations, constraints에 집중
      • logical data model을 통해 기술

DDL(Data Definition Language)

  • conceptual schema를 정의하기 위해 사용되는 언어
  • internal schema까지 정의할 수 있는 경우도 있음

Storage Definition Language(SDL)

  • internal schema를 정의하는 용도로 사용되는 언어
  • 요즘은(특히 relational DBMS)에서는 SDL이 거의 없고 파라미터 등의 설정으로 대체됨

View Definition Language(VDL)

  • external schemas를 정의하기 위해 사용되는 언어
  • 대부분의 DBMS에서는 DDL이 VDL 역할까지 수행

DML(Data Manipulation Language)

  • database에 있는 data를 활용하기 위한 언어
  • data 추가, 삭제, 수정, 검색 등등의 기능을 제공하는 언어

통합된 언어

  • 오늘 날의 DBMS는 DML, VDL, DDL이 따로 존재한다기 보다는 통합된 언어로 존재
  • 대표적인 예가 relational database language : SQL
This post is licensed under CC BY 4.0 by the author.

Operating System.12 Memory management

Operating System.13 Virtual Memory