ΣΥΣΤΗΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ



Σχετικά έγγραφα
ΣΥΣΤΗΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...

Certified Data Base Designer (CDBD)

Το εσωτερικό ενός Σ Β

Επεξεργασία Ερωτήσεων

Πίνακας περιεχοµένων

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

Α. Ερωτήσεις Ανάπτυξης

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Επεξεργασία Ερωτήσεων

Τίτλος Πακέτου Certified Computer Expert-ACTA

Certified Computer Expert (CCE)

Επεξεργασία Ερωτήσεων

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ

Διαχείριση Δεδομένων

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Επεξεργασία Ερωτήσεων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Επισκόπηση Μαθήµατος

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

ΑΕΠΠ Ερωτήσεις θεωρίας

6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)»

Μοντέλο Οντοτήτων-Συσχετίσεων

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Επιµέλεια Θοδωρής Πιερράτος

Μαλούτα Θεανώ Σελίδα 1

Αντικείµενο: Θεµελιώδες πρόβληµα της επιστήµης µας εδοµένα

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Περιεχόµενα. 1 Tο βιβλίο "µε µια µατιά" Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access...

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Εισαγωγή στην Πληροφορική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Εισαγωγή στα Συστήµατα Βάσεων Δεδοµένων

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Περιεχόμενα. Περιεχόμενα

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Ανάκτηση Πληροφορίας

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Βάσεις εδοµένων. Συνολοθεωρητικές Πράξεις. Ειδικές Πράξεις. Εκφράσεις. Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων. Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός

Έννοιες Διαχείρισης Βάσεων Δεδομένων και Αρχιτεκτονική

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Διαχείρισης Βάσεων Δεδομένων

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Query-by-Example (QBE)

Εισαγωγή στην πληροφορική

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Εισαγωγή-Ορισµοί Ε ΟΜΕΝΑ (DATA) Γνωστά γεγονότα / περιστατικά που καταγράφονται και έχουν νόηµα ΒΑΣΗ Ε ΟΜΕΝΩΝ (DATABASE) Μία ΟΛΟΚΛΗΡΩΜΕΝΗ συλλογή εδοµ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Μοντέλο Οντοτήτων-Συσχετίσεων

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Μοντέλο Οντοτήτων-Συσχετίσεων

ΠΕΛΑΤΗΣ ΠΑΡΑΓΓΕΛΙΑ ΠΡΟΪΟΝ

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

ECDL Module 5 Χρήση Βάσεων εδοµένων Εξεταστέα Ύλη, έκδοση 5.0 (Syllabus Version 5.0)

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Γ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

«Πληροφορική» Γυµνασίου

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων

Πρόλογος Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

ΜΕΤΑΒΑΤΙΚΕΣ ΠΡΟΫΠΟΘΕΣΕΙΣ ΑΠΟΚΤΗΣΗΣ ΠΤΥΧΙΟΥ

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

Διαχείριση Πολιτισμικών Δεδομένων

EUROPEAN COMPUTER DRIVING LICENCE

Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε

Transcript:

Hector Garcia-Molina Jeffrey D. Ullman Jennifer Widom Departmentof Computer Science, Stanford University ΣΥΣΤΗΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Ένα πλήρες εγχειρίδιο ΤΟΜΟΣ Ι Μετάϕραση - Επιστηµονικήεπιµέλεια: Γεώργιος Φρ. Γεωργακόπουλος Θεόδωρος ρίτσας Επιστηµονικός και ορολογικός έλεγχος: Ιωάννης Παπαδόγγονας ΠΑΝΕΠΙΣΤΗΜΙΑΚΕΣ ΕΚ ΟΣΕΙΣ ΚΡΗΤΗΣ Ιδρυτική δωρεά Παγκρητικής Ενώσεως Αµερικής ΗΡΑΚΛΕΙΟ 2011

ΠΑΝΕΠΙΣΤΗΜΙΑΚΕΣ ΕΚ ΟΣΕΙΣ ΚΡΗΤΗΣ Ίδρυµα Τεχνολογίας & Έρευνας Αθήνα: Μάνης 5, 106 81, Εξάρχεια, Αθήνα. Τηλ. 210 3849020-22, Fax 210 3301583 Ηράκλειο:Νικ.Πλαστήρα 100, Βασιλικά Βουτών 700 13, Ηράκλειο Κρήτης. Τηλ. 2810 391097 Fax 2810 391085 info@cup.gr, http://www.cup.gr ΣΕΙΡΑ: ΠΑΝΕΠΙΣΤΗΜΙΑΚΗΒΙΒΛΙΟΘΗΚΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ / ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ιευθυντές σειράς: Γεώργιος Φρ. Γεωργακόπουλος, Ιωάννης Παπαδόγγονας Τίτλος πρωτοτύπου: Database Systems: The Complete Book, 2nd Edition c : 2009, 2002 by Pearson Education Inc. c γιατην ελληνική γλώσσα: 2007 Πανεπιστηµιακές Εκδόσεις Κρήτης Πρώτηέκδοση: Φεβρουάριος 2011 Μετάϕραση, επιστηµονική επιµέλεια: Γεώργιος Φρ. Γεωργακόπουλος Θεόδωρος ρίτσας Επιστηµονικός και ορολογικός έλεγχος: Ιωάννης Παπαδόγγονας Προσαρµογή L A TEX, σελιδοποίηση: David J. McClurkin Μακέτα εξωϕύλλου: Βάσω Αβραµοπούλου Εκτύπωση - βιβλιοδεσία: ΛΥΧΝΙΑ ISBN SET 978-960-524-309-8 ISBN ΤΟΜΟΣ I 978-960-524-310-4

Πρόλογος Το βιβλίο αυτό καλύπτει το κύριο µέρος της ύλης που διδάσκεται στο Πανεπιστή- µιο Stanford, στον κύκλο µαθηµάτων για τις βάσεις δεδοµένων. Το εισαγωγικό µάθηµα, που έχει τον κωδικό CS145, χρησιµοποιεί τα πρώτα δώδεκα κεϕάλαια και είναι σχεδιασµένο για όλους τους ϕοιτητές τόσο για αυτούς που θέλουν απλώς να χρησιµοποιούν συστήµατα βάσεων δεδοµένων όσο και για εκείνους που θέλουν να ασχοληθούν µε την υλοποίησή τους. Στο δεύτερο µάθηµα, που έχει τον κωδικό CS245 και αϕορά την υλοποίηση των βάσεων δεδοµένων, καλύπτεται το µεγαλύτερο τµήµα της υπόλοιπης ύλης του βιβλίου. Ωστόσο, κάποια τµήµατα παρουσιάζονται λεπτο- µερέστερα σε µαθήµατα που αϕορούν ειδικά θέµατα. Σε αυτά συγκαταλέγεται το CS346 (έργο υλοποίησης), που επικεντρώνεται στην βελτιστοποίηση ερωτηµάτων, όπως αυτή παρουσιάζεται στα Κεϕάλαια 15 και 16. Τέλος, στο µάθηµα CS345A, που αϕορά την εξόρυξη δεδοµένων και την ιστοεξόρυξη, καλύπτεται η ύλη των τελευταίων δύο κεϕαλαίων. Τι έχει αλλάξει στη δεύτερη έκδοση Μετά από µια σύντοµη εισαγωγή, που καταλαµβάνει το Κεϕάλαιο 1, στα Κεϕάλαια 2 και 3 θα περιγράψουµε το σχεσιακό πρότυπο. Το Κεϕάλαιο 4 είναι αϕιερωµένο στα πρότυπα υψηλού επιπέδου. Εκεί, πέραν του Ο/Σ προτύπου, καλύπτεται η ύλη που αϕορά τηνuml (ενοποιηµένη γλώσσα προτυποποίησης). Στο Κεϕάλαιο 4 έχει επίσης µεταϕερθεί µια πιο συνοπτική παρουσίαση της ύλης που αϕορά την ODL, την οποία αντιµετωπίζουµε ως γλώσσα σχεδιασµού σχηµάτων σχεσιακών βάσεων δεδοµένων. Το κοµµάτι που αϕορά τις συναρτησιακές και τις πλειότιµες εξαρτήσεις έχει τροποποιηθεί, αλλά παραµένει στο Κεϕάλαιο 3. Έχουµε αλλάξει οπτική γωνία, και πλέον θεωρούµε ότι µια συναρτησιακή εξάρτηση έχει στο δεξί της µέλος ένα σύνολο γνωρισµάτων. Παρουσιάζουµε επίσης αναλυτικάορισµένους αλγορίθµους για τον χειρισµό των εξαρτήσεων. σε αυτούς περιλαµβάνεται και ο αλγόριθµος της «λάξευσης».έχουµε επεκτείνει τη συζήτηση σχετικά µε την τρίτη κανονική µορϕή συµπεριλαµβάνοντας τον αλγόριθµο σύνθεσης σχέσεων σε 3ΚΜ και καθιστώντας σαϕέςποια είναι τα συγκριτικά πλεονεκτήµατα και µειονεκτήµατα της 3ΚΜκαι τηςκανονικής µορϕής BC. Το Κεϕάλαιο 5 περιέχει όλη τηνύληπερίσχεσιακήςάλγεβραςαπότηνπροηγού- µενη έκδοση, και τµήµατηςπαρουσίασηςτης Datalog από το παλαιό Κεϕάλαιο 10. Η παρουσίαση της αναδροµής στη Datalog έχει µετακινηθεί στον ιστότοπο του βιβλίου ή παρουσιάζεται στο Κεϕάλαιο 10 της παρούσας έκδοσης, µαζί µε την αναδροµική SQL.

