'oracle'에 해당되는 글 3건

  1. 2008.04.29 1.1 XML 레포지토리 활용

1.1 XML 레포지토리 활용방안

1.1.1 개요

XML DB 레포지토리(Repository)는 파일-폴더 메타포어를 이용하여 컨텐츠(Contents)를 계층적 구조로 조직화하고 이를 체계적으로 관리할 수 있는 기능을 제공한다. 사용자는 URL(Uniform Resource Locator)을 이용하여 레포지토리에 저장되어 있는 특정 컨텐츠에 접근할 수 있는데 이러한 접근 방법은 계층적 성격을 가진 컨텐츠를 URL XPath 표현등 계층적 메타포어를 이용하여 관리할 수 있도록 한다. 컨텐츠를 관리하는 도구로 흔히 사용하는 것은 관계형 데이터베이스와 파일 시스템을 기반으로하는 파일서버이다. 하지만 관계형 데이터베이스에서 컨텐츠에 대한 계층적 폴더 구조를 유지하면서 동시성(Concurrency)과 성능(Performance)를 제공하는 것이 어려운며,일반적인 파일 시스템에서는 트랜잭션(Transaction)의 개념이 없다. XML DB 레포지토리에서는 논리적인 트랜잭션을 유지하면서 SQL/XML을 사용하여 데이터베이스에서 제공하는 수준에 버금가는레포지토리 오퍼레이션(Operation)을 수행할 수 있다.

 

XML DB 레포지토리에 저장되어 있는 컨텐츠에 접근하는 대표적인 방법으로는 FTP,HTTP(s),WebDAV등 표준 프로토콜(Standard Protocol)을 이용하는 방법과 SQL,PL/SQL,API를 이용하는 프로그래밍적 방법이 있다. 이들의 활용 경우에 대해 살펴보기로 한다.

 

XML DB 레포지토리 활용방안에서는 XML 컨텐츠의 저장 및 조회,관리를 위한 수단으로서 Oracle 10g XML DB 레포지토리의 개념과 기본구조를 살펴보고 XML 컨텐츠를 관리하기 위한 구체적 활용방안을 찾아본다.

1.1.2 Oracle 10g XML DB 레포지토리

Oracle 10g XML DB 레포지토리(이하 Oracle 레포지토리)의 폴더링(Foldering)기능과 컨텐츠 접근방법 그리고 레포지토리에 있는 리소스(Resource) 보안관리 및 통제방법에 대해 알아본다.

 

1) Oracle 레포지토리 폴더링

 

Oracle 레포지토리는 관계형 데이터베이스와는 달리 폴더링을 이용하여 컨텐츠를 계층적 구조로 저장할 수 있다. [그림 3-1] Oracle 레포지토리의 폴더와 파일의 구조를 보여주는데 전형적인 폴더링의 예이다.


사용자 삽입 이미지

[
그림 3-1] Oracle 레포지토리 폴더링의 예

Oracle 레포지토리에 저장된 컨텐츠는 각각 Oracle 데이터베이스내 오브젝트(Object)로 구성되며 경로이름(Path Name)으로 매핑(Mapping)된다. 마치 파일시 스템에서 경로이름으로 파일에 접근하는 것과 마찬가지로 레포지토리내의 오브젝트를 경로이름으로 접근할 수 있다. 레포지토리의 계층적구조,경로이름등 이러한 특성에서 보듯 레포지토리는 데이터 오브젝트로 구성된 파일시스템으로 생각할 수 있다.

 

2) Oracle XMLType 데이터 형

XMLType Oracle 레포지토리와 함께 Oracle 10g XML DB(이하 Oracle XML DB)의 핵심 프레임워크로 특히 XML 컨텐츠를 저장,관리하는데 유용한 Oracle 에서 제공하는 기본 데이터 형이다. XMLType 데이터 형은 XML 스키마 기반의 컨텐츠(Schema Based Contents)만 저장할 것인지 혹은 임의의 컨텐츠(Non-Schema Based Contents)를 저장할 것인지에 따라 특성이 다르다.

 

 

