데이터베이스 관리 시스템

kakasoo·2021년 9월 6일
0
post-thumbnail

이 글에서 설명하는 것

  • DBMS의 등장 배경
  • DBMS의 정의
  • DBMS의 장단점
  • DBMS의 발전 과정

파일 시스템의 단점은 파일이 공유가 안 된다는 것과, 프로그램에 종속된다는 점, 즉 프로그램마다 파일을 가져야 한다는 점이다.
그러나 데이터 베이스 관리 시스템은 이러한 문제에서 자유롭다. ( 중복의 최소화, 데이터 독립성 증진 )
단점은 고비용이며 회복 기법이 복잡하다는 점이다.

등장 배경

파일 시스템은 데이터를 파일로 관리하여 생성, 삭제, 수정, 검색하는 기능을 제공했다.
응용 프로그램마다 필요한 데이터를 별도의 파일로 관리했다. 당연히 각 프로그램마다 파일을 가지니 데이터는 프로그램 수 만큼 중복된다.
하나의 파일이 수정되면 파일 간의 불일치가 발생하므로, 각 파일 간에 서로 일치시켜주는 작업이 필요하다.
데이터베이스 관리 시스템은 이런 문제를 해결하기 위해, 프로그램들이 하나의 데이터베이스 관리 시스템을 사용하도록 했다.

파일 시스템의 문제점
데이터가 여러 파일에 중복되는 점, 프로그램에 종속되는 점, 동시 공유, 보안, 회복 기능이 부족한 점, 프로그램 개발이 어려운 점.
보안이 어렵다는 건, 각 테이블이나 칼럼 단위의 보안이 불가능하고 파일 단위로만 가능하다는 점이고,
회복 기능은 데이터가 손상되었을 때 일관된 복구가 어렵다는 뜻이다.

​ 여담인데, 백업은 전체 백업, 차등 백업, 증분 백업이 있다.
​ 세부적으로 보면,

파일시스템의 문제점 : 중복 저장

같은 내용의 데이터가 여러 파일에 중복 저장된다. ( 데이터 중복성 )
하나의 데이터가 프로그램 수만큼 저장되니 저장 공간의 낭비 ( 당시에는 크리티컬한 문제였다. )는 물론, 데이터 일관성과 데이터 무결성을 유지하기가 어렵다.

응용 프로그램이 데이터 파일에 종속적이다. ( 데이터 종속성)
사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 한다.
고객 데이터가 food, name으로 되어 있다가, food, age, name으로 변경되면, 응용 프로그램도 배열의 인덱스에 맞게 고쳐주어야 한다.

데이터베이스 관리 시스템

파일 시스템의 문제를 해결하기 위해 제시된 프로그램
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리한다.

하나의 데이터베이스 (엔진) 를 두고, 그것을 관리하는 DBMS를 두기 때문에 종속성, 무결성, 중복 문제를 해결할 수 있다.

데이터베이스 관리 시스템의 주요 기능

정의 기능 DDL : 데이터 디피니션 랭귀지, 데이터베이스의 구조를 정의하거나 수정할 수 있다.
조작 기능 DML : 데이터 매니풀레이션 랭귀지, 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
제어 기능 DCL : 데이터 컨트롤 랭귀지, 데이터를 항상 정확하고 안전하게 유지할 수 있다. ( GRANT, REVOKE )

데이터베이스 시스템의 장단점

장점

데이터의 중복을 통제할 수 있다.
데이터의 독립성이 확보된다.
데이터를 동시 공유할 수 있다.
데이터 보안이 향상된다.
데이터 무결성을 유지할 수 있다.
표준화할 수 있다. ( 기술 양식, 내용, 데이터의 처리 방식, 문서화 양식 등을 범 기관적으로 표준화 가능하다. )
장애 발생 시 회복이 가능하다.
응용 프로그램 개발 비용이 줄어든다. ( 데이터베이스를 위한 쿼리가 이미 존재하기 때문에 )

단점

비용이 많이 든다.
백업과 회복 방법이 복잡하다. ( 파일 시스템이라고 간편하지는 않으니, 단점이라기엔 애매하다. )
중앙 집중 관리로 인한 취약점이 존재한다.

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

1세대 : 네트워크 DBMS, 계층 DBMS

네트워크 DBMS : 데이터베이스를 그래프 형태로 구성 ( 특수한 목적으로 특수한 집단이 사용한다, 교수님도 사용을 본 적이 없다고 한다. )
계층 DBMS : 데이터베이스를 트리 형태로 구성
계층 구조는 은행에서 주로 사용했는데, 하나의 주계좌로부터 적금, 대출 등을 관리할 수 있었기 때문.

2세대 : 관계 DBMS

관계 DBMS : 데이터베이스를 테이블 형태로 구성

3세대 : 객체지향 DBMS, 객체관계 DBMS

객체지향 DBMS : 객체를 이용해 데이터베이스를 구성, 오투, 온투스, 젬스톤 등이 예이다.
객체 관계 DBMS : 객체 DBMS와 관계 DBMS의 특성을 합한 것.

4세대 : NoSQL, NewSQL DBMS

NoSQL DBMS : 비정형 데이터를 처리하는 데 적합하고 확장성이 뛰어남.

안정성과 일관성을 유지하기 위한 복잡한 기능을 포기
데이터 구조를 미리 결정하지 않는 유연성, 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
몽고디비나 레디스 등이 포함된다.

NewSQL DBMS : 관계 DBMS와 NoSQL의 확장성 및 유연성을 합한 것.

정형데이터 : 2세대
반정형데이터 : 3세대
비정형데이터 : 4세대

정형화되지 않은 데이터를 처리하기 위해 DBMS가 발전해왔다고 생각해볼 수도 있다.

profile
자바스크립트를 좋아하는 "백엔드" 개발자

0개의 댓글