오라클에서 이미지데이터의 저장 및 추출 방법
- 최초 등록일
- 2008.10.27
- 최종 저작일
- 2008.05
- 3페이지/ 한컴오피스
- 가격 1,000원
소개글
관계형데이터베이스에 이미지와 텍스트 같은 비정형 데이터를 저장하기 위하여 여러 가지 방법을 시도해 왔다. 그 결과 현재 작은 크기의 이미지 데이터는 큰 무리없이 관계형 데이터베이스에 저장되고 있다. 그러나 아직도 문제점은 있다. 본래 관계형 데이터베이스의 저장구조는 작은 크기의 OLTP(on-line transaction processing) 데이터를 처리하도록 최적화되어 있다. 이러한 구조에 크기가 상대적으로 큰 이미지나 텍스트 같은 데이터를 저장하기 위해서는 여러 블록과 포인터 구조가 필요하다.
목차
1. 개요
2. 이미지 데이터를 저장하고 추출하는 예
본문내용
2. 이미지 데이터를 저장하고 추출하는 예
이미지 데이터를 저장하기 위한 간단한 테이블을 정의하자.
CREATE TABLE person(
pname VARCHAR(20),
resume CLOB,
picture BLOB);
이 정의에서 사용한 CLOB은 문자 데이터의 집합 타입이고 BLOB은 이미지와 같은 이진데이터 타입이다. 이와 같이 person 테이블을 생성하면, 오라클은 CLOB 데이터와 BLOB 데이터를 저장하기 위한 공간을 만들고 resume 필드와 picture필드에 그 공간의 위치정보를 넣을 준비를 한다. 여기서 person 테이블에 대한 다음의 두 입력 문장을 비교하여 보자.
INSERT INTO person VALUES(`Hong Gil Dong`, NULL, NULL);
INSERT INTO person VALUES(`Hong Gil Dong`, EMPTY_CLOB(), EMPTY_BLOB());
첫째 문장은 person 테이블의 pname필드에 값을 삽입하고 resume나 picture필드에는 NULL 값을 삽입하였다. 그러나 둘째 문장은 resume와 picture 필드에 LOB 데이터를 저장할 수 있는 주소를 삽입하였으며 다만 그 주소에는 실제 LOB 데이터가 없다는 의미이다. 이와 같이 LOB 타입의 필드에 데이터를 삽입하기 위해서는 반드시 먼저 EMPTY 주소를 입력한 다음 그 주소를 조회하여 LOB 데이터를 삽입하여야 한다. 이 LOB 데이터 삽입 과정을 SQL문으로 나타내면 다음과 같이 세 단계로 나타낼 수 있다.
(1) LOB 데이터 공간의 주소 입력
INSERT INTO person VALUES(`Hong Gil Dong`, EMPTY_CLOB(), EMPTY_BLOB());
(2) LOB locator 조회
SELECT resume FROM person WHERE pname=`Hong Gil Dong`;
여기서는 resume은 lobloc을 의미한다.
참고 자료
없음