1 / 44

XML שפות שאילתה ב-

XML שפות שאילתה ב-. Extensible Markup Language. עמנואל זנו שרה מר ג 'ן. עולם של נתונים. שפות שאילתה ב- XML. נתונים מובנים חלקית ) XML (. נתונים מובנים (Data Base). נתונים לא מובנים ) Text (. מה שאנחנו כבר יודעים על XML. שפות שאילתה ב- XML. XML : סטנדארד של קונצורציום ה- W3C.

fiona
Download Presentation

XML שפות שאילתה ב-

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XMLשפות שאילתה ב- Extensible Markup Language עמנואל זנו שרה מרג'ן

  2. עולם של נתונים שפות שאילתה ב- XML נתוניםמובנים חלקית )XML( נתונים מובנים (Data Base) נתונים לא מובנים )Text(

  3. מה שאנחנו כבר יודעים על XML שפות שאילתה ב- XML • XML : סטנדארד של קונצורציום ה-W3C • הוא הרחבה של ה- SGML (standard general markup language) • כלי לתיאור בסיס נתונים מבחינת התוכן • מאפשר ייצוג ואחסון מאוד גמיש של הנתונים • נוח להעברת נתונים בין אפליקציות שונות.

  4. דוגמה של נתוניXML שפות שאילתה ב- XML <bibliography> <book> <title> Principles of Distributed Database Systems </title> <author> Ozsu </author> <author> Valduriez </author> <publisher> Prentice Hall </publisher> <year> 1999 </year> </book> <book> <title> Data on the Web </title> <author> Buneman </author> <author> Vianu </author> <publisher> Morgan Kaufmann </publisher> <year> 1999 </year> </book> </bibliography>

  5. Data type definition (DTD) שפות שאילתה ב- XML • מתאר את המבנה הלוגי של המסמך: • - האלמנטים וסוגם • -תכונות אפשריות או הכרחיות לאלמנט • -הירכיה וקינון • מאפשר בדיקת תקנות הנתונים • ניתן לייצג אותו בצורה גרפית ע"י עץ • מורכב משני חלקים: הפתיחה ועץ אלמנטים

  6. Syntax ה-DTD : פתיחה שפות שאילתה ב- XML • מורכבת מ: • - הצהרת XML: ללא חובה • <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"> • - הצהרת מסמך: ללא חובה • <!DOCTYPE document [...]> גירסת XML תו התקן קיום חלק חיצוני

  7. Syntax ה-DTD : עץ אלמנטים שפות שאילתה ב- XML • הגדרת אלמנט: <!ELEMENT element (subelements-specification) > • ה Subelements מאופינים ע"י - שמותם • - #PCDATA (מחרוזת) • דרגת ריבוי ה-subelement: “|” -או • “+” - • “*” - • - "?" 1 או 0 • הגדרת תכונות:<!ATTLIST element (attributes) > • התכונה מאופיינת ע"י שמה, סוגה ( CDATA), אם היא חובה או רשות ( #IMPLIED, #REQUIRED)

  8. דוגמה ל- DTD שפות שאילתה ב- XML <!DOCTYPE db [ <!ELEMENT db (book)*> <!ELEMENT book (title,author,year)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT year (#PCDATA)> ]> db Book Book year year Title Author Title Author

  9. ומה עכשיו? שפות שאילתה ב- XML

  10. עולם של נתונים שפות שאילתה ב- XML נתוניםמובנים חלקית )XML( נתונים מובנים (Data Base) נתונים לא מובנים )Text( XQuery, XPath, XSLT… Information Retrieval (Google, Yahoo…) SQL

  11. שימושים בשאילתות XML שפות שאילתה ב- XML • בחירת מסמכים או אלמנטים לפי תוכנם או מבנם. • בחירת תתי אלמנטים של אלמנט. • שינויים מבניים : מיון, סכמות, שנוי בצורת הקינון... • קומבינציה של נתונים ממסמכים שונים

  12. XPath שפות שאילתה ב- XML • שפת שאילתה פשוטה • גישה לנתונים על פי מיקומם בעץ המידע • ביטוי XPath מורכב מ: • - ציר: המתאר את הקשרים המבניים עם שאר הנתונים • - node test: סוג או שם האלמנט שרוצים להגיע אליו • - מסנן ( predicates) : מחדד את בחירת הנתונים על פי תנאי בוליאני. • מבנה בסיסי: • xpath: {step}/{step}/…/{step} • {step}: {axis}::{node test}[predicate]

  13. הצירים:axis שפות שאילתה ב- XML הצומת הנוכחי: self העוקבים: child, decsendant המקדימים:ancestors parent , האחים: following/preceding sibling

  14. שפות שאילתה ב- XML root ancestor parent sibling Self children descendant

  15. XPath: פונקציות שפות שאילתה ב- XML • קיימים 4 סוגים של פונקיות המאפשרות לעבוד : • -על צמתים ( current(), position()( • -מחרוזות תווים ( contains(container,contained), • string- length(string)) - ערכים בוליאנים (true(),false()) : • -מספריים: (sum(node), ceiling(number))

  16. דוגמאות כלליות: שפות שאילתה ב- XML /bib/book/title /bib/book[@year>1980]/(title | author[1]) /descendants::node()[position()=3]

  17. אפשרויות נוספות ב-XPath שפות שאילתה ב- XML • תנאים לוגיים : for, if… • sum(for $x in /order/item return $x/price * $x/quantity) • existential qualifiers : every $x in /students/student/name satisfies $x = "Fred“ some $x in /students/student/name satisfies $x = "Fred" • אופרטורי קבוצות: except,intersect

  18. XQuery שפות שאילתה ב- XML • שפת שאילתה ב XML מבוססת על סינטקס של SQL. • מורכב ב 80% מבטויי Xpath. • שפה קלה ומובנת למשתמש. • מפותחת על ידי קונסורציון W3C. • מורכב מביטויים מהסוג: - ביטויי FLWR • - ביטויי List • - ביטויי תנאי • - ועוד...

  19. ביטויי FLWR שפות שאילתה ב- XML • FOR: מציין את המשתנה ומעביר אותו מערך לערך. • LET: הגדרת משתנה לוקאלי. • WHERE: מסנן את אוסף הנתונים לפי תנאי ספציפי. • RETURN: בונה את תוצאת ה XML המתאימה. • for $ <variable1> in <expression Xpath> • let $<variable2> := <expression Xpath> • where <condition> • return <result> • שקול למבנה SELECT-FROM-HAVING-WHERE ב SQL.

  20. ה DTD להבנת דוגמאות שפות שאילתה ב- XML <!ELEMENT bib (book* )> <!ELEMENT book (title, (author+ | editor+ ), publisher, price )> <!ATTLIST book year CDATA #REQUIRED > <!ELEMENT author (last, first )> <!ELEMENT editor (last, first, affiliation )> <!ELEMENT title (#PCDATA )> <!ELEMENT last (#PCDATA )> <!ELEMENT first (#PCDATA )> <!ELEMENT affiliation (#PCDATA )> <!ELEMENT publisher (#PCDATA )> <!ELEMENT price (#PCDATA )>

  21. שפות שאילתה ב- XML bib Book:year price publisher title Author/editor If editor last first affiliation

  22. שפות שאילתה ב- XML <bib> <book year="1992"> <title>Advanced Programming in the Unix environment</title> <author> <last>Stevens</last> <first>W.</first> </author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book> <book year="2000"> <title>Data on the Web</title> <author> <last>Buneman</last> <first>Peter</first> </author> <author> <last>Suciu</last> <first>Dan</first> </author> <publisher>Morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> </bib>

  23. דוגמה לביטויFLWR שפות שאילתה ב- XML • for $x in //bib/book /* like the FROM in SQL */ • let $y := $x/author /* no analog in SQL */ • where $x/title=“Data on the Web” • /* like the WHERE in SQL */ • return • >author_nb> • {$x/title} • <nb>{count($y)}</nb> /* like the SELECT in SQL */ • </author_nb> התוצאה הצפויה: >author_nb> <title>Data on the Web</title> <nb>2</nb> </author_nb>

  24. טבלאות רלציוניות שפות שאילתה ב- XML טבלת Bib: טבלת Book: טבלת :Author/Editor טבלת Author-Book:

  25. השאילתה ב SQL שפות שאילתה ב- XML SELECT Book_id, count(Author-Book.Author_id) FROM Book as B Author-Book as AB WHERE B.Book_id = AB.Book_id GROUP BY AB.Book_id

  26. ביטויי List שפות שאילתה ב- XML • איחוד: Union : {…}|{…} • חיתוך: Intersection : {…} intersect {…} • הפרדה: Difference : {…} except{…} • מיון:Sorting : {…} sort by (field1,field2,…) • פונקציות סכמה: …avg, max, min, sum

  27. ביטוי תנאי שפות שאילתה ב- XML • if ( condition) then (expression1) • else (expression2) • דוגמה: • if ( $book/@year <1980 ) • then “old book” • else “new book”

  28. אפשרויות נוספות ב XQuery שפות שאילתה ב- XML • כמה שימושים המתוארים על ידי ה W3C: • שאילתה המתחשבת בסדר אלמנטים. • שאילתה המקשרת בין נתונים שונים. • שאילתת חיפוש קטעי טקסט. • שאילתה השומרת על מבנה העץ.

  29. שאילתה המתחשבת בסדר אלמנטים שפות שאילתה ב- XML ניתן, בעזרת פונקציות על צמתים המוגדרות ב-Xpath , לשלוף נתונים לפי מיקומם במסד הנתונום XML. דוגמה : יש לנו מסד נתונים של דוחות רפויים המתארים רצף פעולות שונות המרכיבים טיפול רפאוי.

  30. שפות שאילתה ב- XML ה-DTD : !>DOCTYPE report [ <!ELEMENT report (section*)> <!ELEMENT section (section.title, section.content)> <!ELEMENT section.title (#PCDATA )> <!ELEMENT section.content (#PCDATA | anesthesia | prep | incision | action | observation )*> <!ELEMENT anesthesia (#PCDATA)> <!ELEMENT prep ( (#PCDATA | action)* )> <!ELEMENT incision ( (#PCDATA | geography | instrument)* )> <!ELEMENT action ( (#PCDATA | instrument )* )> <!ELEMENT observation (#PCDATA)> <!ELEMENT geography (#PCDATA)> <!ELEMENT instrument (#PCDATA)>]>

  31. שפות שאילתה ב- XML report section content Title anesthesia observation action prep incision action geography instrument instrument instrument

  32. שפות שאילתה ב- XML הדוגמה: מהם הכלים משתמשים בחלק ה-procedure של הדו"ח: for $s in document("report1.xml")//section[section.title = "Procedure"] return ($s//instrument)[position()<=2] התוצאה הצפויה: <instrument>using electrocautery.</instrument> <instrument>electrocautery</instrument>

  33. שאילתה המקשרת בין נתונים שונים שפות שאילתה ב- XML ניתן ליצור קומבינציה של נתונים המוכלים במסמכי XML שונים וליצור על בסיס זה מסמכים חדשים דוגמה: מסמכי XML המתארים מסד נתונים של מכירה פומבית online.המסמך users מתאר את הגולשים שהוזדהו באתר ומסמך items מתאר את הפריטים הנמצאים במכירה.

  34. שפות שאילתה ב- XML DTD של מסמך ה-XML ל- users : <!DOCTYPE users [ <!ELEMENT users (user_tuple*)> <!ELEMENT user_tuple (userid, name, rating?)> <!ELEMENT userid (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT rating (#PCDATA)> ]> users User tuple rating User_id name

  35. שפות שאילתה ב- XML DTD של מסמך ה-XML ל- items : <!DOCTYPE items [ <!ELEMENT items (item_tuple*)> <!ELEMENT item_tuple (itemno, description, offered_by, start_date?, end_date?, reserve_price? )> <!ELEMENT itemno (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT offered_by (#PCDATA)> <!ELEMENT start_date (#PCDATA)> <!ELEMENT end_date (#PCDATA)> <!ELEMENT reserve_price (#PCDATA)> ]> items Item tuple itemno description Start_date End_date Reserve_price Offered_by

  36. שפות שאילתה ב- XML השאילתה: מחזירה את מספר ותיאור האופניים שהם כעת במכירה, ממוינים לפי מספר פריט <result> { for $i in document("items.xml")//item_tuple where $i/start_date <= current-date() and $i/end_date >= current-date() and contains($i/description, "Bicycle") return <item_tuple> { $i/itemno } { $i/description } </item_tuple> sort by (itemno) } </result>

  37. שפות שאילתה ב- XML התוצאה : <result> <item_tuple> <itemno>1003</itemno> <description>Old Bicycle</description> </item_tuple> <item_tuple> <itemno>1007</itemno> <description>Racing Bicycle</description> </item_tuple> </result>

  38. שאילתת חיפוש קטעי טקסט שפות שאילתה ב- XML מחפש ומחזיר במסמכי XML חדשים קטעי טקסט הנמצאים באלמנטים שונים דוגמה: ( מבוסס על ה-DTD הראשון)מחזיר את כל הכותרות המכילות את המילהweb input()//title[contains(text(), “‘web")] התוצאה: <title>Data on the Web</title>

  39. שאילתה השומרת על מבנה העץ שפות שאילתה ב- XML השאילתה מחזירה פלט בהתאם למבנה המסמך ( קינון ואלמנטים). זה מאוד שימושי כאשר יש למבנה משמעות חשובה להבנת המסמך. שאילתות מהסוג הזה משתמשות לעתים די קרובות בקריאה רקורסיבית לפונקציות. דוגמה: בונה תוכן עיניינים של ספר.

  40. שפות שאילתה ב- XML ה- DTD: <!DOCTYPE book [ <!ELEMENT book (title, author+, section+)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT section (title, (p | figure | section)* )> <!ATTLIST section id ID #IMPLIED difficulty CDATA #IMPLIED> <!ELEMENT p (#PCDATA)> <!ELEMENT figure (title, image)> <!ATTLIST figure width CDATA #REQUIRED height CDATA #REQUIRED > <!ELEMENT image EMPTY> <!ATTLIST image source CDATA #REQUIRED > ]>

  41. שפות שאילתה ב- XML book title author Section:id,difficulty title Figure:width, heigth Section:id,difficulty p Image:source title

  42. שפות שאילתה ב- XML הגדרת הפונקציה: define function toc( element $e ) returns element* { let $n := local-name( $e ) return if ($n = "section") then <section> { $e/@* } { toc($e/*) } </section> else if ($n = "title") then $e else () }

  43. שפות שאילתה ב- XML השאילתה: <toc>{ toc( document("book1.xml")/book ) } </toc> התוצאה: <toc> <section id="intro" difficulty="easy"> <title>Introduction</title> <section> <title>Audience</title> </section> <section> <title>Web Data and the TwoCultures</title> </section> </section> <section id="syntax" difficulty="medium"> <title>A Syntax For Data</title> <section> <title>Base Types</title> </section> <section> <title>Representing Relational Databases</title> </section> </section> </toc>

  44. לסיכום שפות שאילתה ב- XML שפות שאילתה ב-XML , Xquery ו Xpath מנצלות את יתרונות מסמכי XML על מנת להבטיח העברת מידע קלה ונכונה.

More Related