ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml...

19
1 Βάσεις Δεδομένων ΙΙ Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Εισαγωγή Πολλές εφαρμογές διαδικτύου υποστηρίζουν web διεπαφές για προσπέλαση σε πληροφορίες που είναι αποθηκευμένες σε μία ή περισσότερες ΒΔ. HTML (Ηypertext Markup Language) Χρησιμοποιείται για τη μορφοποίηση και δόμηση web εγγράφων αλλά δεν είναι κατάλληλη για τον προσδιορισμό δεδομένων που εξάγονται από ΒΔ. XML (eXtended Markup Language) Πρότυπο για τη δόμηση και ανταλλαγή στο web. Μπορεί να χρησιμοποιηθεί για να παρέχει πληροφορίες για τη δόμηση και σημασία των δεδομένων σε Web σελίδες αντί να απλά να προσδιορίζει πως μορφοποιούνται οι web σελίδες για παρουσίαση στην οθόνη. Η μορφοποίηση προσδιορίζεται ξεχωριστά με μια γλώσσα μορφοποίησης όπως η XSL (eXtended Stylesheet Language).

Transcript of ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml...

Page 1: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

1

Βάσεις Δεδομένων ΙΙ

Διάλεξη 5η

XML και ΒΔ στο Διαδίκτυο

Δ. Χριστοδουλάκης - Α. ΦωκάΤμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007

ΕισαγωγήΠολλές εφαρμογές διαδικτύου υποστηρίζουν web διεπαφές γιαπροσπέλαση σε πληροφορίες που είναι αποθηκευμένες σε μία ήπερισσότερες ΒΔ.

HTML (Ηypertext Markup Language)Χρησιμοποιείται για τη μορφοποίηση και δόμηση web εγγράφων αλλά δενείναι κατάλληλη για τον προσδιορισμό δεδομένων που εξάγονται από ΒΔ.

XML (eXtended Markup Language) Πρότυπο για τη δόμηση και ανταλλαγή στο web. Μπορεί να χρησιμοποιηθεί για να παρέχει πληροφορίες για τη δόμηση καισημασία των δεδομένων σε Web σελίδες αντί να απλά να προσδιορίζειπως μορφοποιούνται οι web σελίδες για παρουσίαση στην οθόνη.Η μορφοποίηση προσδιορίζεται ξεχωριστά με μια γλώσσα μορφοποίησηςόπως η XSL (eXtended Stylesheet Language).

Page 2: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

2

Δομημένα, Ημιδομημένα και Μη ΔομημέναΔεδομένα.

Οι πληροφορίες που είναι αποθηκευμένες σε ΒΔ είναι γνωστές σαν δομημέναδεδομένα επειδή παριστάνονται με αυστηρή μορφοποίηση. Το ΣΔΒΔ ελέγχειώστε να διασφαλίζεται ότι όλα τα δεδομένα ακολουθούν τις δομές και τουςπεριορισμούς που προσδιορίζονται στο σχήμα.

Σε κάποιες εφαρμογές, τα δεδομένα συλλέγονται με ένα συγκεκριμένο τρόπο πρινγίνει γνωστό πως ακριβώς θα αποθηκευθούν. Τα δεδομένα αυτά μπορεί να έχουνκάποια δομή αλλά οι πληροφορίες που συλλέγονται δεν έχουν όλες ταυτόσημηδομή. Αυτός ο τύπος δεδομένων είναι γνωστός ως ημιδομημένα δεδομένα.

Στα ημιδομημένα δεδομένα, οι πληροφορίες του σχήματος αναμιγνύονται με τιςτιμές δεδομένων, αφού κάθε αντικέιμενο μπορεί να έχει διαφορετικάγνωρίσματα που δεν είναι γνωστά εκ των προτέρων. Αυτός ο τύποςδεδομένων συχνά αναφέρεται ως αυτο-επιγραφικά δεδομένα.

Στα μη δομημένα δεδομένα, υπάρχουν πολύ περιορισμένες ενδείξεις για τοντύπο των δεδομένων. Ένα τυπικό παράδειγμα είναι ένα έγγραφο κειμένου πουπεριέχει και κάποια δεδομένα που θεωρούνται μη δομημένα δεδομένα. Τέτοιουτύπου δεδομένα περιέχουν και σελίδες web σε html.

Δομημένα, Ημιδομημένα και Μη ΔομημέναΔεδομένα.