스키마 기반 XMLType

비 스키마 기반 XMLType

스키마 여부

사용전 스키마 등록절차 필요

스키마 등록절차 없음

유효성

(Validation)

유효성 보장 가능

-

스키마 변경시

(Schema Evolution)

스키마 변경 절차 필요.

스미카 변경 절차 어려움.

스키마에 유효하도록 XML 컨텐츠

내용 수정 필요함

-

성능

(Performance)

스키마 구조에 따라 관계형 데이터베이스 성능 근접

일반적으로 과도한 CPU,메모리 사용으로 느림

확장성

(Scalability)

스키마 구조에 따라 관계형 데이터베이스 확장성 근접

일반적으로 과도한 CPU,메모리 사용으로 확장성 없음

[ 3–1] 스키마 여부에 따른 XMLType 비교

 

XMLType 데이터 형은 Oracle XML DB의 스토리지(Storage)를 구성하는 옵션에 따라서 특성이 매우 다르다. 현재 Oracle XML DB의 스토리지 구성옵션은 구조적 스토리지(Structured Storage)와 비구조적 스토리지가 (Unstructured Storage) 있다.

 

 

구조적 스토리지

비 구조적 스토리지

컨텐츠 저장

여러 개의 데이테비이스 오브젝트로 분해하여 저장

전체를 한덩이로 저장

성능

(Performance)

스키마 구조에 따라 관계형 데이터베이스 성능 근접

일반적으로 과도한 CPU,메모리 사용으로 느림

스키마 여부

스키마 기반

스키마 기반일 필요없음

포매팅 정보

포매팅정보 보장 안됨

태그정보,공백문자 저장않음

포매팅 정보 보장

원본동일성

DOM 레벨 동일성보장

XML 문서레벨 동일성 보장

유연성

유연하지 않음

XML 스키마 변경시 데이터이전 필요할 수 있음

유연함

[ 3–2] 스토리지 종류에 따른 XMLType 비교

 

3) 레포지토리 관련 용어

아래의 용어는 Oracle XML DB 레포지토리를 설명하는데 필요한 용어이다.

 

 

리소스 (Resource)

레포지토리에 저장된 모든 오브젝트 혹은 노드

리소스는 경로이름을 가진다.

폴더

(Folder,Directory)

다른 리소스를 포함할 수 있는 리소스

경로이름

(Path Name)

리소스의 경로이름을 나타내는 URL

리소스 이름

(Resource Name)

폴더내에서의 리소스 이름

리소스 컨텐츠

(Resource Content)

리소스의 실제 데이터

액세스 컨트롤 리스트

(Access Control List)

특정 리소스를 접근할 수 있는 데이터 베이스 사용자의 리스트

[ 3–3] 레포지토리 용어

 

4) 레포지토리 리소스 접근 방법

레포지토리 리소스를 접근(Access)하는 방법에는 그림 [그림 3-2]에서 보이는 바와 같이 경로기반(Path-based) 액세스와 쿼리기반(Query-based) 접근 두가지가 있다.

  

사용자 삽입 이미지

 [그림 3-2] 레포지토리 리소스 접근 방법

 

경로기반 접근방법과 쿼리기반 접근방법은 다음과 같은 특징을 가진다.

 

경로기반 접근

쿼리기반 접근

프로토콜

표준프로토콜

HTTP,FTP,WebDAV

SQL,PL/SQL,JDBC

접근성

별도 S/W 필요없이

웹 네비게이션 가능

SQL,PL/SQL,API 필요

DML 오퍼레이션

WebDAV 프로토콜을 통해 제한적으로 가능

SQL,PL/SQL,API이용 리소스 생성,수정,삭제등 관리 가능

메타데이타

불가능

SQL,PL/SQL,API이용 컨텐츠와 메타데이타 관리 가능

[ 3–4] 레보지토리 리소스 접근 방법의 특징

 

5) 레포지토리 리소스 버전관리

Oracle 레포지토리 리소스에 대한 버전 생성,관리에 대한 개요와 이에 대한 사용 가이드 라인을 알아본다.

 

    Oracle 레포지토리 버전 개요

