데이터베이스(DB: database)는?
어떤 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고 동시에 접근하여 사용할 수 있도록 구조적으로 통합하여 저장한 운영 데이터의 집합이다.
이는 중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다.
이러한 데이터베이스는 응용 프로그램과는 다른 별도의 미들웨어에 의해 관리된다.
데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS: Database Management System)이라고 한다.
데이터 베이스의 의미를 정리하면 다음과 같다.
- 공유 데이터(shared data): 데이터 베이스는 공유 데이터이다. 어느 하나의 프로그램에 종속된 것이 아니라, 다수의 사용자나 프로그램이 공동으로 소유하고 유지하는 개념이다.
- 통합된 데이터(integrated data): 데이터 베이스는 통합된 데이터이다. 통합 데이터란 분산된 데이터들을 한 곳으로 모아 중복을 최소화하기 위한 개념이다. 이는 데이터의 일관성이 유지되고, 관리 비용이 감소한다는 장점이 있다.
- 저장된 데이터(stored data): 저장된 데이터는 컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터를 의미한다.
- 운영 데이터(operational data): 데이터 베이스는 운영 데이터이다. 이는 조직 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 데이터를 의미한다. 즉 임시적으로 처리하는 데이터들이 아닌 시스템을 운영하기 위해서 필요한 데이터인 것이다.
데이터베이스의 특징
- 사용자의 질의(query)에 대하여 즉각적인 처리와 응답이 이루어진다. (실시간 처리)
- DB는 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다. (변화)
- 사용자들이 원하는 데이터를 동시에 공유할 수 있다. (공유성)
- 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조할 수 있다. (내용에 따른 참조)
- 응용프로그램과 데이터베이스는 독립되어 있으므로, 데이터의 논리적 구조와 응용프로그램은 별개로 동작한다.
데이터베이스 관리 시스템
데이터베이스 관리 시스템(Database Management System): DBMS. 이는 데이터베이스에 접근하여 데이터를 조작할 수 있도록 도와준다.
즉, 사용자(개발자)들은 DB에 직접 접근하여 데이터를 다루는 것이 아니라, DBMS의 도움으로 데이터를 다루고 변화시킬 수 있다.
대표적인 DBMS로 SQL이 있다.
파일 시스템이 가진 데이터 종속성과 데이터 중복성 문제를 해결하기 위하여 데이터 베이스 관리 시스템이 제안되었다. DBMS는 사용자 또는 응용 프로그램과 데이터베이스 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리해주는 소프트웨어로 컴퓨터에 저장된 대량의 데이터를 체계적으로 관리하고 사용자가 원하는 정보를 효과적으로 검색하도록 하는 기능을 제공한다.
DBMS의 장점
- 데이터 중복을 최소화: DBMS는 데이터를 통합하여 관리하므로, 데이터의 중복이 없다.
- 데이터를 공유: 데이터를 공유하여 응용 프로그램이 관리하던 데이터 관리의 부담을 감소시킬 수 있다.
- 데이터의 일관성: 파일 시스템의 경우, 데이터들이 분산되어 있어 하나의 데이터를 바꾸더라도 다른 데이들도 업데이트 시켜야 한다. 이때 하나의 데이터만 제대로 변경시키지 못하면 데이터의 일관성이 무너지는 현상이 발생한다. 그러나 DBMS는 이러한 데이터의 일관성을 설정해주면 자동으로 처리해주는 장점이 있다.
- 데이터의 무결성: 무결성은 현실세계의 값과 데이터베이스에 저장된 데이터 값이 일치하는 정확성을 말한다. DBMS는 현실세계에서는 발생할 수 없는 값들에 대해서 관찰하고 제어해준다.
- 데이터 보안: 여러 사람이 접근하는 DB에는 보안이 매우 취약한데, DBMS가 이를 처리해줄 수 있다.
관계 DBMS
DBMS의 종류로는 네트워크 DBMS, 계층 DBMS, 관계 DBMS가 있다.
그 중에서 가장 많이 사용되는 관계 DBMS의 정의는 다음과 같다.
- 관계 DBMS: 관계 DBMS는 테이블 기반으로 하는 관계 데이터 모델을 사용한다. 즉, 관계 DBMS에서 데이터베이스는 하나 이상의 테이블로 구성되녀 모든 데이터는 이 테이블에 저장된다고 보면 된다. 이는 오늘날의 사실상 표준이 된 SQL이 시초이다.

데이터베이스 시스템

데이터베이스 시스템은 데이터를 데이터베이스에 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템이다. 데이터베이스 시스템은 다음과 같이 사용자(user) 또는 응용 프로그램, 데이터 언어, 데이터 관리시스템(DBMS), 데이터베이스(DB)로 구성된다.
- 사용자: 응용 프로그램을 사용하는 end user이다.
- 프로그램: DBMS와 연동된 프로그램으로 사용자에게 프로그램을 제공하는 개발자도 포함된다.
- 데이터 베이스 관리자(DBA): DBMS 및 이와 관련된 하드웨어, 소프트웨어를 관리한다. 단순히 DBMS를 사용하여 응용프로그램을 개발하는 사람과는 달리 DB를 전문적으로 다룬다.
데이터 언어
데이터 언어는 사용자 또는 응용 프로그램과 DBMS 간에 의사소통을 하기 위한 언어이다. 데이터 언어 3가지로 구성되어있는데 데이터 정의어, 데이터 조작어, 데이터 제어어로 구성되어 있다.
- 데이터 정의어(Data Definition Language, DDL): 데이터베이스 스키마를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어이다. 데이터베이스 관리자가 주로 사용한다. CREATE, ALTER, DROP 등
- 데이터 조작어(Data Manipulation Language, DML): 데이터를 검색, 삽입, 삭제 변경하는데 사용하는 언어이다. 사용자 또는 응용프로그램과 DBMS 간의 인터페이스를 제공한다. INSERT, UPDATE, DELETE 등
- 데이터 제어어(Data Control Language, DCL): 데이터베이스를 올바르게 공용하게 하면서, 정확성을 유지하는데 사용하는 언어이다. 주로 데이터베이스 관리자가 사용한다. GRANT, REVOKE 등. 참고로 GRANT문은 해당 DB 테이블을 다른 사용자가 접근하지 못하거나 접근하도록 권한을 주는 것이다. REVOKE는 부여된 권한을 회수하는 것이다.
데이터베이스
우리가 흔히 알고 있는, 여러 사람들이 데이터를 저장하고 공유하며, 불러오기 위한 DB는 저장 데이터베이스이다.
이러한 저장 데이터베이스의 시스템을 전반적으로 담당하는 데이터베이스를 시스템 데이터베이스(데이터사전) 라고 한다.
다음과 같이 DB 안에는 저장 데이터베이스와 시스템 데이터베이스(데이터 사전)가 있는 것이다.

시스템 데이터베이스는 데이터 사전이라고도 한다. 데이터 사전은 데이터베이스(저장 데이터베이스)에 포함된 모든 데이터 개체에 대한 정의와 명세에 관한 정보를 유지 관리하는 시스템이며, 데이터에 관한 데이터라는 의미의 메타 데이터이다.
또한, 데이터 사전에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리, 유지하는 시스템은 데이터 디렉토리이다.