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