- XML 개요
- XML의 정의
- W3C에서 웹 상의 구조화된 문서를 효율적으로 처리하도록 설계한 마크업 언어
- SGML의 실용적인 기능만을 모은 부분 집합으로, 인터넷상에서 광범위하게 사용될 차세대 언어
- 현재는 마크업 언어 보다는 데이터 교환 포멧으로 널리 사용되고 있음
- XML의 특징
- 범용성 및 확장성
- 문서의 내용에 관련된 독자적 태그를 직접 만들어 사용가능
- XML 파일은 구조와 의미에 관한 정보만 포함하고, 출력 표현은 스타일시트로 분리
- 태그의 활용
- XML의 태그를 이용해 효율적인 검색이 가능
- 데이터로서 취급 가능, 즉 스스로 설명 가능한 데이터가 될 수 있음
- 웹 응용 분야의 데이터 교환 언어로 발전
전자 상거래, 전자 도서관, 검색 엔진과 같은 분야에서 활발하게 연구함
- XML은 다른 마크업 언어를 생성할 수 있음
MathML, CML, WML, SMIL 등
- XML의 구성 요소
- XML 데이터의 구성
Tag, element, Attribute 등
- XML 데이터의 구조 정의
DTD, XML 스키마
항목 | DTD | XML 스키마 |
문법 | EBNF + pseudo XML | XML 1.0 |
내용 모델 (content Mdoel) | 약함(단순한 순차적 표현 도는 리스트의 선택만을 지원) | 강력(현재 사용되는 모든 데이터 타입을 지원) |
데이터 타입 | String, Name Tokens, ID 등 | String, Numeric, Date/Time, Structure 등 |
이름 공간 | 전역적인 이름들만 이용 가능 | 전역적, 지역적 이름 모두 이용 가능 |
객체 상속 | 제공 안됨 | 제공 |
확장성 | 제한적(XML 1.0 스펙 변경) | 비제한적 |
동적인 문서 구조 | 제공되지 않음(작성된 DTD는 런타임상 읽기만 가능) | 제공(스키마들은 런타임상 선택 및 변경 가능) |
- 표준 언어 및 API
- 표준 XML 질의 및 변환 언어
- Xpath
XML 문서의 구조에 대한 경로식(Path Expression) 구문을 사용하여 항목을 선택해서 검색하는 기능을 제공하는 언어
- XSLT
XML을 XML로 변환하거나 XML을 HTML로 변환하기 위해 설계된 범용 변환 언어
- XQuery
W3C에서 표준화하고 있는 다양한 XML 문서를 해석하고 검색하는 기능을 제공하는 범용 XML 질의 언어
- SQL/XML
ISO에서 XML 데이터를 처리하기 위해 표준화하고 있는 SQL의 확장 언어
- 기타
- XLink : XML 문서들 간의 링크를 기술하고 만들어 내기 위해 사용하는 언어
- XPointer : XML 문서의 내부 구조 안에서 또는 외부 파싱된 Element 를 참조할 때 사용하는 언어로서, XPath 를 확장하고 XLink와 결합하여 사용
- 표준 XML API
- SAX(Simple API for XML)
- 파서 모델에 기반하여 사용자는 이벤트를 파싱하기 위한 이벤트 핸들러를 제공
- 이벤트의 예 : Element의 시작, Element의 끝 등
- 데이터베이스 응용에 적합하지 않음
- DOM(Document Object Model)
XML 데이터가 트리 표현으로 파싱되고, DOM 트리를 순회하거나 갱신하기 위한 다양한 함수를 제공
- XML 데이터베이스 개요
- 정의
비정형 구조의 가변 길이 XML 데이터를 저장, 검색, 관리하는 데이터베이스
- 특징
- 계층적 구조가 반복되고 중첩된 정보 표현
- 한 노드에 복수 값의 정의가 가능
- 기존의 상용 DBMS에 저장 시 성능상의 문제 야기
- XML 데이터베이스 구성 개념도
- Wrapper
다양한 소스를 공통 데이터 모델로 매핑하여 정보를 추출하기 위해 공통 질의어로 변환
- Mediator
정보 소스들의 변경 없이 정보 통합을 가능하게 하는 것으로, 사용자의 질의를 재작성하여 각 사이트의 Wrapper에게 분산 질의하며, Wrapper로부터 데이터를 combine, integrate, refine 함
- XML 데이터베이스 구현 방법
- 파일 관리형
XML 데이터를 파일 시스템상의 파일로 보관
- RDBMS 매핑형
- XML의 계층 구조를 RDB의 관계로 표현하고, XML의 각 요소와 속성을 테이블 또는 필드로 표현하는 방식
- 현재 가장 많이 사용되고 있음
- 객체-지향형
- XML의 계층 구조를 객체-지향형 모델의 클래스 계층에 매핑하는 방식
- XML과 모델이 유사하므로, 대부분의 XML 데이터 구조 저장이 가능
- Native XML형
- XML의 계층 구조를 계층형 데이터베이스 구조로 관리하며, 노드의 데이터나 속성을 XML 데이터로 관리하는 방식
- 가장 이상적인 방법
'밥벌이 > 기타 데이터베이스' 카테고리의 다른 글
멀티미디어 데이터베이스 (0) | 2011.03.21 |
---|---|
공간 데이터베이스(Spatial Database) (0) | 2011.03.21 |
주기억 장치 데이터베이스(MMDB; Main Memory DataBase) (0) | 2011.03.21 |
실시간(Real-time) 데이터베이스 (0) | 2011.03.21 |
모바일(Mobile) 데이터베이스 (0) | 2011.03.21 |