데이터베이스 용어 정리
데이터베이스라는 용어는 넓은 의미로는 다음과 같이 사용된다.
데이터베이스는 특정 목적을 위해 구조화된 데이터의 모음이다. 예를 들어, 회사의 고객 정보, 제품 목록, 판매 기록 등을 엑셀 시트나 특정 형식의 파일에 정리해 둔 것 자체가 데이터베이스에 해당한다.
예시:
- 회원 정보가 담긴 표
- 도서관의 도서 목록
- 온라인 쇼핑몰의 상품 정보
데이터베이스 관리 시스템(DBMS)이란 무엇인가?

- 데이터베이스 관리 시스템(DBMS)이란, 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터베이스를 생성, 정의, 공유, 사용, 관리하는 기능을 수행하는 소프트웨어 시스템을 말한다.
- 쉽게 이야기해서 데이터베이스는 데이터를 체계적으로 모아놓은 창고이고, 데이터베이스 관리 시스템(DBMS)은 이 창고를 효율적으로 관리하는 소프트웨어라고 할 수 있다
파일 시스템과 DBMS 비교
DBMS를 사용하면 개발자가 직접 파일을 다루는 대신에 DBMS 소프트웨어가 대신 파일을 사용해서 데이터를 저장하고 관리한다.
- DBMS의 역할: DBMS는 데이터를 효율적으로 저장, 검색, 수정, 삭제할 수 있도록 하는 소프트웨어이다. (프로그램으로 생각하면 된다. 실제로 설치해야 한다.)
- 데이터 저장: DBMS는 결국 데이터를 운영체제의 파일 시스템 위에 있는 특정한 형식의 파일들에 저장한다. 이 파일들은 일반적인 텍스트 파일이나 CSV 파일과는 달리 DBMS 자체의 특별한 구조와 방식으로 구성되어 있어서 매우 효율적으로 데이터를 관리할 수 있다.
- 추상화: 개발자나 사용자는 DBMS가 내부적으로 어떤 파일에 어떻게 데이터를 저장하는지 알 필요가 없다. 대신 SQL과 같은 표준화된 언어를 사용하여 DBMS에 "이런 데이터를 저장해 줘"또는 "이런 데이터를 찾아줘"라고 요청만 하면 된다. 그러면 DBMS가 알아서 내부 파일을 조작하여 요청을 처리한다.
- 직접 접근 금지: DBMS가 관리하는 내부 데이터 파일들은 사용자가 직접 열어보거나 수정하려고 해서는 안 된다. 그렇게 할 경우 데이터가 손상되거나 DBMS 시스템 전체에 문제가 생길 수 있다. 모든 데이터 접근은 반드시 DBMS를 통해서 이루어져야 한다.
간단히 비유하자면:
- 파일 직접 처리: 직접 돈을 직접 금고(파일)에 넣고 빼고 관리하는 것과 같다. 어떤 돈을 어디에 뒀는지, 안전한지 등을 직접 신경 써야 한다.
- DBMS 사용: 은행(DBMS)에 돈을 맡기는 것과 같다. 여러분은 은행 창구(SQL 등 인터페이스)를 통해 입출금 요청만 하면, 은행 내부에서는 어떤 금고(내부 파일)에 어떻게 돈을 보관하고 관리하는지는 알아서 처리해 준다. 여러분은 은행 내부의 복잡한 시스템을 알 필요가 없다.
결론적으로, DBMS는 개발자가 파일 시스템의 복잡한 부분을 직접 다루지 않도록 하고, 대신 데이터를 보다 체계적이고 안전하며 효율적으로 관리할 수 있는 추상화된 방법을 제공하는 것이다. 그리고 그 과정에서 DBMS는 내부적으로 파일을 사용해서 실제 데이터를 디스크에 저장한다.
DBMS는 도서관 사서
쉽게 비유를 들어보자. DBMS는 거대한 도서관의 아주 유능한 사서와 같다고 생각할 수 있다. 도서관에는 수많은 책(데이터)들이 있다. 사서(DBMS)는 이 책들을 그냥 아무렇게나 쌓아두지 않는다.
- 책의 주제별로 분류하고(데이터 정의)
- 새로운 책이 들어오면 등록하고(데이터 생성),
- 어떤 책이 어디 있는지를 목록(카탈로그)으로 만들고 관리하며(데이터 관리),
- 사람들이 책을 쉽게 찾고 빌려볼 수 있도록 도와주고(데이터 조작 및 접근),
- 아무나 귀중한 고서를 만지지 못하게 하고(데이터 제어, 보안),
- 책이 훼손되지 않도록 관리하고(데이터 무결성),
- 도서관 문을 닫은 후에도 책이 안전하게 보관되도록 하며(백업 및 복구),
- 여러 사람이 동시에 도서관을 이용해도 혼란이 없도록 질서를 유지한다(동시성 제어).
이 모든 복잡하고 중요한 일을 사서(DBMS)가 다 알아서 해주는 것이다. 우리는 그냥 사서에게 "혹시 '성공하는 쇼핑몰 운영 비법'에 대한 책 있나요?" 라고 물어보기만 하면, 사서가 알아서 찾아다 주는 것이다. 우리가 직접 수만 권의 책 사이를 헤맬 필요가 없는 것처럼, 애플리케이션 개발자나 사용자는 데이터가 디스크에 물리적으로 어떻게 저장되는지 몰라도 DBMS를 통해 논리적으로 데이터에 접근하고 활용할 수 있다.
DBMS의 역할과 기능
- 데이터 정의 기능 (Data Definition Language - DDL)
- 역할: DBMS는 데이터베이스의 구조를 정의할 수 있는 기능을 제공한다. 우리 쇼핑몰에 어떤 데이터가 필요한지, 각 데이터는 어떤 형태(숫자, 문자열, 날짜 등)로 저장될지, 데이터들 간의 관계는 어떻게 되는지, 어떤 제약조건(예: 상품 가격은 항상 양수여야 한다, 고객 ID는 중복될 수 없다)을 가져야 하는지 등을 명시할 수 있다.
- 예시: 우리 쇼핑몰의 경우 고객(Customers) 테이블, 상품(Products) 테이블, 주문(Orders) 테이블 등을 만들고, 각 테이블에 어떤 항목(예: 고객 테이블에는 고객 ID,이름, 이메일, 주소 등)이 들어갈지, 각 항목의 데이터 타입(예: 고객 ID는 정수형, 이름은 문자열)은 무엇인지 정의할 수 있다. 또한, 고객 ID는 반드시 존재해야 한다(NOT NULL )', '이메일은 유일해야 한다(UNIQUE )' 같은 제약조건도 설정할 수 있다. 참고로 테이블은 엑셀의 표로 이해하면 된다.
- 파일 시스템 문제 해결: 파일 시스템에서는 이런 구조나 제약조건을 체계적으로 관리하기 어려웠던 문제를 해결해 준다.
- 데이터 조작 기능 (Data Manipulation Language - DML)
- 역할: 일단 데이터베이스의 구조가 정의되면, 사용자는 이 구조에 맞춰 데이터를 등록(Insert), 조회(Select), 수정(Update), 삭제(Delete)할 수 있어야 한다. DBMS는 이러한 데이터 조작을 위한 효율적이고 편리한 방법을 제공한다. 특히 관계형 DBMS에서는 SQL(Structured Query Language)이라는 표준화된 언어를 주로 사용한다.
- 예시
- 새로운 고객이 가입하면 고객 테이블에 정보를 등록한다.
- "지난달 가장 많이 팔린 상품 Top 5"를 알고 싶을 때, 주문 테이블과 상품 테이블에서 조건에 맞는 데이터를 조회한다.
- 고객이 이사를 가서 주소가 바뀌면 고객 테이블의 주소 정보를 수정한다.
- 단종된 상품 정보를 상품 테이블에서 삭제한다.
- 파일 시스템 문제 해결: 파일 시스템에서는 특정 조건에 맞는 데이터를 찾거나 여러 파일의 데이터를 조합하는 것이 매우 복잡했던 문제를 SQL과 같은 강력한 언어를 통해 매우 쉽게 해결해 준다.
- 보안, 동시성 제어, 트랜잭션 관리 기능
- 역할: DBMS는 데이터의 보안을 유지하고, 여러 사용자가 동시에 데이터에 접근할 때 발생할 수 있는 문제를 제어하는 기능을 수행한다.
- 보안(Security): 허가된 사용자만이 데이터에 접근할 수 있도록 하고, 사용자별로 접근 가능한 데이터의 범위나 수행할 수 있는 작업(읽기, 쓰기, 수정 등)을 제한할 수 있다.
- 동시성 제어(Concurrency Control): 여러 사용자가 동시에 같은 데이터를 수정하려고 할 때, 데이터의 일관성이 깨지지 않도록 순서를 제어하거나 잠금(Locking) 메커니즘을 사용한다. (예: 쇼핑몰에서 동시에 여러 고객이 마지막 남은 한 개의 상품을 주문하려고 할 때, 한 고객에게만 판매가 완료되도록 처리)
- 트랜잭션 관리(Transaction Management): 아주 중요한 개념인데, 여러 개의 작업을 하나의 논리적인 단위(트랜잭션)로 묶어서 처리한다. 이 트랜잭션은 전부 성공적으로 완료되거나(Commit), 하나라도 실패하면 전부 이전 상태로 되돌아가야(Rollback) 데이터의 일관성이 보장된다 (이를 원자성(Atomicity)이라고 한다). 예를 들어, 계좌 이체라는 것은 (1) 나의 돈을 출금하고, (2) 대상 계좌에 돈을 입금하는 과정이다. 만약 나의 돈을 출금했는데, 대상 계좌에 돈을 입금하는 과정에서 문제가 발생하게 되면, 나의 돈만 사라지는 심각한 문제가 발생한다. 따라서 이 두 작업은 모두 성공하거나 모두 실패해야 한다. 만약 대상 계좌에 돈을 입금하는 과정에서 문제가 발생하면 나의 돈을 출금했던 것도 취소되어야 한다. DBMS는 이러한 트랜잭션 관리를 통해 데이터의 일관성과 안정성을 보장한다.
- 파일 시스템 문제 해결: 파일 시스템에서는 취약했던 보안 문제, 동시 접근 시 데이터가 꼬이는 문제 등을 해결해 준다.
- 역할: DBMS는 데이터의 보안을 유지하고, 여러 사용자가 동시에 데이터에 접근할 때 발생할 수 있는 문제를 제어하는 기능을 수행한다.
- 데이터 중복 최소화 및 일관성 유지
- 역할: DBMS는 정규화(Normalization)라는 과정을 통해 데이터를 여러 테이블로 분리하여 저장함으로써 불필요한 데이터 중복을 줄인다. 데이터 중복이 줄어들면, 데이터를 수정할 때 여러 곳을 고칠 필요가 없어져 데이터 불일치 가능성이 현저히 낮아지고 저장 공간도 효율적으로 사용할 수 있다.
- 예시: 고객의 주소 정보는 고객 테이블에 한 번만 저장하고, 주문 테이블에서는 해당 고객의 ID만 참조하도록 하면, 고객이 이사했을 때 고객 테이블의 주소만 수정하면 모든 주문에서 변경된 주소를 참조할 수 있다.
- 파일 시스템 문제 해결: 파일에 데이터를 저장할 때 흔히 발생했던 데이터 중복 및 그로 인한 데이터 불일치 문제를 구조적으로 해결한다.
- 데이터 백업 및 복구 (Data Backup and Recovery)
- 역할:DBMS는 시스템 장애(예: 하드디스크 고장, 정전)나 사용자 실수로 인해 데이터가 손상되거나 유실될 경우를 대비하여, 데이터를 주기적으로 백업하고 문제 발생 시 안전하게 복구할 수 있는 기능을 제공한다. 로그(Log) 파일을 기록하여 변경 사항을 추적하고, 이를 통해 특정 시점으로 데이터를 복원할 수도 있다.
- 파일 시스템 문제 해결: 파일 시스템에서는 수동으로 백업해야 하고 복잡했던 데이터 복구 문제를 훨씬 체계적이고 안정적으로 처리해 준다.
정리하자면, DBMS는 데이터를 단순히 저장하는 것을 넘어, 데이터를 정의하고, 조작하고, 관리함으로써 데이터의 품질, 보안, 안정성을 보장하는 아주 중요한 소프트웨어다. 우리가 앞으로 다룰 MySQL도 바로 이 DBMS의 한 종류다. DBMS가 어떤 원리로 데이터를 관리하고 어떤 기능을 제공하는지 이해해야, 우리가 왜 MySQL을 배우고 어떻게 활용해야 하는지 그 본질을 알 수 있다. 그냥 "MySQL은 데이터를 저장하는 프로그램" 정도로만 알고 넘어가면, 그 강력한 기능을 제대로 써먹을 수 없다.
'데이터 베이스 > SQL 첫걸음(인프런 강의)' 카테고리의 다른 글
| Ch01. 데이터 베이스 소개 - 관계형 데이터베이스 종류 (0) | 2025.09.26 |
|---|---|
| Ch01. 데이터 베이스 소개 - 관계형 데이터베이스 종류 (0) | 2025.09.26 |
| Ch01. 데이터 베이스 소개 - 관계형 데이터베이스 vs NoSQL (0) | 2025.09.26 |
| Ch01. 데이터 베이스 소개 - 데이터베이스 관리 시스템이 필요한 이유 (0) | 2025.09.23 |
| Ch01. 데이터 베이스 소개 - 데이터와 정보 (0) | 2025.09.21 |