DBMS/DBMS Common

[DBMS] Common(1) - Database System

vincent77 2025. 9. 10. 13:49

데이터베이스

데이터베이스는 단순히 데이터를 모아놓은 것이 아니라, 여러 응용 시스템들이 공유하고 사용할 수 있또록 관련성 있는 데이터들의 집합을 체계적으로 저장 및 관리하는 저장소를 의미한다.

데이터의 정의와 특성

  • 데이터 : 현실 세계에서 관찰하거나 측정하여 얻은 사실(Fact)이나 값(Value)을 의미. 예를 들어 ‘홍길동’, ‘20세’, ‘서울’과 같은 것들이 데이터
  • 정보 : 데이터를 가공하거나 처리하여 얻은 의미 있는 결과를 정보라고 함
  • 데이터의 특성(데이터베이스 관점)
    • 통합된 데이터 : 여러 사용자가 공동으로 사용할 수 있도록 중복을 최소화하여 통합된 데이터
    • 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
    • 운영 데이터 : 단순한 데이터 모음이 아니라, 조직 고유 기능을 수행하기 위해 꼭 필요한 데이터
    • 공유 데이터 : 여러 사용자와 응용 프로그램이 함께 이요할 수 있도록 공유되는 데이터

데이터베이스의 필요성과 등장 배경

  • 데이터베이스 이전에는 파일 시스템으로 데이터를 관리, 각 응용 프로그램이 각자 데이터 파일을 가지고 관리하는 방식
  • 파일시스템의 문제점
    • 데이터 중복성 : 각자 별도 파일로 관리하여 중복 가능성 높음, 저장공간 낭비+데이터 일관성 유지 어려움
    • 데이터 불일치성 : 중복된 데이터 일부만 수정되고 나머지 수정 안되면 데이터끼리 불일치
    • 데이터 종속성 : 응용 프로그램이 특정 파일 구조에 종속돼 파일 구조가 변경되면 해당 파일을 사용하는 모든 프로그램 수정 필요
    • 데이터 동시 접근의 어려움 : 여러 사용자가 동시에 데이터를 읽거나 수정하기 어려워 복잡한 메커니즘 필요
    • 데이터 보안 및 복구 미흡 : 파일시스템 만으로 복잡한 보안 요구사항이나 데이터 복구기능 제공 어려움
  • 위와 같은 문제로 데이터베이스와 이를 관리하는 DBMS 등장

DBMS

정의 및 역할

  • Database Mnangement System은 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터를 생성, 공유, 관리해주는 소프트웨어
  • 주요 역할
    • 데이터 구조 정의(스키마 정의)
    • 데이터 저장 및 관리
    • 데이터 검색, 삽입, 수정, 삭제 (CRUD; Create Read Update Delete)
    • 데이터 일관성 및 무결성 유지
    • 보안 및 접근 제어
    • 동시성 제어
    • 장애 발생시 데이터 복구

주요 기능

  • 데이터 정의(Data definition)
    • 데이터베이스 구조(스키마), 데이터 타입, 제약 조건 등을 정의하는 기능
    • DDL(Data Definition Language)를 사용
  • 데이터 조작(Data Manupulation)
    • 저장된 데이터를 검색, 삽입, 수정, 삭제 하는기능
    • DML(Data Manipulation Language) 사용
      • ex : SQL의 SELECT, INSERT, UPDATE, DELETE
  • 데이터 제어(Data Control)
    • 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 위한 기능
    • DCL(Data Control Language) 또는 TCL(Transaction Control Language) 사용
      • ex : SQL의 GRANT, REVOKE, COMMIT, ROLLBACK
  • 데이터 저장 관리 (Data Storage Management)
    • 데이터를 효율적으로 저장하고 접근할 수 있도록 관리
  • 질의 처리 (Query Processiong)
    • 사용자 데이터 검색(Query) 요청을 처리하고 최적화하는 기능
  • 트랜잭션 관리(Transaction Management)
    • 데이터 처리 단위인 트랜잭션을 관리하고 ACID 속성을 보장
    • 트랜잭션 및 동시성 제어

데이터베이스 시스템 구성요소

데이터베이스 사용자

  • 데이터베이스에 접근하여 데이터를 사용하거나 관리하는 사람 또는 응용 프로그램
  • 종류 : 최종 사용자(End User), 응용 프로그래머(Application Programmers), 데이터베이스 관리자(DBA)

데이터베이스 응용 프로그램

  • 데이터베이스에 저장된 데이터를 활용하여 특정 업무를 수행하는 소프트웨어
  • DBMS가 제공하는 인터베이스(API or 드라이버)를 통해 데이터베이스에 접근

DBMS

  • 사용자의 요청을 처리하고 데이터베이스를 관리하는 핵심적인 역할

Database

  • 실제 데이터가 저장되는 물리적 공간 또는 논리적 구조
  • 체계적으로 구성된 데이터 자체의 집합