하나의 SQL Server 인스턴스에서는 여러 개의 **카탈로그(데이터베이스)**가 존재할 수 있으며, 각 카탈로그 안에는 여러 개의 스키마가 존재할 수 있습니다.
예를 들어, 개발, 테스트, 운영 환경을 각각 별도의 카탈로그로 관리하고, 각 카탈로그 내에 user, sales, delivery, dbo 등 여러 스키마를 구성할 수 있습니다.
예시 구성
- Catalog (카탈로그)
- dev (개발 환경)
- qa (테스트 환경)
- prod (운영 환경)
- Schema (스키마)
- user
- sales
- delivery
- dbo
테이블 참조 예시
예를 들어, catalog가 dev이고 schema가 user인 환경에 있는 테이블 tbl_user_m를 참조하려면, 다음과 같이 쿼리를 작성할 수 있습니다.
위 쿼리는 dev 카탈로그(데이터베이스) 내의 user 스키마에 존재하는 tbl_user_m 테이블의 모든 데이터를 조회합니다.
환경 별 카탈로그 구성 시 고려사항
- 동일한 스키마 이름 사용 가능성:
개발, 테스트, 운영 환경 별로 카탈로그를 나누고 각 카탈로그마다 동일한 스키마(예: user, sales 등)를 구성할 수 있습니다.
이 경우, 각 환경은 독립적인 데이터베이스로 운영되므로 동일한 스키마 구조를 갖게 됩니다. - 스키마 명칭의 차이 가능성:
하지만 카탈로그를 독립적으로 관리하는 경우, 각 환경마다 데이터베이스 관리 정책에 따라 스키마 구조가 달라질 가능성도 있습니다.
예를 들어, 운영 환경에서는 보안을 위해 스키마 구성을 다르게 하거나, 추가적인 스키마를 사용해 세부 관리를 할 수도 있습니다.
이처럼 SQL Server 인스턴스에서 카탈로그와 스키마를 어떻게 구성하는가는 프로젝트의 요구사항 및 운영 정책에 따라 유연하게 결정할 수 있습니다.