Τα ημι-δομημένα δεδομένα μπορούν να παρουσιαστούν σανκατευθυνόμενοι γράφοιΟι ετικέτες στις κατευθυνόμενες πλευρές παριστάνουν τα ονόματαστο σχήμα: ονόματα γνωρισμάτων, τύποι αντικειμένων (ή τύποιοντοτήτων, ή κλάσεων) και συσχετίσεις.Οι εσωτερικοί κόμβοι παριστάνουν ατομικά αντικείμενα ή σύνθεταγνωρίσματα. Οι κόμβοι φύλα παριστάνουν πραγματικές τιμές δεδομένων απλών(ατομικών) γωνρισμάτων.

Page 3: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

3

Αναπαράσταση ημι-δομημένων δεδομέων σαν γράφος

Ιεραρχικό(Δενδροειδές) ΜοντέλοΔεδομένων τηςXML

Ένα πολύπλοκοXML στοιχείο πουονομάζεται<projects>.

Page 4: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

4

Ιεραρχικό Μοντέλο Δεδομένων της XML

Υπάρχουν δύο βασικές δομικές έννοιες: στοιχεία καιγνωρίσματα. Τα γνωρίσματα παρέχουν επιπλέον πληροφορίεςπου περιγράφουν τα στοιχεία.Όπως και στην HTML, τα στοιχεία προσδιορίζονται σε έναέγγραφο από την ετικέτα αρχής και την ετικέτα τέλους.

Ετικέτα αρχής <name>Ετικέτα τέλους </name>

Τα πολύπλοκα στοιχεία κατασκευάζονται από άλλα ιεραρχικά, ενώ τα απλά στοιχεία περιέχουν τιμές δεδομένων.

Υπάρχει αντιστοιχία μεταξύ της XML και της δενδρικής δομής. Στηδενδρική δομή, οι εσωτερικοί κόμβοι παριστάνουν πολύπλοκαστοιχεία και οι κόμβοι φύλα παριστάνουν απλά στοιχεία. Γι’ αυτό τολόγο το μοντέλο της XML ονομάζεται δενδρικό ή ιεραρχικό.

Ιεραρχικό Μοντέλο Δεδομένων της XMLΤα XML έγγραφα κατατάσσονται σε τρεις κατηγορίες:

1. XML έγγραφα που επικεντρώνονται στα δεδομένα:Έχουν πολλά μικρά δεδομένα που ακολουθούν μια συγκεκριμένηδομή και επομένως μπορούν να εξαχθούν από μια δομημένη βάσηδεδομένων. Μορφοποιούνται σαν XML έγγραφα για να μπορούν ναδιακινηθούν και να παρουσιαστούν στο web.

2. XML έγγραφα που επικεντρώνονται στo έγγραφο :Έγγραφα με κείμενα μεγάλου όγκου, όπως άρθρα ειδήσεων ήβιβλία. Υπάρχουν λίγα ή καθόλου δομημένα στοιχεία δεδομένων.

3. Υβριδικά XML έγγραφα:Τμήματα που περιέχουν δομημένα δεδομένα και άλλα τμήματα πουείναι κατ’ εξοχήν κείμενα ή χωρίς δόμηση.

Page 5: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

5

XML Έγγραφα, DTD, και XML Σχήμα.

Καλώς Ορισμένα XML έγγραφαΠρέπει να αρχίζει με μια δήλωση της έκδοσης της XML που χρησιμοποιείται. Θα πρέπει να ακολουθεί το συντακτικό του δενδρικού μοντέλου.

Να υπάρχει ένα στοιχείο ρίζαΚάθε στοιχείο πρέπει να περιλαμβάνει ένα ζεύγος ετικετών αρχής και τέλους πουπερικλείονται μεταξύ των ετικετών αρχής και τέλους του κόμβου γονέα.

Πρέπει να είναι συντακτικά σωστό. Αυτό επιτρέπει την επεξεργασία του από πρωτογενείς επεξεργαστές που σαρώνουν τοέγγραφο και παράγουν μια εσωτερική δενδρική δομή.DOM (Document Object Model)

Ένα τυπικό σύνολο από συναρτήσεις API και επιτρέπει σε προγράμματα ναδιαχειριστούν τη δενδρική αναπαράσταση που προκύπτει και αντιστοιχεί σε ένα καλάορισμένο έγγραφο XML. Όλο το έγγραφο θα πρέπει να σαρωθεί από την αρχή.