vi ΠΡΟΛΟΓΟΣ Τα Κεϕάλαια 6 ώς10είναιαϕιερωµένα σε πτυχές του προγραµµατισµού SQL, και συνιστούν µια επανεπεξεργασµένη και επαυξηµένη εκδοχή των Κεϕαλαίων 6, 7, 8, καθώς και τµηµάτων του Κεϕαλαίου 10 της προηγούµενηςέκδοσης του βιβλίου. Έχουµε αϕιερώσει ένα κεϕάλαιο, το Κεϕάλαιο8,για να καλύψουµε την ύλη που αϕορά τις όψεις και τα ευρετήρια. στην ύλη αυτή έχει προστεθεί η παρουσίαση κάποιων σηµαντικών νέων θεµάτων, όπως είναι οιυλοποιηµένεςόψεις και η αυτόµατη επιλογή ευρετηρίων. Το νέο Κεϕάλαιο 9 στηρίζεται στο παλαιό Κεϕάλαιο 8 (ενσωµατωµένη SQL). Έχει προστεθεί µια νέα εισαγωγική ενότητα για την αρχιτεκτονική τριών στρωµάτων. Περιλαµβάνει επίσης µια πιο αναλυτική παρουσίαση του JDBC, ενώ καλύπτεται πλέον και ηphp. Στο Κεϕάλαιο 10 έχουµε συµπεριλάβει κάποια προχωρηµένα θέµατα SQL. Εδώ έχει µεταϕερθεί η εξέταση της εξουσιοδότησης από το παλαιό Κεϕάλαιο 8, όπως επίσης και η συζήτησηγιατηναναδροµική SQL, από το παλαιό Κεϕάλαιο 10. Εδώ παρουσιάζονται και οι κύβοιδεδοµένων, από το παλαιό Κεϕάλαιο 20. Το υπόλοιπο αυτού του κεϕαλαίου είναι αϕιερωµένο στο ένθετο-σχεσιακό πρότυπο (από το παλαιό Κεϕάλαιο 4) και στα οντοσχεσιακά χαρακτηριστικά της SQL (από το παλαιό Κεϕάλαιο 9). Στη συνέχεια, στα Κεϕάλαια 11 και 12 παρουσιάζεται η XML και τα συστήµατα που στηρίζονται σε αυτήν. Εκτός από κάποια ύλη που προέρχεται από το τέλος του παλαιού Κεϕαλαίου 4, το οποίο έχει µεταϕερθεί στο Κεϕάλαιο 11, όλη η υπόλοιπη ύλη είναι καινούργια. Στο Κεϕάλαιο 11 παρουσιάζεται το πρότυπο των ηµιδοµηµένων δεδοµένων. παρουσιάζονται αναλυτικά οι DTD, µαζί µε καινούργια ύλη για την XML Schema. Το Κεϕάλαιο 12 είναι αϕιερωµένο στον προγραµµατισµό και περιλαµβάνει ενότητες για την XPath, την XQuery και την XSLT. Στο Κεϕάλαιο 13 ξεκινάµε τη µελέτη της υλοποίησης των βάσεων δεδοµένων. Παρουσιάζουµε την αποθήκευση στον δίσκο και τις αρχειακές δοµές που κατασκευάζονται στους δίσκους. Στο κεϕάλαιο αυτό έχουµε συµπυκνώσει την ύλη που στην πρώτη έκδοση καταλάµβανετακεϕάλαια11 και12. Στο Κεϕάλαιο14παρουσιάζονταιοιευρετηριακές δοµές, συµπεριλαµβανοµένων των δέντρων Β, της διασποράς και των δοµών για πολυδιάστατα ευρετήρια. Το υλικό αυτό αποτελεί επίσης συµπύκνωση, αυτή τη ϕορά των Κεϕαλαίων 13 και 14 της πρώτης έκδοσης. Στα Κεϕάλαια15και16καλύπτεται η ύλη που αϕορά την εκτέλεση και τη βελτιστοποίηση των ερωτηµάτων, αντίστοιχα. Τα κεϕάλαια αυτά είναι παρόµοια µε τα Κεϕάλαια 15 και 16 της πρώτης έκδοσης. Το Κεϕάλαιο 17 καλύπτει την πρακτικογρά- ϕηση, και το Κεϕάλαιο 18 τον έλεγχο συγχρονικότητας. και αυτά τα κεϕάλαια είναι παρόµοια µε τα κεϕάλαια που είχαν τον ίδιο αριθµό στην παλαιά έκδοση. Στο Κεϕάλαιο 19 πραγµατευόµαστε κάποια επιπλέον ζητήµατα συγχρονικότητας: ανάκαµψη, αδιέξοδα και παρατεταµένες δοσοληψίες. Το υλικό αυτό είναι τµήµα του παλαιού Κεϕαλαίου 19. Το Κεϕάλαιο 20 αϕορά τις παράλληλες και τις κατανεµηµένες βάσεις δεδοµένων. Εκτός από την ύλη για την παράλληλη εκτέλεση ερωτηµάτων, που προέρχεται από το παλαιό Κεϕάλαιο 15, και τηνύλη για τηνκατανεµηµένη επιβολή ϕραγµώνκαι την οριστικοποίηση, που προέρχεται από το παλαιό Κεϕάλαιο 19, υπάρχουν πολλές νέες ενότητες για την κατανεµηµένη εκτέλεση ερωτηµάτων: το απεικονιστικό-αναγωγικό πλαίσιο για παράλληλο υπολογισµό,οι βάσεις δεδοµένων «ίσος προς ίσον» και ο τρό-

ΠΡΟΛΟΓΟΣ vii πος που αυτές υλοποιούν κατανεµηµένους πίνακες διασποράς. Το Κεϕάλαιο 21 είναι αϕιερωµένο στο ζήτηµα της ενοποίησης των πληροϕοριών. Εκτός από τη σχετική ύλη που υπήρχε και στο Κεϕάλαιο 20 της προηγούµενης έκδοσης, έχουµε προσθέσει µια ενότητα για τους «τοπικά οψιόµορϕους» µεσολαβητές και µια ενότητα για την αναγωγή οντοτήτων (τηνεύρεσηδελτίων που αϕορούν την ίδια οντότητα, π.χ., ένα συγκεκριµένο άτοµο, και βρίσκονται σε πολλές βάσεις δεδο- µένων). Στο Κεϕάλαιο 22 εξετάζουµε την εξόρυξη δεδοµένων. Παρότι υπήρχε κάποια ύλη σχετικά µε αυτό το θέµα στο Κεϕάλαιο 20 της προηγούµενης έκδοσης, σχεδόν ολόκληρο το κεϕάλαιοαυτόέχειγραϕτείαπότηναρχή.καλύπτειθέµαταόπωςτους κανόνες σύζευξης καιτηνεξόρυξη συχνών ειδοσυνόλων, παρουσιάζοντας µεταξύ άλλων και τον περίϕηµο αλγόριθµο A-Priori, καθώς και πολλές τεχνικές για τη βελτίωση της αποδοτικότητας. Στο Κεϕάλαιο 22 παρουσιάζονται οι σηµαντικές τεχνικές της «ϕολίδωσης», της ελαχιστοδιασποράς, και της τοποεξαρτώµενης διασποράς για την εύρεση παρόµοιων αντικειµένων σε βάσεις δεδοµένων πολύ µεγάλου µεγέθους, π.χ., σε ιστοσελίδες που περιέχουν εκτενή παραθέµατα από άλλες ιστοσελίδες. Το κεϕάλαιο ολοκληρώνεται µε µια µελέτη της συσταδοποίησης, ειδικά για σύνολα δεδοµένων πολύ µεγάλου όγκου. Το Κεϕάλαιο 23 είναι εξ ολοκλήρου καινούργιο, και σε αυτό εξετάζονται δύο σηµαντικές εξελίξεις µέσω των οποίων το ιαδίκτυο έχει επηρεάσει την τεχνολογία των βάσεων δεδοµένων. Η πρώτη είναι οι µηχανές αναζήτησης, όπου εξετάζουµε τους αλγορίθµους που χρησιµοποιούνται για τον ερπυσµό στον ιστό, τον πασίγνωστοαλγόριθµο PageRank που χρησιµοποιείται γιατηναξιολόγηση της σηµαντικότητας ιστοσελίδων, καθώς και τις επεκτάσεις του. Στο κεϕάλαιο αυτό παρουσιάζονται επίσης τα συστήµατα διαχείρισης ρεύµατος δεδοµένων. Εξετάζουµε το πρότυπο του ρεύµατος δεδοµένων και τις επεκτάσεις της SQL και ολοκληρώνουµε το κεϕάλαιο παρουσιάζοντας κάποιους ενδιαϕέροντες αλγορίθµους για την εκτέλεση ερωτηµάτων σε ρεύµατα. Προαπαιτούμενα Έχουµε χρησιµοποιήσει το εγχειρίδιο αυτό σε ένα ενδιάµεσο επίπεδο, σε έναν κύκλο µαθηµάτων τα οποία παρακολουθούν τόσο προπτυχιακοί ϕοιτητές όσο και ϕοιτητές του πρώτου έτους των µεταπτυχιακών σπουδών. Τα τυπικά προαπαιτούµενα για το µάθηµα είναι η γνώση των ακόλουθων αντικειµένων σε επίπεδο δεύτερου έτους προπτυχιακών σπουδών: 1. οµές δεδοµένων, αλγόριθµοι και διακριτά µαθηµατικά, καθώς και 2. Συστήµατα λογισµικού, τεχνολογία λογισµικού και γλώσσες προγραµµατισµού. Από το σύνολο αυτής της ύλης,είναι σηµαντικό οι ϕοιτητές να κατανοούν σε στοιχειώδες επίπεδο θέµατα όπως: αλγεβρικές εκϕράσεις και αλγεβρικοί νόµοι, λογική, βασικές δοµές δεδοµένων, έννοιες οντοστρεϕούς προγραµµατισµού και προγραµµατιστικά περιβάλλοντα. Πιστεύουµε, ωστόσο, ότιέναεπαρκέςυπόβαθροαποκτάται στο τρίτο έτος των πανεπιστηµιακών σπουδών επιστήµης υπολογιστών.

viii ΠΡΟΛΟΓΟΣ Ασκήσεις Το βιβλίο περιέχει πολλές ασκήσεις, που καλύπτουν σχεδόν όλες τις ενότητες. Έχουµε σηµειώσει µε ένα θαυµαστικό όσες ασκήσεις ή υποερωτήµατα ασκήσεων είναι δυσκολότερα από τα άλλα. Οι ακόµα πιο δύσκολες ασκήσεις σηµειώνονται µε δύο θαυµαστικά. Υποστήριξη στον Παγκόσμιο Ιστό Η οικοσελίδα του βιβλίου είναι η http://infolab.stanford.edu/ ullman/dscb.html Εκεί µπορεί κανείς να βρει όσα παροράµατα του βιβλίου έχουν εντοπιστεί, καθώς και βοηθητικό υλικό, όπως ασκήσεις για το σπίτι, µικρές εργασίες και διαγωνίσµατα. Σε αυτήν τη ιστοσελίδα θα αναρτηθούν επίσης οι ενότητες της πρώτης έκδοσης που αϕαιρέθηκαν από τη δεύτερη έκδοση. Επιπλέον, στην παραπάνω ιστοσελίδα διατίθεται συνοδευτικό υλικό µε on-line ασκήσεις για το σπίτι και εργαστήρια προγραµµατισµού, που βασίζεται σε τεχνολογία που αναπτύχθηκε από την Gradiance Corp. Για περισσότερες λεπτοµέρειες σχετικά µε το σύστηµα GOAL, βλ. την ενότητα που ακολουθεί τον Πρόλογο. Την υπηρεσία GOAL µπορεί να την προµηθευτεί κανείς από την ιστοσελίδα http://www.prenhall.com/goal Οι διδάσκοντες που επιθυµούν να χρησιµοποιήσουν το σύστηµα στις παραδόσεις τους θα πρέπει να επικοινωνήσουν µε τον τοπικό αντιπρόσωπο της Prentice-Hall ή να ζητήσουν την ειδική άδεια χρήσης για διδάσκοντες µέσω του παραπάνω ιστοτόπου. Εγχειρίδιο µε τις λύσεις των ασκήσεων µπορούν να βρουν οι διδάσκοντες στη σελίδα http://www.prenhall.com/ullman Στη σελίδα αυτή παρέχεται επίσης πρόσβαση στο σύστηµα GOAL και σε όλο το συνοδευτικό υλικό του βιβλίου. Ευχαριστίες Θα θέλαµε να ευχαριστήσουµε τον Donald Kossmann για τις πολύ χρήσιµες συζητήσεις που είχαµε µαζί του, ειδικά όσον αϕορά την XML και τα σχετικά συστήµατα προγραµµατισµού. Ο Bobbie Cochrane µας βοήθησε επίσης να κατανοήσουµε τη σηµασιολογία των πυροδοτών σε µια παλαιότερη έκδοση του βιβλίου. Πολλοί ήταν αυτοί που µας βοήθησαν, είτε στη συγγραϕή αυτού του βιβλίου και των προηγούµενων εκδοχών του, είτε γνωστοποιώντας µας λάθη στα βιβλία και/ή στο συνοδευτικό υλικό που βρίσκεται στο ιαδίκτυο. Με µεγάλη χαρά θα θέλαµε να τους αναϕέρουµε όλους εδώ. Marc Abromowitz, Joseph H. Adamski, Brad Adelberg, Gleb Ashimov, Donald Aingworth, Teresa Almeida, Brian Babcock, Bruce Baker, Yunfan Bao, Jonathan Becker,

