Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 



가져오기용 파일 작성 방법

cubrid loaddb 유틸리티에서 사용되는 객체 입력 파일을 직접 작성하여 사용하면 데이터베이스에 대량의 데이터를 보다 신속하게 추가할 수 있다. 객체 입력 파일은 간단한 테이블 모양의 형식으로 구성되며 주석, 명령 라인, 데이터 라인으로 이루어진 텍스트 파일이다.

주석

CUBRID에서는 주석은 두 개의 연속된 하이픈(--)을 이용하여 처리한다.

-- This is a comment!

명령 라인

명령 라인은 퍼센트(%) 문자로 시작하며, 명령어로는 클래스를 정의하는 %class 명령어와, 클래스 식별을 위해 사용하는 별칭(alias)이나 식별자(identifier)를 정의하는 %id 명령어가 있다.

클래스에 식별자 부여

%id를 이용하여 참조 관계에 있는 클래스에 식별자를 부여할 수 있다.

구문

%id class_name class_id

class_name:

    identifier

class_id:

    integer

%id 명령어에 의해 명시된 class_name은 해당 데이터베이스에 정의된 클래스 이름이며, class_id는 객체 참조를 위해 부여한 숫자형 식별자를 의미한다.

예제 1

%id employee 2

%id office 22

%id project 23

%id phone 24

클래스 및 속성 명시

%class 명령어를 이용하여 데이터가 로딩될 클래스(테이블) 및 속성(컬럼)을 명시하며, 명시된 속성의 순서에 따라 데이터 라인이 작성되어야 한다.

구문

%class class_name ( attr_name [ { attr_name }_ ]

데이터를 로딩하고자 하는 데이터베이스에는 이미 스키마가 정의되어 있어야 한다.

%class 명령어에 의해 명시된 class_name은 해당 데이터베이스에 정의된 클래스 이름이며, attr_name는 정의된 속성 이름을 의미한다.

예제 2

다음은 employee라는 클래스에 데이터를 입력하기 위하여 %class 명령으로 클래스 및 3개의 속성을 명시한 예제이다. %class 명령 다음에 나오는 데이터 라인에서는 3개의 데이터가 입력되어야 하며, 이는 "참조 관계 설정하기"의 예제 3을 참조한다.

%class employee (name age department)

데이터 라인

데이터 라인은 %class 명령 라인 다음에 위치하며, 입력되는 데이터는 %class 명령에 의해 명시된 클래스 속성과 타입이 일치해야 한다. 만약, 명시된 속성과 타입이 일치하지 않으면 데이터 로드 작업은 중지된다.

또한, 각각의 속성에 대응되는 데이터는 적어도 하나의 공백에 의해 분리되어야 하며, 1라인에 작성되는 것이 원칙이다. 다만, 입력되는 데이터가 많은 경우에는 첫 번째 데이터 라인의 맨 마지막 데이터 다음에 플러스 기호(+)를 명시하여 다음 라인에 데이터를 연속적으로 입력할 수 있다. 이 때, 맨 마지막 데이터와 플러스 기호 사이에는 공백이 허용되지 않음을 유의한다.

인스턴스 입력

다음과 같이 명시된 클래스 속성과 타입이 일치하는 인스턴스를 입력할 수 있다. 각각의 데이터는 적어도 하나의 공백에 의해 구분된다.

예제 1

%class employee (name)

'jordan' 

'james'  

'garnett'

'malone'

인스턴스 번호 부여

데이터 라인의 처음에 '번호:'의 형식으로 해당 인스턴스에 대한 번호를 부여할 수 있다. 인스턴스 번호는 명시된 클래스 내에서 유일한 양수이며, 번호와 콜론(:) 사이에는 공백이 허용되지 않는다. 이와 같이 인스턴스 번호를 부여하는 이유는 추후 객체 참조 관계를 설정하기 위함이다.

예제 2

%class employee (name)

1: 'jordan' 

2: 'james'  

3: 'garnett' 

4: 'malone' 

참조 관계 설정

@ 다음에 참조하는 클래스를 명시하고, 수직바(|) 다음에 참조하는 인스턴스의 번호를 명시하여 객체 참조 관계를 설정할 수 있다.

구문

@class_ref | instance_no

class_ref:

     class_name

     class_id

@ 다음에는 클래스명 또는 클래스 id를 명시하고, 수직바(|) 다음에는 인스턴스 번호를 명시한다. 수직바(|)의 양쪽에는 공백을 허용하지 않는다.

예제 3

다음은 paycheck 클래스에 인스턴스를 입력하는 예제이며, name 속성은 employee 클래스의 인스턴스를 참조한다. 마지막 라인과 같이 앞에서 정의되지 아니한 인스턴스 번호를 이용하여 참조 관계를 설정하는 경우 해당 데이터는 NULL로 입력된다.

%class paycheck(name department salary)

@employee|1   'planning'   8000000   

@employee|2   'planning'   6000000  

@employee|3   'sales'   5000000  

@employee|4   'development'   4000000

@employee|5   'development'   5000000

예제 4

클래스에 식별자 부여에서 %id 명령어로 employee 클래스에 21이라는 식별자를 부여했으므로, 예제 3을 다음과 같이 작성할 수 있다.

%class paycheck(name department salary)

@21|1   'planning'   8000000   

@21|2   'planning'   6000000  

@21|3   'sales'   5000000  

@21|4   'development'   4000000

@21|5   'development'   5000000