lhywk 님의 블로그

[DB] Database 본문

Database

[DB] Database

lhywk 2026. 6. 18. 10:58

1. 데이터와 데이터베이스

데이터란 무엇인가

데이터는 현실 세계에서 관찰되거나 측정된 사실을 의미한다. 예를 들어 "김철수", "25세", "서울"과 같은 값들은 그 자체로는 단순한 기록일 뿐이다. 이러한 데이터가 의미 있게 가공되고 해석되었을 때 비로소 정보가 된다. "김철수는 25세이고 서울에 거주한다"라는 문장은 데이터가 결합되어 정보로 변환된 결과이다.

데이터와 정보를 구분하는 것은 중요하다. 데이터는 가공되지 않은 원재료이고, 정보는 그 원재료가 가치를 갖도록 처리된 결과물이다. 데이터베이스는 바로 이 데이터를 체계적으로 저장하고 관리해서, 필요할 때 의미 있는 정보로 가공해낼 수 있도록 만든 장치이다.

데이터베이스의 정의

데이터베이스는 여러 사용자나 응용 프로그램이 공동으로 소유하고 이용할 수 있도록 통합되어 저장된 운영 데이터의 집합이다. 이 정의 안에는 몇 가지 중요한 특징이 함축되어 있다.

첫째, 통합된 데이터(Integrated Data)이다. 데이터베이스에는 같은 내용의 데이터가 최소한으로 중복되어 저장된다. 중복을 완전히 없앨 수는 없지만, 불필요한 중복은 통제된 형태로만 허용된다.

둘째, 저장된 데이터(Stored Data)이다. 데이터베이스는 컴퓨터가 접근 가능한 매체에 저장되어 있어야 한다. 단순히 사람의 머릿속에 있거나 종이에 적혀 있는 정보는 데이터베이스라고 부르지 않는다.

셋째, 운영 데이터(Operational Data)이다. 데이터베이스에 저장되는 데이터는 조직의 고유한 기능을 수행하기 위해 반드시 필요한 데이터이다. 일시적으로 잠깐 쓰고 버리는 데이터는 운영 데이터라고 보지 않는다.

넷째, 공유 데이터(Shared Data)이다. 여러 사용자나 응용 프로그램이 동시에 공유하며 사용할 수 있는 데이터여야 한다. 한 사람이나 하나의 프로그램만 사용하는 데이터는 데이터베이스의 본래 목적과는 거리가 있다.

데이터베이스의 특징

데이터베이스가 가지는 특징을 정리하면 다음과 같다.

실시간 접근성(Real-time Accessibility)을 갖는다. 사용자의 데이터 요청에 대해 실시간으로 처리하고 응답할 수 있어야 한다.

계속적인 변화(Continuous Change)를 갖는다. 데이터베이스는 한 번 만들고 끝나는 것이 아니라, 데이터의 삽입, 삭제, 수정이 계속 일어나면서 항상 최신의 정확한 상태를 유지해야 한다.

동시 공유(Concurrent Sharing)가 가능하다. 여러 사용자가 서로 다른 목적으로 동시에 같은 데이터에 접근할 수 있어야 한다.

내용에 의한 참조(Reference By Content)가 가능하다. 데이터베이스에 저장된 데이터를 찾을 때는 저장된 위치나 주소가 아니라 데이터가 가지고 있는 값, 즉 내용으로 찾는다.

2. 데이터베이스 시스템의 구성

데이터베이스 시스템은 데이터베이스 자체만으로 동작하지 않는다. 데이터베이스를 관리하고 사용자와 데이터베이스를 연결해주는 여러 구성 요소가 함께 맞물려 동작한다.

DBMS

DBMS(DataBase Management System)는 데이터베이스를 정의하고, 데이터를 저장하고 검색하고 수정할 수 있게 해주는 소프트웨어이다. 사용자나 응용 프로그램은 데이터베이스에 직접 접근하는 것이 아니라 항상 DBMS를 거쳐서 접근한다. DBMS는 데이터의 무결성을 유지하고, 동시에 여러 사용자가 접근해도 문제가 생기지 않도록 통제하며, 장애가 발생했을 때 데이터를 복구하는 역할까지 담당한다.

데이터베이스 시스템을 구성하는 요소

데이터베이스 시스템은 크게 다음과 같은 요소들로 구성된다.

하드웨어는 데이터베이스를 실제로 저장하는 디스크, 서버, 네트워크 장비 등을 의미한다.

소프트웨어는 DBMS뿐 아니라 운영체제, 그리고 데이터베이스를 활용하는 응용 프로그램까지 포함한다.

데이터는 데이터베이스에 실제로 저장되는 대상이며, 데이터베이스 시스템의 핵심이라고 할 수 있다.

사용자는 데이터베이스 시스템과 상호작용하는 모든 사람을 말하는데, 역할에 따라 몇 가지로 나뉜다. 데이터베이스 관리자(DBA)는 데이터베이스의 설계, 운영, 보안을 총괄하는 사람이다. 응용 프로그래머는 데이터베이스에 접근하는 프로그램을 작성하는 사람이다. 최종 사용자는 응용 프로그램이나 질의어를 통해 데이터베이스를 실제로 이용하는 사람이다.

절차는 데이터베이스를 설계하고 사용하기 위한 규칙과 절차를 의미한다.

3. 정보 시스템의 발전

데이터베이스가 지금과 같은 형태로 자리 잡기까지는 단계적인 발전 과정이 있었다. 이 흐름을 이해하면 왜 데이터베이스라는 개념이 등장했는지 자연스럽게 알 수 있다.

파일 시스템 시대

초창기 컴퓨터 시스템에서는 각각의 응용 프로그램이 자신만의 파일을 따로따로 관리했다. 예를 들어 회사의 급여 프로그램과 인사 프로그램이 각각 직원 정보를 담은 별도의 파일을 가지고 있는 식이다. 이 방식은 프로그램을 독립적으로 개발할 수 있다는 장점이 있었지만, 같은 정보가 여러 파일에 중복으로 저장되면서 데이터 불일치, 데이터 종속성 같은 여러 문제를 낳았다.

데이터베이스 시스템의 등장

파일 시스템이 가진 한계를 극복하기 위해 데이터를 통합적으로 관리하는 데이터베이스 시스템이 등장했다. 여러 응용 프로그램이 공유할 수 있는 하나의 통합된 데이터 저장소를 만들고, 이를 DBMS라는 소프트웨어가 관리하도록 한 것이다. 이로써 데이터 중복이 최소화되고, 데이터의 일관성과 무결성을 유지하기가 훨씬 쉬워졌다.

데이터베이스 모델의 발전

초기의 데이터베이스는 계층형 모델과 네트워크형 모델 같은 형태로 출발했다. 이 모델들은 데이터 간의 관계를 트리 구조나 그래프 구조로 표현했는데, 구조가 복잡해질수록 다루기가 어려워지는 한계가 있었다.

이후 1970년대에 관계형 모델이 등장하면서 데이터베이스의 패러다임이 크게 바뀌었다. 관계형 모델은 데이터를 단순한 표(테이블) 형태로 표현하고, 수학적인 집합 이론에 기반한 명확한 구조를 가지고 있어서 직관적이고 다루기 쉬웠다. 오늘날 가장 널리 쓰이는 데이터베이스 형태가 바로 이 관계형 데이터베이스이다.

최근에는 빅데이터와 분산 시스템이 발전하면서 관계형 모델만으로는 다루기 어려운 데이터들이 늘어났고, 이에 대응하기 위해 NoSQL 같은 새로운 형태의 데이터베이스도 함께 발전하고 있다.