요즘 데이터베이스를 공부하며 헷갈렸던 부분을 기록하려한다.
RDB, RDBMS, DBMS… 이름도 비슷하고 다 같은 건 줄 알았는데 뭐가 뭔지 하나도 모르겠었음
먼저 제일 넓은 개념부터 start !
DBMS는 데이터베이스를 생성하고, 데이터를 읽고/쓰기/수정/삭제할 수 있도록 해주는 시스템(소프트웨어)이다.
쉽게 말해서, 데이터를 다루기 위한 프로그램이라고 생각하면 됨.
즉, RDBMS는 DBMS의 한 종류인 것.
여기서 잠깐‼️
NoSQL = Not Only SQL
이름처럼 "SQL만 사용하는 게 아니라"는 뜻
즉, 꼭 테이블(행과 열) 형태로 저장하지 않고, 다양한 방식으로 데이터를 저장할 수 있는 DBMS이다.
관계형 데이터베이스와 달리 NoSQL 데이터베이스는 유연한 데이터 모델을 따르므로 자주 변경되는 데이터를 저장하거나 다양한 유형의 데이터를 처리하는 애플리케이션에 적합!
이제 많이 들어본 RDB!
RDB는 데이터를 표(테이블) 형식으로 저장하는 방식
엑셀처럼 행(Row)과 열(Column)로 구성된다고 생각하면 됨.
예를 들어 이런 테이블이 있다면
| id | 이름 | 전화번호 |
|---|---|---|
| 1 | 홍길동 | 010-1111-2222 |
| 2 | 김영희 | 010-3333-4444 |
이런 게 바로 RDB이다.
그리고 테이블들끼리 관계(릴레이션)도 맺을 수 있음.
예: 고객 테이블과 주문 테이블이 고객 ID로 연결됨.
RDB가 "관계형" 데이터베이스라고 불리는 핵심 이유는 이 관계 때문이다.
테이블 간에 관계를 설정함으로써,
고객 테이블
| 고객 ID | 이름 | 이메일 |
|---|---|---|
| 1 | 홍길동 | hong@example.com |
| 2 | 김영희 | kim@example.com |
주문 테이블
| 주문ID | 고객ID | 상품명 | 가격 |
|---|---|---|---|
| 101 | 1 | 노트북 | 120,000 |
| 102 | 2 | 스마트폰 | 100,000 |
| 103 | 1 | 이어폰 | 9,000 |
RDBMS는 RDB(관계형 데이터베이스)를 관리해주는 프로그램
즉, 테이블을 만들고,
데이터를 넣고,
삭제하고,
검색하고,
보안도 설정하고,
트랜잭션도 처리해주는 도구이다.
RDBMS는 SQL이라는 표준화된 언어를 사용하여 데이터를 관리한다. SQL을 통해 데이터베이스에 명령을 내릴 수 있다:
-- 데이터 조회
SELECT * FROM 고객 WHERE 이름 = '홍길동';
-- 데이터 추가
INSERT INTO 고객 (이름, 전화번호) VALUES ('이철수', '010-5555-6666');
트랜잭션(Transaction)은 데이터베이스에서 하나의 작업 단위
예: 은행 이체
1. A 계좌에서 10만 원 출금
2. B 계좌에 10만 원 입금
이 두 개가 모두 성공해야만 최종 반영됨!
하나라도 실패하면 전체 취소되어야 하는데,
이런 걸 트랜잭션이라고 함.
✅ 트랜잭션은 안정성(ACID)을 보장하기 위한 핵심 기능!
📦 RDB = 데이터를 저장하는 "표"
🧰 RDBMS = 그 표를 만들고 다루는 도구 (MySQL 같은 프로그램)
🧠 DBMS = 데이터베이스를 다루는 전체 프로그램 개념 (RDBMS도 이 안에 포함!)
| 용어 | 설명 | 예시 |
|---|---|---|
| DBMS | 데이터를 저장하고 관리하는 모든 시스템 | MySQL(RDBMS), MongoDB(NoSQL), Redis(NoSQL) 등 |
| RDB | 데이터를 테이블 형식으로 저장하는 구조 | 고객 테이블, 주문 테이블 등 |
| RDBMS | RDB를 관리해주는 프로그램 (DBMS의 하위 개념) | MySQL, Oracle, PostgreSQL 등 |