프로그래머의 삶 Programmer's Life/Database-Oracle&MySQL

대형 객체들

Oliver's World 2008. 11. 3. 13:58
728x90

LOB


1. 물리적인 데이터를 DB에 저장하는 방법에 몇가지 옵션을 제공한다. LOB인라인 방식은 물리적 블록들을 다른 데이터와 마찬가지로 열에 저장하며 , LOB 아웃-오브-라인 방식은 디스크의 다른 영역에 데이터를 저장한다. 이 옵션은 LOB열에 쿼리의 대상이 되지 않는 경우, 데이터를 읽어들이지 않을 수 있게 해주기 때문에 상당히 유용하다. 마지막으로 데이터베이스 외부에 BFILE이라는 파일에 LOB를 저장할 수 있다.


2. 오라클 객체 타입에 이용될 수 있다. 객체 타입을 이용해 기능을 캡슐화하고 데이터와 기능에 객체 지향적인 인터페이스를 제공하려는 개발자에게 이 특성은 상당히 유용한 것이다.


3. 데이터로의 부분적 접근을 제공한다. 이것은 LOB내의 데이터로 임의접근이 가능하다는 의미이며, 데이터의 일부를 변경하기 위해 전체 열을 갱신할 필요가 없다는 것이다. ( 필요한 입출력 작업이 줄어 성능향상)


4. LOB의 각 타입은 4기가 바이트의 데이터를 보관할 수 있다.


5. LOB를 이용한 작업에 필요한 기능들이 오라클에서 제공하는 PL/SQL 패키지인 DBMS_LOB 에 포함되어있다.


-------------------------------------------------------


LOB 타입


1. 바이너리 대형객체(BLOB) - BLOB는 바이너리 데이터를 보관한다. 일반적인 BLOB는 이미지,오디오파일, 비디오등을 저장한다.


2. 문자 대형 객체(CLOB) - CLOB 는 많은 양의 문자 데이터를 저장한다. CLOB는 보통 4000문자 이상을 저장해야 하는 경우에 VARCHAR2대신에 이용된다. (VARCHAR2 열은 최대 4000문자 저장가능 )


3. 국가 문자 대형객체(NCLOB) - NCHAR 나 NVCHAR데이터 타입과 같이 NCLOB 는 데이터베이스의 국자 문자셋으로 데이터를 저장한다.


4. 바이너리 파일(BFILE) - BFILE 열은 파일 시스템이나 데이터베이스 서버에 보관된 대형 바이너리 파일로의 포인터를 저장한다. 오라클은 BFILE 에서 데이터를 읽어들이는 기능을 제공한다.


-------------------------------------------------------


BLOB 로케이터


- 아웃-오브-라인이나 BFILE 에 LOB가 저장될 때 테이블의 레코드에 데이터 블록 대신 저장되는 객체이며, 오라클에게 LOB의 실제 위치를 알려주는 포인터 역할을 한다. LOB로케이터는 오라클이 전체 테이블 검색을 수행할 때 LOB가 보관된 수백 개의 레코드를 모두 확인하는 수고를 덜어준다.

728x90