11강 / 20강

DBMS — 데이터를 지키는 사서(司書)

데이터베이스와 DBMS는 다른 것입니다

DBMS — 데이터를 지키는 사서(司書)
여러분은 창고에 직접 들어가지 않습니다. 사서에게 부탁할 뿐입니다.

많은 사람이 헷갈리는 지점을 먼저 정리하고 갑시다.

📚 데이터베이스 (DB)

데이터 그 자체입니다.
서가에 꽂힌 책들, 캐비닛 안의 표들.
school.db 라는 파일.

🤖 DBMS

데이터를 관리하는 프로그램입니다.
서가를 지키는 사서.
SQLite, MySQL, PostgreSQL 같은 소프트웨어.

DBMS는 DataBase Management System(데이터베이스 관리 시스템)의 줄임말입니다. 여러분은 창고 문을 열고 직접 들어가지 않아요. 사서에게 쪽지를 건넬 뿐입니다. 그 쪽지에 쓰는 언어가 바로 SQL입니다.

나
SQL 쪽지 →
DBMS
사서
← 결과 표
DB 파일

트랜잭션 — "전부 아니면 전무"

DBMS의 능력 중 가장 극적인 것을 직접 봅시다. 민준이가 서연이에게 5000원을 보냅니다. 이 작업은 두 단계죠 — 민준이 통장에서 빼고, 서연이 통장에 넣기.

만약 첫 단계만 끝나고 컴퓨터가 꺼지면? 5000원이 세상에서 증발합니다. DBMS는 이런 일이 절대 일어나지 않게 해 줍니다.

BEGIN … COMMIT / ROLLBACK — 은행이 믿고 쓰는 안전장치.
Python 브라우저에서 실행

🎮 5,000원을 보내 보세요 — 사고가 나는 채로

트랜잭션 없이 이체하면 돈이 어떻게 되는지 직접 보세요. 그다음 같은 조건에서 트랜잭션으로 이체해 보세요. 두 경우의 은행 전체 금액을 꼭 비교해 보세요.

계좌 이체 실험 — 트랜잭션이 있을 때와 없을 때
불러오는 중…

어떤 사서를 고용할까?

DBMS성격어울리는 곳
SQLite파일 하나. 설치 불필요. 가볍고 빠름스마트폰 앱, 작은 웹앱, 학습 ⭐
MySQL서버형. 웹에서 가장 널리 쓰임일반적인 웹 서비스
PostgreSQL서버형. 기능이 가장 풍부하고 엄격대규모 서비스, 복잡한 분석
Oracle기업용. 비싸지만 강력은행, 대기업

놀라운 사실 하나 — 여러분의 스마트폰 안에는 이미 SQLite가 수십 개 돌아가고 있습니다. 카카오톡 대화 기록, 사진 앱의 앨범 정보, 브라우저 방문 기록이 전부 SQLite 파일이에요. 세상에서 가장 많이 배포된 데이터베이스입니다.

🤔 확인 문제
school.db 파일과 SQLite 프로그램의 관계로 옳은 것은?