정확히 기억하는 시스템
데이터베이스는 구조를 갖춘 정보를 정확하게 기억하는 소프트웨어야. 프로그램이 갑자기 죽거나 컴퓨터를 다시 켜도, 수백 명이 한꺼번에 달려들어도 약속한 데이터를 지켜야 해. 저장된 정보에 색인을 만들어 두면 필요한 답도 ms 단위로 찾아줘. 이 역할을 맡길 곳이 없으면 CSV를 뒤지다가 결국 “어느 스프레드시트가 진짜야?”라는 회의부터 열게 돼.
파일 보관함과 데이터베이스를 가르는 건 엔진이 보장하는 네 가지 약속이야. 구조는 열마다 자료형을 정하고, 정합성은 규칙을 어긴 값이 들어오지 못하게 막아. 동시성은 여러 사람이 함께 써도 데이터가 깨지지 않게 조율하고, 지속성은 COMMIT이 끝난 뒤 1ms 만에 전원이 나가도 확정된 변경을 지켜.
앞으로 계속 쓸 세 낱말
이 퀘스트의 모든 개념은 테이블, 행, 열에서 시작해. 테이블은 같은 구조의 데이터를 모으고, 행은 개별 기록 하나를 나타내며, 열은 자료형이 정해진 속성을 담아. 관계형 이론의 relation, tuple, attribute가 각각 이 셋에 대응하지. SQL은 이 구조를 만들고 그 안의 데이터에 질문하는 언어야.
출발점과 도착점
PostgreSQL 경험은 전혀 없다고 보고 출발할게. 터미널에 익숙하면 편하지만 필수는 아니야. 예제는 그대로 실행할 수 있는 psql 세션으로 준비했어. 끝까지 가면 스키마를 설계하고, 윈도 함수를 쓰고, EXPLAIN 결과를 읽으며, 격리 수준을 근거 있게 고를 수 있게 돼.