:meta-keywords: cubrid catalog :meta-description: With CUBRID you can easily obtain schema information using SQL statements on system catalog virtual classes. .. _catalog: *************** 시스템 카탈로그 *************** 시스템 카탈로그 ê°€ìƒ í´ëž˜ìФ(virtual class)를 사용하면 다양한 스키마 ì •ë³´ë¥¼ SQL ë¬¸ì„ ì´ìš©í•˜ì—¬ 쉽게 얻어낼 수 있다. 예를 들어 다ìŒê³¼ ê°™ì€ ìŠ¤í‚¤ë§ˆ ì •ë³´ë“¤ì„ ì¹´íƒˆë¡œê·¸ ê°€ìƒ í´ëž˜ìŠ¤ë¥¼ ì´ìš©í•˜ì—¬ ì–»ì„ ìˆ˜ 있다. .. code-block:: sql -- í´ëž˜ìФ 'db_user'를 참조하는 í´ëž˜ìŠ¤ë“¤ SELECT class_name FROM db_attribute WHERE domain_class_name = 'db_user'; -- 현재 사용ìžê°€ ì ‘ê·¼ 가능한 í´ëž˜ìФ 개수 SELECT COUNT(*) FROM db_class; -- í´ëž˜ìФ 'db_user'ì˜ ì†ì„± SELECT attr_name, data_type FROM db_attribute WHERE class_name = 'db_user'; 시스템 카탈로그 í´ëž˜ìФ ====================== 카탈로그 ê°€ìƒ í´ëž˜ìŠ¤ë¥¼ ì •ì˜í•˜ê¸° 위해 ìš°ì„ ì¹´íƒˆë¡œê·¸ í´ëž˜ìŠ¤ë¥¼ ì •ì˜í•œë‹¤. 아래 ê·¸ë¦¼ì€ ì¶”ê°€ë˜ëŠ” 카탈로그 í´ëž˜ìŠ¤ë“¤ê³¼ ê·¸ 관계를 나타낸다. 화살표는 참조 관계ì´ë©°, '_'로 시작하는 í´ëž˜ìŠ¤ëŠ” 카탈로그 í´ëž˜ìФì´ë‹¤. .. image:: /images/image9.png 추가한 카탈로그 í´ëž˜ìŠ¤ë“¤ì€ ë°ì´í„°ë² ì´ìФ ì•ˆì˜ ëª¨ë“ í´ëž˜ìФ, ì†ì„±(attribute), 메서드 ë“±ì— ëŒ€í•œ ì •ë³´ë¥¼ 표현한다. 카탈로그 í´ëž˜ìŠ¤ë“¤ì€ í´ëž˜ìФ 합성 계층(class composition hierarchy)으로 구성ë˜ì–´ 있는ë°, ìƒí˜¸ 참조가 가능하ë„ë¡ ì¹´íƒˆë¡œê·¸ í´ëž˜ìФ ì¸ìŠ¤í„´ìŠ¤ë“¤ì˜ OID를 가지ë„ë¡ êµ¬ì„±ë˜ì–´ 있다. ================================ ======================================================== í´ëž˜ìФ ì´ë¦„ 설명 ================================ ======================================================== :ref:`-db-class` í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ :ref:`-db-attribute` í´ëž˜ìŠ¤ì˜ ì†ì„±ì— 대한 ì •ë³´ :ref:`-db-domain` ë„ë©”ì¸ì— 대한 ì •ë³´ :ref:`-db-charset` 문ìžì…‹ì— 대한 ì •ë³´ :ref:`-db-collation` ì½œë ˆì´ì…˜ì— 대한 ì •ë³´ :ref:`-db-method` ë©”ì„œë“œì— ëŒ€í•œ ì •ë³´ :ref:`-db-meth-sig` ë©”ì„œë“œì— ëŒ€í•œ C í•¨ìˆ˜ì˜ êµ¬ì„± ì •ë³´ :ref:`-db-meth-arg` ë©”ì„œë“œì˜ ì¸ìžì— 대한 ì •ë³´ :ref:`-db-meth-file` 메서드가 ì •ì˜ëœ íŒŒì¼ ì •ë³´ :ref:`-db-query-spec` ê°€ìƒ í´ëž˜ìŠ¤ì˜ SQL ì •ì˜ë¬¸ :ref:`-db-index` ì¸ë±ìŠ¤ì— ëŒ€í•œ ì •ë³´ :ref:`-db-index-key` ì¸ë±ìŠ¤ì— ëŒ€í•œ 키 ì •ë³´ :ref:`-db-auth` í´ëž˜ìŠ¤ì— ëŒ€í•œ ì‚¬ìš©ìž ê¶Œí•œ ì •ë³´ :ref:`-db-data-type` ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ ì •ë³´ :ref:`-db-partition` ë¶„í• ì— ëŒ€í•œ ì •ë³´ :ref:`-db-stored-procedure` Java ì €ìž¥ í•¨ìˆ˜ì— ëŒ€í•œ ì •ë³´ :ref:`-db-stored-procedure-args` Java ì €ìž¥ 함수 ì¸ìžì— 대한 ì •ë³´ :ref:`-db-server` DBLinkì— ëŒ€í•œ 서버 ì •ë³´ :ref:`-db-synonym` ë™ì˜ì–´ì— 대한 ëŒ€ìƒ ê°ì²´ ì •ë³´ :ref:`db-user` 사용ìžì— 대한 ì •ë³´ :ref:`db-authorization` í´ëž˜ìŠ¤ì— ëŒ€í•œ ì‚¬ìš©ìž ê¶Œí•œ ì •ë³´ :ref:`db-serial` ì‹œë¦¬ì–¼ì— ëŒ€í•œ ì •ë³´ :ref:`db-trigger` íŠ¸ë¦¬ê±°ì— ëŒ€í•œ ì •ë³´ :ref:`db-ha-apply-info` **applylogdb** ìœ í‹¸ë¦¬í‹°ê°€ ë³µì œ 로그를 ì 용하는 ì§„í–‰ ìƒíƒœ :ref:`dual` ë”미 í…Œì´ë¸” ================================ ======================================================== .. _-db-class: _db_class --------- í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ë¥¼ 표현하며 unique_nameì— ëŒ€í•œ ì¸ë±ìŠ¤ì™€ class_name, ownerì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------------------+---------------------------+----------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=========================+===========================+==============================================+ | class_of | object | í´ëž˜ìФ ê°ì²´ë¡œì„œ 시스템 ë‚´ë¶€ì— ì €ìž¥ëœ | | | | í´ëž˜ìŠ¤ì— ëŒ€í•œ 메타 ì •ë³´ ê°ì²´ë¥¼ ì˜ë¯¸í•œë‹¤. | +-------------------------+---------------------------+----------------------------------------------+ | unique_name | VARCHAR(255) | ìŠ¤í‚¤ë§ˆëª…ì„ í¬í•¨í•˜ëŠ” í´ëž˜ìŠ¤ëª… | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_name | VARCHAR(255) | í´ëž˜ìŠ¤ëª… | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_type | INTEGER | í´ëž˜ìФì´ë©´ 0, ê°€ìƒ í´ëž˜ìФì´ë©´ 1 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | is_system_class | INTEGER | 사용ìžê°€ ì •ì˜í•œ í´ëž˜ìФì´ë©´ 0, | | | | 시스템 í´ëž˜ìФì´ë©´ 1 | +-------------------------+---------------------------+----------------------------------------------+ | owner | db_user | í´ëž˜ìФ ì†Œìœ ìž | | | | | +-------------------------+---------------------------+----------------------------------------------+ | inst_attr_count | INTEGER | ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì˜ 개수 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_attr_count | INTEGER | í´ëž˜ìФ ì†ì„±ì˜ 개수 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | shared_attr_count | INTEGER | ê³µìœ ì†ì„±ì˜ 개수 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | inst_meth_count | INTEGER | ì¸ìŠ¤í„´ìŠ¤ ë©”ì„œë“œì˜ ê°œìˆ˜ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_meth_count | INTEGER | í´ëž˜ìФ ë©”ì„œë“œì˜ ê°œìˆ˜ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | collation_id | INTEGER | ì½œë ˆì´ì…˜ ì‹ë³„ìž | | | | | +-------------------------+---------------------------+----------------------------------------------+ | tde_algorithm | INTEGER | TDE 암호화 ì•Œê³ ë¦¬ì¦˜ | | | | 0: NONE, 1: AES, 2: ARIA | +-------------------------+---------------------------+----------------------------------------------+ | sub_classes | SEQUENCE OF _db_class | 한 단계 하위 í´ëž˜ìФ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | super_classes | SEQUENCE OF _db_class | 한 단계 ìƒìœ„ í´ëž˜ìФ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | inst_attrs | SEQUENCE OF _db_attribute | ì¸ìŠ¤í„´ìŠ¤ ì†ì„± | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_attrs | SEQUENCE OF _db_attribute | í´ëž˜ìФ ì†ì„± | | | | | +-------------------------+---------------------------+----------------------------------------------+ | shared_attrs | SEQUENCE OF _db_attribute | ê³µìœ ì†ì„± | | | | | +-------------------------+---------------------------+----------------------------------------------+ | inst_meths | SEQUENCE OF _db_method | ì¸ìŠ¤í„´ìŠ¤ 메서드 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | class_meths | SEQUENCE OF _db_method | í´ëž˜ìФ 메서드 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | meth_files | SEQUENCE OF _db_methfile | ë©”ì„œë“œì— ëŒ€í•œ 함수가 위치한 íŒŒì¼ ê²½ë¡œ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | query_specs | SEQUENCE OF _db_queryspec | ê°€ìƒ í´ëž˜ìŠ¤ì¸ ê²½ìš° ê·¸ SQL ì •ì˜ë¬¸ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | indexes | SEQUENCE OF _db_index | í´ëž˜ìŠ¤ì— ìƒì„±ëœ ì¸ë±ìФ | | | | | +-------------------------+---------------------------+----------------------------------------------+ | comment | VARCHAR(2048) | í´ëž˜ìФ 설명 | | | | | +-------------------------+---------------------------+----------------------------------------------+ | partition | SEQUENCE of _db_partition | 파티션 ì •ë³´ | | | | | +-------------------------+---------------------------+----------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 ì‚¬ìš©ìž **PUBLIC** ì´ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìŠ¤ì˜ ëª¨ë“ í•˜ìœ„ í´ëž˜ìŠ¤ë¥¼ 검색한다(결과로 ë³´ì´ëŠ” 하위 í´ëž˜ìФ *female_event* 는 :ref:`add-superclass` ì˜ ì˜ˆì œë¥¼ 참조한다). .. code-block:: sql SELECT class_name, SEQUENCE(SELECT class_name FROM _db_class s WHERE s IN c.sub_classes) FROM _db_class c WHERE c.owner.name = 'PUBLIC' AND c.sub_classes IS NOT NULL; :: class_name sequence((select class_name from _db_class s where s in c.sub_classes)) ============================================ 'event' {'female_event'} .. note:: 시스템 카탈로그 í´ëž˜ìŠ¤ì— ëŒ€í•œ ëª¨ë“ ì˜ˆì œëŠ” csql 프로그램ì—서 작성ë˜ì—ˆëŠ”ë°, 여기ì—서는 **\-\-no-auto-commit** (auto-commit 모드 비활성화), **-u** (ì‚¬ìš©ìž dba를 명시) ì˜µì…˜ì„ ì‚¬ìš©í•˜ì˜€ë‹¤. :: % csql --no-auto-commit -u dba demodb .. _-db-attribute: _db_attribute ------------- ì†ì„±ì— 대한 ì •ë³´ë¥¼ 표현하며 class_of, attr_name ë° attr_type ì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +================+========================+=================================================================================================================+ | class_of | _db_class | ì†ì„±ì´ ì†í•œ í´ëž˜ìФ. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | attr_name | VARCHAR (255) | ì†ì„±ëª…. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | attr_type | INTEGER | ì†ì„±ì´ ì •ì˜ëœ 타입. ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì´ë©´ 0, í´ëž˜ìФ ì†ì„±ì´ë©´ 1, ê³µìœ ì†ì„±ì´ë©´ 2ì´ë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | from_class_of | _db_class | ìƒì†ë°›ì€ ì†ì„±ì´ë©´ ê·¸ ì†ì„±ì´ ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ê°€ ì„¤ì •ë˜ë©°, ìƒì†ë°›ì§€ ì•Šì€ ê²ƒì´ë©´ **NULL** ì´ë‹¤ | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | from_attr_name | VARCHAR(255) | ìƒì†ë°›ì€ ì†ì„±ì´ë©° ì´ë¦„ ì¶©ëŒ(name conflict)ì´ ë°œìƒí•˜ì—¬ ì´ë¥¼ 해결하기 위해 ê·¸ ì†ì„±ëª…ì´ ë°”ë€ ê²½ìš°, | | | | ìƒìœ„ í´ëž˜ìŠ¤ì— ì •ì˜ëœ ì›ëž˜ ì´ë¦„ì´ ì„¤ì •ëœë‹¤. ê·¸ ì´ì™¸ì—는 ëª¨ë‘ **NULL** ì´ ì„¤ì •ëœë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | def_order | INTEGER | ì†ì„±ì´ í´ëž˜ìŠ¤ì— ì •ì˜ëœ 순서로 0부터 시작한다. ìƒì†ë°›ì€ ì†ì„±ì´ë©´ ê·¸ ìƒìœ„ í´ëž˜ìФì—서 ì •ì˜ëœ 순서를 따른다. | | | | 예를 들어, í´ëž˜ìФ yê°€ í´ëž˜ìФ x로부터 ì†ì„± a를 ìƒì†ë°›ê³ a는 xì—서 첫 번째로 ì •ì˜ë˜ì—ˆì„ 때 def_order는 0ì´ ëœë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | data_type | INTEGER | ì†ì„±ì˜ ë°ì´í„° 타입. ì•„ëž˜ì˜ 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' 표ì—서 명시하는 value 중 하나ì´ë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | default_value | VARCHAR (255) | 기본값. ë°ì´í„° íƒ€ìž…ì— ê´€ê³„ì—†ì´ ëª¨ë‘ ë¬¸ìžì—´ë¡œ ì €ìž¥ëœë‹¤. ê¸°ë³¸ê°’ì´ ì—†ìœ¼ë©´ | | | | **NULL** , ê¸°ë³¸ê°’ì´ **NULL** ì´ë©´ 'NULL'로 표현ëœë‹¤. | | | | | | | | ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ 타입ì´ë©´ 'volume id | page id | slot id', ì§‘í•© 타입ì´ë©´ | | | | '{element 1, element 2, ...}'로 표현ëœë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | domains | SEQUENCE OF _db_domain | ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ ë„ë©”ì¸ ì •ë³´. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | is_nullable | INTEGER | not null ì œì•½ì´ ì„¤ì •ë˜ì–´ 있으면 0, ê·¸ë ‡ì§€ 않으면 1ì´ ì„¤ì •ëœë‹¤. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ | comment | VARCHAR(1024) | ì†ì„±ì— 대한 설명. | +----------------+------------------------+-----------------------------------------------------------------------------------------------------------------+ **CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입** +-------+-----------+-------+--------------+ | ê°’ | ì˜ë¯¸ | ê°’ | ì˜ë¯¸ | +=======+===========+=======+==============+ | 1 | INTEGER | 22 | NUMERIC | | | | | | +-------+-----------+-------+--------------+ | 2 | FLOAT | 23 | BIT | | | | | | +-------+-----------+-------+--------------+ | 3 | DOUBLE | 24 | VARBIT | | | | | | +-------+-----------+-------+--------------+ | 4 | STRING | 25 | CHAR | | | | | | +-------+-----------+-------+--------------+ | 5 | OBJECT | 31 | BIGINT | | | | | | +-------+-----------+-------+--------------+ | 6 | SET | 32 | DATETIME | | | | | | +-------+-----------+-------+--------------+ | 7 | MULTISET | 33 | BLOB | | | | | | +-------+-----------+-------+--------------+ | 8 | SEQUENCE | 34 | CLOB | | | | | | +-------+-----------+-------+--------------+ | 9 | ELO | 35 | ENUM | | | | | | +-------+-----------+-------+--------------+ | 10 | TIME | 36 | TIMESTAMPTZ | | | | | | +-------+-----------+-------+--------------+ | 11 | TIMESTAMP | 37 | TIMESTAMPLTZ | | | | | | +-------+-----------+-------+--------------+ | 12 | DATE | 38 | DATETIMETZ | | | | | | +-------+-----------+-------+--------------+ | 18 | SHORT | 39 | DATETIMELTZ | | | | | | +-------+-----------+-------+--------------+ **CUBRIDê°€ ì§€ì›í•˜ëŠ” 문ìžì…‹** +-----------+------------------------------+ | ê°’ | ì˜ë¯¸ | | | | +===========+==============================+ | 0 | US English - ASCII encoding | +-----------+------------------------------+ | 2 | Binary | +-----------+------------------------------+ | 3 | Latin 1 - ISO 8859 encoding | +-----------+------------------------------+ | 4 | KSC 5601 1990 - EUC encoding | +-----------+------------------------------+ | 5 | UTF8 - UTF8 encoding | +-----------+------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 ì‚¬ìš©ìž **PUBLIC** ì´ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìФ 중ì—서 ì‚¬ìš©ìž í´ëž˜ìФ(from_class_of.is_system_class = 0)ì¸ ê²ƒì„ ê²€ìƒ‰í•œë‹¤. .. code-block:: sql SELECT class_of.class_name, attr_name FROM _db_attribute WHERE class_of.owner.name = 'PUBLIC' AND from_class_of.is_system_class = 0 ORDER BY 1, def_order; :: class_of.class_name attr_name ============================================ 'female_event' 'code' 'female_event' 'sports' 'female_event' 'name' 'female_event' 'gender' 'female_event' 'players' .. _-db-domain: _db_domain ---------- ë„ë©”ì¸ì— 대한 ì •ë³´ì´ë©°, object_of와 data_type ì»¬ëŸ¼ì— ê°ê°(개별ì ì¸) ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------+------------------------+---------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=============+========================+===============================================================+ | object_of | object | ë„ë©”ì¸ì„ 참조하는 ì†ì„±, 메서드 ì¸ìž ë˜ëŠ” ë„ë©”ì¸ | +-------------+------------------------+---------------------------------------------------------------+ | data_type | INTEGER | ë„ë©”ì¸ì˜ ë°ì´í„° 타입( | | | | :ref:`-db-attribute` | | | | ì˜ 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' í‘œì˜ 'ê°’' 중 하나) | +-------------+------------------------+---------------------------------------------------------------+ | prec | INTEGER | ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ ì „ì²´ ìžë¦¿ìˆ˜(precision). ì „ì²´ ìžë¦¿ìˆ˜ê°€ | | | | 명시ë˜ì§€ ì•Šì€ ê²½ìš° 0ì´ ì„¤ì •ë¨ | +-------------+------------------------+---------------------------------------------------------------+ | scale | INTEGER | ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ 소수ì ì´í•˜ì˜ ìžë¦¿ìˆ˜(scale). 소수ì ì´í•˜ì˜ | | | | ìžë¦¿ìˆ˜ê°€ 명시ë˜ì§€ ì•Šì€ ê²½ìš° 0ì´ ì„¤ì •ë¨ | +-------------+------------------------+---------------------------------------------------------------+ | class_of | _db_class | ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ê·¸ ë„ë©”ì¸ í´ëž˜ìФ. ê°ì²´ íƒ€ìž…ì´ | | | | 아닌 경우 **NULL** ì´ ì„¤ì •ë¨. | +-------------+------------------------+---------------------------------------------------------------+ | code_set | INTEGER | 문ìžì—´ íƒ€ìž…ì¸ ê²½ìš°, 문ìžì…‹( | | | | :ref:`-db-attribute` | | | | ì˜ 'CUBRIDê°€ ì§€ì›í•˜ëŠ” 문ìžì…‹' í‘œì˜ 'ê°’' 중 하나). | | | | ë¬¸ìž ìŠ¤íŠ¸ë§ íƒ€ìž…ì´ ì•„ë‹Œ 경우 0. | +-------------+------------------------+---------------------------------------------------------------+ | collation_id| INTEGER | ì½œë ˆì´ì…˜ ID | | | | | +-------------+------------------------+---------------------------------------------------------------+ | enumeration | SEQUENCE OF STRING | 열거형 타입 ì •ì˜ ë¬¸ìžì—´ | +-------------+------------------------+---------------------------------------------------------------+ | set_domains | SEQUENCE OF _db_domain | ì»¬ë ‰ì…˜ íƒ€ìž…ì¸ ê²½ìš°, ê·¸ ì§‘í•©ì„ êµ¬ì„±í•˜ëŠ” ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì— | | | | 대한 ë„ë©”ì¸ ì •ë³´. ì»¬ë ‰ì…˜ íƒ€ìž…ì´ ì•„ë‹Œ 경우 **NULL** | | | | ì´ ì„¤ì •ë¨ | +-------------+------------------------+---------------------------------------------------------------+ .. _-db-charset: _db_charset ----------- 문ìžì…‹ì— 대한 ì •ë³´ì´ë‹¤. =================== ======================== ======================== ì†ì„±ëª… ë°ì´í„° 타입 설명 =================== ======================== ======================== charset_id INTEGER 문ìžì…‹ ì‹ë³„ìž charset_name CHARACTER VARYING(32) 문ìžì…‹ ì´ë¦„ default_collation INTEGER 기본 ì½œë ˆì´ì…˜ ì‹ë³„ìž char_size INTEGER 한 문ìžì˜ ë°”ì´íЏ í¬ê¸° =================== ======================== ======================== .. _-db-collation: _db_collation ------------- ì½œë ˆì´ì…˜(collation)ì— ëŒ€í•œ ì •ë³´. +--------------+-------------+------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==============+=============+==================================================================+ | coll_id | INTEGER | ì½œë ˆì´ì…˜ ì‹ë³„ìž | +--------------+-------------+------------------------------------------------------------------+ | coll_name | VARCHAR(32) | ì½œë ˆì´ì…˜ ì´ë¦„ | +--------------+-------------+------------------------------------------------------------------+ | charset_id | INTEGER | 문ìžì…‹ ì‹ë³„ìž | +--------------+-------------+------------------------------------------------------------------+ | built_in | INTEGER | ì œí’ˆ 설치 시 ì½œë ˆì´ì…˜ í¬í•¨ 여부 | +--------------+-------------+------------------------------------------------------------------+ | expansions | INTEGER | 확장 ì§€ì› ì—¬ë¶€ (0: ì§€ì› ì•ˆ 함, 1: ì§€ì›) | +--------------+-------------+------------------------------------------------------------------+ | contractions | INTEGER | 축약 ì§€ì› ì—¬ë¶€ (0: ì§€ì› ì•ˆ 함, 1: ì§€ì›) | +--------------+-------------+------------------------------------------------------------------+ | uca_strength | INTEGER | 가중치 세기(weight strength) | +--------------+-------------+------------------------------------------------------------------+ | checksum | VARCHAR(32) | ì½œë ˆì´ì…˜ 파ì¼ì˜ ì²´í¬ì„¬ | +--------------+-------------+------------------------------------------------------------------+ .. _-db-method: _db_method ---------- ë©”ì„œë“œì— ëŒ€í•œ ì •ë³´ì´ë©° class_of, meth_nameì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +----------------+--------------------------+------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +================+==========================+====================================================================================+ | class_of | _db_class | 메서드가 ì†í•œ í´ëž˜ìФ | +----------------+--------------------------+------------------------------------------------------------------------------------+ | meth_type | INTEGER | 메서드가 í´ëž˜ìŠ¤ì— ì •ì˜ëœ 타입. ì¸ìŠ¤í„´ìŠ¤ 메서드ì´ë©´ 0, í´ëž˜ìФ 메서드ì´ë©´ 1 | +----------------+--------------------------+------------------------------------------------------------------------------------+ | from_class_of | _db_class | 메서드가 ìƒì†ëœ 것ì´ë©´ ê·¸ 메서드가 ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ê°€ ì„¤ì •ë˜ë©° | | | | ê·¸ë ‡ì§€ 않으면 **NULL** | +----------------+--------------------------+------------------------------------------------------------------------------------+ | from_meth_name | VARCHAR(255) | ìƒì†ë°›ì€ 메서드ì´ë©° ì´ë¦„ ì¶©ëŒì´ ë°œìƒí•˜ì—¬ ì´ë¥¼ 해결하기 위해 ê·¸ ë©”ì„œë“œëª…ì´ ë°”ë€ | | | | 경우, ìƒìœ„ í´ëž˜ìŠ¤ì— ì •ì˜ëœ ì›ëž˜ ì´ë¦„ì´ ì„¤ì •ë¨. ê·¸ ì´ì™¸ì—는 ëª¨ë‘ **NULL** | +----------------+--------------------------+------------------------------------------------------------------------------------+ | meth_name | VARCHAR(255) | 메서드 ì´ë¦„ | +----------------+--------------------------+------------------------------------------------------------------------------------+ | signatures | SEQUENCE OF _db_meth_sig | 메서드 호출시 수행하는 C í•¨ìˆ˜ì— ëŒ€í•œ 구성 ì •ë³´ | +----------------+--------------------------+------------------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 ì‚¬ìš©ìž **DBA** ê°€ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìФ 중ì—서 í´ëž˜ìФ 메서드가 있는 것(c.class_meth_count > 0)ì˜ í´ëž˜ìФ 메서드를 검색한다. .. code-block:: sql SELECT class_name, SEQUENCE(SELECT meth_name FROM _db_method m WHERE m in c.class_meths) FROM _db_class c WHERE c.owner.name = 'DBA' AND c.class_meth_count > 0 ORDER BY 1; :: class_name sequence((select meth_name from _db_method m where m in c.class_meths)) ============================================ 'db_serial' {'change_serial_owner'} 'db_authorizations' {'add_user', 'drop_user', 'find_user', 'print_authorizations', 'info', 'change_owner', 'change_trigg r_owner', 'get_owner'} 'db_authorization' {'check_authorization'} 'db_user' {'add_user', 'drop_user', 'find_user', 'login'} 'db_root' {'add_user', 'drop_user', 'find_user', 'print_authorizations', 'info', 'change_owner', 'change_trigg r_owner', 'get_owner', 'change_sp_owner'} .. _-db-meth-sig: _db_meth_sig ------------ ë©”ì„œë“œì— ëŒ€í•œ C í•¨ìˆ˜ì˜ êµ¬ì„± ì •ë³´ì´ë©° meth_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +--------------+--------------------------+-------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==============+==========================+=========================+ | meth_of | _db_method | 함수 ì •ë³´ì— ëŒ€í•œ 메서드 | +--------------+--------------------------+-------------------------+ | arg_count | INTEGER | í•¨ìˆ˜ì˜ ìž…ë ¥ì¸ìž 개수 | +--------------+--------------------------+-------------------------+ | func_name | VARCHAR(255) | 함수명 | +--------------+--------------------------+-------------------------+ | return_value | SEQUENCE OF _db_meth_arg | í•¨ìˆ˜ì˜ ë¦¬í„´ ê°’ | +--------------+--------------------------+-------------------------+ | arguments | SEQUENCE OF _db_meth_arg | í•¨ìˆ˜ì˜ ìž…ë ¥ì¸ìž | +--------------+--------------------------+-------------------------+ .. _-db-meth-arg: _db_meth_arg ------------ 메서드 ì¸ìžì— 대한 ì •ë³´ì´ë©° meth_sig_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------+------------------------+-----------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=============+========================+===========================================================+ | meth_sig_of | _db_meth_sig | ì¸ìžê°€ ì†í•œ 함수 ì •ë³´ | +-------------+------------------------+-----------------------------------------------------------+ | data_type | INTEGER | ì¸ìžì˜ ë°ì´í„° 타입( :ref:`-db-attribute` | | | | ì˜ "CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입" í‘œì˜ "ê°’" 중 하나) | +-------------+------------------------+-----------------------------------------------------------+ | index_of | INTEGER | í•¨ìˆ˜ì •ì˜ì— ì¸ìžê°€ ë‚˜ì—´ëœ ìˆœì„œ. 리턴 ê°’ì´ë©´ 0, | | | | ìž…ë ¥ì¸ìžì´ë©´ 1부터 시작함. | +-------------+------------------------+-----------------------------------------------------------+ | domains | SEQUENCE OF _db_domain | ì¸ìžì˜ ë„ë©”ì¸ | +-------------+------------------------+-----------------------------------------------------------+ .. _-db-meth-file: _db_meth_file ------------- ë©”ì„œë“œì— ëŒ€í•œ 함수가 ì •ì˜ëœ íŒŒì¼ ì •ë³´ì´ë©° class_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +---------------+--------------+-------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===============+==============+=======================================================+ | class_of | _db_class | 메서드 íŒŒì¼ ì •ë³´ê°€ ì†í•œ í´ëž˜ìФ | +---------------+--------------+-------------------------------------------------------+ | from_class_of | _db_class | íŒŒì¼ ì •ë³´ê°€ ìƒì†ëœ 것ì´ë©´ ê·¸ íŒŒì¼ ì •ë³´ê°€ ì •ì˜ë˜ì–´ | | | | 있는 ìƒìœ„ í´ëž˜ìŠ¤ê°€ ì„¤ì •ë˜ë©°, ê·¸ë ‡ì§€ 않으면 **NULL** | +---------------+--------------+-------------------------------------------------------+ | path_name | VARCHAR(255) | 메서드가 위치한 파ì¼ì˜ 경로 | +---------------+--------------+-------------------------------------------------------+ .. _-db-query-spec: _db_query_spec -------------- ê°€ìƒ í´ëž˜ìŠ¤ì˜ SQL ì •ì˜ë¬¸ì´ë©° class_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. 'spec'ì†ì„±ì˜ ë°ì´í„° íƒ€ìž…ì€ 10.1 Patch 3 ì´ì „ë²„ì „ì˜ ê²½ìš° VARCHAR(4096) ì´ë‹¤. +----------+---------------------+---------------------------------+------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | ë²„ì „ë³„íŠ¹ì„±(10.1ë²„ì „ë§Œ) | +==========+=====================+=================================+========================+ | class_of | _db_class | ê°€ìƒ í´ëž˜ìŠ¤ì— ëŒ€í•œ í´ëž˜ìФ ì •ë³´ | | +----------+---------------------+---------------------------------+------------------------+ | | VARCHAR(1073741823) | | 10.1 Patch 4 ì´í›„ | + spec +---------------------+ ê°€ìƒ í´ëž˜ìŠ¤ì— ëŒ€í•œ SQL ì •ì˜ë¬¸ +------------------------+ | | VARCHAR(4096) | | 10.1 Patch 3 ì´ì „ | +----------+---------------------+---------------------------------+------------------------+ .. _-db-index: _db_index --------- ì¸ë±ìŠ¤ì— ëŒ€í•œ ì •ë³´ì´ë©° class_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------------+---------------------------+--------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===========================+==================================================+ | class_of | _db_class | ì¸ë±ìŠ¤ê°€ ì†í•œ í´ëž˜ìФ | +-------------------+---------------------------+--------------------------------------------------+ | index_name | VARCHAR(255) | ì¸ë±ìŠ¤ëª… | +-------------------+---------------------------+--------------------------------------------------+ | is_unique | INTEGER | ê³ ìœ ì¸ë±ìФ(unique index)ì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------------------+--------------------------------------------------+ | key_count | INTEGER | 키를 구성하는 ì†ì„±ì˜ 개수 | +-------------------+---------------------------+--------------------------------------------------+ | key_attrs | SEQUENCE OF _db_index_key | 키를 구성하는 ì†ì„±ë“¤ | +-------------------+---------------------------+--------------------------------------------------+ | is_reverse | INTEGER | ì— ì¸ë±ìФ(reverse index)ì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------------------+--------------------------------------------------+ | is_primary_key | INTEGER | 기본 키ì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------------------+--------------------------------------------------+ | is_foreign_key | INTEGER | 외래 키ì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------------------+--------------------------------------------------+ | filter_expression | VARCHAR(255) | í•„í„°ë§ëœ ì¸ë±ìŠ¤ì˜ ì¡°ê±´ | +-------------------+---------------------------+--------------------------------------------------+ | have_function | INTEGER | 함수 기반 ì¸ë±ìФì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------------------+--------------------------------------------------+ | comment | VARCHAR (1024) | ì¸ë±ìФ 설명 | +-------------------+---------------------------+--------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìŠ¤ì— ì†í•˜ëŠ” ì¸ë±ìŠ¤ëª…ì„ ê²€ìƒ‰í•œë‹¤. .. code-block:: sql SELECT class_of.class_name, index_name FROM _db_index ORDER BY 1; :: class_of.class_name index_name ============================================ '_db_attribute' 'i__db_attribute_class_of_attr_name' '_db_auth' 'i__db_auth_grantee' '_db_class' 'i__db_class_class_name' '_db_domain' 'i__db_domain_object_of' '_db_domain' 'i__db_domain_data_type' '_db_index' 'i__db_index_class_of' '_db_index_key' 'i__db_index_key_index_of' '_db_meth_arg' 'i__db_meth_arg_meth_sig_of' '_db_meth_file' 'i__db_meth_file_class_of' '_db_meth_sig' 'i__db_meth_sig_meth_of' '_db_method' 'i__db_method_class_of_meth_name' '_db_partition' 'i__db_partition_class_of_pname' '_db_query_spec' 'i__db_query_spec_class_of' '_db_stored_procedure' 'u__db_stored_procedure_sp_name' '_db_stored_procedure_args' 'i__db_stored_procedure_args_sp_name' 'athlete' 'pk_athlete_code' 'db_serial' 'pk_db_serial_name' 'db_user' 'i_db_user_name' 'event' 'pk_event_code' 'game' 'pk_game_host_year_event_code_athlete_code' 'game' 'fk_game_event_code' 'game' 'fk_game_athlete_code' 'history' 'pk_history_event_code_athlete' 'nation' 'pk_nation_code' 'olympic' 'pk_olympic_host_year' 'participant' 'pk_participant_host_year_nation_code' 'participant' 'fk_participant_host_year' 'participant' 'fk_participant_nation_code' 'record' 'pk_record_host_year_event_code_athlete_code_medal' 'stadium' 'pk_stadium_code' .. _-db-index-key: _db_index_key ------------- ì¸ë±ìŠ¤ì— ëŒ€í•œ 키 ì •ë³´ì´ë©° index_ofì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------------+---------------+--------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===============+==================================================+ | index_of | _db_index | 키 ì†ì„±ì´ ì†í•˜ëŠ” ì¸ë±ìФ | +-------------------+---------------+--------------------------------------------------+ | key_attr_name | VARCHAR(255) | 키를 구성하는 ì†ì„±ëª… | +-------------------+---------------+--------------------------------------------------+ | key_order | INTEGER | 키ì—서 ì†ì„±ì´ 위치한 순서로 0부터 시작함 | +-------------------+---------------+--------------------------------------------------+ | asc_desc | INTEGER | ì†ì„± ê°’ì˜ ìˆœì„œê°€ 내림차순ì´ë©´ 1, ê·¸ë ‡ì§€ 않으면 0 | +-------------------+---------------+--------------------------------------------------+ | key_prefix_length | INTEGER | 키로 ì‚¬ìš©í• prefixì˜ ê¸¸ì´ | +-------------------+---------------+--------------------------------------------------+ | func | VARCHAR(1023) | 함수 기반 ì¸ë±ìŠ¤ì˜ í•¨ìˆ˜ í‘œí˜„ì‹ | +-------------------+---------------+--------------------------------------------------+ | status | INTEGER | ì¸ë±ìФ ìƒíƒœ | +-------------------+---------------+--------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìŠ¤ì— ì†í•˜ëŠ” ì¸ë±ìŠ¤ëª…ì„ ê²€ìƒ‰í•œë‹¤. .. code-block:: sql SELECT class_of.class_name, SEQUENCE(SELECT key_attr_name FROM _db_index_key k WHERE k in i.key_attrs) FROM _db_index i WHERE key_count >= 2; :: class_of.class_name sequence((select key_attr_name from _db_index_key k where k in i.key_attrs)) ============================================ '_db_partition' {'class_of', 'pname'} '_db_method' {'class_of', 'meth_name'} '_db_attribute' {'class_of', 'attr_name'} 'participant' {'host_year', 'nation_code'} 'game' {'host_year', 'event_code', 'athlete_code'} 'record' {'host_year', 'event_code', 'athlete_code', 'medal'} 'history' {'event_code', 'athlete'} .. _-db-auth: _db_auth -------- í´ëž˜ìŠ¤ì— ëŒ€í•œ ì‚¬ìš©ìž ê¶Œí•œ ì •ë³´ë¥¼ 나타내며, granteeì— ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +--------------+-------------+-----------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==============+=============+=============================================================================+ | grantor | db_user | 권한 ë¶€ì—¬ìž | +--------------+-------------+-----------------------------------------------------------------------------+ | grantee | db_user | 권한 í”¼ë¶€ì—¬ìž | +--------------+-------------+-----------------------------------------------------------------------------+ | class_of | _db_class | 권한부여 대ìƒì¸ í´ëž˜ìФ ê°ì²´ | +--------------+-------------+-----------------------------------------------------------------------------+ | auth_type | VARCHAR(7) | ë¶€ì—¬ëœ ê¶Œí•œ 타입 ì´ë¦„ | +--------------+-------------+-----------------------------------------------------------------------------+ | is_grantable | INTEGER | 권한 ë°›ì€ í´ëž˜ìŠ¤ì— ëŒ€í•´ 다른 사용ìžì—게 ê¶Œí•œì„ ë¶€ì—¬í• ìˆ˜ 있으면 1, 아니면 0 | +--------------+-------------+-----------------------------------------------------------------------------+ CUBRIDê°€ ì§€ì›í•˜ëŠ” 권한 íƒ€ìž…ì€ ë‹¤ìŒê³¼ 같다. * **SELECT** * **INSERT** * **UPDATE** * **DELETE** * **ALTER** * **INDEX** * **EXECUTE** ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *db_trig* ì— ì •ì˜ë˜ì–´ 있는 권한 ì •ë³´ë¥¼ 검색한다. .. code-block:: sql SELECT grantor.name, grantee.name, auth_type FROM _db_auth WHERE class_of.class_name = 'db_trig'; :: grantor.name grantee.name auth_type ================================================================== 'DBA' 'PUBLIC' 'SELECT' .. _-db-data-type: _db_data_type ------------- CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입(:ref:`-db-attribute` ì˜ 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' 표 참조)ì„ ë‚˜íƒ€ë‚¸ë‹¤. +-----------+-------------+------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===========+=============+========================================================================+ | type_id | INTEGER | ë°ì´í„° 타입 ì‹ë³„ìž. 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' í‘œì˜ 'ê°’'ì— í•´ë‹¹í•¨ | +-----------+-------------+------------------------------------------------------------------------+ | type_name | VARCHAR(9) | ë°ì´í„° 타입 ì´ë¦„. 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' í‘œì˜ 'ì˜ë¯¸'ì— í•´ë‹¹í•¨ | +-----------+-------------+------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *event* ì˜ ì†ì„±ê³¼ ê° íƒ€ìž…ëª…ì„ ê²€ìƒ‰í•œë‹¤. .. code-block:: sql SELECT a.attr_name, t.type_name FROM _db_attribute a join _db_data_type t ON a.data_type = t.type_id WHERE class_of.class_name = 'event' ORDER BY a.def_order; :: attr_name type_name ============================================ 'code' 'INTEGER' 'sports' 'STRING' 'name' 'STRING' 'gender' 'CHAR' 'players' 'INTEGER' .. _-db-partition: _db_partition ------------- ë¶„í• ì— ëŒ€í•œ ì •ë³´ì´ë©° class_of, pnameì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +----------+--------------+----------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==========+==============+============================+ | class_of | _db_class | Parent classì˜ OID | +----------+--------------+----------------------------+ | pname | VARCHAR(255) | Parent - | | | | **NULL** | +----------+--------------+----------------------------+ | ptype | INTEGER | 0 - HASH | | | | 1 - RANGE | | | | 2 - LIST | +----------+--------------+----------------------------+ | pexpr | VARCHAR(255) | Parent ì—ë§Œ 해당 | +----------+--------------+----------------------------+ | pvalues | SEQUENCE OF | Parent - 칼럼명, Hash size | | | | RANGE - MIN/MAX value | | | | - ë¬´í•œì˜ MIN/MAX는 | | | | **NULL** 로 ì €ìž¥ | | | | LIST - value list | +----------+--------------+----------------------------+ | comment | VARCHAR(1024 | ë¶„í• ì„¤ëª… | +----------+--------------+----------------------------+ .. _-db-stored-procedure: _db_stored_procedure -------------------- Java ì €ìž¥ í•¨ìˆ˜ì— ëŒ€í•œ ì •ë³´ì´ë©° sp_nameì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-------------+---------------------------------------+-------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=============+=======================================+===========================================+ | sp_name | VARCHAR(255) | SP ì´ë¦„ | +-------------+---------------------------------------+-------------------------------------------+ | sp_type | INTEGER | SP 종류 | | | | (function or procedure) | +-------------+---------------------------------------+-------------------------------------------+ | return_type | INTEGER | 리턴 ê°’ 타입 | +-------------+---------------------------------------+-------------------------------------------+ | arg_count | INTEGER | 매개변수 개수 | +-------------+---------------------------------------+-------------------------------------------+ | args | SEQUENCE OF _db_stored_procedure_args | 매개변수 리스트 | +-------------+---------------------------------------+-------------------------------------------+ | lang | INTEGER | 구현 언어(현재로서는 Java) | +-------------+---------------------------------------+-------------------------------------------+ | target | VARCHAR(4096) | 실행ë Java 메서드 ì´ë¦„ | +-------------+---------------------------------------+-------------------------------------------+ | owner | db_user | ì†Œìœ ìž | +-------------+---------------------------------------+-------------------------------------------+ | comment | VARCHAR (1024) | SP 설명 | +-------------+---------------------------------------+-------------------------------------------+ .. _-db-stored-procedure-args: _db_stored_procedure_args ------------------------- Java ì €ìž¥ 함수 ì¸ìžì— 대한 ì •ë³´ì´ë©° sp_nameì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. +-----------+----------------+----------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===========+================+==================================+ | sp_name | VARCHAR(255) | SP ì´ë¦„ | +-----------+----------------+----------------------------------+ | index_of | INTEGER | 매개변수 순서 | +-----------+----------------+----------------------------------+ | arg_name | VARCHAR(255) | 매개변수 ì´ë¦„ | +-----------+----------------+----------------------------------+ | data_type | INTEGER | 매개변수 ë°ì´í„° 타입 | +-----------+----------------+----------------------------------+ | mode | INTEGER | 모드 (IN, OUT, INOUT) | +-----------+----------------+----------------------------------+ | comment | VARCHAR (1024) | 매개변수 설명 | +-----------+----------------+----------------------------------+ .. _-db-server: _db_server ---------- ============== =================== =================================== Attribute Name Data Type Description ============== =================== =================================== link_name VARCHAR(255) ì—°ê²° ì´ë¦„ host VARCHAR(255) ì„œë²„ì˜ í˜¸ìŠ¤íŠ¸ ì´ë¦„ port INTEGER ì„œë²„ì˜ ì—°ê²° í¬íЏ db_name VARCHAR(255) ì„œë²„ì˜ ë°ì´í„°ë² ì´ìФ ì´ë¦„ user_name VARCHAR(255) ì„œë²„ì˜ ë°ì´í„°ë² ì´ìФ ì‚¬ìš©ìž ì´ë¦„ password VARCHAR(1073741823) ì„œë²„ì˜ ë°ì´í„°ë² ì´ìФ ì‚¬ìš©ìž ë¹„ë°€ë²ˆí˜¸ properties VARCHAR(2048) ì—°ê²° 시 사용ë˜ëŠ” 프로í¼í‹° ì •ë³´ owner db_user ì—°ê²° ì •ë³´ì˜ ì†Œìœ ìž comment VARCHAR(1024) 서버 설명 ============== =================== =================================== .. _-db-synonym: _db_synonym ----------- ë™ì˜ì–´ì— 대한 ëŒ€ìƒ ê°ì²´ ì •ë³´ì´ë©° unique_nameì— ëŒ€í•œ ì¸ë±ìŠ¤ì™€ name, owner ë° is_publicì— ëŒ€í•œ ì¸ë±ìŠ¤ê°€ ìƒì„±ë˜ì–´ 있다. ================== ============= ========================================================= Attribute Name Data Type Description ================== ============= ========================================================= unique_name VARCHAR(255) 스키마 ì´ë¦„ì´ ì ‘ë‘어로 ë¶™ì€ ë™ì˜ì–´ ì´ë¦„ name VARCHAR(255) ë™ì˜ì–´ ì´ë¦„ owner db_user ë™ì˜ì–´ì˜ ì†Œìœ ìž is_public INTEGER 공용(Public) ë™ì˜ì–´ì´ë©´ 1ì´ê³ , ì „ìš©(Private) ë™ì˜ì–´ì´ë©´ 0 target_unique_name VARCHAR(255) 스키마 ì´ë¦„ì´ ì ‘ë‘어로 ë¶™ì€ ëŒ€ìƒ ê°ì²´ ì´ë¦„ target_name VARCHAR(255) ëŒ€ìƒ ê°ì²´ ì´ë¦„ target_owner db_user ëŒ€ìƒ ê°ì²´ ì†Œìœ ìž comment VARCHAR(2048) ë™ì˜ì–´ 설명 ================== ============= ========================================================= .. warning:: ì•„ì§ì€ 공용(Public) ë™ì˜ì–´ë¥¼ ì§€ì›í•˜ì§€ 않는다. .. _db-user: db_user ------- +---------------+---------------------+-------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===============+=====================+=================================================+ | name | VARCHAR(1073741823) | 사용ìžëª… | +---------------+---------------------+-------------------------------------------------+ | id | INTEGER | ì‚¬ìš©ìž ì‹ë³„ìž | +---------------+---------------------+-------------------------------------------------+ | password | db_password | ì‚¬ìš©ìž íŒ¨ìŠ¤ì›Œë“œë¡œ 사용ìžì—게 보여지지는 않는다. | +---------------+---------------------+-------------------------------------------------+ | direct_groups | SET OF db_user | 사용ìžê°€ ì§ì ‘ì 으로 ì†í•œ 그룹 | +---------------+---------------------+-------------------------------------------------+ | groups | SET OF db_user | 사용ìžê°€ ì§,ê°„ì ‘ì 으로 ì†í•œ 그룹 | +---------------+---------------------+-------------------------------------------------+ | authorization | db_authorization | 사용ìžê°€ ê°€ì§€ê³ ìžˆëŠ” 권한 ì •ë³´ | +---------------+---------------------+-------------------------------------------------+ | triggers | SEQUENCE OF object | 사용ìžì˜ actionì— ì˜í•´ ë°œìƒí•˜ëŠ” 트리거들 | +---------------+---------------------+-------------------------------------------------+ | comment | VARCHAR (1024) | ì‚¬ìš©ìž ì„¤ëª… | +---------------+---------------------+-------------------------------------------------+ **메서드 ì´ë¦„** * **set_password** () * **set_password_encoded** () * **set_password_encoded_sha1** () * **add_member** () * **drop_member** () * **print_authorizations** () * **add_user** () * **drop_user** () * **find_user** () * **login** () .. _db-authorization: db_authorization ---------------- +-----------+--------------------+---------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===========+====================+=====================================================================+ | owner | db_user | ì‚¬ìš©ìž ì •ë³´ | +-----------+--------------------+---------------------------------------------------------------------+ | grants | SEQUENCE OF object | {사용ìžê°€ 권한 ë°›ì€ ê°ì²´, ê°ì²´ì˜ 권한 부여ìž, 권한 종류}ì˜ sequence | +-----------+--------------------+---------------------------------------------------------------------+ **메서드 ì´ë¦„** * **check_authorization** (varchar(255), integer) .. _db-serial: db_serial ---------- +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +================+======================+=====================================================================================================+ | unique_name | VARCHAR(1073741823) | ìŠ¤í‚¤ë§ˆëª…ì„ í¬í•¨í•˜ëŠ” 시리얼명 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | name | VARCHAR(1073741823) | 시리얼명 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | current_val | NUMERIC(38,0) | 현재 시리얼 ê°’. ê¸°ë³¸ê°’ì€ 1 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | increment_val | NUMERIC(38,0) | 시리얼 ê°’ì˜ ê°„ê²©. ê¸°ë³¸ê°’ì€ 1 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | max_val | NUMERIC(38,0) | ì‹œë¦¬ì–¼ì˜ ìµœëŒ€ê°’. ê¸°ë³¸ê°’ì€ 99999999999999999999999999999999999999 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | min_val | NUMERIC(38,0) | ì‹œë¦¬ì–¼ì˜ ìµœì†Œê°’. ê¸°ë³¸ê°’ì€ 1 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | cyclic | INTEGER | ì‹œë¦¬ì–¼ì˜ ìµœëŒ€ ë˜ëŠ” ìµœì†Œê°’ì— ë„달한 후 순환해서 ê°’ì„ ìƒì„±í• 수 있으면 1 (CYCLE), 없으면 0 (NOCYCLE) | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | started | INTEGER | ìƒì„± 후 한 번ì´ë¼ë„ ê°’ì„ ìƒì„±í–ˆìœ¼ë©´ 1, 아니면 0 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | class_name | VARCHAR(1073741823) | AUTO_INCREMENT 시리얼ì´ë©´ í…Œì´ë¸”ëª…ì„ ì €ìž¥. 아니면 **NULL** | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | att_name | VARCHAR(1073741823) | AUTO_INCREMENT 시리얼ì´ë©´ ì¹¼ëŸ¼ëª…ì„ ì €ìž¥. 아니면 **NULL** | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | cached_num | INTEGER | 성능 í–¥ìƒì„ 위해 ë©”ëª¨ë¦¬ì— ë¯¸ë¦¬ ìƒì„±í• 시리얼 ê°’ì˜ ê°œìˆ˜. ê¸°ë³¸ê°’ì€ 0 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ | comment | VARCHAR (1024) | 시리얼 설명 | +----------------+----------------------+-----------------------------------------------------------------------------------------------------+ .. _db-trigger: db_trigger ---------- +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +========================+=====================+========================================================================================================+ | owner | db_user | 트리거 ì†Œìœ ìž | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | unique_name | VARCHAR(1073741823) | ìŠ¤í‚¤ë§ˆëª…ì„ í¬í•¨í•˜ëŠ” 트리거명 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | name | VARCHAR(1073741823) | 트리거명 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | status | INTEGER | INACTIVEì´ë©´ 1, ACTIVEì´ë©´ 2. ê¸°ë³¸ê°’ì€ 2 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | priority | DOUBLE | 트리거 ê°„ì˜ ìˆ˜í–‰ ìˆœì„œì— ëŒ€í•œ ìš°ì„ ìˆœìœ„. ê¸°ë³¸ê°’ì€ 0 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | event | INTEGER | UPDATE는 0, UPDATE STATEMENT는 1, DELETE는 2, DELETE STATEMENT는 3, INSERT는 4, INSERT STATEMENT는 5, | | | | COMMIT는 8, ROLLBACKì€ 9 로 ì„¤ì • | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | target_class | object | 트리거 대ìƒ(target)ì¸ í´ëž˜ìŠ¤ì— ëŒ€í•œ í´ëž˜ìФ ê°ì²´ | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | target_attribute | VARCHAR(1073741823) | 트리거 ëŒ€ìƒ ì†ì„±ëª…. ëŒ€ìƒ ì†ì„±ì´ 명시ë˜ì§€ 않으면 **NULL** ì„ ì„¤ì • | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | target_class_attribute | INTEGER | ëŒ€ìƒ ì†ì„±ì— 대해, ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì´ë©´ 0, í´ëž˜ìФ ì†ì„±ì´ë©´ 1. ê¸°ë³¸ê°’ì€ 0 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | condition_type | INTEGER | ì¡°ê±´ì´ ìžˆìœ¼ë©´ 1, ì¡°ê±´ì´ ì—†ìœ¼ë©´ **NULL** | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | condition | VARCHAR(1073741823) | IFë¬¸ì— ëª…ì‹œëœ action ë°œìƒ ì¡°ê±´ | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | condition_time | INTEGER | ì¡°ê±´ì´ ìžˆìœ¼ë©´ BEFORE는 1, AFTER는 2, DEFERRED는 3으로 ì„¤ì •. ì¡°ê±´ì´ ì—†ìœ¼ë©´ **NULL** | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | action_type | INTEGER | INSERT, UPDATE, DELETE, CALL 중 하나ì´ë©´ 1, REJECTì´ë©´ 2, INVALIDATE_TRANSACTIONì´ë©´ 3, PRINTì´ë©´ 4 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | action_definition | VARCHAR(1073741823) | triggeringë˜ëŠ” 수행문 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | action_time | INTEGER | BEFORE는 1, AFTER는 2, DEFERRED는 3으로 ì„¤ì • | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ | comment | VARCHAR (1024) | 트리거 설명 | +------------------------+---------------------+--------------------------------------------------------------------------------------------------------+ .. _db-ha-apply-info: db_ha_apply_info ---------------- **applylogdb** ìœ í‹¸ë¦¬í‹°ê°€ ë³µì œ 로그를 ë°˜ì˜í• 때마다 ê·¸ ì§„í–‰ ìƒíƒœë¥¼ ì €ìž¥í•˜ê¸° 위한 í…Œì´ë¸”ì´ë‹¤. ì´ í…Œì´ë¸”ì€ **applylogdb** ìœ í‹¸ë¦¬í‹°ê°€ 커밋하는 시ì 마다 ê°±ì‹ ë˜ë©°, *_counter* 칼럼ì—는 수행 ì—°ì‚°ì˜ ëˆ„ì 카운트 ê°’ì´ ì €ìž¥ëœë‹¤. ê° ì¹¼ëŸ¼ì˜ ì˜ë¯¸ëŠ” 다ìŒê³¼ 같다. +----------------------+---------------+-----------------------------------------------------------------------------+ | 칼럼명 | 칼럼 타입 | ì˜ë¯¸ | +======================+===============+=============================================================================+ | db_name | VARCHAR(255) | ë¡œê·¸ì— ì €ìž¥ëœ DB ì´ë¦„ | +----------------------+---------------+-----------------------------------------------------------------------------+ | db_creation_time | DATETIME | ë°˜ì˜í•˜ëŠ” ë¡œê·¸ì— ëŒ€í•œ ì›ë³¸ DBì˜ ìƒì„± ì‹œê° | +----------------------+---------------+-----------------------------------------------------------------------------+ | copied_log_path | VARCHAR(4096) | ë°˜ì˜í•˜ëŠ” 로그 파ì¼ì˜ 경로 | +----------------------+---------------+-----------------------------------------------------------------------------+ | committed_lsa_pageid | BIGINT | ë§ˆì§€ë§‰ì— ë°˜ì˜í•œ commit log lsaì˜ page id, | | | | applylogdbê°€ ìž¬ì‹œìž‘í•´ë„ last_committed_lsa 보다 ì•žì„ ë¡œê·¸ëŠ” 재반ì˜í•˜ì§€ ì•ŠìŒ | +----------------------+---------------+-----------------------------------------------------------------------------+ | committed_lsa_offset | INTEGER | ë§ˆì§€ë§‰ì— ë°˜ì˜í•œ commit log lsaì˜ offset, | | | | applylogdbê°€ ìž¬ì‹œìž‘í•´ë„ last_committed_lsa 보다 ì•žì„ ë¡œê·¸ëŠ” 재반ì˜í•˜ì§€ ì•ŠìŒ | +----------------------+---------------+-----------------------------------------------------------------------------+ | committed_rep_pageid | BIGINT | 마지막 ë°˜ì˜í•œ ë³µì œ 로그 lsaì˜ pageid, | | | | ë³µì œ ë°˜ì˜ ì§€ì—° 여부 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | committed_rep_offset | INTEGER | 마지막 ë°˜ì˜í•œ ë³µì œ 로그 lsaì˜ offset, | | | | ë³µì œ ë°˜ì˜ ì§€ì—° 여부 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | append_lsa_page_id | BIGINT | 마지막 ë°˜ì˜ ë‹¹ì‹œ ë³µì œ 로그 마지막 lsaì˜ page id, | | | | ë³µì œ ë°˜ì˜ ë‹¹ì‹œ, applylogdbì—서 처리 ì¤‘ì¸ ë³µì œ 로그 í—¤ë”ì˜ append_lsa를 ì €ìž¥ | | | | ë³µì œ 로그 ë°˜ì˜ ë‹¹ì‹œì˜ ì§€ì—° 여부를 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | append_lsa_offset | INTEGER | 마지막 ë°˜ì˜ ë‹¹ì‹œ ë³µì œ 로그 마지막 lsaì˜ offset, | | | | ë³µì œ ë°˜ì˜ ë‹¹ì‹œ, applylogdbì—서 처리 ì¤‘ì¸ ë³µì œ 로그 í—¤ë”ì˜ append_lsa를 ì €ìž¥ | | | | ë³µì œ 로그 ë°˜ì˜ ë‹¹ì‹œì˜ ì§€ì—° 여부를 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | eof_lsa_page_id | BIGINT | 마지막 ë°˜ì˜ ë‹¹ì‹œ ë³µì œ 로그 EOF lsaì˜ page id, | | | | ë³µì œ ë°˜ì˜ ë‹¹ì‹œ, applylogdbì—서 처리 ì¤‘ì¸ ë³µì œ 로그 í—¤ë”ì˜ eof_lsa를 ì €ìž¥ | | | | ë³µì œ 로그 ë°˜ì˜ ë‹¹ì‹œì˜ ì§€ì—° 여부를 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | eof_lsa_offset | INTEGER | 마지막 ë°˜ì˜ ë‹¹ì‹œ ë³µì œ 로그 EOF lsaì˜ offset, | | | | ë³µì œ ë°˜ì˜ ë‹¹ì‹œ, applylogdbì—서 처리 ì¤‘ì¸ ë³µì œ 로그 í—¤ë”ì˜ eof_lsa를 ì €ìž¥ | | | | ë³µì œ 로그 ë°˜ì˜ ë‹¹ì‹œì˜ ì§€ì—° 여부를 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | final_lsa_pageid | BIGINT | applylogdbì—서 마지막으로 처리한 로그 lsaì˜ pageid, | | | | ë³µì œ ë°˜ì˜ ì§€ì—° 여부 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | final_lsa_offset | INTEGER | applylogdbì—서 마지막으로 처리한 로그 lsaì˜ offset, | | | | ë³µì œ ë°˜ì˜ ì§€ì—° 여부 í™•ì¸ | +----------------------+---------------+-----------------------------------------------------------------------------+ | required_page_id | BIGINT | log_max_archives 파ë¼ë¯¸í„°ì— ì˜í•´ ì‚ì œë˜ì§€ 않아야 í• ê°€ìž¥ ìž‘ì€ log page id, | | | | ë³µì œ ë°˜ì˜ ì‹œìž‘í• ë¡œê·¸ 페ì´ì§€ 번호 | +----------------------+---------------+-----------------------------------------------------------------------------+ | required_page_offset | INTEGER | ë³µì œ ë°˜ì˜ ì‹œìž‘í• ë¡œê·¸ 페ì´ì§€ offset | +----------------------+---------------+-----------------------------------------------------------------------------+ | log_record_time | DATETIME | ìŠ¬ë ˆì´ë¸Œ DBì— ì»¤ë°‹ëœ ë³µì œ ë¡œê·¸ì— í¬í•¨ëœ timestamp, 즉 해당 로그 ë ˆì½”ë“œ | | | | ìƒì„± 시간 | +----------------------+---------------+-----------------------------------------------------------------------------+ | log_commit_time | DATETIME | 마지막 commit logì˜ ë°˜ì˜ ì‹œê°„ | +----------------------+---------------+-----------------------------------------------------------------------------+ | last_access_time | DATETIME | db_ha_apply_info ì¹´íƒˆë¡œê·¸ì˜ ìµœì¢… ê°±ì‹ ì‹œê°„ | +----------------------+---------------+-----------------------------------------------------------------------------+ | status | INTEGER | ë°˜ì˜ ì§„í–‰ ìƒíƒœ(0: IDLE, 1: BUSY) | +----------------------+---------------+-----------------------------------------------------------------------------+ | insert_counter | BIGINT | applylogdbê°€ insert한 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | update_counter | BIGINT | applylogdbê°€ update한 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | delete_counter | BIGINT | applylogdbê°€ delete한 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | schema_counter | BIGINT | applylogdbê°€ schema를 변경한 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | commit_counter | BIGINT | applylogdbê°€ commit한 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | fail_counter | BIGINT | applylogdbê°€ insert/update/delete/commit/schema 변경 중 실패 횟수 | +----------------------+---------------+-----------------------------------------------------------------------------+ | start_time | DATETIME | applylogdb 프로세스가 ìŠ¬ë ˆì´ë¸Œ DBì— ì ‘ì†í•œ 시간 | +----------------------+---------------+-----------------------------------------------------------------------------+ .. _dual: dual ---- dual í…Œì´ë¸”ì€ ì˜¤ì§ í•˜ë‚˜ì˜ ì—´ê³¼ í–‰ì„ ê°€ì§€ë©° ë”미 í…Œì´ë¸”로 사용ëœë‹¤. dual í…Œì´ë¸”ì€ ìƒìˆ˜, ê³„ì‚°ì‹ ë˜ëŠ” SYS_DATE나 USER와 ê°™ì€ ì˜ì‚¬ ì¹¼ëŸ¼ì„ ì¡°íšŒí• ë•Œ 사용ëœë‹¤. í브리드ì—서 ì˜ì‚¬ ì¹¼ëŸ¼ì€ í•¨ìˆ˜ë¡œì¨ ì œê³µë˜ë©° ì´ì— 대한 ìžì„¸í•œ 내용과 ì˜ˆì œë“¤ì€ :ref:`operators-and-functions` 를 ì°¸ê³ í•œë‹¤. ìƒìˆ˜, ê³„ì‚°ì‹ ë˜ëŠ” ì˜ì‚¬ ì¹¼ëŸ¼ì„ ì¡°íšŒí• ë•ŒëŠ” FROMì ˆì„ ìƒëžµí•˜ì—¬ë„ dual í…Œì´ë¸”ì´ ìžë™ì 으로 참조ëœë‹¤. dual í…Œì´ë¸”ì€ ë‹¤ë¥¸ 시스템 카탈로그처럼 dba ì†Œìœ ë¡œ ìƒì„±ë˜ì§€ë§Œ dba는 dual í…Œì´ë¸”ì— ëŒ€í•´ SELECT ì—°ì‚°ë§Œ 수행가능하다. 하지만 다른 시스템 카탈로그와 다르게 PUBLIC 사용ìžë“¤ ë˜í•œ dual í…Œì´ë¸”ì— ëŒ€í•´ SELECT ì—°ì‚°ì„ ìˆ˜í–‰í• ìˆ˜ 있다. +--------------------+---------------+----------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +====================+===============+==========================================================+ | dummy | VARCHAR(1) | ë”미 목ì 으로만 사용ë˜ëŠ” ê°’ | +--------------------+---------------+----------------------------------------------------------+ 다ìŒì€ CSQLì—서 ";plan detail" ëª…ë ¹ ìž…ë ¥ ë˜ëŠ” "SET OPTIMIZATION LEVEL 513;"ì„ ìž…ë ¥ 후 ì˜ì‚¬ ì¹¼ëŸ¼ì„ ì¡°íšŒí•˜ëŠ” 질ì˜ë¥¼ 수행한 ê²°ê³¼ì´ë‹¤(:ref:`viewing-query-plan`). FROMì ˆì„ ìƒëžµí•˜ì—¬ë„ ìžë™ì 으로 dual í…Œì´ë¸”ì´ ì°¸ì¡°ë˜ëŠ” ê²ƒì„ ë³¼ 수 있다. .. code-block:: sql SET OPTIMIZATION LEVEL 513; SELECT SYS_DATE; :: Join graph segments (f indicates final): seg[0]: [0] Join graph nodes: node[0]: dual dual(1/1) (loc -1) Query plan: sscan class: dual node[0] cost: 1 card 1 Query stmt: select SYS_DATE from dual dual === <Result of SELECT Command in Line 1> === SYS_DATE ============ 11/26/2020 시스템 카탈로그 ê°€ìƒ í´ëž˜ìФ =========================== ì¼ë°˜ 사용ìžëŠ” ìžì‹ ì´ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ì„œë§Œ ê·¸ í´ëž˜ìŠ¤ì™€ ê´€ë ¨ëœ ì •ë³´ë“¤ì„ ì‹œìŠ¤í…œ 카탈로그 ê°€ìƒ í´ëž˜ìŠ¤ë“¤ì„ í†µí•´ ë³¼ 수 있다. ì´ ì ˆì—서는 ê° ì‹œìŠ¤í…œ 카탈로그 ê°€ìƒ í´ëž˜ìŠ¤ë“¤ì´ ì–´ë–¤ ì •ë³´ë¥¼ 표현하는지와 ê°€ìƒ í´ëž˜ìФ ì •ì˜ë¬¸ì— 대해 설명한다. ================================ =================================================================== ê°€ìƒ í´ëž˜ìФ ì´ë¦„ 설명 ================================ =================================================================== :ref:`db-class` í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ :ref:`db-direct-super-class` ìƒìœ„ í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ :ref:`db-vclass` ê°€ìƒ í´ëž˜ìŠ¤ì˜ SQL ì •ì˜ë¬¸ :ref:`db-attribute` í´ëž˜ìŠ¤ì˜ ì†ì„±ì— 대한 ì •ë³´ :ref:`db-attr-setdomain-elm` ì»¬ë ‰ì…˜ 타입(SET, MULTISET, SEQUENCE) ì†ì„±ì˜ ì›ì†Œì— 대한 ë°ì´í„° 타입 :ref:`db-charset` 문ìžì…‹ì— 대한 ì •ë³´ :ref:`db-collation` ì½œë ˆì´ì…˜ì— 대한 ì •ë³´ :ref:`db-method` ë©”ì„œë“œì— ëŒ€í•œ ì •ë³´ :ref:`db-meth-arg` ë©”ì„œë“œì˜ ì¸ìžì— 대한 ì •ë³´ :ref:`db-meth-arg-setdomain-elm` ì»¬ë ‰ì…˜ 타입(SET, MULTISET, SEQUENCE) ì¸ìžì˜ ì›ì†Œì— 대한 ë°ì´í„° 타입 :ref:`db-meth-file` 메소드가 ì •ì˜ëœ íŒŒì¼ ì •ë³´ :ref:`db-index` ì¸ë±ìŠ¤ì— ëŒ€í•œ ì •ë³´ :ref:`db-index-key` ì¸ë±ìŠ¤ì— ëŒ€í•œ 키 ì •ë³´ :ref:`db-auth` í´ëž˜ìŠ¤ì— ëŒ€í•œ ì‚¬ìš©ìž ê¶Œí•œ ì •ë³´ :ref:`db-trig` íŠ¸ë¦¬ê±°ì— ëŒ€í•œ ì •ë³´ :ref:`db-partition` ë¶„í• ì— ëŒ€í•œ ì •ë³´ :ref:`db-stored-procedure` Java ì €ìž¥ í•¨ìˆ˜ì— ëŒ€í•œ ì •ë³´ :ref:`db-stored-procedure-args` Java ì €ìž¥ 함수 ì¸ìžì— 대한 ì •ë³´ :ref:`db-server` DBLinkì— ëŒ€í•œ 서버 ì •ë³´ :ref:`db-synonym` ë™ì˜ì–´ì— 대한 ëŒ€ìƒ ê°ì²´ ì •ë³´ ================================ =================================================================== .. _db-class: DB_CLASS -------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ë¥¼ 보여준다. +--------------------+---------------+----------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +====================+===============+==============================================+ | class_name | VARCHAR (255) | í´ëž˜ìŠ¤ëª… | +--------------------+---------------+----------------------------------------------+ | owner_name | VARCHAR (255) | í´ëž˜ìФ ì†Œìœ ìžëª… | +--------------------+---------------+----------------------------------------------+ | class_type | VARCHAR (6) | í´ëž˜ìФì´ë©´ 'CLASS', ê°€ìƒ í´ëž˜ìФì´ë©´ 'VCLASS' | +--------------------+---------------+----------------------------------------------+ | is_system_class | VARCHAR (3) | 시스템 í´ëž˜ìФì´ë©´ 'YES', 아니면 'NO' | +--------------------+---------------+----------------------------------------------+ | tde_algorithm | VARCHAR (32) | TDE 암호화 ì•Œê³ ë¦¬ì¦˜ | +--------------------+---------------+----------------------------------------------+ | partitioned | VARCHAR (3) | ë¶„í• ê·¸ë£¹ í´ëž˜ìФì´ë©´ 'YES', 아니면 'NO' | +--------------------+---------------+----------------------------------------------+ | is_reuse_oid_class | VARCHAR (3) | REUSE_OID í´ëž˜ìФì´ë©´ 'YES', 아니면 'NO' | +--------------------+---------------+----------------------------------------------+ | collation | VARCHAR(32) | ì½œë ˆì´ì…˜ ì´ë¦„ | +--------------------+---------------+----------------------------------------------+ | comment | VARCHAR(2048) | í´ëž˜ìФ 설명 | +--------------------+---------------+----------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìŠ¤ë¥¼ 검색한다. .. code-block:: sql /* CURRENT_USER: PUBLIC */ SELECT class_name, owner_name FROM db_class WHERE owner_name = CURRENT_USER; :: class_name owner_name ============================================ 'stadium' 'PUBLIC' 'code' 'PUBLIC' 'nation' 'PUBLIC' 'event' 'PUBLIC' 'athlete' 'PUBLIC' 'participant' 'PUBLIC' 'olympic' 'PUBLIC' 'game' 'PUBLIC' 'record' 'PUBLIC' 'history' 'PUBLIC' 'female_event' 'PUBLIC' ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì ‘ê·¼í• ìˆ˜ 있는 ê°€ìƒ í´ëž˜ìŠ¤ë¥¼ 검색한다. .. code-block:: sql SELECT class_name FROM db_class WHERE class_type = 'VCLASS'; :: class_name ====================== 'db_synonym' 'db_server' 'db_charset' 'db_collation' 'db_stored_procedure_args' 'db_stored_procedure' 'db_partition' 'db_trig' 'db_auth' 'db_index_key' 'db_index' 'db_meth_file' 'db_meth_arg_setdomain_elm' 'db_meth_arg' 'db_method' 'db_attr_setdomain_elm' 'db_attribute' 'db_vclass' 'db_direct_super_class' 'db_class' ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì ‘ê·¼í• ìˆ˜ 있는 시스템 í´ëž˜ìŠ¤ë¥¼ 검색한다. .. code-block:: sql SELECT class_name FROM db_class WHERE is_system_class = 'YES' AND class_type = 'CLASS' ORDER BY class_name; :: class_name ====================== 'db_authorization' 'db_authorizations' 'db_ha_apply_info' 'db_root' 'db_serial' 'db_user' 'dual' .. _db-direct-super-class: DB_DIRECT_SUPER_CLASS --------------------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ìƒìœ„ í´ëž˜ìŠ¤ê°€ 존재하면 ê·¸ í´ëž˜ìŠ¤ëª…ì„ ë³´ì—¬ì¤€ë‹¤. +------------------+---------------+------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==================+===============+==============================+ | class_name | VARCHAR (255) | í´ëž˜ìŠ¤ëª… | +------------------+---------------+------------------------------+ | owner_name | VARCHAR (255) | í´ëž˜ìФ ì†Œìœ ìžëª… | +------------------+---------------+------------------------------+ | super_class_name | VARCHAR (255) | 한 단계 ìƒìœ„ í´ëž˜ìŠ¤ëª… | +------------------+---------------+------------------------------+ | super_owner_name | VARCHAR (255) | 한 단계 ìƒìœ„ í´ëž˜ìФ ì†Œìœ ìžëª… | +------------------+---------------+------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *female_event* ì˜ ìƒìœ„ í´ëž˜ìŠ¤ë¥¼ 검색한다. (:ref:`add-superclass` 참조) .. code-block:: sql SELECT super_class_name FROM db_direct_super_class WHERE class_name = 'female_event'; :: super_class_name ====================== 'event' ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìŠ¤ì˜ ìƒìœ„ í´ëž˜ìŠ¤ë¥¼ 검색한다. .. code-block:: sql /* CURRENT_USER: PUBLIC */ SELECT class_name, super_class_name FROM db_direct_super_class WHERE owner_name = CURRENT_USER ORDER BY class_name; :: class_name super_class_name ============================================ 'female_event' 'event' .. _db-vclass: DB_VCLASS --------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ ê°€ìƒ í´ëž˜ìŠ¤ë“¤ì— ëŒ€í•´ ê·¸ SQL ì •ì˜ë¬¸ì„ 보여준다. 'vclass_def' ì†ì„±ì˜ ë°ì´í„° íƒ€ìž…ì€ 10.1 Patch 3 ì´ì „ë²„ì „ì˜ ê²½ìš° VARCHAR(4096) ì´ë‹¤. +-------------+----------------------+----------------------------------+------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | ë²„ì „ë³„íŠ¹ì„±(10.1ë²„ì „ë§Œ) | +=============+======================+==================================+========================+ | vclass_name | VARCHAR (255) | ê°€ìƒ í´ëž˜ìŠ¤ëª… | | +-------------+----------------------+----------------------------------+------------------------+ | owner_name | VARCHAR (255) | ê°€ìƒ í´ëž˜ìФ ì†Œìœ ìžëª… | | +-------------+----------------------+----------------------------------+------------------------+ | | VARCHAR (1073741823) | | 10.1 Patch 4 ì´í›„ | + vclass_def +----------------------+ ê°€ìƒ í´ëž˜ìŠ¤ì˜ SQL ì •ì˜ë¬¸ +------------------------+ | | VARCHAR (4096) | | 10.1 Patch 3 ì´ì „ | +-------------+----------------------+----------------------------------+------------------------+ | comment | VARCHAR (2048) | ê°€ìƒ í´ëž˜ìФ 설명 | | +-------------+----------------------+----------------------------------+------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 ê°€ìƒ í´ëž˜ìФ *db_class* ì˜ SQL ì •ì˜ë¬¸ì„ 검색한다. .. code-block:: sql SELECT vclass_def FROM db_vclass WHERE vclass_name = 'db_class'; :: vclass_def ====================== 'SELECT [c].[class_name], CAST([c].[owner].[name] AS VARCHAR(255)), CASE [c].[class_type] WHEN 0 THEN 'CLASS' WHEN 1 THEN 'VCLASS' ELSE 'UNKNOW' END, CASE WHEN MOD([c].[is_system_class], 2) = 1 THEN 'YES' ELSE 'NO' END, CASE [c].[tde_algorithm] WHEN 0 THEN 'NONE' WHEN 1 THEN 'AES' WHEN 2 THEN 'ARIA' END, CASE WHEN [c].[sub_classes] IS NULL THEN 'NO' ELSE NVL((SELECT 'YES' FROM [_db_partition] [p] WHERE [p].[class_of] = [c] and [p].[pname] IS NULL), 'NO') END, CASE WHEN MOD([c].[is_system_class] / 8, 2) = 1 THEN 'YES' ELSE 'NO' END, [coll].[coll_name], [c].[comment] FROM [_db_class] [c], [_db_collation] [coll] WHERE [c].[collation_id] = [coll].[coll_id] AND (CURRENT_USER = 'DBA' OR {[c].[owner].[name]} SUBSETEQ (SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [db_user] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR {[c]} SUBSETEQ ( SELECT SUM(SET{[au].[class_of]}) FROM [_db_auth] [au] WHERE {[au].[grantee].[name]} SUBSETEQ ( SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [db_user] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND [au].[auth_type] = 'SELECT'))' .. _db-attribute: DB_ATTRIBUTE ------------ ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ê·¸ ì†ì„± ì •ë³´ë¥¼ 보여준다. +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===============+===============================================================================================================+ | attr_name | VARCHAR (255) | ì†ì„±ëª… | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | class_name | VARCHAR (255) | ì†ì„±ì´ ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | owner_name | VARCHAR (255) | ì†ì„±ì´ ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | attr_type | VARCHAR (8) | ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì´ë©´ 'INSTANCE', í´ëž˜ìФ ì†ì„±ì´ë©´ 'CLASS', ê³µìœ ì†ì„±ì´ë©´ 'SHARED' | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | def_order | INTEGER | í´ëž˜ìФì—서 ì†ì„±ì´ ì •ì˜ëœ 순서로 0부터 시작함. ìƒì†ë°›ì€ ì†ì„±ì´ë©´ ê·¸ ìƒìœ„ í´ëž˜ìФì—서 ì •ì˜ëœ 순서임. | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | from_class_name | VARCHAR (255) | ìƒì†ë°›ì€ ì†ì„±ì´ë©´ ê·¸ ì†ì„±ì´ ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ëª…ì´ ì„¤ì •ë˜ë©°, ê·¸ë ‡ì§€ 않으면 **NULL** | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | from_owner_name | VARCHAR (255) | ìƒì†ë°›ì€ ì†ì„±ì´ë©´ ê·¸ ì†ì„±ì´ ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ì˜ ì†Œìœ ìžëª…ì´ ì„¤ì •ë˜ë©°, ê·¸ë ‡ì§€ 않으면 **NULL** | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | from_attr_name | VARCHAR (255) | ìƒì†ë°›ì€ ì†ì„±ì´ë©°, ì´ë¦„ ì¶©ëŒì´ ë°œìƒí•˜ì—¬ ì´ë¥¼ 해결하기 위해 ê·¸ ì†ì„±ëª…ì´ ë°”ë€ ê²½ìš°, ìƒìœ„ í´ëž˜ìŠ¤ì— ì •ì˜ëœ ì›ëž˜ | | | | ì´ë¦„ìž„. ê·¸ ì´ì™¸ì—는 ëª¨ë‘ **NULL** | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | data_type | VARCHAR (9) | ì†ì„±ì˜ ë°ì´í„° 타입( | | | | :ref:`-db-attribute` | | | | ì˜ 'CUBRIDê°€ ì§€ì›í•˜ëŠ” ë°ì´í„° 타입' í‘œì˜ 'ì˜ë¯¸' 중 하나) | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | prec | INTEGER | ë°ì´í„° íƒ€ìž…ì˜ ì „ì²´ ìžë¦¿ìˆ˜. ì „ì²´ ìžë¦¿ìˆ˜ê°€ 명시ë˜ì§€ ì•Šì€ ê²½ìš° 0ìž„ | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | scale | INTEGER | ë°ì´í„° íƒ€ìž…ì˜ ì†Œìˆ˜ì ì´í•˜ì˜ ìžë¦¿ìˆ˜. 소수ì ì´í•˜ì˜ ìžë¦¿ìˆ˜ê°€ 명시ë˜ì§€ ì•Šì€ ê²½ìš° 0ìž„ | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | charset | VARCHAR (32) | 문ìžì…‹ ì´ë¦„ | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | collation | VARCHAR (32) | ì½œë ˆì´ì…˜ ì´ë¦„ | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | domain_class_name | VARCHAR (255) | ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ê·¸ ë„ë©”ì¸ í´ëž˜ìŠ¤ëª…. ê°ì²´ íƒ€ìž…ì´ ì•„ë‹Œ 경우 **NULL** | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | domain_owner_name | VARCHAR (255) | ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ê·¸ ë„ë©”ì¸ í´ëž˜ìФ ì†Œìœ ìžëª…. ê°ì²´ íƒ€ìž…ì´ ì•„ë‹Œ 경우 **NULL** | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | default_value | VARCHAR (255) | 기본값으로서 ê·¸ ë°ì´í„° íƒ€ìž…ì— ê´€ê³„ì—†ì´ ëª¨ë‘ ë¬¸ìžì—´ë¡œ ì €ìž¥. ê¸°ë³¸ê°’ì´ ì—†ìœ¼ë©´ | | | | **NULL** , ê¸°ë³¸ê°’ì´ **NULL** ì´ë©´ 'NULL'로 표현ë¨. | | | | ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ 타입ì´ë©´ 'volume id | page id | slot id ', ì»¬ë ‰ì…˜ 타입ì´ë©´ | | | | ' {element 1, element 2, ...}'로 표현ë¨. | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | is_nullable | VARCHAR (3) | not null ì œì•½ì´ ì„¤ì •ë˜ì–´ 있으면 'NO', ê·¸ë ‡ì§€ 않으면 'YES' | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ | comment | VARCHAR(1024) | ì†ì„± 설명. | +-------------------+---------------+---------------------------------------------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *event* ì˜ ì†ì„±ê³¼ ê° ë°ì´í„° íƒ€ìž…ì„ ê²€ìƒ‰í•œë‹¤. .. code-block:: sql SELECT attr_name, data_type, domain_class_name FROM db_attribute WHERE class_name = 'event' ORDER BY def_order; :: attr_name data_type domain_class_name ================================================================== 'code' 'INTEGER' NULL 'sports' 'STRING' NULL 'name' 'STRING' NULL 'gender' 'CHAR' NULL 'players' 'INTEGER' NULL ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *female_event* 와 ê·¸ ìƒìœ„ í´ëž˜ìŠ¤ì˜ ì†ì„±ì„ 검색한다. .. code-block:: sql SELECT attr_name, from_class_name FROM db_attribute WHERE class_name = 'female_event' ORDER BY def_order; :: attr_name from_class_name ============================================ 'code' 'event' 'sports' 'event' 'name' 'event' 'gender' 'event' 'players' 'event' ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì†Œìœ í•˜ê³ ìžˆëŠ” í´ëž˜ìФ 중ì—서 ì†ì„±ëª…ì´ *name* ê³¼ ìœ ì‚¬í•œ í´ëž˜ìŠ¤ë¥¼ 검색한다. .. code-block:: sql /* CURRENT_USER: PUBLIC */ SELECT class_name, attr_name FROM db_attribute WHERE owner_name = CURRENT_USER AND attr_name like '%name%' ORDER BY class_name; :: class_name attr_name ============================================ 'athlete' 'name' 'code' 'f_name' 'code' 's_name' 'event' 'name' 'female_event' 'name' 'nation' 'name' 'stadium' 'name' .. _db-attr-setdomain-elm: DB_ATTR_SETDOMAIN_ELM --------------------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì˜ ì†ì„± 중ì—서 ê·¸ ë°ì´í„° íƒ€ìž…ì´ ì»¬ë ‰ì…˜ 타입(SET, MULTISET, SEQUENCE)ì¸ ê²½ìš°, ê·¸ ì»¬ë ‰ì…˜ì˜ ì›ì†Œì— 대한 ë°ì´í„° íƒ€ìž…ì„ ë³´ì—¬ì¤€ë‹¤. +-------------------+---------------+-------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===============+===============================================================================+ | attr_name | VARCHAR(255) | ì†ì„±ëª… | +-------------------+---------------+-------------------------------------------------------------------------------+ | class_name | VARCHAR (255) | ì†ì„±ì´ ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+-------------------------------------------------------------------------------+ | owner_name | VARCHAR (255) | ì†ì„±ì´ ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+-------------------------------------------------------------------------------+ | attr_type | VARCHAR (8) | ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì´ë©´ 'INSTANCE', í´ëž˜ìФ ì†ì„±ì´ë©´ 'CLASS', ê³µìœ ì†ì„±ì´ë©´ 'SHARED' | +-------------------+---------------+-------------------------------------------------------------------------------+ | data_type | VARCHAR (9) | ì›ì†Œì˜ ë°ì´í„° 타입 | +-------------------+---------------+-------------------------------------------------------------------------------+ | Prec | INTEGER | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ ì „ì²´ ìžë¦¿ìˆ˜ | +-------------------+---------------+-------------------------------------------------------------------------------+ | scale | INTEGER | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì— ëŒ€í•œ 소수ì ì´í•˜ì˜ ìžë¦¿ìˆ˜ | +-------------------+---------------+-------------------------------------------------------------------------------+ | code_set | INTEGER | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ë¬¸ìž íƒ€ìž…ì¸ ê²½ìš° ê·¸ 문ìžì§‘í•© | +-------------------+---------------+-------------------------------------------------------------------------------+ | domain_class_name | VARCHAR (255) | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ê·¸ ë„ë©”ì¸ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+-------------------------------------------------------------------------------+ | domain_owner_name | VARCHAR (255) | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ê·¸ ë„ë©”ì¸ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+-------------------------------------------------------------------------------+ 예를 들어 í´ëž˜ìФ Dì˜ ì†ì„± set_attr ì´ SET(A, B, C) 타입ì´ë©´ ë‹¤ìŒ ì„¸ ê°œì˜ ë ˆì½”ë“œë“¤ì´ ì¡´ìž¬í•˜ê²Œ ëœë‹¤. +---------------+----------------+---------------+---------------+----------+-----------+--------------+-----------------------+ | Attr_name | Class_name | Attr_type | Data_type | Prec | Scale | Code_set | Domain_class_name | +===============+================+===============+===============+==========+===========+==============+=======================+ | 'set_attr' | 'D' | 'INSTANCE' | 'SET' | 0 | 0 | 0 | 'A' | +---------------+----------------+---------------+---------------+----------+-----------+--------------+-----------------------+ | 'set_attr' | 'D' | 'INSTANCE' | 'SET' | 0 | 0 | 0 | 'B' | +---------------+----------------+---------------+---------------+----------+-----------+--------------+-----------------------+ | 'set_attr' | 'D' | 'INSTANCE' | 'SET' | 0 | 0 | 0 | 'C' | +---------------+----------------+---------------+---------------+----------+-----------+--------------+-----------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *city* ì˜ ì»¬ë ‰ì…˜ íƒ€ìž…ì˜ ê° ì›ì†Œì˜ ì†ì„±ê³¼ ë°ì´í„° íƒ€ìž…ì„ ê²€ìƒ‰í•œë‹¤. (:doc:`/sql/function/containment_op` ì— ì •ì˜í•œ *city* í…Œì´ë¸”ì„ ìƒì„±) .. code-block:: sql SELECT attr_name, attr_type, data_type, domain_class_name FROM db_attr_setdomain_elm WHERE class_name = 'city'; :: attr_name attr_type data_type domain_class_name ============================================================================== 'sports' 'INSTANCE' 'STRING' NULL .. _db-charset: DB_CHARSET ---------- 문ìžì…‹ì— 대한 ì •ë³´ì´ë‹¤. =================== ======================== ======================== ì†ì„±ëª… ë°ì´í„° 타입 설명 =================== ======================== ======================== charset_id INTEGER 문ìžì…‹ ì‹ë³„ìž charset_name CHARACTER VARYING(32) 문ìžì…‹ ì´ë¦„ default_collation CHARACTER VARYING(32) 기본 ì½œë ˆì´ì…˜ ì´ë¦„ char_size INTEGER 한 문ìžì˜ ë°”ì´íЏ í¬ê¸° =================== ======================== ======================== .. _db-collation: DB_COLLATION ------------ ì½œë ˆì´ì…˜ì— 대한 ì •ë³´ì´ë‹¤. +----------------+--------------+-------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +================+==============+===============================================================================+ | coll_id | INTEGER | ì½œë ˆì´ì…˜ ì‹ë³„ìž | +----------------+--------------+-------------------------------------------------------------------------------+ | coll_name | VARCHAR(255) | ì½œë ˆì´ì…˜ ì´ë¦„ | +----------------+--------------+-------------------------------------------------------------------------------+ | charset_name | VARCHAR(255) | 문ìžì…‹ ì´ë¦„ | +----------------+--------------+-------------------------------------------------------------------------------+ | is_builtin | VARCHAR(3) | 설치 시 ì œí’ˆ ë‚´ í¬í•¨ 여부(Yes, No) | +----------------+--------------+-------------------------------------------------------------------------------+ | has_expansions | VARCHAR(3) | 확장 í¬í•¨ 여부(Yes, No) | +----------------+--------------+-------------------------------------------------------------------------------+ | contractions | INTEGER | 축약 í¬í•¨ 여부 | +----------------+--------------+-------------------------------------------------------------------------------+ | uca_strength | VARCHAR(255) | 가중치 세기(weight strength) | | | | (Not applicable, Primary, Secondary, Tertiary, Quaternary, Identity, Unknown) | +----------------+--------------+-------------------------------------------------------------------------------+ .. _db-method: DB_METHOD --------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ê·¸ 메서드 ì •ë³´ë¥¼ 보여준다. +-----------------+---------------+-------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=================+===============+=====================================================================================+ | meth_name | VARCHAR (255) | 메서드명 | +-----------------+---------------+-------------------------------------------------------------------------------------+ | class_name | VARCHAR (255) | 메서드가 ì†í•œ í´ëž˜ìŠ¤ëª… | +-----------------+---------------+-------------------------------------------------------------------------------------+ | owner_name | VARCHAR (255) | 메서드가 ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-----------------+---------------+-------------------------------------------------------------------------------------+ | meth_type | VARCHAR (8) | ì¸ìŠ¤í„´ìŠ¤ 메서드ì´ë©´ 'INSTANCE', í´ëž˜ìФ 메서드ì´ë©´ 'CLASS' | +-----------------+---------------+-------------------------------------------------------------------------------------+ | from_class_name | VARCHAR (255) | ìƒì†ë°›ì€ 메서드ì´ë©´ ê·¸ 메서드가 ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ëª…ì´ ì„¤ì •ë˜ë©° ê·¸ë ‡ì§€ | | | | 않으면 **NULL** | +-----------------+---------------+-------------------------------------------------------------------------------------+ | from_owner_name | VARCHAR (255) | ìƒì†ë°›ì€ 메서드ì´ë©´ ê·¸ 메서드가 ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìФ ì†Œìœ ìžëª…ì´ ì„¤ì •ë˜ë©° | | | | ê·¸ë ‡ì§€ 않으면 **NULL** | +-----------------+---------------+-------------------------------------------------------------------------------------+ | from_meth_name | VARCHAR (255) | ìƒì†ë°›ì€ 메서드ì´ë©°, ì´ë¦„ ì¶©ëŒì´ ë°œìƒí•˜ì—¬ ì´ë¥¼ 해결하기 위해 ê·¸ ë©”ì„œë“œëª…ì´ ë°”ë€ | | | | 경우, ìƒìœ„ í´ëž˜ìŠ¤ì— ì •ì˜ëœ ì›ëž˜ ì´ë¦„ì´ ì„¤ì •ë¨. ê·¸ ì´ì™¸ì—는 ëª¨ë‘ **NULL** | +-----------------+---------------+-------------------------------------------------------------------------------------+ | func_name | VARCHAR (255) | ë©”ì„œë“œì— ëŒ€í•œ C 함수명 | +-----------------+---------------+-------------------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *db_user* ì˜ ë©”ì„œë“œë¥¼ 검색한다. .. code-block:: sql SELECT meth_name, meth_type, func_name FROM db_method WHERE class_name = 'db_user' ORDER BY meth_type, meth_name; :: meth_name meth_type func_name ================================================================================== 'add_user' 'CLASS' 'au_add_user_method' 'drop_user' 'CLASS' 'au_drop_user_method' 'find_user' 'CLASS' 'au_find_user_method' 'login' 'CLASS' 'au_login_method' 'add_member' 'INSTANCE' 'au_add_member_method' 'drop_member' 'INSTANCE' 'au_drop_member_method' 'print_authorizations' 'INSTANCE' 'au_describe_user_method' 'set_password' 'INSTANCE' 'au_set_password_method' 'set_password_encoded' 'INSTANCE' 'au_set_password_encoded_method' 'set_password_encoded_sha1' 'INSTANCE' 'au_set_password_encoded_sha1_method' .. _db-meth-arg: DB_METH_ARG ----------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì˜ ë©”ì„œë“œì— ëŒ€í•´ ê·¸ ìž…ì¶œë ¥ ì¸ìž ì •ë³´ë¥¼ 보여준다. +-------------------+---------------+--------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===============+==========================================================================+ | meth_name | VARCHAR (255) | 메서드명 | +-------------------+---------------+--------------------------------------------------------------------------+ | class_name | VARCHAR (255) | 메서드가 ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+--------------------------------------------------------------------------+ | owner_name | VARCHAR (255) | 메서드가 ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+--------------------------------------------------------------------------+ | meth_type | VARCHAR (8) | ì¸ìŠ¤í„´ìŠ¤ 메서드ì´ë©´ 'INSTANCE', í´ëž˜ìФ 메서드ì´ë©´ 'CLASS' | +-------------------+---------------+--------------------------------------------------------------------------+ | index_of | INTEGER | ì¸ìžê°€ 함수 ì •ì˜ì— ë‚˜ì—´ëœ ìˆœì„œ. 리턴 ê°’ì´ë©´ 0, ìž…ë ¥ì¸ìžì´ë©´ 1부터 시작함 | +-------------------+---------------+--------------------------------------------------------------------------+ | data_type | VARCHAR (9) | ì¸ìžì˜ ë°ì´í„° 타입 | +-------------------+---------------+--------------------------------------------------------------------------+ | prec | INTEGER | ì¸ìžì˜ ì „ì²´ ìžë¦¿ìˆ˜ | +-------------------+---------------+--------------------------------------------------------------------------+ | scale | INTEGER | ì¸ìžì˜ 소수ì ì´í•˜ì˜ ìžë¦¿ìˆ˜ | +-------------------+---------------+--------------------------------------------------------------------------+ | code_set | INTEGER | ì¸ìžì˜ ë°ì´í„° íƒ€ìž…ì´ ë¬¸ìž íƒ€ìž…ì¸ ê²½ìš° ê·¸ 문ìžì§‘í•© | +-------------------+---------------+--------------------------------------------------------------------------+ | domain_class_name | VARCHAR (255) | ì¸ìžì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ë„ë©”ì¸ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+--------------------------------------------------------------------------+ | domain_owner_name | VARCHAR (255) | ì¸ìžì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ë„ë©”ì¸ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+--------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìФ *db_user* ì˜ ë©”ì„œë“œ ìž…ë ¥ ì¸ìžë¥¼ 검색한다. .. code-block:: sql SELECT meth_name, data_type, prec FROM db_meth_arg WHERE class_name = 'db_user'; :: meth_name data_type prec ========================================================= 'append_data' 'STRING' 1073741823 .. _db-meth-arg-setdomain-elm: DB_METH_ARG_SETDOMAIN_ELM ------------------------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì˜ ë©”ì„œë“œì— ëŒ€í•´ ê·¸ ìž…/ì¶œë ¥ ì¸ìžì˜ ë°ì´í„° íƒ€ìž…ì´ ì§‘í•© 타입ì´ë©´ ê·¸ ì§‘í•©ì˜ ì›ì†Œì— 대한 ë°ì´í„° íƒ€ìž…ì„ ë³´ì—¬ì¤€ë‹¤. +-------------------+--------------+--------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+==============+==========================================================================+ | meth_name | VARCHAR(255) | 메서드명 | +-------------------+--------------+--------------------------------------------------------------------------+ | class_name | VARCHAR(255) | 메서드가 ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+--------------+--------------------------------------------------------------------------+ | owner_name | VARCHAR(255) | 메서드가 ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+--------------+--------------------------------------------------------------------------+ | meth_type | VARCHAR (8) | ì¸ìŠ¤í„´ìŠ¤ 메서드ì´ë©´ 'INSTANCE', í´ëž˜ìФ 메서드ì´ë©´ 'CLASS' | +-------------------+--------------+--------------------------------------------------------------------------+ | index_of | INTEGER | ì¸ìžê°€ 함수 ì •ì˜ì— ë‚˜ì—´ëœ ìˆœì„œ. 리턴 ê°’ì´ë©´ 0, ìž…ë ¥ì¸ìžì´ë©´ 1부터 시작함 | +-------------------+--------------+--------------------------------------------------------------------------+ | data_type | VARCHAR(9) | ì›ì†Œì˜ ë°ì´í„° 타입 | +-------------------+--------------+--------------------------------------------------------------------------+ | prec | INTEGER | ì›ì†Œì˜ ì „ì²´ ìžë¦¿ìˆ˜ | +-------------------+--------------+--------------------------------------------------------------------------+ | scale | INTEGER | ì›ì†Œì˜ 소수ì ì´í•˜ì˜ ìžë¦¿ìˆ˜ | +-------------------+--------------+--------------------------------------------------------------------------+ | code_set | INTEGER | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ë¬¸ìž íƒ€ìž…ì¸ ê²½ìš° ê·¸ 문ìžì§‘í•© | +-------------------+--------------+--------------------------------------------------------------------------+ | domain_class_name | VARCHAR(255) | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ë„ë©”ì¸ í´ëž˜ìŠ¤ëª… | +-------------------+--------------+--------------------------------------------------------------------------+ | domain_owner_name | VARCHAR(255) | ì›ì†Œì˜ ë°ì´í„° íƒ€ìž…ì´ ê°ì²´ íƒ€ìž…ì¸ ê²½ìš° ë„ë©”ì¸ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+--------------+--------------------------------------------------------------------------+ .. _db-meth-file: DB_METH_FILE ------------ ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ê·¸ 메서드가 ì •ì˜ëœ íŒŒì¼ ì •ë³´ë¥¼ 보여준다. +-----------------+--------------+----------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=================+==============+========================================================================================+ | class_name | VARCHAR(255) | 메서드 파ì¼ì´ ì†í•œ í´ëž˜ìŠ¤ëª… | +-----------------+--------------+----------------------------------------------------------------------------------------+ | owner_name | VARCHAR(255) | 메서드 파ì¼ì´ ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-----------------+--------------+----------------------------------------------------------------------------------------+ | path_name | VARCHAR(255) | C 함수가 ì •ì˜ëœ 파ì¼ì˜ 경로 | +-----------------+--------------+----------------------------------------------------------------------------------------+ | from_class_name | VARCHAR(255) | ìƒì†ë°›ì€ 메서드ì´ë©´ ê·¸ 메서드 파ì¼ì´ ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìŠ¤ëª…ì´ ì„¤ì •. | | | | ê·¸ë ‡ì§€ 않으면 **NULL** | +-----------------+--------------+----------------------------------------------------------------------------------------+ | from_owner_name | VARCHAR(255) | ìƒì†ë°›ì€ 메서드ì´ë©´ ê·¸ 메서드 파ì¼ì´ ì •ì˜ë˜ì–´ 있는 ìƒìœ„ í´ëž˜ìФ ì†Œìœ ìžëª…ì´ ì„¤ì •. | | | | ê·¸ë ‡ì§€ 않으면 **NULL** | +-----------------+--------------+----------------------------------------------------------------------------------------+ .. _db-index: DB_INDEX -------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ìƒì„±ëœ ì¸ë±ìŠ¤ì— ëŒ€í•œ ì •ë³´ë¥¼ 보여준다. +-------------------+--------------+---------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+==============+=========================================================+ | index_name | VARCHAR(255) | ì¸ë±ìŠ¤ëª… | +-------------------+--------------+---------------------------------------------------------+ | is_unique | VARCHAR(3) | ê³ ìœ ì¸ë±ìФì´ë©´ 'YES', ê·¸ë ‡ì§€ 않으면 'NO' | +-------------------+--------------+---------------------------------------------------------+ | is_reverse | VARCHAR(3) | ì— ì¸ë±ìФ(reverse indexd)ì´ë©´ 'YES', ê·¸ë ‡ì§€ 않으면 'NO' | +-------------------+--------------+---------------------------------------------------------+ | class_name | VARCHAR(255) | ì¸ë±ìŠ¤ê°€ ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+--------------+---------------------------------------------------------+ | owner_name | VARCHAR(255) | ì¸ë±ìŠ¤ê°€ ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+--------------+---------------------------------------------------------+ | key_count | INTEGER | 키를 구성하는 ì†ì„±ì˜ 개수 | +-------------------+--------------+---------------------------------------------------------+ | is_primary_key | VARCHAR(3) | 기본 키ì´ë©´ 'YES', ê·¸ë ‡ì§€ 않으면 'NO' | +-------------------+--------------+---------------------------------------------------------+ | is_foreign_key | VARCHAR(3) | 외래 키ì´ë©´ 'YES', ê·¸ë ‡ì§€ 않으면 'NO' | +-------------------+--------------+---------------------------------------------------------+ | filter_expression | VARCHAR(255) | í•„í„°ë§ëœ ì¸ë±ìŠ¤ì˜ ì¡°ê±´ | +-------------------+--------------+---------------------------------------------------------+ | have_function | VARCHAR(3) | 함수 기반 ì¸ë±ìФì´ë©´ 'YES', ê·¸ë ‡ì§€ 않으면 'NO' | +-------------------+--------------+---------------------------------------------------------+ | comment | VARCHAR(1024 | ì¸ë±ìФ 설명 | +-------------------+--------------+---------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìŠ¤ì˜ ì¸ë±ìФ ì •ë³´ë¥¼ 검색한다. .. code-block:: sql SELECT class_name, index_name, is_unique FROM db_index ORDER BY owner_name, class_name; :: class_name index_name is_unique ======================================================================================== 'db_ha_apply_info' 'u_db_ha_apply_info_db_name_copied_log_path' 'YES' 'db_serial' 'pk_db_serial_unique_name' 'YES' 'db_serial' 'u_db_serial_name_owner' 'YES' 'db_user' 'u_db_user_name' 'YES' 'athlete' 'pk_athlete_code' 'YES' 'event' 'pk_event_code' 'YES' 'female_event' 'pk_event_code' 'YES' 'game' 'pk_game_host_year_event_code_athlete_code' 'YES' 'game' 'fk_game_event_code' 'NO' 'game' 'fk_game_athlete_code' 'NO' 'history' 'pk_history_event_code_athlete' 'YES' 'nation' 'pk_nation_code' 'YES' 'olympic' 'pk_olympic_host_year' 'YES' 'participant' 'pk_participant_host_year_nation_code' 'YES' 'participant' 'fk_participant_host_year' 'NO' 'participant' 'fk_participant_nation_code' 'NO' 'record' 'pk_record_host_year_event_code_athlete_code_medal' 'YES' 'stadium' 'pk_stadium_code' 'YES' .. _db-index-key: DB_INDEX_KEY ------------ ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ì— ëŒ€í•´ ìƒì„±ëœ ì¸ë±ìŠ¤ì— ëŒ€í•œ 키 ì •ë³´ë¥¼ 보여준다. +-------------------+---------------+-----------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+===============+===========================================================+ | index_name | VARCHAR(255) | ì¸ë±ìŠ¤ëª… | +-------------------+---------------+-----------------------------------------------------------+ | class_name | VARCHAR(255) | ì¸ë±ìŠ¤ê°€ ì†í•œ í´ëž˜ìŠ¤ëª… | +-------------------+---------------+-----------------------------------------------------------+ | owner_name | VARCHAR(255) | ì¸ë±ìŠ¤ê°€ ì†í•œ í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+---------------+-----------------------------------------------------------+ | key_attr_name | VARCHAR(255) | 키를 구성하는 ì†ì„±ì˜ ì´ë¦„ | +-------------------+---------------+-----------------------------------------------------------+ | key_order | INTEGER | 키ì—서 ì†ì„±ì´ 위치한 순서. 0부터 시작함 | +-------------------+---------------+-----------------------------------------------------------+ | asc_desc | VARCHAR(4) | ì†ì„± ê°’ì˜ ìˆœì„œê°€ 내림차순ì´ë©´ 'DESC', ê·¸ë ‡ì§€ 않으면 'ASC' | +-------------------+---------------+-----------------------------------------------------------+ | key_prefix_length | INTEGER | 키로 ì‚¬ìš©í• prefixì˜ ê¸¸ì´ | +-------------------+---------------+-----------------------------------------------------------+ | func | VARCHAR(1023) | 함수 기반 ì¸ë±ìŠ¤ì˜ í•¨ìˆ˜ í‘œí˜„ì‹ | +-------------------+---------------+-----------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 í´ëž˜ìŠ¤ì˜ ì¸ë±ìФ 키 ì •ë³´ë¥¼ 검색한다. .. code-block:: sql SELECT class_name, key_attr_name, index_name FROM db_index_key ORDER BY owner_name, class_name, key_order LIMIT 20; :: class_name key_attr_name index_name ================================================================== 'db_ha_apply_info' 'db_name' 'u_db_ha_apply_info_db_name_copied_log_path' 'db_ha_apply_info' 'copied_log_path' 'u_db_ha_apply_info_db_name_copied_log_path' 'db_serial' 'unique_name' 'pk_db_serial_unique_name' 'db_serial' 'name' 'u_db_serial_name_owner' 'db_serial' 'owner' 'u_db_serial_name_owner' 'db_user' 'name' 'u_db_user_name' 'athlete' 'code' 'pk_athlete_code' 'event' 'code' 'pk_event_code' 'female_event' 'code' 'pk_event_code' 'game' 'host_year' 'pk_game_host_year_event_code_athlete_code' 'game' 'event_code' 'fk_game_event_code' 'game' 'athlete_code' 'fk_game_athlete_code' 'game' 'event_code' 'pk_game_host_year_event_code_athlete_code' 'game' 'athlete_code' 'pk_game_host_year_event_code_athlete_code' 'history' 'event_code' 'pk_history_event_code_athlete' 'history' 'athlete' 'pk_history_event_code_athlete' 'nation' 'code' 'pk_nation_code' 'olympic' 'host_year' 'pk_olympic_host_year' 'participant' 'host_year' 'pk_participant_host_year_nation_code' 'participant' 'host_year' 'fk_participant_host_year' .. _db-auth: DB_AUTH ------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ê¶Œí•œì„ ê°€ì§€ëŠ” í´ëž˜ìŠ¤ì— ëŒ€í•œ 권한 ì •ë³´ë¥¼ 보여준다. +--------------+--------------+------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +==============+==============+====================================================================================+ | grantor_name | VARCHAR(255) | ê¶Œí•œì„ ë¶€ì—¬í•œ 사용ìžëª… | +--------------+--------------+------------------------------------------------------------------------------------+ | grantee_name | VARCHAR(255) | ê¶Œí•œì„ ë°›ì€ ì‚¬ìš©ìžëª… | +--------------+--------------+------------------------------------------------------------------------------------+ | class_name | VARCHAR(255) | 권한부여 대ìƒì¸ í´ëž˜ìŠ¤ëª… | +--------------+--------------+------------------------------------------------------------------------------------+ | owner_name | VARCHAR(255) | 권한부여 대ìƒì¸ í´ëž˜ìФ ì†Œìœ ìžëª… | +--------------+--------------+------------------------------------------------------------------------------------+ | auth_type | VARCHAR(7) | ë¶€ì—¬ëœ ê¶Œí•œ 타입명 | +--------------+--------------+------------------------------------------------------------------------------------+ | is_grantable | VARCHAR(3) | 권한 ë°›ì€ í´ëž˜ìŠ¤ì— ëŒ€í•´ 다른 사용ìžì—게 ê¶Œí•œì„ ë¶€ì—¬í• ìˆ˜ 있으면 'YES', 아니면 'NO' | +--------------+--------------+------------------------------------------------------------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 ì´ë¦„ì´ *db_a* 로 시작ë˜ëŠ” í´ëž˜ìŠ¤ì˜ ê¶Œí•œ ì •ë³´ë¥¼ 검색한다. .. code-block:: sql SELECT class_name, auth_type, grantor_name FROM db_auth WHERE class_name like 'db_a%' ORDER BY owner_name, class_name; :: class_name auth_type grantor_name =============================================================== 'db_attr_setdomain_elm' 'SELECT' 'DBA' 'db_attribute' 'SELECT' 'DBA' 'db_auth' 'SELECT' 'DBA' 'db_authorization' 'SELECT' 'DBA' 'db_authorization' 'EXECUTE' 'DBA' 'db_authorizations' 'SELECT' 'DBA' 'db_authorizations' 'EXECUTE' 'DBA' .. _db-trig: DB_TRIG ------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ í´ëž˜ìŠ¤ë‚˜ ê·¸ ì†Œì† ì†ì„±ì„ 대ìƒ(target)으로 하는 트리거 ì •ë³´ë¥¼ 보여준다. +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===================+==============+=====================================================================================================+ | trigger_name | VARCHAR(255) | 트리거명 | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | target_class_name | VARCHAR(255) | 대ìƒì´ ë˜ëŠ” í´ëž˜ìŠ¤ëª… | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | target_owner_name | VARCHAR(255) | 대ìƒì´ ë˜ëŠ” í´ëž˜ìФ ì†Œìœ ìžëª… | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | target_attr_name | VARCHAR(255) | 대ìƒì´ ë˜ëŠ” ì†ì„±ìœ¼ë¡œì„œ íŠ¸ë¦¬ê±°ì— ëª…ì‹œë˜ì§€ 않으면 **NULL** | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | target_attr_type | VARCHAR(8) | 대ìƒì´ ì†ì„±ìœ¼ë¡œ 명시ë 경우, ì¸ìŠ¤í„´ìŠ¤ ì†ì„±ì´ë©´ 'INSTANCE', í´ëž˜ìФ ì†ì„±ì´ë©´ 'CLASS'. | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | action_type | INTEGER | INSERT, UPDATE, DELETE, CALL 중 하나ì´ë©´ 1, REJECTì´ë©´ 2, INVALIDATE_TRANSACTIONì´ë©´ 3, PRINTì´ë©´ 4 | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | action_time | INTEGER | BEFORE는 1, AFTER는 2, DEFERRED는 3으로 ì„¤ì • | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ | comment | VARCHAR(1024)| 트리거 설명 | +-------------------+--------------+-----------------------------------------------------------------------------------------------------+ .. _db-partition: DB_PARTITION ------------ ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ ë¶„í• í´ëž˜ìŠ¤ì— ëŒ€í•œ ì •ë³´ë¥¼ 보여준다. ==================== ============= ================================================================================= ì†ì„±ëª… ë°ì´í„° 타입 설명 ==================== ============= ================================================================================= class_name VARCHAR(255) í´ëž˜ìŠ¤ëª… owner_name VARCHAR(255) í´ëž˜ìФ ì†Œìœ ìžëª… partition_name VARCHAR(255) 파티션명 partition_class_name VARCHAR(255) 파티션 í´ëž˜ìФ 명 partition_type VARCHAR(32) 파티션 타입 (HASH, RANGE, LIST) partition_expr VARCHAR(255) 파티션 í‘œí˜„ì‹ partition_values SEQUENCE OF | 파티션 ìœ í˜•ì´ RANGEì¸ ê²½ìš° MIN ë° MAX ê°’ì´ê³ , MIN ë° MAXê°€ ë¬´í•œì¸ ê²½ìš° **NULL** | 파티션 ìœ í˜•ì´ LISTì¸ ê²½ìš° ê°’ ëª©ë¡ comment VARCHAR(1024) 파티션 설명 ==================== ============= ================================================================================= ë‹¤ìŒ ì˜ˆì œì—서는 :ref:`participant2 <range-participant2-table>` í´ëž˜ìŠ¤ì˜ í˜„ìž¬ êµ¬ì„±ëœ ë¶„í• ì •ë³´ë¥¼ 조회한다. .. code-block:: sql SELECT * FROM db_partition WHERE class_name = 'participant2'; :: class_name owner_name partition_name partition_class_name partition_type partition_expr partition_values comment ========================================================================================================================================= 'participant2' 'PUBLIC' 'before_2000' 'participant2__p__before_2000' 'RANGE' '[host_year]' {NULL, 2000} NULL 'participant2' 'PUBLIC' 'before_2008' 'participant2__p__before_2008' 'RANGE' '[host_year]' {2000, 2008} NULL .. _db-stored-procedure: DB_STORED_PROCEDURE ------------------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ Java ì €ìž¥ í•¨ìˆ˜ì— ëŒ€í•œ ì •ë³´ë¥¼ 보여준다. +-------------+---------------+---------------------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +=============+===============+=================================+ | sp_name | VARCHAR(255) | SP ì´ë¦„ | +-------------+---------------+---------------------------------+ | sp_type | VARCHAR(16) | SP 종류 (function or procedure) | +-------------+---------------+---------------------------------+ | return_type | VARCHAR(16) | 리턴 ê°’ 타입 | +-------------+---------------+---------------------------------+ | arg_count | INTEGER | 매개변수 개수 | +-------------+---------------+---------------------------------+ | lang | VARCHAR(16) | 구현 언어(현재로서는 JAVA) | +-------------+---------------+---------------------------------+ | target | VARCHAR(4096) | 실행ë Java 메서드 ì´ë¦„ | +-------------+---------------+---------------------------------+ | owner | VARCHAR(256) | ì†Œìœ ìž | +-------------+---------------+---------------------------------+ | comment | VARCHAR(1024) | SP 설명 | +-------------+---------------+---------------------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 현재 사용ìžê°€ ì†Œìœ í•˜ê³ ìžˆëŠ” Java ì €ìž¥ 함수를 조회한다. .. code-block:: sql /* CURRENT_USER: PUBLIC */ SELECT sp_name, target from db_stored_procedure WHERE sp_type = 'FUNCTION' AND owner = CURRENT_USER; :: sp_name target ============================================ 'hello' 'SpCubrid.HelloCubrid() return java.lang.String' 'sp_int' 'SpCubrid.SpInt(int) return int' .. _db-stored-procedure-args: DB_STORED_PROCEDURE_ARGS ------------------------ ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ Java ì €ìž¥ í•¨ìˆ˜ì˜ ì¸ìžì— 대한 ì •ë³´ë¥¼ 보여준다. +-----------+--------------+-----------------------+ | ì†ì„±ëª… | ë°ì´í„° 타입 | 설명 | +===========+==============+=======================+ | sp_name | VARCHAR(255) | SP ì´ë¦„ | +-----------+--------------+-----------------------+ | index_of | INTEGER | 매개변수 순서 | +-----------+--------------+-----------------------+ | arg_name | VARCHAR(256) | 매개변수 ì´ë¦„ | +-----------+--------------+-----------------------+ | data_type | VARCHAR(16) | 매개변수 ë°ì´í„° 타입 | +-----------+--------------+-----------------------+ | mode | VARCHAR(6) | 모드 (IN, OUT, INOUT) | +-----------+--------------+-----------------------+ | comment | VARCHAR(1024)| 매개변수 설명 | +-----------+--------------+-----------------------+ ë‹¤ìŒ ì˜ˆì œì—서는 'phone_info' Java ì €ìž¥ í”„ë¡œì‹œì €ì˜ ì¸ìˆ˜ ì •ë³´ë¥¼ 순서대로 조회한다. .. code-block:: sql SELECT index_of, arg_name, data_type, mode FROM db_stored_procedure_args WHERE sp_name = 'phone_info' ORDER BY index_of; :: index_of arg_name data_type mode =============================================================== 0 'name' 'STRING' 'IN' 1 'phoneno' 'STRING' 'IN' .. _db-server: DB_SERVER --------- ============== ============= =============================== Attribute Name Data Type Description ============== ============= =============================== link_name VARCHAR(255) ì—°ê²° ì´ë¦„ host VARCHAR(255) ì„œë²„ì˜ í˜¸ìŠ¤íŠ¸ ì´ë¦„ port INTEGER ì„œë²„ì˜ ì—°ê²° í¬íЏ db_name VARCHAR(255) ì„œë²„ì˜ ë°ì´í„°ë² ì´ìФ ì´ë¦„ user_name VARCHAR(255) ì„œë²„ì˜ ë°ì´í„°ë² ì´ìФ ì‚¬ìš©ìž ì´ë¦„ properties VARCHAR(2048) ì—°ê²° 시 사용ë˜ëŠ” 프로í¼í‹° ì •ë³´ owner VARCHAR(256) ì—°ê²° ì •ë³´ì˜ ì†Œìœ ìž ì´ë¦„ comment VARCHAR(1024) 서버 설명 ============== ============= =============================== .. _db-synonym: DB_SYNONYM ---------- ë°ì´í„°ë² ì´ìФ ë‚´ì—서 현재 사용ìžê°€ ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§„ ë™ì˜ì–´ì— 대한 ëŒ€ìƒ ê°ì²´ ì •ë³´ë¥¼ 나타낸다. ================== ============= ================================================================ Attribute Name Data Type Description ================== ============= ================================================================ synonym_name VARCHAR(255) ë™ì˜ì–´ ì´ë¦„ synonym_owner_name VARCHAR(255) ë™ì˜ì–´ì˜ ì†Œìœ ìž ì´ë¦„ is_public_synonym VARCHAR(3) 공용(Public) ë™ì˜ì–´ì´ë©´ "YES"ì´ê³ , ì „ìš©(Private) ë™ì˜ì–´ì´ë©´ "NO" target_name VARCHAR(255) ëŒ€ìƒ ê°ì²´ ì´ë¦„ target_owner_name VARCHAR(255) ëŒ€ìƒ ê°ì²´ì˜ ì†Œìœ ìž ì´ë¦„ comment VARCHAR(2048) ë™ì˜ì–´ 설명 ================== ============= ================================================================ .. warning:: ì•„ì§ì€ 공용(Public) ë™ì˜ì–´ë¥¼ ì§€ì›í•˜ì§€ 않는다. 카탈로그 í´ëž˜ìФ/ê°€ìƒ í´ëž˜ìФ 사용 권한 ===================================== 카탈로그 í´ëž˜ìŠ¤ë“¤ì€ **dba** ì†Œìœ ë¡œ ìƒì„±ëœë‹¤. 그러나, **dba** ê°€ **SELECT** ì—°ì‚°ë§Œ ìˆ˜í–‰í• ìˆ˜ ìžˆì„ ë¿ì´ë©°, **UPDATE** / **DELETE** ë“±ì˜ ì—°ì‚°ì„ ìˆ˜í–‰í• ê²½ìš°ì—는 authorization failure ì—러가 ë°œìƒí•œë‹¤. ì¼ë°˜ 사용ìžëŠ” 시스템 카탈로그 í´ëž˜ìŠ¤ì— ëŒ€í•´ì„œ 질ì˜ë¥¼ ìˆ˜í–‰í• ìˆ˜ 없다. 카탈로그 ê°€ìƒ í´ëž˜ìŠ¤ëŠ” **dba** ì†Œìœ ë¡œ ìƒì„±ë˜ì§€ë§Œ ëª¨ë“ ì‚¬ìš©ìžê°€ 카탈로그 ê°€ìƒ í´ëž˜ìŠ¤ì— ëŒ€í•´ **SELECT** ë¬¸ì„ ìˆ˜í–‰í• ìˆ˜ 있다. ë¬¼ë¡ ì¹´íƒˆë¡œê·¸ ê°€ìƒ í´ëž˜ìŠ¤ì— ëŒ€í•œ **UPDATE** / **DELETE** ì—°ì‚°ì€ ìˆ˜í–‰ì´ ë¶ˆê°€ëŠ¥í•˜ë‹¤. 카탈로그 í´ëž˜ìФ/ê°€ìƒ í´ëž˜ìŠ¤ì— ëŒ€í•œ ê°±ì‹ ì€ ì‚¬ìš©ìžê°€ í´ëž˜ìФ/ì†ì„±/ì¸ë±ìФ/사용ìž/ê¶Œí•œì„ ìƒì„±/변경/ì‚ì œí•˜ëŠ” DDL ë¬¸ì„ ìˆ˜í–‰í• ê²½ìš° ì‹œìŠ¤í…œì— ì˜í•´ ìžë™ìœ¼ë¡œ 수행ëœë‹¤. ì¹´íƒˆë¡œê·¸ì— ëŒ€í•œ ì§ˆì˜ ==================== í´ëž˜ìФ, ê°€ìƒ í´ëž˜ìФ, ì†ì„±, 트리거, 메서드, ì¸ë±ìФ ì´ë¦„ 등과 ê°™ì€ ì‹ë³„ìž(identifier)는 ëª¨ë‘ ì†Œë¬¸ìžë¡œ 변경ë˜ì–´ 시스템 ì¹´íƒˆë¡œê·¸ì— ì €ìž¥ëœë‹¤. ë”°ë¼ì„œ 시스템 카탈로그 í´ëž˜ìŠ¤ì— ëŒ€í•´ ëŒ€ìƒ ì‹ë³„ìžë¥¼ ê²€ìƒ‰í•˜ë ¤ë©´ 소문ìžë¥¼ 사용해야 한다. 반면, DB ì‚¬ìš©ìž ì´ë¦„ì€ ëŒ€ë¬¸ìžë¡œ 변경ë˜ì–´ db_user 시스템 카탈로그 í…Œì´ë¸”ì— ì €ìž¥ëœë‹¤. .. code-block:: sql CREATE TABLE Foo(name varchar(255)); SELECT class_name, partitioned FROM db_class WHERE class_name = 'Foo'; :: There are no results. .. code-block:: sql SELECT class_name, partitioned FROM db_class WHERE class_name = 'foo'; :: class_name partitioned ============================ 'foo' 'NO' .. code-block:: sql CREATE USER tester PASSWORD 'testpwd'; SELECT name, password FROM db_user; :: name password ============================================ 'DBA' NULL 'PUBLIC' NULL 'TESTER' db_password