ΠΡΟΛΟΓΟΣ ix Margaret Benitez, Eberhard Bertsch, Larry Bonham, Phillip Bonnet, David Brokaw, Ed Burns, Alex Butler, Karen Butler, Mike Carey, Christopher Chan, Sudarshan Chawathe. Επίσης οι Per Christensen, Ed Chang,Surajit Chaudhuri, Ken Chen, Rada Chirkova, Nitin Chopra, Lewis Church, Jr., Bobbie Cochrane, Michael Cole, Alissa Cooper, Arturo Crespo, Linda DeMichiel, Matthew F. Dennis, Tom Dienstbier, Pearl D Souza, Oliver Duschka, Xavier Faz, Greg Fichtenholtz, Bart Fisher, Simon Frettloeh, Jarl Friis. Επίσης οι John Fry, Chiping Fu, Tracy Fujieda, Prasanna Ganesan, SuzanneGarcia, Mark Gjol, Manish Godara, Seth Goldberg, Jeff Goldblat, Meredith Goldsmith, Luis Gravano, Gerard Guillemette, Himanshu Gupta, Petri Gynther, Zoltan Gyongyi, Jon Heggland, Rafael Hernandez, Masanori Higashihara, Antti Hjelt, Ben Holtzman, Steve Huntsberry. Επίσης οι Sajid Hussain, Leonard Jacobson, Thulasiraman Jeyaraman, Dwight Joe, Brian Jorgensen, Mathew P. Johnson, Sameh Kamel, Jawed Karim, Seth Katz, Pedram Keyani, Victor Kimeli, Ed Knorr, Yeong-Ping Koh, David Koller, Gyorgy Kovacs, Phillip Koza, Brian Kulman, Bill Labiosa, Sang Ho Lee, Younghan Lee, Miguel Licona. Επίσης οι Olivier Lobry, Chao-Jun Lu, Waynn Lue, John Manz, Arun Marathe, Philip Minami, Le-Wei Mo, Fabian Modoux, Peter Mork, Mark Mortensen, Ramprakash Narayanaswami, Hankyung Na, Mor Naaman, Mayur Naik, Marie Nilsson, Torbjorn Norbye, Chang-Min Oh, Mehul Patel, Soren Peen, Jian Pei. Επίσης οι Xiaobo Peng, Bert Porter, Limbek Reka, Prahash Ramanan, Nisheeth Ranjan, Suzanne Rivoire, Ken Ross, Tim Roughgarten, Mema Roussopoulos, Richard Scherl, Loren Shevitz, Shrikrishna Shrin, June Yoshiko Sison, Man Cho A. So, Elizabeth Stinson, Qi Su, Ed Swierk, Catherine Tornabene, Anders Uhl, Jonathan Ullman, Mayank Upadhyay. Τέλος οι Anatoly Varakin, Vassilis Vassalos, Krishna Venuturimilli, Vikram Vijayaraghavan, Terje Viken, Qiang Wang, Steven Whang, Mike Wiacek, Kristian Widjaja, Janet Wu, Sundar Yamunachari, Takeshi Yokukawa, Bing Yu, Min-Sig Yun, Torben Zahle, SandyZhang. Τα τυχόν λάθη που έχουν αποµείνει βαρύνουν, όπως είναι ϕυσικό, αποκλειστικά εµάς. H. G.-M. J. D. U. J. W. Stanford, CA Μάρτιος, 2008

x GOAL Το Gradiance Online Accelerated Learning - (GOAL) είναι το κύριο on-line σύστηµα του εκδοτικού οίκου Pearson για ασκήσεις στο σπίτι και για αξιολόγηση. Το σύστηµα GOAL έχει σχεδιαστεί µε βάση τις ανάγκες των ϕοιτητών, προκειµένου να τους προσϕέρει µια διαδραστική εµπειρία µαθήµατος εκτός των ορίων του πανεπιστηµιακού αµϕιθεάτρου. (Για µια επίδειξη του συστήµατος και για επιπλέον πληροϕορίες, επισκεϕτείτε την ιστοσελίδα www.prenhall.com/goal.) Με την άµεση ανάδραση που παρέχει το σύστηµα GOAL, και τις υποδείξεις για συγκεκριµένα σηµεία του βιβλίου, η γνωστική διαδικασία καθίσταται πιο αποτελεσµατική και πιο ουσιαστική. Το σύστηµα GOAL προσϕέρει άµεση αξιολόγηση, χρησιµοποιώντας δύο είδη εργασιών: ασκήσεις πολλαπλής επιλογής για το σπίτι και διαδραστικές εργαστηριακέςασκήσεις. Οι ασκήσεις για το σπίτι περιλαµβάνουν ένα σύνολο ερωτήσεων πολλαπλής επιλογής που είναι σχεδιασµένες έτσι ώστε να ελέγχουν τις γνώσεις των ϕοιτητών σχετικά µε κάποια λυµένα προβλήµατα. Όταν οι απαντήσεις τους χαρακτηρίζονται λανθασµένες, τότε τους δίνεται κάποια συµβουλή και τους υποδεικνύεται µια συγκεκριµένη ενότητα του διδακτικού εγχειριδίου, όπου θα µπορέσουν να βρουν χρήσιµες πληροϕορίες. Σηµείωση: Οι ϕοιτητές που δεν έχουν δηλώσει ένα µάθηµα,µπορούν αν θέλουν να παρακολουθήσουν ένα πρόγραµµα «αυτοδιδασκαλίας», που θα τους επιτρέψει να ολοκληρώσουν τις ασκήσεις µόνοι τους. Σε αντίθεση µε τους συντακτικούς ελεγκτές και τους µεταϕραστές, στις εργαστηριακές εργασίες του συστήµατος GOAL ελέγχονται τόσο τα συντακτικά όσο και τα σηµασιολογικά λάθη. Το GOAL ελέγχει αν το πρόγραµµα που υποβάλλει ένας ϕοιτητής µπορεί να εκτελεστεί, αλλά, πράγµα ακόµη πιο σηµαντικό, επιβεβαιώνει ότι επιστρέϕει το σωστό αποτέλεσµα ως προς ένα κρυϕό σύνολο δεδοµένων. Ελέγχοντας τον κώδικα και παρέχοντας άµεση πληροϕόρηση στους ϕοιτητές, το GOAL τους καθιστά σαϕές ακριβώς ποιες έννοιες έχουν κατανοήσει ορθά και ποιες θα ήταν καλό να µελετήσουν εκ νέου. Επιπλέον, στο πακέτο GOAL που αϕορά το συγκεκριµένο εγχειρίδιο περιλαµβάνονται ασκήσεις προγραµµατισµού σε SQL και XQuery. Ελέγχεται η ορθότητα των υποβαλλόµενων ερωτηµάτων, και όταν εντοπίζονται σϕάλµατα υποδεικνύονται στους ϕοιτητές ενδεικτικά δεδοµένα για τα οποία το ερώτηµα δεν λειτουργεί σωστά. Οι ϕοιτητές µπορούν να δοκιµάσουν οσεσδήποτε ϕορές, αλλά για να τους πιστωθεί η επιτυχής λύση του προβλήµατος δεν αρκεί το ερώτηµά τους να αποκρίνεται ορθά σταενδεικτικά δεδοµένα που τους παρουσιάζονται. Για αγορά και για πληροϕορίες σχετικά µε παραγγελία του οικονοµικού πακέτου που περιλαµβάνει το διδακτικό εγχειρίδιο και τον ϕοιτητικό κωδικό πρόσβασης στο σύστηµαgoal, οιδιδάσκοντεςθαπρέπειναεπικοινωνήσουνµετον τοπικό εµπορικό αντιπρόσωπο της Pearson.

xi Οι συγγραϕείς Ο HECTOR GARCIA-MOLINA είναι καθηγητής επιστήµης υπολογιστών και ηλεκτρικής µηχανολογίας στο Πανεπιστήµιο Stanford, στην έδρα L. Bosack και S. Lerner. Στα ερευνητικάτουενδιαϕέρονταπεριλαµβάνονται οι ψηϕιακές βιβλιοθήκες, η ενοποίηση των πληροϕοριών και οι εϕαρµογές των βάσεων δεδοµένων στο ιαδίκτυο. Έχει λάβει στο παρελθόν το βραβείο καινοτοµίας SIGMOD ενώ έχει διατελέσει και µέλος του PITAC (President s Information-Technology Advisory Council = Συµβουλευτική ΕπιτροπήτουΠροέδρου των ΗΠΑ για ζητήµατα τεχνολογίας της πληροϕορίας). Είναι µέλος τουδιοικητικού συµβουλίου της Oracle Corp. Ο JEFFREY D. ULLMAN είναι (επίτιµος) καθηγητής επιστήµης υπολογιστών στο Πανεπιστήµιο Stanford, στην έδρα W. Ascherman. Έχει γράψει, µόνος ή µε άλλους συγγραϕείς, 16 βιβλία, µεταξύ των οποίων το Elements of ML Programming (Prentice Hall 1998). Στα ερευνητικά του ενδιαϕέροντα περιλαµβάνεται η εξόρυξη δεδοµένων, η ενοποίηση των πληροϕοριών και η ηλεκτρονική εκπαίδευση. Είναι µέλος της National Academy of Engineering, και του έχει απονεµηθεί η υποτροϕία του ιδρύµατος Guggenheim, τοβραβείο εξαίρετης διδασκαλίας Karl V. Karlstrom, ταβραβεία καινοτοµίας SIGMOD και Edgar F. Codd, και το βραβείο Knuth. Η JENNIFER WIDOM είναι καθηγήτρια επιστήµης υπολογιστών και ηλεκτρικής µηχανολογίας στο πανεπιστήµιο Stanford. Τα ερευνητικά της ενδιαϕέροντα περιλαµβάνουν πολλές πτυχές της µη παραδοσιακής διαχείρισης πληροϕοριών. Είναι εταίρος της ACM και µέλος της National Academy of Engineering. Έχει λάβει το βραβείο καινοτοµίας ACM SIGMOD EdgarF.Codd το 2007 και υποτροϕία του ιδρύµατος Guggenheim το 2000. Έχειεπίσηςδιατελέσει µέλος πολλών επιτροπών προγραµµάτων, συµβουλευτικών και συντακτικών επιτροπών.

