데이터베이스

데이터베이스(database)는 일정한 목적에 따라 조직한 데이터를 지속적으로 저장하고 필요한 정보를 검색·수정·삭제할 수 있도록 관리하는 논리적 집합이다. 여러 사용자가 같은 자료를 재사용하고 데이터의 무결성과 접근 권한을 일관되게 유지하도록 설계한다. 데이터베이스 자체는 데이터의 집...

분류컴퓨터 과학 · 정보 시스템 · 데이터 관리
영문명Database
핵심 목적데이터의 지속적 저장·검색·갱신·공유
주요 구성 요소데이터베이스 관리 시스템 · 스키마 · 저장 엔진 · 트랜잭션
데이터 모델관계형 데이터베이스 · 문서형 · 키-값 · 그래프 · 컬럼형
질의 기술SQL · 질의 최적화 · 인덱스
트랜잭션ACID · 동시성 제어 · 복구
저장 매체메모리 · SSD · 디스크 · 분산 저장소
관련 소프트웨어PostgreSQL · MySQL · SQLite · MongoDB
접근 방식로컬 API · 클라이언트-서버 · 네트워크
보안인증 · 인가 · 암호화 · 감사 로그
관련 분야분산 시스템 · 소프트웨어 공학 · 클라우드 컴퓨팅
대표 표준SQL · ISO/IEC 9075
참고 자료PostgreSQL 문서

데이터베이스(database)는 일정한 목적에 따라 조직한 데이터를 지속적으로 저장하고 필요한 정보를 검색·수정·삭제할 수 있도록 관리하는 논리적 집합이다. 여러 사용자가 같은 자료를 재사용하고 데이터의 무결성과 접근 권한을 일관되게 유지하도록 설계한다. 데이터베이스 자체는 데이터의 집합을 가리키며 이를 구축·접근·유지하는 데이터베이스 관리 시스템(DBMS)은 별도의 소프트웨어 계층이다. 파일과 폴더에 정보를 직접 기록하는 방식과 달리 스키마·인덱스·질의 언어와 트랜잭션 같은 추상화를 제공한다.[1]

현대적인 데이터베이스 개념은 대형 조직의 기록 처리와 파일 기반 정보 시스템이 발전하면서 형성되었다. 1960년대의 계층형 및 네트워크형 데이터 모델을 거쳐 1970년 에드거 F. 코드가 관계형 모델을 제안하면서 데이터를 행과 열의 관계로 표현하는 접근이 확산되었다. 이후 SQL과 관계형 DBMS가 기업용 업무 시스템의 중심으로 자리 잡았고, 2000년대 이후에는 웹 서비스와 분산 저장 수요에 대응해 문서·키-값·그래프 데이터베이스도 크게 발전했다. 여러 데이터 모델은 동일한 문제에 대한 경쟁적인 대안이면서 동시에 서로 다른 사용 목적에 적합한 기술이다.

관계형 데이터베이스는 테이블·열·행을 이용해 데이터를 표현하고 키와 제약 조건으로 자료 사이의 관계를 관리한다. SQL은 데이터 정의와 조회, 변경 및 권한 관리에 사용되며 DBMS는 질의를 해석하고 최적의 실행 계획을 선택한다. 대량의 검색 성능을 개선하기 위한 인덱스는 조회를 빠르게 할 수 있지만 저장 공간과 갱신 비용을 증가시킬 수 있다. 문서형 데이터베이스는 중첩된 문서 데이터를, 그래프 데이터베이스는 노드와 간선의 관계 탐색을 강조한다.

데이터베이스의 정확성은 트랜잭션과 동시성 제어, 장애 복구 기술에 영향을 받는다. 전통적인 ACID 원칙은 원자성·일관성·격리성·지속성을 다루며, 여러 작업이 동시에 실행될 때 잠금이나 다중 버전 동시성 제어(MVCC)로 충돌을 처리할 수 있다. 미리쓰기 로그(WAL), 체크포인트와 복제본은 전원 장애나 프로세스 오류가 발생해도 복구할 수 있도록 돕는다. 다만 구현마다 제공하는 격리 수준과 데이터의 지속성 보장 조건은 다르다.[2]

데이터베이스는 단일 컴퓨터에 설치한 SQLite 같은 내장형 시스템으로도 구현할 수 있고, 별도의 서버 프로세스에서 동작하는 PostgreSQL이나 MySQL처럼 여러 클라이언트 요청을 처리할 수도 있다. 분산 시스템에서는 데이터를 여러 노드에 나누어 저장하거나 복제하고 장애 시 일관성과 가용성을 조정한다. 클라우드 환경의 관리형 데이터베이스는 인프라 운영을 공급자에게 맡길 수 있지만 백업·접근 정책·쿼리 설계와 데이터 모델의 책임이 모두 사라지는 것은 아니다.

데이터베이스는 웹 서비스, 금융 거래, 제조업, 연구 자료, 모바일 앱과 분석 시스템 등 거의 모든 정보 처리 분야에서 사용된다. 적절한 시스템 선택에는 데이터 구조와 규모뿐 아니라 읽기·쓰기 작업의 비율, 일관성 요구, 장애 복구 목표, 보안 및 운영 비용을 고려해야 한다. 또한 데이터베이스와 데이터 웨어하우스, 분산 파일 저장소, 검색 엔진은 일부 기능이 겹쳐도 설계 목적과 자료 처리 방식이 다르다. 소프트웨어 공학에서는 스키마 변경과 성능 검사, 접근 제어, 백업·복구 자동화까지 포함해 장기적인 데이터 품질을 관리한다.

역사

초기 파일 시스템과 데이터 모델

관계형 모델의 발전

분산·클라우드 데이터베이스

데이터 모델

관계형

키-값·문서형·그래프

기술 구조

저장 엔진과 인덱스

SQL과 질의 최적화

트랜잭션과 동시성 제어

로깅과 복구

분산과 고가용성

보안과 운영

활용 분야

관련 문서

  1. PostgreSQL: 관계형 데이터베이스 개요 ↩
  2. PostgreSQL: 동시성 제어와 트랜잭션 ↩