[Database] 시스템 카탈로그란?

[Database] 시스템 카탈로그란?

시스템 카탈로그

  1. 시스템 카탈로그는 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다
  2. 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
  3. 데이터 정의어(DDL)의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
  4. 카탈로그들이 생성되면 자료사전에 저장되기 때문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.
  5. 카탈로그에 저장된 정보를 메타 데이터라고 한다.



카탈로그의 특징

  1. 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
  2. 어떠한 사용자도 INSERT, DELETE, UPDATE문으로 시스템 카탈로그를 직접 갱신하는 것은 허용되지 않는다.
  3. 데이터 정의어(DDL)을 통해서만 시스템 카탈로그를 갱신할 수 있다.
    1. ALTER TABLE EMPLOYEE DROP COLUMN MANAGER;
  4. 데이터베이스 시스템에 따라 상이한 구조를 갖는다.
  5. 시스템 카탈로그는 DBMS가 스스로 생성하고 유지한다.
  6. 카탈로그의 갱신  
    • 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.
  7. 분산 시스템에서의 카탈로그 
    • 보통의 릴레이션, 인덱스, 사용자 등에 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다.



시스템 카탈로그의 종류

SYSTABLES : 기본 테이블 및 뷰 테이블의 정보를 저장하는 테이블
SYSCOLUMNS : 모든 테이블에 대한 정보를 열(속성) 중심으로 저장하는 테이블
SYSVIEW : 뷰에 대한 정보를 저장하는 테이블
SYSTABAUTH : 테이블에 설정된 권한 사항들을 저장하는 테이블
SYSCOLAUTH : 각 속성에 설정된 권한 사항들을 저장하는 테이블



출처

댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?

[Python] # -*- coding: utf-8 -*-를 쓰는 이유