• 검색 결과가 없습니다.

Overview : XML 과 Database

N/A
N/A
Protected

Academic year: 2022

Share "Overview : XML 과 Database"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

임 순 범

숙명여대 정보과학부 멀티미디어학과

Overview : XML 과 Database

멀티미디어 데이터베이스

(2001.10.23~11.1)

(2)

목차

• 강의노트 (PPT 파일 ) : http://mm.sookmyung.ac.kr/~sblim 1. Overview

– XML 개요

– XML 문서 저장 / 검색 시스템 , – XML 데이터 모델링 ,

– XML 질의언어

2. XML 과 Database 연동

[ 교재 ] Beginning XML, David Hunter 외 5 인 공저 , 정보문화사 , 2001.

제 13 장 XML 과 데이터베이스 , pp.625-654.

3. XML 질의 언어 (XML Query Language)

[ 교재 ] XML-QL , XQL 사양 문서 [ 참고 ] Quilt , XQuery 1.0

(3)

1. XML 개요

• eXtensible Markup Language 의 약어 , W3C 의 표준

– XML 의 사양은 SGML 보다 훨씬 간략

• XML 은 메타 언어 (meta language)

– 마크업 언어를 만들기 위한 언어 : 문서 유형을 만드는 역할 , 즉 요소 (element) 를 선언하고 이 요소들의 관계를 기술하는 언어

• 문서의 구조 및 의미를 마크업으로 정의 .

– 문서의 표현 ( 스타일 ) 은 분리 : CSS, XSL 등의 스타일시 사용

