Download presentation
Presentation is loading. Please wait.
1
XMLשפות שאילתה ב- Extensible Markup Language עמנואל זנו שרה מר ג 'ן
2
שפות שאילתה ב - XML עולם של נתונים נתונים לא מובנים )Text( נתונים מובנים (Data Base) נתונים מובנים חלקית )XML(
3
שפות שאילתה ב - XML מה שאנחנו כבר יודעים על XML XML : סטנדארד של קונצורציום ה -W3C כלי לתיאור בסיס נתונים מבחינת התוכן הוא הרחבה של ה - SGML (standard general markup language) מאפשר ייצוג ואחסון מאוד גמיש של הנתונים נוח להעברת נתונים בין אפליקציות שונות.
4
שפות שאילתה ב - XML דוגמה של נתוני XML Principles of Distributed Database Systems Ozsu Valduriez Prentice Hall 1999 Data on the Web Buneman Vianu Morgan Kaufmann 1999
5
שפות שאילתה ב - XML Data type definition (DTD) מתאר את המבנה הלוגי של המסמך : - האלמנטים וסוגם - תכונות אפשריות או הכרחיות לאלמנט - הירכיה וקינון מאפשר בדיקת תקנות הנתונים ניתן לייצג אותו בצורה גרפית ע " י עץ מורכב משני חלקים : הפתיחה ועץ אלמנטים
6
שפות שאילתה ב - XML Syntax ה -DTD : פתיחה מורכבת מ : - הצהרת XML: ללא חובה - הצהרת מסמך : ללא חובה גירסת XML תו התקן קיום חלק חיצוני
7
שפות שאילתה ב - XML Syntax ה -DTD : עץ אלמנטים הגדרת אלמנט : ה Subelements מאופינים ע"י - שמותם - #PCDATA (מחרוזת) דרגת ריבוי ה-subelement : “|” - או “+” - “*” - - "?" 1 או 0 הגדרת תכונות : התכונה מאופיינת ע"י שמה, סוגה ( CDATA), אם היא חובה או רשות ( #IMPLIED, #REQUIRED)
8
שפות שאילתה ב - XML דוגמה ל - DTD <!DOCTYPE db [ ]> Book AuthorTitle db year Book AuthorTitle year
9
שפות שאילתה ב - XML ומה עכשיו ?
10
שפות שאילתה ב - XML עולם של נתונים נתונים לא מובנים )Text( נתונים מובנים (Data Base) נתונים מובנים חלקית )XML( Information Retrieval (Google, Yahoo…) XQuery, XPath, XSLT… SQL
11
שפות שאילתה ב - XML שימושים בשאילתות XML בחירת מסמכים או אלמנטים לפי תוכנם או מבנם. בחירת תתי אלמנטים של אלמנט. שינויים מבניים : מיון, סכמות, שנוי בצורת הקינון... קומבינציה של נתונים ממסמכים שונים
12
שפות שאילתה ב - XML XPath שפת שאילתה פשוטה גישה לנתונים על פי מיקומם בעץ המידע ביטוי XPath מורכב מ : - ציר : המתאר את הקשרים המבניים עם שאר הנתונים - node test: סוג או שם האלמנט שרוצים להגיע אליו - מסנן ( predicates) : מחדד את בחירת הנתונים על פי תנאי בוליאני. מבנה בסיסי : xpath: {step}/{step}/ … /{step} {step}: {axis}::{node test}[predicate]
13
שפות שאילתה ב - XML הצירים :axis הצומת הנוכחי:self העוקבים: child, decsendant המקדימים:ancestors parent, האחים: following/preceding sibling
14
שפות שאילתה ב - XML descendant children sibling ancestor parent root Self
15
שפות שאילתה ב - XML XPath: פונקציות קיימים 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
שפות שאילתה ב - XML אפשרויות נוספות ב -XPath תנאים לוגיים : 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
שפות שאילתה ב - XML XQuery שפת שאילתה ב XML מבוססת על סינטקס של SQL. מורכב ב 80 % מבטויי Xpath. שפה קלה ומובנת למשתמש. מפותחת על ידי קונסורציון W3C. מורכב מביטויים מהסוג : - ביטויי FLWR - ביטויי List - ביטויי תנאי - ועוד...
19
שפות שאילתה ב - XML ביטויי FLWR FOR: מציין את המשתנה ומעביר אותו מערך לערך. LET: הגדרת משתנה לוקאלי. WHERE: מסנן את אוסף הנתונים לפי תנאי ספציפי. RETURN: בונה את תוצאת ה XML המתאימה. for $ in let $ := where return שקול למבנה SELECT-FROM-HAVING-WHERE ב SQL.
20
שפות שאילתה ב - XML ה DTD להבנת דוגמאות
21
שפות שאילתה ב - XML bib Book:year titleAuthor/editor last firstaffiliation If editor publisher price
22
שפות שאילתה ב - XML Advanced Programming in the Unix environment Stevens W. Addison-Wesley 65.95 Data on the Web Buneman Peter Suciu Dan Morgan Kaufmann Publishers 39.95
23
שפות שאילתה ב - XML דוגמה לביטוי FLWR 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} {count($y)} /* like the SELECT in SQL */ התוצאה הצפויה : >author_nb> Data on the Web 2
24
שפות שאילתה ב - XML טבלאות רלציוניות Bib_idBook_id טבלת Bib: טבלת Book: Book_idYearTitlePricePublisher טבלת :Author/Editor Author_idLastFirstEditor(y/n)Affiliation טבלת Author-Book: Book_idAuthor_id
25
שפות שאילתה ב - XML השאילתה ב SQL 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
שפות שאילתה ב - XML ביטויי List איחוד : 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
שפות שאילתה ב - XML אפשרויות נוספות ב XQuery כמה שימושים המתוארים על ידי ה W3C: שאילתה המתחשבת בסדר אלמנטים. שאילתה המקשרת בין נתונים שונים. שאילתת חיפוש קטעי טקסט. שאילתה השומרת על מבנה העץ.
29
שפות שאילתה ב - XML שאילתה המתחשבת בסדר אלמנטים ניתן, בעזרת פונקציות על צמתים המוגדרות ב -Xpath, לשלוף נתונים לפי מיקומם במסד הנתונום XML. דוגמה : יש לנו מסד נתונים של דוחות רפויים המתארים רצף פעולות שונות המרכיבים טיפול רפאוי.
30
שפות שאילתה ב - XML ה-DTD : !>DOCTYPE report [ ]>
31
שפות שאילתה ב - XML report section Title content anesthesia prepincision action observation action instrument geography
32
שפות שאילתה ב - XML הדוגמה : for $s in document("report1.xml")//section[section.title = "Procedure"] return ($s//instrument)[position()<=2] התוצאה הצפויה: using electrocautery. electrocautery מהם הכלים משתמשים בחלק ה -procedure של הדו " ח :
33
שפות שאילתה ב - XML שאילתה המקשרת בין נתונים שונים ניתן ליצור קומבינציה של נתונים המוכלים במסמכי XML שונים וליצור על בסיס זה מסמכים חדשים דוגמה : מסמכי XML המתארים מסד נתונים של מכירה פומבית online. המסמך users מתאר את הגולשים שהוזדהו באתר ומסמך items מתאר את הפריטים הנמצאים במכירה.
34
שפות שאילתה ב - XML DTD של מסמך ה-XML ל- users : <!DOCTYPE users [ ]> users User tuple User_idname rating
35
שפות שאילתה ב - XML DTD של מסמך ה-XML ל- items : <!DOCTYPE items [ ]> items Item tuple itemnodescription Offered_by Start_dateEnd_dateReserve_price
36
שפות שאילתה ב - XML השאילתה : מחזירה את מספר ותיאור האופניים שהם כעת במכירה, ממוינים לפי מספר פריט { 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 { $i/itemno } { $i/description } sort by (itemno) }
37
שפות שאילתה ב - XML התוצאה : 1003 Old Bicycle 1007 Racing Bicycle
38
שפות שאילתה ב - XML שאילתת חיפוש קטעי טקסט מחפש ומחזיר במסמכי XML חדשים קטעי טקסט הנמצאים באלמנטים שונים דוגמה : ( מבוסס על ה -DTD הראשון ) מחזיר את כל הכותרות המכילות את המילה web input()//title[contains(text(), “‘web")] התוצאה : Data on the Web
39
שפות שאילתה ב - XML שאילתה השומרת על מבנה העץ השאילתה מחזירה פלט בהתאם למבנה המסמך ( קינון ואלמנטים ). זה מאוד שימושי כאשר יש למבנה משמעות חשובה להבנת המסמך. שאילתות מהסוג הזה משתמשות לעתים די קרובות בקריאה רקורסיבית לפונקציות. דוגמה : בונה תוכן עיניינים של ספר.
40
שפות שאילתה ב - XML ה- DTD: <!DOCTYPE book [ ]>
41
שפות שאילתה ב - XML Image: source title Figure :width, heigth p Section:id,dif ficulty title Section:id,dif ficulty titleauthor book
42
שפות שאילתה ב - XML הגדרת הפונקציה : define function toc( element $e ) returns element* { let $n := local-name( $e ) return if ($n = "section") then { $e/@* } { toc($e/*) } else if ($n = "title") then $e else () }
43
שפות שאילתה ב - XML השאילתה : { toc( document("book1.xml")/book ) } התוצאה : <section id="intro" difficulty="easy"> Introduction Audience Web Data and the TwoCultures A Syntax For Data Base Types Representing Relational Databases
44
שפות שאילתה ב - XML לסיכום שפות שאילתה ב -XML, Xquery ו Xpath מנצלות את יתרונות מסמכי XML על מנת להבטיח העברת מידע קלה ונכונה.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.