본문 바로가기

Programming/데이터 베이스

데이터베이스 관리 시스템

1. 데이터베이스 관리 시스템의 등장 배경

1.1 파일 중심 데이터 처리 시스템

  • 개념
    1960년대부터 사용된 데이터 처리 방식으로, 응용 프로그램마다 독립적인 파일을 유지하며 데이터를 운영체제의 파일로 저장.
  • 특징
    • 응용 프로그램과 파일 구조가 밀접히 연관됨.
    • 데이터 논리 구조와 물리 구조가 일치.
    • 동일 데이터가 여러 파일에 중복 저장.
  • 문제점
    • 데이터 종속성: 데이터 구조 변경 시 응용 프로그램도 수정해야 함.
    • 데이터 중복성: 동일 데이터의 중복으로 비효율 발생.
    • 동시성 제어 및 회복 기능 부족.
    • 데이터의 무결성 및 일관성 유지 어려움.

1.2 데이터 중복성(Data Redundancy) 의 문제

  • 정의
    같은 데이터가 여러 파일에 중복 저장되는 현상.
  • 문제점
    • 일관성(Consistency): 동일한 데이터를 모든 파일에서 동기화 유지.
    • 보안성(Security): 데이터의 보안 수준을 일정하게 유지.
    • 경제성(Economics): 저장 공간 낭비.
    • 무결성(Integrity): 데이터 정확성 및 신뢰성 저하.

1.3 데이터 종속성(Data Dependency) 의 문제

  • 정의
    데이터와 응용 프로그램 간의 상호 의존 관계를 의미하며, 데이터 구성 방식, 형식, 접근 방법이 변경될 경우 관련 응용 프로그램도 수정이 필요한 상태를 말함.
  • 문제점
    • 유연성 부족: 데이터 구조 변경 시 관련된 모든 프로그램을 수정해야 함.
    • 관리 어려움: 동일한 데이터 구조를 사용하는 여러 프로그램을 일일이 관리해야 함.
    • 비효율성: 프로그램과 데이터의 강한 연결로 인해 유지보수 및 개발 작업이 복잡해짐.
  • 예시
    • 고객 관리 프로그램과 서비스 관리 프로그램이 동일한 고객 데이터를 사용하더라도, 데이터 형식이 다를 경우 각각 별도로 구현 및 수정해야 하는 문제가 발생함.
  • 개선 필요성
    이와 같은 데이터 종속성 문제를 해결하기 위해 데이터베이스관리시스템(DBMS)가 도입되었으며, 데이터와 프로그램 간의 독립성을 보장하여 유지보수와 효율성을 향상시킴.

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

2.1 DBMS 정의

  • 데이터베이스와 사용자 또는 응용 프로그램 사이에서 데이터를 효율적으로 관리하고 처리하는 소프트웨어 시스템.
  • 주요 기능: 데이터 검색, 삽입, 수정, 삭제 등 데이터 조작 및 질의어(Query) 지원.

2.2 DBMS의 필수 기능

  1. 정의 기능 (Definition Function)
    • 데이터 구조를 정의하고 저장 구조를 조직화.
    • 논리적, 물리적 데이터 구조 명세 제공.
  2. 조작 기능 (Manipulation Function)
    • 데이터 검색, 삽입, 삭제, 갱신을 지원.
    • 사용하기 쉬운 인터페이스와 효율적인 데이터 접근 제공.
  3. 제어 기능 (Control Function)
    • 데이터 정확성과 보안성 유지.
    • 무결성(Integrity), 병행 제어(Concurrency Control), 권한 검사 기능 포함.

2.3 DBMS의 장단점

  • 장점
    • 데이터 중복 최소화, 공용성 제공, 일관성 유지, 무결성 보장, 보안성 향상.
    • 표준화 용이, 데이터 조정 및 관리 효율성 증대.
  • 단점
    • 높은 초기 비용(하드웨어/소프트웨어).
    • 특정 응용 프로그램 복잡성 증가.
    • 백업과 회복 과정의 어려움.
    • 시스템 고장 시 데이터 의존성으로 취약성 존재.

2.4 DBMS와 파일 시스템 비교

DBMS와 파일 시스템 비교

 


3. 데이터베이스 관리 시스템의 발전 과정

3.1 1세대: 네트워크 모델과 계층 모델 (1960~1970년대)

  • 네트워크 DBMS
    • 레코드들이 그래프 구조로 연결된 데이터 모델.
    • 데이터 구조 변경이 어려움.
  • 계층 DBMS
    • 데이터를 트리 구조로 표현.
    • 특정 응용 프로그램에 효율적이지만 수정 및 확장이 어려움.

3.2 2세대: 관계 데이터 모델 (1970년대~1980년대 이후)

  • 관계 데이터 모델
    • 데이터를 테이블 형식(릴레이션)으로 표현.
    • 단순하고 이해하기 쉬운 구조.
    • 사용자는 데이터를 요청(What)만 명시하고, 접근 방법(How)은 명시하지 않음.
  • 주요 시스템
    • IBM의 System/R: SQL의 시초인 SEQUEL 언어 개발.
    • Ingres(버클리 대학), Oracle, MySQL, MS-SQL 등이 상용화됨.

3.3 3세대: 객체 지향 및 객체 관계 모델 (1980년대 후반~1990년대 이후)

  • 객체 지향 DBMS (Object-Oriented DBMS)
    • 데이터와 프로그램을 객체 단위로 그룹화하여 복잡한 데이터 구조 관리 용이.
  • 객체 관계 DBMS (Object-Relational DBMS)
    • 관계 DBMS에 객체 지향 개념을 통합.

3.4 새로운 데이터베이스 응용

  • 게놈 데이터베이스, 데이터웨어하우스, 데이터마이닝.
  • OLAP, 멀티미디어, 웹 데이터베이스, 소프트웨어 공학 데이터베이스 등.

요약

  1. DBMS 등장 배경
    파일 시스템의 문제점(데이터 중복, 종속성)을 극복하기 위해 등장.
  2. DBMS 기능
    정의, 조작, 제어 기능으로 데이터 관리 효율성을 증대.
  3. DBMS 발전 과정
    계층/네트워크 모델 → 관계 데이터 모델 → 객체 지향 및 객체 관계 모델.