Tải bản đầy đủ (.pdf) (13 trang)

Chuyển đổi dữ liệu giữa XML và cơ sở dữ liệu quan hệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (271.75 KB, 13 trang )

I H CăQUỌCăGIAăHÀăN I
TR

NGă

I H CăCỌNGăNGH

TR NăPH

CHUY Nă
VÀăC ăS

ID
D

NGăNHUNG

LI U GI A XML

LI U QUAN H

GVHD : PGS.TS. OÀN V NăBANă

HÀăN I, 20


DANH M C T VI T T T................................................................................... 4
M T S THU T NG ........................................................................................... 5
M đ u....................................................................................................................... 5
Ch ngăI: ................... KHÁIăNI MăXMLăVÀăMỌăHÌNHăD LI U QUAN H
8


1.1 TÀIăLI U XML ............................................................................................. 8
1.1.1 Gi i thi u XML và ngôn ng đ nh d ng ...................................................... 8
1.1.2 Trình so n th o XML (XML Editors) và trình duy t XML ...................... 12
1.1.3 B phân tích XML và B ki m tra XML (XML Validator) ...................... 13
1.1.4 CSS và XSL ................................................................................................ 13
1.1.5 Xây d ng tài li u XML h p khuôn d ng ... Error! Bookmark not defined.
1.1.6
nh ngh a ki u tài li u (DTD) .................. Error! Bookmark not defined.
1.1.7 Gi i thi u v Xpath .................................... Error! Bookmark not defined.
1.1.8 Mô hình đ i t ng d li u DOM ............... Error! Bookmark not defined.
1.1.9 XML và c s d li u ................................. Error! Bookmark not defined.
1.2 MỌăHÌNHăD LI U QUAN H ................... Error! Bookmark not defined.
1.2.1 Các khái ni m c b n [3][4][5] .................. Error! Bookmark not defined.
1.2.2 Các phép toán trên quan h [4][5] .............. Error! Bookmark not defined.
1.3 K T LU N ....................................................... Error! Bookmark not defined.
Ch ngăII:THU TăTOÁNăCHUY Nă
I D LI U GI AăTÀIăLI U XML
VÀăCSDLăQUANăH ................................................. Error! Bookmark not defined.
2.1 CHUY Nă I XML SANG CSDL QUAN H .......... Error! Bookmark not
defined.
2.1.1
n gi n hoá đ c t DTD ........................... Error! Bookmark not defined.
2.1.2 C s c a các thu t toán chuy n đ i l c đ XML sang l c đ CSDL
quan h .................................................................. Error! Bookmark not defined.
2.1.3 Thu t toán g p c s (Basis Inlining) ........ Error! Bookmark not defined.
2.1.4 Thu t toán g p chia s (Shared Inlining) ... Error! Bookmark not defined.
2.1.5 Thu t toán g p c i ti n ............................... Error! Bookmark not defined.
2.1.5.1
n gi n hoá DTD .............................. Error! Bookmark not defined.
2.1.5.2 T o l p và gi n l c đ th DTD ......... Error! Bookmark not defined.

2.1.5.3 Sinh l c đ quan h ........................... Error! Bookmark not defined.
2.1.6 Thu t toán Xinsert-Ánh x d a trên h ng ti o c n DOM ................Error!
Bookmark not defined.
2.1.7 Thu t toán CPI (Constraint-Preserving Inlining)Error! Bookmark not
defined.
2.1.7.1. Ánh x DTD sang l c đ quan h ..... Error! Bookmark not defined.
2.1.7.2. Các ràng bu c ng ngh a trong DTD .. Error! Bookmark not defined.


2.1.7.3. Phát hi n và b o toàn các ràng bu c ng ngh a .Error! Bookmark not
defined.
2.2 CHUY Nă I CSDL QUAN H SANG XMLError! Bookmark not defined.
2.2.1 Chuy n đ i ph ng (Flat Translation) ......... Error! Bookmark not defined.
2.2.2 Chuy n đ i l ng(Nesting base Traslation) . Error! Bookmark not defined.
2.2.3 Thu t toán CoT (Chuy n đ i s d ng các ph thu c bao hàm)..........Error!
Bookmark not defined.
2.2.3.1. M t khoá ngo i gi a hai b ng ............. Error! Bookmark not defined.
2.2.3.2. Hai khoá ngo i gi a ba b ng ............... Error! Bookmark not defined.
2.2.3.3. L c đ quan h t ng quát .................. Error! Bookmark not defined.
Ch ngăIII: CH
NGăTRÌNHă NG D NG ........ Error! Bookmark not defined.
3.1 THU TăTOÁNăG P C I TI NăVÀăXINSERT ........... Error! Bookmark not
defined.
3.1.1 Mô t bài toán ............................................. Error! Bookmark not defined.
3.1.2 Ch ng trình DEMO .................................. Error! Bookmark not defined.
3.1.3 K T LU N ................................................ Error! Bookmark not defined.
PH N K T LU N ..................................................... Error! Bookmark not defined.
PH L C .................................................................... Error! Bookmark not defined.
TÀIăLI U THAM KH O ......................................... Error! Bookmark not defined.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

