MySQL/MySQL icia 24일차

MySQL에서 스키마와 데이터베이스의 차이점

swkn 2023. 3. 27. 17:34

일반적인 데이터베이스 구조

일반적인 데이터베이스 구조

1. 데이터베이스

오라클이 작동하는데 필요한 모든 파일을 의미한다.

 

2. 인스턴스

DBMS가 동작할 때의 단위 , OS 입장에서는 '프로세스' , DBMS에 따라서는 '서버 프로세스' 또는 '서버'로 부르기도 한다.

앞서 말한 데이터베이스가 실행 가능하게 메모리에 올라간 것이라 생각하면 된다.

 

3. 스키마

데이터베이스의 구조와 제약 조건을 정의한 것 , 쉽게는 폴더에 해당되며 스키마도 폴더처럼 사용자가 자유롭게 만들 수 있고 , 사용자에 따라 접근을 제한하는 등의 권한 관리가 가능하다. 폴더이기 때문에 폴더에 여러 파일을 넣을 수 있는 것처럼 여러 테이블을 담을 수 있다.

 

4. 테이블

기본적으로 트리 구조로 1개의 인스턴스 아래에 복수 개의 데이터베이스가 존재할 수 있고 , 1개의 데이터베이스 아래에는 복수의 스키마가 존재할 수 있으며 , 1개의 스키마 아래에는 복수 개의 테이블이 존재하는 것이 가능하다.

 

 

 

MySQL의 경우에는 ?

MySQL의 경우

위의 그림처럼 3계층 구조로 데이터베이스가 존재하지 않는다.

실제로도 데이터베이스와 스키마를 동의어 취급한다 ( MySQL 메뉴얼 )

그렇기 때문에 MySQL의 경우 사람의 따라 스키마를 데이터베이스라고 부르는 경우가 있는데 같은걸 의미한다고 보면 된다.

 

Oracle의 경우

 

Oracle의 경우에는 ?

4계층 구조를 따르는 것처럼 보이지만 사실 오라클의 경우 인스턴스 아래에 데이터베이스를 한개만 만들 수 있다는 독자적 제약이 있다.

하나의 데이터베이스 밖엔 없기 때문에 인스턴스 바로 아래에 스키마 층이 존재하는듯한 인상을 받기도 한다.