Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bookmark not defined.. Bo
Trang 1I H CăQUỌCăGIAăHÀăN I
TR NăPH NGăNHUNG
CHUY Nă I D LI U GI A XML VÀăC ăS D LI U QUAN H
GVHD : PGS.TS OÀN V NăBANă
HÀăN I, 20
Trang 2DANH 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
Trang 32.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
Trang 4DANH 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
Trang 5M T S THU T NG
Basic Inlining G p c 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 c đ ánh x DTD
XML Document Tài li u XML
Cardinality Operator Toán t l c l ng
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 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
Trang 6H u h t các d li u th ng m i đ c l u tr và duy trì
trong các h qu n tr d li u quan h và đ c d báo v n là
ph ng th c l u tr d li u trong t ng lai Các h th ng này
cung c p cho ng i s d ng cách truy c p d li u hi u qu và đáng tin c y trong m t t ch c Tuy nhiên, t c đ phát tri n
m nh m c a th 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 m t tiêu chu n
v t tr i đ mô t và trao đ i d 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 ng gi n đ đ nh rõ c u trúc c a
d li u đ 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 đ c ch ng
minh t t b ng tài li u nh ng các ph 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
Trang 7t 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
đ i c b n h 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 ng ti p c n này
Lu năv năđ cătrìnhăbƠyătrongă3ăch ng
Ch 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 c đ g c mà còn b o toàn
v m t ng ngh a c a l c đ trong quá trình chuy n đ i Ngoài các
thu t toán chuy n đ i l 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 ng ti p c n DOM
Ch 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
Trang 8Ch 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 ng đ i
đ n gi n
Víăd 1.1
Trang 9đâ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
<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:
Trang 10Gi 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
Trang 11(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 i đây:
Víăd 1.3
<Customer>
<FirstName>Stephen</FirstName>
<MiddleInitial></MiddleInitial>
<LastName>King</LastName>
</Customer>
Trang 12Có 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
Trang 13gi 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