Περιεχόµενα 1 Οι κόσµοι των συστηµάτων βάσεων δεδοµένων 1 1.1 Η εξέλιξη των συστηµάτων βάσεων δεδοµένων...... 1 1.1.1 Πρώιµα συστήµατα διαχείρισης βάσεων δεδοµένων..... 2 1.1.2 Σχεσιακά συστήµατα βάσεων δεδοµένων..... 3 1.1.3 Ολοένα και πιο µικρά συστήµατα..... 4 1.1.4 Ολοένα και πιο µεγάλα συστήµατα.... 4 1.1.5 Ενοποίηση των πληροϕοριών..... 5 1.2 Επισκόπηση των συστηµάτων διαχείρισης βάσεων δεδοµένων.... 5 1.2.1 Εντολές των γλωσσών ορισµού δεδοµένων.... 6 1.2.2 Επισκόπηση της επεξεργασίας των ερωτηµάτων.... 7 1.2.3 Η διαχείριση της αποθήκευσης και της ενταµίευσης..... 8 1.2.4 Επεξεργασία δοσοληψιών.... 9 1.2.5 Ο επεξεργαστής των ερωτηµάτων.... 10 1.3 Περίγραµµα της µελέτης των βάσεων δεδοµένων..... 11 1.4 Βιβλιογραϕία γιατοκεϕάλαιο 1..... 13 I Το πρότυποτων σχεσιακών βάσεων δεδοµένων 15 2 Τοσχεσιακόπρότυποδεδοµένων 17 2.1 Γενική επισκόπηση των προτύπων δεδοµένων....... 17 2.1.1 Τι είναι τα πρότυπα δεδοµένων;.... 17 2.1.2 Τα πιο σηµαντικά πρότυπα δεδοµένων....... 18 2.1.3 Συνοπτική παρουσίασητου σχεσιακού προτύπου.... 19 2.1.4 Συνοπτική παρουσίαση του προτύπου των ηµιδοµηµένων δεδοµένων.... 20 2.1.5 Άλλα πρότυπα δεδοµένων... 21 2.1.6 Σύγκριση των διαϕόρων προτύπων... 21 2.2 Οι βασικές αρχές του σχεσιακού προτύπου.... 22 2.2.1 Γνωρίσµατα... 22 2.2.2 Σχήµατα...... 22 2.2.3 Πλειάδες..... 23 2.2.4 Πεδία τιµών.... 23

xiv ΠΕΡΙΕΧΟΜΕΝΑ 2.2.5 Ισοδύναµες αναπαραστάσεις µιας σχέσης..... 24 2.2.6 Στιγµιότυπα σχέσεων... 24 2.2.7 Τα κλειδιά των σχέσεων..... 25 2.2.8 Ένα παράδειγµα σχήµατος βάσης δεδοµένων... 26 2.2.9 Ασκήσεις για την Ενότητα 2.2.... 29 2.3 Ο ορισµός του σχήµατος µιας σχέσης στην SQL.... 29 2.3.1 Σχέσεις στην SQL..... 30 2.3.2 Τύποι δεδοµένων...... 31 2.3.3 Απλές δηλώσεις πινάκων...... 32 2.3.4 Η τροποποίηση του σχήµατος µιας σχέσης.... 34 2.3.5 Προεπιλεγµένες τιµές... 35 2.3.6 Η δήλωση των κλειδιών... 35 2.3.7 Ασκήσεις για την Ενότητα 2.3.... 37 2.4 Μια αλγεβρική γλώσσα ερωτηµάτων.... 39 2.4.1 Για ποιο λόγο χρειαζόµαστε µια ειδική γλώσσα ερωτηµάτων; 39 2.4.2 Τι είναι µια άλγεβρα;... 40 2.4.3 Γενική επισκόπηση της σχεσιακής άλγεβρας... 40 2.4.4 Πράξεις συνόλων σε σχέσεις.... 40 2.4.5 Προβολή..... 42 2.4.6 Επιλογή...... 43 2.4.7 Καρτεσιανό γινόµενο... 44 2.4.8 Φυσικές συνενώσεις.... 45 2.4.9 Συνενώσεις θ... 47 2.4.10 Ο συνδυασµός τελεστών για τη διατύπωση ερωτηµάτων.. 49 2.4.11 Ονοµατοδοσία και µετονοµασία... 50 2.4.12 Συσχετισµοί µεταξύ των πράξεων..... 51 2.4.13 Ένας γραµµικός συµβολισµός για τις αλγεβρικές εκϕράσεις. 53 2.4.14 Ασκήσεις για την Ενότητα 2.4.... 54 2.5 Περιορισµοί σε σχέσεις.... 60 2.5.1 Η σχεσιακή άλγεβρα ως γλώσσα διατύπωσης περιορισµών. 60 2.5.2 Περιορισµοί παραπεµπτικής ακεραιότητας.... 61 2.5.3 Περιορισµοί κλειδιού... 62 2.5.4 Κάποια επιπλέον παραδείγµατα περιορισµών... 63 2.5.5 Ασκήσεις για την Ενότητα 2.5.... 64 2.6 Περίληψη του Κεϕαλαίου 2.... 65 2.7 Βιβλιογραϕία γιατοκεϕάλαιο 2....... 67 Θ 3 εωρίασχεδίασης σχεσιακών βάσεων δεδοµένων 69 3.1 Συναρτησιακές εξαρτήσεις..... 70 3.1.1 Ο ορισµός της συναρτησιακής εξάρτησης... 70 3.1.2 Τα κλειδιά των σχέσεων..... 72 3.1.3 Υπερκλειδιά.... 73 3.1.4 Ασκήσεις για την Ενότητα 3.1.... 74 3.2 Κανόνες για τις συναρτησιακές εξαρτήσεις... 75 3.2.1 Εξαγωγή συµπερασµάτων σχετικά µε τις συναρτησιακές εξαρτήσεις.... 75

ΠΕΡΙΕΧΟΜΕΝΑ xv 3.2.2 Ο κανόνας κατάτµησης/συσσωµάτωσης...... 76 3.2.3 Τετριµµένες συναρτησιακές εξαρτήσεις...... 77 3.2.4 Ο υπολογισµός του πληρώµατος γνωρισµάτων..... 78 3.2.5 Γιατί ο αλγόριθµος υπολογισµού του πληρώµατος λειτουργεί σωστά..... 80 3.2.6 Ο κανόνας µεταβατικότητας..... 82 3.2.7 Πλήρωµα συνόλων συναρτησιακών εξαρτήσεων.... 83 3.2.8 Προβολή συναρτησιακών εξαρτήσεων....... 84 3.2.9 Ασκήσεις για την Ενότητα 3.2....... 86 3.3 Η σχεδίαση σχεσιακών σχηµάτων βάσεων δεδοµένων......... 88 3.3.1 Ανωµαλίες.... 89 3.3.2 Η διάσπαση των σχέσεων.... 90 3.3.3 Η κανονική µορϕή Boyce-Codd..... 91 3.3.4 ιάσπασηµιας σχέσης προκειµένου να αποκτήσει µορϕή BC 93 3.3.5 Ασκήσεις για την Ενότητα 3.3....... 96 3.4 ιάσπαση: Ο καλός, ο κακός και ο άσχηµος... 97 3.4.1 Η ανάκτηση των πληροϕοριών µετά από µια διάσπαση... 97 3.4.2 Ο «έλεγχος της λάξευσης» για τις διατηρητικές συνενώσεις. 100 3.4.3 Για ποιο λόγο ο αλγόριθµος της λάξευσης δίνει σωστά αποτελέσµατα;.... 103 3.4.4 ιατήρηση των εξαρτήσεων... 104 3.4.5 Ασκήσεις για την Ενότητα 3.4....... 106 3.5 Τρίτη κανονική µορϕή....... 106 3.5.1 Ορισµός της τρίτης κανονικής µορϕής..... 107 3.5.2 Ο αλγόριθµος της σύνθεσης σχέσεων σε 3ΚΜ........ 107 3.5.3 Γιατί ο αλγόριθµος σύνθεσης σχέσεων σε 3ΚΜ δίνει σωστά αποτελέσµατα;.... 108 3.5.4 Ασκήσεις για την Ενότητα 3.5....... 109 3.6 Πλειότιµες εξαρτήσεις.... 110 3.6.1 Η ανεξαρτησία των γνωρισµάτων και η πλεονασµατικότητα που αυτή συνεπάγεται.... 110 3.6.2 Ο ορισµός των πλειότιµων εξαρτήσεων...... 111 3.6.3 Εξαγωγή συµπερασµάτων σχετικά µε τις πλειότιµες εξαρτήσεις 113 3.6.4 Η τέταρτη κανονική µορϕή... 115 3.6.5 ιάσπαση σε σχέσεις µε 4ΚΜ....... 116 3.6.6 Συσχετισµοίµεταξύτωνκανονικών µορϕών... 117 3.6.7 Ασκήσεις για την Ενότητα 3.6....... 118 3.7 Ένας αλγόριθµος για την εύρεση ΠΕ....... 119 3.7.1 Ο αλγόριθµος του πληρώµατος και ο αλγόριθµος της λάξευσης 120 3.7.2 Η επέκταση του αλγορίθµου της λάξευσης για τον έλεγχο ΠΕ 121 3.7.3 Γιατί η λάξευση δίνει τα σωστά αποτελέσµατα για τις ΠΕ.. 123 3.7.4 Η προβολή ΠΕ....... 124 3.7.5 Ασκήσεις για την Ενότητα 3.7....... 125 3.8 Περίληψη του Κεϕαλαίου 3.... 126 3.9 Βιβλιογραϕία γιατοκεϕάλαιο 3..... 128

