데이터베이스 클러스터, 데이터베이스, 테이블
1장과 2장은 뒤에 나오는 내용들을 이해하는 데 필요한 PostgreSQL의 기본 지식을 요약한 것이다. 이번 장에서 다룰 주제는 아래와 같다.
- 데이터베이스 클러스터의 논리적인 구조
- 데이터베이스 클러스터의 물리적인 구조
- heap table file의 내부 구조
- 테이블에 대해 데이터를 읽고 쓰는 방식
위 주제들에 대해 잘 알고 있다면 이번 장은 넘어가도 된다.
데이터베이스 클러스터의 논리적인 구조
데이터베이스 클러스터
란 PostgreSQL 서버가 관리하는 데이터베이스들을 총칭(collection)하는 것이다. 이 개념을 처음 접하는 사람이라면 어떤 개념인지 궁금증이 들 터인데 PostgreSQL에서 데이터베이스 클러스터
는 데이터베이스 서버들의 그룹이라는 의미가 아니다.
그림 1.1은 데이터베이스 클러스터의 논리적인 구조를 보여준다. PostgreSQL에서 데이터베이스
란 그것을 이루고 있는 오브젝트들의 총칭(collection)이다. 관계형 데이터베이스 이론에서 데이터베이스 오브젝트는 데이터를 저장하거나 참조하기 위한 데이터 구조를 말한다. (힙) 테이블은 그 예의 하나로 데이터베이스 오브젝트로는 인덱스, 시퀀스, 뷰, 함수 등이 있다. PostgreSQL에서 데이터베이스들은 그 자체로 데이터베이스 오브젝트이며 서로 간에 논리적으로 분리되어 있다. 데이터베이스 오브젝트 이외의 오브젝트들, 예를 들어 테이블 또는 인덱스 같은 것들은 각각의 데이터베이스에 속해 있다.
그림 1.1 출처