Web Multimedia Documents

Download Report

Transcript Web Multimedia Documents

Overview : XML과 Database
멀티미디어 데이터베이스
(2001.10.23~11.1)
임순범
숙명여대 정보과학부 멀티미디어학과
1
목차
• 강의노트(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
2
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 등
3
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, …
4
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)
<방명록>
<성명>
<성>홍</성> <이름>길동</이름>
</성명>
<전자우편>[email protected]</전자우편>
<내용 종류="HTML">안녕하세요? 만나서 반갑습니다.</내용>
</방명록>
5
• 스타일시트 (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)
6
XML 문서의 특성
• 문서의 논리적 구조를 문서 내에 포함 => DTD
– DTD 예
<!ELEMENT book (author+, title, publisher)>
<!ATTLIST book type CDATA>
<!ELEMENT publisher (name, address)>
<!ELEMENT author (firstname?, lastname)> …
• 논리적 구조 위에 공간적, 시간적, 네트웍(링크) 구조 표현
book
author+
title
firstname? lastname
...
publisher
name address
+
XSL, CSS
SMIL
XLink, XPointer
• DOM(Document Object Model) : 응용프로그램 API
7
2. XML문서 저장 /검색 시스템
• 특징
– XML 문서의 구조정보를 유지하면서 효율적으로 저장 및 검색 , 관
리할 수 있는 시스템
• Data-Centric XML 문서
– 정형적인 구조 로서 내용과 구조가 혼재되어 있는 양이 적다
– CALS/EC 등 대규모의 표준화된 데이터, 비행 스케줄 , 메시지 등
– 엘리먼트를 저장 , 조작 , 변경하는 데 중요한 의미를 가진다
• Document-Centric XML 문서
–
–
–
–
비정형적인 구조로서 매우 혼재된 형태의 내용을 가진다
전자도서관, 전자책, 온라인 매뉴얼, 논문 , 광고 등
Intranet, WCMS(Web Contents Management System)
문서 단위의 저장, 내용검색, 문서단위 검색이 중요한 기능이 된다
• Data-Centric 과 Document-Centric XML 문서 혼재
– 정형 데이터, 비정형 데이터 혼재 : 멀티미디어 데이터베이스
8
필요 기능
• XML 저장 기능
– DTD / XML Instance (문서) Loading 기능
– 파싱 / 검증 기능
• DTD / Instance 파싱, Well-formed / Valid 검사
– 저장 기능
• DTD, XML Instance, External Entity / XLink 관련 문서
• XML 검색 기능
– 내용정보 검색
• 엘리먼트 내용, XML Instance 내의 내용
• 같은 문서 타입 (DTD) 중의 내용, 서로 다른 문서 타입 (DTD) 간의 내용
– Attribute 검색 : 이름 / 값에 대한 검색
– 구조정보 검색
• 타입 /순서 / 계층 정보, 순환 (Traversing) 검색
– 링크정보 검색
9
• XML 삭제 기능
– XML Instance 삭제 기능
• Document ID 를 이용한 삭제
• DTD ID 를 이용한 문서 셋 삭제
• 검색된 엘리먼트를 포함하는 문서, 검색된 문서에 대한 삭제
– DTD 삭제 기능
• DTD Name 을 이용한 DTD 삭제, DTD 에 해당하는 문서 셋 삭제
• XML 수정 기능
– 엘리먼트 삭제 기능
• 특정 엘리먼트 삭제, 특정 엘리먼트의 자식 /자손 /형제들 삭제
– 엘리먼트 추가 기능
• 특정 엘리먼트의 특정 위치로 엘리먼트 추가
– 엘리먼트 변경 기능
• 속성 추가 /삭제 /변경 기능, 엘리먼트 내용의 변경
10
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 –충남대 데이터베이스 연구실
11
3. XML 데이터 모델링
<DB 구현 방법에 따라>
• 전용 데이터베이스 시스템 구현
– XML 데이터 모델은 트리형태, 구조가 가변적, 복합 데이터 형태
– 질의어가 정규 경로식 형태
=> 새로운 모델을 제대로 표현
=> 구현 완료성 및 시스템 안정성 불안, 기존 연구 할용 부족
• 기존 데이터베이스 시스템 이용
– OODB, 또는 RDB 이용
– 문서 저장을 위한 적절한 테이블 또는 클래스 생성
– XML에 대한 질의를 DB 질의어로 변환
=> Wrapping : 기존 시스템 이용
– Database에 저장하기 위한 스키마 생성이 관건
• 엘리먼트 의미를 저장하는 방법, XML 트리 구조를 저장하는 방법
12
<저장방법에 따라>
• XML 문서를 하나의 큰 객체로 저장
– 파일 형태, RDB의 BLOB(Binary Large Object) 또는 OODB의
LargeObject에 저장
– 구현이 간단하다
– 원하는 정보 추출시 XML문서 전체를 파싱해야 한다
• 적절한 크기의 객체로 나누어 저장
1) XML 문서의 의미를 보존하는 방법
– 예) <book> 태그 : book 에 관한 정보임
=> book 테이블, 또는 book class 에 book 엘리먼트 저장
– XML DTD로부터 스키마를 생성하므로 DB구조가 가변적이어야 함
2) 구조적인 정보를 이용하여 저장
– 트리형태의 XML 데이터를 테이블/클래스에 매핑하여 저장
– XML 응용 프로그램에 적용할 때 편리
13
OODB vs RDB for XML DBMS
구분
OODB
RDB
XML Model
Integrity
XML Model 을 보전
XML Model 의 구조와 의미
를 쪼개어 Table 에 저장
Large Data
Volumes
Excellent scalability
조인의 필요성 때문에
scalability 가 좋지 못하다
Link Management 문서–엘리먼트등 다양 링크는 primary key lookup
and Navigation
한 종류의 링크가 가능 에 의해서만 가능
Full-text Queries
태그 영역까지의 fulltext 인덱싱 가능
제한적으로 가능
• RDBMS 상에 XML 데이터베이스 시스템 구현 이유
– 대부분의 기관에서 관계 데이터베이스 시스템 사용
– 기존 RDBMS 위에 개발된 여러 응용 시스템과 연동 필요
– XML 데이터 저장 /검색 시스템을 위해 새로운 데이터베이스 시스
템 구입은 비용적 부담
14
RDBMS 상의 XML 모델링
• Problem : XML 모델 Integrity 문제
– OODB 에서는 파싱된 객체를 바로 Complex object 형태로 저장
– RDB는 객체를 여러 개의 테이블에 쪼개어 저장 : 검색시 조인 필요
• Solution
– 스키마 설계시 DTD 독립적 스키마 생성 : 객체 관련 테이블 최소화
– XML 구조의 의미를 유지하는 ID 부여 방법 :
• 계산만으로 구조 연산을 지원하여 DB 참조 최소화
• Decomposition 기법
– 해당객체가 실제 내용 (content,value)을 저장
– 검색시 하위 객체의 내용을 취합 => 성능 저하
– 객체의 내용 변경시 다른 객체는 영향을 받지 않는다 .
• Virtual Fragmentation 기법
– 해당객체는 하위객체에 대한 오프셋과 길이, 검색 시 취합과정 없음
– 객체의 변경 시 다른 객체의 관련정보도 영향을 받음
15
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의 특징을 통합
16
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
17
• Grouping
– 모든 괄호
• Filters : [ ] - filter clause
– collection의 모든 엘리먼트에 대하여 조건 검색
– 예)
• book[@style]
• book[/bookstore/@specialty = @style]
• Boolean Expressions & Equivalence
–
–
$and$, $or$
=, !=, $eq$, $ne$
18
XML-QL
• 특징
– Web 환경 하에서 다량의 XML 데이터 availability 를 높이기 위해
– 다량의 XML 문서에서 데이터 추출, 데이터 변환, 여러 장소의 XML
데이터의 통합, 다량의 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
19
• 예제
– 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>
</bib>
<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>
20