SAX (Simple API for XML)Επιτρέπει την επεξεργασία εγγράφων XML κατά τη σάρωση ειδοποιώντας το πρόγραμμαεπεξεργασίας όταν βρεθεί μια ετικέτα αρχής ή τέλους. Ευκολότερη η επεξεργασίαμεγάλων εγγράφων

Έγκυρα XML έγγραφαΤο έγγραφο πρέπει να είναι καλώς ορισμένο και επιπλέον τα ονόματα τωνστοιχείων που χρησιμοποιούνται στις ετικέτες πρέπει να ακολουθούν τη δομήπου ορίζεται σε ένα ξεχωριστό XML DTD (Document Type Definition) αρχείο ήσε ένα XML αρχείο σχήματος.

XML Έγγραφα, DTD, και XML Σχήμα.

Page 6: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

6

XML Έγγραφα, DTD, και XML Σχήμα.Συμβολισμοί XML DTD

* προαιρετικό πλειότιμοΤο στοιχείο μπορεί να επαναληφθεί 0 ή περισσότερες φορές στο έγγραφο

+ απαιτούμενο πλειότιμοΤο στοιχείο μπορεί να επαναληφθεί μία ή περισσότερες φορές στο έγγραφο

? προαιρετικό απλό (μη επαναλαμβανόμενο) στοιχείοΤο στοιχείο μπορεί να 0 ή μία φορά στο έγγραφο

απαιτούμενο απλό (μη επαναλαμβανόμενο) στοιχείοΤο στοιχείο πρέπει να εμφανιστεί ακριβώς μια φορά στο κείμενο.

Τύπος στοιχείουΠροσδιορίζεται με παρενθέσεις που ακολουθούν το στοιχείο

#PCDATA - το στοιχείο είναι κόμβος φύλοΌνοματα άλλων στοιχείων – εσωτερικός κόμβος με παιδιά αυτά τα στοιχεία.

Οι παρενθέσεις μπορούν να εμφωλεύονται όταν προσδιορίζονται στοιχεία.

Το σύμβολο της μπάρας ( e1 | e2 ) προσδιορίζει ότι στο έγγραφο μπορεί ναεμφανιστεί είτε το e1 είτε το e2.

XML Έγγραφα, DTD, και XML Σχήμα.

Περιορισμοί του XML DTD

Οι τύποι δεδομένων στο DTD δεν είναι πολύ γενικοί.

Το DTD έχει την δική του ειδική σύνταξη και επομένως απαιτείεξειδικευμένους επεξεργαστές.

Όλα τα DTD στοιχεία υποχρεώνονται πάντα να ακολουθούν τηνκαθορισμένη διάταξη του εγγράφου, έτσι που δεν επιτρέπονται μηδιατεταγμένα έγγραφα.

Page 7: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

7

XML Σχήμα

Η ΧΜL γλώσσα σχήματος είναι ένα πρότυπογια τον προσδιορισμό της δομής XML εγγράφων. Χρησιμοποιεί τους ίδιουςσυντακτικούς κανόνες με τα κανονικά XML έγγραφα, έτσι ώστε να χρησιμοποιηθούν καιστα δύο οι ίδιοι επεξεργαστές.

XML Έγγραφα, DTD, και XML Σχήμα.

Page 8: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

8

Χαρακτηριστικά XML Σχήματος

Περιγραφές Σχήματος και XML περιοχές ονομάτων:Προσδιορίζεται το σύνολο των στοιχείων (ετικέτες) της γλώσσας τουXML σχήματος μέσω ενός αρχείου, το οποίο συνήθως είναι"http://www.w3.org/2001/XMLSchema".Το όνομα του αρχείου δίδεται ως τιμή της μεταβλητής xsd μεγνώρισμα xmlns (XML namespace). Αυτή η μεταβλητήχρησιμοποιείται ως πρόθεμα σε όλες τις XML εντολές σχήματος.Επεξηγήσεις (Annotations), Τεκμηρίωση (documentation), καιγλώσσα που χρησιμοποιείταιΤα xsd:annotation και xsd:documentation χρησιμοποιούνται γιασχόλια και άλλες περιγραφές στο XML έγγραφο. Το γνώρισμαXML:lang προσδιορίζει τη γλώσσα (en – English)Στοιχεία και τύποι:Προσδιορίζεται το στοιχείο ρίζα του XML σχήματος. Το γνώρισμαname ορίζει το όνομα του στοιχείου. Η δομή του στοιχείου είναιxsd:complexType (ακολουθία από department, employee, project).

