DB/이론

[DB] Postgresql 과 MySQL schema 구분 차이

yubi5050 2024. 12. 21. 19:16

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

 

데이터베이스 >> 스키마 >> 테이블 구조를 가진다.

 

참고