본문 바로가기
DB 기본 개념 다지기

데이터베이스 - 스키마

by 양블로그 2023. 7. 5.
반응형

스키마에 대해 이해하기

스키마는 데이터베이스 개체에 대한 네임스페이스 입니다. 즉 데이터베이스 개체가 갖는 고유한 이름을 결정짓게 됩니다. 스키마는 데이터베이스 안에서 고유해야 하기 때문에 데이터베이스의 모든 개체들은 아래와 같은 형식의 고유이름을 갖습니다.

 

서버.데이터베이스.스키마.개체

 

예전 SQL Server 2000 버전에서는 [서버.데이터베이스.소유자.개체]와 같은 형식으로 이름이 결정되었지만 2005 버전부터 개체의 소유자가 아닌 스키마를 사용하여 개체의 이름에서 소유자 부분을 분리시켰습니다. 이러한 방식의 이점은..

  1. 개체의 소유자와는 상관없이 스키마를 이용해 개체를 그룹화하여 관리에 효율을 높일 수 있습니다.
  2. 권한 관리의 경우 개체 개별적으로 권한을 허용하지 않고 스키마에 권한을 허용하면, 스키마에 포함된 모든 개체에 대해 자동으로 권한을 줄 수 있어 관리가 효율적입니다.
  3. 소유자 계정을 삭제하기 위해 소유자가 소유한 개체의 소유자를 변경하거나 개체를 삭제할 필요가 없습니다.

 

dbo 스키마

dbo 스키마는 모든 데이터베이스에 포함되어 있는 스키마 입니다. 데이터베이스의 사용자 계정들은 모두 기본 스키마를 갖게 되는데 이 사용자들이 테이블을 만들면 그 테이블은 사용자의 기본 스키마에 기본적으로 만들어지게 됩니다. 예를 들어 기본 스키마가 Sales인 사용자 계정이 스키마 지정없이 Orders 테이블을 만들면, Sales 스키마 내에 Orders 테이블이 만들어져서 Sales.Orders. 와 같은 이름을 갖게 됩니다. 

 

dbo 스키마는 별도의 기본 스키마가 지정되지 않은 사용자 계정의 기본 스키마가 됩니다. 만일 기본 스키마가 별도로 지정되지 않은 사용자 계정이 지정없이 Orders 테이블을 만들면 그 테이블은 dbo.Orders 라는 이름을 갖게 됩니다.

 

 

스키마 생성, 제거 쿼리문

1. 생성

CREATE SCHEMA Sales

 

2. 제거

DROP SCHEMA Sales
반응형