Schema 란
스키마(schema)는 데이터베이스 내에서 객체(테이블, 뷰, 함수, 인덱스 등)를 논리적으로 구분 한 컨테이너이다.
하나의 데이터베이스 안에 여러 스키마를 포함하며, 스키마를 활용해 여러 namespace 공간을 제공하고, 각각의 공간에서는 동일한 이름의 객체를 가질 수 있다.
public과 service1이 다른 schema라는 가정하에 다음과 같이 정의 할 수 있다.
ex) public.user_table / service1.user_table
Mysql
mysql 에서 스키마(Schema)는 Database와 동일한 의미로 사용된다.
즉, MySQL의 스키마(Schema)는 데이터베이스(Database) 하나 자체를 지칭하며,
필요시 다른 데이터베이스(Database)를 활용하여 논리적인 그룹핑을 가지게 한다.
ex) db1.user_table / db2.user_table
즉 사실 schema의 namespace 공간 논리적 분리 기능을 가지지만 Database란 말과도 혼용되어서 사용 된다는 뜻 (Database=Schema)
데이터베이스 = 스키마 >> 테이블
Postgresql
postgresql은 데이터베이스 내에서 스키마를 추가적으로 사용하여 더 세분화된 계층 구조를 지원한다.
기본 스키마(Schema)는 public 으로 설정되며, 사용자 정의 스키마를 자유롭게 추가할 수 있다.
다음과 같이 사용 가능
ex) db1.public.user_table / db1.service1.user_table
데이터베이스 >> 스키마 >> 테이블 구조를 가진다.
참고
- https://kimdubi.github.io/postgresql/pg_schema/ : Postgresql schema 의미 및 권한 관리
'DB > 이론' 카테고리의 다른 글
[MQ] 메시지 지향 미들웨어 (by. RabbitMQ, Redis) (0) | 2022.11.26 |
---|---|
[Cache] Memcached vs Redis 차이 (2) | 2022.11.22 |
[DB] Clustering, Sharding, Replication 차이 (0) | 2022.10.03 |
[DB] Replication 이란? (Feat. Mysql, Mongo) (0) | 2022.10.03 |
[DB] Index란? (0) | 2022.08.11 |