xvi ΠΕΡΙΕΧΟΜΕΝΑ 4 Υψηλού επιπέδου πρότυπα βάσεων δεδοµένων 129 4.1 Το οντοσυσχετιστικό πρότυπο... 130 4.1.1 Οντοσύνολα... 130 4.1.2 Γνωρίσµατα... 131 4.1.3 Συσχετίσεις.... 131 4.1.4 Οντοσυσχετιστικά διαγράµµατα..... 132 4.1.5 Στιγµιότυπα ενός Ο/Σ διαγράµµατος...... 133 4.1.6 Πολλαπλότητα των διµελών Ο/Σ συσχετίσεων........ 133 4.1.7 Πολυµελείς συσχετίσεις..... 135 4.1.8 Οι ρόλοι στις συσχετίσεις...... 136 4.1.9 Γνωρίσµατα συσχετίσεων...... 138 4.1.10 Η µετατροπή πολυµελών συσχετίσεων σε διµελείς...... 139 4.1.11 Υποκλάσεις στο Ο/Σ πρότυπο... 140 4.1.12 Ασκήσεις για την Ενότητα 4.1.... 143 4.2 Σχεδιαστικές αρχές.... 146 4.2.1 Πιστότητα.... 146 4.2.2 Αποϕυγή της πλεονασµατικότητας.... 147 4.2.3 Η απλότητα έχει σηµασία...... 147 4.2.4 Η επιλογή των σωστών συσχετίσεων... 148 4.2.5 Η επιλογή του σωστού είδους στοιχείων.... 150 4.2.6 Ασκήσεις για την Ενότητα 4.2.... 152 4.3 Περιορισµοί στο Ο/Σ πρότυπο... 154 4.3.1 Κλειδιά στο Ο/Σ πρότυπο...... 155 4.3.2 Η αναπαράσταση των κλειδιών στο Ο/Σ πρότυπο...... 155 4.3.3 Παραπεµπτική ακεραιότητα..... 156 4.3.4 Περιορισµοί βαθµού.... 157 4.3.5 Ασκήσεις για την Ενότητα 4.3.... 158 4.4 Ασθενή οντοσύνολα... 158 4.4.1 Αιτίες ύπαρξηςτωνασθενών οντοσυνόλων.... 158 4.4.2 Απαιτήσεις για τα ασθενή οντοσύνολα..... 160 4.4.3 Συµβολισµός για τα ασθενήοντοσύνολα..... 162 4.4.4 Ασκήσεις για την Ενότητα 4.4.... 162 4.5 Από τα Ο/Σ διαγράµµατα στα σχεσιακά σχέδια...... 163 4.5.1 Από οντοσύνολα σε σχέσεις..... 164 4.5.2 Από Ο/Σ συσχετίσεις σε σχέσεις..... 164 4.5.3 Η συσσωµάτωση σχέσεων...... 166 4.5.4 Ο χειρισµός των ασθενών οντοσυνόλων............ 168 4.5.5 Ασκήσεις για την Ενότητα 4.5.... 171 4.6 Η µετατροπή δοµών µε υποκλάσεις σε σχέσεις....... 172 4.6.1 Η Ο/Σ προσέγγιση για τη µετατροπή... 172 4.6.2 Μια οντοστρεϕής προσέγγιση...... 174 4.6.3 Η χρήση κενών τιµών για τη συσσωµάτωση σχέσεων.... 175 4.6.4 Σύγκριση τωνδιαϕορετικών προσεγγίσεων.... 175 4.6.5 Ασκήσεις για την Ενότητα 4.6.... 178 4.7 UML.... 178 4.7.1 Κλάσεις της UML..... 179

ΠΕΡΙΕΧΟΜΕΝΑ xvii 4.7.2 Τα κλειδιά των κλάσεων UML...... 180 4.7.3 Συζεύξεις... 180 4.7.4 Αυτοσυζεύξεις....... 182 4.7.5 Κλάσεις σύζευξης..... 182 4.7.6 Υποκλάσεις στη UML... 183 4.7.7 Συγκεντρώσεις και συνθέσεις..... 185 4.7.8 Ασκήσεις για την Ενότητα 4.7....... 186 4.8 Από τα διαγράµµατα UML στις σχέσεις... 187 4.8.1 Τα βασικά στοιχεία της µετατροπής από διαγράµµατα UML σε σχέσεις..... 187 4.8.2 Από υποκλάσεις UML σε σχέσεις..... 188 4.8.3 Από συγκεντρώσεις και συνθέσεις σε σχέσεις......... 188 4.8.4 Το αντίστοιχο των ασθενών οντοσυνόλων σε UML...... 189 4.8.5 Ασκήσεις για την Ενότητα 4.8....... 190 4.9 ODL..... 191 4.9.1 ηλώσεις κλάσεων..... 191 4.9.2 Γνωρίσµατα στην ODL... 192 4.9.3 Συσχετίσεις στην ODL... 193 4.9.4 Αντίστροϕες συσχετίσεις.... 194 4.9.5 Πολλαπλότητα των συσχετίσεων........ 194 4.9.6 Τύποι στην ODL...... 196 4.9.7 Υποκλάσεις στην ODL... 198 4.9.8 Η δήλωση κλειδιών στην ODL...... 199 4.9.9 Ασκήσεις για την Ενότητα 4.9....... 200 4.10 Από τα σχέδια ODL στα σχεσιακά σχέδια..... 201 4.10.1 Από κλάσεις ODL σε σχέσεις....... 202 4.10.2 Κλάσεις µε σύνθετα γνωρίσµατα..... 203 4.10.3 Η αναπαράσταση συνολότιµων γνωρισµάτων... 203 4.10.4 Η αναπαράσταση άλλων τυποκατασκευαστών........ 205 4.10.5 Η αναπαράσταση συσχετίσεων της ODL..... 206 4.10.6 Ασκήσεις για την Ενότητα 4.10...... 207 4.11 Περίληψη του Κεϕαλαίου 4.... 208 4.12 Βιβλιογραϕία για το Κεϕάλαιο 4..... 210 II Προγραµµατισµός σχεσιακών βάσεων δεδοµένων 213 5 Αλγεβρικέςκαι λογικές γλώσσες ερωτηµάτων 215 5.1 Σχεσιακές πράξεις σε σάκους.... 215 5.1.1 Γιατί χρησιµοποιούµε σάκους;....... 216 5.1.2 Ένωση, τοµή και διαϕοράσάκων..... 217 5.1.3 Προβολή σάκων...... 218 5.1.4 Επιλογή σε σάκους..... 219 5.1.5 Γινόµενο σάκων...... 220 5.1.6 Συνένωση σάκων...... 220

xviii ΠΕΡΙΕΧΟΜΕΝΑ 5.1.7 Ασκήσεις για την Ενότητα 5.1.... 222 5.2 Επεκτεταµένοι τελεστές της σχεσιακής άλγεβρας..... 223 5.2.1 Απαλοιϕή διπλοεγγραϕών..... 224 5.2.2 Συγκεντρωτικοί τελεστές...... 225 5.2.3 Οµαδοποίηση... 225 5.2.4 Ο τελεστής οµαδοποίησης..... 226 5.2.5 Η επέκταση του τελεστή προβολής.... 228 5.2.6 Ο τελεστής ταξινόµησης....... 229 5.2.7 Εξωτερικές συνενώσεις....... 230 5.2.8 Ασκήσεις για την Ενότητα 5.2.... 232 5.3 Μια λογική για σχέσεις..... 233 5.3.1 Κατηγορήµατακαιάτοµα.... 233 5.3.2 Αριθµητικά άτοµα..... 234 5.3.3 Κανόνες και ερωτήµατα Datalog..... 234 5.3.4 Το νόηµα των κανόνων Datalog..... 236 5.3.5 Εκτασιακά και προθεσιακάκατηγορήµατα..... 238 5.3.6 Η εϕαρµογήκανόνων Datalog σε σάκους... 239 5.3.7 Ασκήσεις για την Ενότητα 5.3.... 241 5.4 Σχεσιακή άλγεβρα και Datalog... 241 5.4.1 Λογικές πράξεις...... 241 5.4.2 Προβολή..... 243 5.4.3 Επιλογή...... 243 5.4.4 Γινόµενα..... 246 5.4.5 Συνενώσεις.... 246 5.4.6 Η προσοµοίωση σύνθετων πράξεων µε τη γλώσσα Datalog. 248 5.4.7 Σύγκριση της Datalog και της σχεσιακής άλγεβρας...... 249 5.4.8 Ασκήσεις για την Ενότητα 5.4.... 250 5.5 Περίληψη του Κεϕαλαίου 5.... 251 5.6 Βιβλιογραϕία γιατοκεϕάλαιο 5....... 252 6 Ηγλώσσα βάσεων δεδοµένων SQL 255 6.1 Απλά ερωτήµατα στην SQL.... 256 6.1.1 Η προβολή στην SQL... 258 6.1.2 Η επιλογή στην SQL.... 260 6.1.3 Σύγκριση συµβολοσειρών...... 261 6.1.4 Συµµόρϕωση µορϕοτύπωνστηνsql... 262 6.1.5 Ηµεροµηνίες και ώρες... 264 6.1.6 Κενές τιµές και συγκρίσεις που χρησιµοποιούν την τιµή NULL 265 6.1.7 Η τιµή αληθείας UNKNOWN... 266 6.1.8 Η ταξινόµηση του αποτελέσµατος.... 268 6.1.9 Ασκήσεις για την Ενότητα 6.1.... 269 6.2 Ερωτήµατα που αϕορούν περισσότερες από µία σχέσεις....... 271 6.2.1 Γινόµενα και συνενώσεις στην SQL.... 272 6.2.2 Η άρση αµϕισηµιών σχετικά µε τα γνωρίσµατα........ 273 6.2.3 Πλειαδικές µεταβλητές....... 274 6.2.4 Ηερµηνείατωνπολυσχεσιακών ερωτηµάτων...... 275

ΠΕΡΙΕΧΟΜΕΝΑ xix 6.2.5 Ένωση, τοµή και διαϕορά ερωτηµάτων SQL.... 278 6.2.6 Ασκήσεις για την Ενότητα 6.2....... 280 6.3 Υποερωτήµατα.... 282 6.3.1 Υποερωτήµατα που παράγουν βαθµωτές τιµές........ 282 6.3.2 Συνθήκες που περιλαµβάνουν σχέσεις..... 283 6.3.3 Συνθήκες που περιλαµβάνουν πλειάδες.... 284 6.3.4 Συναρτηµένα υποερωτήµατα..... 286 6.3.5 Υποερωτήµατα σε ϕράσεις FROM... 288 6.3.6 Συνενωτικές εκϕράσειςστηνsql.... 289 6.3.7 Φυσικές συνενώσεις.... 290 6.3.8 Εξωτερικές συνενώσεις..... 291 6.3.9 Ασκήσεις για την Ενότητα 6.3....... 293 6.4 Πράξεις που αϕορούν ολόκληρες σχέσεις... 295 6.4.1 Η απαλοιϕή των διπλοεγγραϕών..... 296 6.4.2 ιπλοεγγραϕές σε ενώσεις, τοµές και διαϕορές........ 297 6.4.3 Οµαδοποίηση και υπολογισµός συγκεντρωτικών στοιχείων στην SQL..... 298 6.4.4 Συγκεντρωτικοί τελεστές.... 298 6.4.5 Οµαδοποίηση... 299 6.4.6 Οµαδοποίηση, συγκεντρωτικά στοιχεία και κενές τιµές... 301 6.4.7 Οι ϕράσεις HAVING... 302 6.4.8 Ασκήσεις για την Ενότητα 6.4....... 303 6.5 Τροποποιήσεις µιας βάσης δεδοµένων..... 305 6.5.1 Εισαγωγή..... 305 6.5.2 ιαγραϕή..... 308 6.5.3 Ενηµέρωση.... 308 6.5.4 Ασκήσεις για την Ενότητα 6.5....... 309 6.6 οσοληψίες στην SQL..... 310 6.6.1 Σειριόµορϕες πράξεις... 311 6.6.2 Ολοµέρεια.... 313 6.6.3 οσοληψίες... 314 6.6.4 Αµιγώς αναγνωστικές δοσοληψίες.... 316 6.6.5 Ακάθαρτες αναγνώσεις..... 317 6.6.6 Άλλα επίπεδα µόνωσης..... 320 6.6.7 Ασκήσεις για την Ενότητα 6.6....... 322 6.7 Περίληψη του Κεϕαλαίου 6.... 323 6.8 Βιβλιογραϕία γιατοκεϕάλαιο 6..... 324 7 Περιορισµοίκαιπυροδότες 327 7.1 Κλειδιά και εξωτερικά κλειδιά... 328 7.1.1 Η δήλωση περιορισµών εξωτερικού κλειδιού...... 328 7.1.2 Η τήρησητηςπαραπεµπτικής ακεραιότητας.... 329 7.1.3 Η αναβολή ελέγχου των περιορισµών..... 331 7.1.4 Ασκήσεις για την Ενότητα 7.1....... 334 7.2 Περιορισµοί σε γνωρίσµατα και σε πλειάδες... 336 7.2.1 Περιορισµοί µη κενής τιµής... 336