Χαρακτηριστικά XML ΣχήματοςΣτοιχεία πρώτου επιπέδου βάσης δεδομένων : Τα στοιχεία αυτά είναι τα department, και project. Προσδιορίζονταιαπό μια ετικέτα xsd:element tag. Αν μια ετικέτα έχει μόνογνωρίσματα και όχι υπο-στοιχεία ή δεδομένα μπορεί να τελειώσει μετο σύμβολο (/>) και ονομάζονται Κενά στοιχεία.

Προσδιορισμός τύπου στοιχείων και ελαχίστου – μέγιστουπλήθους εμφανίσεων:Αν ορίζεται το γνώρισμα type, η δομή του στοιχείου θα περιγραφείξεχωριστά τυπικά με το στοιχείο xsd:complexType element. Ανυπάρχει type η δομή ορίζεται άμεσα. Τα γνωρίσματα minOccurs καιmaxOccurs όριζουν το ελάχιστο και μέγιστο πλήθος εμφανίσεων. Ηπροκαθορισμένη τιμή είναι ακριβώς μία εμφάνιση.

Page 9: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

9

Αρχείο XML σχήματος.

Χαρακτηριστικά XML ΣχήματοςΠροσδιορισμός Κλειδιών:

xsd:uniqueΠροσδιορίζει στοιχεία που αντιστοιχούν σε γνωρίσματα με μοναδική τιμή σε μιασχεσιακή ΒΔ που δεν είναι πρωτεύοντα κλειδιά.xsd:selector

Τύπος του στοιχείου που περιέχει το μοναδικό στοιχείοxsd:field

To όνομα του στοιχείου σε αυτό που είναι μοναδικόxsd:key

Προσδιορίζει πρωτεύον κλειδίxsd:selector

Τύπος του στοιχείου που περιέχει το κλειδίxsd:field

To όνομα του στοιχείου που είναι κλειδίxsd:keyref

Προσδιορίζει ξένο κλειδίrefer

To πρωτεύον κλειδί στο οποίο αναφέρεταιxsd:selector

Τύπος του στοιχείου που περιέχει το κλειδίxsd:field

To όνομα του στοιχείου που είναι κλειδί

Page 10: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

10

Αρχείο XML σχήματος.

Αρχείο XML σχήματος.

Page 11: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

11

Χαρακτηριστικά XML ΣχήματοςΠροσδιορισμός των δομών πολύπλοκωνστοιχείων μέσω πολύπλοκων τύπων:Ακολουθία από υπο-στοιχεία όπου ορίζεταιname και type. Μπορούν επίσης να οριστούν ταminOccurs και maxOccurs γνωρίσματα.

Σύνθετα γνωρίσματα:Τα σύνθετα γνωρίσματα μιας σχεσιακής ΒΔπροσδιορίζονται ως πολύπλοκοι τύποι.

XML Έγγραφα και Βάσεις ΔεδομένωνΠροσεγγίσεις για την αποθήκευση XML Εγγράφων

Χρήση ενός ΣΔΒΔ για την αποθήκευση των εγγράφων σαν κείμενο:Χρησιμοποίηση σχεσιακού ή αντικειμενοστρεφές ΣΔΒΔ για αποθήκευση όλων των XML εγγράφων σαν πεδία κειμένου στις εγγραφές ή τα αντικείμενα του ΣΔΒΔ. Η προσέγγιση αυτήμπορεί να χρησιμοποιηθεί αν το ΣΔΒΔ έχει δυνατότητα επεξεργασίας εγγράφων, και θαδούλευε για έγγραφα χωρίς σχήμα και έγγραφα που επικεντρώνονται στο έγγραφο.

Χρήση ενός ΣΔΒΔ για αποθήκευση του περιεχομένου των εγγράφων σαν στοιχείαδεδομένων:Χρήση για αποθήκευση μιας συλλογής εγγράφων που ακολουθούν συγκεκριμένο XML DTD ήXML schema. Επειδή όλα τα έγγραφα έχουν την ίδια δομή, μπορεί να σχεδιαστεί μια σχεσιακή(ή αντικειμενοστρεφή) ΒΔ για την αποθήκευση των στοιχείων δεδομένων στα φύλα των XML εγγράφων.

Σχεδιασμός ενός εξιδικευμένου συστήματος για αποθήκευση XML δεδομένωνΣχεδιασμός και υλοποίηση ενός νέου τύπου συστήματος ΒΔ που να βασίζεται στο ιεραρχικόμοντέλο. Θα περιελάμβανε εξειδικευμένο σύστημα ευρετηρίων και τεχνικών επερωτήσεων, καιθα υποστήριζε όλους τους τύπους XML εγγράφων.

