데이터베이스 시스템

youngwiki
Pinkgo (토론 | 기여)님의 2025년 3월 10일 (월) 05:48 판

개요

Database-management system(DBMS)란 연관된 data들과 그러한 데이터들에 접근하는 프로그램의 집합이다.이를 통해서 사용하기 편리하고 효율적인 환경을 이용자에게 제공한다.

Database System(DB system)은 매우 많고 가치있기 때문에 다수의 유저와 application들에 의해 동시에 접근되는 정보를 관리하도록 설계되었다. 이를 위해 정보 저장을 위한 구조를 정의하거나 정보를 수정하는 메커니즘을 제공한다. 또한 DB system은 system crash나 허가되지 않은 접근들에 맞서서 저장된 정보들의 안전성을 담보해야 한다.

이런 DB system의 예시는 다음과 같다.

  • 기업 정보
    • 판매: 소비자, 상품, 구매
    • 회계: 가격, 영수증, 자산
    • 인적 자원: 직원 정보, 급여

목적

DB system은 file system을 통한 data관리의 어려움을 타파하기 위해 만들어졌다. 아래와 같은 어려움들이 존재한다.

  1. Data redundancy and inconsistency
    • 서로 다른 프로그래머들이 파일과 응용 프로그램을 장기간에 걸쳐 만드므로 다양한 파일들이 서로 다른 구조로 이루어질 가능성이 높다. 또한 응용 프로그램들이 서로 다른 프로그래밍 언어로 짜여질 가능성 또한 존재한다. (inconsistency)
    • 추가로 동일한 정보가 여러 파일에 동시에 존재할 가능성이 있다.
  1. Difficulty in accessing data
    • 유저가 data에 접근하여 이를 활용하고자 할때 그에 대한 응용 프로그램을 각각 만들어야 한다. 아니면 사용자가 수작업으로 데이터를 가공하여야 한다.
    • 예시로 유저가 60점 이상인 학생들의 목록을 추출할 때, 특정 주소지에 있는 학생들의 목록을 추출할 때, 모두 별개의 프로그램이 필요하다.
  1. Data isolation
    • 데이터가 여러곳에 분산되어 있고, 파일 형식 등이 다를 수 있으므로 적절한 응용 프로그램의 개발이 어렵다.
  1. Integrity
    • 어떤 데이터에 대한 응용 프로그램의 경우는 특정한 제약 조건이 필요하다. (예를 들면 몸무게 > 0 등...) 하지만 새로운 제약이 추가되거나 기존의 제약이 수정될 경우에는 이를 응용 프로그램에 적용하는 것이 어렵다.
  1. Atomicity of Updates
    • 컴퓨터가 응용 프로그램의 실행 중 문제가 발생하였을 때 이를 이전의 상태로 복원을 하여야 한다. 이는 DB의 일관성에 필수적인 요소이다. 예를 들어 은행에 500만원을 입금하였을 때 장애가 생기면 500만원이 입금되었으나 실제로는 계좌에 돈이 입금되지 않는 경우가 생길 수 있으므로 이를 취소해야 한다. 즉 반만 실행되서는 안되며, 완전히 성공하는 경우가 아니라면 아예 DB의 상태가 바뀌어서는 안된다. 하지만 파일 기반 시스템의 경우 이런 속성을 구현하는 것이 어렵다.
  1. Concurrent access by multiple users
    • DB 관리의 효율성과 속도를 위해서는 다수의 사용자가 동시에 접속할 수 있어야 한다. 하지만 이러한 경우 다음과 같은 문제가 생길 수 있다. 계좌 A의 잔액이 10,000달러인 상황에서 두 명의 은행 직원이 동시에 500달러와 100달러를 인출한다고 가정하자. 두 프로그램이 동시에 실행되면, 두 프로그램이 각각 이전 잔액인 10,000달러를 읽고, 차감한 후 새로운 값을 기록할 수 있다. 이 경우, 최종 잔액은 9,500달러 또는 9,900달러로 잘못 저장될 수 있다.
    • 이러한 문제를 해결하기 위해서는 시스템이 감독 기능을 제공해야 한다. 하지만 기존의 파일 처리 시스템에서는 여러 응용 프로그램들이 사전에 조율되지 않았기 때문에 이를 제공하기가 어렵다.
  1. Security problem
    • 사용자는 그 신분에 따라 접근할 수 있는 data의 범위가 달라져야 한다. 예를 들어 학생을 교수의 이름과 이메일 주소는 볼 수 있어도 교수의 연봉 등의 정보에는 접근할 수 없어야 한다. 하지만 파일 관리를 기반으로 DB를 관리하면 이러한 경우를 통제하기 어렵다.