90 91 92 93 94 95 96 97 98 99 100........... Error! Bookmark not
defined.


DANH M C T

VI T T T

CSDL

C s d li u

RDB

Relational Database

XML

eXtensible Markup language

HTML

HyperText Markup Language

SGML

Standard Generalized Markup Language

W3C


World Wide Web Consortium

DTD

Document Type Definition

DOM

Document Oject Model

SAX

Simple API for XML

CSS

Cascading Style Sheets

XSl

Extensible Style Sheet Language

API

Application Progaramming Interfaces

DDL

Data definition Language


DML

Data Manipulation Language

CPI

Constraint- Preserving Inlining

ID

Inclusion Dependencies

FD

Function Dependency

EGD

Equality ậGenerating

TGD

Tuple-generating Dependencies

FT

Flat translation

NeT


Nesting-base Translation

CoT

Constraint Translation

IND

Inclusion Defendencies


M TS

THU T NG

Basic Inlining

G pc s

Share Inlining

G p chia s

New Inlining

G p c i ti n

Hybrid Inlining

G p lai ghép


DTD MAP Schema

L

XML Document

Tài li u XML

Cardinality Operator

Toán t l c l

XML Processor

Trình phân tích XML

Element nodes

Nút phân t

Integrity constraint

R ng bu c toàn v n

Set-value attribute

Thu c tính có giá tr t p h p

Relational keys


Khoá quan h

Relational recurive processing

Ti n trình đ quy quan h

Element graph

c đ ánh x DTD
ng

th các ph n t

Inlinable tree

Cây có th g p

Singteton constraint

Ràng bu c đ n

Equality- generating dependencies

Ph thu c sinh đ ng nh t

Child constraint

Ràng bu c con


Parent constraint

Ràng bu c cha

M ăđ u


H u h t các d

li u th

ng th c l u tr

cung c p cho ng

d

li u trong t

c d

và duy trì
báo v n là

ng lai. Các h th ng này

i s d ng cách truy c p d li u hi u qu và

đáng tin c y trong m t t
m nh m c a th


c l u tr

li u quan h và đ

trong các h qu n tr d
ph

ng m i đ

ch c. Tuy nhiên, t c đ

phát tri n

ng ma đi n t và nhu c u chuy n và nh n d

li u t khách hàng c ng nh các t ch c khác qua Internet đ ng
ngh a v i vi c m t s d li u c n đ

c gi i thoát kh i mô hình

gi i h n này. XML[1][2][10] đang n i lên nh
v

t tr i đ mô t và trao đ i d

m t tiêu chu n

li u, do v y các c


ch đ

chuy n đ i d li u đu c l u tr trong h qu n tr c s d li u
quan h

sang XML và ng

c l i là l nh v c quan tr ng c n

nghiên c u.
S thành công c a b t k công c nào k t n i gi a XML và h
qu n tr c s d li u quan h tr c ti p hay thông qua ngôn ng th c p
h n đ u ph thu c n ng n vào ch t l
d li u đ

ng gi n đ đ nh rõ c u trúc c a

c chuy n đ i. M t gi n đ m h và ch a hoàn thi n có th

d n t i vi c k t n i thi u chính xác ho c m t d li u. Các c ch suy
lu n các gi n đ quan h t các gi n đ không quan h đ u đ
minh t t b ng tài li u nh ng các ph

c ch ng

ng th c đ suy lu n m t gi n đ

XML thì khó hi u h n r t nhi u.
Cho t i hi n nay, vi c ch n l a m t d ng th c đ mô t gi n đ
XML còn h t s c khó kh n. G n đây, gi n đ XML n i lên nh m t tiêu

chu n ph bi n nh ng không chính th c đ đ nh d ng gi n đ XML.
ó là m t tiêu chu n có u th l n và toàn di n giúp h tr các ki u
đánh máy đ

c cài đ t s n phong phú và cho phép t o ra các ki u ph c


t p h n d a trên nh ng ki u đ

c cài đ t s n c ng nh nhi u tính n ng

h u d ng khác.
Lu n v n trình bày ph

