완벽한 기억력의 사서
데이터베이스는 한 가지 일을 위해 존재하는 소프트웨어야 — 구조화된 정보를 정확하게 기억하기. 크래시 나도, 재부팅 해도, 동시에 수백 명이 들이대도, 운영의 난장판 속에서도. 데이터를 던져주면 정리하고 인덱스 걸고 ms 단위로 답해줘. 이게 없으면 CSV grep 하면서 "어느 스프레드시트가 진짜냐"로 회의하고 있는 자기 자신을 발견하게 돼.
진짜 데이터베이스가 파일 캐비닛이랑 다른 점은 엔진에 박힌 네 가지 보장이야 — 구조 (모든 컬럼이 타입을 가짐), 정합성 (제약이 잘못된 데이터를 들어오기 전에 거절), 동시성 (여러 명이 써도 깨지지 않음), 지속성 (COMMIT 이 돌아온 후 1ms 만에 정전 나도 데이터 살아있음).
평생 쓸 관계형 어휘
밑에 나올 PostgreSQL 개념 전부가 세 명사 위에 서있어 — 테이블이 데이터를 담고, 행이 개별 레코드, 컬럼이 타입 있는 필드. 수학 어휘 (relation, tuple, attribute) 가 이거랑 일대일로 대응돼. SQL 은 이 구조를 정의하고 질문하는 언어고.
이 quest 의 전제
PostgreSQL 경험 0. 터미널 좀 익숙하면 좋지만 필수 아냐 — 모든 예제가 copy-paste 가능한 psql 세션이야. 끝나면 스키마 설계하고, window function 짜고, EXPLAIN 출력 읽고, isolation level 갖고 진지하게 토론하고 있을 거야.