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 명령어를 이용하여 데이터가 로딩될 클래스(테이블) 및 속성(칼럼)을 명시하며, 명시된 속성의 순서에 따라 데이터 라인이 작성되어야 한다. cubrid loaddb 유틸리티를 실행할 때 -t 옵션으로 클래스 이름을 제공하는 경우에는 데이터 파일에 클래스 및 속성을 명시하지 않아도 된다. 단, 데이터가 작성되는 순서는 클래스 생성 시의 속성 순서를 따라야 한다.

구문

%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

%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