dbms
기본 정보
- 명칭: DBMS
- 영문명: Database Management System
- 한글명: 데이터베이스 관리 시스템
- 분류: 데이터 관리 소프트웨어
- 주요 용도: 데이터 저장, 조회, 수정, 삭제 및 관리
- 관련 주제: #DBMS #데이터베이스 #SQL #백엔드
개요
DBMS(Database Management System)는 데이터를 저장하고 관리하며, 사용자가 데이터를 효율적으로 조회·수정·삭제할 수 있도록 지원하는 소프트웨어이다.
사용자는 DBMS를 통해 SQL을 실행하여 데이터를 조작하며, DBMS는 데이터의 무결성, 보안, 동시성, 백업 및 복구 기능을 제공한다.
현재 대부분의 웹사이트, ERP, 쇼핑몰, 게임 서버, 금융 시스템은 DBMS를 기반으로 운영된다.
DBMS 구조
Application
↓
DBMS
├── Query Processor
├── Optimizer
├── Transaction Manager
├── Storage Manager
└── Security Manager
↓
Database
DBMS 역할
- 데이터 저장
- 데이터 조회
- 데이터 수정
- 데이터 삭제
- 권한 관리
- 트랜잭션 처리
- 백업 및 복구
- 동시성 제어
- 인덱스 관리
- 데이터 무결성 유지
동작 과정
Application
↓
SQL 실행
↓
DBMS
↓
Query 분석
↓
Optimizer
↓
Storage Engine
↓
Database
↓
결과 반환
DBMS 구성 요소
Query Processor
SQL 문장을 분석하고 실행 계획을 생성한다.
Query Optimizer
가장 효율적인 실행 계획을 선택하여 성능을 최적화한다.
Storage Manager
데이터 파일과 인덱스를 관리한다.
Transaction Manager
트랜잭션의 시작, 커밋, 롤백을 관리한다.
Security Manager
사용자 권한과 접근 제어를 담당한다.
DBMS 종류
관계형 DBMS(RDBMS)
테이블 구조로 데이터를 관리한다.
대표 제품
NoSQL DBMS
비정형 데이터를 저장하는 시스템이다.
대표 제품
SQL 예제
조회
SELECT *
FROM member;
추가
INSERT INTO member(
name
)
VALUES(
'홍길동'
);
수정
UPDATE member
SET name='김철수'
WHERE id=1;
삭제
DELETE
FROM member
WHERE id=1;
트랜잭션(Transaction)
여러 작업을 하나의 단위로 처리한다.
START TRANSACTION;
UPDATE account
SET money=money-1000
WHERE id=1;
UPDATE account
SET money=money+1000
WHERE id=2;
COMMIT;
오류 발생 시
ROLLBACK;
을 수행하여 이전 상태로 복구한다.
ACID 원칙
트랜잭션은 일반적으로 ACID 원칙을 따른다.
| 원칙 | 설명 |
|---|---|
| Atomicity | 원자성 |
| Consistency | 일관성 |
| Isolation | 독립성 |
| Durability | 지속성 |
인덱스(Index)
검색 성능을 향상시키는 자료구조이다.
CREATE INDEX idx_name
ON member(name);
동시성 제어
여러 사용자가 동시에 접근해도 데이터의 일관성을 유지한다.
대표 기술
- Lock
- MVCC
- Timestamp
백업과 복구
대표 방법
- Full Backup
- Incremental Backup
- Differential Backup
- Binary Log 복구
- Point In Time Recovery
DBMS와 데이터베이스 차이
| DBMS | Database |
|---|---|
| 관리 프로그램 | 실제 데이터 저장 공간 |
| SQL 처리 | 데이터 저장 |
| 권한 관리 | 데이터 보관 |
| 백업 기능 | 데이터 자체 |
DBMS와 파일 시스템 비교
| DBMS | 파일 시스템 |
|---|---|
| SQL 지원 | 직접 파일 접근 |
| 동시성 관리 | 지원 제한 |
| 보안 기능 | 제한적 |
| 백업 기능 | 별도 구현 필요 |
| 데이터 무결성 | 우수 |
대표 활용 분야
- ERP
- CRM
- 쇼핑몰
- 게시판
- 게임 서버
- 금융 시스템
- 병원 시스템
- 예약 시스템
- 물류 시스템
장점
- 데이터 무결성 보장
- 빠른 검색
- 동시성 관리
- 권한 관리
- 백업 및 복구 지원
- 대용량 데이터 처리 가능
단점
- 초기 구축 비용
- 관리 인력 필요
- 설계가 중요
- 성능 튜닝 필요
- 라이선스 비용이 발생할 수 있음
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Primary Key 설정
- Index 최적화
- Slow Query 점검
- 정기 백업 수행
- 트랜잭션 최소 범위 유지
- SQL Injection 방지
- UTF-8(
utf8mb4) 사용 - 권한 최소화 원칙 적용
- 모니터링 시스템 구축
- ERD 최신 상태 유지
DBMS와 함께 사용하는 기술
대표 관리 도구
- MySQL Workbench
- DBeaver
- phpMyAdmin
- HeidiSQL
- Navicat
- DataGrip
관련 문서
출처
- Oracle Database Documentation
- Database Management System 관련 표준 문서
- 위키백과 「Database Management System」