Db2 for i

Db2 for i 카탈로그

아이구르미 2022. 10. 26. 17:00

데이터베이스 카탈로그에 대해서 정리해보고자 합니다.

 

위키백과에서 데이터베이스 카탈로그를 찾아보면, 아래와 같이 정의되어 있습니다. 

"데이터베이스 카탈로그는 데이터베이스의 개체들에 대한 정의를 담고 있는 메타데이터들로 구성된 데이터베이스 내의 인스턴스이다. 기본 테이블, 뷰 테이블, 동의어(synonym)들, 값 범위들, 인덱스들, 사용자들, 사용자 그룹 등등과 같은 데이터베이스의 개체들이 저장된다." 
(출처 : 위키백과)

 

 

Db2 for i에는 3가지 종류의 카탈로그 뷰가 있습니다.

  1. IBM i 카탈로그 테이블과 뷰 (IBM i는 Db2 for i의 운영체제 이름입니다) 
    1. 데이터베이스 내에 있는 모든 테이블, 파라미터, 프로시져, 함수, 패키지, 인덱스 등등의 모든 정보를 포함하고 있으며, QSYS 라이브러리와 QSYS2 라이브러리에서 저장/관리됩니다.
    2. IBM i에서는 Db2 오브젝트를 담기 위한 공간으로 라이브러리를 만드는 방법이 CL 명령어 방식(CRTLIB) SQL  방식(CREATE SCHAMA) 있습니다. 
    3. SQL  방식으로 스키마를 만들면, 해당 스키마 내에  스키마에서 저장/관리되는 테이블, 패키지, , 인덱스, 제한조건(constraint) 대한 정보를 포함하는 카탈로그를 별도로 관리하게 되어 스키마 단위로 카탈로그 조회를 할수 있습니다. 
  2. ODBC / JDBC 카탈로그 뷰 : ODBC / JDBC 메타데이터 API 요청을   참조하도록 설계되어 있는 카탈로그로, SYSIBM 스키마에서 저장/관리됩니다.
    (
    : SQLCOLUMNS)
  3. ANS / ISO 카탈로그 뷰 : ANS / ISO SQL 표준을 준수하기 위해 설계된 카탈로그로, QSYS2 스키마에서 저장/관리됩니다.

* ODBC / JDBC 카탈로그나 ANS / ISO 카탈로그는 뷰(View)만 제공하는 것으로, 참조하는 원본 데이터는 대부분 QSYS 나 QSYS2의 카탈로그 테이블을 참조합니다. 

각각의 상세 목록은 다음과 같습니다. 

1. IBM i 카탈로그 테이블 및 뷰 목록

  • SYSTABLES
    SYSTABLES 보기는 SQL 카탈로그의 테이블 및 보기를 포함하여 SQL 스키마에 있는 모든 테이블, 보기 또는 별명에 대해 하나의 행을 포함합니다. 
  • SYSTABLESTAT
    SYSTABLESTAT 보기는 최소 하나의 파티션 또는 멤버가 있는 모든 테이블에 대한 하나의 행을 포함합니다. 테이블에 둘 이상의 파티션 또는 멤버가 있는 경우, 통계에 모든 파티션 및 멤버가 포함됩니다. 테이블이 분배된 테이블인 경우, 기타 데이터베이스 노드에 있는 파티션이 포함되지 않습니다. 기타 데이터베이스 노드의 카탈로그 보기에 포함됩니다.
  • SYSTRIGCOL
    SYSTRIGCOL 보기는 WHEN 절에서 내재적 또는 명시적으로 참조되거나 트리거의 트리거된 SQL문인 각 열에 대한 한 행을 포함합니다.
  • SYSTRIGDEP
    SYSTRIGDEP 보기는 WHEN 절 또는 트리거의 트리거된 SQL문에서 참조되는 각 열에 대한 한 행을 포함합니다.
  • SYSTRIGGERS
    SYSTRIGGERS 보기는 SQL 스키마에 각 트리거에 대해 하나의 행을 포함합니다. 
  • SYSTRIGUPD
    SYSTRIGUPD 보기는 UPDATE 열 리스트(있는 경우)에서 식별되는 각 열에 대한 하나의 행을 포함합니다.
  • SYSTYPES
    SYSTYPES 테이블은 CREATE TYPE 명령문에서 작성하는 각각의 고유한 유형 및 배열 유형과 각각의 내장 데이터 유형에 대해 하나의 행을 포함합니다.
  • SYSVARIABLEDEP
    SYSVARIABLEDEP 테이블은 변수의 종속 항목을 기록합니다. 
  • SYSVARIABLES
    SYSVARIABLES 테이블은 각각의 글로벌 변수에 대한 하나의 행을 포함합니다.
  • SYSVIEWDEP
    SYSVIEWDEP 보기는 SQL 카탈로그에 대한 보기를 포함하여 보기의 종속 항목을 테이블에 기록합니다. 
  • SYSVIEWS
    SYSVIEWS 보기는 SQL 카탈로그의 보기를 포함하여 SQL 스키마에 있는 각 보기에 대해 한 행을 포함합니다. 
  • XSRANNOTATIONINFO
    XSRANNOTATIONINFO 테이블은 주석에 대한 테이블 및 열 정보를 기록하기 위해 XML 스키마에 각각의 주석에 대해 하나의 행을 포함합니다.
  • XSROBJECTCOMPONENTS
    XSROBJECTCOMPONENTS 테이블은 XML 스키마에 각 구성요소(문서)에 대한 하나의 행을 포함합니다. 
  • XSROBJECTHIERARCHIES
    XSROBJECTHIERARCHIES 테이블은 XML 스키마 문서 계층 관계를 기록하기 위해 XML 스키마에 각 구성요소(문서)에 대한 하나의 행을 포함합니다.
  • XSROBJECTS
    XSROBJECTS 테이블은 각각의 등록된 XML 스키마에 대한 하나의 행을 포함합니다.

 