xx ΠΕΡΙΕΧΟΜΕΝΑ 7.2.2 Γνωρισµατικοί περιορισµοί CHECK... 336 7.2.3 Πλειαδικοί περιορισµοί CHECK.... 338 7.2.4 Σύγκριση των πλειαδικών καιτωνγνωρισµατικών περιορισµών..... 340 7.2.5 Ασκήσεις για την Ενότητα 7.2.... 340 7.3 Τροποποιήσεις των περιορισµών... 342 7.3.1 Η απόδοση ονόµατος στους περιορισµούς... 342 7.3.2 Η µεταβολή των περιορισµών που αϕορούν πίνακες..... 343 7.3.3 Ασκήσεις για την Ενότητα 7.3.... 344 7.4 Αξιώσεις....... 345 7.4.1 Η δηµιουργία αξιώσεων..... 345 7.4.2 Η χρήση των αξιώσεων... 346 7.4.3 Ασκήσεις για την Ενότητα 7.4.... 347 7.5 Πυροδότες...... 349 7.5.1 Πυροδότες στην SQL... 349 7.5.2 Οι επιλογές κατά τη σχεδίαση ενός πυροδότη... 351 7.5.3 Ασκήσεις για την Ενότητα 7.5.... 354 7.6 Περίληψη του Κεϕαλαίου 7.... 356 7.7 Βιβλιογραϕία γιατοκεϕάλαιο 7....... 357 8 Όψειςκαιευρετήρια 359 8.1 Εικονικές όψεις...... 359 8.1.1 Η δήλωση των όψεων... 360 8.1.2 Υποβολή ερωτηµάτων στις όψεις..... 361 8.1.3 Η µετονοµασία των γνωρισµάτων.... 362 8.1.4 Ασκήσεις για την Ενότητα 8.1.... 362 8.2 Τροποποίηση όψεων... 363 8.2.1 ιαγραϕή όψεων...... 363 8.2.2 Ενηµερώσιµες όψεις.... 363 8.2.3 Πυροδότες «αντί του» σεόψεις... 366 8.2.4 Ασκήσεις για την Ενότητα 8.2.... 367 8.3 Ευρετήρια στην SQL... 368 8.3.1 Ο λόγος ύπαρξης των ευρετηρίων.... 369 8.3.2 Η δήλωση ευρετηρίων... 369 8.3.3 Ασκήσεις για την Ενότητα 8.3.... 371 8.4 Η επιλογή ευρετηρίων....... 371 8.4.1 Ένα απλό µοντέλο υπολογιστικού κόστους.... 371 8.4.2 Ορισµένα χρήσιµα ευρετήρια.... 372 8.4.3 Ουπολογισµός τωνβέλτιστων ευρετηρίων.... 374 8.4.4 Αυτόµατη επιλογή ευρετηρίων... 377 8.4.5 Ασκήσεις για την Ενότητα 8.4.... 378 8.5 Υλοποιηµένες όψεις.... 379 8.5.1 Συντήρηση των υλοποιηµένων όψεων..... 379 8.5.2 Περιοδική συντήρηση των υλοποιηµένων όψεων....... 381 8.5.3 Η αναδιατύπωση ερωτηµάτων προκειµένου να χρησιµοποιούν υλοποιηµένες όψεις......... 382

ΠΕΡΙΕΧΟΜΕΝΑ xxi 8.5.4 Αυτόµατη δηµιουργία υλοποιηµένων όψεων... 384 8.5.5 Ασκήσεις για την Ενότητα 8.5....... 385 8.6 Περίληψη του Κεϕαλαίου 8.... 386 8.7 Βιβλιογραϕία γιατοκεϕάλαιο 8..... 387 9 ΗSQLσεπεριβάλλονδιακοµιστή 389 9.1 Η αρχιτεκτονική τριών στρωµάτων... 389 9.1.1 Το στρώµα των διακοµιστών ιστού.... 391 9.1.2 Το στρώµα των εϕαρµογών... 391 9.1.3 Το στρώµα της Β..... 392 9.2 Το περιβάλλον SQL.... 393 9.2.1 Περιβάλλοντα....... 393 9.2.2 Σχήµατα...... 394 9.2.3 Κατάλογοι.... 396 9.2.4 Πελάτες και διακοµιστές στο περιβάλλον SQL..... 396 9.2.5 Συνδέσεις... 397 9.2.6 Συνεδρίες... 398 9.2.7 Αρθρώµατα.... 398 9.3 Η διεπαϕή SQL και ϕιλοξενούσας γλώσσας...... 399 9.3.1 Το πρόβληµα της δοµικής αναντιστοιχίας..... 400 9.3.2 Η σύνδεση της SQL µε τη ϕιλοξενούσα γλώσσα....... 401 9.3.3 Το τµήµα των δηλώσεων.... 402 9.3.4 Η χρήσητων κοινόχρηστων µεταβλητών... 403 9.3.5 Μονοπλειαδικές εντολές select................. 404 9.3.6 ροµείς...... 405 9.3.7 Τροποποιήσεις µέσω δροµέων....... 407 9.3.8 Η προστασία έναντι συγχρονικών ενηµερώσεων....... 409 9.3.9 υναµική SQL....... 410 9.3.10 Ασκήσεις για την Ενότητα 9.3..... 411 9.4 Αποθηκευµένες διαδικασίες.... 412 9.4.1 Η δηµιουργία συναρτήσεων και διαδικασιών PSM...... 413 9.4.2 Απλές µορϕές εντολών του προτύπου PSM.... 414 9.4.3 ιακλαδωτικές εντολές..... 416 9.4.4 Ερωτήµατα στο PSM.... 417 9.4.5 Βρόχοι στο PSM...... 418 9.4.6 Βρόχοι for... 421 9.4.7 Εξαιρέσεις στο PSM.... 421 9.4.8 Η χρήση συναρτήσεων και διαδικασιών PSM... 424 9.4.9 Ασκήσεις για την Ενότητα 9.4....... 424 9.5 Η χρήση διεπαϕών κλητικού επιπέδου.... 427 9.5.1 Εισαγωγή στην SQL/CLI.... 427 9.5.2 Η επεξεργασία των εντολών....... 429 9.5.3 Η προσαγωγή των δεδοµένων από το αποτέλεσµα ενός ερωτήµατος...... 431 9.5.4 Η διαβίβαση παραµέτρων σεερωτήµατα...... 433 9.5.5 Ασκήσεις για την Ενότητα 9.5....... 434

xxii ΠΕΡΙΕΧΟΜΕΝΑ 9.6 JDBC.... 434 9.6.1 Εισαγωγή στο JDBC.... 435 9.6.2 Η δηµιουργία εντολών στο JDBC..... 436 9.6.3 Πράξεις δροµέων στο JDBC..... 438 9.6.4 ιαβίβαση παραµέτρων..... 438 9.6.5 Ασκήσεις για την Ενότητα 9.6.... 439 9.7 PHP.... 439 9.7.1 Τα βασικά της PHP.... 439 9.7.2 Συστοιχίες.... 441 9.7.3 Η βιβλιοθήκη PEAR DB... 441 9.7.4 Η δηµιουργία µιας σύνδεσης µε µια Β µε χρήση της βιβλιοθήκης DB..... 441 9.7.5 Η εκτέλεση εντολών SQL...... 442 9.7.6 Λειτουργίες δροµέων στην PHP..... 443 9.7.7 υναµική SQL στην PHP...... 443 9.7.8 Ασκήσεις για την Ενότητα 9.7.... 444 9.8 Περίληψη του Κεϕαλαίου 9.... 444 9.9 Βιβλιογραϕία γιατοκεϕάλαιο 9....... 446 10 Προχωρηµένα θέµατα σχεσιακών βάσεων δεδοµένων 447 10.1 Ασϕάλεια και εξουσιοδότηση χρηστών στην SQL..... 447 10.1.1 ικαιώµατα......... 448 10.1.2 Η δηµιουργία δικαιωµάτων..... 450 10.1.3 Ηδιαδικασίαελέγχου τωνδικαιωµάτων.... 450 10.1.4 Η χορήγηση δικαιωµάτων...... 452 10.1.5 ιαγράµµατα χορηγήσεων...... 454 10.1.6 Η ανάκληση των δικαιωµάτων... 455 10.1.7 Ασκήσεις για την Ενότητα 10.1...... 459 10.2 Αναδροµή στηνsql... 460 10.2.1 Ο ορισµός αναδροµικών σχέσεων στην SQL.... 460 10.2.2 Προβληµατικές εκϕράσεις στην αναδροµική SQL....... 464 10.2.3 Ασκήσεις για την Ενότητα 10.2...... 467 10.3 Το οντοσχεσιακό πρότυπο... 468 10.3.1 Από τις σχέσεις στις οντοσχέσεις..... 469 10.3.2 Ενθετοµερείς σχέσεις... 469 10.3.3 Παραποµπές........ 471 10.3.4 Οντοστρέϕεια και οντοσχεσιακότητα..... 472 10.3.5 Ασκήσεις για την Ενότητα 10.3...... 473 10.4 Ιδιοκατασκευασµένοι τύποι στην SQL... 474 10.4.1 Ο ορισµός τύπων στην SQL..... 474 10.4.2 Οι δηλώσεις µεθόδων στουςι/κτύπους...... 476 10.4.3 Οι ορισµοί των µεθόδων..... 477 10.4.4 Η δήλωση σχέσεων µε Ι/Κ τύπους.... 477 10.4.5 Παραποµπές........ 478 10.4.6 Η δηµιουργία ταυτοτήτων για τις οντότητες στους πίνακες. 479 10.4.7 Ασκήσεις για την Ενότητα 10.4...... 481

