[DB] 데이터베이스, DBMS란?
데이터베이스
데이터베이스, 즉 DB란 쉽게 말해 데이터의 집합이라고 할 수 있다. 여러 사람들에 의해 데이터가 공유되어야 할 때 이 공유 데이터를 통합하여 저장하는 데이터의 집합이 바로 DB이다.
DB는 정보 시스템을 구성하는 핵심 요소이다. 이때 정보 시스템이란, 조직의 활동에 필요한 데이터를 수집, 조직하고 저장하여 데이터 처리를 통해 의사 결정에 유용한 정보를 생성하는 시스템을 일컫는다. 대부분의 웹사이트에서는 회원가입을 할 수 있다. 회원가입을 하면 나의 아이디와 패스워드, 그리고 개인정보는 해당 웹 서버 DB에 안전하게 보관된다.
DB는 단순히 데이터를 저장하기만 하는 데에 그치지 않는다. 중요한 건 데이터 사이의 연관성이다. DB에서는 여러 데이터들을 연관성에 따라 구조화하고 통합하여 저장한다. 만약 쇼핑몰이 고객의 정보를 저장한다면 고객 이름, 전화번호, 주소지, 주문한 물건 등이 연관지어 저장된다.
DB는 몇 가지 특성을 가지는데, 이는 데이터베이스의 조건을 살펴봄으로써 이해할 수 있다.
- 데이터베이스는 통합된 데이터를 가진다. 즉 중복 데이터를 가지지 않는다.
- 데이터는 컴퓨터가 접근할 수 있는 매체에 저장된 데이터이다.
- 존재 목적이 뚜렷한, 조직의 업무를 위한 데이터이다.
- 조직의 여러 사람들이 공유 사용하는 데이터이다.
중요한 건 중복 데이터를 가지지 않아야 하는 것이다. 그 이유는 무엇일까? DB의 사용 목적은 효율성의 증진에 있다. 이에 대해 이해하기 위해선 DB 이전에 존재했던 파일 시스템에 대해서 짚고 넘어가야 한다.
파일 시스템
DB의 등장 이전에는 파일을 이용하여 데이터를 처리하였다. 파일 시스템을 이용한 처리는 특별한 구조가 없이 단순히 저장된 데이터만을 가지고 파일을 관리하는 것을 뜻한다. 언뜻 보면 DB와 다를 게 없어 보이는 설명이지만 파일 시스템과 DB의 가장 큰 차이는 중복 데이터의 유무이다.
파일 시스템에서는 응용 프로그램별로 파일을 관리한다. 예를 들어 쇼핑몰에서 고객이 물건을 주문하면 해당 주문은 주문 관리 프로그램의 고객 정보에 저장된다. 그런데 따로 고객 관리 프로그램이 존재한다고 하자. 그럼 고객 관리 프로그램에는 또 다른 고객 정보가 존재한다. 서로 다른 응용 프로그램에 서로 다른 데이터가 중복으로 존재하는 것은 효율성의 측면에서 매우 좋지 않으며 이는 치명적인 결함이다.
파일 시스템의 문제점은 다음과 같다.
- 파일의 내부 구조에 응용 프로그램이 영향을 받게 된다. 즉 데이터 파일은 응용 프로그램에 종속적이다.
- 동일한 데이터가 중복으로 관리된다.
데이터가 중복으로 존재하여 관리될 경우 어느 시점에서 데이터 일관성이 상실될 가능성이 있다. 또한 메모리 낭비로 인해 경제성에도 취약하며, 데이터 결함은 데이터 무결성을 보장하지 못하게 만든다.
그렇다면 DB를 통해 데이터를 어떻게 효과적으로 관리한다는 것일까? DB는 파일 시스템과 달리 데이터베이스 관리 시스템(DataBase Management System, DBMS)을 이용하여 서버를 거쳐 통합된 데이터에 접근하도록 하면서 응용 프로그램별로 중복 데이터가 함께 관리되는 것을 막는다.
데이터베이스 관리 시스템, DBMS
DBMS는 여러 이용자들이 DB 안의 공유 데이터에 접근하고 이를 사용할 수 있도록 돕는 시스템으로, 아래 3가지의 기능을 제공한다.
- 데이터 정의 : 데이터의 형식, 구조 등을 정의한다.
- 데이터 조작 : 데이터의 검색(search), 삽입(insert), 삭제(delete), 갱신(update)가 가능하다.
- 데이터 제어 : 데이터 무결성을 보장하며, 사용자에게 접근권한을 제공하고 데이터의 보안을 관리한다.
많은 종류의 DBMS가 존재하지만 가장 널리 사용되고 유명한 DBMS에는 Oracle, MySQL, MS-SQL 등이 있다. 보통 DB에 대해 공부한다고 하면 Oracle과 MySQL의 두 종류로 나뉘는 경우가 많다.
그렇다고 DBMS에 장점만 존재하느냐 하면 그건 아니다. DBMS의 단점은 파일 시스템에 비해 운영비가 훨씬 높다는 것이다. 이런 체계적인 데이터 집합을 당연히 무료로 사용하기는 어렵다. 기업에서 DB를 사용하기 위해서는 관련 인력을 고용해야 하며 서버를 사용하는 비용도 필요하다. 또 DBMS 서버에 장애가 생긴다면 모든 시스템이 취약해져 전체 업무가 중단된다는 큰 단점이 있다. 그럼에도 많은 기업이 DB를 사용하는 것은 그만큼 DB의 사용 이점이 단점에 비해 훨씬 크기 때문이다.