다음은 PostgreSQL과 일반적인 관계형 데이터베이스 시스템 관련 용어들과 그 의미를 나열한 것이다.
원자성 Atomicity, 일관성 Consistency, 독립성 Isolation, 그리고 내구성 Durability. 데이터베이스 트랜잭션의 속성들로 동시 작업, 오류, 정전 등이 생겼을 때 처리하는 자료가 얼마나 올바르게 보장되는가를 살피는 기준이 된다.
여러 입력값을 조합 (집계)하는 함수로 자료 수, 평균과 같은 것을 구하기 위해 계산해서 한 값으로 출력하는 함수.
자세한 설명은 9.21절 참조.
다른 살펴볼 내용 윈도우 함수, Window function (루틴).
살펴볼 내용 윈도우 함수, Window function (루틴).
쿼리 계획기가 처리할 쿼리를 내부적으로 어떤 순서와 방식으로 실행할지를 결정하기 위해 테이블과 기타 릴레이션에 저장된 자료를 분석해서 통계 정보를 수집하는 작업.
(EXPLAIN 명령의 옵션으로
ANALYZE
옵션이 있다. 이것과 헛갈리지 말 것.)
자세한 설명은 ANALYZE 참조.
트랜잭션의 속성. 하나의 묶음으로 모두 완료 되거나 아니면, 모두 취소되는 것. 더 보태서, 트랜잭션 작업 중 시스템 장애가 생겨, 복구 작업을 할 때, 그 부분 작업이 복구 되어 그 결과가 부분적으로 보여지면 안된다. 이것은 ACID 속성 가운데 하나다.
정기적으로 청소와 통계 정보 수집 작업을 수행하는 백그라운드 프로세스 세트.
자세한 설명은 24.1.6절 참조.
클라이언트 세션 작업을 처리하는 프로세스, 인스턴스 프로세스들 가운데 하나.
(설명이 비슷한 백그라운드 워커 Background Worker 또는 백그라운드 라이터 Background Writer와 헛갈리지 말것.)
시스템 내부적 또는 사용자 내부적으로 실행되는 인스턴스 하위 프로세스. PostgreSQL는 서버 여러 기능을 각각의 이 백그라운드 워커 프로세스로 처리한다. 대표적인 것으로 논리 복제 와 병렬 쿼리 백그라운드 워커 프로세스가 있다. 또 개별 확장 모듈에서 임의로 실행하는 백그라운드 워커 프로세스도 있다.
자세한 설명은 47장 참조.
공유 메모리에 있는 변경된(dirty) 데이터 페이지를 파일 시스템으로 옮겨 쓰는 프로세스. 주기적으로 작업을 하지만, 이 작업으로 발생하는 I/O 부하가 시스템에 최소한의 영향을 끼치도록 짧은 시간 동안만 작동한다. 변경된 데이터 페이지가 많은 경우 그것을 한 번에 모두 쓰면, 많은 I/O가 발생해서 다른 프로세스들이 대기할 수 있다. 이것을 피하기 위해 쓰는 양을 나눠 조금씩 자주 처리한다. (아무도 사용하지 않는 변경된 데이터 페이지만을 대상으로 한다. - 옮긴이)
자세한 설명은 19.4.5절 참조.
현재 로우 버전을 담고 있지 않은 데이터 페이지 공간, 사용하지 않는 공간 (빈 공간) 또는 아직 빈 공간으로 바뀌지 않은 옛 버전 자료가 있는 공간.
자세한 설명은 CREATE CAST 참조.
SQL 표준 용어. PostgreSQL 전문용어로는 데이터베이스라고 한다.
자세한 설명은 22.1절 참조.
릴레이션에 정의하는 제약조건 가운데 하나로, 하나 또는 그 이상의 속성에 담기는 자료 값 유효성을 지정한다. 체크 제약조건은 해당 로우의 어떤 속성도 참조할 수 있지만, 해당 릴레이션의 다른 로우나, 다른 릴레이션의 로우의 속성은 참조할 수 없다.
자세한 설명은 5.4절 참조.
WAL 가운데 한 지점이다. 이 지점 전에 공유 메모리에서 작업한 모든 변경 사항은 힙과 인덱스 데이터 파일에 모두 안전하게 저장되었음을 의미한다; WAL에 그 지점을 표시하기 위해 체크포인트 레코드를 기록하고, 플러시한다.
또, 앞에서 설명한 체크포인트 그 지점까지 도착하기 위한 일련의
작업 과정을 뜻하기도 한다.
이 작업은 다음 조건에서 시작된다. 마지막 체크포인트 작업 다음
일정 시간이 지났을 때, 트랜잭션 로그가 일정량 기록되었을 때, 또는
사용자가 CHECKPOINT
명령을 실행했을 때다.
자세한 설명은 29.4절 참조.
체크포인트 작업을 담당하는 특수 프로세스.
살펴볼 내용 릴레이션, Relation.
한 데이터베이스 대상으로 작업을 하기 위해, 인스턴스와 연결하는 세션이 되는 모든 프로세스, 원격(인스턴스가 실행되고 있는 호스트가 아닌 곳)도 가능하다.
해당 데이터베이스에서 한 트랜잭션을 끝내는 작업. 이 작업이 끝나면, 다른 트잰잭션에 이 트랜잭션 결과가 보이며, 이 트랜잭션은 내구성이 보장된다.
자세한 설명은 COMMIT 참조.
해당 데이터베이스에서 같은 시간에 여러 독립된 작업이 가능한 특성이다. PostgreSQL에서는 다중 버전 동시성 제어 기법으로 이 동시성을 제어한다.
클라이언트 프로세스와 백엔드 프로세스 사이 통신을 위해 맺은 회선. 통상 세션을 지원하는 네트워크를 기반한다. 이 용어는 세션과 같은 용어로 종종 사용된다.
자세한 설명은 19.3절 참조.
데이터베이스 내 데이터가 무결성 제약조건을 항상 준주하는 특성. 트랜잭션이 커밋 되기 전에는 잠깐동안 몇몇 제약조건을 위반한 상태일수는 있으나, 커밋 되는 시점에 이 위반이 해결나지 않는다면, 이런 트랜잭션들은 자동으로 롤백된다. 이것은 ACID 속성 가운데 하나다.
테이블이나 도메인의 속성에 담기는 데이터가 유효한 값이 되도록 제한 하는 것.
자세한 설명은 5.4절 참조.
살펴볼 내용 데이터 디렉터리, Data directory.
자세한 설명은 22.1절 참조.
데이터베이스와 전역 SQL 객체들과 그것들의 공통 정적, 동적 메타데이터의 묶음. 종종 그냥 클러스터라고도 한다.
PostgreSQL에서는
클러스터가 종종
인스턴스 용어와 같은 의미로 사용되기도 한다.
(SQL 명령어 가운데 CLUSTER
와 헛갈리지 말것)
살펴볼 내용 인스턴스, Instance.
데이터베이스 클러스터와
관계되는 모든 파일과 하위 디렉토리를 포함하는
서버의 파일 시스템 가운데
기본 디렉터리
(tablespaces와
임의로 지정한 WAL
저장 위치는 제외됨).
이 데이터 디렉터리는 일반적으로 PGDATA
라는
OS 환경 변수값으로 지정해서 사용된다.
한 클러스터의 전체 저장 공간 크기는 데이터 디렉터리 공간과 추가로 지정한 테이블스페이스 공간을 더한 것이다.
자세한 설명은 68.1절 참조.
릴레이션의 데이터를 저장하는 사용되는 기본 구조. 모든 페이지는 크기가 같다. 데이터 페이지는 대게 그 용도에 맞는 특정 개별 파일로 디스크에 저장되며, 공유 버퍼에서 있을 수 있으며, 여기서 그 페이지가 변경이 되면, 그 페이지를 더티 dirty 페이지라 한다. 이 페이지들은 디스크에 기록되면 클린 clean 페이지가 된다. 메모리에만 있는 초기화된 새 페이지도 디스크에 저장되기 전까지는 더티 페이지다.
SQL 자료형과 그 값이 담기는 내부 자료.
특정 테이블이나 릴레이션에서 로우를 지우는 SQL 명령.
자세한 설명은 DELETE 참조.
한 트랜잭션이 커밋되었음을 보장하는 것이다. 이 보장은 커밋 뒤에 시스템에 오류가 있거나, 비정상 종료된 다음 다시 실행되었을 때도 그 변경 사항은 유지되는 것을 뜻한다. 이것은 ACID 속성 가운데 하나다.
살펴볼 내용 트랜잭션 아이디, Transaction ID.
추가 기능을 사용하기 위해 인스턴스에 추가 설치 가능한 소프트웨어 패키지.
자세한 설명은 37.17절 참조.
릴레이션의 자료가 저장되는 물리적인 파일. 조각 파일의 크기는 엔진 빌드를 위한 설정 작업에서 결정되며 (통상 1 기가바이트), 이 크기 이상의 자료를 담을 때는 여러개의 조각 파일로 나눠 처리한다.
자세한 설명은 68.1절 참조.
현재 연결된 데이터베이스에 없는 외부 자료를 마치 해당 데이터베이스의 테이블을 다루듯 할 수 있는 모듈. 외부 자료 싸개는 외부 서버와 외부 테이블을 사용할 수 있게 하는 모듈이다.
자세한 설명은 CREATE FOREIGN DATA WRAPPER 참조.
제약조건 가운데 하나다. 특정 테이블의 하나 또는 그 이상 칼럼을 대상으로 지정할 수 있다. 그 칼럼에 저장되는 값은 다른 테이블 (혹은 드물게 같은 테이블)의 0 또는 하나의 로우를 가리키는 값만 허용하는 제약조건이다.
외부 테이블을 모아둔 집합의 이름이다. 이 집합에 속한 외부 테이블은 모두 같은 외부 자료 싸개와 기타 환경 설정값을 사용하는 외부 테이블들이다.
자세한 설명은 CREATE SERVER 참조.
릴레이션의 한 종류로, 조회를 하면, 일반 테이블과 비슷하게, 로우와 칼럼으로 구성된 자료를 보여준다. 그 실자료는 외부 자료 싸개를 이용해서 처리된 외부 자료다. 외부 자료 싸개는 외부 테이블에 정의된 형태로 결과 집합을 처리해서 반환한다.
자세한 설명은 CREATE FOREIGN TABLE 참조.
한 릴레이션이 저장되는 여러 조각 파일들의 집합. 데이터가 저장되는 파일을 메인 포크라고 함. 또한, 메타 정보가 저장되는 다음 두 개의 포크도 있음: 빈터 지도, 실자료 지도. 또한 언로그드 릴레이션은 init 포크도 있음.
테이블과 연결되는 메인 포크의 각 데이터 페이지에 대한 메타 정보를 보관하는 저장 구조. 각 데이터 페이지에 대한 빈터 지도 항목은 앞으로 저장될 튜플을 위해서 사용 가능한 빈 자리의 크기를 보관하며, 이것은 새 튜플이 저장될 때 그 크기에 따라 어디에 저장하는 것이 좋을지를 찾기위해 사용된다.
자세한 설명은 68.3절 참조.
하나의 트랜잭션으로 처리되는 루틴의 한 종류다.
이것은 0 또는 그 이상의 입력 인자를 사용하고,
0 또는 그 이상의 출력 반환값을 출력한다.
함수는 쿼리의 한 부분으로 호출된다, 예:
SELECT
.
특정 함수는
집합을
반환할 수 있다. 이런 함수를
집합 반환 함수라 한다.
자세한 설명은 CREATE FUNCTION 참조.
데이터베이스 내 특정 객체를 접근하기 위해서 사용자나 롤에 그 권한을 부여하는 SQL 명령.
자세한 설명은 GRANT 참조.
릴레이션 안 로우의 속성들에 지정되는 값(데이터)을 보관하고 있는 영역. 이 힙은 릴레이션의 메인 포크를 구성하는 데이터 조각 파일 안에 실질적으로 담긴다.
네트워크를 이용해 다른 컴퓨터와 통신하는 컴퓨터. 가끔 서버와 같은 용어로 다룬다. 또한 클라인언트 프로세스가 실행되는 컴퓨터를 뜻하기도 한다.
릴레이션의 한 종류로 테이블이나 구체화된 뷰로부터 파생된 데이터를 보관한다. 이것의 내부 구조는 원본 데이터를 빠르게 찾거나 접근하는 할 수 있도록 구현되었다.
자세한 설명은 CREATE INDEX 참조.
자세한 설명은 INSERT 참조.
공통 공유 메모리 영역을 이용해서 통신하는 백앤드와 기타 프로세스들의 집합. 하나의 포스트마스터 프로세스가 인스턴스를 관리한다. 하나의 인스턴스는 하나의 데이터베이스 클러스터를 관리한다. 하나의 데이터베이스 클러스터 안에는 여러 개의 데이터베이스를 포함한다. 한 서버에 여러 인스턴스를 실행할 수 있으며, 이 때는 각 인스턴스는 자신과 통신할 수 있는 고유 TCP 포트를 사용해서 충돌을 피한다.
인스턴스는 DBMS 모든 주요 기능을 처리한다: 파일과 공유 메모리 읽기 쓰기, ACID 속성 보장, 클라이언트 프로세스의 연결 처리, 접근 권한 검사, 비정상 종료 시 복구, 복제, 기타 등등.
동시 트랜잭션 상황에서 트랜잭션이 커밋 되기 전까지는 그 변경 사항이 다른 트랜잭션에서는 보이지 않는 속성. 이것은 ACID 속성 가운데 하나다.
자세한 설명은 13.2절 참조.
해당 릴레이션의 하나 또는 그 이상 속성들의 그 값으로 테이블이나 기타 릴레이션 안에 있는 특정 로우를 지칭하는 식별자.
하나의 자원을 동시에 접근하는 것을 제한하거나, 막는 작동 방식.
이벤트를 사람이 읽을 수 있는 문장으로 쓴 파일. 예를 들어 로그인 실패, 실행하는데 오랜 시간이 걸린 쿼리 등을 쓴다.
자세한 설명은 24.3절 참조.
테이블의 변경 사항을
WAL로 보내는 것을
로그드라한다. (우리말로 다시 옮기면 트랜잭션 로그를 기록 함)
기본적으로 모든 일반 테이블은 로그드한다.
특수하게 테이블을 만들 때나 ALTER TABLE
명령을 사용해서 이 로그드 속성을 사용하지 않을 수 있는데,
이 때는 unlogged
옵션을 사용한다.
환경 설정으로 활성화 하면, 이 프로세스가 생기고, 현재 로그 파일에 데이터베이스 이벤트 정보를 기록한다. 설정에 따라 특정 시간이 지나거나, 특정 크기를 넘기면 새로운 파일에 기록한다. 시스로거, syslogger라고도 한다.
자세한 설명은 19.8절 참조.
살펴볼 내용 프라이머리, Primary (서버).
일부 정보를 실시간으로 계산해서 처리하는 것이 아니라, 미리 계산하고 저장 해 두는 기능.
이 용어는 구체화된 뷰 에서 사용된다. 이 객체는 일반 뷰와 달리 그 뷰 결과 데이터를 또 하나의 독립된 객체로 디스크에 저장된다.
이 용어는 몇몇 여러 단계를 거치는 쿼리에서 선행 작업 결과 집합을 메모리에 두는(필요하다면 디스크로도 저장하고) 작업을 의미하기도 한다. 이렇게 해서 다음 단계에서 이 집합을 여러번 반복해서 사용할 때 작업 효율성을 높인다.
(일반 view처럼)
SELECT
구문으로 정의하는
릴레이션의
한 종류다.
일반 뷰와 달리 이 뷰 결과는
테이블의 자료 저장 방식과
같은 방식으로 저장된다.
구체화된 뷰는 INSERT
, UPDATE
, 또는
DELETE
작업을 허용하지 않는다.
자세한 설명은 CREATE MATERIALIZED VIEW 참조.
여러 트랜잭션이 같은 로우를 읽거나 쓸 때, 그 한 작업 때문에 다른 프로세스들이 기다리는 일이 없게(최소화) 하는 기법. PostgreSQL에서는 해당 자료가 변경 될 때, 그 튜플을 복사하는 방식으로 이것을 구현했다. (이렇게 복사된 튜플을 버전이라 한다.) 트랜잭션 작업 안에서 변경을 위해 새롭게 만들어진 버전을 새 버전, 기존 자료를 옛 버전이라 하고, 다른 트랜잭션들은 자기 자신이 만든 새 버전 외 다른 새 버전을 볼 수 없다. 이 트랜잭션이 커밋되면 이 새 버전은 옛 버전이 되고, 트랜잭션 작업 중에 기존에 있었던 옛 버전은 삭제된 버전(dead tuple이라고 한다)이 된다.
없음을 나타내는 개념, 관계형 데이터베이스 이론의 주요 개념이다. 값이, 자료가 없다를 나타낸다. (숫자 영(0)은 영이 있는 것이고, 빈문자열('')은 빈문자열이 있는 것이나, 널은 그런 것들 조차 없는 것을 뜻한다. - 옮긴이)
살펴볼 내용 쿼리 실행계획기, Query planner.
큰 전체 집합 가운데, (중첩되지 않은) 한 부분 집합.
상위 파티션 테이블 용어랑 관계되면: 상위 테이블 소속 여러 하위 테이블들 가운데 하나. (흔히 부모, 자식 테이블 용어를 사용하나, 여기서는 상하위 테이블로 옮긴다.) 이 파티션 자체도 테이블이다. 그래서 직접 그 해당 테이블을 대상으로 쿼리를 할 수 있다. 또한, 상위 파티션 테이블이 다른 상위 파티션 테이블의 하위 파티션 테이블이 될 수 있어, 계층 구조 형태가 될 수도 있다.
쿼리에 사용하는 윈도우 함수 용어랑 관계되면: 파티션은 그 함수에 의해 고려될 수 있는 쿼리 결과 집합의 인접한 로우들로, 이는 사용자가 정의한 한 범위를 뜻한다.
인스턴스의 최상위 프로세스. 부가적인 여러 하위 프로세스를 실행하고 관리하며, 접속 요청이 오면 백엔드 프로세스를 만든다.
자세한 설명은 18.3절 참조.
테이블이나 기타 릴레이션에 지정하는 고유 제약조건 가운데 독특한 것이다. 이 제약조건에 속한 모든 속성은 널 값을 허용하지 않는다. 이름에서 알 수 있듯이, 하나의 테이블에는 하나의 기본키만 지정할 수 있다. 하지만, 널 값을 허용하지 않는 속성들로만 구성된 고유 제약조건을 여러 개 지정할 수 있다.
replication 기능을 사용하는 둘 이상의 데이터베이스 서버가 서로 연결 되어 있는 경우, 그 중에 정보 원천이 되는 (원본 정보를 제공하는) 서버를 프라이머리라고 하고, 주 서버라고도 한다.
루틴의 한 종류.
반환 값이 없는 점이 주요 특징이며,
작업 영역 내에, COMMIT
과 ROLLBACK
을
트랜잭션 내에서 사용할 수 있다.
프로시져는 CALL
명령으로 호출한다.
자세한 설명은 CREATE PROCEDURE 참조.
클라이언트가 백엔드보내는 요청. 일반적으로 이 요청의 결과로 백엔드는 해당 데이터베이스의 자료를 결과 집합으로 반환하거나, 해당 데이터베이스의 자료를 바꾼다.
실행 쿼리의 가장 효율적인 실행 계획을 짜는 (결정하는) PostgreSQL의 한 부분. 쿼리 최적화기, 옵티마이져, 간단히 플래너 라고도 한다.
살펴볼 내용 튜플, Tuple.
살펴볼 내용 WAL 파일.
database 안에 있는 모든 객체를 지칭하는 일반적인 용어다. 릴레이션은 그 이름이 있고, 일정한 순서로 된 속성 목록으로 구성된다. 모든 객체는 테이블, 시퀀스, 뷰, 외부 테이블, 구체화된 뷰, 복합 자료형들과 인덱스다.
보다 일반적으로, 하나의 릴레이션은 튜플들의 집합이다. 예를들어, 쿼리의 결과 집합 또한 릴레이션이다.
PostgreSQL에서는 옛날에는 이 릴레이션을 클래스라고 불렀다.
프라이머리 데이터베이스와 짝이 되는 데이터베이스로, 프라이머리 데이터베이스 자료 전부 또는 일부를 복사해 놓은 데이터베이스다. 복제 서버를 만드는 대부분의 이유는 해당 자료를 보다 많이 접근할 수 있게 하고, 프라이머리 서버를 사용할 수 없을 때 대신 사용할 수 있게 해 가용성을 높이기 위해서다.
한 서버의 자료를 리플리카라는 다른 서버에 똑 같이 두는 기법. 물리 복제라고 해서, 서버간 모든 자료가 완벽하게 똑 같게 만들기도 하고, 논리 복제라고 해서, 복제할 부분만 정의해서 그 부분만 복제하기도 한다.
A relation transmitted
from a backend process
to a client upon the
completion of an SQL command, usually a
SELECT
but it can be an
INSERT
, UPDATE
, or
DELETE
command if the RETURNING
clause is specified.
The fact that a result set is a relation means that a query can be used in the definition of another query, becoming a subquery.
A command to prevent access to a named set of database objects for a named list of roles.
자세한 설명은 REVOKE 참조.
A collection of access privileges to the instance. Roles are themselves a privilege that can be granted to other roles. This is often done for convenience or to ensure completeness when multiple users need the same privileges.
자세한 설명은 CREATE ROLE 참조.
A command to undo all of the operations performed since the beginning of a transaction.
자세한 설명은 ROLLBACK 참조.
A defined set of instructions stored in the database system that can be invoked for execution. A routine can be written in a variety of programming languages. Routines can be functions (including set-returning functions and trigger functions), aggregate functions, and procedures.
Many routines are already defined within PostgreSQL itself, but user-defined ones can also be added.
살펴볼 내용 튜플, Tuple.
A special mark in the sequence of steps in a transaction. Data modifications after this point in time may be reverted to the time of the savepoint.
자세한 설명은 SAVEPOINT 참조.
A schema is a namespace for SQL objects, which all reside in the same database. Each SQL object must reside in exactly one schema.
All system-defined SQL objects reside in schema pg_catalog
.
More generically, the term schema is used to mean all data descriptions (table definitions, constraints, comments, etc) for a given database or subset thereof.
자세한 설명은 5.9절 참조.
살펴볼 내용 데이터 조각 파일, File segment.
The SQL command used to request data from a
database.
Normally, SELECT
commands are not expected to modify the
database in any way,
but it is possible that
functions invoked within
the query could have side effects that do modify data.
자세한 설명은 SELECT 참조.
A type of relation that is used to generate values. Typically the generated values are sequential non-repeating numbers. They are commonly used to generate surrogate primary key values.
PostgreSQL 인스턴스들이 실행되고 있는 한 컴퓨터. 이 용어는 단지 물리적인 하드웨어를 뜻하기만 하지 않는다. 컨테이너 또는 가상 머쉰도 포함 한다.
이 용어는 인스턴스나 호스트 용어와 같은 뜻으로 때로는 사용된다.
A state that allows a client and a backend to interact, communicating over a connection.
RAM which is used by the processes common to an instance. It mirrors parts of database files, provides a transient area for WAL records, and stores additional common information. Note that shared memory belongs to the complete instance, not to a single database.
The largest part of shared memory is known as shared buffers and is used to mirror part of data files, organized into pages. When a page is modified, it is called a dirty page until it is written back to the file system.
자세한 설명은 19.4.1절 참조.
Any object that can be created with a CREATE
command. Most objects are specific to one database, and are commonly
known as local objects.
Most local objects belong to a specific schema in their containing database, such as relations (all types), routines (all types), data types, etc. The names of such objects of the same type in the same schema are enforced to be unique.
There also exist local objects that do not belong to schemas; some examples are extensions, data type casts, and foreign data wrappers. The names of such objects of the same type are enforced to be unique within the database.
Other object types, such as roles, tablespaces, replication origins, subscriptions for logical replication, and databases themselves are not local SQL objects since they exist entirely outside of any specific database; they are called global objects. The names of such objects are enforced to be unique within the whole database cluster.
자세한 설명은 22.1절 참조.
A series of documents that define the SQL language.
살펴볼 내용 리플리카, 복제, Replica (서버).
This process collects statistical information about the instance's activities.
자세한 설명은 27.2절 참조.
A collection of tables
which describe the structure of all
SQL objects
of the instance.
The system catalog resides in the schema pg_catalog
.
These tables contain data in internal representation and are
not typically considered useful for user examination;
a number of user-friendlier views,
also in schema pg_catalog
, offer more convenient access to
some of that information, while additional tables and views
exist in schema information_schema
(see 36장) that expose some
of the same and additional information as mandated by the
SQL standard.
자세한 설명은 5.9절 참조.
A collection of tuples having a common data structure (the same number of attributes, in the same order, having the same name and type per position). A table is the most common form of relation in PostgreSQL.
자세한 설명은 CREATE TABLE 참조.
A named location on the server file system.
All SQL objects
which require storage beyond their definition in the
system catalog
must belong to a single tablespace.
Initially, a database cluster contains a single usable tablespace which is
used as the default for all SQL objects, called pg_default
.
자세한 설명은 22.6절 참조.
Tables that exist either for the lifetime of a session or a transaction, as specified at the time of creation. The data in them is not visible to other sessions, and is not logged. Temporary tables are often used to store intermediate data for a multi-step operation.
자세한 설명은 CREATE TABLE 참조.
A mechanism by which large attributes of table rows are split and stored in a secondary table, called the TOAST table. Each relation with large attributes has its own TOAST table.
자세한 설명은 68.2절 참조.
A combination of commands that must act as a single atomic command: they all succeed or all fail as a single unit, and their effects are not visible to other sessions until the transaction is complete, and possibly even later, depending on the isolation level.
자세한 설명은 13.2절 참조.
The numerical, unique, sequentially-assigned identifier that each
transaction receives when it first causes a database modification.
Frequently abbreviated as xid.
When stored on disk, xids are only 32-bits wide, so only
approximately four billion write transaction IDs can be generated;
to permit the system to run for longer than that,
epochs are used, also 32 bits wide.
When the counter reaches the maximum xid value, it starts over at
3
(values under that are reserved) and the
epoch value is incremented by one.
In some contexts, the epoch and xid values are
considered together as a single 64-bit value.
자세한 설명은 8.19절 참조.
Average number of transactions that are executed per second, totaled across all sessions active for a measured run. This is used as a measure of the performance characteristics of an instance.
A function which can
be defined to execute whenever a certain operation (INSERT
,
UPDATE
, DELETE
,
TRUNCATE
) is applied to a
relation.
A trigger executes within the same
transaction as the
statement which invoked it, and if the function fails, then the invoking
statement also fails.
자세한 설명은 CREATE TRIGGER 참조.
A collection of attributes in a fixed order. That order may be defined by the table (or other relation) where the tuple is contained, in which case the tuple is often called a row. It may also be defined by the structure of a result set, in which case it is sometimes called a record.
A type of constraint defined on a relation which restricts the values allowed in one or a combination of columns so that each value or combination of values can only appear once in the relation — that is, no other row in the relation contains values that are equal to those.
Because null values are not considered equal to each other, multiple rows with null values are allowed to exist without violating the unique constraint.
The property of certain relations that the changes to them are not reflected in the WAL. This disables replication and crash recovery for these relations.
The primary use of unlogged tables is for storing transient work data that must be shared across processes.
An SQL command used to modify rows that may already exist in a specified table. It cannot create or remove rows.
자세한 설명은 UPDATE 참조.
The translation of login credentials in the local database to credentials in a remote data system defined by a foreign data wrapper.
자세한 설명은 CREATE USER MAPPING 참조.
The process of removing outdated
tuple versions
from tables or materialized views, and other closely related
processing required by PostgreSQL's
implementation of MVCC.
This can be initiated through the use of
the VACUUM
command, but can also be handled automatically
via autovacuum processes.
자세한 설명은 24.1절 참조.
A relation that is defined by a
SELECT
statement, but has no storage of its own.
Any time a query references a view, the definition of the view is
substituted into the query as if the user had typed it as a subquery
instead of the name of the view.
자세한 설명은 CREATE VIEW 참조.
A storage structure that keeps metadata about each data page
of a table's main fork. The visibility map entry for
each page stores two bits: the first one
(all-visible
) indicates that all tuples
in the page are visible to all transactions. The second one
(all-frozen
) indicates that all tuples
in the page are marked frozen.
살펴볼 내용 Write-ahead log.
A process that saves copies of WAL files for the purpose of creating backups or keeping replicas current.
자세한 설명은 25.3절 참조.
Also known as WAL segment or WAL segment file. Each of the sequentially-numbered files that provide storage space for WAL. The files are all of the same predefined size and are written in sequential order, interspersing changes as they occur in multiple simultaneous sessions. If the system crashes, the files are read in order, and each of the changes is replayed to restore the system to the state it was in before the crash.
Each WAL file can be released after a checkpoint writes all the changes in it to the corresponding data files. Releasing the file can be done either by deleting it, or by changing its name so that it will be used in the future, which is called recycling.
자세한 설명은 29.5절 참조.
A low-level description of an individual data change. It contains sufficient information for the data change to be re-executed (replayed) in case a system failure causes the change to be lost. WAL records use a non-printable binary format.
자세한 설명은 29.5절 참조.
살펴볼 내용 WAL 파일.
A process that writes WAL records from shared memory to WAL files.
자세한 설명은 19.5절 참조.
A type of function used in a query that applies to a partition of the query's result set; the function's result is based on values found in rows of the same partition or frame.
All aggregate functions can be used as window functions, but window functions can also be used to, for example, give ranks to each of the rows in the partition. Also known as analytic functions.
자세한 설명은 3.5절 참조.
The journal that keeps track of the changes in the database cluster as user- and system-invoked operations take place. It comprises many individual WAL records written sequentially to WAL files.