시스템 카탈로그(System Catalog)는 데이터베이스의 메타데이터를 저장하는 시스템 테이블이다. 기본 테이블, 뷰, 인덱스, 데이터베이스, 응용계획, 패키지, 접근권한 등 데이터베이스를 구성하는 객체들의 정보를 체계적으로 관리한다. 데이터 사전(data dictionary)이라고도 부른다.
시스템 카탈로그는 일반 데이터베이스와 동일한 인터페이스로 접근할 수 있다. 사용자는 SQL로 카탈로그를 조회할 수 있고, 시스템과 사용자 모두 접근할 수 있다. 다만 카탈로그의 내용은 DBMS가 자동으로 생성하고 유지하므로 사용자가 직접 갱신하면 안 된다. 임의로 수정하면 메타데이터의 무결성이 깨지기 때문이다.
뷰(View)는 물리적으로 저장되지 않고 쿼리를 실행하는 시점에 동적으로 생성되는 가상 테이블이다. 사용자에게는 테이블처럼 보이지만 실제 데이터를 따로 보관하지 않는다. 따라서 뷰를 '물리적으로 존재하는 테이블'이라고 설명하면 틀린 진술이 된다. 시스템 카탈로그는 실제 물리적인 시스템 테이블이고, 뷰는 가상 테이블이라는 점이 두 개념의 갈림길이다.
예제
선지 판단은 시스템 카탈로그를 메타데이터 저장소로 읽는지, 일반 데이터베이스와 같은 인터페이스로 접근할 수 있다고 보는지, 사용자가 직접 갱신할 수 없다고 판정하는지, 뷰를 물리적으로 저장되지 않는 가상 테이블로 보는지에서 갈린다. 카탈로그를 뷰와 같은 가상 테이블로 설명하거나, 사용자가 SQL로 직접 고칠 수 있다고 하면 틀린 선지다.
대표 기출 1문항
시스템 카탈로그에 대한 설명 중 옳지 않은 것은?
시스템 그 자체에 관련이 있는 다양한 객체들에 관한 정보를 포함하는 파일 시스템이다.
분산시스템에서 카탈로그는 보통의 릴레이션, 인덱스, 사용자 등의 정보를 포함할 뿐 아니라 위치 단편화 및 중복 독립성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다.
관계형 시스템에서 시스템 이벤트와 데이터베이스는 다르며, 서로 다른 인터페이스를 통해 접근한다.
관계형 시스템에서 카탈로그 역시 보통의 질의문을 사용하여 질의할 수 있다.
정답과 해설 보기
정답 ③ · 시스템 카탈로그(System Catalog)는 데이터 사전이라고도 불리며, 데이터베이스에 있는 객체(테이블, 인덱스, 뷰 등)에 대한 메타데이터를 저장하는 시스템입니다. 분산 데이터베이스에서는 위치 및 중복 독립성을 위한 정보도 포함되며, 사용자에게는 숨겨져 있지만 일반 릴레이션과 동일하게 SQL 질의문을 통해 접근 및 검색이 가능합니다.
관계형 시스템에서 시스템 카탈로그는 일반 데이터베이스와 동일한 인터페이스로 접근 가능하다.