버저닝은 레포지토리내의 리소스 변경사항에 대하여 추적하고 여러 버전의 리소스를 관리할 수 있게 한다.리소스에 대한 버전관리 여부를 선택할 수 있다.

 

    Oracle 레포지토리 버전용어

 

용어

설명

버전컨트롤

(Version Control)

리소스에 대한 변경사항이 추적되고 기록되고 관리될 때 그 리소스는 버전 컨트롤 되고 있다고 정의한다.

버전통제 리소스

(Version Controlled Resource)

버전 컨트롤 되고 있는 리소스

체크아웃(CheckOut)

버전통제 리소스를 변경하기 위해서는 반드시 리소스 체크아웃을 한 후에 실행

체크인(CheckIn)

버전통제 리소스의 변경사항을 영구히 반영하고자 할 때 실행

언체크아웃

(UncheckOut)

버전통제 리소스의 변경사항을 반영하지 않을 때 실행

[ 3-5] 레포지토리 버전용어

 

    Oracle 레포지토리 버저닝 가이드라인

n       한번 버전 컨트롤 된 리소스를 버전 컨트롤 해제할 수 없다.

n       리소스의 데이터만 버전 컨트롤 할 수 있으며 액세스 컨트롤 리스트등은 버전 컨트롤 할 수 없다.

n       리소스가 버전 컨트롤 리소스로 지정되면,리소스의 복사본이 생성되고 버전 이력이 할당되며 버전 컨트롤 리소스 플래그가 켜진다.

n       버전 컨트롤은 스키마 기반이 아닌 리소스에만 적용할 수 있다.이 제약의이유는 유일성 제약조건(Uniqueness Constraint)를 위반하지 않기 위해서다.

n       리소스에 메타데이타가 있다면 리소스의 각 버전마다 메타데이타는 유지된다.

 

6) 레포지토리 리소스 보안관리

Oracle 레포지토리의 액세스 컨트롤 리스트(Access Control List)기반 보안 메커니즘에 대해 알아보고 이에 대한 활용방안을 알아본다.

 

    Oracle 레포지토리 버전 개요

버저닝은 레포지토리내의 리소스 변경사항을 추적하고 여러 버전의 리소스를 관리할 수 있게 한다.리소스에 대하여 버전관리를 할 것인지 여부를 선택할 수 있다.

 

    레포지토리 보안 및 액세스 컨트롤 리스트 개요

Oracle 레포지토리는 오브젝트 레벨의 보안을 유지하고 있으며, 액세스 컨트롤 리스트(이하 ACL) 메커니즘을 이용하여 레포지토리 리소스에 대한 접근을 제한하고 있다.ACL은 자체로 XML 스키마 기반의 리소스이며 Oracle 레포지토리에 저장하여 관리한다.레포지토리내의 모든 리소스는 ACL에 의해서 보호된다. Oracle 레포지토리는 시스템 ACLbootstrap ACL을 제공하며,bootstrap ACL에 의해 보호받는 아래의 기본 ACLs도 제공한다.

n       all_all_acl.xml – 리소스에 대한 모든 권한을 모든 유저에게 할당

n       all_owner_acl.xml – 리소스에 대한 모든 권한을 리소스 소유자에게 할당

n       ro_all_acl.xml – 리소스에 대한 읽기 권한을 모든 사용자에게 할당

 

    ACL 관련 용어

용어

설명

주체(Principal)

리소스에 대한 접근 권한을 부여받을 수 있는 엔터티로 데이터베이스 사용자 혹은 그룹이다. 이외에 리소스의 소유자를 의미하는 특별한 주체 dav:owner가 있다.

권한(Privilege)

주체에 허락되거나 거부되는 특별한 권리를 말한다. Oracle 레포지토리는 시스템이 권한을 규정하고 있는데, 이 권한을 ACL에서 참조하고 있다. 권한은 단독권한(Atomic)과 복합(Aggregate)권한으로 나눌수 있다.단독 권한의 수가 많아질 때 이를 그룹화하면 업무적으로 도움이 되는데 이 그룹화한 권한을 복합권한이라 한다.

