[데이터베이스] DBMS

지금은 거의 사용되고 있지 않지만, 과거에는 응용 시스템을 개발하기 위해 다음과 같은 파일 시스템(File system)을 많이 사용했다.

파일 시스템

위에서 보이는 것과 같이 각각의 응용 프로그램들은 개별적으로 자기 자신의 파일을 사용했다. 이런 전통적 파일 시스템의 문제점은 크게 데이터 종속성과 데이버 중복성으로 명시될 수 있다. 

데이터 종속성(Data Dependency)

데이터 종속성이란, 응용 프로그램 1에서 사용되는 파일은 응용 프로그램 1에서만 사용할 수 있고 다른 응용 프로그램은 사용할 수 없는 것을 의미한다. 이를 위해,

응용 프로그램은 사용하려는 데이터의 구성이나 접근방법에 맞게 작성되어야 한다. 

이로 인해 데이터의 구성이나 접근 방법을 변경할 때는 해당되는 응용 프로그램도 같이 변경되어야 한다. 

데이터 중복성(Data Redundancy)

같은 내용의 데이터 일지라도 각 응용 프로그램마다 별도의 파일로 만들어 중복되는 경우가 많다. 


📂 데이터 중복성이 나쁜 이유

데이터 중복성이 바람직하지 못한 것은 다음과 같은 문제점을 야기시키기 때문이다.

일관성(Consistency)

일관성이 없다는 것은 데이터 간의 불일치가 발생할 수 있다는 것이다. 

보안성(Security)

데이터가 중복되어 있다면 같은 데이터에 대해 같은 수준의 보안 유지가 어렵다

경제성(Economics)

데이터가 중복 저장됨으로 인해 추가적인 저장 공간이 필요하다. 이는 장비 비용, 인건비 등의 문제를 야기할 수 있다.

무결성(Integrity)

무결성은 데이터의 정확성을 의미한다. 예를 들어, 전화번호는 010-1234-5678과 같은 형태를 가지고 있다. 만일 전화번호에 010-1234-CD23와 같은 형태가 입력되어 있다면, 이는 데이터 무결성에 위배된 것이다. 데이터가 중복되어 있다면, 모든 데이터에 대해 데이터의 무결성을 유지하기는 상당히 어렵다.


📂 DBMS(DataBase Management System)

기존의 파일 시스템에서 야기되는 데이터 종속성, 중복성 문제를 해결하기 위해 제안된 시스템으로,

다양한 응용들에서 필요로 하는 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 편리한 기능을 제공하는 소프트웨어 시스템

응용 프로그램들이 데이터베이스를 이용하기 위해서는 DBMS를 통해서만 가능하고 데이터베이스의 구성, 접근방법, 관리유지에 대한 모든 책임을 DBMS가 가지고 있다.

DBMS의 필수 기능

DBMS에서 기본적으로 제공되어야 하는 기능으로는 다음과 같은 정의, 조작, 제어 기능이 있다.

정의(Definition) 기능

데이터베이스 구조를 정의할 수 있는 기능으로서, 데이터 정의 언어(DDL:Database Definition Language)를 사용하여 데이터베이스와 데이터베이스 테이블들을 만들고 정의한다. 

조작(Manipulation) 기능

데이터베이스를 접근하고 조작할 수 있는 기능으로서, 데이터 조작 언어(DML:Database Manipulation Language)를 사용하여 데이터의 검색, 삽입, 삭제 등의 데이터베이스 연산 작업을 수행한다.

제어(Control) 기능

데이터베이스의 정확성과 안전성을 유지할 수 있는 기능으로서, 데이터 제어 언어(DCL:Database Control Language)를 사용하여 데이터 갱신을 정확하게 수행하거나, 허가된 사용자만 데이터에 접근할 수 있도록 보안을 유지하고, 병행 제어(여러 사용자가 동시에 접근할 때 항상 처리 결과가 같도록 유지)를 할 수 있도록 한다. 

 

DBMS의 장단점

장점

  1. 데이터 중복의 최소화
    • 통제된 중복만을 허용
  2. 데이터의 공용(공유)
    • 다수의 사용자가 서로 다른 목적으로 데이터베이스를 공유할 수 있다.
  3. 데이터의 일관성 유지
    • 중복 데이터에 대한 변경이 일어날 때 발생될 수 있는 데이터의 불일치를 최소화시킬 수 있다.
  4. 데이터의 무결성 유지
    • 데이터의 정확성을 유지할 수 있다.
  5. 데이터의 보안 보장
    • DBMS에서는 다양한 보안 기능을 제공함으로써 데이터의 안전한 보안을 보장한다. 
  6. 표준화 용이
    • 중앙 통제에 의한 표준화로 효율적인 자료 관리를 수행할 수 있다.
  7. 데이터의 독립성 제공
    • 데이터베이스 구현상의 세부 사항을 숨김으로써 사용자는 일반적인 구조에만 집중하여 편리성과 효율성을 극대화

단점

  1. 운영비의 증대
    • DBMS는 고가의 소프트웨어 제품으로 운영비가 증대될 수 있다.
  2. 자료 처리 방법이 복잡
    • 데이터베이스에서는 상이한 데이터 타입들이 존재할 수 있고, 이를 이해하고 응용하기 위해 고급 프로그래머가 필요
  3. 백업과 회복 기법이 어렵다
    • 장애 발생 시 이를 처리하기 위한 백업과 회복 기법이 복잡하다.
  4. 시스템의 취약성
    • 중앙관리에 의한 데이터의 효율성은 있지만, 장애가 발생하면 일부 장애일지라도 전체 시스템이 마비될 수 있다.

📂 데이터 독립성(Data Independency)

데이터 독립성이란,

데이터의 논리적인 구조나 물리적인 구조가 변경되더라도 응용 프로그램에는 영향을 주지 않는 것

이러한 데이터 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 구분된다.

논리적 데이터 독립성(Logical Data Independency)

데이터베이스는 보통 조직 전체에 대한 하나의 복잡한 논리적 구조를 가지고 있다. 이때, 조직 전체의 논리적 구조를 변경시키더라도 기존 응용 프로그램들에는 영향을 주지 않는 능력을 말한다. 

물리적 데이터 독립성(Physical Data Independency)

저장 장치나 새로운 접근 기법의 개발로 성능 개선을 위해 물리적인 구조를 변경하더라도 이를 이용하는 응용 프로그램에는 영향을 주지 않는 능력이다. 이는 논리적인 구조에도 영향을 주어선 안된다. 

이는 하나의 논리적 구조로부터 여러 가지 다양한 물리적 구조를 지원할 수 있는 사상(Mapping) 능력이 있어야 가능하다.

논리적/물리적 데이터 사상 개념