Junior 사내스터디

DBMS에서 데이버베이스란 용어와 스키마라는 용어

fabxoe 2019. 11. 8. 15:03

데이터베이스와 스키마는 비슷한 느낌을 준다.

 

하지만 

 

스키마는 테이블들을 가지고 있다는 고정된 의미인 반면

데이터 베이스는 DBMS 마다 의미가 다소 다르다!

일반적으로는 스키마가 데이터베이스와 같거나 데이터베이스 속에 포함된다.

스키마는 데이터 베이스보다 작거나 같다.

 

MySQL에서 '데이터베이스'는 스키마와 동일한 개념이다.

 

 

오라클과 포스트그레스에서 '데이터베이스'는 여러 스키마를 포함한다.

포스트그레스에서 서로 다른 데이터베이스 간에는 쿼리수준에서는 조회할 수 없도록 하였고

이를 물리적인 분리의 개념으로 다루고 있다.

다른 데이터 베이스에 접근하고자 한다면 db link라는 별도의 방법을 사용해야 한다.

 

 

 

docker run -d -p 5430:5432 --name postgres_boot -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=sungmin -e POSTGRES_DB=springdata postgres

참고로 postgres이미지를 run하는 명령에서 -e POSTGRES_DB=springdata 는 스키마가 아니라 데이터베이스의 이름을 지정하는 것이다.

스키마를 선택하지 않으면 public 스키마에 자동으로 테이블을 만들게 된다.

 

---------------------------------------------------------

그런데 스키마를 선택한다는 것은..? 

환경변수 차원에서 지원할 수 있나? -> 없다.

쿼리상에서 선택하는 것인가?

 

USER의 권한은 데이터 베이스에 있는가? 스키마에 있는가? 테이블에 있는가?

아니면 데이터 베이스와 스키마 테이블의 범주 사이마다 곳곳에 있는 것인가?

그냥 별도로 생각해야 하는가?

 

더 고민해 보자.

 

 

https://db.necoaki.net/224