정의와 특성

정의

여러 개의 데이터 값을 하나의 속성에 저장할 수 있도록 하는 것은 관계형 데이터베이스의 확장 기능이다. 컬렉션의 각 요소는 서로 다른 데이터 타입이 될 수도 있고, 심지어 서로 다른 클래스(단, 가상 클래스 제외) 도메인으로 가질 수도 있다.

CUBRID는 컬렉션 종류로서 다음과 같은 데이터 타입을 제공한다.

위의 구문에서 컬렉션 타입을 나타내는 키워드 뒤에 OF를 붙일 수도 있다. 예를 들면, SET domain 대신 SET OF domain으로 쓸 수도 있다. domain이 하나일 때에는 괄호가 필요하지 않으나, 여러 개(즉, domain_list)일 때에는 반드시 괄호로 묶어야 한다.

집합(SET), 다중집합(MULTISET), 그리고 리스트(LIST), 혹은 순차집합(SEQUENCE)의 값은 중괄호('{', '}') 안에 각 값들을 쉼표(,)로 분리하여 나열한다(예: {value_1, value_2, value_n}). 특별하게 컬렉션의 종류가 지정되지 않고,  {value_list}가 주어지면 이는 다중집합으로 간주된다. 경우에 따라서는 타입 규칙이 적용될 수도 있다. 예를 들어, 순차집합의 속성에 상수 요소를 추가해도 그 속성은 그대로 순차집합 타입이다.

domain_list는 시스템 기본 데이터 타입, 사용자 정의 클래스 등의 리스트가 될 수 있다. 예를 들어, SET (INTEGER, resort)는 정수 혹은 사용자가 정의한 클래스 resort의 행 값의 집합이 도메인으로 지정되는 경우이다. 만약, SET ( )와 같이 domain_list가 없으면 집합의 요소로서 모든 데이터 타입, 클래스가 허용된다는 뜻이다. 도메인 리스트가 두 개 이상인 경우 요소를 조회할 수 있는 환경은 csql 유틸리티와 C-API를 사용하는 것이다. CUBRID 매니저 및 CUBRID 브로커를 통한 인터페이스(JDBC, ODBC, OLEDB, PHP, CCI)에서는 이러한 컬렉션의 요소를 조회할 수 없다.

특성