2. ODBC / JDBC 카탈로그 뷰 목록

  • SQLCOLPRIVILEGES
    SQLCOLPRIVILEGES 보기는 열에 부여된 모든 권한 또는 열의 테이블에 부여된 권한에 대한 하나의 행을 포함합니다. 열을 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 열에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • SQLCOLUMNS
    SQLCOLUMNS 보기는 테이블, 보기 또는 별명에 있는 모든 열에 대한 하나의 행을 포함합니다.
  • SQLFOREIGNKEYS
    SQLFOREIGNKEYS 보기는 테이블에 모든 참조 제한조건 키에 대해 하나의 행을 포함합니다.
  • SQLFUNCTIONCOLS
    SQLFUNCTIONCOLS 보기는 함수의 모든 매개변수에 대한 하나의 행을 포함합니다. 스칼라 함수의 결과 및 테이블 함수의 결과 열도 리턴됩니다.
  • SQLFUNCTIONS
    SQLFUNCTIONS 보기는 모든 함수에 대한 하나의 행을 포함합니다.
  • SQLPRIMARYKEYS
    SQLPRIMARYKEYS 보기는 테이블에 모든 기본 제한조건 키에 대해 하나의 행을 포함합니다.
  • SQLPROCEDURECOLS
    SQLPROCEDURECOLS 보기는 프로시저의 모든 매개변수에 대한 하나의 행을 포함합니다.
  • SQLPROCEDURES
    SQLPROCEDURES 보기는 모든 함수에 대한 하나의 행을 포함합니다.
  • SQLSCHEMAS
    SQLSCHEMAS 보기는 모든 스키마에 대한 하나의 행을 포함합니다.
  • SQLSPECIALCOLUMNS
    SQLSPECIALCOLUMNS 보기는 테이블의 행을 식별할 수 있는 고유한 색인, 고유한 제한사항 또는 기본 키의 모든 열에 대해 하나의 행을 포함합니다.
  • SQLSTATISTICS
    SQLSTATISTICS 보기는 테이블에 대한 정적 정보를 포함합니다. 
  • SQLTABLEPRIVILEGES
    SQLTABLEPRIVILEGES 보기는 테이블에 부여된 모든 권한에 대한 하나의 행을 포함합니다. 테이블 또는 보기를 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 테이블 또는 보기에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • SQLTABLES
    SQLTABLES 보기는 모든 테이블, 보기 및 별명에 대한 하나의 행을 포함합니다.
  • SQLTYPEINFO
    SQLTYPEINFO 테이블은 모든 내장 데이터 유형에 대한 하나의 행을 포함합니다.
  • SQLUDTS
    SQLUDTS 보기는 모든 고유한 유형에 대한 하나의 행을 포함합니다.

 

