_db_attribute

속성에 대한 정보를 표현하며 class_of, attr_name에 대한 인덱스가 생성되어 있다.

속성명

데이터 타입

설명

class_of

_db_class

속성이 속한 클래스

attr_type

INTEGER

속성이 정의된 타입. 인스턴스 속성이면 0, 클래스 속성이면 1, 공유 속성이면 2

data_type

INTEGER

속성의 데이터 타입. 아래의 'CUBRID가 지원하는 데이터 타입' 표에서 명시하는 value 중 하나.

def_order

INTEGER

속성이 클래스에 정의된 순서로 0부터 시작함. 상속받은 속성이면 그 상위 클래스에서 정의된 순서임. 예를 들어, 클래스 y가 클래스 x로부터 속성 a를 상속받고 a는 x에서 첫 번째로 정의되었을 때 def_order는 0이 됨.

from_class_of

_db_class

상속받은 속성이면 그 속성이 정의되어 있는 상위 클래스가 설정되며, 상속받지 않은 것이면 NULL

from_attr_name

VARCHAR(255)

상속받은 속성이며, 이름 충돌(name conflict)이 발생하여 이를 해결하기 위해 그 속성명이 바뀐 경우, 상위 클래스에 정의된 원래 이름이 설정됨. 그 이외에는 모두 NULL

attr_name

VARCHAR (255)

속성명

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

CUBRID가 지원하는 데이터 타입

의미

1

INTEGER

2

FLOAT

3

DOUBLE

4

STRING

5

OBJECT

6

SET

7

MULTISET

8

SEQUENCE

9

ELO

10

TIME

11

TIMESTAMP

12

DATE

13

MONETARY

18

SHORT

20

OID

22

NUMERIC

23

BIT

24

VARBIT

25

CHAR

26

NCHAR

27

VARNCHAR

31

BIGINT

32

DATETIME

CUBRID가 지원하는 문자 집합

의미

0

US English – ASCII encoding

3

Latin 1 – ISO 8859 encoding

4

KSC 5601 1990 – EUC encoding

예제

다음 예제에서는 사용자 'PUBLIC'이 소유하고 있는 클래스 중에서 사용자 클래스(from_class_of.is_system_class = 0)인 것을 검색한다.

csql> select class_of.class_name, attr_name
csql> from _db_attribute
csql> where class_of.owner.name = 'PUBLIC' and
csql>        from_class_of.is_system_class = 0
csql> order by 1, def_order;
csql> ;xrun
 
class_of.class_name   attr_name
============================================
  'female_event'        'code'
  'female_event'        'sports'
  'female_event'        'name'
  'female_event'        'gender'
  'female_event'        'players'