postgreSQL 에서 관리하는 database, schema, user 등에 대한 개념을 정리한다.
postgreSQL에서는 크게 database, schema, table 단위로 데이터 그룹이 분리된다.
mySQL 에서는 크게 databse, table 단위로 구분이 되어서 database 안에 table 이 1:n 관계로 묶여있게 되는데, postgreSQL 에서는 schema 라고 하는 단위가 하나 더 추가된다.
postgreSQL 에서도 마찬가지로 database 가 가장 큰 단위로 존재하고 그, database > schema > table 단위로 구분된다.
한 세션은 무조건 하나의 database 에 접속 할 수 있고, 서로 다른 database 의 table 끼리는 데이터 접근이 안된다. 그리고 서로 다른 schema 끼리는 같은 daatabase 라면 접근이 가능하다는 특징이 있다.

기본적으로 database 는 template0, template1, postgres 라는 데이터베이스가 만들어지고, 그 하위 계층에 schema 가 생성된다. schema 는 더 하위인 table 개체 들을 그룹화해서 모아두는데, 동일한 database이더라도 schema 가 다르면 동일한 이름의 table 을 생성할 수 있다. 이런경우를 대비해 schema 에서는 SERACH_PATH 를 설정할 수 있다. 만약 A, B 두 schema 에 동일한 이름의 table 이 존재할 경우, 어떤 table 먼저 조회할지 우선순위를 정의할 수 있다.
생성된 database 에 default 로 public 이라는 schema 가 생성되는데 (따로 지정하지 않은 경우) 이때는 모든 권한을 다 가진 상태여서, 권한 조정이나 user 매핑을 하는 경우 schema 를 설정해줄 필요가 있다.
ref.
https://www.devkuma.com/docs/postgresql/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%8A%A4%ED%82%A4%EB%A7%88-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%EA%B4%80%EA%B3%84/
PostgreSQL | 스키마(Schema) | 데이터베이스, 스키마, 테이블의 관계
PostgreSQL에서는 데이터베이스와 테이블과는 다른 스키마라는 것이 존재한다. 여기에서는 PostgreSQL의 데이터베이스 스키마 및 테이블의 관계에 대해 간략하게 설명한다. PostgreSQL의 데이터베이스
www.devkuma.com
https://velog.io/@easbui/PostgreSQL-%EC%8A%A4%ED%82%A4%EB%A7%88%EC%99%80-%EA%B6%8C%ED%95%9C
'데이터베이스' 카테고리의 다른 글
분산 키-값 저장소에서 고려해야할 점 (0) | 2025.01.23 |
---|---|
[postgreSQL] replication slots (1) | 2024.12.27 |
postgreSQL의 고가용성을 위한 방법 (1) | 2024.08.04 |
댓글