ng pháp chuy n đ i d li u gi a XML

sang c s d li u quan h và ng

c l i d a trên l

c đ XML và l

c

đ quan h . C th , lu n v n đi sâu nghiên c u m t s thu t toán chuy n
đ ic b nh

ng c u trúc và m t thu t toán chuy n đ i h

ng d li u.


ng th i, d a trên các thu t toán c b n đó, lu n v n nghiên c u vi c
chuy n đ i có th đ m b o đ

c các ràng bu c, gi m d th a d li u, và

có th khai thác t i đa kh n ng, l i ích c a h
Lu năv năđ
Ch

cătrìnhăbƠyătrongă3ăch

ng ti p c n này.
ng

ng I: trình bày m t s khái ni m c b n v XML nh đ nh

ngh a DTD, l

c đ XML, trình phân tích tài li u, mô hình DOM … và

mô hình CSDL quan h nh các khái ni m v quan h , thu c tính, b ,
khoá ….
Ch

ngăII: Gi i thi u m t s thu t toán chuy n đ i d li u gi a

XML và mô hình quan h . Các thu t toán c b n nh g p c s , g p chia
s , g p c i ti n gi i quy t s ph c t p c a đ c t DTD, s xung đ t gi a
ki n trúc có th b c t nhi n c u mô hình d li u XML và b n ch t hai

m c c a mô hình quan h . Ba thu t toán CPI, NeT và CoT không ch
th c hi n t t vi c chuy n đ i c u trúc c a l
v m t ng ngh a c a l
thu t toán chuy n đ i l

c đ g c mà còn b o toàn

c đ trong quá trình chuy n đ i. Ngoài các
c đ , lu n v n gi i thi u m t thu t toán chuy n

đ i d li u Xinsert, thu t toán có kh n ng chuy n đ i d li u c a tài li u
XML sang d li u quan h theo h
Ch

ng ti p c n DOM.

ngă III: Nghiên c u cài đ t ng d ng minh ho cho m t s

thu t toán chuy n đ i d li u nh thu t toán g p c i ti n và Xinsert.


Ch

ngăI: KHÁIăNI MăXMLăVÀăMỌăHÌNHăD ăLI UăQUANăH

1.1 TÀIăLI UăXML
1.1.1 Gi iăthi uăXMLăvƠăngônăng ăđ nhăd ng
Nh t t c chúng ta đ u bi t, XML là vi t t t cho ch eXtensible
Markup Language. XML là m t ngôn ng đánh d u t


ng đ i m i đ

c

s d ng đ đ nh ngh a c u trúc các d li u trong m t tài liêu thông qua
các th [1][2].
Ngôn ng đ nh d ng (Markup Language) là ngôn ng đ

c dùng

đ trình bày các d li u trong m t tài li u.
Ngôn ng đ nh d ng mà m i ng

i quen thu c ngày nay là ngôn

ng HTML. HTML cho phép b n t o n i dung các trang Web t
đ n gi n.
Víăd 1.1

ng đ i


<Html>
<Head>
<Title>L i chào</Title>
</Head>
<Body>
<Center>
<B>
Chào t t c các b n h c sinh thân yêu!

</B>
</Center>
</Body>
</Html>
K t qu trang web trong trình duy t đ

c hi n th nh

sau:

đây HTML th c hi n đ nh d ng b ng các th

(tags) nh

<Head>, <Center>, <B>… Nh ng th này ch cho trình duy t (browser)
cách hi n th n i dung tài li u.


Gi ng nh HTML, XML dùng các th đ khai báo c u trúc d li u
trong file XML.

i m khác bi t chính gi a HTML và XML là trong khi

các th HTML ch a ý ngh a dùng đ trình bày d li u thì các th c a
XML ch a ý ngh a dùng đ đ nh ngh a c u trúc d li u. Ví d m t tài
li u đ t hàng (order) XML d

i đây:

Víăd 1.2

<? Xml version="1.0" encoding="UTF-8" ?>
<Order OrderNo="1023">
<OrderDate>2002-3-27</OrderDate>
<Customer>Peter Collingwood</Customer>
<Item>
<ProductID>1</ProductID>
<Quantity>5</Quantity>
</Item>
<Item>
<ProductID>4</ProductID>
<Quantity>3</Quantity>
</Item>
</Order>
Tài li u này ch ch a d li u, không đ c p gì đ n cách trình bày.
i u này có ngh a là m t b phân tích XML (XML parser) không c n
ph i hi u ý ngh a c a các th . Nó ch c n tìm các th và xác đ nh r ng
đây là m t tài li u XML h p l . Vì trình duy t không c n ph i hi u ý
ngh a c a các th , nên ta có th dùng b t k tên nào đ đ t cho th c ng
đ

