데이터베이스의 스키마

스키마란?

스키마는 데이터베이스 내에서 테이블, 뷰, 인덱스 등의 데이터베이스 객체들을 묶어주는 개념입니다.

스키마는 일종의 네임스페이스로, 데이터베이스 내에서 서로 다른 스키마에 속한 객체들은 이름이 같아도 구별됩니다. 예를 들어, 데이터베이스의 스키마A와 스키마B에 모두 customers라는 이름의 테이블이 있다면, A.customers와 B.customers는 서로 다른 테이블이 됩니다. 이처럼 스키마를 사용하면 같은 데이터베이스 내에서 여러 개의 객체들이 동시에 존재할 때, 이름 충돌 문제를 방지할 수 있습니다. (하나의 데이터베이스에서 스키마가 다르면 같은 테이블명이라도 사용가능)

스키마는 보통 사용자, 데이터베이스 관리자, 애플리케이션 등을 구분하는 데 사용됩니다. 예를 들어, 사용자 A와 B가 각각의 스키마를 가지고 있고, 각각의 스키마에 orders라는 이름의 테이블이 있다면, A.orders와 B.orders는 서로 다른 테이블입니다. 이처럼 스키마를 사용하면 데이터를 더욱 체계적으로 관리할 수 있습니다.

데이터베이스 A ー> 스키마1 ー> 테이블1
                 ー> 테이블2
            ー> 스키마2 ー> 테이블1
                      ー> 테이블3 

MySQL과 오라클/PostgreSQL의 스키마의 정의는 다르다

오라클

인스턴스(프로세스) - 데이터베이스 - 스키마 - 테이블 형태를 하고있다

MySQL

인스턴스(프로세스) - 스키마(데이터베이스) - 테이블 형태를 하고있다

※ MYSQL에선 스키마와 데이터베이스가 같은 의미로써 사용된다


참조

https://hue9010.github.io/db/mysql_schema/

Apr 14, 2023 Views 74