Δημιουργία ή έκδοση προσαρμοσμένων XML εγγράφων από προϋπάρχουσες ΒΔ: Επειδή υπάρχει ήδη τεράστιος όγκος δεδομένων αποθηκευμένος σε σχεσιακές ΒΔ, τμήματααυτών των δεδομένων μπορεί να χρειασθεί να μορφοποιηθούν σαν έγγραδα για ανταλλαγή ήπαρουσίαση στο web. Ένα ξεχωριστό επίπεδο ενδιάμεσου λογισμικού διαχειρίζεται τιςαπαραίτητες μετατροπές μεταξύ XML εγγράφων και σχεσιακών ΒΔ.

Page 12: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

12

Εξαγωγή XML Εγγράφων από Σχεσιακές ΒΔΥποθέτουμε ότι μια εφαρμογή χρειάζεται να εξάγει XML έγγραφα γιαπληροφορίες φοιτητών, μαθημάτων και βαθμών από τη ΒΔ πανεπιστήμιο.

Τα δεδομένα που απαιτούνται για αυτά τα έγγραφα περιέχονται σταγνωρίσματα των οντοτήτων course, section, and student και τις σχέσειςs-s και c-s μεταξύ αυτών.

Υποσύνολο του διαγράμματος σχήματος ΟΣ για τη ΒΔΠανεπιστήμιο

Μπορούν να εξαχθούν τουλάχιστον τρεις πιθανές ιεραρχίες εγγράφων.

Page 13: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

13

Ιεραρχική Όψη μετο COURSE σανρίζα.

• Κάθε οντότητα COURSE έχει σαν στοιχεία το σύνολοτων SECTION

• Κάθε SECTION έχει τουςSTUDENT που συμμετείχανσαν στοιχεία

• Αν ένας φοιτητής μετέχει σεπολλά SECTION, οιπληροφορίες αυτού τουφοιτητή θα εμφανιστούνπολλές φορές στο έγγραφο, μια για κάθε SECTION.

XML σχήμα εγγράφου με το COURSE σαν ρίζα.

• Το γνώρισμα grade της σχέσης S-S μεταφέρεται στο στοιχείο student

• Κάθε στοιχείο student κάτω από ένα συγκεκριμένο στοιχείο section μπορεί να έχει ένα συγκεκριμένο grade.

• Ένας φοιτητής που συμμετέχει σε περισσότερα section θα έχει πολλάαντίγραφα κάτω από κάθε ένα, και το κάθε αντίγραφο θα έχει τοσυγκεκριμένο grade για το συγκεκριμένο section

Page 14: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

14

Διάσπαση Κύκλων για Μετατροπή σε ΔένδραΥπάρχουν περιπτώσεις όπου το διάγραμμα ΟΣ είναι πιο πολύπλοκο μεέναν ή περισσότερους κύκλους, που δείχνει πολλαπλές συσχετίσεις μεταξύτων οντοτήτων.

Σε αυτή τη περίπτωση είναι πιο πολύπλοκο να αποφασισθεί πως θαδημιουργηθούν οι ιεραρχίες εγγράφων.

Μπορεί να χρειαστεί επιπλέον επανάληψη των οντοτήτων για νααναπαρασταθούν οι πολλαπλές συσχετίσεις.

Διάγραμμα ΟΣ για τη ΒΔ Πανεπιστήμιο

• Υποθέτουμε ότι θέλουμε όλες τις πληροφορίες σε όλους τους τύπουςοντοτήτων και τις συσχετίσεις με το student σαν ρίζα

Page 15: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

15

Διάσπαση Κύκλων για Μετατροπή σε Δένδρα.

Δεν είναι δενδρική δομή λόγω των κύκλωνΈνας τρόπος να διασπασθούν οι κύκλοι είναι να επαναληφθούν οιτύποι οντοτήτων που συμμετέχουν στους κύκλους.

Διάσπαση Κύκλων για Μετατροπή σε Δένδρα.

Αρχικα επαναλαμβάνεται το instructorTo instructor παριστάνει τη συσχέτιση instructor και section πουδιδάσκουνTo instructor_1 παριστάνει τη συσχέτιση instructor και department στο οποίο εργάζονται

Page 16: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

16

Διάσπαση Κύκλων για Μετατροπή σε Δένδρα.