c, trong đó tên đ t cho th b t đ u b ng ký t g ch chân (_), ký t s


(1,2,3…), ký t (a,A,b,B…), d u ch m (.), d u g ch n i (-), nh ng không
có kho ng tr ng.
Nhìn t ng quát, m t tài li u XML b t đ u b ng th khái báo ch th
x lý XML <? Xml version="1.0" encoding="UTF-8" ?>. T t c các ch
th x lý XML b t đ u b ng <? Và k t thúc b ng ?>
Chúng ta hãy quan sát k h n c u trúc c a m t tài li uXML.
Tr


c h t tài li u XML đ

c hình thành t các ph n t (element) XML

và các thu c tính c a các ph n t đó.
Trong ví d trên ta th y tài li u XML g m có ph n t

Order đ

c

g i là ph n t g c c a tài li u có thu c tính OrderNo v i giá tr 1023.
Bên trong ph n t g c Order có ch a:
- Ph n t

OrderDate v i giá tr là:2002-3-27

- Ph n t Customer v i giá tr là: Peter Collingwood.
- Hai ph n t

Item, m i ph n t

Item l i ch a m t ph n t

ProductID và m t ph n t Quantity.
ôi khi ta còn khai báo m t ph n t r ng trong tài li u XML (là
ph n t có tên, nh ng không ch a m t giá tr ), vì ta mu n dùng nó nh
m t ph n t tu ch n, có c ng đ


c, không có c ng không sao. Ví d

nh ph n t r ng MiddleInitial trong ph n t Customer d
Víăd 1.3
<Customer>
<FirstName>Stephen</FirstName>
<MiddleInitial></MiddleInitial>
<LastName>King</LastName>
</Customer>

i đây:


Có m t cách khác đ bi u di n ph n t r ng là b th đóng và
thêm m t d u "/"

cu i th m . Ta có th vi t l i ví d customer nh

sau:
Víăd 1.4
<Customer>
<FirstName>Stephen</FirstName>
<MiddleInitial/>
<LastName>King</LastName>
</Customer>
D nhiên ph n t r ng c ng có th có thu c tính nh ph n t
PhoneNumber th nhì d

i đây:


Víăd 1.5
<Customer>
<FirstName>Stephen</FirstName>
<MiddleInitial></MiddleInitial>
<LastName>King</LastName>
<PhoneNumber Location="Home">9847
2635</PhoneNumber>
<PhoneNumber Location="Work"></PhoneNumber>
</Customer>
1.1.2 Trìnhăso năth oăXML (XMLăEditors)ăvƠătrìnhăduy tăXMLă
t o ra các tài li u XML ta có th s d ng các trình so n th o
đ n gi n nh : Notepad, wordpad … Có r t nhi u các trình so n th o đ c
bi t đ

c dùng ph c v cho hi u ch nh n i dung file d li u XML.

n


gi n và d dùng nh t là trình so n th o XML notepad c a Microsoft. Các
trình so n th o chuyên nghi p h n nh XML Writer.
Nh ng ph n m m trình duy t đi n hình h tr XML (ch ki m tra
khuôn d ng XML h p l và cho phép k t h p CSS, XSL) bao g m:
Internet Explorer(IE), Netscape Navigator, Jumpo.
1.1.3 B ăphơnătíchăXMLăvƠăB ăki mătraăXML (XML Validator)
B phân tích là gói ph n m m đ

c s d ng chúng nh m t ph n

m m kèm theo c a ng d ng có ch a các th vi n cung c p các hàm, cho

phép phân tích n i dung và trích xu t d li u c a XML khá đ n gi n.
D

i đây là các trình phân tích th

ng dùng: XML cho Java (XML4J),

Microsoft XML Parser, Python XML Parse.
B ki m tra là các gói ph n m m cho phép ki m tra m t s chu n
trên XML. M t s b ki m tra th

ng dùng, n u s d ng b phân tích

XML4J c a IBM, b n có th dùng đ i t

ng DOM Writer đ làm b

ki m tra, ngoài ra còn có các b ki m tra nh XML Writer, Tidy, ….
1.1.4 CSSăvƠăXSL
CSS và XSL [8] là các b ng đ nh ki u (Style sheet). CSS thích h p
đ đ nh d ng tài li u h

ng v HTML, ta có th thay đ i font ch , c

ch , màu s c, đ t hình nh và yêu c u k t h p đ nh d ng c a CSS v i d
li u XML. B n thân XML ch đ nh ngh a các c u trúc l u tr d li u, nó
không có kh n ng t




×