데이터베이스를 흔히 "데이터의 집합"이라고 정의한다. 그런데 이 정의를 처음 만나면 자연스럽게 궁금해진다. 그럼 엑셀 파일이나 메모장에 적은 전화번호 목록도 데이터베이스라고 부를 수 있을까?
이 글에서는 "그냥 데이터를 모아둔 것"과 "데이터베이스"를 가르는 기준이 무엇인지, 그리고 왜 굳이 파일 대신 데이터베이스라는 별도의 체계를 만들게 되었는지를 차근차근 짚어본다.
이 출발점을 제대로 잡아두면, 데이터베이스가 갖춰야 할 여러 성질이 결국 "이 기준을 지키기 위한 장치"로 자연스럽게 이해된다.
1. 데이터와 정보
정보(information) : 의사결정에 유용하도록 데이터를 처리·가공한 결과물.
둘의 차이는 "가공 여부"다. "오늘 기온 30도", "손님 A가 라면을 구매" 같은 것은 데이터다. 여기서 "최근 일주일 기온이 오르자 차가운 면류 판매가 40% 늘었다 → 비빔면 발주를 늘리자"라는 판단을 끌어내면 그게 정보다. 즉 데이터는 재료, 정보는 그 재료로 의사결정을 도울 수 있게 요리한 결과다.
이 관계가 중요한 이유는, 데이터베이스의 존재 목적이 바로 "데이터를 잘 저장해뒀다가 필요할 때 정보로 만들어내는 것"이기 때문이다.
데이터를 수집·저장하고 가공해 정보를 제공하는 전체를 정보 시스템이라 하고, 그 한가운데서 데이터를 저장·공급하는 핵심 부품이 데이터베이스다. 결국 데이터베이스를 공부한다는 것은 "데이터를 정보로 바꾸는 일을 어떻게 빠르고 정확하고 안전하게 할 것인가"를 배우는 일이다.
2. 데이터베이스의 정의: 네 가지 성격
특정 조직의 여러 사용자가 공유하기 위해, 중복을 통제해 통합하고, 컴퓨터 매체에 저장한, 조직 운영에 꼭 필요한(운영) 데이터의 모음이다.
| 성격 | 의미 | 왜 중요한가 |
|---|---|---|
| 공유 데이터 | 여러 사용자·응용이 함께 소유·이용 | 개인 파일과 달리 "여럿이 동시에" 쓴다는 전제가 모든 설계를 좌우 |
| 통합 데이터 | 중복을 최소화(통제 가능한 중복만 허용) | 중복이 곧 불일치의 씨앗 |
| 저장 데이터 | 컴퓨터가 접근 가능한 매체에 저장 | 사람의 기억·종이가 아닌 기계가 다룰 형태 |
| 운영 데이터 | 조직 운영에 지속적으로 필요한 데이터 | 일회성 임시 데이터가 아닌 "살아 있는" 데이터 |
네 성격 중 가장 곱씹어볼 것은 통합 데이터다. 왜 중복을 "0"이 아니라 "최소"라고 할까? 그리고 왜 중복이 문제일까?
같은 데이터(예: 고객 주소)가 여러 곳에 중복 저장되면, 한 곳만 갱신하고 다른 곳을 놓쳤을 때 값이 서로 어긋나는 데이터 불일치(inconsistency)가 발생한다. 그래서 데이터베이스는 중복을 최소화하려 하지만, 한편으로는 성능을 위해 의도적으로 일부 중복을 허용하기도 한다(그래서 "통제 가능한 최소의 중복"이라 표현한다).
중복 제거를 통한 일관성과 조회 성능은 서로 상충하며, 이 둘 사이의 trade-off는 데이터베이스 설계 전반에서 끊임없이 마주치는 핵심 문제다.
3. 데이터베이스의 특징
| 특징 | 설명 |
|---|---|
| 실시간 접근(real-time access) | 사용자 질의에 즉시 응답한다. 나중에 모아 처리하는 게 아니다 |
| 계속 변화(continuous evolution) | 삽입·삭제·수정이 끊임없이 일어나며 항상 최신 상태를 유지 |
| 동시 공유(concurrent sharing) | 여러 사용자가 같은 데이터를 동시에 사용 |
| 내용 기반 참조(content-based reference) | 위치·주소가 아니라 데이터의 내용(값)으로 참조 |
이 네 특징은 "파일과 무엇이 다른가"로 읽으면 선명해진다. 특히 내용 기반 참조가 결정적이다.
일반 파일에서 데이터를 찾으려면 "몇 번째 줄, 몇 번째 바이트"라는 위치를 알아야 한다. 반면 데이터베이스에는 "나이가 20살인 사람을 모두 찾아라"처럼 값으로 묻는다. 그 데이터가 디스크 어디에 있는지는 몰라도 된다.
이게 가능하려면 시스템이 내용으로 위치를 찾아주는 색인(인덱스) 구조를 갖추고 있어야 하는데, 데이터베이스는 이 색인을 자동으로 관리해 사용자가 위치를 신경 쓰지 않게 해준다.
또 동시 공유는 그냥 "같이 본다"가 아니라 까다로운 문제를 품고 있다. 두 사람이 같은 계좌 잔액을 동시에 읽어 각자 수정하면, 한쪽의 변경이 다른쪽에 덮여 사라질 수 있다. 데이터베이스는 이런 동시 접근 충돌을 트랜잭션과 병행 제어라는 장치로 막아, 여러 사용자가 동시에 써도 데이터가 어긋나지 않도록 보장한다.
한 걸음 더
- 데이터베이스가 등장하기 전에는 응용 프로그램마다 각자 파일을 두고 데이터를 관리했다(파일 시스템 방식). 이때 같은 데이터가 프로그램마다 중복 저장돼 불일치가 잦았고, 데이터 구조가 바뀌면 그걸 쓰는 모든 프로그램을 고쳐야 했다(데이터 종속성). 데이터베이스는 데이터를 한곳에 통합하고 프로그램과 분리(데이터 독립성)함으로써 이 두 고질병을 풀려고 나온 것이다. 이 분리를 실제로 실현해주는 소프트웨어가 바로 DBMS다.
- 데이터와 정보의 위에는 흔히 지식(knowledge)과 지혜(wisdom)를 더한 DIKW 피라미드를 얹기도 한다. "30도(데이터) → 더우면 면류가 잘 팔린다(정보) → 그래서 여름엔 면류 재고 전략을 이렇게 짠다(지식)"처럼 추상도가 올라가는 계층인데, 최근의 데이터 분석·머신러닝이 노리는 지점이 바로 이 위쪽 단계다.
- 이 글의 정의는 관계형 데이터베이스를 전제로 한 고전적 정의다. 오늘날에는 정형화된 표 대신 문서·키-값·그래프 형태로 다루는 NoSQL이나, 대용량 분석에 특화된 데이터 웨어하우스도 널리 쓰인다. 다만 "공유·통합·저장·운영"이라는 본질적 성격은 형태가 바뀌어도 거의 그대로 유지된다. 그래서 이 기본기를 먼저 다지는 것이다.
'data > database' 카테고리의 다른 글
| [데이터베이스] 03. 데이터 모델링 (개체-관계 모델) (0) | 2026.07.09 |
|---|---|
| [데이터베이스] 02. DBMS 데이터베이스 시스템 (0) | 2026.06.25 |