XML ΕπερωτήσειςXPath: Προσδιορισμός Εκφράσεων Μονοπατιών στην XMLMια XPath έκφραση επιστρέφει μια συλλογή από κόμβους στοιχεία που ικανοποιούνπρότυπα που ορίζονται στην έκφραση. Τα ονόματα της XPath έκφρασης είναι ονόματα κόμβων στο XML δένδρο τουεγγράφου που είναι είτε ονόματα ετικετών (στοιχεία) ή ονόματα γνωρισμάτων, πιθανόνμε επιπλέον συνθήκες επιλογής που περιορίζουν περισσότερο τους κόμβους πουικανοποιούν το πρότυπο.

Για τον προσδιορισμό μονοπατιών χρησιμοποιούνται δύο σύμβολα για διαχωρισμό : απλή πλάγια κάθετος (/)

Προσδιορίζει ότι η ετικέτα πρέπει να εμφανιστεί ως παιδί της προηγούμενης (γονικής) ετικέταςδιπλή πλάγια κάθετος (//).

Προσδιορίζει ότι η ετικέτα μπορεί να εμφανιστεί σαν απόγονος της προηγούμενης ετικέτας σεοποιοδήποτε επίπεδο

Συνηθίζεται να περιλαμβάνεται στην XPath επερώτηση το όνομα του αρχείου που μαςεπιτρέπει να προσδιορίσουμε οποιοδήποτε όνομα τοπικού αρχείου ή όνομαμονοπατιού

doc(www.company.com/info.XML)/company

Page 17: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

17

Παράδειγμα ΧPath εκφράσεων

1. Επιστρέφει τον κόμβο ρίζας COMPANY και όλους τους κόμβουςαπογόνους, δηλ. όλο το έγγραφο.

2. Επιστρέφει όλους τους κόμβους (στοιχεία) department και τα υποδένδρααπογόνους.

3. Επιστρέφει όλους τους κόμβους employeeName που είναι άμεσοι απόγονοιενός κόμβου employee, τέτοιου που ο κόμβος αυτός έχει ένα άλλο στοιχείοαπόγονο employeeSalary με τιμή > 70000.

4. Επιστρέφει το ίδιο αποτέλεσμα με το προηγούμενο μόνο πουπροσδιορίζεται το πλήρες όνομα του μονοπατιού.

5. Επιστρέφει όλους τους κόμβους projectWorker και τους απογόνους τουςπου είναι παιδιά κάτω από το μονοπάτι /company/project και έχουν ένακόμβο παιδί hours με τιμή >= 20.0 hours.

XML ΕπερωτήσειςXQuery: Προσδιορισμών Επερωτήσεων σε XMLH XPath επιλέγει κόμβους από ένα έγγραφο με δενδρική δομή

Η XQuery επιτρέπει τον προσδιορισμό πιο γενικών επερωτήσεων σε έναή περισσότερα XML έγγραφα.

Η τυπική μορφή μιας επερώτησης XQuery είναι γνωστή ως μια FLWR έκφραση, που είναι τα αρχικά των τεσσάρων βασικών προτάσεων τηςXQuery και έχει τη παρακάτω δομή:

FOR <αντιστοιχήσεις μεταβλητών σε κόμβους (στοιχεία)>LET < αντιστοιχήσεις μεταβλητών σε συλλογές κόμβων (στοιχείων) >WHERE <συνθήκες προσδιορισμού>RETURN <προσδιορισμός του αποτελέσματος της επερώτησης>

Page 18: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

18

XQuery επερωτήσεις

Ανακτά το firstName και lastName των employee που έχουνμισθό > 70000.

Η μεταβλητή $x αντιστοιχεί σε κάθε στοιχείο employeeNameπου είναι παιδί ενός στοιχείου employee, αλλά μόνο για ταστοιχεία employee που ικανοποιούν τη συνθήκη τοemployeeSalary > 70000.

XQuery επερωτήσεις

Page 19: ΒάσειςΔεδομένωνΙΙ · 1 ΒάσειςΔεδομένωνΙΙ Διάλεξη5η xml καιΒΔστοΔιαδίκτυο Δ. Χριστοδουλάκης- Α. Φωκά

19

XQuery επερωτήσεις

Συνένωση με περισσότερες από μία μεταβλητές.

Η μεταβλητή $x αντιστοιχεί σε κάθε στοιχείο projectWorkerπου είναι παιδί του project με projectNumber 5.

Η μεταβλητή $y αντιστοιχεί σε κάθε στοιχείο employee

Η συνένωση ταιριάζει τιμές ssn για ανάκτηση των ονομάτωντων employee.