• XML 의 구성 ( 관련된 기술 표준 http://www.w3.org/ )

– 문서 내용을 위한 XML, 스키마 정의를 위한 DTD, XML-data, XDL – 문서 구조 접근을 위한 DOM , SAX

– 문서 질의 등을 위한 XQL, XML-QL, XQuery

– 문서 변환 혹은 표시를 위한 CSS, XSL (XSLT, XSL-FO) – 문서의 링크를 위한 XLink, XPointer 등

(4)

XML 의 장점 및 응용 분야

• 범용성 및 확장성

– 문서의 내용에 관련된 독자적 tag 를 직접 만들어 사용 가능

– XML 파일은 구조와 의미에 관한 정보만 포함 , 출력 표현은 스타일시 트로 분리

• 태그가 문서의 내용과 밀접하게 관련

– XML 의 tag 가 검색에 효율적으로 사용 가능

– 데이터로써 취급 가능 , 즉 스스로 설명 가능한 데이터가 될 수 있다 .

=> 잘 설계된 데이터베이스 역할이 가능

• 웹 응용분야의 데이터 / 정보 교환 언어로 발전

– 전자상거래 , 전자도서관 , 검색엔진과 같은 분야에서 활발한 연구

• XML 은 다른 마크업 언어를 생성할 수 있음

– MathML, CML(Chemical Markup Language), WML(Wireless ML) – XHTML, SMIL(Synchronized Multimedia Integration Language) – ebXML, OEB(Open eBook), EBKS, …

(5)

XML 예제

• 문서형 선언부 (DTD: Data Type Definition): 문서구조 정의

<?xml version="1.0" encoding="EUC-KR"?>

<!DOCTYPE 방명록 [

<!ELEMENT 방명록 ( 성명 , 전자우편 , 내용 )>

<!ELEMENT 성명 ( 성 , 이름 )>

<!ELEMENT 성 (#PCDATA)>

<!ELEMENT 이름 (#PCDATA)>

<!ELEMENT 전자우편 (#PCDATA)>

<!ELEMENT 내용 (#PCDATA)>

<!ATTLIST 내용 종류 (TEXT|HTML) "HTML">

]>

• 문서부 (DI : Document Instance)

< 방명록 >

< 성명 >

< 성 > 홍 </ 성 > < 이름 > 길동 </ 이름 >

</성명 >

< 전자우편 >gildong@email.com</ 전자우편 >

< 내용 종류 ="HTML"> 안녕하세요 ? 만나서 반갑습니다 .</ 내용 >

</ 방명록 >

(6)

• 스타일시트 (Stylesheet)

– CSS(Cascading Style Sheet) 또는 XSL(eXtensible Stylesheet Language) – 문서의 배치 혹은 포맷을 표현

– XML 문서의 출력과정

– 문서의 논리적 구조 및 내용과 출력형식이 분리되는 것을 원칙

• 기타 표현 요소

– 시간적 배치 : SMIL (Synchronized Multimedia Integration Language) – 문서의 링크 : XLink, XPointer

– 문서의 위치 , 패턴 : XPath

– 문서 구조 접근 : DOM(Document Object Model) , SAX(Simple API for XML)

(7)

XML 문서의 특성

• 문서의 논리적 구조를 문서 내에 포함 => DTD

– DTD 예

<!ELEMENT book (author+, title, publisher)>

<!ATTLIST book type CDATA>

<!ELEMENT publisher (name, address)>

<!ELEMENT author (firstname?, lastname)> …

• 논리적 구조 위에 공간적 , 시간적 , 네트웍 ( 링크 ) 구조 표현

• DOM(Document Object Model) : 응용프로그램 API

book

author+ title publisher firstname? lastname name address

XSL, CSS SMIL

XLink, XPointer

. . .

+

(8)

2. XML 문서 저장 / 검색 시스템

• 특징

– XML 문서의 구조정보를 유지하면서 효율적으로 저장 및 검색 , 관리 할 수 있는 시스템

• Data-Centric XML 문서

– 정형적인 구조 로서 내용과 구조가 혼재되어 있는 양이 적다

– CALS/EC 등 대규모의 표준화된 데이터 , 비행 스케줄 , 메시지 등 – 엘리먼트를 저장 , 조작 , 변경하는 데 중요한 의미를 가진다

• Document-Centric XML 문서

– 비정형적인 구조로서 매우 혼재된 형태의 내용을 가진다 – 전자도서관 , 전자책 , 온라인 매뉴얼 , 논문 , 광고 등 – Intranet, WCMS(Web Contents Management System)

– 문서 단위의 저장 , 내용검색 , 문서단위 검색이 중요한 기능이 된다

• Data-Centric 과 Document-Centric XML 문서 혼재

– 정형 데이터 , 비정형 데이터 혼재 : 멀티미디어 데이터베이스

(9)

필요 기능

• XML 저장 기능

– DTD / XML Instance ( 문서 ) Loading 기능 – 파싱 / 검증 기능

• DTD / Instance 파싱 , Well-formed / Valid 검사

– 저장 기능

• DTD, XML Instance, External Entity / XLink 관련 문서

• XML 검색 기능

– 내용정보 검색

• 엘리먼트 내용 , XML Instance 내의 내용

• 같은 문서 타입 (DTD) 중의 내용 , 서로 다른 문서 타입 (DTD) 간의 내

– Attribute 검색 : 이름 / 값에 대한 검색 – 구조정보 검색

• 타입 / 순서 / 계층 정보 , 순환 (Traversing) 검색

(10)

• XML 삭제 기능

– XML Instance 삭제 기능

• Document ID 를 이용한 삭제

• DTD ID 를 이용한 문서 셋 삭제

• 검색된 엘리먼트를 포함하는 문서 , 검색된 문서에 대한 삭제

– DTD 삭제 기능

• DTD Name 을 이용한 DTD 삭제 , DTD 에 해당하는 문서 셋 삭제

• XML 수정 기능

– 엘리먼트 삭제 기능

• 특정 엘리먼트 삭제 , 특정 엘리먼트의 자식 / 자손 / 형제들 삭제

– 엘리먼트 추가 기능

• 특정 엘리먼트의 특정 위치로 엘리먼트 추가

– 엘리먼트 변경 기능

• 속성 추가 / 삭제 / 변경 기능 , 엘리먼트 내용의 변경

(11)

XML 저장 / 검색 시스템 사례

• 국외 개발 사례 (http://www.xmlsoftware.com/)

– XML Database System

• eXcelon – Object Design  eXcelon Inc.

• Oracle 8i – Oracle

• Tamino – Software AG

– XML Content Management System

• Bladerunner – Interleaf

• POET CMS – POET

• 국내 개발 사례

– ReposiWare – 한국정보공학 ㈜ – XCMS – 한국지식웨어 ㈜

– XDMS – Techno2000 Project – BADA IV/XML – ETRI

– XD2M2 – 충남대 데이터베이스 연구실

(12)

3. XML 데이터 모델링

<DB 구현 방법에 따라 >

• 전용 데이터베이스 시스템 구현

– XML 데이터 모델은 트리형태 , 구조가 가변적 , 복합 데이터 형태 – 질의어가 정규 경로식 형태

=> 새로운 모델을 제대로 표현

=> 구현 완료성 및 시스템 안정성 불안 , 기존 연구 할용 부족

• 기존 데이터베이스 시스템 이용

– OODB, 또는 RDB 이용

– 문서 저장을 위한 적절한 테이블 또는 클래스 생성 – XML 에 대한 질의를 DB 질의어로 변환

=> Wrapping : 기존 시스템 이용

– Database 에 저장하기 위한 스키마 생성이 관건

• 엘리먼트 의미를 저장하는 방법 , XML 트리 구조를 저장하는 방법

(13)

< 저장방법에 따라 >

• XML 문서를 하나의 큰 객체로 저장

– 파일 형태 , RDB 의 BLOB(Binary Large Object) 또는 OODB 의 Lar geObject 에 저장

– 구현이 간단하다

– 원하는 정보 추출시 XML 문서 전체를 파싱해야 한다

• 적절한 크기의 객체로 나누어 저장

1) XML 문서의 의미를 보존하는 방법

– 예 ) <book> 태그 : book 에 관한 정보임

=> book 테이블 , 또는 book class 에 book 엘리먼트 저장

– XML DTD 로부터 스키마를 생성하므로 DB 구조가 가변적이어야 함 2) 구조적인 정보를 이용하여 저장

– 트리형태의 XML 데이터를 테이블 / 클래스에 매핑하여 저장 – XML 응용 프로그램에 적용할 때 편리

(14)

OODB vs RDB for XML DBMS

• RDBMS 상에 XML 데이터베이스 시스템 구현 이유

– 대부분의 기관에서 관계 데이터베이스 시스템 사용

– 기존 RDBMS 위에 개발된 여러 응용 시스템과 연동 필요

– XML 데이터 저장 / 검색 시스템을 위해 새로운 데이터베이스 시스템 구입은 비용적 부담

구분 OODB RDB

XML Model

Integrity XML Model 을 보전 XML Model 의 구조와 의 미를 쪼개어 Table 에 저 장

Large Data

Volumes Excellent scalability 조인의 필요성 때문에 scalability 가 좋지 못하다 Link Management

and Navigation 문서–엘리먼트등 다양

한 종류의 링크가 가능 링크는 primary key lookup 에 의해서만 가능

Full-text Queries 태그 영역까지의 full-t

ext 인덱싱 가능 제한적으로 가능

(15)

RDBMS 상의 XML 모델링

• Problem : XML 모델 Integrity 문제

– OODB 에서는 파싱된 객체를 바로 Complex object 형태로 저장 – RDB 는 객체를 여러 개의 테이블에 쪼개어 저장 : 검색시 조인 필요

• Solution

– 스키마 설계시 DTD 독립적 스키마 생성 : 객체 관련 테이블 최소화 – XML 구조의 의미를 유지하는 ID 부여 방법 :

• 계산만으로 구조 연산을 지원하여 DB 참조 최소화

• Decomposition 기법

– 해당객체가 실제 내용 (content,value) 을 저장 – 검색시 하위 객체의 내용을 취합 => 성능 저하

– 객체의 내용 변경시 다른 객체는 영향을 받지 않는다 .

• Virtual Fragmentation 기법

– 해당객체는 하위객체에 대한 오프셋과 길이 , 검색 시 취합과정 없음

(16)

4. XML 질의 언어

• XML Query Language

– W3C XML Query Working Group

– XML-QL, XPath, XQL, YATL, XSQL, etc.

• XML-QL (1998)

– Web 환경 하에서 다량의 XML 데이터 availability 를 높이기 위해

• XQL (1998)

– XML 문서의 패턴 검색 , XSL pattern syntax 에서 발전

• Quilt (2000) => Xquery (2001)

– XQL 과 XML-QL 의 특징을 통합

(17)

XQL

• 특징

– XSL pattern syntax 에서 확장

– XML 문서의 엘리먼트 / 텍스트를 접근하거나 필터링하기 위한 표기

• 절차적 (procedural) 보다는 선언적 (declarative)

– 출력 형식은 정의하지 않는다

• Syntax

– 특정 노드 또는 엘리먼트를 명시하는 정확한 표기가 가능

• URI directory navigation syntax 를 사용

• / : root context, // : descendent, * : collection of all children, @ : attribute

– 결과 : Context – Query 의 수행결과로 생성되는 set of node – 예제

• /book/author , ./author , author ,

• //author , author//first-name , bookstore/*/title, author/**/*

• @style

(18)

• Grouping

– 모든 괄호

• Filters : [ ] - filter clause

– collection 의 모든 엘리먼트에 대하여 조건 검색 – 예 )

• book[@style]

• book[/bookstore/@specialty = @style]

• Boolean Expressions & Equivalence

– $and$, $or$

– =, !=, $eq$, $ne$

(19)

XML-QL

• 특징

– Web 환경 하에서 다량의 XML 데이터 availability 를 높이기 위해 – 다량의 XML 문서에서 데이터 추출 , 데이터 변환 , 여러 장소의 XM

L 데이터의 통합 , 다량의 XML 데이터 전송을 위해 정의 – 결과 : well-formed XML 문서

• Syntax

– 패턴을 사용하여 데이터 매칭 – element pattern 을 사용

• ‘$’: variable indicator ( 예 $a)

• </> : end tag

– 결과로서 새로운 XML 데이터를 생성 – Grouping with Nested Queries

– Joining Elements by Value

• CONTENT_AS, ELEMENT_AS

(20)

20

• 예제

– Query 문서 =>

– bib.xml – 결과문서

WHERE <book>

<publisher><name> 숙명여대 </></>

<title> $t </>

<author> $a</>

</> IN "bib.xml"

CONSTRUCT <result>

<author> $a</>

<title> $t</>

</>

<bib>

<book year=“2000">

<title> 데이터베이스 시스템 </title>

<author> <lastname> 홍길동 </lastname>

</author>

<publisher> <name> 숙명여대 </name> </

publisher>

</book>

<book year=“2001">

<title> XML 데이터베이스 </title>

<author> <lastname> 홍길동 </lastname>

</author>

<author> <lastname> 고소영 </lastname>

</author>

<publisher> <name> 숙명여대 </name> </

publisher>

</book>

<result>

<author> <lastname> 홍길동 </lastname> </author>

<title> 데이터베이스 시스템 </title>

</result>

<result>

<author> <lastname> 홍길동 </lastname> </author>

<title> XML 데이터베이스 </title>

</result>

<result>

<author> <lastname> 고소영 </lastname> </author>

<title> XML 데이터베이스 </title>

</result>

참조

관련 문서

„ End Element Handler – end element tag encountered, path nodes promoted to wait list are deleted, restoring those lists to state they were in before reading an

S-100 standard based UML Design and XML Implementation for Marine Casualty Information.. 지도교수

주석 내보내기 기능은 PDF 문서상에 추가된 모든 주석에 대한 정보를 Form Data File(fdf) 형태 또는 xml 파일 형태로 따로 저장할 수 있는 기능으로, 주석 가져오기를 통해

조사 자료 통합 검색 시스템 조사 상담을 위해 과거 조사 자료 및 조사방법 검색 시 제목, 키워드 뿐만 아니라 저장된 문서 내용까지 검색할 수 있도록

• 분석 이미지 데이터 저장 효율 제고를 위한

DATA 저장/편집 및 결과 Display 안전환경 관련 사규 검색 [분야별] 검색/이용. DATA 저장/편집 및 결과 Display 경미재해 통계 및

à Element nodes have child nodes, which can be attributes or subelements à Text in an element is modeled as a text node child of the element. à Children of a node

XML - basic foundation, provides a language for defining data &amp; method of processing them SOAP(Simple Object Access Protocol) - a collection of XML based rules