Db2 for i
Db2 for i 카탈로그
아이구르미
2022. 10. 26. 17:00
데이터베이스 카탈로그에 대해서 정리해보고자 합니다.
위키백과에서 데이터베이스 카탈로그를 찾아보면, 아래와 같이 정의되어 있습니다.
"데이터베이스 카탈로그는 데이터베이스의 개체들에 대한 정의를 담고 있는 메타데이터들로 구성된 데이터베이스 내의 인스턴스이다. 기본 테이블, 뷰 테이블, 동의어(synonym)들, 값 범위들, 인덱스들, 사용자들, 사용자 그룹 등등과 같은 데이터베이스의 개체들이 저장된다."
(출처 : 위키백과)
Db2 for i에는 3가지 종류의 카탈로그 뷰가 있습니다.
- IBM i 카탈로그 테이블과 뷰 (IBM i는 Db2 for i의 운영체제 이름입니다)
- 데이터베이스 내에 있는 모든 테이블, 파라미터, 프로시져, 함수, 패키지, 인덱스 등등의 모든 정보를 포함하고 있으며, QSYS 라이브러리와 QSYS2 라이브러리에서 저장/관리됩니다.
- IBM i에서는 Db2 오브젝트를 담기 위한 공간으로 라이브러리를 만드는 방법이 CL 명령어 방식(CRTLIB)과 SQL 문 방식(CREATE SCHAMA)이 있습니다.
- SQL 문 방식으로 스키마를 만들면, 해당 스키마 내에 그 스키마에서 저장/관리되는 테이블, 패키지, 뷰, 인덱스, 제한조건(constraint)에 대한 정보를 포함하는 카탈로그를 별도로 관리하게 되어 스키마 단위로 카탈로그 조회를 할수 있습니다.
- ODBC / JDBC 카탈로그 뷰 : ODBC / JDBC 메타데이터 API 요청을 할 때 참조하도록 설계되어 있는 카탈로그로, SYSIBM 스키마에서 저장/관리됩니다.
(예: SQLCOLUMNS) - 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 용어로는 스키마라는 표현을 주로 사용합니다.