Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΝικόστρατος Αναστασιάδης Τροποποιήθηκε πριν 8 χρόνια
1
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Τεχνολογίες XML
2
XML και DTD Υποστηρικτικές τεχνολογίες Γλώσσες ερωτημάτων XML
3
Βάσεις Δεδομένων και Παγκόσμιος Ιστός3 HTML Χρησιμοποιεί tags ανάμεσα στο κείμενο......για να περιγράψει το layout της σελίδας Alan, 42 years, agb@abc.com Δεν διευκολύνει άλλα προγράμματα να κατανοήσουν την δομή και το περιεχόμενο μιας σελίδας Ο wrapper «σπάει» αν το italic αλλάξει σε teletype Το πρόβλημα είναι οτι σχεδιάστηκε ειδικά για να περιγράψει την παρουσίαση και όχι το περιεχόμενο Καθένας θα ήθελε να υπάρχει «ένα ακόμη tag» στην HTML προκειμένου να βοηθηθεί η δική του εφαρμογή
4
Βάσεις Δεδομένων και Παγκόσμιος Ιστός4 XML Σχεδιάστηκε ειδικά για να περιγράψει το περιεχόμενο (content) και όχι την παρουσίαση μιας σελίδας Βασικές διαφορές από την HTML Μπορεί κανείς να ορίσει νέα tags κατά βούληση Τα tags μπορούν να εφωλιασθούν δομικά σε οποιοδήποτε βάθος Ενα έγγραφο XML μπορεί προαιρετικά να περιέχει μια περιγραφή της γραμματικής του Τα tags δομούν το περιεχόμενο Kostas … Το πως θα εμφανιστούν ορίζεται ξεχωριστά από κάποιο stylesheet (XSL)
5
Βάσεις Δεδομένων και Παγκόσμιος Ιστός5 XML (2) Ο ρόλος της XML Προτάθηκε σαν μια markup γλώσσα περιγραφής εγγράφων Καταγωγή απο την SGML (ψηφιακές βιβλιοθήκες) Εξελίσσεται όμως σε ένα παγκόσμιο πρότυπο για ανταλλαγή πληροφορίας Αυτό τράβηξε το ενδιαφέρον της κοινότητας των βάσεων δεδομένων Βασικό συστατικό της XML είναι το element Κείμενο που περικλείεται από ένα ζεύγος tags Start-tag και end-tag (markups) Εκτός από την λογική δομή (elements), τα tags περιγράφουν και την φυσική δομή (entities) που δεν ενδιαφέρει στα πλαίσια των βάσεων Alan 42 alan@abc.com abrown@mail.com
6
Βάσεις Δεδομένων και Παγκόσμιος Ιστός6 Εlements και tags Τι μπορεί να υπάρχει ανάμεσα στα start-tag και end-tag; Απλό κείμενο Αλλα elements Οποιοδήποτε μίγμα των δύο παραπάνω ! Τα tags στην XML: Ορίζονται από τους χρήστες, δεν υπάρχουν προκαθορισμένα tags όπως στην HTML Ανοίγουν και κλείνουν πάντα με την «σωστή» σειρά (σαν παρενθέσεις) Εξαίρεση: empty tag, πχ. (το / στο τέλος) = Element, element content, και subelement
7
Βάσεις Δεδομένων και Παγκόσμιος Ιστός7 XML attributes Ενα element μπορεί να περιέχει μηδέν ή περισσότερα attributes Δεν σχετίζονται με τα attributes στις σχεσιακές βάσεις Περιγράφουν ιδιότητες (properties) του element trompette no 6 420.12 31 rue Croix-Bosset 92874 Οπως και τα elements, τα attributes ορίζονται από τον χρήστη
8
Βάσεις Δεδομένων και Παγκόσμιος Ιστός8 Attributes και elements Διαφορές με elements: Η τιμή του attribute είναι πάντα ένα string σε εισαγωγικά, ενώ το element μπορεί να περιέχει άλλα elements Ενα element μπορεί να έχει το πολύ ένα attribute με ένα όνομα, ενώ μπορεί να έχει πολλά subelements με το ίδιο όνομα Τα attributes: Φανερώνουν την καταγωγή της XML σαν document markup γλώσσας Εισάγουν κάποια δυσκολία στην ανταλλαγή πληροφορίας: αναπαράσταση σαν attribute ή σαν subelement; Alan agb@abc.com
9
Βάσεις Δεδομένων και Παγκόσμιος Ιστός9 ΧML και ημιδομημένα δεδομένα Η XML είναι κατάλληλη για την αναπαράσταση ημιδομημένων δεδομένων ssd-expression: {person: {name: “Alan”, age: 42, email: “agb@abc.com”}} Αντίστοιχο XML: Alan 42 agb@abc.com Διαφορές με ημιδομημένα δεδομένα: Μοντέλο XML Graph, XML references, διάταξη (order), μίξη elements με κείμενο, επιπλέον στοιχεία της XML
10
Βάσεις Δεδομένων και Παγκόσμιος Ιστός10 XML Graph Ενα μοντέλο για XML data: XML Graph Οι κόμβοι αντιστοιχούν στα elements Διαφορά με SSD Graph: οι ετικέτες είναι στους κόμβους Εύκολη η μετατροπή, ιδίως αν έχουμε δένδρο Μπορούμε να έχουμε γράφο; - ΝΑΙ
11
Βάσεις Δεδομένων και Παγκόσμιος Ιστός11 XML References H XML έχει έναν μηχανισμό ώστε ένα element να μπορεί να «δείχνεται» από περισσότερους από έναν «πατέρες» Ορίζοντας έτσι γράφο αντί για δένδρο Ο μηχανισμός είναι attributes τύπου ID, IDREF, και IDREFS Τα ID αναθέτουν ταυτότητες στα elements Τα IDREF «δείχνουν» στα ID από άλλα elements, οπουδήποτε Nevada... Carson City Ποιά attributes είναι τύπου ID / IDREF; Πάντως όχι κατ’ ανάγκη αυτά που λέγονται id / idref Αλλά αυτά που ορίζονται από το DTD (στην συνέχεια)
12
Βάσεις Δεδομένων και Παγκόσμιος Ιστός12 Διάταξη Τα δύο SSD είναι ισοδύναμα: {person: {firstname: “John”, lastname: “Smith”}} {person: {lastname: “Smith”, firstname: “John”}} Ενώ τα δύο XML δεν είναι ισοδύναμα: John Smith John Τα XML attributes δεν είναι διατεταγμένα Τα παρακάτω είναι ισοδύναμα: Η απαίτηση για διάταξη δυσκολεύει την αποδοτική διαχείριση των δεδομένων XML Συχνά η διάταξη αγνοείται σε εφαρμογές ανταλλαγής πληροφορίας
13
Βάσεις Δεδομένων και Παγκόσμιος Ιστός13 Μίξη elements και κειμένου Το παρακάτω επιτρέπεται στην XML Λέμε ότι το person έχει mixed content This is my best friend Alan 42 I am not too sure about the following email agb@abc.com Δείχνει την εγγραφο-κεντρική καταγωγή της XML Κάπως «αφύσικο» από την πλευρά των βάσεων δεδομένων Προτιμούμε το element content
14
Βάσεις Δεδομένων και Παγκόσμιος Ιστός14 Επιπλέον στοιχεία της XML Εγγραφο-κεντρικά στοιχεία που δεν χρειάζονται στην ανταλλαγή δεδομένων Σχόλια Processing Instructions Αρχική γραμμή Προαιρετικό Document Type Definition (DTD) Ορίζει την γραμματική του κειμένου … root element
15
Βάσεις Δεδομένων και Παγκόσμιος Ιστός15 DTD Document Type Definition (DTD): αναπόσπαστο μέρος της XML Προτάθηκε σαν μια γραμματική για τα XML έγγραφα Σε κάποιο βαθμό μπορεί να ιδωθεί σαν σχήμα για δεδομένα μορφοποιημένα σε XML Ενα DTD που περιγράφει δυαδικά δένδρα: Τα DTDs μοιάζουν να ορίζουν τύπους δεδομένων <!DOCTYPE db [...]>
16
Βάσεις Δεδομένων και Παγκόσμιος Ιστός16 Δήλωση attributes στο DTD Σύνδεση των attributes με τα elements στα οποία εμφανίζονται <name language=“French” department=“Music”>trompette 420.12 <!ATTLIST name language CDATA #REQUIRED department CDATA #IMPLIED> Ορισμός των attributes #REQUIRED υποχρεωτικό, #IMPLIED προαιρετικό Τύπος CDATA = string Τύποι ID, IDREF, IDREFS
17
Βάσεις Δεδομένων και Παγκόσμιος Ιστός17 Well-formed και valid Well-formed XML έγγραφα Τα tags πρέπει να είναι σωστά εμφωλιασμένα Τα attributes ενός element πρέπει να είναι μοναδικά Valid XML έγγραφο Είναι well-formed Εχει κάποιο DTD Συμμορφώνεται με αυτό το DTD Περιορισμοί του DTD σαν σχήμα για δεδομένα XML Δεν υπάρχουν ατομικοί τύποι (πχ. integer) Δεν υπάρχουν περιορισμοί διαστήματος (πχ. 0-140) Ο τύπος ενος element είναι global (πχ. ίδιο name και σε person και σε course;) Δεν προσδιορίζει τον τυπο των IDREFs
18
XML και DTD Υποστηρικτικές τεχνολογίες Γλώσσες ερωτημάτων XML
19
Βάσεις Δεδομένων και Παγκόσμιος Ιστός19 XML Namespaces Πρόβλημα: ο τύπος των element είναι global Το ίδιο έγγραφο πρέπει να μπορεί να χρησιμοποιηθεί από πολλά προγράμματα που καταλαβαίνουν άλλα markups Συγκρούσεις στην ονοματολογία; Λύση: XML Namespaces = συλλογές ονομάτων Default namespace ( urn:loc.bla ) για το <book xmlns=“urn:loc.bla” xmlns:isbn=“urn:bla.bla”> the title 123456 Επίσης και για τα attibutes Baby food
20
Βάσεις Δεδομένων και Παγκόσμιος Ιστός20 XML Schema Αντιμετωπίζει τις ανεπάρκειες του DTD Ορίζει αυστηρότερα σύνθετους τύπους, με βασικούς τύπους και περιορισμούς Εκφράζεται και το ίδιο σε ΧΜL Ενα απόσπασμα:
21
Βάσεις Δεδομένων και Παγκόσμιος Ιστός21 XSL Αποτελείται από τρια ξεχωριστα τμήματα XSL Formating Objects Ορίζει το format παρουσίασης ενός εγγράφου XML XPath: XML Path Language Επιλέγει τμήματα ενός εγγράφου XML Απλοποιημένη μορφή, επιστρέφει τα βιβλία σε ένα XML (πίσω): database/biblio/book (ονόματα XML tags) Επιστρέφει τους πρώτους συγγραφείς των βιβλίων: root()/descendant::book/child::author[position()=first()] XSLT: XSL Transformation language Μετατρέπει ένα έγγραφο XML σε κάποιο άλλο έγγραφο
22
Βάσεις Δεδομένων και Παγκόσμιος Ιστός22 XSLT: παράδειγμα Roux Combalusier 1976 Database Systems Smith 1999 Database Systems... Book Titles Book Titles <xsl:for-each select=“database/biblio/book”> Μετατρέπει το XML σε έναν HTML κατάλογο των τίτλων των βιβλίων
23
XML και DTD Υποστηρικτικές τεχνολογίες Γλώσσες ερωτημάτων XML
24
Βάσεις Δεδομένων και Παγκόσμιος Ιστός24 XML-QL Η XML-QL μοιάζει με τις γλώσσες για SSD – προσαρμογή όμως σε XML Patterns και path expressions για να επιλέγει τμήματα από τα XML δεδομένα εισόδου Μεταβλητές στις οποίες δεσμεύονται δεδομένα Templates που υπαγορεύουν πως θα κατασκευαστούν τα XML δεδομένα του αποτελέσματος Θεωρεί ότι το μοντέλο γράφου έχει τις ετικέτες στις ακμές where Morgan Kaufmann $T $A in “www.abc.com/bib.xml” construct $A
25
Βάσεις Δεδομένων και Παγκόσμιος Ιστός25 ΧΜL-QL (2) Δομή ερωτήματος σε σχέση με Lorel: where from + where, construct select Τα patterns ορίζουν τι πρέπει να υπάρχει, και όχι τι δεν πρέπει να υπάρχει Το pattern θα ταιριάξει με κάθε δυνατό τρόπο στα δεδομένα, και οι μεταβλητές θα δεσμευτούν αντίστοιχα Στην πραγματικότητα δεσμεύονται στα oids των κόμβων (elements) Πχ. το pattern $X $Y 1 2 3 4 $X $Y 1 2 1 4 3 2 3 4
26
Βάσεις Δεδομένων και Παγκόσμιος Ιστός26 Κατασκευή XML αποτελέσματος Μέσω templates στο construct clause Η συντομογραφία … σημαίνει … where Morgan Kaufmann $T $A in “www.abc.com/bib.xml” construct $A $T Αποτέλεσμα: ένα element για κάθε binding των $Α, $Τ... Όλα τα elements του αποτελέσματος μπαίνουν στο root Παραλείπουμε το root element στα ακόλουθα για ευκολία
27
Βάσεις Δεδομένων και Παγκόσμιος Ιστός27 Προαιρετικά elements Θέλουμε τους τίτλους όλων των βιβλίων και τις τιμές όπου υπάρχουν Τα elements στην XML μπορεί να είναι προαιρετικά Αν βάλουμε τo στο pattern, θα αποκλείσουμε από το αποτέλεσμα τα βιβλία χωρίς τιμή Λύση: εμφωλιασμένα ερωτήματα Μετά το «in» ακολουθεί URL κάποιου XML εγγράφου, ή μεταβλητή δεσμευμένη σε τμήμα ενός XML εγγράφου where $B in “www.abc.com/bib.xml”, $T in $B construct $T where $P in $B construct $P
28
Βάσεις Δεδομένων και Παγκόσμιος Ιστός28 Grouping Παράδειγμα: η XML βάση έχει elements με πολλούς σε κάθε Ερώτημα: βρες όλους τους authors, και για κάθε έναν τους τίτλους των βιβλίων που έγραψε (regrouping) where $A in “www.abc.com/bib.xml” construct $A where $A $T in “www.abc.com/bib.xml” construct $T
29
Βάσεις Δεδομένων και Παγκόσμιος Ιστός29 Attributes, joins Ερωτήματα πάνω σε attributes Βρες τους τίτλους των βιβλίων στα γαλλικά where element_as $T in “abc.xml” construct $T Το element_as δεσμεύει μεταβλητη σε όλο το element αντί για το element content μόνον (default, καθώς και content_as) Βρες όλες τις γλώσσες των βιβλίων where in “abc.xml” construct $L Join: βρες συγγραφείς που έχουν τουλάχιστον δύο βιβλία where $A content_as $B1 in “abc.xml”, $A content_as $B2 in “abc.xml”, $B1 != $B2 construct $A
30
Βάσεις Δεδομένων και Παγκόσμιος Ιστός30 Regular path expressions DTD που ορίζει αναδρομικά το element Ερώτημα: το όνομα κάθε part που περιέχει άλλο part μάρκας “Ford” Ανεξάρτητα από το βάθος του εμφωλιασμού where $N Ford in “www.abc.com/parts.xml” construct $N Πιο πολύπλοκες εκφράσεις Επιπλέον, το wildcard ταιριάζει με κάθε tag where $R in “www.abc.com/parts.xml” construct $R
31
Βάσεις Δεδομένων και Παγκόσμιος Ιστός31 Quilt και ΧQuery Πολλές άλλες γλώσσες ερωτημάτων για XML H XQuery γίνεται το πρότυπο γλώσσας ερωτημάτων για XML Επηρεασμένη απο την XML-QL, και βασισμένη στην Quilt H Quilt δομείται πάνω σε FLWR (προφέρεται “flower”) expressions For: δεσμεύει μεταβλητές, let: εισάγει νέες μεταβλητές, where: θέτει συνθήκες, return: επιστρέφει αποτελέσματα Δώσε τους συγγραφείς των βιβλίων σε αλφαβητική σειρά, και για κάθε συγγραφέα τα βιβλία του ταξινομημένα με βάση την ημερομηνία έκδοσης FOR $a IN distinct(document(“biblio.xml”)//author) RETURN $a/text() FOR $b IN document(“biblio.xml”)//book[author=$a] RETURN $b/title, $b/date SORTBY date DESCENDING SORTBY name
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.