ACE(Access Control Entry)

ACE ACL에 있는 하나의 항(Entry)으로 특정 주체에게 리소스에 대한 특정 접근을 허락하거나 거부하는 역할을 한다.

ACL(Access Control List)

ACE의 모임으로 리소스에 대한 접근여부를 정의한다.

 

Default ACL

리소스가 생성될 때 부여되는 ACL

리소스가 레포지토리에 생성될 때 특정 ACL을 지정하지 않으면 부모폴더에 적용되는 ACL이 생성된 리소스를 보호하기 위해 자동으로 부여된다.후에 새로운 ACL을 해당 리소스에 할당할 수 있다.

ACL 적용규칙

(Evaluation Rules)

주체(데이터베이스에 로그인한 사용자등)에 대해서 모든 ACEs가 적용되는데 하나의 ACE에 의해서 거부되는 경우가 발생하면 ACL에 전체에 대해서 리소스 액세스 권한이 거부된다.

[ 3-6] ACL 관련용어

    리소스에 대한 권한

권한이름

설명

Database

read-properties

리소스의 프로퍼티 읽기 가능

SELECT

read-content

리소스 컨텐츠 읽기 가능

SELECT

update

리소스의 프로퍼티,컨텐트 수정 가능

Update

*link

리소스가 컨테이너에 바운드(bound) 가능

INSERT

*unlink

리소스가 컨테이너에서 언바운드(unbound)가능

DELETE

link-to

리소스 링크(link) 가능

N/A

unlink-from

리소스 언링크(unlink) 가능

N/A

read-acl

리소스의 ACL을 읽기 가능

SELECT

write-acl-ref

리소스 ID 변경가능

UPDATE

update-acl

리소스 ACL 변경가능

UPDATE

*resolve

컨테이너 트라버싱(Traversing) 가능

SELECT

dav:lock

WebDAV락을 이용하여 리소스 락(Lock)가능

UPDATE

dav:unlock

WebDAV락을 이용하여 리소스 언락(Unlock)가능

UPDATE

[ 3–7] 단독 권한 (Atomic Privileges)

* 표시가 있는 권한은 리소스가 컨테이너 인경우만 해당

 

복합권한이름

단독권한들

all

모든 단독권한: dav:read,dav:write,

dav:read-acl,dav:write-acl,dav:lock,dav:unlock

dav:all

linkto를 제외한 모든 단독권한들

dav:read

read-properties,read-contents,resolve

dav:write

update,link,unlink,unlink-from

dav:read-acl

read-acl

dav:write-acl

write-acl-ref,update-acl

[ 3–8] 복합 권한 (Atomic Privileges)

    ACL 사용시 성능이슈

Oracle 레포지토리내 리소스를 접근할 때마다 리소스에 대한 ACL을 확인해야하므로 ACL 보안 메커니즘은 레포지토리 성능에 큰 영향을 미친다. ACL은 기본적으로 메모리에 캐싱되지만 캐시 메모리의 크기에 한계가 있으므로 시스템에 ACL이 적으면 적을수록 바람직하다. 따라서 최대한 ACL을 공유해서 사용하도록하며 하나의 ACL에 포함하는 ACE도 최대 16개 이내로 하는 것이 좋다.

 

7) 사용자 정의 메타데이타 (User Defined Metadata)