3. ANS / ISO 카탈로그 뷰 목록

  • AUTHORIZATIONS
    AUTHORIZATIONS 보기는 모든 권한부여 ID에 대해 하나의 행을 포함합니다. 
  • CHARACTER_SETS
    CHARACTER_SETS 보기는 지원되는 모든 CCSID에 대한 하나의 행을 포함합니다.
  • CHECK_CONSTRAINTS
    CHECK_CONSTRAINTS 보기는 모든 검사 제한조건에 대한 하나의 행을 포함합니다. 
  • COLUMNS
    COLUMNS 보기는 모든 열에 대한 하나의 행을 포함합니다.
  • INFORMATION_SCHEMA_CATALOG_NAME
    INFORMATION_SCHEMA_CATALOG_NAME 보기는 관계형 데이터베이스에 대한 하나의 행을 포함합니다. 
  • PARAMETERS
    PARAMETERS 보기는 관계형 데이터베이스에서 루틴의 각 매개변수에 대한 하나의 행을 포함합니다. 
  • REFERENTIAL_CONSTRAINTS
    REFERENTIAL_CONSTRAINTS 보기는 각 참조 제한조건에 대한 하나의 행을 포함합니다.
  • ROUTINES
    ROUTINES 보기는 각 루틴에 대한 하나의 행을 포함합니다.
  • ROUTINE_PRIVILEGES
    ROUTINE_PRIVILEGES 보기는 루틴에 부여된 모든 권한에 대한 하나의 행을 포함합니다. 루틴을 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 루틴에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • SCHEMATA
    SCHEMATA 보기는 각 스키마에 대한 하나의 행을 포함합니다.
  • SEQUENCES
    SEQUENCES 보기는 각 순서에 대한 하나의 행을 포함합니다.
  • SQL_FEATURES
    SQL_FEATURES 테이블은 데이터베이스 관리자에 의해서 지원된 각 기능을 위한 한 행을 포함합니다. 
  • SQL_LANGUAGES
    SQL_LANGUAGES 테이블은 적합성이 청구되는 프로그래밍 언어 및 모든 SQL 언어 바인딩에 대해 하나의 행을 포함합니다.
  • SQL_SIZING
    SQL_SIZING 테이블은 데이터베이스 관리자에 의해서 지원된 각 한계를 위한 한 행을 포함합니다. 
  • TABLE_CONSTRAINTS
    TABLE_CONSTRAINTS 보기는 각 제한조건에 대한 하나의 행을 포함합니다.
  • TABLES
    TABLES 보기는 각 테이블, 보기 및 별명에 대한 하나의 행을 포함합니다.
  • UDT_PRIVILEGES
    UDT_PRIVILEGES 보기는 유형에 부여된 모든 권한에 대한 하나의 행을 포함합니다. 유형을 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 유형에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • USAGE_PRIVILEGES
    USAGE_PRIVILEGES 보기는 순서 또는 XML 스키마에 부여된 모든 권한에 대한 하나의 행을 포함합니다. 순서 또는 XML 스키마를 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 순서 또는 XML 스키마에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • USER_DEFINED_TYPES
    USER_DEFINED_TYPES 보기는 각각의 고유한 유형에 대한 하나의 행을 포함합니다.
  • VARIABLE_PRIVILEGES
    VARIABLE_PRIVILEGES 보기는 글로벌 변수에 부여된 모든 권한에 대한 하나의 행을 포함합니다. 글로벌 변수를 사용하기 위한 권한이 그룹 사용자 프로파일 또는 특수 권한(예: *ALLOBJ)을 통해 확보될 수 있으므로 글로벌 변수에 대한 권한이 사용자에게 부여되는지 여부를 판별하기 위해 이 카탈로그 보기를 사용할 수 없다는 것에 주의하십시오.
  • VIEWS
    VIEWS 보기는 각 보기에 대한 하나의 행을 포함합니다.

 

*주) Db2 for i에서 라이브러리와 스키마는 같은 의미로 사용되며, 시스템 용어로는 라이브러리, SQL 용어로는 스키마라는 표현을 주로 사용합니다.