ΠΕΡΙΕΧΟΜΕΝΑ xxiii 10.5 Πράξεις επί οντοσχεσιακών δεδοµένων.... 481 10.5.1 Παρακολούθηση παραποµπών...... 482 10.5.2 Η προσπέλαση συνιστωσών πλειάδων µε Ι/Κ τύπο...... 482 10.5.3 Γεννήτριες και µεταλλάκτριες συναρτήσεις.... 484 10.5.4 Η διάταξη συσχετίσεων σε έναν Ι/Κ τύπο..... 485 10.5.5 Ασκήσεις για την Ενότητα 10.5...... 488 10.6 OLAP...... 489 10.6.1 Η OLAP και οι αποθήκες δεδοµένων... 489 10.6.2 Εϕαρµογές OLAP..... 490 10.6.3 Μια πολυδιάστατη απεικόνιση των δεδοµένων OLAP.... 491 10.6.4 Αστεροειδή σχήµατα.... 492 10.6.5 ιαµήκης και πλήρης κατάτµηση........ 494 10.6.6 Ασκήσεις για την Ενότητα 10.6...... 498 10.7 Κύβοι δεδοµένων........ 498 10.7.1 Ο τελεστής επικυβισµού... 499 10.7.2 Ο τελεστής επικυβισµού στηνsql.... 501 10.7.3 Ασκήσεις για την Ενότητα 10.7...... 503 10.8 Περίληψη του Κεϕαλαίου 10... 504 10.9 Βιβλιογραϕία γιατοκεϕάλαιο 10.... 506 III Τα πρότυπα και ο προγραµµατισµός των ηµιδοµηµένων δεδο- µένων 507 11 Το πρότυπο των ηµιδοµηµένων δεδοµένων 509 11.1 Ηµιδοµηµένα δεδοµένα..... 509 11.1.1 Για ποιο λόγο χρησιµοποιούµε το πρότυπο των ηµιδοµηµένων δεδοµένων;...... 510 11.1.2 Η αναπαράσταση ηµιδοµηµένων δεδοµένων... 510 11.1.3 Ενοποίηση πληροϕοριών µετηχρήσηηµιδοµηµένων δεδο- µένων....... 512 11.1.4 Ασκήσεις για την Ενότητα 11.1...... 514 11.2 XML..... 515 11.2.1 Σηµασιολογικές ετικέτες..... 515 11.2.2 Η XML µε και χωρίς σχήµα... 515 11.2.3 Ορθά συντεταγµένη XML.... 516 11.2.4 Γνωρίσµατα......... 518 11.2.5 Γνωρίσµαταπου συνδέουν στοιχεία... 518 11.2.6 Ονοµατόχωροι....... 519 11.2.7 XML και βάσεις δεδοµένων... 520 11.2.8 Ασκήσεις για την Ενότητα 11.2...... 522 11.3 DTD..... 522 11.3.1 Η µορϕή ενός DTD.... 522 11.3.2 Πώς χρησιµοποιούνται τα DTD;..... 526 11.3.3 Κατάλογοι γνωρισµάτων.... 526

xxiv ΠΕΡΙΕΧΟΜΕΝΑ 11.3.4 Αναγνωριστικά και παραποµπές..... 527 11.3.5 Ασκήσεις για την Ενότητα 11.3...... 528 11.4 XML Schema.... 530 11.4.1 Η µορϕή εγγράϕων XML Schema.... 530 11.4.2 Στοιχεία... 530 11.4.3 Σύνθετοι τύποι....... 531 11.4.4 Γνωρίσµατα......... 533 11.4.5 Απλοί τύποι µε περιορισµούς.... 534 11.4.6 Κλειδιά στην XML Schema..... 536 11.4.7 Εξωτερικά κλειδιά στηνxmlschema..... 539 11.4.8 Ασκήσεις για την Ενότητα 11.4...... 541 11.5 Περίληψη του Κεϕαλαίου 11... 541 11.6 Βιβλιογραϕία γιατοκεϕάλαιο 11...... 542 12 Γλώσσες προγραµµατισµού για την XML 545 12.1 XPath.... 545 12.1.1 Το πρότυπο δεδοµένων της XPath.... 546 12.1.2 Κόµβοι εγγράϕων..... 547 12.1.3 ιαδροµικές εκϕράσεις....... 547 12.1.4 Σχετικές διαδροµικές εκϕράσεις..... 549 12.1.5 Γνωρίσµατα στις διαδροµικές εκϕράσεις.... 549 12.1.6 Άξονες....... 550 12.1.7 Το πλαίσιο αναϕοράς τωνεκϕράσεων..... 551 12.1.8 Μπαλαντέρ......... 551 12.1.9 Συνθήκες στις διαδροµικές εκϕράσεις....... 552 12.1.10 Ασκήσεις για την Ενότητα 12.1...... 554 12.2 XQuery... 558 12.2.1 Βασικά στοιχεία της XQuery.... 558 12.2.2 Εκϕράσεις FLWR...... 558 12.2.3 Αντικατάσταση των µεταβλητών από τις τιµές τους..... 563 12.2.4 Συνενώσεις στην XQuery...... 564 12.2.5 Οι τελεστές σύγκρισης της XQuery... 565 12.2.6 Απαλοιϕή των διπλοεγγραϕών... 567 12.2.7 Ποσοδείκτες στην XQuery..... 567 12.2.8 Συγκεντρωτικά στοιχεία..... 568 12.2.9 ιακλαδώσεις στις εκϕράσεις XQuery..... 569 12.2.10 Η ταξινόµηση του αποτελέσµατος των ερωτηµάτων..... 570 12.2.11 Ασκήσεις για την Ενότητα 12.2...... 571 12.3 XSLT....... 573 12.3.1 Βασικά στοιχεία της XSLT...... 573 12.3.2 Εκµαγεία.......... 573 12.3.3 Η λήψη τιµών από δεδοµένα XML.... 574 12.3.4 Η αναδροµική χρήση των εκµαγείων... 576 12.3.5 Επαναλήψεις στην XSLT..... 578 12.3.6 Συνθήκες στην XSLT.... 580 12.3.7 Ασκήσεις για την Ενότητα 12.3...... 580

ΠΕΡΙΕΧΟΜΕΝΑ xxv 12.4 Περίληψη του Κεϕαλαίου 12... 581 12.5 Βιβλιογραϕία γιατοκεϕάλαιο 12.... 583 Ευρετήριο 585

Κεφάλαιο 1 Οι κόσμοι των συστημάτων βάσεων δεδομένων Στην εποχή µας οι βάσεις δεδοµένων (Β ) προσϕέρουν πολύ σηµαντικές υπηρεσίες σε κάθε επιχείρηση. Κάθε ϕορά που επισκέπτεστε έναν από τους σηµαντικούς ιστοτόπους Google, Yahoo!, Amazon.com ή κάποιον από τους χιλιάδες µικρότερους ιστοτόπους που παρέχουν πληροϕορίες στο παρασκήνιο λειτουργεί µια βάση δεδοµένων που σας προσϕέρει τις πληροϕορίες που ζητήσατε. Οι εταιρείες αποθηκεύουν όλα τα σηµαντικά τους αρχεία σε βάσεις δεδοµένων. Οι βάσεις δεδοµένων αποτελούν επίσης βασικό εργαλείο πολλών επιστηµονικών ερευνών: τα δεδοµένα που συλλέγουν οι αστρονόµοι, οι ερευνητές του ανθρώπινου γονιδιώµατος, οι βιοχηµικοί που µελετούν τις ιδιότητες των πρωτεϊνών και πολλές άλλες κατηγορίες επιστηµόνων καταγράϕονται σε βάσεις δεδοµένων. Η ισχύς των συστηµάτων βάσεων δεδοµένων οϕείλεται σε έναν βασικό κορµό γνώσεων και τεχνολογίας που έχει συσσωρευτεί κατά τη διάρκεια αρκετών δεκαετιών, και ο οποίος έχει ενσωµατωθεί σε εξειδικευµένα πακέτα λογισµικού που ονοµάζονται συστήµατα διαχείρισης βάσεων δεδοµένων ή Σ Β ή, πιο απλά, «συστήµατα βάσεων δεδοµένων». Τα Σ Β είναι πολύ αποτελεσµατικά εργαλεία για τη δηµιουργία και τη διαχείριση µεγάλου όγκου δεδοµένων καθώς και για την ασϕαλή διατήρησή τους για µεγάλο χρονικό διάστηµα. Τα Σ Β είναι από τα πιο σύνθετα είδη λογισµικού που έχουν αναπτυχθεί µέχρι σήµερα. Στο βιβλίο αυτό θα µάθουµε πώς να σχεδιάζουµε βάσεις δεδοµένων, πώς να γράϕουµε προγράµµατα στις διάϕορες γλώσσες που έχουν δηµιουργηθεί για τις βάσεις δεδοµένων και πώς να υλοποιούµε τις ίδιες τις βάσεις δεδοµένων. 1.1 Η εξέλιξη των συστημάτων βάσεων δεδομένων Τι είναι µια βάση δεδοµένων; Στην ουσία δεν είναι παρά µια συλλογή πληροϕοριών που διατηρείται για µεγάλο χρονικό διάστηµα, συχνά για µιαπερίοδοπολλώνετών. Στην καθοµιλουµένη, ο όρος βάση δεδοµένων αναϕέρεταισε µιασυλλογή δεδοµένων που ελέγχεται από ένα Σ Β. Τα Σ Β επιτελούν τις ακόλουθες λειτουργίες:

2 1. ΟΙ ΚΟΣΜΟΙ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ 1. Επιτρέπουν στους χρήστες να δηµιουργούν νέες βάσεις καιναπροσδιορίζουν το σχήµα τους (δηλαδή τη λογική διάρθρωση των δεδοµένων), χρησιµοποιώντας µια εξειδικευµένη γλώσσα ορισµού δεδοµένων. 2. Παρέχουνστους χρήστες τη δυνατότητα να υποβάλλουν ερωτήµατα (στο πεδίο των Β ο όρος «ερώτηµα» δηλώνει τις πληροϕοριοληπτικές εντολές που υποβάλλονται σε µια Β ) και να τροποποιούν τα δεδοµένα µε τη χρήση µιας κατάλληλης γλώσσας, η οποία ονοµάζεται γλώσσα ερωτηµάτων ή γλώσσα χειρισµού δεδοµένων. 3. Επιτρέπουν την αποθήκευση δεδοµένων πολύ µεγάλου όγκου συχνά πολλών TB ή και περισσότερο για µεγάλο χρονικό διάστηµα και προσϕέρουν ταχεία προσπέλαση σταδεδοµένα, προκειµένου να µπορούν να υποβάλλονται ερωτή- µατακαιναγίνονται τροποποιήσεις της βάσης δεδοµένων. 4. Καθιστούν τη Β ανθεκτική, διασϕαλίζουνδηλαδήτην ανάκαµψη του συστή- µατος σε περίπτωση βλάβης, διαϕόρων ειδών σϕαλµάτων ή εσκεµµένης προσπάθειας καταστροϕής της. 5. Ελέγχουν την ταυτόχρονη (αποκαλείται και συγχρονική) προσπέλαση πολλών χρηστών στα ίδια δεδοµένα, διασϕαλίζοντας ότι οι ενέργειες του ενός δεν θα επηρεάζουν τους άλλους χρήστες(ηιδιότητααυτήονοµάζεταιµόνωση)καιότι κάθε ενέργεια θα εκτελείται πλήρως και όχι εν µέρει (η ιδιότητα αυτή ονοµάζεται ολοµέρεια). 1.1.1 Πρώιμα συστήματα διαχείρισης βάσεων δεδομένων Τα πρώτα εµπορικά συστήµατα διαχείρισης βάσεων δεδοµένων εµϕανίστηκαν στα τέλη της δεκαετίας του 1960. Τα συστήµατα αυτά προέκυψαν ως εξέλιξη των συστη- µάτων διαχείρισης αρχείων, τα οποία παρέχουν επίσης ορισµένες από τις δυνατότητες που περιγράϕονται στην παράγραϕο (3) παραπάνω: διατηρούν αποθηκευµένα τα δεδοµένα για µεγάλες χρονικές περιόδους και επιτρέπουν την αποθήκευση πολύ µεγάλου όγκου δεδοµένων. εν διασϕαλίζουν όµως τη διάσωση αυτών των δεδοµένων (και για αυτό το λόγο δηµιουργούνται αντίγραϕα ασϕαλείας) και δεν παρέχουν τη δυνατότητα ταχείας προσπέλασης στα δεδοµένα (χωρίς τη γνώση της ακριβούς διεύθυνσής τους εντός του σχετικού αρχείου). Εκτός αυτού, τα συστήµατα διαχείρισης αρχείων δεν ικανοποιούν άµεσα τις απαιτήσεις της παραγράϕου (2), δεν υποστηρίζουν δηλαδή κάποια γλώσσα ερωτηµάτων για τα δεδοµένα που είναι αποθηκευµένα στα αρχεία. Σε ό,τι αϕορά τις απαιτήσεις της παραγράϕου (1) τον ορισµό του σχήµατος των δεδοµένων τα συστήµατα διαχείρισης αρχείων περιορίζονται στη δηµιουργία µιας ιεραρχίας περιοχών για τα σχετικά αρχεία. Επιπλέον, τα συστήµατα αυτά δεν ικανοποιούν πάντα τις απαιτήσεις της παραγράϕου (4). Έτσι, τα δεδοµένα που δεν αποθηκεύονται σε εϕεδρικές µονάδες αποθήκευσης µπορεί να χαθούν. Τέλος, τα συστήµατα διαχείρισης αρχείων δεν ικανοποιούν ούτε τις απαιτήσεις της παραγράϕου (5): ενώ επιτρέπουν την ταυτόχρονη προσπέλαση πολλών χρηστών (ή προγραµµάτων) στο ίδιο αρχείο, δεν µπορούν σε γενικές γραµµέςνα αποτρέψουν την ταυτόχρονη τροποποίηση ενός αρχείου από δύο χρήστες, µε αποτέλεσµα οι αλλαγές που επιϕέρει ο ένας από τους δύο να µην εµϕανίζονται τελικά στο αρχείο.

1.1. Η ΕΞΕΛΙΞΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ 3 Οι πρώτες σηµαντικές εϕαρµογές των Σ Β αϕορούσαν δεδοµένα που αποτελούνταν από πολλά στοιχεία µικρού µεγέθους, για τα οποία προέκυπταν πολλά ερωτήµατα ή τροποποιήσεις. Ορισµένες από αυτές τις εϕαρµογές ήταν: 1. Συστήµατα τραπεζικών δεδοµένων: πρέπει να τηρούν τα δεδοµένα των λογαριασµών και να διασϕαλίζουν ότι οι βλάβες του συστήµατος δεν θα προκαλούν αλλαγές στα στοιχεία. 2. Συστήµατα κρατήσεων αεροπορικών εισιτηρίων: τα συστήµατα αυτά, όπως και τα συστήµατα τραπεζικών δεδοµένων, πρέπει να διασϕαλίζουν τα δεδοµένα και να διαχειρίζονται πάρα πολλές ενέργειες των πελατών που θα τροποποιούν τη Β. 3. Τήρηση εταιρικών αρχείων: αρχεία σχετικά µε το προσωπικό ή µε ϕορολογικά δεδοµένα, κατάλογοι αποθεµάτων, αρχεία πωλήσεων και πολλές άλλες πληρο- ϕορίες, ορισµένες µάλισταιδιαίτερα σηµαντικές. Τα πρώτα Σ Β που δηµιουργήθηκαν προέκυψαν από τα συστήµατα διαχείρισης αρχείων. οι χρήστες αντιλαµβάνονταν τα δεδοµένα περίπου µε τον τρόπο που αποθηκεύονταν. Εκείνα τα Σ Β χρησιµοποιούσαν πολλά διαϕορετικά πρότυπα για την περιγραϕή της δοµής των δεδοµένων, και κυρίως το «ιεραρχικό» πρότυπο, που χρησιµοποιούσε δέντρα, και το «δικτυακό» πρότυπο, που χρησιµοποιούσε γραϕήµατα. Το τελευταίο είχε τυποποιηθεί στα τέλη της δεκαετίας του 1960 µε µια έκθεση της επιτροπής CODASYL («Committee on Data Systems and Languages»). 1 Μια από τις αδυναµίες αυτών των αρχικών προτύπων και συστηµάτων ήταν ότι δεν υποστήριζαν καµία γλώσσα ερωτηµάτων υψηλού επιπέδου. Π.χ. η γλώσσα ερωτηµάτων της επιτροπής CODASYL περιείχε εντολές που καθόριζαν τη µετάβαση από το ένα στοιχείο της βάσης στο άλλο µέσω ενός γραϕήµατος δεικτών που συνέδεε αυτά τα στοιχεία. Η συγγραϕή τέτοιων προγραµµάτων ήταν εξαιρετικά δύσκολη, ακόµα και για τη διατύπωση πολύ απλών ερωτηµάτων. 1.1.2 Σχεσιακά συστήματα βάσεων δεδομένων Τα συστήµατα βάσεων δεδοµένων άλλαξαν σηµαντικά µετά από ένα πολύ γνωστό άρθροτου TedCodd, που δηµοσιεύτηκε το 1970. 2 ΟCoddπρότεινεταΣ Β ναπαρουσιάζουν στους χρήστες τα δεδοµένα οργανωµένα µε τη µορϕή πινάκων, οι οποίοι ονο- µάζονται και σχέσεις.στο«παρασκήνιο»µπορεί να υπάρχει µια σύνθετη δοµή δεδοµένων που καθιστά δυνατή την ταχεία απόκριση σε διάϕορα ερωτήµατα. Αλλά, σε αντίθεση µε τα προηγούµενα συστήµατα, οι προγραµµατιστές ενός σχεσιακού συστήµατος δεν χρειάζεται να ασχολούνται µε τον τρόπο που είναι διαρθρωµένα τα δεδοµένα. Τα ερωτήµατά τους µπορούσαν πλέον να διατυπώνονται σε µια γλώσσα πολύ υψηλού επιπέδου, γεγονός που συνέβαλε σε µεγάλο βαθµό στην αύξηση της παραγωγικότητας των προγραµµατιστών Β. Στο µεγαλύτερο µέρος αυτού του βιβλίου θα ασχοληθούµε µε την περιγραϕή αυτού του σχεσιακού προτύπου των Β. Θα ασχοληθούµε εκτενώς µε την SQL («Structured Query Language» = δοµηµένη γλώσσα ερωτηµάτων), την πιο σηµαντική από τις γλώσσες που βασίζονται στο σχεσιακό πρότυπο. 1 CODASYL Data Base Task Group April 1971 Report,ACM,NewYork. 2 Codd, E. F., «A relational model for large shared data banks», Comm. ACM, 13:6,σελ. 377 387.

4 1. ΟΙ ΚΟΣΜΟΙ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Αν και ήδη από το 1990 τα σχεσιακά συστήµατα θεωρούνται το καθιερωµένο πρότυπο, το πεδίο των βάσεων δεδοµένων εξελίσσεται διαρκώς, και συνεχώς προτείνονται νέες προσεγγίσεις για τη διαχείριση των δεδοµένων. Στο σχεσιακό πρότυπο έχουν παρεισϕρήσει οντοστρεϕή χαρακτηριστικά. Ορισµένες από τις µεγαλύτερες βάσεις δεδοµένων είναι οργανωµένες κάπως διαϕορετικά από αυτές που χρησιµοποιούν τη µεθοδολογία του σχεσιακού προτύπου. Στο υπόλοιπο αυτής της ενότητας θα εξετάσουµε ορισµένες από τις σύγχρονες τάσεις στον χώρο των Σ Β. 1.1.3 Ολοένα και πιο μικρά συστήματα Αρχικά τα Σ Β ήταν τεράστια και ακριβά συστήµατα λογισµικού, που έτρεχαν σε µεγάλους υπολογιστές. Το µεγάλο µέγεθος ήταν απαραίτητο, διότι η αποθήκευση λ.χ. ενός GB δεδοµένων ήταν εϕικτή µόνο σε µεγάλα συστήµατα υλισµικού. Στην εποχή µας µία και µόνη δισκοµονάδα µπορεί να αποθηκεύσει πληροϕορίες πολλών GB και έτσι είναι δυνατή η λειτουργία των Σ Β ακόµα και σε προσωπικούς υπολογιστές. Τα Σ Β που στηρίζονται στο σχεσιακό πρότυπο µπορούν να λειτουργήσουν σε πολύ µικρές υπολογιστικές συσκευές και έχουν αρχίσει να χρησιµοποιούνται ακόµα και στις πιο καθηµερινές εϕαρµογές (όπως είχε συµβεί νωρίτερα µε τα προγράµµατα λογιστικών ϕύλλων ή τους επεξεργαστές κειµένου). Μια άλλη σηµαντική τάση είναι η χρήση εγγράϕων, τα οποία συχνά έχουν σηµανθεί µέσω ετικετών XML («Extensible Markup Language» = επεκτάσιµη σηµατοδοτική γλώσσα). Ως βάσεις δεδοµένων µπορούν να λειτουργήσουν και µεγάλες συλλογές µικρών εγγράϕων, και οι µέθοδοι που χρησιµοποιούµε για να υποβάλλουµε ερωτή- µατασε αυτέςτις συλλογές καινα τις τροποποιούµε είναι διαϕορετικές από τις µεθόδους που χρησιµοποιούνται στα σχεσιακά συστήµατα. 1.1.4 Ολοένα και πιο μεγάλα συστήματα Από την άλλη, ένα GB δεν είναι πλέον στις µέρες µας τόσο µεγάλος όγκος πληροϕορίας. Οι εταιρικές βάσεις δεδοµένων συχνά έχουν όγκο της τάξης των terabyte (10 12 byte, ή αλλιώς «οκταδυϕία»). Υπάρχουν µάλιστα βάσεις δεδοµένων που αποθηκεύουν και παρέχουν στους χρήστες δεδοµένα της τάξης των petabyte (10 15 οκταδυϕία). Ορίστε κάποια σηµαντικά παραδείγµατα: 1. Η Google αποθηκεύει δεδοµένα αρκετών petabyte, τα οποία συλλέγει µε τον «ερπυσµό» της στον Ιστό. Τα δεδοµένα αυτά δεν αποθηκεύονται σε ένα παραδοσιακό Σ Β, αλλά σε εξειδικευµένες δοµές που είναι ειδικά σχεδιασµένες για τα ερωτήµατα που υποβάλλονται στις µηχανέςαναζήτησης. 2. Οι δορυϕόροι αποστέλλουν πληροϕορίες της τάξης των petabyte, οι οποίες αποθηκεύονται σε εξειδικευµένα συστήµατα. 3. Μια εικόνα αξίζει στην πραγµατικότηταπερισσότερο από χίλιες λέξεις. Για την αποθήκευση 1000 λέξεων απαιτούνται περίπου πέντε µε έξι χιλιάδες οκταδυϕία. Για την αποθήκευση µιας εικόνας απαιτείται συνήθως πολύ περισσότερος αποθηκευτικός χώρος.βάσεις δεδοµένων µε εικόνες, όπως το Flickr, αποθηκεύουν εκατοµµύρια εικόνες και δίνουν µάλιστα τη δυνατότητα αναζήτησης σε αυτές. Ακόµα και µια βάση δεδοµένων σαν αυτή του Amazon περιλαµβάνει εκατοµµύρια εικόνες προϊόντων.