Oracle 레포지토리에 컨텐츠를 저장할 때 시스템은 시스템 정의 메타데이타(System Defined Metadata)를 자동으로 생성하여 컨턴츠와 함께 저장한다. 사용자도 컨텐츠를 저장할 때 컨텐츠와는 별도로 컨텐츠에 대한 정보를 생성하여 컨텐츠와 함께 관리할 수 있는데 이 추가적인 정보를 사용자 정의 메타데이타(User Defined Metadata)라고 한다. 사용자는 정의 메타데이터를 이용하여 컨텐츠를 그룹화하고,쿼리 성능을 향상시킬 수 있으며, 애플리케이션의 특성에 맞게 각각의 방법등으로 활용할 수 있다.

 

    메타데이타 및 XML 개요

  컨텐츠 자체는 아니지만 컨텐츠에 대한 데이타를 메타데이타(Metadata)라고 한다. 메타데이타는 레포지토리에서 컨텐츠를 내용에 따라 분류하거나 키워드를 할당한 다음 애플리케이션이 메타데이타를 근거로 리소스를 검색하거나 처리하기 위한 용도등으로 사용된다. Oracle 레포지토리에서 리소스는 컨텐츠와 메타데이타를 모두 포함한다. 메타데이타는 XML 스키마 기반으로 정의된 경우는 별도의 테이블에 정보가 저장되고, XML 스키마 기반이 아닌 경우는 리소스 테이블에 CLOB 칼럼으로 저장된다. 스키마 기반의 메타데이타를 이용하면 리소스에 대한 효율적인 쿼리와 DML 오퍼레이션을 수행할 수 있다.

 

    XML 스키마 기반의 리소스 메타데이타

XML 스키마 기반의 리소스 메타데이타를 구성하기 위해서는 메타데이타에 대한 스키마를 생성한 후 이를 레포지토리에 메타데이타용 스키마로 등록한다. 이후에는 Oracle API를 이용하여 리소스 메타데이타를 추가,수정,삭제 오퍼레이션을 수행할 수 있으며 SQL,PL/SQL으로도 같은 기능의 오퍼레이션을 수행할 수 있다.

    XML 스키마 기반의 메타데이타 쿼리

XML 스키마 기반의 메타데이타를 직접 쿼리할 때는 메타데이타가 어떤 리소스의 메타데이타인지 선택해야 하므로 시스템 리소스뷰 (RESOURCE_VIEW)와 조인(JOIN)을 수행한다.

    XML 스키마 기반이 아닌 리소스 메타데이타

XML 스키마 기반이 아닌 사용자 정의 메타데이타도 저장할 수 있는데, 이경우는 리소스와 연관된 CLOB 인스턴스로 저장된다.

 

1.1.3 결론 - Oracle 레포지토리 활용방안

Oracle 레포지토리의 장점 및 제약 사항을 고려할 때  아래와 같은 업무부분에 적용하여 활용할 수 있다.

 

1) 택사노미(XML 스키마) 관리 (등록,수정,조회,삭제등)

n       택사노미(XML스키마) 버저닝 기능활용

n       택사노미(XML스키마) 액세스 컨트롤 리스트 적용 보안관리

n       택사노미(XML스키마) 파일시스템이 아닌 데이터베이스 레벨 관리

n       택사노미 자체에 대한 메타데이타 정보 관리

n       메타데이타를 이용한 택사노미 쿼리 성능 향상 및 관리 용이성 증대

n       택사노미 유연성을 이전등 유연성을 위해 CLOB 기반 스토리지 사용

 

2) 택사노미 및 스키마 다운로드 서비스

n       택사노미 및 스키마에 대하여 표준 프로토콜 조회 개방

n       액세스 컨트롤을 활용하여 퍼블리싱(Publishing) 관리

 

3) XBRL문서(XML 문서) 관리 (원본문서 등록,수정,조회,삭제 등)

n       XBRL(XML)문서 업무성격에 따른 계층적 구조 폴더링 적용

n       XBRL(XML)문서 원본보장을 위한 위한 XMLType CLOB 기반 스토리지 적용

n       XMLType CLOB 기반 스토리지 적용에 따른 쿼리 성능의 저하로 원본문서 저장외에 쿼리 및 분석 기능을 위한 효율적인 데이터베이스 구성방안 필요.

n       XBRL(XML)문서의 유효성(Validation) 및 데이터 정합성을 위하여 스키마 기반으로 구성

n       스키마 기반으로 구성에 따른 XBRL(XML)문서 버저닝 제외

'기타 잡동사니 > Oracle' 카테고리의 다른 글

1.3.XML 레포지토리 성능검증  (0) 2008.04.29
1.2 XML 레포지토리 구성방안  (0) 2008.04.29
Posted by
,