데이터베이스(Database, DB)란?
데이터베이스를 한 마디로 정의하면 '데이터의 집합'이라고 할 수 있다.
여러 사람이 공유하고 사용할 목적으로 한 곳에서 관리되는 데이터의 조직화된 집합으로, 데이터를 소프트웨어에서 효율적으로 관리하기 위한 저장소이다.
- 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.
데이터베이스 관리시스템(DBMS)
데이터베이스를 관리하고 운영하는 시스템
- 데이터를 정의, 저장, 검색, 수정, 삭제하는 등의 작업을 효율적으로 수행할 수 있게 해준다.
- 다수의 사용자들이 동시에 데이터에 접근하고, 데이터를 안전하게 관리할 수 있도록 다양한 기능을 제공한다.
- SQL이라는 언어로 DBMS에 데이터 관리를 요청하면 DBMS가 요청을 처리한다.


(출처 : https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-databasedb-dbms-sql%EC%9D%98-%EA%B0%9C%EB%85%90/)
DBMS의 주요 기능
- 데이터 정의
- 데이터베이스 구조를 정의할 수 있는 기능을 제공한다.
- 데이터 관리
- 데이터를 물리적으로 저장하고, 관리하는 역할을 수행한다.
- 데이터를 저장하기 위한 최적화된 구조와 파일 시스템을 관리합니다.
- 사용자가 데이터를 다룰 수 있도록 쿼리 언어(SQL)을 제공한다.
- 데이터 보안
- 사용자 권한 관리, 암호화, 감사 로그 등을 통해 데이터를 보호한다.
- 트랜잭션 관리
- DBMS는 여러 사용자가 동시에 데이터에 접근할 때, 데이터의 일관성을 유지하기 위한 트랜잭션 관리기능을 제공한다.
- ACID 속성 보장
- Atomicity: 트랜잭션의 모든 작업이 성공적으로 완료되거나, 실패 시 모든 작업이 롤백
- Consistency: 트랜잭션이 데이터베이스를 일관된 상태로 유지
- Isolation: 동시에 실행되는 트랜잭션 간의 영향을 최소화
- Durability: 트랜잭션이 완료된 후 데이터의 변경 사항은 영구적으로 저장
- 백업 및 복구
- DBMS는 데이터 손실에 대비해 백업 및 복구 기능을 제공한다.
- 정기적인 백업을 통해 데이터를 보호하며 장애 발생 시 데이터 복구가 가능하다.
- 동시성 제어

- 다수의 사용자가 동시에 데이터베이스에 접근하더라도 데이터 일관성이 유지되도록 동시성 제어를 제공한다. 이를 통해 충돌이나 데이터 불일치를 방지할 수 있다.
DBMS의 종류
- 관계형 DBMS(RDBMS) 중요!
- 가장 많이 사용하는 데이터베이스
- 데이터를 테이블 형태로 구조화하여 저장하고 관리하는 시스템이다.
- 테이블 간의 관계를 이용해 데이터를 연결한다.
ex) Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등
- 비관계형 DBMS(NoSQL)
- 테이블이 아닌 key-value, document, graph 등의 다양한 형태로 데이터를 저장하고 관리한다.
- 스키마가 고정되지 않고, 대규모 데이터 처리와 높은 확장성을 제공한다.
ex) MongoDB, Cassandra, Redis 등
- 다중 모델 DBMS
- 하나의 데이터베이스 관리 시스템에서 여러 데이터 모델을 지원하는 시스템이다.
- 동일한 DBMS에서 관계형 데이터뿐만 아니라 문서형, 그래프형 데이터를 함께 관리할 수 있다.
ex) Amazon DynamoDB, Microsoft Azure Cosmos DB 등