You are on page 1of 340

Ramez Elmasri and Shamkant B.

Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 1

Υλοποίηση Βάσεων Δεδομένων

www.di.uoa.gr/~k18

Διδάσκων
Μ.Χατζόπουλος

Σύγγραμματα:
1)Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων (Elmasri και
Navathe πέμπτη έκδοση)
2)Συστήματα Διαχειρισης Βάσεων Δεδομένων (Ramakrishnan, R και
Gehrke, δεύτερη έκδοση)

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 2
Κεφάλαιο 1
Εισαγωγή: Βάσεις Δεδομένων και
Χρήστες Βάσεων Δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe

Γιατί θα μιλήσουμε
 Τύποι Βάσεων Δεδομένων και Εφαρμογών
 Βασικοί Ορισμοί
 Τυπική λειτουργία ΣΔΒΔ
 Παράδειγμα Βάσης Δεδομένων (ΠΑΝΕΠΙΣΤΗΜΙΟ)
 Βασικά Χαρακτηριστικά Προσέγγισης με βάσεις
Δεδομένων
 Χρήστες Βάσεων Δεδομένων
 Πλεονεκτήματα της Προσέγγισης με Βάσεις Δεδομένων
 Πότε δεν χρησιμοποιούνται βάσεις δεδομένων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 6
Τύποι Βάσεων Δεδομένων και
Εφαρμογών Βάσεων Δεδομένων
 Παραδοσιακές Εφαρμογές:
 Βάσεις Δεδομένων Αριθμών και Κειμένου
 Σύγχρονες Εφαρμογές:
 Βάσεις Πολυμέσων
 Γεωγραφικά Συστήματα Πληροφοριών (GIS)
 Αποθήκες Δεδομένων
 Βάσεις Δεδομένων Πραγματικού Χρόνου και Ενεργές
Βάσεις Δεδομένων
 Άλλες Εφαρμογές
 Αρχικά θα εστιάσουμε σε παραδοσιακές εφαρμογές

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 7

Βασικοί Ορισμοί
 Βάση Δεδομένων:
 Μια συλλογή δεδομένων που σχετίζονται.

 Δεδομένα:
 Γνωστά γεγονότα που μπορούν να καταγραφούν και έχουν μια
εγγενή σημασία.
 Μικρόκοσμος:
 Τμήμα του πραγματικού κόσμου για το οποίο αποθηκεύονται
δεδομένα στη βάση δεδομένων. Για παράδειγμα βαθμοί φοιτητών
σε μαθήματα.
 Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ):
 Ένα πακέτο/σύστημα λογισμικού που διευκολύνει την δημιουργία
και την διαχείριση μιας βάσης δεδομένων σε υπολογιστή.
 Σύστημα Βάσης δεδομένων:
 Το λογισμικό του ΣΔΒΔ μαζί με τα δεδομένα. Μερικές φορές
συμπεριλαμβάνονται και οι εφαρμογές.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 8
Απλουστευμένο περιβάλλον συστήματος
βάσης δεδομένων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 9

Τυπικές Λειτουργίες ΣΔΒΔ


 Ορισμός μιας βάσης δεδομένων σε σχέση με τους τύπους
των δεδομένων της, τις δομές και τους περιορισμούς
 Κατασκευή ή φόρτωση του αρχικού περιεχομένου της
βάσης δεδομένων σε δευτερεύον αποθηκευτικό μέσο.
 Χειρισμός της βάσης δεδομένων:
 Ανάκτηση: Επερωτήσεις, δημιουργία αναφορών.
 Τροποποίηση: Εισαγωγές, διαγραφές και ενημερώσεις του
περιεχομένου της.
 Προσπέλαση στη βάση δεδομένων μέσω Web εφαρμογών
 Επεξεργασία και κοινή χρήση από ένα σύνολο
ταυτόχρονων χρηστών και προγραμμάτων εφαρμογών –
ενώ τα δεδομένα παραμένουν έγκυρα και συνεπή.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 10
Τυπική Λειτουργικότητα ΣΔΒΔ
 Άλλα χαρακτηριστικά:
 Προφύλαξη ή μέτρα ασφάλειας για προστασία από
μη επιτρεπόμενη προσπέλαση.
 “Ενεργή” επεξεργασία για εσωτερικές δράσεις στα
δεδομένα
 Διατήρηση και Οπτικοποίηση των δεδομένων
 Συντήρηση της βάσης δεδομένων και των
αντίστοιχων προγραμμάτων καθ’ όλη την διάρκεια
ζωής της της βάσης δεδομένων
 Ονομάζεται συντήρηση της βάσης δεδομένων, του
λογισμικού, και του συστήματος

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 11

Παράδειγμα Βάσης Δεδομένων


(με ένα Εννοιολογικό Μοντέλο Δδομένων)

 Ο μικρόκοσμος του παραδείγματος:


 Μέρος του περιβάλλοντος ενός
ΠΑΝΕΠΙΣΤΗΜΙΟ(Υ).
 Κάποιες οντότητες του μικρόκοσμου :
 ΦΟΙΤΗΤΗΣ(ες)
 ΜΑΘΗΜΑ(τα)
 ΔΙΔΑΣΚΑΛΙΑ(ες) (ΜΑΘΗΜΑ(των)
 (ακαδημαϊκά) ΤΜΗΜΑ(τα)
 ΔΙΔΑΣΚΩΝ(τες)

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 12
Παράδειγμα Βάσης Δεδομένων
(με ένα Εννοιολογικό Μοντέλο Δδομένων)

 Μερικές συσχετίσεις του μικρόκοσμου :


 ΔΙΔΑΣΚΑΛΙΑ(ες) συγκεκριμένων ΜΑΘΗΜΑ(των)
 ΦΟΙΤΗΤΗΣ(ες) γράφονται σε ΔΙΔΑΣΚΑΛΙΑ(ες)
 ΜΑΘΗΜΑ(τα) έχουν προαπαιτούμενα ΜΑΘΗΜΑ(τα)
 ΔΙΔΑΣΚΩΝ(τες) διδάσκουν ΔΙΔΑΣΚΑΛΙΑ(ες)
 ΜΑΘΗΜΑ(τα) προσφέρονται από ΤΜΗΜΑ(τα)
 ΦΟΙΤΗΤΗΣ(ες) πτυχίο από ΤΜΗΜΑ(τα)

 Σημείωση: Οι παραπάνω οντότητες και συσχετίσεις


εκφράζονται τυπικά σε ένα εννοιολογικό μοντέλο
δεδομένων, όπως το μοντέλο οντοτήτων συσχετίσεων
(Βλ. Κεφάλαια 3, 4)

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 13

Παράδειγμα Απλής Βάσης Δεδομένων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 14
Βασικά Χαρακτηριστικά της
προσέγγισης με Βάσεις Δεδομένων
 Αυτοεπιγραφική Φύση ενός συστήματος ΒΔ:
 Ένας κατάλογος ΣΔΒΔ αποθηκεύει της περιγραφή μιας
συγκεκριμένης βάσης δεδομένων (δηλ. δομές δεδομένων,
τύποι, και περιορισμοί)
 Η περιγραφή λέγεται μετα-δεδομένα.
 Αυτό επιτρέπει στο λογισμικό του ΣΔΒΔ να λειτουργεί με
διαφορετικές εφαρμογές βάσεων δεδομένων.
 Απομόνωση μεταξύ προγραμμάτων και δεδομένων:
 Ονομάζεται ανεξαρτησία προγραμμάτων-δεδομένων.
 Υποστηρίζει αλλαγή των δομών των δεδομένων και της
οργάνωσης αποθήκευσης χωρίς να απαιτείται αλλαγή στα
προγράμματα προσπέλασης του ΣΔΒΔ.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 15

Παράδειγμα απλοποιημένου καταλόγου βάσης


δεδομένων
ΣΧΕΣΕΙΣ
Ονομα_Σχεσης Πληθος_Στ
ηλών
ΦΟΙΤΗΤΗΣ 4
ΜΑΘΗΜΑ 4
ΔΙΔΑΣΚΑΛΙΑ 5 ΣΤΗΛΕΣ
ΒΑΘΜΟΛΟΓΙΑ 3
ΠΡΟΑΠΑΙΤΟΥ 2 Ονομα_Στηλης Τυπος_Δεδομενω Ανηκει_στη_Σχεση
ν
ΜΕΝΟ
Ονομα Character(30) ΦΟΙΤΗΤΗΣ
Αριθ_Μητρωου Character(4) ΦΟΙΤΗΤΗΣ
Ετος Integer (1) ΦΟΙΤΗΤΗΣ
Ειδικευση Τυπος_Ειδικευση ΦΟΙΤΗΤΗΣ
ς
Ονομα_Μαθηματος Character (10) ΜΑΘΗΜΑ
Κωδικος_Μαθ XXXXNNNN ΜΑΘΗΜΑ
… … …
Κωδ_Προαπ_Μαθ XXXXNNNN ΠΡΟΑΠΑΙΤΟΥΜΕΝΟ
Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια
Μ.Χατζόπουλος Διαφάνεια 1- 16
Βασικά Χαρακτηριστικά της προσέγγισης
με Βάσεις Δεδομένων (συνέχεια)
 Αφαίρεση Δεδομένων:
 Ένα μοντέλο δεδομένων χρησιμοποιείται για απόκρυψη
των λεπτομερειών αποθήκευσης και για παρουσίαση στους
χρήστες μιας εννοιολογικής όψης της βάσης δεδομένων.
 Τα προγράμματα αναφέρονται στις δομές του μοντέλου
δεδομένων και όχι στις λεπτομέρειες αποθήκευσης των
δεδομένων.
 Υποστήριξη πολλαπλών όψεων των δεδομένων:
 Κάθε χρήστης μπορεί να βλέπει μια διαφορετική όψη της
βάσης δεδομένων, που περιγράφει μόνο τα δεδομένα που
ενδιαφέρουν τον χρήστη.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 17

Βασικά Χαρακτηριστικά της προσέγγισης


με Βάσεις Δεδομένων (συνέχεια)
 Κοινή χρήση των δεδομένων και επεξεργασία
δοσοληψιών από πολλούς χρήστες:
 Υποστηρίζει την ταυτόχρονη ανάκτηση πληροφοριών και
την ενημέρωση ης βάσης από ένα σύνολο χρηστών.
 Ο έλεγχος της ταυτόχρονης προσπέλασης στο ΣΔΒΔ
εξασφαλίζει ότι κάθε δοσοληψία εκτελείται σωστά η
ακυρώνεται.
 Το υποσύστημα Ανάκαμψης εξασφαλίζει ότι έχει
καταχωρηθεί μόνιμα στη βάση δεδομένων η επίδραση κάθε
ολοκληρωμένης δοσοληψίας
 OLTP (Online Transaction Processing) αποτελεί βασικό
μέρος των εφαρμογών βάσεων δεδομένων. Επιτρέπει την
εκτέλεση εκατοντάδων ταυτόχρονων δοσοληψιών το
δευτερόλεπτο.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 18
Χρήστες Βάσεων Δεδομένων
 Οι χρήστες μπορούν να χωρισθούν σε
 Αυτούς που πραγματικά χρησιμοποιούν και
ελέγχουν το περιεχόμενο της βάσης δεδομένων,
και αυτούς που σχεδιάζουν, αναπτύσσουν και
συντηρούν εφαρμογές της βάσης δεδομένων
(ονομάζονται “Εργαζόμενοι στο προσκήνιο”), και
 Αυτούς που σχεδιάζουν και αναπτύσσουν το
λογισμικό του ΣΔΒΔ και των σχετικών εργαλείων,
και τους χειριστές του υπολογιστικού συστήματος
(ονομάζονται “Εργαζόμενοι Παρασκηνίου”).

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 19

Χρήστες Βάσεων Δεδομένων


 Εργαζόμενοι στο προσκήνιο
 Διαχειριστές Βάσεων Δεδομένων:
 Είναι υπεύθυνοι για να επιτρέπουν προσπέλαση στη βάση για
να συντονίζουν την χρήση της, να αναζητούν πηγές
λογισμικού και υλικού, να ελέγχουν την χρήση της και την
αποτελεσματική λειτουργία.
 Σχεδιαστές Βάσεων Δεδομένων:
 Υπεύθυνοι για τον ορισμό του περιεχομένου, της δομής, των
περιορισμών, και των λειτουργιών και δοσοληψιών στη βάση.
Πρέπει να επικοινωνούν με τους τελικούς χρήστες και να
κατανοούν τις ανάγκες τους.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 20
Κατηγορίες τελικών χρηστών
 Εργαζόμενοι στο προσκήνιο (συνέχεια)
 Τελικοί Χρήστες: Χρησιμοποιούν τα δεδομένα για
επερωτήσεις, αναφορές και μερικοί ενημερώνουν το
περιεχόμενο της βάσης. Οι τελικοί χρήστες μπορούν να
χωρισθούν σε:
 Περιστασιακοί: έχουν προσπέλαση στη βάση περιστασιακά
αν χρειασθεί.
 Απλοϊκοί ή Παραμετρικοί: αποτελούν το μεγαλύτερο τμήμα
του πληθυσμού των τελικών χρηστών.
 Χρησιμοποιούν καλά ορισμένες λειτουργίες με την μορφή
“προκατασκευασμένων δοσοληψιών”.
 Υπάλληλοι σε τράπεζες η σε κρατήσεις.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 21

Κατηγορίες τελικών χρηστών(συνέχεια)


 Εξειδικευμένοι:
 Περιλαμβάνουν αναλυτές επιχειρήσεων, επιστήμονες,
μηχανικούς, και άλλους που είναι εξοικειωμένοι με τις
δυνατότητες του συστήματος.
 Πολλοί χρησιμοποιούν εργαλεία με την μορφή πακέτων
λογισμικού που λειτουργούν πάνω από την αποθηκευμένη
βάση.
 Μεμονωμένοι:
 Συνήθως διατηρούν προσωπικές βάσεις δεδομένων
χρησιμοποιώντας έτοιμα πακέτα εφαρμογών.
 Για παράδειγμα ο χρήστης ενός φορολογικού πακέτου
που δημιουργεί μια δική βάση.
 Ένα άλλο παράδειγμα είναι ο χρήστης που δημιουργεί μια
ατζέντα.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 22
Πλεονεκτήματα από τη Χρήση
Βάσεων Δεδομένων
 Έλεγχος των πλεονασμών στα αποθηκευμένα δεδομένα
και στο φόρτο δουλειάς για ανάπτυξη και συντήρηση.
 Κοινά δεδομένα από πολλούς χρήστες.
 Περιορισμός της μη εξουσιοδοτημένης προσπέλασης στα
δεδομένα.
 Υποστήριξη μόνιμης αποθήκευσης για αντικείμενα
προγραμμάτων
 Σε αντικειμενοστρεφή ΣΔΒΔ – βλ. Κεφάλαια 20-22
 Υποστήριξη Δομών Δεδομένων (π.χ. ευρετήρια) για
αποτελεσματική επεξεργασία επερωτήσεων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 23

Πλεονεκτήματα από τη Χρήση


Βάσεων Δεδομένων (συνέχεια)
 Υποστήριξη μηχανισμών λήψης εφεδρικών
αντιγράφων και ανάκαμψης.
 Υποστήριξη πολλαπλών διεπαφών για
διαφορετικούς χρήστες.
 Αναπαράσταση πολύπλοκων συσχετίσεων
μεταξύ των δεδομένων.
 Επιβολή περιορισμών ορθότητας.
 Εξαγωγή συμπερασμών και δράσεων από
αποθηκευμένα δεδομένα με χρήση επαγωγικών
κανόνων.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 24
Επιπλέον συνέπειες από τη χρήση
βάσεων δεδομένων
 Δυνατότητα επιβολής τυποποίησης :
 Αυτό είναι πολύ σημαντικό για την επιτυχία των
εφαρμογών βάσεων δεδομένων σε μεγάλους
οργανισμούς. Τα πρότυπα αναφέρονται σε
ονόματα δεδομένων, μορφοποίηση εμφάνισης,
οθόνες, δομές αναφορών, μέτα-δεδομένα
(περιγραφή δεδομένων), μορφοποίηση Web
σελίδων, κλπ..
 Μείωση του χρόνου ανάπτυξης εφαρμογών:
 Μειώνεται ο χρόνος για την προσθήκη μιας νέας
εφαρμογής.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 25

Επιπλέον συνέπειες από τη χρήση


βάσεων δεδομένων (συνέχεια)
 Ευελιξία όσο αφορά την αλλαγή δομών
δεδομένων:
 Η δομή της βάσης δεδομένων μπορεί να
εξελίσσεται καθώς ορίζονται νέες απαιτήσεις.
 Διαθεσιμότητα Ενημερωμένων Πληροφοριών:
 Ιδιαίτερα σημαντικό για συστήματα αεροπορικών
εταιρειών, τραπεζών, κρατήσεων κλπ.
 Οικονομίες κλίμακας:
 Μπορεί να αποφευχθούν άχρηστες επικαλύψεις
πηγών και προσωπικού με ενοποίηση δεδομένων
και εφαρμογών μεταξύ των τμημάτων.
Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια
Μ.Χατζόπουλος Διαφάνεια 1- 26
Ιστορική Ανάπτυξη της Τεχνολογίας
των Βάσεων Δεδομένων
 Πρώτες Εφαρμογές των Βάσεων Δεδομένων:
 Στα μέσα της δεκαετίας του 60 εισήχθησαν το Ιεραρχικό και
το Δικτυωτό μοντέλο και επιβλήθηκαν την δεκαετία του 70.
 Ένα μεγάλο μέρος της επεξεργασίας βάσεων δεδομένων
διεθνώς γίνεται ακόμη με χρήση αυτών των μοντέλων,
ιδιαίτερα του ιεραρχικού.
 Συστήματα που Βασίζονται στο Σχεσιακό Μοντέλο:
 Το σχεσιακό μοντέλο που εισήχθη τη δεκαετία του 79, ήταν
αποτέλεσμα ευρείας έρευνας και πειραματισμού στην IBM
και σε πολλά Πανεπιστήμια.
 Τα προϊόντα Σχεσιακών ΣΔΒΔ εμφανίσθηκαν στις αρχές της
δεκαετίας του 80.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 27

Ιστορική Ανάπτυξη της Τεχνολογίας


των Βάσεων Δεδομένων (συνέχεια)
 Αντικειμενοστρεφείς και νέες εφαρμογές:
 Τα Αντικειμενοστρεφή Συστήματα Διαχείρισης Βάσεων
Δεδομένων (ΑΣΔΒΔ) εισήχθησαν στο τέλος της δεκαετίας
του 80 και τις αρχές του 90 για να καλύψουν την ανάγκη
επεξεργασίας πολύπλοκων δεδομένων σε CAD και άλλες
εφαρμογές.
 Η χρήση τους δεν έχει ευρεία διάδοση.
 Πολλά σχεσιακά ΣΔΒΔ έχουν ενσωματώσει έννοιες
αντικειμενοστρεφών βάσεων δεδομένων, με αποτέλεσμα
μια νέα κατηγορία ΣΔΒΔ που ονομάζονται σχεσιο-
αντικειμενοστρεφή.
 Τα επεκταμένα σχεσιακά συστήματα προσθέτουν επιπλέον
δυνατότητες (π.χ. Δεδομένα πολυμέσων, XML, και άλλους
τύπους δεδομένων)

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 28
Ιστορική Ανάπτυξη της Τεχνολογίας
των Βάσεων Δεδομένων (συνέχεια)
 Δεδομένα στο Web και Εφαρμογές Ηλεκτρονικού
Εμπορίου:
 Το Web περιέχει δεδομένα σε HTML (Hypertext markup
language) με συνδέσμους μεταξύ των σελίδων.
 Αυτό έδωσε ώθηση στη ανάπτυξη ενός νέου συνόλου
εφαρμογών και το ηλεκτρονικό εμπόριο χρησιμοποιεί νέα
πρότυπα όπως η XML (eXtended Markup Language). (βλ.
Κεφ. 27).
 Οι Script γλώσσες προγραμματισμού όπως η PHP και η
JavaScript επιτρέπουν την δημιουργία δυναμικών Web
σελίδων που εν μέρει δημιουργούνται από μια βάση
δεδομένων (βλ. Κεφ. 26).
 Υποστηρίζουν ενημερώσεις της βάσης δεδομένων μέσω Web
σελίδων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 29

Επέκταση των Δυνατοτήτων των Βάσεων


Δεδομένων
 Στις παρακάτω περιοχές έχει προστεθεί νέα λειτουργικότητα στα
ΣΔΒΔ :
 Επιστημονικές Εφαρμογές
 XML (eXtensible Markup Language)
 Οπτική Αποθήκευση και Διαχείριση
 Διαχείριση Δεδομένων Ήχου κια Εικόνας
 Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων
 Διαχείριση Χωρικών Δεδομένων
 Χρονοσειρές and και Διαχείριση Ιστορικών Δεδομένων

 Τα παραπάνω προτείνουν νέα έρευνα και ανάπτυξη στην


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

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 30
Πότε δεν χρησιμοποιείται ΣΔΒΔ
 Βασικοί αναστολείς (κόστους) για την χρήση ενός ΣΔΒΔ:
 Υψηλή αρχική επένδυση και πιθανή αναγκαιότητα για
επιπλέον υλικό.
 Επιβαρύνσεις για την υποστήριξη γενικότητας, ασφάλειας,
έλεγχο συνδρομικότητας, και λειτουργίες ορθότητας.
 Πότε μπορεί ένα ΣΔΒΔ να μην είναι απαραίτητο:
 Αν η βάση δεδομένων και οι εφαρμογές είναι απλές,καλά
ορισμένες, και δεν αναμένονται αλλαγές.
 Αν υπάρχουν επιτακτικές απαιτήσεις πραγματικού χρόνου
που δεν μπορούν να ικανοποιηθούν λόγω του επιπλέον
φόρτου ενός ΣΔΒΔ.
 Αν δεν απαιτείται προσπέλαση στα δεδομένα από πολλούς
χρήστες.

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 31

Πότε δεν χρησιμοποιείται ΣΔΒΔ


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

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 32
Σύνοψη
 Τύποι βάσεων δεδομένων και εφαρμογών
 Βασικοί ορισμοί
 Τυπική λειτουργία ΣΔΒΔ
 Παράδειγμα μιας βάσης δεδομένων (ΠΑΝΕΠΙΣΤΗΜΙΟ)
 Βασικά χαρακτηριστικά της προσέγγισης με βάσεις
δεδομένων
 Χρήστες Βάσεων δεδομένων
 Πλεονεκτήματα από την χρήση βάσεων δεδομένων
 Πότε δεν χρησιμοποιούνται βάσεις δεδομένων

Ramez Elmasri and Shamkant B. Navathe Ελληνική Εκδόσεις Δίαυλος, Επιμέλεια


Μ.Χατζόπουλος Διαφάνεια 1- 33

Κεφάλαιο 2
Έννοιες και Αρχιτεκτονική
Συστημάτων Βάσεων δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe


Γιατί θα μιλήσουμε
 Μοντέλα δεδομένων και κατηγορίες τους
 Ιστορικό των Μοντέλων δεδομένων
 Σχήματα, Στιγμιότυπα, και Καταστάσεις
 Αρχιτεκτονική τριών σχημάτων
 Ανεξαρτησία δεδομένων
 Γλώσσες και Διεπαφές ΣΔΒΔ
 Βοηθητικά Προγράμματα και Εργαλεία Συστημάτων
Βάσεων δεδομένων
 Αρχιτεκτονικές-Κεντρικές Πελάτη-Διακομιστή
 Κατηγοριοποίηση των ΣΔΒΔ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 3

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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 4
Μοντέλα Δεδομένων (συνέχεια)
 Πράξεις Μοντέλων Δεδομένων :
 Οι πράξεις αυτές χρησιμοποιούνται για τον
προσδιορισμό ανακτήσεων και ενημερώσεων στη
βάση δεδομένων με αναφορά στα δομικά στοιχεία
του μοντέλου δεδομένων.
 Οι πράξεις στο μοντέλο δεδομένων μπορεί να
περιλαμβάνουν βασικές πράξεις του μοντέλου
(π.χ. εισαγωγή, διαγραφή, τροποποίηση) και
πράξεις οριζόμενες από το χρήστη (π.χ.
compute_student_gpa, update_inventory)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 5

Κατηγορίες Μοντέλων Δεδομένων


 Εννοιολογικά (υψηλού επιπέδου, σημασιολογικά) μοντέλα
δεδομένων:
 Υποστηρίζουν έννοιες που πλησιάζουν τον τρόπο με τον οποίο
αντιλαμβάνονται τα δεδομένα πολλοί χρήστες.
 (Ονομάζονται επίσης μοντέλα βασισμένα στην οντότητα ή
βασισμένα στο αντικείμενο.)
 Φυσικά μοντέλα (χαμηλού επιπέδου, εσωτερικά) :
 Υποστηρίζουν έννοιες που περιγράφουν λεπτομέρειες για τον
τρόπο αποθήκευσης των δεδομένων στον υπολογιστή. Συνήθως
προσδιορίζονται κατά καθορισμένο τρόπο μέσω του σχεδιασμού
του ΣΔΒΔ και των εγχειριδίων διαχείρισης
 Μοντέλα Δεδομένων Υλοποίησης:
 Υποστηρίζουν έννοιες που εμπίπτουν μεταξύ των δυο
παραπάνω, χρησιμοποιούνται από υλοποιήσεις πολλών
εμπορικών ΣΔΒΔ (π.χ. σχεσιακά μοντέλα δεδομένων που
χρησιμοποιούνται από πολλά εμπορικά ΣΔΒΔ).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 6
Σχήματα έναντι Στιγμιοτύπων
 Σχήμα Βάσης Δεδομένων:
 Η περιγραφή μιας βάσης δεδομένων.
 Περιλαμβάνει περιγραφές των δομών βάσεων δεδομένων,
τύπων δεδομένων, και των περιορισμών σε βάσεις
δεδομένων.
 Διάγραμμα Σχήματος:
 Μια ενδεικτική επίδειξη του σχήματος μιας βάσης
δεδομένων (των περισσοτέρων χαρακτηριστικών).
 Δομικό Στοιχείο Σχήματος:
 Ένα στοιχείο του σχήματος ή ένα αντικείμενο σε ένα
σχήμα, π.χ., ΦΟΙΤΗΤΗΣ, ΜΑΘΗΜΑ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 7

Σχήματα έναντι Στιγμιοτύπων


 Κατάσταση Βάσης Δεδομένων:
 Τα δεδομένα που πραγματικά που αποθηκεύονται
σε μια βάση δεδομένων σε μια συγκεκριμένη
στιγμή. Αυτό περιλαμβάνει όλα τα δεδομένα στη
βάση δεδομένων.
 Ονομάζεται επίσης και στιγμιότυπο της βάσης
δεδομένων (or occurrence or snapshot).
 Ο όρος στιγμιότυπο εφαρμόζεται επίσης σε
στοιχεία των βάσεων δεδομένων, π.χ. στιγμιότυπο
εγγραφής, στιγμιότυπο πίνακα, στιγμιότυπο
οντότητας.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 8
Σχήμα Βάσης Δεδομένων
έναντι Κατάστασης Βάσης δεδομένων

 Κατάσταση Βάσης Δεδομένων:


 Αναφέρεται στο περιεχόμενο μιας βάσης
δεδομένων την συγκεκριμένη χρονική στιγμή.
 Αρχική Κατάσταση της Βάσης δεδομένων:
 Αναφέρεται στην κατάσταση της βάσης δεδομένων
όταν φορτώνεται αρχικά στο σύστημα.
 Έγκυρη Κατάσταση:
 Μια κατάσταση που ικανοποιεί την δομή και τους
περιορισμούς της βάσης δεδομένων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 9

Σχήμα Βάσης Δεδομένων


έναντι Κατάστασης Βάσης δεδομένων
(συνέχεια)

 Διάκριση
 Το σχήμα μιας βάσης δεδομένων δεν αλλάζει
συχνά.
 Η κατάσταση μιας βάσης δεδομένων αλλάζει
κάθε φορά που τροποποιείται η βάση δεδομένων.

 Το σχήμα λέγεται και πρόθεση.


 Η κατάσταση λέγεται και έκταση.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 10
Παράδειγμα Σχήματος Βάσης Δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 11

Παράδειγμα Κατάστασης Βάσης


Δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 12
Αρχιτεκτονική Τριών Σχημάτων
 Προτάθηκε για υποστήριξη των παρακάτω
χαρακτηριστικών ΣΔΒΔ:
 Ανεξαρτησία Προγραμμάτων δεδομένων.
 Υποστήριξη πολλαπλών όψεων των δεδομένων.
 Δεν ακολουθείται κατά γράμμα από εμπορικά
προϊόντα ΣΔΒΔ, αλλά έχει φανεί χρήσιμη για την
εξήγηση της οργάνωσης των συστημάτων
βάσεων δεδομένων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 13

Αρχιτεκτονική Τριών Σχημάτων


 Ορίζει σχήματα ΣΔΒΔ σε τρία επίπεδα:
 Εσωτερικό σχήμα σε εσωτερικό επίπεδο για περιγραφή τις
φυσικές δομές αποθήκευσης και των μονοπατιών
προσπέλασης (π.χ ευρετήρια).
 Τυπικά χρησιμοποιεί ένα φυσικό μοντέλο δεδομένων.
 Εννοιολογικό Μοντέλο σε εννοιολογικό επίπεδο για
περιγραφή της δομής και των περιορισμών όλης της βάσης
δεδομένων για μια κοινότητα χρηστών.
 Χρησιμοποιεί ένα εννοιολογικό ή ένα μοντέλο δεδομένων
υλοποίησης.
 Εξωτερικά Σχήματα σε εξωτερικό επίπεδο για περιγραφή
των διαφόρων όψεων των χρηστών.
 Συνήθως χρησιμοποιεί το ίδιο μοντέλο δεδομένων σαν
εννοιολογικό σχήμα.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 14
Αρχιτεκτονική Τριών Σχημάτων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 15

Αρχιτεκτονική Τριών Σχημάτων


 Για μετασχηματισμό απαιτήσεων και δεδομένων
χρειάζονται απεικονίσεις μεταξύ των επιπέδων
των σχημάτων.
 Τα προγράμματα αναφέρονται σε ένα εξωτερικό
σχήμα, και απεικονίζονται από το ΣΔΒΔ σε
εσωτερικό σχήμα για εκτέλεση.
 Τα δεδομένα που εξάγονται από το εσωτερικό
επίπεδο του ΣΔΒΔ μορφοποιούνται για να
ταιριάζουν στην εξωτερική όψη του χρήστη (π.χ.
Μορφοποίηση των αποτελεσμάτων μιας SQL
επερώτησης για εμφάνιση σε μια Web σελίδα)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 16
Ανεξαρτησία Δεδομένων
 Λογική Ανεξαρτησία Δεδομένων:
 Η δυνατότητα να αλλάζει το εννοιολογικό σχήμα χωρίς να
χρειασθεί να αλλάξουν τα εξωτερικά σχήματα και τα σχετικά
προγράμματα.
 Φυσική Ανεξαρτησία Δεδομένων:
 Η δυνατότητα να αλλάζει το εσωτερικό σχήμα χωρίς να
χρειασθεί αλλαγή του εννοιολογικού σχήματος.
 Για Παράδειγμα, το εσωτερικό σχήμα μπορεί να αλλάξει
όταν κάποιες δομές αρχείων αναδιοργανώνται ή
δημιουργούνται νέα ευρετήρια για βελτίωση της απόδοσης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 17

Ανεξαρτησία δεδομένων (συνέχεια)


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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 18
Γλώσσες ΣΔΒΔ
 Γλώσσα Ορισμού Δεδομένων (ΓΟΔ)
 Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ)
 Υψηλού επιπέδου ή Μη διαδικαστικές γλώσσες:
Περιλαμβάνουν την σχεσιακή γλώσσα SQL
 Μπορούν να χρησιμοποιηθούν από μόνες τους ή
μπορεί να εμφυτευθούν σε μια γλώσσα
προγραμματισμού.
 Χαμηλού επιπέδου ή Διαδικαστικές Γλώσσες:
 Αυτές πρέπει να εμφυτευθούν σε μια γλώσσα
προγραμματισμού.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 19

Γλώσσες ΣΔΒΔ
 Γλώσσα Ορισμού δεδομένων (ΓΟΔ):
 Χρησιμοποιείται από τον ΔΒΔ και τους σχεδιαστές βάσεων
δεδομένων για τον ορισμό του εννοιολογικού σχήματος μιας
βάσης δεδομένων.
 Σε πολλά ΣΔΒΔ, η ΓΟΔ χρησιμοποιείται για ορισμό
εσωτερικών και εξωτερικών (όψεων) σχημάτων.
 Σε μερικά ΣΔΒΔ, υπάρχει ξεχωριστή γλώσσα ορισμού
δεδομένων (ΓΟΔ) (SDL) και γλώσσα ορισμού όψεων
definition (ΓΟΟ) (VDL) για τον ορισμό εσωτερικών και
εξωτερικών σχημάτων.
 Ο ορισμός των δεδομένων τυπικά υλοποιείται από τον ΔΒΔ και τους
σχεδιαστές με εντολές στο ΣΔΒΔ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 20
Γλώσσες ΣΔΒΔ
 Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ):
 Χρησιμοποιείται για τον προσδιορισμό ανακτήσεων και
ενημερώσεων από τη βάση δεδομένων
 Οι εντολές της ΓΧΔ (υπογλώσσα δεδομένων) μπορούν να
εμφυτευθούν σε μια γενικού σκοπού γλώσσα
προγραμματισμού (φιλόξενη γλώσσα), όπως οι COBOL, C,
C++, ή η Java.
 Μπορεί επίσης να υποστηρίζεται μια βιβλιοθήκη με
συναρτήσεις για προσπέλαση του ΣΔΒΔ από μια γλώσσα
προγραμματισμού
 Εναλλακτικά, μπορούν να εφαρμοσθούν από μόνες τους
άμεσα εντολές της ΓΧΔ (ονομάζεται μια γλώσσα
επερωτήσεων).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 21

Τύποι ΓΧΔ
 Υψηλού Επιπέδου ή μη Διαδικαστικές γλώσσες:
 Για παράδειγμα, η σχεσιακή γλώσσα SQL
 Βασίζονται σε “σύνολα” και αντί να προσδιορίζουν πως θα
ανακτηθούν τα δεδομένα προσδιορίζουν ποιά δεδομένα θα
ανακτηθούν.
 Ονομάζονται επίσης δηλωτικές γλώσσες.
 Χαμηλού Επιπέδου ή Διαδικαστικές Γλώσσες :
 Ανακτούν τα δεδομένα μια-μια εγγραφή
 Για την ανάκτηση πολλαπλών εγγραφών χρειάζονται δομές
επανάληψης μαζί με δείκτες θέσης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 22
Διεπαφές ΣΔΒΔ
 Διεπαφές γλωσσών επερωτήσεων
 Παράδειγμα: Εισαγωγή SQL επερωτήσεων σε μια
διαδραστική SQL διεπαφή με το ΣΔΒΔ (π.χ.
SQL*Plus στην ORACLE)
 Διεπαφές Προγραμματιστών για εμφύτευση ΓΧΔ
σε γλώσσες προγραμματισμού
 Φιλικές στο χρήστη διεπαφές
 Βασισμένες σε μενού, βασισμένες σε φόρμες,
βασισμένες σε γραφικά, κλπ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 23

Διεπαφές Γλωσσών Προγραμματισμού


ΣΔΒΔ
 Διεπαφές Προγραμματιστών για εμφύτευση εντολών ΓΧΔ
σε μα γλώσσα προγραμματισμού:
 Προσέγγιση Εμφύτευσης: π.χ εμφυτευμένη SQL (για C,
C++, κλπ.), SQLJ (για Java)
 Προσέγγιση Κλήσης Διαδικασιών: π.χ. JDBC για Java,
ODBC για άλλες γλώσσες προγραμματισμού
 Προσέγγιση Γλωσσών Προγραμματισμού Βάσεων
Δεδομένων: π.χ. Η ORACLE έχει την PL/SQL, μια γλώσσα
προγραμματισμού που βασίζεται στην SQL· η γλώσσα
ενσωματώνει την SQL και τους τύπους δεδομένων της σαν
αναπόσπαστο μέρος της

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 24
Φιλικές στο Χρήστη Διεπαφές ΣΔΒΔ

 Βασισμένες σε μενού, δημοφιλείς για φυλλομέτρηση στο


web
 Βασισμένες σε φόρμες, σχεδιασμένες για μη ειδικούς
χρήστες for naïve users
 Βασισμένες σε γραφικά
 (Σημάδεμα και επιλογή, Σύρσιμο, κλπ.)
 Φυσική Γλώσσα: αιτήματα γραμμένα σε φυσική γλώσσα
 Συνδυασμός των ανωτέρω:
 Για παράδειγμα σε Web διεπαφές χρησιμοποιούνται ευρέως
και μενού και φόρμες

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 25

Άλλες διεπαφές ΣΔΒΔ


 Ομιλία σαν Είσοδος και Έξοδος
 Web φυλλομετρητής (Browser) σαν διεπαφή
 Παραμετρικές διεπαφές, π.χ., οι ταμίες στις
τράπεζες χρησιμοποιούν λειτουργικά πλήκτρα
 Διεπαφές για το ΔΒΔ:
 Δημιουργία λογαριασμών χρηστών, απόδοση
δικαιοδοσιών
 Ορισμός τιμών των παραμέτρων του συστήματος
 Αλλαγή σχημάτων ή δομών προσπέλασης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 26
Βοηθητικά Προγράμματα Συστημάτων
Βάσεων Δεδομένων
 Για να εκτελούν διάφορες λειτουργίες όπως:
 Φόρτωμα δεδομένων στη βάση από δεδομένα που
βρίσκονται σε αρχεία. Συμπεριλαμβάνουν εργαλεία
μετατροπής δεδομένων.
 Λήψη περιοδικών αντιγράφων της βάσης
δεδομένων.
 Αναδιοργάνωση των δομών αρχείων της βάσης.
 Προγράμματα δημιουργίας αναφορών.
 Άλλες λειτουργίες, όπως ταξινόμηση,
παρακολούθησης των χρηστών, συμπίεσης
δεδομένων κλπ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 27

Άλλα Εργαλεία
 Λεξικό δεδομένων / αποθήκη:
 Χρησιμοποιείται για αποθήκευση περιγραφών του
σχήματος και άλλων πληροφοριών όπως
σχεδιαστικές αποφάσεις, περιραφ΄ς
προγραμμάτων εφαρμογών, πληροφορίες
χρηστών, πρότυπα χρήσης, κλπ.
 Η προσπέλαση στο Ενεργό Λεξικό Δεδομένων is
γίνεται από το λογισμικό του ΣΔΒΔ και τους
χρήστες/ΔΒΔ.
 Προσπέλαση στο Μη Ενεργό λεξικό δεδομένων
γίνεται μόνο από τους χρήστες/ΔΒΔ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 28
Άλλα Εργαλεία
 Περιβάλλοντα Ανάπτυξης Εφαρμογών και
εργαλεία CASE (computer-aided software
engineering):
 Παραδείγματα:
 PowerBuilder (Sybase)
 JBuilder (Borland)
 JDeveloper 10G (Oracle)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 29

Τμήματα ενός ΣΔΒΔ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 30
Αρχιτεκτονικές ΣΔΒΔ Κεντρικές και
Πελάτη-Διακομιστή
 Κεντρικά ΣΔΒΔ:
 Συνδυάζουν τα πάντα σε ένα σύστημα- ΣΔΒΔ
λογισμικό, υλικό, προγράμματα εφαρμογών,
λογισμικό επεξεργασίας διεπαφών χρήστη.
 Ο χρήστης μπορεί να συνδεθεί μέσω ενός
απομακρυσμένου τερματικού– ωστόσο, όλη η
επεξεργασία γίνεται στον κεντρικό κόμβο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 31

Μια Φυσική Κεντρική Αρχιτεκτονική

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 32
Βασική Αρχιτεκτονική Πελάτη-Διακομιστή
2 Επιπέδων

 Εξειδικευμένοι Διακομιστές με Εξειδικευμένες


λειτουργίες
 Διακομιστής Εκτύπωσης
 Διακομιστής Αρχείων
 Διακομιστής ΣΔΒΔ
 Web διακομιστής
 Διακομιστής Ηλεκτρονικού Ταχυδρομείου
 Οι πελάτες έχουν προσπέλαση στους
εξειδικευμένους Διακομιστές όταν το χρειάζονται.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 33

Λογική Αρχιτεκτονική Πελάτη-Διακομιστή


2 Επιπέδων

ΠΕΛΑΤΗΣ ΠΕΛΑΤΗΣ ΠΕΛΑΤΗΣ


ΔΙΚΤΥΟ

Διακομιστής
Διακομιστής Διακομιστής
Εκτύπωσης Αρχείων ΣΔΒΔ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 34
Πελάτες
 Έχουν κατάλληλες διεπαφές μέσω ενός
λογισμικού πελάτη για προσπέλαση και χρήση
των πόρων του διακομιστή.
 Οι πελάτες μπορεί να είναι μηχανές χωρίς δίσκο
ή PCs ή σταθμοί εργασίας με δίσκους με μόνο το
λογισμικό του πελάτη εγκατεστημένο.
 Συνδέονται με τους διακομιστές μέσω μιας
μορφής δικτύου.
 (LAN: τοπικά δίκτυα, ασύρματο δίκτυο, κλπ.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 35

Διακομιστής ΣΔΒΔ
 Υποστηρίζει υπηρεσίες επερωτήσεων και δοσοληψιών στους πελάτες
 Οι σχεσιακοί διακομιστές ΣΔΒΔ συχνά ονομάζονται SQL
διακομιστές, διακομιστές επερωτήσεων, ή διακομιστές δοσοληψιών
 Οι εφαρμογές που τρέχουν σε πελάτες χρησιμοποιούν μια διεπαφή
πρόγράμματος εφαρμογών (Application Program Interface─API) για
προσπέλαση στη βάση δεδομένων του διακομιστή μέσω τυπικών
διεπαφών όπως:
 ODBC: Open Database Connectivity (πρότυπο)

 JDBC: για Java προγραμματιστική προσπέλαση

 Για το ODBC ή το JDBC ο πελάτης και ο διακομιστής πρέπει να


εγκαταστήσουν το κατάλληλο τμήμα λογισμικού
 Βλέπε Κεφάλαιο 9

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 36
Αρχιτεκτονική Πελάτη-Διακομιστή 2
Επιπέδων
 Ένα πρόγραμμα πελάτη μπορεί να συνδεθεί με
διαφορετικά ΣΔΒΔ, που μερικές φορές ονομάζονται
πηγές δεδομένων.
 Γενικά, οι πηγές των δεδομένων μπορεί να είναι αρχεία ή
άλλο λογισμικό εκτός από το ΣΔΒΔ που διαχειρίζεται
δεδομένα.
 Υπάρχουν άλλες δυνατές παραλλαγές των πελατών: π.χ.,
σε μερικά αντικειμενοστρεφή ΣΔΒΔ, μεταφέρεται
περισσότερη λειτουργικότητα στους πελάτες
συμπεριλαμβανομένων λειτουργιών του λεξικού
δεδομένων, βελτιστοποίηση και ανάκαμψη σε
πολλαπλούς διακομιστές, κλπ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 37

Αρχιτεκτονική Πελάτη-Διακομιστή 3
Επιπέδων
 Συνηθίζεται σε Web εφαρμογές
 Υπάρχει ενδιάμεσο Επίπεδο που ονομάζεται Διακομιστής
Εφαρμογών ή Web Διακομιστής:
 Αποθηκεύει το λογισμικό σύνδεσης στο web και το τμήμα της
επιχειρηματικής λογικής της εφαρμογής που χρησιμοποιείται για
προσπέλαση των αντίστοιχων δεδομένων από τον διακομιστή
της βάσης δεδομένων
 Λειτουργεί σαν αγωγός αποστολής μερικώς επεξεργασμένων
δεδομένων partially μεταξύ του διακομιστή της βάσης δεδομένων
και του πελάτη.
 Η αρχιτεκτονική 3 επιπέδων μπορεί να ενισχύσει την ασφάλεια:
 Προσπέλαση στο διακομιστή της βάσης δεδομένων μόνο μέσω
του ενδιάμεσου επιπέδου
 Οι πελάτες δεν έχουν άμεση προσπέλαση στο διακομιστή της
βάσης δεδομένων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 38
Αρχιτεκτονική Πελάτη-Διακομιστή 3
Επιπέδων

Πελάτης GUI Επίπεδο


(client) Web διεπαφή Παρουσίασης

Διακομιστής
Εφαρμογών ή Προγράμματα Επίπεδο
Web Εφαρμογών Επιχειρηματικής
διακομιστής Web σελίδες Λογικής

Διακομιστής Σύστημα Επίπεδο


Βάσης Διαχείρισης Υπηρεσιών
Δεδομένων Βάσης Βάσης
(server) Δεδομένων Δεδομένων
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 39

Αρχιτεκτονική Πελάτη-Διακομιστή 3
Επιπέδων

Πελάτης GUI Επίπεδο


Web διεπαφή Παρουσίασης

Διακομιστής Προγράμματα Επίπεδο


Εφαρμογών
ή Web διακομιστής
Εφαρμογών Επιχειρηματικής
Web σελίδες Λογικής

Διακομιστής Επίπεδο Υπηρεσιών


Βάσης Δεδομένων ΣΔΒΔ Βάσεων δεδομένων
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 40
Ταξινόμηση των ΣΔΒΔ
 Με βάση το χρησιμοποιούμενο μοντέλο δεδομένων
 Παραδοσιακά: Σχεσιακό, Δικτυωτό, Ιεραρχικό.
 Επερχόμενα: Αντικειμενοστρεφές, Σχεσιο-
αντικιεμνοστρεφές.
 Άλλες Ταξινομήσεις
 Ενός χρήστη (τυπικά σε προσωπικούς υπολογιστές)
έναντι πολλών χρηστών (τα περισσότερα ΣΔΒΔ).
 Κεντρικά (χρησιμοποιούν έναν υπολογιστή με μια βάση
δεδομένων)
έναντι κατανεμημένων (χρησιμοποιούν πολλούς
υπολογιστές, πολλές βάσεις δεδομένων)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 41

Παραλλαγές Κατανεμημένων ΣΔΒΔ


(ΚΣΔΒΔ)
 Ομογενή ΚΣΔΒΔ
 Ετερογενή ΚΣΔΒΔ
 Ομόσπονδα ή Πολλαπλών Βάσεων δεδομένων
 Σήμερα τα κατανεμημένα συστήματα βάσεων
δεδομένων είναι γνωστά σαν συστήματα που
βασίζονται αρχιτεκτονική πελάτη διακομιστή
επειδή:
 Δεν υποστηρίζουν ένα πλήρως κατανεμημένο
περιβάλλον, αλλά ένα σύνολο από διακομιστές
βάσεων δεδομένων που υποστηρίζουν ένα
σύνολο από πελάτες.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 42
Θέματα κόστους για ΣΔΒΔ
 Κλιμάκωση κόστους: από ελεύθερα ανοικτού κώδικα
συστήματα σε διατάξεις που κοστίζουν εκατομμύρια €
 Παραδείγματα ελεύθερων σχεσιακών ΣΔΒΔ : MySQL,
PostgreSQL, άλλα
 Εμπορικά ΣΔΒΔ υποστηρίζουν επιπλέον εξειδικευμένες
υπηρεσίες, πχ. χρονοσειρές, χωρικά δεδομένα, διαχείριση
εγγράφων, XML
 Υποστηρίζουν επιπλέον εξειδικευμένη λειτουργικότητα όταν
αγορασθούν ξεχωριστά
 Μερικές φορές ονομάζονται cartridges (πχ στην Oracle) ή
blades
 Διαφορετικές επιλογές αδειών: άδεια κόμβου, μέγιστο
πλήθος ταυτόχρονων χρηστών (άδει θέσης), ένας
χρήστης, κλπ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 43

Ιστορικό των Μοντέλων Δεδομένων


 Δικτυωτό Μοντέλο
 Ιεραρχικό Μοντέλο
 Σχεσιακό Μοντέλο
 Αντικειμενοστρεφή Μοντέλα
 Σχεσιο-αντικειμενοστρεφή Μοντέλα

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 44
Ιστορικό των Μοντέλων Δεδομένων
 Δικτυωτό Μοντέλο:
 Το πρώτο δικτυωτό ΣΔΒΔ υλοποιήθηκε από την
Honeywell το 1964-65 (Σύστημα IDS).
 Υιοθετήθηκε ευρέως λόγω της υποστήριξης από
την CODASYL (Conference on Data Systems
Languages) (CODASYL - DBTG αναφορά 1971).
 Αργότερα υλοποιήθηκε σε μια μεγάλη ποικιλία
συστημάτων - IDMS (Cullinet - σήμερα Computer
Associates), DMS 1100 (Unisys), IMAGE (H.P.
(Hewlett-Packard)), VAX -DBMS (Digital
Equipment Corp., μετά COMPAQ, σήμερα H.P.).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 45

Παράδειγμα Δικτυωτού μοντέλου


Σχήματος

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 46
Δικτυωτό Μοντέλο
 Πλεονεκτήματα:
 Το δικτυωτό μοντέλο μπορεί να μοντελοποιήσει
πολύπλοκες συσχετίσεις και να παραστήσει τα
σημασιολογικά προσθήκης/διαγραφής σε συχετήσεις.
 Αντιμετωπίζει τις περισσότερες καταστάσεις
μοντελοποίησης χρησιμοποιώντας τύπους εγγραφών και
τύπους συσχετίσεων.
 Η γλώσσα υποστηρίζει πλοήγηση· χρησιμοποιεί δομές
όπως FIND, FIND member, FIND owner, FIND NEXT within
set, GET, κλπ.
 Οι προγραμματιστές μπορούν να κάνουν βέλτιστη πλοήγηση
στη βάση δεδομένων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 47

Δικτυωτό Μοντέλο
 Μειονεκτήματα:
 Η πλοήγηση και η διαδικαστική φύση της
επεξεργασίας
 Η βάση δεδομένων περιέχει ένα πολύπλοκο
πίνακα δεικτών που συνδέουν ένα σύνολο
εγγραφών.
 Μικρή δυνατότητα αυτόματης “βελτιστοποίησης
επερωτήσεων”

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 48
Ιστορικό των Μοντέλων Δεδομένων
 Ιεραρχικό Μοντέλο Δεδομένων:
 Αρχικά υλοποιήθηκε σαν κοινή προσπάθειατης
IBM και της North American Rockwell στα 1965.
Είχε σαν αποτέλεσμα την οικογένεια συστημάτων
IMS.
 Το προϊόν IMS της IBM είχε (και ακόμη έχει) μια
πολύ μεγάλη βάση πελατών παγκοσμίως
 Το ιεραρχικό μοντέλο τυποποιήθηκε με βάση το
σύστημα IMS
 Άλλα συστήματα που βασίζονται στο μοντέλο
αυτό: System 2k (SAS inc.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 49

Ιεραρχικό Μοντέλο
 Πλεονεκτήματα:
 Απλό στη δόμηση και στη λειτουργία
 Αντιστοιχεί σε ένα πλήθος απόμ εραρχικά οργανωμένα από
τη φύση τους πεδία
 Η γλώσσα είναι απλή:
 Χρησιμοποιεί δομικά στοιχεία όπως GET, GET UNIQUE, GET
NEXT, GET NEXT WITHIN PARENT, κλπ.
 Μειονεκτήματα:
 Η πλοήγηση και η διαδικαστική φύση της επεξεργασίας
 Η βάση δεδομένων εμφανίζεται σαν μια γραμμική διάταξη
εγγραφών
 Μικρή δυνατότητα “βελτιστοποίησης επερωτήσεων”

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 50
Ιστορικό των Μοντέλων Δεδομένων
 Σχεσιακό Μοντέλο:
 Προτάθηκε το 1970 από τον E.F. Codd (IBM), πρώτο
εμπορικό σύστημα 1981-82.
 Σήμερα σε πολλά εμπορικά προϊόντα (πχ. DB2, ORACLE,
MS SQL Server, SYBASE, INFORMIX).
 Μερικά υλοποιήσεις ανοικτού κώδικα, πχ. MySQL,
PostgreSQL
 Σήμερα κυρίαρχο στην ανάπτυξη εφαρμογών βάσεων
δεδομένων.
 SQL σχεσιακά πρότυπα: SQL-89 (SQL1), SQL-92 (SQL2),
SQL-99, SQL3, …
 Τα κεφάλαια 5 έως 11 περιγράφουν αυτό το μοντέλο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 51

Ιστορικό των Μοντέλων Δεδομένων


 Αντικειμενοστρεφή Μοντέλα Δεδομένων:
 Έχουν προταθεί διάφορα μοντέλα για υλοποίηση σε ένα
σύστημα βάσης δεδομένων.
 Ένα σύνολο αποτελείται από τα στηριζόμενα στις
αντικειμενοστρεφείς γλώσσες προγραμματισμού όπως οι
C++ (πχ., OBJECTSTORE ή VERSANT), και Smalltalk (πχ.,
το GEMSTONE).
 Επιπλέον, συστήματα όπωςτα O2, ORION (της MCC -
έπειτα ITASCA), IRIS (της H.P.- χρησιμοποιήθηκε στο Open
OODB).
 Πρότυπα Αντικειμενοστρεφών βάσεων: ODMG-93, ODMG-
version 2.0, ODMG-version 3.0.
 Τα κεφάλαια 20 και 21 περιγράφουν αυτό το μοντέλο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 52
Ιστορικό των Μοντέλων Δεδομένων
 Σχεσιο-Αντικειμενοσρεφή Μοντέλα:
 Η πιο πρόσφατη τάση. Άρχισε με τον Informix Universal
Server.
 Τα σχεσιακά συστήματα ενσωματώνουν έννοιες από τις
αντικειμενοστρεφείς βάσεις δεδομένων.
 Χαρακτηριστικά παραδείγματα οι τελευταίες εκδόσεις της
Oracle-10i, DB2, και SQL Server και άλλα ΣΔΒΔ.
 Τα πρότυπα περιλαμβάνονται στο SQL-99 και αναμένεται
να επεκταθούν σε μελλοντικά SQL πρότυπα.
 Το κεφάλαιο 22 περιγράφει αυτό το μοντέλο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 53

Σύνοψη
 Μοντέλα Δεδομένων και Κατηγορίες τους
 Ιστορικό των Μοντέλων Δεδομένων
 Σχήματα, Στιγμιότυπα, και Καταστάσεις
 Αρχιτεκτονική Τριών Σχημάτων
 Ανεξαρτησία Δεδομένων
 Γλώσσες και Διεπαφές ΣΔΒΔ
 Βοηθητικά Προγράμματα και Εργαλεία ΣΔΒΔ
 Κεντρικές και Αρχιτεκτονικές Πελάτη/Διακομιστή
 Ταξινόμηση ΣΔΒΔ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Διαφάνεια 2- 54
Κατακερματισμός

Μ.Χατζόπουλος

H ιδέα που βρίσκεται πίσω από την τεχνική του


κατακερματισμού είναι να δίνεται μια συνάρτησης
h, που λέγεται συνάρτηση κατακερματισμού ή
παραγωγής τυχαίων τιμών (hash ή randomizing
function), η οποία εφαρμοζόμενη στην τιμή του
πεδίου κατακερματισμού μιας εγγραφής επιστρέφει
τη διεύθυνση του μπλοκ του δίσκου στο οποίο
βρίσκεται η εγγραφή αποθηκευμένη.

Μ.Χατζόπουλος
Με χρήση μιας συνάρτησης που ονομάζεται συνάρτηση
απεικόνισης ή συνάρτηση κατακερματισμού (hash
function) απεικονίζεται η τιμή ενός πεδίου στο χώρο των
διευθύνσεων:

h(K)→A

Μ.Χατζόπουλος

Δεν είναι εύκολο πάντα να βρεθούν καλές συναρτήσεις. Ο


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

Μ.Χατζόπουλος
Εσωτερικός Κατακερματισμός

0
1

Μ-1

Μ.Χατζόπουλος

temp ← 1 ;
for i ← 1 to 20 do temp ← temp * code(K[i]) mod M ;
hash_address temp mod M ;

i ← hash_address(K); a←i ;
if (η θέση i είναι κατειλημμένη)
then begin i ← (i+1) mod M ;
while (i ≠ a) and (η θέση i είναι κατειλημμένη)
do i ← (i+1) mod M ;
if (i = a) then όλες οι θέσεις είναι γεμάτες
else new_hash_address ← i
end ;

Μ.Χατζόπουλος
Σύγκρουση

Mια σύγκρουση (collision) συμβαίνει όταν


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

Μ.Χατζόπουλος

Επίλυση Συγκρούσεων

• Ανοικτή διευθυντιοδότηση (Open Addressing)


• Αλυσιδωτή Σύνδεση (Chaining)
• Πολλαπλός Κατακερματισμός

Μ.Χατζόπουλος
0 -1
1 Μ
2 -1
3 Μ+2
. Χώρος
Διευθύνσεων
.
-1
-1
M-2 Μ+1
M-1 -1
Μ Μ+5
Μ+1 -1 Χώρος
Μ+2 -1 Υπερχείλισης
-1

Μ.Χατζόπουλος

O στόχος μιας καλής συνάρτησης κατακερματισμού είναι να


κατανέμει τις εγγραφές ομοιόμορφα στο χώρο διευθύνσεων
ώστε να ελαχιστοποιούνται οι συγκρούσεις χωρίς να μένουν
πολλές αχρησιμοποίητες θέσεις. H προσομοίωση αλλά και οι
αναλυτικές μέθοδοι έχουν δείξει ότι συνήθως είναι καλύτερα να
διατηρείται ένας πίνακας κατακερματισμού γεμάτος σε
ποσοστό 70% ως 90%, έτσι ώστε το πλήθος των
συγκρούσεων να παραμένει μικρό και να μην σπαταλάμε
πάρα πολύ χώρος. Eπομένως, αν περιμένουμε ότι θα πρέπει
να αποθηκεύσουμε r εγγραφές στον πίνακα, πρέπει να
επιλέξουμε M θέσεις για τον χώρο διευθύνσεων έτσι ώστε το
(r/M) να βρίσκεται μεταξύ 0.7 και 0.9. Mπορεί επίσης να είναι
χρήσιμο να επιλεγεί ως M ένας πρώτος αριθμός, καθώς έχει
δειχθεί ότι αυτό κατανέμει καλύτερα τις διευθύνσεις
κατακερματισμού στο χώρο των διευθύνσεων όταν
χρησιμοποιείται ως συνάρτηση κατακερματισμού η mod.

Μ.Χατζόπουλος
Συναρτήσεις Κατακερματισμού

• Μέσου Τετραγώνου
• Διαίρεση
• Αναδίπλωση

Μ.Χατζόπουλος

Εξωτερικός Κατακερματισμός
Διεύθυνση
Μπλοκ
στο δίσκο

0
1

Μ-2
Μ-1

Κάδος

Μ.Χατζόπουλος
Στατικός Εξωτερικός Κατακερματισμός

0
1
κλειδί
h

M-1

Μ.Χατζόπουλος

κάδος 0 Κύριοι Κάδοι υπερχείλισης


κάδοι
null

δείκτης null
κάδος 1

δείκτης


κάδος Μ-1
null

δείκτης
Μ.Χατζόπουλος
Το σχήμα αυτό ονομάζεται στατικός κατακερματισμός επειδή
διατίθεται ένας σταθερός αριθμός από κάδους M. Αυτό μπορεί
να είναι σοβαρό μειονέκτημα για δυναμικά αρχεία. Αν
διαθέτουμε M κάδους για το χώρο διευθύνσεων και ότι m είναι
το μέγιστο πλήθος εγγραφών που χωρούν σε έναν κάδο· τότε,
το πολύ (m*M) εγγραφές θα χωρούν στο χώρο που διατέθηκε.
Aν τελικά το πλήθος των εγγραφών είναι σημαντικά μικρότερο
από (m*M), τότε έχουμε πολύ αχρησιμοποίητο χώρο. Aπό την
άλλη πλευρά, αν το πλήθος των εγγραφών μεγαλώσει πολύ
περισσότερο από (m*M), θα προκληθούν πολλές συγκρούσεις
και η ανάκτηση θα επιβραδυνθεί λόγω της εμφάνισης
μεγάλων λιστών από εγγραφές υπερχείλισης.

Μ.Χατζόπουλος

Τι γίνεται με

• Αναζήτηση εγγραφής όταν δεν δίδεται η τιμή


κατακερματισμού.
• Διαγραφές
• Τροποποίηση τιμής Πεδίου.

Μ.Χατζόπουλος
Δυναμικά Σχήματα Κατακερματισμού
Τα σχήματα αυτά επιτρέπουν την δυναμική
επέκταση και συρρίκνωση των αρχείων
κατακερματισμού.
Ο μετασχηματισμός στηρίζεται στην δυαδική
αναπαράσταση την τιμής κατακερματισμού.
Τα πιο γνωστά σχήματα είναι:
Ο επεκτατός κατακερματισμός και
Ο γραμμικά Επεκτατός Κατακερματισμός

Μ.Χατζόπουλος

Οι αρχές προέρχονται από τον εκθετικά επεκτατό


κατακερματισμό. Μέσω της συνάρτησης
κατακερματισμού το κλειδί απεικονίζεται σε μια ακέραια
τιμή με δυαδική αναπαράσταση.
00

01


Κάδοι
10 Δεδομένων

11

Βάθος 2

Μ.Χατζόπουλος
000

001

010

011

100

101

110

111

Μ.Χατζόπουλος

Συνεχίζοντας με αυτόν τον τρόπο θα έχουμε άχρηστη


εκθετική αύξηση του χώρου.
Προσπαθούμε να βρούμε τεχνικές για να περιορίσουμε
την επέκταση του χώρου.

Μ.Χατζόπουλος
Η επέκταση γίνεται εκθετικά μόνο στο ευρετήριο

000

001

010

011

100

101 Αυτός είναι ο κάδος


που προστέθηκε
110

111

Βάθος 3

Μ.Χατζόπουλος

Ολικό βάθος 3 d’=3

000
d’=2
001

010
d’=2
011

100
d’=2
101

110 d’=3
111

Μ.Χατζόπουλος
Τοπικό βάθος σε όλα 2

Ολικό Κάδος Α
4 12 32 16 Για παράδειγμα
βάθος 2 το h(K)=16

00 Κάδος Β
15 21
01
10 Κάδος C
10
11

15 7 19 Κάδος D

Μ.Χατζόπουλος

Τοπικό βάθος σε όλα 2

Ολικό Κάδος Α
4 12 32 16
βάθος 2

00 Κάδος Β
15 21 13
01

10 Κάδος C
10
11

15 7 19 Κάδος D

Εισαγωγή του h(r)=13

Στη συνέχεια η εισαγωγή


του 20 δημιουργεί
πρόβλημα
Μ.Χατζόπουλος
Τοπικό βάθος σε όλα 2

Ολικό Κάδος Α
32 16
βάθος 2

00 Κάδος Β
15 21 13
01
10 Κάδος C
10
11

15 7 19 Κάδος D

Ο κάδος αυτός προκύπτει από


4 12 20 Διάσπαση του Α

Μ.Χατζόπουλος

Ολικό
βάθος 3
Κάδος Α
32 16 Τοπικό βάθος 3
000
001
Κάδος Β
010 15 21 13 Τοπικό βάθος 2

011
Κάδος C
100
10 Τοπικό βάθος 2

101
15 7 19 Κάδος D Τοπικό βάθος 2
110

111 Κάδος Α2
4 12 20 Τοπικό βάθος 3

Προσθήκη του 9 δημιουργεί πρόβλημα στο Β


Μ.Χατζόπουλος
Ολικό
βάθος 3
Κάδος Α
32 16 Τοπικό βάθος 3
000
001
Κάδος Β
010 19 Τοπικό βάθος 3

011
Κάδος C
100
10 Τοπικό βάθος 2

101
15 7 19 Κάδος D Τοπικό βάθος 2
110

111 Κάδος Α2
4 12 20 Τοπικό βάθος 3
Κάδος Β2
5 21 13 Τοπικό βάθος 3

Μ.Χατζόπουλος

Ερώτηση
Αν το ολικό βάθος του ευρετηρίου είναι d bits και το τοπικό
βάθος ενός κάδου είναι l bits πόσες καταχωρήσεις
ευρετηρίου δείχνουν στον κάδο αυτό;

Μ.Χατζόπουλος
Για διαγραφές εντοπίζεται ο κάδος που περιέχει
το δεδομένο και ακολουθεί διαγραφή. Αν η
διαγραφή οδηγεί σε κενό κάδο τότε μπορεί να
συγχωνευθεί με τον κάδο από τον οποίο προήλθε
από την διάσπαση. Η συγχώνευση των κάδων
μειώνει το τοπικό βάθος.
Αυτό μπορεί να οδηγήσει και σε μείωση του
ευρετηρίου στο μισό.

Μ.Χατζόπουλος

Αν το ευρετήριο χωράει στη μνήμη μια αναζήτηση


ισότητας μπορεί να απαντηθεί με μια προσπέλαση στο
δίσκο.
Αρχείο 100ΜΒ με 100 bytes καταχώρηση και μέγεθος
σελίδας 4ΚΒ περιέχει 1000000 καταχωρήσεις και μόνο
περίπου 25000 καταχωρήσεις ευρετηρίου. Επομένως σε
πολλές περιπτώσεις μπορεί να χωράει το ευρετήριο στη
μνήμη.

Μ.Χατζόπουλος
Γραμμικός Κατακερματισμός
Ο γραμμικός κατακερματισμός είναι μια τεχνική που
προσαρμόζεται με επιτυχία σε εισαγωγές και
διαγραφές.
H ιδέα στην οποία βασίζεται ο γραμμικός
κατακερματισμός είναι να επιτρέπουμε σε ένα
αρχείο κατακερματισμού να επεκτείνει ή να
συρρικνώνει τους κάδους του δυναμικά χωρίς
να χρειάζεται κάποιον κατάλογο.
Με την μέθοδο αυτή υπάρχει μια ακολουθία
συναρτήσεων κατακερματισμού h0, h1, h2,.. με
την ιδιότητα το πεδίο τιμών καθεμιάς να είναι
διπλάσιο από αυτό της προηγουμένης της.

Μ.Χατζόπουλος

hi(τιμή)=h(τιμή) mod (2iN)

Συνήθως το Ν είναι δύναμη του 2

Μ.Χατζόπουλος
Μπορούμε να θεωρήσουμε γύρους κατακερματισμού.
Κατά τον γύρο i χρησιμοποιούνται μόνο οι συναρτήσεις hi
και hi+1. Όπως γεμίζουν οι κάδοι διαχωρίζονται ένας ένας
από τον πρώτο στον τελευταίο.

Μ.Χατζόπουλος

Έστω ότι η χωρητικότητα του κάδου Σελίδα Υπερχείλισης


είναι 4
Εισαγωγή 43

h1 h0 h1 h0
000 00 32 44 36 _ 000 00 32 _ _ _
001 01 9 25 5 _ 001 01 9 25 5 _
010 10 14 18 10 30 010 10 14 18 10 30
011 11 31 35 7 11 011 11 31 35 7 11 43
100 00 44 36

Τα κόκκινα πληροφοριακά μόνο

Μ.Χατζόπουλος
Διάσπαση συμβαίνει όταν γίνει επέκταση στην υπερχείλιση

Εισαγωγή 37

h1 h0
000 00 32 _ _ _
001 01 9 25 5 37
010 10 14 18 10 30
011 11 31 35 7 11 43
100 00 44 36

Μ.Χατζόπουλος

Εισαγωγή 29

h1 h0
000 00 32 _ _ _
001 01 9 25 _ _
010 10 14 18 10 30
011 11 31 35 7 11 43
100 00 44 36 _ _
101 01 5 37 29

Μ.Χατζόπουλος
Εισαγωγή των 22 66 και 34

h1 h0
000 00 32 _ _ _
001 01 9 25 _ _
010 10 66 18 10 34
011 11 31 35 7 11 43
100 00 44 36 _ _
101 01 5 37 29 _
110 10 14 30 22 _

Μ.Χατζόπουλος

Εισαγωγή 50

h1 h0
000 00 32 _ _ _
001 01 9 25 _ _
010 10 66 18 10 34 50
011 11 43 35 11 _
100 00 44 36 _ _
101 01 5 37 29 _
110 10 14 30 22 _
111 11 31 7 _ _

Μ.Χατζόπουλος
Aλγόριθμος H διαδικασία αναζήτησης για γραμμικό
κατακερματισμό.
if (n = 0)
then m ← hj(K) (* το m είναι η τιμή κατακερματισμού της
εγγραφής με κλειδί κατακερματισμού K *)
else begin
m ← hj(K) ;
if (m < n) then m ← hj+1(K)
end;
αναζήτησε τον κάδο που η τιμή κατακερματισμού του είναι m
(και την υπερχείλισή του, αν έχει) ;

Μ.Χατζόπουλος

Μια άλλη πολιτική διάσπασης θα ήταν ο παράγοντας φόρτωσης.


Όταν ξεπεράσει μια τιμή να γίνεται διάσπαση.

Παράγοντας φόρτωσης l=r/(bfr*N)


r: το πλήθος των εγγραφών του αρχείου
bfr: το μέγιστο πλήθος εγγραφών στον κάδο
N: το τρέχον πλήθος των κάδων

Μ.Χατζόπουλος
Αν υποθέσουμε ότι κάθε κάδος έχει 3 θέσεις και παράγοντα φόρτωσης
του αρχείου 67%

56=0111000
00 00 56 64 12 67=1000011
56 64
43=0101011
01 01 33
79=1001111
10 10 15=0001111
27=0011011
67 43 79 11 67 43 79 19=0010011
11 64=1000000
12=0001100
15 27 19 15 27 19 33=0100001
57=0111101
65=1000001

Στην επόμενη εισαγωγή θα πρέπει να γίνει διάσπαση

Μ.Χατζόπουλος

000 56 64
000 56 64
01 33 57 65 001 33 57 65
10 Για την επόμενη
εισαγωγή 10
11 67 43 79 Θα χρειασθεί διάσπαση
11 67 43 79
100 12
100 12

101
15 27 19
15 27 19

Μ.Χατζόπουλος
Γενικά μπορούμε να εφαρμόσουμε και την αντίστροφη διαδικασία
συρρίκνωσης του αρχείου όταν διαπιστώσουμε μεγάλο
αχρησιμοποίητο χώρο. Για παράδειγμα αν ο παράγοντας φόρτωσης
πέσει κάτω από μια τιμή.

Μ.Χατζόπουλος
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 1

Κεφάλαιο 13
Αποθήκευση σε ∆ίσκους, Βασικές
∆οµές Αρχείων, και
Κατακερµατισµός

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ.Μ.Χατζόπουλος

1
Γιατί θα µιλήσουµε
 Μονάδες Αποθήκευσης ∆ίσκων
 Αρχεία Εγγραφών
 Πράξεις σε αρχεία
 Αρχεία Σωρού
 Ταξινοµηµένα Αρχεία Αρχεία
 Αρχεία Κατακερµατισµού
 Τεχνικές ∆υναµικού και Επεκτατού
Κατακερµατισµού
 Τεχνολογία RAID

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 3

Αποθηκευτικές Μονάδες ∆ίσκων


 Οι δίσκοι προτιµώνται σαν αποθηκευτικές µονάδες λόγω
µεγάλης χωρητικότητας και χαµηλού κόστους.
 Τα δεδοµένα αποθηκεύονται σε επιφάνειες µαγνητικών
δίσκων σαν µαγνητισµένες περιοχές.
 Ένα πακέτο δίσκων περιέχει πολλούς µαγνητικούς
δίσκους συνδεδεµένων σε ένα περιστρεφόµενο άξονα.
 Οι δίσκοι χωρίζονται σε οµόκεντρες κυκλικές ατράκτους
σε κάθε επιφάνεια του δίσκου.
 Η χωρητικότητα των ατράκτων ποικίλει από 4 σε 50 Kbytes
ή περισσότερο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 4

2
Αποθηκευτικές Μονάδες ∆ίσκων(συν.)
 Μια άτρακτος χωρίζεται σε µικρότερα µπλοκ ή τοµείς
 επειδή συνήθως περιέχει µεγάλη ποσότητα πληροφοριών
 Ο διαµερισµός µιας ατράκτου σε τοµείς στην επιφάνεια
του δίσκου είναι µόνιµα κωδικοποιηµένος και δεν µπορεί
να αλλάξει.
 Ένας τύπος οργάνωσης τοµέων είναι αυτός που αποτελούν
ένα τµήµα ατράκτου που εκτείνεται σε µια σταθερή γωνία
στο κέντρο του τοµέα.
 Μια άτρακτος χωρίζεται σε µπλοκ.
 Το µέγεθος του µπλοκ B είναι σταθερό για κάθε σύστηµα.
 Τυπικά µεγέθη µπλοκ ποικίλουν από B=512 bytes µέχρι
B=4096 bytes.
 Μεταξύ δίσκου και κύριας µνήµης µεταφέρονται για
επεξεργασία ολόκληρα µπλοκ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 5

Αποθηκευτικές Μονάδες ∆ίσκων(συν.)

Άτρακτος Τοµέας

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 6

3
Αποθηκευτικές Μονάδες ∆ίσκων(συν.)
 Μια ανάγνωσης-γραφής µετακινείται προς την άτρακτο που περιέχει
το µπλοκ για µεταφορά.
 Η περιστροφική κίνηση του δίσκου µεταφέρει το µπλοκ κάτω από
την κεφαλή ανάγνωσης/γραφής για διάβασµα ή γράψιµο.
 Μια φυσική διεύθυνση µπλοκ (hardware) αποτελείται από:
 τον αριθµό κυλίνδρου (υποθετική συλλογή ατράκτων της ίδιας
ακτίνας από όλες τις επιφάνειες)
 τον αριθµό ατράκτου ή τον αριθµό της επιφάνειας (στον κύλινδρο)

 τον αριθµό του µπλοκ (στην άτρακτο).

 Η ανάγνωση ή το γράψιµο ενός µπλοκ δίσκου απαιτεί χρόνο λόγω


του χρόνου εντοπισµού (seek time) s και της καθυστέρησης
περιστροφής (latency) rd.
 Για επιτάχυνση της µεταφοράς µπορεί να χρησιµοποιηθεί τεχνική
διπλής ενδιάµεσης µνήµης (double buffering) για την µεταφορά
διαδοχικών µπλοκ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 7

Αποθηκευτικές Μονάδες ∆ίσκων(συν.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 8

4
Τυπικές παράµετροι δίσκων

(Courtesy of Seagate Technology)


Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 9

Εγγραφές
 Εγγραφές σταθερού και µεταβλητού µήκους
 Οι εγγραφές περιέχουν πεδία που έχουν τιµές
συγκεκριµένου τύπου
 Π.χ., amount, date, time, age
 Τα πεδία µπορεί να είναι σταθερού ή µεταβλητού µήκους
may be fixed
 Τα πεδία µεταβλητού µήκους µπορεί να αναµειγνύονται
σε µια εγγραφή:
 Για να γίνει επεξεργασία της εγγραφής χρησιµοποιούνται
διαχωριστικοί χαρακτήρες ή µήκος πεδίου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 10

5
Οµαδοποίηση (blocking)
 Οµαδοποίηση:
 Αφορά την αποθήκευση ενός πλήθους εγγραφών σε ένα
µπλοκ του δίσκου.
 Παράγοντας οµαδοποίησης (bfr) είναι το πλήθος των
εγγραφών ανά µπλοκ.
 Σε ένα µπλοκ µπορεί να υπάρχει κενός χώρος αν δεν
χωράει στο µπλοκ ένα ακέραιο πλήθος εγγραφών.
 Εκτεινόµενες (Spanned) Εγγραφές:
 Είναι οι εγγραφές που ξεπερνούν τι µέγεθος ενός ή
περισσότερων µπλοκ και εποµένως εκτείνονται σε ένα
πλήθος από µπλοκ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 11

Αρχεία Εγγραφών
 Ένα αρχείο είναι µια ακολουθία εγγραφών, ΄που κάθε
εγγραφή είναι µια συλλογή από τιµές δεδοµένων.
 Ένας περιγραφές αρχείου (ή επικεφαλίδα αρχείου)
περιλαµβάνει πληροφορίες που περιγράφουν το αρχείο,
όπως τα ονόµατα των πεδίων και τους τύπους
δεδοµένων, και τις διευθύνσεις των µπλοκ του αρχείου
στο δίσκο.
 Οι εγγραφές αποθηκεύονται σε µπλοκ του δίσκου.
 Ο παράγοντας οµαδοποίησης bfr ενός αρχείου είναι (το
µέσο) πλήθος εγγραφών του αρχείου που αποθηκεύονται
σε ένα µπλοκ.
 Ένα αρχείο µπορεί να έχει εγγραφές σταθερού µήκους ή
µεταβλητού µήκους.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 12

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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 13

Πράξεις σε αρχεία
 Οι τυπικές πράξεις στα αρχεία περιλαµβάνουν:
 OPEN: Ετοιµάζει το αρχείο για προσπέλαση, και δηµιουργεί ένα δείκτη που αναφέρεται
σε µια τρέχουσα του αρχείου κάθε χρονική στιγµή.
 FIND: Αναζητεί την πρώτη εγγραφή ενός αρχείου που ικανοποιεί µια συνθήκη, και την
καθιστά τρέχουσα εγγραφή του αρχείου.
 FINDNEXT: Αναζητεί την επόµενη εγγραφή του αρχείου (από την τρέχουσα) που
ικανοποιεί κάποια συνθήκη, και την καθιστά τρέχουσα εγγραφή του αρχείου.
 READ: Αντιγράφει την τρέχουσα εγγραφή του αρχείου σε µια µεταβλητή του
προγράµµατος.
 INSERT: Εισάγει µια νέα εγγραφή στο αρχείο & και την καθιστά τρέχουσα.
 DELETE: ∆ιαγράφει την τρέχουσα εγγραφή από το αρχείο, συνήθως σηµαδεύοντας την
εγγραφή για να δείξει ότι δεν ισχύει πλέον.
 MODIFY: Τροποποιεί τις τιµές κάποιων πεδίων της τρέχουσας εγγραφής.
 CLOSE: Τερµατίζει την προσπέλαση στο αρχείο.
 REORGANIZE: Αναδιοργανώνει τις εγγραφές του αρχείου.
 Για παράδειγµα, διαγράφονται φυσικά από το αρχείο οι εγγραφές που έχουν σηµαδευτεί
σαν διαγραµµένες ή δηµιουργείται µια νέα οργάνωση των εγγραφών του αρχείου.
 READ_ORDERED: ∆ιάβασε τα µπλοκ του αρχείου µε σειρά τιµής συγκεκριµένου
πεδίου.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 14

7
Μη Ταξινοµηµένα Αρχεία
 Ονοµάζονται επίσης αρχεία σωρού (heap ή pile).
 Οι νέες εγγραφές προστίθενται στο τέλος του αρχείου.
 Για την αναζήτηση µιας εγγραφής είναι απαραίτητη µια
γραµµική αναζήτηση των εγγραφών του αρχείου.
 Αυτό κατά µέσο όρο απαιτεί διάβασµα και
αναζήτηση των µισών µπλοκ του αρχείου, και
εποµένως έχει µεγάλο κόστος.
 Η εισαγωγή εγγραφών είναι πολύ αποτελεσµατική.
 Η ανάγνωση των εγγραφών µε συγκεκριµένη σειρά
κάποιου πεδίου απαιτεί ταξινόµηση του αρχείου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 15

Ταξινοµηµένα Αρχεία
 Λέγονται και σειριακά αχεία.
 Οι εγγραφές στο αρχείο ταξινοµηµένες µε βάση την τιµή ενός πεδίου
διάταξης.
 Η εισαγωγή είναι ακριβή: οι εγγραφές πρέπει να εισαχθούν στη σωστή σειρά.
 Για βελτίωση της απόδοσης της εισαγωγής συνηθίζεται να υπάρχει ένα
µη ταξινοµηµένο αρχείο για τις νέες εγγραφές, αρχείο υπερχείλισης ή
δοσοληψιών (overflow ή transaction)· αυτό περιοδικά συγχωνεύεται µε το
κυρίως ταξινοµηµένο αρχείο.
 Για αναζήτηση µιας εγγραφής µε τιµή του πεδίου διάταξης µπορεί να
χρησιµοποιηθεί δυαδική αναζήτηση.
 Αυτό απαιτεί, κατά µέσο όρο, ανάγνωση και αναζήτηση log2 των µπλοκ
του αρχείου, µια βελτίωση σε σχέση µε τη γραµµική αναζήτηση.
 Η ανάγνωση των εγγραφών µε την σειρά του πεδίου διάταξης είναι πολύ
αποτελεσµατική.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 16

8
Ταξινοµηµένα Αρχεία(συν.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 17

Μέσοι χρόνοι προσπέλασης


 Ο παρακάτω πίνακας δείχνει το µέσο χρόνο
προσπέλασης µιας εγγραφής για ένα τύπο
αρχείου
ΠΙΝΑΚΑΣ 13.2 ΜΕΣΟΣ ΧΡΟΝΟΣ ΠΡΟΣΠΕΛΑΣΗΣ
ΓΙΑ ΒΑΣΙΚΕ΅ΟΡΓΑΝΩΣΕΙΣ ΑΡΧΕΙΩΝ

ΜΕΘΟ∆ΟΣ ΜΕΣΟΣ ΧΡΟΝΟΣ


ΤΥΠΟΣ ΠΡΟΣΠΕΛΑΣΗΣ/ ΠΡΟΣΠΕΛΑΣΗΣ
ΟΡΓΑΝΩΣΗΣ ΑΝΑΖΗΤΗΣΗΣ ΜΙΑΣ ΕΓΓΡΑΦΗΣ
Σωρός (Χωρίς Γραµµική Σάρωση b/2
διάταξη) (Γραµµική
Αναζήτηση)
∆ιατεταγµένο Γραµµική Σάρωση b/2
∆ιατεταγµένο ∆υαδική Αναζήτηση log2b

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 18

9
Αρχεία Κατακερµατισµού
 Ο κατακερµατισµός για αρχεία στο δίσκο ονοµάζεται Εξωτερικός
Κατακερµατισµός
 Τα µπλοκ του αρχείου χωρίζονται σε M ίσου µεγέθους κάδους,
αριθµηµένους κάδος0, κάδος1, ..., κάδοςM-1.
 Τυπικά, ένας κάδος αντιστοιχεί σε ένα (ή καθορισµένο πλήθος) µπλοκ
δίσκου.
 Ένα από τα πεδία του αρχείου καθορίζεται να είναι το κλειδί
κατακερµατισµού του αρχείου.
 Η εγγραφή µε κλειδί κατακερµατισµού K αποθηκεύεται στον κάδο i, όπου
i=h(K), και h είναι η συνάρτηση κατακερµατισµού.
 Η αναζήτηση στο κλειδί κατακερµατισµού είναι πολύ αποδοτική.
 Συµβαίνουν συγκρούσεις όταν µια νέα εγγραφή απεικονίζεται σε ένα κάδο
που είναι ήδη γεµάτος.
 Για αποθήκευση τέτοιων εγγραφών υπάρχει ένα αρχείο υπερχείλισης.

 Οι εγγραφές υπερχείλισης κάθε κάδου µπορούν να συνδεθούν.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 19

Αρχεία Κατακερµατισµού(συν.)
 Υπάρχουν διάφοροι µέθοδοι επίλυσης των συγκρούσεων,
συµπεριλαµβανοµένων των:
 Ανοικτή διεθυνσιοδότηση: Ξεκινώντας από την κατειληµµένη θέση που
προσδιορίζεται από τη διεύθυνση κατακερµατισµού, το πρόγραµµα
ελέγχει τις διαδοχικές θέσεις στη σειρά µέχρι να βρεθεί µια
αχρησιµοποίητη (κενή) θέση.
 Αλυσιδωτή σύνδεση: Για τη µέθοδο αυτή διατηρούµε περιοχές θέσεων
υπερχείλισης, συνήθως επεκτείνοντας τον πίνακα µε έναν αριθµό θέσεων
υπερχείλισης. Eπιπλέον, σε κάθε θέση εγγραφής προστίθεται ένα πεδίο
δείκτη. Mια σύγκρουση επιλύεται τοποθετώντας τη νέα εγγραφή σε µια
αχρησιµοποίητη θέση υπερχείλισης και θέτοντας ως τιµή του δείκτη της
κατειληµµένης θέσης κατακερµατισµού τη διεύθυνση αυτής της θέσης
υπερχείλισης.
 Πολλαπλός κατακερµατισµός: ο πρόγραµµα εφαρµόζει µια δεύτερη
συνάρτηση κατακερµατισµού αν η πρώτη οδηγεί σε σύγκρουση. Aν
συµβεί πάλι σύγκρουση το πρόγραµµα χρησιµοποιεί ανοικτή
διευθυνσιοδότηση ή εφαρµόζει µια τρίτη συνάρτηση κατακερµατισµού και
στη συνέχεια χρησιµοποιεί ανοικτή διευθυνσιοδότηση αν είναι απαραίτητο
.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 20

10
Αρχεία Κατακερµατισµού(συν.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 21

Αρχεία Κατακερµατισµού(συν.)
 Για ελάττωση των εγγραφών υπερχείλισης, τυπικά ένα
αρχείο κατακερµατισµού διατηρείται hash κατά 70-80%
γεµάτο.
 Η συνάρτηση κατακερµατισµού h θα πρέπει να κατανέµει
οµοιόµορφα τις εγγραφές στους κάδους
 ∆ιαφορετικά, θα αυξάνει ο χρόνος αναζήτησης επειδή θα
υπάρχουν πολλές εγγραφές υπερχείλισης.
 Τα βασικά µειονεκτήµατα του στατικού εξωτερικού
κατακερµατισµού:
 Ο προκαθορισµένος αριθµός κάδων M είναι πρόβληµα αν
το πλήθος των εγγραφών µεγαλώνει ή συρρικνώνεται.
 Προσπέλαση µε βάση τη διάταξη στο κλειδί
κατακερµατισµού είναι µη αποτελεσµατική (απαιτεί
ταξινόµηση των εγγραφών).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 22

11
Αρχεία Κατακερµατισµού - ∆ιαχείριση
Υπερχείλισης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 23

∆υναµικά και επεκτεινόµενα αρχεία


κατακερµατισµού
 Τεχνικές ∆υναµικού και Επεκτατού Κατακερµατισµού
 Οι τεχνικές κατακερµατισµού προσαρµόζονται για να
υποστηρίζουν δυναµική επέκταση και συρρίκνωση του πλήθους
των εγγραφών.
 Οι τεχνικές αυτές περιλαµβάνουν τις παρακάτω: δυναµικός
κατακερµατισµός, επεκτατός κατακερµατισµός, και γραµµικός
κατακερµατισµός.
 Τόσο ο δυναµικός όσο και ο επεκτατός κατακερµατισµός
χρησιµοποιούν την δυαδική παράσταση της τιµής κατακερµατισµού
h(K) για προσπέλαση σε ένα ευρετήριο.
 Στο δυναµικό κατακερµατισµό το ευρετήριο είναι ένα δυαδικό
δένδρο.
 Στον επεκτατό κατακερµατισµό το ευρετήριο είναι ένας πίνακας
µεγέθους 2d όπου το d ονοµάζεται το ολικό βάθος.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 24

12
∆υναµικά και επεκτεινόµενα αρχεία
κατακερµατισµού(συν.)
 Τα ευρετήρια µπορούν να αποθηκευθούν στο δίσκο,
επεκτείνονται ή συρρικνώνονται δυναµικά.
 Οι καταχωρήσεις ευρετηρίου δείχνουν σε µπλοκ δίσκου που
περιέχουν τις αποθηκευµένες εγγραφές.
 Μια εισαγωγή σε γεµάτο µπλοκ δίσκου προκαλεί
διάσπαση του µπλοκ σε δύο και οι εγγραφές
αναδιανέµονται µεταξύ των δύο µπλοκ.
 Γίνεται κατάλληλη ενηµέρωση του ευρετηρίου.
 Ο δυναµικός και ο επεκτατός κατακερµατισµός δεν
χρειάζονται περιοχή υπερχείλισης.
 Ο γραµµικός κατακερµατισµός χρειάζεται περιοχή
υπερχείλισης αλλά δεν χρειάζεται και ευρετήριο.
 Τα µπλοκ διασπώνται µε γραµµική σειρά όπως επεκτείνεται
το αρχείο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 25

Επεκτατός κατακερµατισµός

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 26

13
Παραλληλισµός στην προσπέλαση
των δίσκων µε τεχνολογία RAID.
 Η τεχνολογία των µονάδων αποθήκευσης πρέπει να κάνει
βήµατα για να προφθάσει σε απόδοση και αξιοπιστία την
τεχνολογία των επεξεργαστών.
 Μια σηµαντική πρόοδο στην τεχνολογία των
δευτερευουσών µονάδων αποθήκευσης εκπροσωπεί η
ανάπτυξη RAID, που αρχικά σήµαινε Redundant Arrays
of Inexpensive Disks.
 Ο βασικός στόχος του RAID είναι να αντισταθµίσει την
τεράστια διαφορά βελτίωσης της απόδοσης των δίσκων
έναντι αυτής της µνήµης και των µικροεπεξεργαστών.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 27

RAID Τεχνολογία (συν.)


 Μια φυσική λύση είναι µια µεγάλη διάταξη µικρών
ανεξάρτητων δίσκων που λειτουργούν σαν ένας υψηλής
απόδοσης λογικός δίσκος.
 Χρησιµοποιείται µια έννοια που λέγεται διαχωρισµός
δεδοµένων (data striping), που χρησιµοποιεί
παραλληλισµό για βελτίωση της απόδοσης των δίσκων.
 Ο διαχωρισµός των δεδοµένων κατανέµει τα δεδοµένα σε
πολλαπλούς δίσκους ώστε να εµφανίζονται σαν ένας
µεγάλος, γρήγορος δίσκος.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 28

14
RAID Τεχνολογία (συν.)
 Έχουν ορισθεί διάφορες οργανώσεις raid που βασίζονται σε
διαφορετικούς συνδυασµούς των δύο παραγόντων της λεπτότητας
διαχωρισµού των δεδοµένων και του πρότυπου που χρησιµοποιείται
για τον υπολογισµό των πλεοναζουσών πληροφοριών.
 Το Raid επιπέδου 0 δεν έχει πλεονάζοντα δεδοµένα και εποµένως έχει
την καλύτερη απόδοση εγγραφής µε κίνδυνο απώλειας δεδοµένων.
 Το Raid επιπέδου 1 χρησιµοποιεί κατοπτρικούς δίσκους.
 Το Raid επιπέδου 2 χρησιµοποιεί πλεονασµούς µνήµης
χρησιµοποιώντας κώδικες Hamming, που περιέχουν δυαδικά ψηφία
ισοτιµίας για διακριτά υποσύνολα επικαλυπτόµενων συνιστωσών . Το
επίπεδο 2 περιλαµβάνει και εξακρίβωση και διόρθωση λαθών.
 Το Raid επιπέδου 3 χρησιµοποιεί ένα δίσκο ισοτιµίας και βασίζεται στον
ελεγκτή του δίσκου για να βρει ποιος δίσκος έχει αποτύχει.
 Τα Raid επίπεδα 4 και 5 χρησιµοποιούν διαχωρισµό επιπέδου µπλοκ, µε
το επίπεδο 5 να κατανέµει τα δεδοµένα και τις πληροφορίες ισοτιµίας σε
όλους τους δίσκους.
 Το Raid επίπεδο 6 εφαρµόζει το αποκαλούµενο P + Q σχήµα
πλεονασµού χρησιµοποιώντας τους Reed-Soloman κώδικές για
προστασία επιτρέποντας µέχρι το πολύ δύο δίσκοι να είναι σε αποτυχία
χρησιµοποιώντας δύο πλεονάζοντες δίσκους.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 29

Χρήση τηςRAID Τεχνολογίας (συν.)


 Σε διαφορετικές περιπτώσεις χρησιµοποιούνται διαφορετικές raid
οργανώσεις
 Στο Raid επιπέδου 1 (κατοπτρικοί δίσκοι) η ανάκτηση είναι ευκολότερη
 Χρησιµοποιείται για κρίσιµες εφαρµογές όπως ηµερολόγια δοσοληψιών

 Το Raid επιπέδου 2 χρησιµοποιεί πλεονασµό µνήµης µε χρήση κωδίκων


Hamming, που περιέχουν δυαδικά ψηφία ισοτιµίας για διακριτά
επικαλυπτόµενα υποσύνολα στοιχείων.
 Το επίπεδο 2περιλαµβάνει εξακρίβωση και διόρθωση λαθών.

 Το Raid επιπέδου 3 (χρησιµοποιεί ένα δίσκο ισοτιµίας βασιζόµενο στον


ελεγκτή του δίσκου για να βρει ποιος δίσκος έχει αποτύχει) και το επιπέδου
5 (διαχωρισµός δεδοµένων επιπέδου µπλοκ) προτιµώνται για µεγάλη
αποθήκευση, µε το επίπεδο 3 να δίνει ταχύτερους ρυθµούς µεταφοράς.
 Οι πιο δηµοφιλείς χρήσεις της τεχνολογίας RAID σήµερα είναι:
 Επίπεδο 0 (µε διαχωρισµό), Επίπεδο 1 (µε κατοπτρισµό) και Επίπεδο 5
µε µια επιπλέον µονάδα για ισοτιµία.
 Οι σχεδιαστικές αποφάσεις για το RAID περιλαµβάνουν:
 Επίπεδο του RAID, πλήθος δίσκων, επιλογή σχηµάτων ισοτιµίας, και
οµαδοποίηση των δίσκων για διαχωρισµό επιπέδου µπλοκ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 30

15
Χρήση της RAID
Τεχνολογίας (συν.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 31

Τάσεις στην τεχνολογία των δίσκων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 32

16
∆ίκτυα Περιοχών Αποθήκευσης (SAN)
 Οι απαιτήσεις για µεγάλους χώρους αποθήκευσης έχουν αυξηθεί
σηµαντικά τελευταία.
 Οι οργανισµοί αισθάνονται την ανάγκη να περάσουν από τη
λειτουργία ενός στατικού καθορισµένου κέντρου δεδοµένων σε πιο
ευέλικτες και δυναµικές υποδοµές για την επεξεργασία πληροφοριών.
 Εποµένως προσανατολίζονται σε of Storage Area Networks (SANs).
 Σε ένα SAN, οι περιφερειακές µονάδες αποθήκευσης
διαµορφώνονται σαν κόµβοι σε ένα δίκτυο υψηλής ταχύτητας και
µπορούν να προσαρτώνται και να αποπροσαρτώνται από
διακοµιστές κατά πολύ ευέλικτο τρόπο.
 Αυτό επιτρέπει σε συστήµατα αποθήκευσης να βρίσκονται σε
µεγαλύτερες αποστάσεις από διακοµιστές να υποστηρίζουν
διαφορετικές επιλογές απόδοσης και διασύνδεσης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 33

∆ίκτυα Περιοχών Αποθήκευσης(συν.)


 Τα πλεονεκτήµατα των SANs είναι:
 Ευέλικτη πολλά-προς-πολλά σύνδεση µεταξύ διακοµιστών
και µονάδων αποθήκευσης µε χρήση οπτικών καναλιών.
 Μέχρι και 10km απόσταση µεταξύ ενός διακοµιστή και ενός
συστήµατος αποθήκευσης µε χρήση κατάλληλων οπτικών
ινών.
 ∆υνατότητες καλύτερης αποµόνωσης που υποστηρίζει µη
διακοπτόµενη προσθήκη νέων περιφερειακών και
διακοµιστών.
 Τα SAN αντιµετωπίζουν το πρόβληµα συνδυασµού
αποθηκευτικών επιλογών από πολλούς κατασκευαστές
και των επερχόµενων πρότυπων λογισµικού και υλικού
στη διαχείριση δεδοµένων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 34

17
Σύνοψη
 Μονάδες Αποθήκευσης ∆ίσκων
 Αρχεία Εγγραφών
 Πράξεις σε Αρχεία
 Μη ταξινοµηµένα Αρχεία
 Ταξινοµηµένα Αρχεία
 Αρχεία Κατακερµατισµού
 Τεχνικές επεκτατού και δυναµικού
κατακερµατισµού
 RAID Τεχνολογία

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


∆ίαβλος, Επιµ. Μ.Χατζόπουλος ∆ιαφάνεια 13- 35

18
Κεφάλαιο 14
Δομές Ευρετηρίων για Αρχεία

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,


Διαβλος, Επιμέλεια Μ.Χατζόπουλος

Θα μιλήσουμε για
 Τύποι Ταξινομημένων Ευρετηρίων ενός επιπέδου
 Πρωτεύοντα Ευρετήρια
 Ευρετήρια Συστάδες
 Δευτερεύοντα Ευρετήρια
 Ευρετήρια Πολλών Επιπέδων
 Δυναμικά Ευρετήρια Πολλών Επιπέδων με χρήση
B-Δένδρων και B+-Δένδρων
 Ευρετήρια σε Πολλαπλά Κλειδιά

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 3
Ευρετήρια σαν Μέθοδοι Προσπέλασης
 Ένα ευρετήριο ενός επιπέδου είναι ένα βοηθητικό αρχείο
που κάνει πιο αποτελεσματική την αναζήτηση μιας
εγγραφής σε ένα αρχείο δεδομένων.
 Το ευρετήριο συνήθως ορίζεται σε ένα πεδίο του αρχείου
(αν και μπορεί να ορισθεί σε πολλά πεδία)
 Μια μορφή ευρετηρίου είναι ένα αρχείο με καταχωρήσεις
<τιμή πεδίου, δείκτης στην εγγραφή>, που είναι
ταξινομημένο με τιμή πεδίου
 Το ευρετήριο λέγεται δρόμος προσπέλασης στο πεδίο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 4

Ευρετήρια σαν Μέθοδοι


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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 5
Ευρετήρια σαν Μέθοδοι
Προσπέλασης(συν.)
 Παράδειγμα: Έστω το αρχείο δεδομένων ΕΡΓΑΖΟΜΕΝΟΣ(ΟΝΟΜΑ, ΑΡ_ΤΑΥΤ,
ΔΙΕΥΘΥΝΣΗ, ΕΡΓΑΣΙΑ, ΜΙΣΘΟΣ, ... )
 Υποθέστε ότι:
 μέγεθος εγγραφής R=150 bytes μέγεθος μπλοκ B=512 bytes r=30000 εγγραφές
 Τότε, έχουμε:
 παράγοντας ομαδοποίησης Bfr= B div R= 512 div 150= 3 εγγραφές/μπλοκ
 πλήθος μπλοκ αρχείου b= (r/Bfr)= (30000/3)= 10000 μπλοκ
 Για ένα ευρετήριο στο πεδίο ΑΡ_ΤΑΥΤ, υποθέστε μέγεθος πεδίου VΑρΤΑΥΤ=9
bytes, υποθέστε μέγεθος δείκτη εγγραφής PR=7 bytes. Τότε:
 μέγεθος καταχώρησης ευρετηρίου RI=(VSSN+ PR)=(9+7)=16 bytes
 παράγοντας ομαδοποίησης ευρετηρίου BfrI= B div RI= 512 div 16= 32 κατχ/μπλοκ
 πλήθος μπλοκ ευρετηρίου b= (r/ BfrI)= (30000/32)= 938 μπλοκ
 η δυαδική αναζήτηση απαιτεί log2bI= log2938= 10 μπλοκ προσπελάσεις
 Σε σχέση με το κόστος της μέσης γραμμικής αναζήτησης που είναι:
 (b/2)= 10000/2= 5000 μπλοκ προσπελάσεις
 Αν οι εγγραφές του αρχείου είναι ταξινομημένες, η δυαδική αναζήτηση θα ήταν:
 log2b= log210000= 14 μπλοκ προσπελάσεις

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 6

Τα ευρετήρια ορίζονται σε ένα ή περισσότερα πεδία που


ονομάζονται πεδίο(α) ή γνώρισμα(τα) ευρετηριοποίησης.

 Πρωτεύον Ευρετήριο
 Ευρετήριο Συστάδων
 Δευτερεύον Ευρετήριο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 7
Τύποι Ευρετηρίων ενός Επιπέδου
 Πρωτεύον Ευρετήριο
 Ορίζεται σε ένα ταξινομημένο αρχείο δεδομένων
 Το αρχείο δεδομένων είναι ταξινομημένο σε ένα πεδίο
κλειδί
 Περιλαμβάνει μια καταχώρηση ευρετηρίου για κάθε μπλοκ
στο αρχείο δεδομένων· η καταχώρηση ευρετηρίου έχει την
τιμή του πεδίου κλειδιού για την πρώτη εγγραφή στο
μπλοκ, που ονομάζεται άγκυρα του μπλοκ
 Ένα παρόμοιο σχήμα μπορεί να χρησιμοποιεί την τελευταία
εγγραφή σε ένα μπλοκ.
 Ένα πρωτεύον ευρετήριο είναι ένα μη πυκνό (αραιό)
ευρετήριο, αφού έχει μια καταχώρηση για κάθε μπλοκ του
αρχείου δεδομένων στο δίσκο και στα κλειδιά των
εγγραφών άγκυρα παρά για κάθε τιμή αναζήτησης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 8

Πρωτεύον ευρετήριο στο πεδίο κλειδί


ταξινόμησης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 9
ΑΡ_ΚΥΚΛ ΜΑΡΚΑ ΜΟΝΤΕΛΟ
ΑΑΑ1212 FIAT PUNTO

Ευρετήριο AAB2343 FORD ESCORT



AAA1212 BAA2356 OPEL ASTRA
BBA1212
BBΑ2112 FIAT STYLO
BBB2343 FORD MONDEO

EAA2256 CITROEN SAXO

YEA1412 …
YEΑ1412 FIAT PUNTO
YYZ5667 SEAT IBIZA

XXB2468 OPEL OMEGA

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 10

Τύποι Ευρετηρίων ενός Επιπέδου


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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 11
Ένα παράδειγμα ευρετηρίου συστάδας

Ένα ευρετήριο
συστάδα στο
πεδίο
ταξινόμησης
ΚΩΔ_ΤΜΗΜ που
δεν είναι κλειδί
στο αρχείο
ΕΡΓΑΖΟΜΕΝΟΣ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 12

ΑΡ_ΤΑΥΤ ΑΡΚΥΚΛ ΠΟΣΟΣΤ_ΙΔ


Α122122

Ευρετήριο Α122122
Α122122
A122122 Α122156
Α122156
Β345345 Α122156
Β345345
Β345345
Β345345

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 13
ΑΡ_ΤΑΥΤ ΑΡΚΥΚΛ ΠΟΣΟΣΤ_ΙΔ
Α122122

Ευρετήριο Α122122
Α122122
A122122 δείκτης μπλοκ null
Α122156
Α122156
Α122156
Α122156
δείκτης μπλοκ

Α122156

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 14

Ένα ακόμη παράδειγμα ευρετηρίου συστάδας

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 15
Τύποι Ευρετηρίων ενός Επιπέδου
 Δευτερεύον Ευρετήριο
 Ένα δευτερεύον ευρετήριο υποστηρίζει ένα δευτερεύοντα τρόπο
προσπέλασης ενός αρχείου για το οποίο υπάρχει ήδη
πρωτεύουσα οργάνωση.
 Το δευτερεύον ευρετήριο μπορεί να είναι σε ένα πεδίο που είναι
υποψήφιο κλειδί και έχει μοναδική τιμή σε κάθε εγγραφή, ή ένα
πεδίο που δεν είναι κλειδί με διπλές τιμές.
 Το ευρετήριο είναι ένα ταξινομημένο αρχείο με δύο πεδία.

 Το πρώτο πεδίο είναι ίδιου τύπου δεδομένων με κάποιο πεδίο που


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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 16

Παράδειγμα ενός Πυκνού Πρωτεύοντος


Ευρετηρίου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 17
Ένα Παράδειγμα Δευτερεύοντος
Ευρετηρίου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 18

Ιδιότητες Τύπων Ευρετηρίων


Τύπος Ευρετηρίου Πλήθος Καταχωρήσεων Πυκνό η Άγκυρες
του Ευρετηρίου (Πρώτου Μη Πυκνό μπλοκ στο
Επιπέδου) Αρχείο
Δεδομένων
Πρωτεύον Πλήθος μπλοκ του αρχείου Μη πυκνό Ναι
Ευρετήριο δεδομένων
Ευρετήριο πλήθος διαφορετικών Μη Πυκνό Ναι/όχια
Συστάδων τιμών του πεδίου
ευρετηρίασης
Δευτερεύον Πλήθος εγγραφών αρχείου Πυκνό όχι
Ευρετήριο πάνω δεδομένων
σε πεδίο-κλειδί
Δευτερεύον Πλήθος εγγραφώνβ η Πυκνό ή μη όχι
Ευρετήριο πάνω πλήθος διαφορετικών πυκνό
σε πεδίο-μη κλειδί τιμών του πεδίου
ευρετηριοποίησηςγ
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 19
Ευρετήρια Πολλών Επιπέδων
 Επειδή ένα ευρετήριο ενός επιπέδου είναι ένα ταξινομημένο αρχείο,
μπορούμε να δημιουργήσουμε ένα πρωτεύον ευρετήριο στο ίδιο το
ευρετήριο·
 Στην περίπτωση αυτή, το αρχικό αρχείο ευρετηρίου ονομάζεται
πρώτο επίπεδο ευρετηρίου και το ευρετήριο του ευρετηρίου
ονομάζεται δεύτερο επίπεδο ευρετηρίου.
 Μπορούμε να επαναλάβουμε τη διαδικασία αυτή, δημιουργώντας ένα
τρίτο, τέταρτο ... επίπεδο, μέχρι που όλες οι καταχωρήσεις στο
ψηλότερο επίπεδο να χωράνε σε ένα μπλοκ μνήμης.
 Ένα ευρετήριο πολλών επιπέδων μπορεί να δημιουργηθεί
οποιοδήποτε τύπο ευρετηρίου πρώτου επιπέδου (πρωτεύον,
δευτερεύον, συστάδα) όσο το πρώτο επίπεδο ευρετηρίου αποτελείται
από περισσότερα από ένα μπλοκ δίσκου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 20

Πρωτεύον Ευρετήριο δύο επιπέδων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 21
Ευρετήρια Πολλών Επιπέδων
 Ένα τέτοιο ευρετήριο πολλών επιπέδων είναι μια
μορφή δένδρου αναζήτησης
 Ωστόσο, η εισαγωγή και η διαγραφή
καταχωρήσεων στο ευρετήριο αποτελεί σοβαρό
πρόβλημα επειδή κάθε επίπεδο του ευρετηρίου
είναι ένα ταξινομημένο αρχείο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 22

Δομή Ευρετηρίου

Καταχωρήσεις
Ευρετηρίου

Εγγραφές Αρχείου σε συστάδα

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 23
Δομή Ευρετηρίου

Καταχωρήσεις
Ευρετηρίου

Εγγραφές Αρχείου δενδρικό ευρετήριο χωρίς συστάδα

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 24

Μπορούμε να κατασκευάσουμε ευρετήρια σε δευτερεύοντα πεδία.


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

 Πυκνό ευρετήριο. Μια καταχώρηση για κάθε εγγραφή.


 Μεταβλητού μήκους εγγραφές που για κάθε τιμή του πεδίου
περιέχουν μια λίστα από διευθύνσεις.
 Χρησιμοποίηση ενδιάμεσου επιπέδου ευρετηρίου (που
χρησιμοποιείται και πιο συχνά). Υπάρχει μια καταχώρηση
για κάθε διαφορετική τιμή του πεδίου με δείκτη σε δεύτερο
επίπεδο που υπάρχει μια λίστα από διευθύνσεις

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 25
Ξεχωριστή
Τιμή_Πεδίου Διευθ_Μπλοκ καταχώρηση για κάθε
εγγραφή

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 26

Επαναλαμβανόμενο
πεδίο με τις
διευθύνσεις

Τιμή_Πεδίου Διευθύνσεις_Μπλοκ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 27
Μπλοκ με Αρχείο Δεδομένων
Δείκτες
εγγραφών

Τιμή Δείκτης
Πεδίο Μπλοκ
1
2

Χρήση Ενδιάμεσου Επιπέδου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 28

Ένας κόμβος σε ένα δένδρο αναζήτησης


με δείκτες στα υποδένρα του

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 29
Ένα δένδρο αναζήτησης τάξεως p = 3.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 30

ISAM αρχεία (Indexed Sequential Access


Method)

 Δημιουργούμε ένα δεύτερο αρχείο με μια


εγγραφή για κάθε σελίδα του αρχικού αρχείου,
της μορφής <πρώτο κλειδί στη σελίδα, δείκτης
στη σελίδα> ταξινομημένο προς το κλειδί
 Το ζευγάρι <key, pointer> αναφέρονται σαν
καταχώρηση. Κάθε κλειδί στο ευρετήριο αποτελεί
διαχωριστή για τα περιεχόμενα των σελίδων που
δείχνουν οι δείκτες.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 31
Πολυεπίπεδα Ευρετήρια

1 μπλοκ
Στη μνήμη 1-1000000

100
μπλοκ 1-10000 10001-20000 … 999001-1000000

10000
μπλοκ 1-100 101-200 … 9999901-10000000

1-10 11-20 21-30 … 9999991-10000000

Αρχείο δεδομένων
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 32

Αρχεία ISAM (Indexed Sequential Access Method)

p0 k1 p1 k2 p2 … km pm

Σελίδα του ευρετηρίου

Το ζεύγος κλειδί, δείκτης αποτελεί μια καταχώρηση του ευρετηρίου

(ki, pi)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 33
Αντί να γίνεται αναζήτηση στο αρχείο δεδομένων η αναζήτηση γίνεται στο
ευρετήριο. Εκεί μπορεί να γίνει δυαδική αναζήτηση σε μικρότερο αρχείο.
Η ιδέα είναι αν μπορώ να μεταφέρω την οργάνωση του ευρετηρίου
αναδρομικά μέχρι το αρχικό βοηθητικό αρχείο να χωράει στη μνήμη.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 34

Σελίδες δεδομένων

Σελίδες Ευρετηρίου

Σελίδες Υπερχείλισης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 35
Εναλλακτικά μπορούμε να υλοποιήσουμε την μέθοδο θέτοντας στα
φύλα μόνο τιμή κλειδιού και διεύθυνση στο αρχείο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 36

Ρίζα

40

51 63
20 33

10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97*

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 37
Εισαγωγή 23, 48, 41, 42
Πρωτεύουσες
Ρίζα
Σελίδες

Ενδιάμεσοι 40
κόμβοι

51 63
20 33

10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97*

48* 41* 42*


23*

Υπερχείλιση

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 38

Διαγραφή 42, 51, 97


Πρωτεύουσες
Ρίζα
Σελίδες

Ενδιάμεσοι 40
κόμβοι

51 63
20 33

10 15 20 27 33 37 40 46 55 63

48 41
23

Υπερχείλιση

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 39
Το κόστος της αναζήτησης σε προσπελάσεις στο
δίσκο είναι όσο και το ύψος του ευρετηρίου συν την
προσπέλαση στη σελίδα των δεδομένων συν τις
προσπελάσεις στην υπερχείλιση.
Όταν δημιουργηθεί το ISAM αρχείο οι διαγραφές και
οι εισαγωγές επηρεάζουν τα φύλα. Σαν αποτέλεσμα
δημιουργούνται μακρές λίστες από σελίδες
υπερχείλισης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 40

Η αναζήτηση στο ευρετήριο εξαρτάται από το ύψος


του. Αν επομένως το πλήθος των πεδίων ανά
σελίδα ευρετηρίου είναι F (λέγεται fun out) και αν N
το πλήθος των πρωτευόντων σελίδων φύλων τότε
η αναζήτηση απαιτεί logFN προσπελάσεις.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 41
Σαν μια λύση στο πρόβλημα αυτό είναι η φόρτωση των φύλων μόνο
σε ένα ποσοστό (80% για παράδειγμα).

Μια τέτοια οργάνωση είναι τα VSAM (Virtual Storage Access Method)


αρχεία που αναπτύχθηκαν από την IBM και θεωρούνται προκάτοχοι
των Β-δένδρων.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 42

ISAM αρχεία (συν)


Αρχείο ευρετηρίου

K1, k2 kn

Σελ. 1 Σελ. 2 Σελ. 3 Σελ. Ν

Αρχείο δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 43
ISAM αρχεία (συν). Το προηγούμενο βήμα μπορεί να επεκταθεί στο
κτίσιμο ενός ευρετηρίου πολλών επιπέδων

Ενδιάμεσοι κόμβοι

...

... ...
... ... ... ...

Σελίδα υπερχείλισης Σελίδες φύλα


Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 44

Δυναμικά Πολυεπίπεδα Ευρετήρια με


Χρήση B-Δένδρων και B+-Δένδρων
 Τα περισσότερα ευρετήρια πολλών επιπέδων
χρησιμοποιούν δομές δεδομένων B-δένδρων ή B+-
δένδρων λόγω του προβλήματος εισαγωγής και
διαγραφής
 Αυτό αφήνει σε κάθε κόμβο του δένδρου (μπλοκ στο δίσκο)
ελεύθερο χώρο για νέες καταχωρήσεις
 Αυτές οι δομές δεδομένων αποτελούν παραλλαγές των
δένδρων αναζήτησης που υποστηρίζουν αποτελεσματική
εισαγωγή και διαγραφή νέων τιμών αναζήτησης.
 Στις δομές δεδομένων B-δένδρων και B+-δένδρων, κάθε
κόμβος αντιστοιχεί σε ένα μπλοκ του δίσκου
 Κάθε κόμβος είναι από γεμάτος ή μέχρι τη μέση

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 45
Δυναμικά Πολυεπίπεδα Ευρετήρια με
Χρήση B-Δένδρων και B+-Δένδρων(συν.)
 Η εισαγωγή σε ένα κόμβο που δεν είναι γεμάτος είναι
πολύ αποδοτική
 Αν ένας κόμβος είναι γεμάτος η εισαγωγή προκαλεί
διάσπαση σε δύο κόμβους
 Η διάσπαση μπορεί να διαδοθεί σε άλλα επίπεδα του
δένδρου
 Μια διαγραφή είναι πολύ αποδοτική αν ένας κόμβος δεν
πέφτει κάτω από το μισό
 Αν μια διαγραφή οδηγήσει σε κόμβο με λιγότερες από
μισές καταχωρήσεις, πρέπει να συνενωθεί με γειτονικούς
κόμβους

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 46

Διαφορά μεταξύ B-δένδρου και B+-


δένδρου

 Σε ένα Β-δένδρου, υπάρχουν δείκτες προς


εγγραφές δεδομένων σε όλα τα επίπεδα του
δένδρου
 Σε ένα B+-δένδρο, όλοι οι δείκτες προς τις
εγγραφές δεδομένων υπάρχουν στους κόμβους
φύλα
 Ένα B+-δένδρο μπορεί να έχει λιγότερα επίπεδα
(ή μεγαλύτερη χωρητικότητα τιμών αναζήτησης)
από το αντίστοιχο B-δένδρο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 47
Δομές B-δένδρου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 48

Οι κόμβοι ενός B+-δένδρου


 FIGURE 14.11 The nodes of a B+-tree
 (a) Internal node of a B+-tree with q –1 search values.
 (b) Leaf node of a B+-tree with q – 1 search values and q – 1 data pointers.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 49
Ένα παράδειγμα εισαγωγής σε B+-δένδρο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 50

Ένα παράδειγμα διαγραφής σε ένα B+-


δένδρο

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 51
Σύνοψη
 Τύποι διατεταγμένων ευρετηρίων ενός επιπέδου
 Πρωτεύοντα ευρετήρια
 Ευρετήρια Συστάδες
 Δευτερεύοντα Ευρετήρια
 Ευρετήρια πολλών επειπέδων
 Δυναμικά ευρετήρια πολλών επιπέδων με χρήση
B-δένδρων και B+-δένδρων
 Ευρετήρια σε πολλά κλειδιά

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14- 52

Δυναμικά Πολυεπίπεδα Ευρετήρια


(Β-δένδρα)

Μ.Χατζόπουλος 1
Α

Δ
Β Γ

Η Θ Ι
Ε Ζ

Λ
Κ

Μ.Χατζόπουλος 2

Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που


χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας
εγγραφής όταν δίνεται η τιμή ενός πεδίου της.

Μ.Χατζόπουλος 3
K1<K2<…<K q-1

P1 K1 … Ki-1 Pi Ki … K q-1 Pq

X X X

X<K1 Ki-1<X<Ki Kq-1<X

Μ.Χατζόπουλος 4

50 70

55 60 90
20 40

75 85 95 100
8 10 25 35 45

Έστω ότι ο κόμβος χωράει 2 κλειδιά

Μ.Χατζόπουλος 5
Εισαγωγή 48

50 70

55 60 90
20 40

75 85 95 100
8 10 25 35 45 48

Μ.Χατζόπουλος 6

Εισαγωγή 74

50 70

55 60 90
20 40

75 85 95 100
8 10 25 35 45 48

74

Μ.Χατζόπουλος 7
Όμως έτσι μπορεί να μην έχουμε καλή απόδοση ενώ θα μπορούσαμε
να έχουμε

50 70

55 60 75 90
20 40

8 10 25 35 45 48 74 85 95 100

Μ.Χατζόπουλος 8

Αν το δένδρο είναι τάξεως m σε κάθε κόμβο μπορεί να περιέχει το


μέγιστο m-1 κλειδιά. Επομένως ένα δένδρο αναζήτησης ύψους h
περιέχει το μέγιστο

(m-1)+m(m-1)+m2(m-1)+…mh-1(m-1)=(m-1)(1+m+m2+…+mh-1)

=mh-1

Επομένως για N κλειδιά το καλλίτερο δένδρο που μπορεί να


δημιουργηθεί είναι N= mh-1 δηλαδή το πιο κοντό θα έχει ύψος

h=logm(N+1)

Μ.Χατζόπουλος 9
Όμως επειδή η χρήση είναι δυναμική δεν είναι πρακτικό με κάθε
εισαγωγή και διαγραφή να γίνεται αναδιοργάνωση του δένδρου ώστε να
έχω την καλλίτερη δυνατή απόδοση

Θέλουμε να μπορεί να γίνεται εύκολα η εισαγωγή αλλά ταυτόχρονα


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

Μ.Χατζόπουλος 10

Β-δένδρο τάξεως p

1. Κάθε εσωτερικός κόμβος είναι της μορφής


<P1,<k1,Pr1>,P2,<K2,Pr2>,…,<kq-1,Prq-1>,Pq> q≤p. Τα Pi είναι
δείκτες δένδρου ενώ τα Pri δείκτες δεδομένων.
2. Σε κάθε κόμβο ισχύει: K1<K2<…Kq-1.
3. Για όλα τα κλειδιά X στο υποδένδρο που δείχνει το Pi ισχύει
Κi-1<X<Ki 1<I<q, X<Ki για i=1 και Ki-1<X για i=q
4. Κάθε κόμβος έχει το πολύ p δείκτες δένδρου.
5. Κάθε κόμβος εκτός της ρίζας και των φύλων έχει
τουλάχιστον p/2 δείκτες δένδρου. Ο κόμβος της ρίζας έχει
τουλάχιστον δύο δείκτες δένδρου εκτός αν είναι ο μοναδικός
κόμβος του δένδρου.
6. Ένας κόμβος με q δείκτες δένδρου περιέχει q-1 κλειδιά.
7. Όλοι οι κόμβοι φύλα είναι στο ίδιο επίπεδο. Οι κόμβοι φύλα
έχουν την ίδια δομή με τους εσωτερικούς κόμβους μόνο που
οι δείκτες δένδρου έχουν τιμή null.

Μ.Χατζόπουλος 11
Κόμβος του Β-δένδρου

P1 K1 Pr1 P2 … Ki-1 Pri-1 Pi Ki Pri … Kq-1 Prq-1 Pq

Δείκτης δείκτης
Δείκτης
δεδομένων δεδομένων
δεδομένων
X
Δείκτης X
X δένδρου
Kq-1<X
Ki-1<X<Ki
X<K1

Μ.Χατζόπουλος 12

50

30 80

60 70 90 100
10 20 40

Το δένδρο τάξεως 3 που σημαίνει ότι κάθε κόμβος έχει 1 ή 2 κλειδιά


και 2 ή 3 παιδιά

Μ.Χατζόπουλος 13
50

30 80

60 70 90 100
10 20 40 45 48

Αυτό όμως δεν είναι

Μ.Χατζόπουλος 14

50

80 90 130
30

60 70 85 100 95 100 140 150


10 20 40

Ούτε αυτό είναι

Μ.Χατζόπουλος 15
50

80 90
30 48

60 70 85 100
10 20 40

Ούτε αυτό είναι Β

Μ.Χατζόπουλος 16

Εισαγωγή του κλειδιού Χ στο Β-δένδρο

• Σαρώνουμε το Β-δένδρο μέχρι που ή θα βρούμε την τιμή Χ ήθα


φθάσουμε σε ένα φύλο που θα έπρεπε να βρίσκεται η τιμή Χ.
• Αν ο κόμβος αυτός έχει έχει λιγότερα από p-1 κλειδιά τότε
προσθέτουμε το κλειδί στον κόμβο αυτό και τελείωσε η εισαγωγή.
• Αν ο κόμβος έχει ήδη p κλειδιά τότε δεν μπορεί να προστεθεί στον
κόμβο αυτό. Στην περίπτωση αυτή χωρίζουμε τα p κλειδιά
(K1<K2<K3<…<Kq)σε δύο κόμβους όπου ο πρώτος έχει τα πρώτα
q/2 ο δεύτερος τα τελευταία q/2 και το μεσαίο στοιχείο
ανεβαίνει στον κόμβο γονέα σαν διαχωριστικό.
• Αν ο κόμβος γονέας έχει χώρο τότε τελειώσαμε. Αν δεν έχει τότε
χωρίζεται με τον ίδιο τρόπο και αυτός και προχωράμε προς τη
ρίζα. Στην χειρότερη περίπτωση θα διασπασθεί και η ρίζα και θα
ανέβουμε ένα επίπεδο (θα ψηλώσει το δένδρο).

Μ.Χατζόπουλος 17
50

30 80

60 70 90 100
10 20 40

Το δένδρο τάξεως 3 που σημαίνει ότι κάθε κόμβος έχει 1 ή 2 κλειδιά


και 2 ή 3 παιδιά

Μ.Χατζόπουλος 18

Εισαγωγή του 75

50

30 70 80

60 75 90 100
10 20 40

Μ.Χατζόπουλος 19
Εισαγωγή του 55

50

30 70 80

55 60 75 90 100
10 20 40

Μ.Χατζόπουλος 20

Εισαγωγή του 57

50 70

30 57 80

75 90 100
10 20 40 55 60

70
57 57 70 80
55 57 60
57 80

55 60

Μ.Χατζόπουλος 21
Εισαγωγή του 95

50 70

30 57 80 95

40 55 60 75 90 100
10 20

Μ.Χατζόπουλος 22

Εισαγωγή του 85

50 70

30 57 80 95

40 55 60 75 85 90 100
10 20

Μ.Χατζόπουλος 23
Εισαγωγή του 87 70

50 87

30 57 80 95

10 20 40 55 60 75 85 90 100

87 50 70 87
85 87 90 87 80 87 95
70
85 90 80 95
50 87
Μ.Χατζόπουλος 24

Διαγραφή ενός κλειδιού από ένα τερματικό κόμβο

• Εντοπίζεται ο κόμβος. Αν με την διαγραφή το πλήθος των


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

Μ.Χατζόπουλος 25
Έστω το Β-δένδρο τάξεως 5 (δηλαδή από 2 μέχρι 4 κλειδιά σε κάθε
κόμβο εκτός της ρίζας)

90

120 160 190 220


30 60

10 20 40 50 70 75 80 100 110 130 140 150 170 180 200 210 230 240 250

Μ.Χατζόπουλος 26

Διαγραφή του 250


90

120 160 190 220


30 60

10 20 40 50 70 75 80 100 110 130 140 150 170 180 200 210 230 240

Μ.Χατζόπουλος 27
Διαγραφή του 50
90

120 160 190 220


30 70

10 20 40 60 75 80 100 110 130 140 150 170 180 200 210 230 240

Έχει να δανείσει ο διπλανός επομένως πάει το 60 στη θέση του 50 και το


70 αναβαίνει στον γονέα.

Μ.Χατζόπουλος 28

Διαγραφή του 20
120

160 190 220


70 90

10 30 40 60 75 80 100 110 130 140 150 170 180 200 210 230 240

Τώρα όμως αυτός έχει λιγότερα και δανείζεται


από τον αδελφό του
70

10 30 40 60 75 80

Μ.Χατζόπουλος 29
Διαγραφή από εσωτερικό κόμβο

Στην περίπτωση αυτή πρέπει να βρεθεί το αμέσως


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

Μ.Χατζόπουλος 30

Διαγραφή του 160


120

150 190 220


70 90

10 30 40 60 75 80 100 110 130 140 170 180 200 210 230 240

Στην περίπτωση αυτή πάει στη θέση του το


αμέσως προηγούμενο δηλαδή το 150.

Μ.Χατζόπουλος 31
Διαγραφή του 90
120

150 190 220


60 80

10 30 40 70 75 100 110 130 140 170 180 200 210 230 240

Στην περίπτωση αυτή πάει στη θέση του το


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

Μ.Χατζόπουλος 32

Διαγραφή του 120


150

190 220
60 110

10 30 40 70 75 80 100 130 140 170 180 200 210 230 240

Στην περίπτωση αυτή είναι σαν να διαγράφουμε


το 110 και ακολουθούμε την διαδικασία
διαγραφής από φύλο

Μ.Χατζόπουλος 33
Διαγραφή του 190

60 110 150 220

10 30 40 70 75 80 100 130 140 170 180 200 210 230 240

Στην περίπτωση αυτή το 180 αναβαίνει στο 220


γονέα. Ο κόμβος με μόνο το φύλο 170 έχει
πρόβλημα. Θα ενωθεί με τον αδελφό
170 180 200 210 230 240

Ο κόμβος με το 220 έχει πρόβλημα και θα συνενωθεί με τον αδελφό


και τη ρίζα μειώνοντας το ύψος κατά 1

Μ.Χατζόπουλος 34

Θα προσπαθήσουμε να βρούμε το μέγιστο ύψος ενός Β-δένδρου ύψος


ενός δένδρου με τάξεως m για Ν στοιχεία.

1+2(m/2-1)+2 (m/2-1)(m/2) +…2 (m/2-1)(m/2)h-2


=2 (m/2)h-1-1

h-1= log m/2 ((N+1)/2)

Επομένως h≤ log m/2 ((N+1)/2)

Μ.Χατζόπουλος 35
Όμως έχουμε h≥logm(N+1)

Άρα logm(N+1)≤h≤ log m/2 ((N+1)/2)

Μ.Χατζόπουλος 36

Μήκος κλειδιού V=9 byte


Μέγεθος block B=512byte
Μήκος δείκτη υποδένδρου P=6byte
Μήκος δείκτη εγγραφής Pr=7byte
Για την τάξη p του δένδρου πρέπει να ισχύει

(p*P)+((p-1)*(Pr+V))≤B

Δηλαδή στην περίπτωση μας


(p*6)+((p-1)*(7+9)) ≤ 512
22*p ≤ 521
p=23

Μ.Χατζόπουλος 37
Με αυτά τα δεδομένα για ένα αρχείο με 1000000 εγγραφές
το ύψος του δένδρου είναι 2 ή 3.

Ή ακόμη 94143178827
3<=h<=8

Μ.Χατζόπουλος 38

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

Μ.Χατζόπουλος 39
Ορισμός Β+δένδρου
(Εσωτερικοί κόμβοι)

1. Κάθε εσωτερικός κόμβος είναι της μορφής


<P1,K1,P2,K2,…,Kq-1,Pq> q≤p και κάθε Pi είναι δείκτης δένδρου
2. Σε κάθε εσωτερικό κόμβο K1<K2<…<Kq-1.
3. Κάθε εσωτερικός κόμβος έχει το πολύ p δείκτες δένδρου.
4. Κάθε εσωτερικός κόμβος εκτός από τη ρίζα έχει το λιγότερο
p/2 δείκτες δένδρου. Ο κόμβος της ρίζας έχει τουλάχιστον δυο
δείκτες δένδρου.
5. Ένας εσωτερικός κόμβος με q δείκτες, q≤p έχει q-1 τιμές πεδίου
αναζήτησης

Μ.Χατζόπουλος 40

Ορισμός Β+δένδρου
(Κόμβοι φύλα)

1. Κάθε κόμβος φύλο είναι της μορφής:


<<K1,Pr1>,<K2,Pr2>,…,<kq-1,Prq-1>,Pnext> q≤p κάθε Pri είναι δείκτης
δεδομένων και το Pnext δείχνει τον επόμενο κόμβο φύλο του
Β+δένδρου.
2. Σε κάθε κόμβο K1<K2<…<Kq-1, q≤p.
3. Κάθε Pri είναι δείκτης δεδομένων που δείχνει την εγγραφή της
οποίας η τιμή του πεδίου του ευρετηρίου είναι Ki.
4. Κάθε κόμβος φύλο έχει το λιγότερο p/2 τιμές.
5. Όλοι οι κόμβοι φύλα είναι στο ίδιο επίπεδο.

Μ.Χατζόπουλος 41
Καταχωρήσεις ευρετηρίου

Δεδομένα ή δείκτες στα δεδομένα

Μ.Χατζόπουλος 42

Δομή εσωτερικού κόμβου

P1 K1 … Ki-1 Pi Ki … Kq-1 Pq

δείκτης δένδρου

Ki-1 ≤<X ≤ Ki Kq-1<X


X≤K1

Μ.Χατζόπουλος 43
Δομή κόμβου φύλου

K1 Pr1 K2 Pr2 … Ki Pri … Kq-1 Prq-1 Pnext

δείκτης δείκτης στον


δεδομένων επόμενο κόμβο φύλο

Μ.Χατζόπουλος 44

13 17 24 30

2 3 5 7 14 16 19 20 22 24 27 29 33 34 38 39

Μ.Χατζόπουλος 45
Υπολογισμός της τάξης p του Β+δένδρου

Μήκος κλειδιού V=9 byte


Μέγεθος block B=512byte
Μήκος δείκτη υποδένδρου P=6byte
Μήκος δείκτη εγγραφής Pr=7byte
Για την τάξη p του δένδρου πρέπει να ισχύει

(p*P)+((p-1)*V)≤B

Δηλαδή στην περίπτωση μας


(p*6)+((p-1)*9 ≤ 512
15*p ≤ 521
P=34

Μ.Χατζόπουλος 46

Ο κόμβος φύλο μπορεί να είναι άλλης τάξης

Θα πρέπει να ισχύει:
(pleaf*(Pr+V))+P ≤B
(pleaf*(7+9))+6 ≤512
(16pleaf) ≤506

Δηλαδή pleaf=31

Μ.Χατζόπουλος 47
Β+δένδρο βαθμού 5 έστω ότι και ο κόμβος φύλο είναι τάξεως 5

14 52 79 102

2 9 11 14 15 17 52 55 56 60 79 80 83 104 110

Μ.Χατζόπουλος 48

Εισαγωγή του 66

60

14 52 79 102

2 9 11 14 15 17 52 55 56 60 66 79 80 83 104 110

Μ.Χατζόπουλος 49
Η διαγραφή από ένα Β+δένδρο είναι αρκετά πολύπλοκη
γιατί έχουμε τους περιορισμούς τόσο στα φύλα όσο και
στους εσωτερικούς κόμβους να μην πέσουμε κάτω από
την επιτρεπόμενη χρήση του κόμβου.

Μ.Χατζόπουλος 50

72 83

60 63 66 79 83 102 110 115 160

Μ.Χατζόπουλος 51
Διαγραφή 102

72 83

60 63 66 79 83 110 115 160

Μ.Χατζόπουλος 52

Διαγραφή 83

63 83

60 63 66 79 110 115 160

Μ.Χατζόπουλος 53
Διαγραφή 160

63 83

60 63 66 79 110 115

Μ.Χατζόπουλος 54

Διαγραφή 79

66

60 63 66 110 115

Μ.Χατζόπουλος 55
Τα Β-δένδρα μπορούν να χρησιμοποιηθούν και σαν
δευτερεύοντα ευρετήρια (σε πεδία που δεν είναι κλειδιά).
Στην περίπτωση αυτή μπορούμε να χρησιμοποιήσουμε
μια τεχνική όμοια με αυτή της υπερχείλισης. Κάθε τιμή
στο φύλο δείχνει σε μια λίστα με τις διευθύνσεις των
εγγραφών με αυτή την τιμή.
Συνήθως όμως γίνεται μια διαφορετική υλοποίηση. Τις
διπλές τιμές τις αντιμετωπίζουμε σαν απλές τιμές και για
την ανάκτηση μιας τιμής ξεκινάμε από την πιο αριστερή
τιμή και ακολουθούμε τα φύλα και πιθανόν και τους
δείκτες επόμενου.
Επίσης μπορεί να χρησιμοποιηθεί συνδυασμός κλειδιού
διεύθυνσης. Η λύση αυτή οδηγεί σε ευρετήρια μοναδικών
τιμών.
Μ.Χατζόπουλος 56

Προθεματικά Β-δένδρα

Έχουν παρόμοια δομή με τα Β+δένδρα αλλά διαφέρει η


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

Μ.Χατζόπουλος 57
Ν

ΜΑΝΟΣ ΜΑΡΙΑ ΝΑΣΟΣ ΝΙΚΟΣ

Μ.Χατζόπουλος 58

Ομαδική Φόρτωση σε Β+-δένδρα


Ο αλγόριθμος εισαγωγής που περιγράψαμε εισάγει μια-μια τις
καταχωρήσεις σε ένα Β+-δένδρο. Αν έχουμε μια αρχική συλλογή
χωρίς ευρετήριο μπορούμε να χρησιμοποιήσουμε αυτόν τον
αλγόριθμο ο οποίος όμως δεν θα είναι αποτελεσματικός, γιατί κάθε
φορά θα διασχίζουμε το δένδρο από τη ρίζα.
Πολλά συστήματα έχουν ένα βοηθητικό πρόγραμμα ομαδικής
φόρτωσης για την δημιουργία Β+δένδρου ευρετηρίου σε μια
υπάρχουσα συλλογή εγγραφών

Μ.Χατζόπουλος 59
Βήματα ομαδικής φόρτωσης
• Ταξινόμηση των εγγραφών που θα εισαχθούν με βάση
το κλειδί αναζήτησης k (εφόσον είναι ζεύγος κλειδί,
δείκτης ταξινόμηση δεν σημαίνει ταξινόμηση του
αρχείου)
• Ξεκινάμε με μια κενή σελίδα σαν ρίζα και εισάγουμε
ένα δείκτη στην πρώτη σελίδα των ταξινομημένων
καταχωρήσεων. Η καταχώρηση είναι ελάχιστη τιμή
κλειδιού στη σελίδα και δείκτης σελίδας.
• Συνεχίζουμε μέχρι να γεμίσει η ρίζα.
• Στη συνέχεια έχουμε διάσπαση της ρίζας κοκ.

Μ.Χατζόπουλος 60

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31*

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31*

Μ.Χατζόπουλος 61
6 10

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31*

Μ.Χατζόπουλος 62

10

6 12

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31*

Μ.Χατζόπουλος 63
VSAM (Virtual Storage Access Method) αρχεία

Αποτελούν μια υλοποίηση της IBM που μοιάζει


πολύ με τα B+ δένδρα με την διαφορά ότι ο
παράγοντας ελάχιστης φόρτωσης του κόμβου
αφήνεται πιο ελεύθερος και μπορεί να
καθορισθεί από τον χρήστη (σε αντίθεση με τα
Β+δένδρα που είναι το μισό της μέγιστης
χωρητικότητας).

Μ.Χατζόπουλος 64

Δομή VSAM αρχείου


Απαρτίζεται από 4 περιοχές

• Διαστήματα Ελέγχου (control intervals) που περιέχουν


τις εγγραφές του αρχείου.
• Περιοχές ελέγχου (control areas) που περιέχουν πολλά
διαστήματα ελέγχου
• Ακολουθιακές Ομάδες (sequence sets) που είναι
κατάλογοι για κάθε περιοχή ελέγχου
• Ομάδα καταλόγων (index set) που είναι μια δενδρική
δομή με το πολύ τρία επίπεδα. Οι σελίδες του
κατώτερου επιπέδου δεικτοδοτούν προς το επίπεδο των
ακολουθιακών ομάδων

Μ.Χατζόπουλος 65
Ομάδα καταλόγων

Ακολουθιακή ομάδα Ακολουθιακή ομάδα

Διάστημα Διάστημα Διάστημα Διάστημα Διάστημα


Ελέγχου Ελέγχου Ελέγχου Ελέγχου Ελέγχου

Μ.Χατζόπουλος 66

Εγγραφή 1 Εγγραφή 2 Εγγραφή 3 Εγγραφή 4 Εγγραφή 5


Εγγραφή 6 Ελεύθερος χώρος
Ελεύθερος χώρος

RDF3 RDF2 RDF1

RDF:Record Definition Field


Πεδίο Ορισμού εγγραφής

Μ.Χατζόπουλος 67
Υποθέστε ότι η περιοχή ελέγχου χωράει 4 εγγραφές
Ομάδα
Καταλόγων 125 156 203 …

110 125 … … 142 156 …

106 110 … 115 125 …


Ακολουθιακή
Ομάδα
101 107 111 118
112 120 Διάστημα
103 109
115 121 Ελέγχου
104 110
106 125

Περιοχές Ελέγχου
Μ.Χατζόπουλος 68

Εισαγωγή 105
125 156 203 …

110 125 … … 142 156 …

104 106 110 … 115 125 …


Ακολουθιακή
Ομάδα
101 107 105 111 118
112 120 Διάστημα
103 109 106
115 121 Ελέγχου
104 110
125

Περιοχές Ελέγχου
Μ.Χατζόπουλος 69
Εισαγωγή 108
125 156 203 …

110 125 … … 142 156 …

104 106 110 … 115 125 …


Ακολουθιακή
Ομάδα
101 107 105 111 118
112 120 Διάστημα
103 109 106
115 121 Ελέγχου
104 108
110 125

Περιοχές Ελέγχου
Μ.Χατζόπουλος 70

Διαγραφή 120
125 156 203 …

110 125 … … 142 156 …

104 106 110 … 115 125 …


Ακολουθιακή
Ομάδα
101 107 105 111
112
118 Διάστημα
103 109 106
115
121 Ελέγχου
104 108 125
110

Περιοχές Ελέγχου
Μ.Χατζόπουλος 71
Τα εμπορικά συστήματα

SYBASE: χρησιμοποιεί ευρετήρια συστάδες.


Οι σελίδες αποτελούν διπλά συνδεδεμένη λίστα.
Με τις εισαγωγές γράφονται δεδομένα στην
υπερχείλιση.
ORACLE, DB2, SQL Server: Η αντιμετώπιση
των διπλών γίνεται με την προσθήκη της
διεύθυνσης της εγγραφής. Με τον τρόπο αυτό
δεν υπάρχουν διπλά.

Μ.Χατζόπουλος 72

Εμπορικά Συστήματα και Β-δένδρα

Τα DB2, Informix, SQL Server, Oracle, και SYBASE


υποστηρίζουν απλά και συστάδες ευρετήρια Β+δένδρα με κάποιες
διαφορές στην αντιμετώπιση των διαγραφών και των
δευτερευόντων πεδίων. Στην SYBASE ανάλογα με το σχήμα
συγχρονισμένης προσπέλασης που χρησιμοποιείται, η εγγραφή
διαγράφεται (με πιθανή συγχώνευση σελίδων) ή απλά
σημαδεύεται (με κάποιο σχήμα καθαρισμού του χώρου-garbage
collection).
Στην ORACLE οι διαγραφές σημαδεύονται σαν διαγραμμένες.
Για ανάκληση του ελεύθερου χώρου μπορούμε on-line να χτίσουμε
το ευρετήριο. Η INFORMIX σημαδεύει τις εγγραφές που έχουν
διαγραφεί. Το DB2 και ο SQL Server διαγράφουν εγγραφές και
συγχωνεύουν σελίδες όταν πέσουν κάτω από κάποιο όριο.
Η ORACLE σε συστάδες εγγραφές από πολλές σχέσεις. Αυτό
μπορεί να στηριχθεί σε Β+δένδρα.

Μ.Χατζόπουλος 73
Ευρετήρια σε πολλαπλά κλειδιά

Πολλές φορές οι ερωτήσεις αφορούν


περισσότερα από ένα πεδία. Μας ενδιαφέρει η
περίπτωση λογικών συζεύξεων. Δηλαδή
ερωτήσεις του τύπου:
(συνθήκη1) AND (συνθήκη2)
Όπου η συνθήκη είναι της μορφής:
Α∂c
Όπου ∂∈{=,<,>, ≤, ≥}

και το c σταθερά

Μ.Χατζόπουλος 74

Τι μπορούμε να κάνουμε

• Αν δεν υπάρχει ευρετήριο θα πρέπει να γίνει εξαντλητική


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

Μ.Χατζόπουλος 75
• Αν υπάρχει ευρετήριο και στα δύο πεδία τότε μπορούμε
να χρησιμοποιήσουμε και τα δύο ευρετήρια και η τομή
τους είναι οι εγγραφές που αναζητούμε. Εναλλακτικά
μπορούμε να χρησιμοποιήσουμε το ευρετήριο που θα
δώσει το μικρότερο σύνολο εγγραφών και στη συνέχεια
να εξετάσουμε τις εγγραφές αυτές αν πληρούν και την
άλλη συνθήκη.
• Τέλος μπορούμε να συντηρούμε ευρετήρια σε
συνδυασμό κλειδιών (σύνθετα κλειδιά).

Μ.Χατζόπουλος 76

Δικτυωτό Αρχείο
y

Μ.Χατζόπουλος 77
Μ.Χατζόπουλος 78

Λογικά έναντι φυσικών ευρετηρίων

• Θεωρήσαμε ευρετήρια με καταχωρήσεις του τύπου <k,


Pr> ή <k, P> όπου το P ή το Pr ήταν φυσική διεύθυνση
στο δίσκο. Ένα τέτοιο ευρετήριο ονομάζεται φυσικό
ευρετήριο.
• Σε αντίθεση ένα λογικό ευρετήριο έχει καταχωρήσεις
της μορφής <k, Kp> όπου κάθε καταχώρηση έχει μια
τιμή για το δευτερεύον πεδίο ευρετηριοποίησης
συνδεδεμένη με την τιμή Kp του πεδίου που
χρησιμοποιείται για την πρωτεύουσα οργάνωση του
αρχείου.

Μ.Χατζόπουλος 79
Εξωτερική Ταξινόμηση

Μ.Χατζόπουλος 1

Γιατί είναι απαραίτητη;

• Κλασσικό Πρόβλημα της Πληροφορικής


– Πολλές φορές θέλουμε να παρουσιάσουμε δεδομένα σε ταξινομημένη
μορφή
• Είναι σημαντική για την απαλοιφή διπλοτύπων
• Πράξεις στις βάσεις δεδομένων απαιτούν ταξινόμηση
• Σε πολλές οργανώσεις αρχείων αποτελεί το πρώτο βήμα στο
αρχικό φόρτωμα του αρχείου.
• Σημαντικό πρόβλημα: τα αρχεία είναι μεγάλα και εφόσον δεν
χωράνε στη μνήμη δεν μπορώ να χρησιμοποιήσω μια μέθοδο
εσωτερικής ταξινόμησης
– Θα μπορούσα να χρησιμοποιήσω εικονική μνήμη;

Μ.Χατζόπουλος Εξωτερική Ταξινόμηση 2 2


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

Ο τυπικός αλγόριθμος εξωτερικής ταξινόμησης


χρησιμοποιεί μια στρατηγική ταξινόμησης-συγχώνευσης,
που ξεκινά με την ταξινόμηση μικρών υποαρχείων –
ονομάζονται σειρές (runs)- του κυρίως αρχείου και στη
συνέχεια συγχώνευση των ταξινομημένων σειρών,
δημιουργώντας μεγαλύτερα ταξινομημένα υποαρχεία που
γίνεται με την σειρά συγχώνευση και αυτών.

Μ.Χατζόπουλος 3

3,4 6,2 9,4 8,7 5,6 3,1 2

4,9 7,8 5,6 1,3 2


3,4 2,6

2,3 4,7 1,3 2

4,6 8,9 5,6

2,3 1,2
4,4 3,5
6,7 6
8,9

1,2
2,3
3,4
4,5
6,6
7,8
Μ.Χατζόπουλος
9 4
function rmerge(X, l, m, n);
// (Xl,.. Xm) και (Xm+1,…Xn) είναι ταξινομημένα (με κλειδιά τα xi) και
// η συγχώνευση παράγει στο Ζ στις θέχσεις (Ζι,…Ζn)
{ k ← l; i ← l; j ← m+1;
while ((i<=m) && (j<=n)) {
if xi<= xj {Zk=Xi; i++}
else {Zk=Xj; j++}
k++ }
if i>m { (Zk,…Zn)←(Xj,…Xn) }
else {(Zk,…Zn)←(Xj,…Xm) }

(Xl,…Xn)←(Zl,…Zn)
}

Μ.Χατζόπουλος 5

function mpass(X, Y, n. l);


// συγχωνεύει διαδοχικά υποαρχεία μεγέθους l από το αρχείο X στο
// αρχείο Y. n είναι το πλήθος των εγγραφών του X
{ i=1;
while (i<=(n-2*l+1)) do {
rmerge(X, i, i+l-1, i+2*l-1, Y);
i=i+2*l }
if ((i+l-1)<n) {rmerge(X, i, i+l-1, n, Y) }
else ({(Yi,…Yn)←(Xj,…Xn) }
}

Μ.Χατζόπουλος 6
function msort(X, n)
declare Y(n)
{l=1; /* το μέγεθος των υποαρχείων */
while (l<n) {mpass(X,Y,n, l);
l=2*l;
mpass(Y,X,n.l);
l=2*l }
}

Μ.Χατζόπουλος 7

Φάση Ταξινόμησης

set i←1;
j←b; {το μέγεθος του αρχείου σε μπλοκ}
k←nb; {το μέγεθος του μπαφερ σε μπλοκ}
m←(j/k);
{φάση της ταξινόμησης}
while (i<=m)
do {
διάβασε τα επόμενα k μπλοκ του αρχείου στο μπαφερ ή αν απομένουν
λιγότερα από k μπλοκ διάβασε τα μπλοκ που απομένουν
ταξινόμησε τις εγγραφές στο μπαφερ και να γραφούν σαν προσωρινό
υποαρχείο;
i←i+1;
}

Μ.Χατζόπουλος 8
Φάση Συγχώνευσης
set i←1;
p←logk-1m;
j←m;
while (i<=p)
do {
n←1;
q←(j/(k-1)); {πλήθος υποαρχείων που θα γραφούν στο πέρασμα αυτό}
while (n<=q)
do {
διάβασε τα επόμενα k-1 υποαρχεία (από το προηγούμενο πέρασμα) ένα μπλοκ τη
φορά;
συνένωση και γράψιμο σαν νέο υποαρχείο;
n←n+1;
} j←q;
i←i+1;
}
Μ.Χατζόπουλος 9

INPUT 1
OUTPUT

INPUT 2

Μ.Χατζόπουλος 10
Εξωτερική ταξινόμηση

• Αν μπορούμε να έχουμε στη μνήμη περισσότερες


από 2 σελίδες μπορούμε να κάνουμε κάτι
καλύτερο
• Αν έχουμε nB σελίδες μνήμης
– Στο πέρασμα 0 ταξινομούμε nB σελίδες (θα
δημιουργηθούν b/ nB  ταξινομημένες σειρές
– Μετά σε κάθε πέρασμα θα γίνεται συγχώνευση nB-1
ταξινομημένων σειρών

INPUT 1

INPUT 2

. OUTPUT
.

INPUT Β-1

Μ.Χατζόπουλος 12
Φάση Ταξινόμησης

Έστω b το πλήθος των μπλοκ του αρχείου και έστω


ότι μπορώ να έχω στη μνήμη nB μπλοκ. Τότε οι
πρώτες ταξινομημένες σειρές που μπορώ να
δημιουργήσω είναι:

nR=(b/ nB)

Μ.Χατζόπουλος 13

Φάση της Συγχώνευσης


Κάθε φάση της συγχώνευσης απαιτεί μια ανάγνωση
και μια εγγραφή ολόκληρου του αρχείου. Επομένως το
κόστος θα εξαρτάται από το πλήθος των
συγχωνεύσεων. Αν γίνει συγχώνευση βαθμού d τότε το
πλήθος των συγχωνεύσεων θα είναι:

(logd(nR))
Και στην περίπτωση δυαδικής συγχώνευσης:

(log2(nR))

Μ.Χατζόπουλος 14
Συνολικό κόστος
Το κόστος για την δημιουργία των ταξινομημένων
σειρών θα είναι:
2*b
Για την συγχώνευση:
2*b*(logd(nR))

Επομένως συνολικά:
2*b+2*b*(logd(nR))

Μ.Χατζόπουλος 15

Πλήθος συγχωνεύσεων
b nB=3 nB=5 nB=9 nB=17 nB=129 nB=257
100 7 4 3 2 1 1
1000 10 5 4 3 2 2
10000 13 7 5 4 2 2
100000 17 9 6 5 3 3
1000000 20 10 7 5 3 3
10000000 23 12 8 6 4 3
100000000 26 14 9 7 4 4
1000000000 30 15 10 8 5 4
Μπορώ να κάνω κάτι καλλίτερο;

Από τον προηγούμενο τύπο για να έχω λιγότερες


σαρώσεις του αρχείου πρέπει να συμβεί:

1)Όσο το δυνατόν μεγαλύτερο βαθμό συνένωσης.


Όμως το d δεν μπορεί να ξεπεράσεις το nb-1. Ένα για
την έξοδο και όλα τα υπόλοιπα για συγχώνευση.

2)Όσο το δυνατόν μικρότερο nR. Δηλαδή να φτιάξω


αρχικές ταξινομημένες σειρές μεγαλύτερου μεγέθους.

Μ.Χατζόπουλος 17

Μπορώ όμως να φτιάξω αρχικές ταξινομημένες σειρές με


μέγεθος μεγαλύτερο από αυτό που χωράει η μνήμη;
Σωρός ταξινόμησης είναι ένα πλήρες δυαδικό δένδρο με την
ιδιότητα το στοιχείο της ρίζας να είναι μικρότερο από το στοιχείο
της ρίζας των υποδένδρων του και κάθε υποδένδρο έχει την
ιδιότητα να είναι σωρός ταξινόμησης

12 12
18 22 18 22

34 25 26 38 34 28 26 38

42 55 35 27 42 55 35 27
Αυτό είναι
Αυτό δεν είναι
Μ.Χατζόπουλος 18
Έστω ο πίνακας Α που έχει την ιδιότητα του σωρού ταξινόμησης από
το στοιχείο i+1 μέχρι το τέλος m

procedure pilesort(A, i, n)
{
if i<=n/2 then
{
j:=2*i; if j<n then
{if A[j+1]<A[j] then j:=j+1}
if A[i]>A[j] then {A[i]↔]A[j]; pilesort(A,j,n)}
}
else exit
}

Μ.Χατζόπουλος 19

Το πιο πρόσφατο στοιχείο της εξόδου. Αν το επόμενο που θα διαβασθεί


Είναι μεγαλύτερο του μπορούν να πάνε στην ίδια σειρά

ΜΠΛΟΚ ΕΞΟΔΟΥ
last

m θέσεις μνήμης

ΜΠΛΟΚ ΕΙΣΟΔΟΥ

Μ.Χατζόπουλος 20
Αρχική εισαγωγή στοιχείων (δημιουργία αρχικού σωρού
ταξινόμησης

for i:=m downto m/2+1 do read(in,A[i])


for i:= m/2 downto 1 do
{
read(in,A[i]);
pilesort(A,I,m)
}

Μ.Χατζόπουλος 21

Κάθε φορά κατασκευάζονται δύο σειρές, η τρέχουσα και


η επόμενη
last:=A[1]; write(out, last);
k:=m; no_of_runs:=1;
while not eof(in) do{
read(in, A[1]); if A[1]>=last then pilesort(A,1,k)
else{ if k>1 then{A[1]↔A[k];
pilesort(A,1,k-1);
pilesort(A, k, m);
k:=k-1}
else {write(out, end_of_run);
no_of_runs:= no_of_runs+1;
k:=m; pilesort(A, 1,k)}
}
write(out,A[1])
}
Μ.Χατζόπουλος 22
if k<m then {
for i:=k downto 2 do{write(out, A[1]); A[1]:=A[i];
pilesort(A, 1, i-1);
A[i]:=A[m-k+i]; pilesort(A, i, m-k+i-1]
};
write(out, end_of_run); k:=m-k;
no_of_runs:= no_of_runs+1;
}
else {for i:=k downto 1 do{write(out, A[1]); A[1]:=A[i];
pilesort(A, 1, i-1); }

Μ.Χατζόπουλος 23

Τελευταίο 24
24

Έξοδος
24

28
26

30 40
35 32

42
52 37 44
38 42 36 38

41 12 18 49 Είσοδος
Μ.Χατζόπουλος 24
Τελευταίο 24 26
26

Έξοδος
26

28
32

30 40
35 36

42
52 37 44
38 42 41 38

12 18 49 Είσοδος
Μ.Χατζόπουλος 25

Τελευταίο 24 26 28
28

Έξοδος
28

30
32

37 40
35 36

12
52 42 44
38 42 41 38

18 49 Είσοδος
Μ.Χατζόπουλος 26
Τελευταίο 24 26 28 30
30

Έξοδος
30

37
32

42 40
35 36

12
52 44 18
38 42 41 38

49 Είσοδος
Μ.Χατζόπουλος 27

Τελευταίο 32
32

Έξοδος
32

37
35

42 40
38 36

12
52 44 18
49 42 41 38

22 27 55 29 Είσοδος
Μ.Χατζόπουλος 28
Τελευταίο 32 35
35

Έξοδος
35

37
36

42 40
38 38

12
52 22 18
49 42 41 44

27 55 29 Είσοδος
Μ.Χατζόπουλος 29

Τελευταίο 32 35 36
36

Έξοδος
36

37
38

42 40
42 38

12
27 22 18
49 52 41 44

55 29 Είσοδος
Μ.Χατζόπουλος 30
Τελευταίο 32 35 36 37
37

Έξοδος
37

40
38

42 55
42 38

12
27 22 18
49 52 41 44

29 Είσοδος
Μ.Χατζόπουλος 31

Τελευταίο 38
38

Έξοδος
38

40
38

42 55
42 41

12
27 22 18
49 52 44 29

35 45 19 27 Είσοδος
Μ.Χατζόπουλος 32
Τελευταίο 38 38
38

Έξοδος
38

40
42

42 55
42 44

12
27 22 18
49 52 35 29

45 19 27 Είσοδος
Μ.Χατζόπουλος 33

Τελευταίο 38 38 40
40

Έξοδος
40

42
42

45 55
42 44

12
27 22 18
49 52 35 29

19 27 Είσοδος
Μ.Χατζόπουλος 34
Τελευταίο 38 38 40 42
42

Έξοδος
42

42
42

45 55
49 44

12
27 22 18
52 19 35 29

27 Είσοδος
Μ.Χατζόπουλος 35

Τελευταίο 42
42

Έξοδος
42

42
44

45 55
49 52

12
27 22 18
27 19 35 29

38 68 41 32 Είσοδος
Μ.Χατζόπουλος 36
Τελευταίο 42 42
42

Έξοδος
42

45
44

55 12
49 52

38
27 22 18
27 19 35 29

68 41 32 Είσοδος
Μ.Χατζόπουλος 37

Τελευταίο 42 42 44
44

Έξοδος
44

45
49

55 12
68 52

38
27 22 18
27 19 35 29

41 32 Είσοδος
Μ.Χατζόπουλος 38
Τελευταίο 42 42 44 45
45

Έξοδος
45

55
49

22 12
68 52

38
27 41 18
27 19 35 29

32 Είσοδος
Μ.Χατζόπουλος 39

Τελευταίο 49
49

Έξοδος
49

55
52

22 12
68 29

38
27 41 18
27 19 35 32

54 8 39 Είσοδος
Μ.Χατζόπουλος 40
Τελευταίο 49 52
52

Έξοδος
52

55
54

22 12
68 29

38
27 41 18
27 19 35 32

8 39 Είσοδος
Μ.Χατζόπουλος 41

Τελευταίο 49 52 54
54

Έξοδος
54

55
68

22 12
8 29

38
27 41 18
27 19 35 32

39 Είσοδος
Μ.Χατζόπουλος 42
Τελευταίο 49 52 54 55
55

Έξοδος
55

12
68

22 18
8 29

38
27 41 39
27 19 35 32

59 95 34 57 Είσοδος
Μ.Χατζόπουλος 43

Τελευταίο 59
59

Έξοδος
59

12
68

22 18
8 29

38
27 41 37
27 19 35 32

95 34 57 Είσοδος
Μ.Χατζόπουλος 44
Τελευταίο 59 68
68

Έξοδος
68

12
95

22 18
8 29

38
27 41 37
27 19 35 32

34 57 Είσοδος
Μ.Χατζόπουλος 45

Τελευταίο 59 68 95
95

Έξοδος
95

12
8

22 18
19 29

38
27 41 37
27 34 35 32

57 Είσοδος
Μ.Χατζόπουλος 46
Τελευταίο 59 68 95
95

Έξοδος
8

12
19

22 18
27 29

38
27 41 37
57 34 35 32

57 Είσοδος
Μ.Χατζόπουλος 47

Τελευταίο 59 68 95
95

Τώρα αρχίζει νέα σειρά


Έξοδος
8

12
19

22 18
27 29

38
27 41 37
57 34 35 32

14 7 36 56 Είσοδος
Μ.Χατζόπουλος 48
Τελευταίο 8
12

Έξοδος
12

14
19

22 18
27 29

38
27 41 37
57 34 35 32

7 36 56 Είσοδος
Μ.Χατζόπουλος 49

Τελευταίο 8 12
14

Έξοδος
14

18
19

22 37
27 29

7
27 41 38
57 34 35 32

36 56 Είσοδος
Μ.Χατζόπουλος 50
• Όσο λιγότερες ταξινομημένες σειρές υπάρχουν τόσο είναι
λιγότερες οι επαναλήψεις
• Για λιγότερες ταξινομημένες σειρές χρειαζόμαστε μεγάλες
αρχικές ταξινομημένες σειρές
• Αποδεικνύεται ότι κατά μέσο όρο ο παραπάνω αλγόριθμος
φτιάχνει αρχικές σειρές μεγέθους 2* nB
• Άλλες τεχνικές για ελαχιστοποίηση του Ι/Ο χρόνου είναι η
χρήση διπλού μπαφερ (που βέβαια μειώνει τον διαθέσιμο
χώρο)

INPUT 1
INPUT 1’

INPUT 2
INPUT 2
OUTPUT
. OUTPUT’
.
INPUT K
INPUT K’

Μ.Χατζόπουλος 52
Η ταξινόμηση αρχείων γενικά κοστίζει

• Παλαιό πρόβλημα των απανταχού μηχανογράφων


– Μια λύση η χρήση παραλληλίας
• Σε δοκιμές 1Μ εγγραφών μεγέθους 100 bytes
– Τυπικά ΣΔΒΔ 15 λεπτά
– 3,5 δευτερόλεπτα με 12 CPUs SGI μηχανή, 96 δίσκους, 2GB ram
• Νέοι τύποι δοκιμών
– Πόσες εγγραφές μπορώ να ταξινομήσω στη μονάδα χρόνου
– Πόσες εγγραφές μπορώ να ταξινομήσω με βάση το κόστος

Χρήση των Β+ δένδρων για ταξινόμηση


• Το αρχείο που θέλουμε να ταξινομήσουμε έχει ευρετήριο
Β+ δένδρου στο πεδίο ταξινόμησης.
• Μπορούμε να ανακτήσουμε τις εγγραφές με σαρώνοντας
στη σειρά τους κόμβους φύλλα
• Είναι καλή ιδέα?
• Θα θεωρήσουμε δύο περιπτώσεις:
– Το Β+ δένδρο είναι συστάδα (καλή ιδέα)
– Το Β+ δένδρο δεν είναι συστάδα (μπορεί να είναι πολύ κακή ιδέα)
Δομή Ευρετηρίου

Καταχωρήσεις
Ευρετηρίου

Εγγραφές Αρχείου σε συστάδα

Δομή Ευρετηρίου

Καταχωρήσεις
Ευρετηρίου

Εγγραφές Αρχείου δενδρικό ευρετήριο χωρίς συστάδα


Κεφάλαιο 5
Το Σχεσιακό Μοντέλο Δεδομένων
και Περιορισμοί Σχεσιακών Βάσεων
Δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση

Θα μιλήσουμε για
 Έννοιες του Σχεσιακού Μοντέλου
 Περιορισμοί του Σχεσιακού Μοντέλου και
Σχήματα Σχεσιακών Βάσεων Δεδομένων
 Πράξεις Ενημέρωσης και Αντιμετώπιση της
Παραβίασης των Περιορισμών

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 3
Έννοιες του Σχεσιακού Μοντέλου
 Το σχεσιακό μοντέλο δεδομένων βασίζεται στην έννοια
της Σχέσης
 Το ισχυρό σημείο της σχεσιακής προσέγγισης στη
διαχείριση δεδομένων προέρχεται από το τυπικό υπόβαθρο
που υποστηρίζει η θεωρία των σχέσεων
 Θα παρουσιάσουμε τα θεμελιώδη στοιχεία του τυπικού
σχεσιακού μοντέλου.
 Στην πράξη, υπάρχει τυποποιημένο μοντέλο που
βασίζεται στην SQL – αυτό περιγράφεται στα Κεφάλαια 8
και 9
 Σημείωση: Υπάρχουν κάποιες σημαντικές διαφορές
μεταξύ του τυπικού μοντέλου και του πρακτικού μοντέλου,
όπως θα διαπιστώσουμε
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση
Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 4

Έννοιες του Σχεσιακού Μοντέλου


 Μια σχέση είναι μια μαθηματική έννοια που
βασίζεται στη θεωρία των συνόλων
 Το μοντέλο προτάθηκε αρχικά από τον Dr. E.F.
Codd του IBM Research το 1970 στην παρακάτω
εργασία:
 "A Relational Model for Large Shared Data
Banks," Communications of the ACM, June 1970
 Η παραπάνω εργασία προκάλεσε επανάσταση
στον χώρο της διαχείρισης δεδομένων και ο Dr.
Codd κέρδισε το πολυπόθητο ACM Turing Award
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση
Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 5
Άτυποι ορισμοί

 Άτυπα, μια σχέση μοιάζει με ένα πίνακα τιμών.

 Τυπικά μια σχέση περιέχει ένα σύνολο γραμμών.

 Τα στοιχειώδη δεδομένα σε κάθε γραμμή παριστάνουν διάφορα


γεγονότα που αντιστοιχούν σε μια οντότητα του πραγματικού
κόσμου ή σε μια συσχέτιση
 Στο τυπικό μοντέλο, οι γραμμές ονομάζονται πλειάδες

 Κάθε στήλη έχει μια επικεφαλίδα στήλης που δίνει μια ένδειξη της
σημασίας των δεδομένων στη στήλη
 Στο τυπικό μοντέλο, η επικεφαλίδα της στήλης ονομάζεται όνομα του
γνωρίσματος (ή απλά γνώρισμα)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 6

Παράδειγμα μιας σχέσης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 7
Άτυποι Ορισμοί
 Κλειδί μιας Σχέσης:
 Κέθε γραμμή έχει μια τιμή ενός δεδομένου (ή
συνόλου δεδομένων) που προσδιορίζει μοναδικά
αυτή τη γραμμή στον πίνακα
 Ονομάζεται το κλειδί
 Στον πίνακα ΦΟΙΤΗΤΗΣ, το ΑρΤαυτ είναι το κλειδί
 Μερικές φορές σαν κλειδιά εμφανίζονται ο αριθμός
γραμμής ή συνεχόμενοι αριθμοί για το
προσδιορισμό των κλειδιών ενός πίνακα.
 Ονομάζεται τεχνητό κλειδί ή υποκατάστατο κλειδί

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 8

Τυπικοί Ορισμοί - Σχήμα


 Το Σχήμα (ή η περιγραφή) μιας Σχέσης:
 Συμβολίζεται με R(A1, A2, .....An)
 R είναι το όνομα της σχέσης
 Τα γνωρίσματα της σχέσης είναι A1, A2, ..., An
 Παράδειγμα:
ΠΕΛΑΤΗΣ (Κωδ_Πελ, Ονομα_Πελ, Διευθυνση, ΑρΤηλ)
 Το όνομα ης σχέσης είναι ΠΕΛΑΤΗΣ
 Ορίζεται με 4 γνωρίσματα: Κωδ_Πελ, Ονομα_Πελ,
Διευθυνση, ΑρΤηλ
 Κάθε γνώρισμα έχει ένα πεδίο ορισμού ή ένα σύνολο
επιτρεπόμενων τιμών.
 Για παράδειγμα, το πεδίο ορισμού του Κωδ_Πελ είναι οι
εξαψήφιοι ακέραιοι.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 9
Τυπικοί Ορισμοί - Πλειάδα
 Μια πλειάδα είναι ένα διατεταγμένο σύνολο τιμών
(περικλείονται σε γωνιακές παρενθέσεις ‘< … >’)
 Κάθε τιμή προέρχεται από ένα κατάλληλο πεδίο ορισμού.
 Μια γραμμή στη σχέση ΠΕΛΑΤΗΣ είναι μια πλειάδα που
αποτελείται από τέσσερις τιμές, για παράδειγμα:
 <632895, "John Smith", "101 Main St. Atlanta, GA 30332",
"(404) 894-2000">
 Ονομάζεται τετράδα γιατί έχει 4 τιμές
 Μια πλειάδα (γραμμή) στη σχέση ΠΕΛΑΤΗΣ.
 Μια σχέση είναι ένα σύνολο από τέτοιες πλειάδες
(γραμμές)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 10

Τυπικοί Ορισμοί – Πεδίο Ορισμού


 Ένα πεδίο ορισμού έχει ένα λογικό ορισμό:
 Παράδειγμα: “Aριθμοί_τηλεφώνων_HΠA” το σύνολο των 10ψηφιων
αριθμών τηλεφώνου που ισχύουν στις Hνωμένες Πολιτείες.
 Ένα πεδίο ορισμού έχει επίσης ένα τύπο δεδομένων ή μια μορφοποίηση που
ορίζεται για αυτό.
 Το Aριθμοί_τηλεφώνων_HΠA μπορεί να έχει τη μορφή: (ddd)ddd-
dddd όπου κάθε d είναι ένα δεκαδικό ψηφίο.
 Οι ημερομηνίες έχουν διαφορετικές μορφοποιήσεις όπως έτος,
μήνας, ημέρα με μορφή όπως η yyyy-mm-dd, ή σαν dd mm,yyyy κλπ.

 Το όνομα του γνωρίσματος καθορίζει το ρόλο που παίζει το πεδίο ορισμού σε


μια σχέση:
 Χρησιμοποιείται για ερμηνεία της σημασίας των δεδομένων που
αντιστοιχούν στα δεδομένα του αντίστοιχου γνωρίσματος
 Παράδειγμα: Τ πεδίο Date μπορεί να χρησιμοποιηθεί για τον ορισμό
δύο γνωρισμάτων όπως “Ημερομηνια_Χρεωσης” και
“Ημερομηνία_Εξόφλησης” με διαφορετική σημασία

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 11
Τυπικοί Ορισμοί - Κατάσταση
 Η κατάσταση της σχέσης είναι ένα υποσύνολο του
Καρτεσιανού γινομένου των πεδίων ορισμού των
γνωρισμάτων της.
 Κάθε πεδίο ορισμού περιλαμβάνει το σύνολο όλων των
πιθανών τιμών που μπορεί να πάρει το γνώρισμα.
 Παράδειγμα: το γνώρισμα Ονομα_Πελ ορίζεται στο πεδίο
ορισμού των συμβολοσειρών με μέγιστο μήκος 25
 dom(Ονομα_Πελ) είναι varchar(25)
 Ο ρόλος που παίζουν αυτές οι συμβολοσειρές στη σχέση
ΠΕΛΑΤΗ αυτός του όνομα ενός πελάτη.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 12

Τυπικοί Ορισμοί - Σύνοψη


 Τυπικά,
 Δοθείσης της R(A1, A2, .........., An)
 r(R) ⊂ dom (A1) X dom (A2) X ....X dom(An)
 R(A1, A2, …, An) είναι το σχήμα της σχέσης
 R είναι το όνομα της σχέσης
 A1, A2, …, An είναι τα γνωρίσματα της σχέσης
 r(R): μια συγκεκριμένη κατάσταση (ή «τιμή" ή
“πληθυσμός”) της σχέσης R – είναι ένα σύνολο πλειάδων
(γραμμών)
 r(R) = {t1, t2, …, tn} όπου κάθε ti είναι μια n-πλειάδα
 ti = <v1, v2, …, vn> όπου κάθε vj στοιχείο του dom(Aj)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 13
Τυπικοί Ορισμοί - Παράδειγμα
 Έστω το R(A1, A2) είναι ένα σχήμα σχέσης:
 Έστω dom(A1) = {0,1}
 Έστω dom(A2) = {a,b,c}
 Τότε το: dom(A1) X dom(A2) είναι όλοι οι πιθανοί
συνδυασμοί:
{<0,a> , <0,b> , <0,c>, <1,a>, <1,b>, <1,c> }

 Η κατάσταση της σχέσης r(R) ⊂ dom(A1) X dom(A2)


 Για παράδειγμα: r(R) could be {<0,a> , <0,b> , <1,c> }
 Αυτή είναι μια πιθανή κατάσταση (ή “πληθυσμός” ή
“έκταση”) r της σχέσης R, που ορίζεται στα A1 και A2.
 Έχει τρεις 2-πλειάδες: <0,a> , <0,b> , <1,c>

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 14

Σύνοψη Ορισμών
Μη τυπικοί όροι Τυπικοί όροι
Πίνακας Σχέση
Επικεφαλίδα Σχέσης Γνώρισμα
Όλες οι πιθανές τιμές Πεδίο ορισμού
στήλης
Γραμμή Πλειάδα

Ορισμός Πίνακα Σχήμα μιας Σχέσης


Φορτωμένος Πίνακας Κατάσταση Σχέσης
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση
Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 15
Παράδειγμα – Μια σχέση ΦΟΙΤΗΤΗΣ

Όνομα Σχέσης Γνωρίσματα

ΦΟΙΤΗΤΗΣ

Πλειάδες

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 16

Χαρακτηριστικά των σχέσεων


 Διάταξη των πλειάδων σε μια σχέση r(R):
 Οι πλειάδες δεν θεωρούνται διατεταγμένες,
παρότι εμφανίζονται να είναι στη μορφή του
πίνακα.
 Διάταξη των γνωρισμάτων σε ένα σχήμα σχέσης
R (και των τιμών μέσα σε κάθε πλειάδα):
 Θα θεωρήσουμε ότι τα γνωρίσματα στην R(A1,
A2, ..., An) και τις τιμές στην t=<v1, v2, ..., vn>
να είναι διατεταγμένες.
 (Ωστόσο, ένας πιο γενικός εναλλακτικός ορισμός
της σχέσης δεν απαιτεί αυτή τη διάταξη).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 17
Ίδια κατάσταση όπως στην προηγούμενη εικόνα
(αλλά με διαφορετική διάταξη των πλειάδων)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 18

Χαρακτηριστικά των Σχέσεων


 Οι τιμές σε μια πλειάδα:
 Όλες οι τιμές θεωρούνται ατομικές (αδιαίρετες).
 Κάθε τιμή σε μια πλειάδα πρέπει να είναι από το πεδίο
ορισμού του γνωρίσματος για τη στήλη αυτή
 Αν η πλειάδα t = <v1, v2, …, vn> είναι μια πλειάδα (γραμμή)
στην κατάσταση σχέσης r της R(A1, A2, …, An)
 Τότε κάθε vi πρέπει να είναι μια τιμή από το dom(Ai)

 Μια ειδική τιμή null χρησιμοποιείται για την αναπαράσταση


τιμών που δεν είναι γνωστές ή δεν ισχύουν σε κάποιες
πλειάδες.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 19
Χαρακτηριστικά των Σχέσεων
 Συμβολισμός:
 Αναφερόμαστε στις συνιστώσες τιμές μιας
πλειάδας t με:
 t[Ai] ή t.Ai
 Αυτή είναι η τιμή vi του γνωρίσματος Ai για την
πλειάδα t
 Παρόμοια το, t[Au, Av, ..., Aw] αναφέρεται στην
υποπλειάδα της t που περιέχει τις τιμές των
γνωρισμάτων Au, Av, ..., Aw, αντίστοιχα της t

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 20

Σχεσιακοί Περιορισμοί Ακεραιότητας


 Οι περιορισμοί είναι συνθήκες που πρέπει να ισχύουν σε
όλες τις έγκυρες καταστάσεις της σχέσης.
 Υπάρχουν τρεις βασικοί τύποι περιορισμών στο σχεσιακό
μοντέλο:
 Περιορισμοί κλειδιού
 Περιορισμοί Ακεραιότητας Οντότητας
 Περιορισμοί Αναφορικής Ακεραιότητας
 Ένας άλλος έμμεσος περιορισμός είναι ο περιορισμός
πεδίου ορισμού
 Κάθε τιμή σε μια πλειάδα πρέπει να ανήκει στο πεδίο
ορισμού των γνωρισμάτων της (ή μπορεί να είναι null, αν
επιτρέπεται για το γνώρισμα αυτό)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 21
Περιορισμοί Κλειδιού
 Υπερκλειδί της R:
 Είναι ένα σύνολο γνωρισμάτων SK της R με την παρακάτω
συνθήκη:
 Δεν υπάρχουν δυο πλειάδες σε οποιαδήποτε κατάσταση σχέσης r(R)
που να έχουν την ίδια τιμή SK
 Δηλαδή, για οποιεσδήποτε διακριτές πλειάδες t1 και t2 στην r(R),
t1[SK] ≠ t2[SK]
 Η συνθήκη αυτή πρέπει να ισχύσει σε κάθε έγκυρη κατάσταση r(R)
 Κλειδί της R:
 Ένα “ελάχιστο" υπερκλειδί

 Δηλαδή, ένα κλειδί είναι ένα υπερκλειδί K έτσι που η αποκοπή


οποιουδήποτε γνωρίσματος από το K έχει σαν αποτέλεσμα ένα
σύνολο γνωρισμάτων που δεν είναι υπερκλειδί (δεν έχει την
ιδιότητα της μοναδικότητας του υπερκλειδιού)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 22

Περιορισμοί Κλειδιού (συνέχεια)


 ΠΑράδειγμα: Έστω το σχήμα σχέσης ΑΥΤΟΚΙΝΗΤΟ:
 ΑΥΤΟΚΙΝΗΤΟ(ΑρΚυκλοφοριας ,ΑρΠλαισιου, Κατασκευαστης,
Μοντελο, Ετος)
 Η ΑΥΤΟΚΙΝΗΤΟ έχει δύο κλειδιά:

 Key1 = {ΑρΚυκλοφοριας}
 Key2 = {ΑρΠλαισιου}
 Και τα δύο είναι υπερκλειδιά της ΑΥΤΟΚΙΝΗΤΟ
 Το {ΑρΠλαισιου, Κατασκευαστής} είναι υπερκλειδί αλλά δεν είναι
ένα κλειδί.
 Γενικά:
 Κάθε κλειδί είναι ένα υπερκλειδί (αλλά δεν ισχύει το αντίστροφο)

 Κάθε σύνολο γνωρισμάτων που περιλαμβάνει ένα κλειδί είναι ένα


υπερκλειδί
 Ένα ελάχιστο είναι και κλειδί

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 23
Περιορισμοί Κλειδιού (συνέχεια)
 Αν μια σχέση έχει πολλά υποψήφια κλειδιά, επιλέγεται αυθαίρετα
ένα σαν πρωτεύον κλειδί.
 Τα γνωρίσματα του πρωτεύοντος κλειδιού είναι υπογραμμισμένα.

 Παράδειγμα: Έστω το σχήμα σχέσης ΑΥΤΟΚΙΝΗΤΟ :


 ΑΥΤΟΚΙΝΗΤΟ(ΑρΚυκλοφοριας ,ΑρΠλαισιου, Κατασκευαστης,
Μοντελο, Ετος)
 Επιλέγουμε το ΑρΠλαισιου σαν πρωτεύον κλειδί

 Η τιμή του πρωτεύοντος κλειδιού χρησιμοποιείται για να


προσδιορίζεται μοναδικά identify κάθε πλειάδα της σχέσης
 Δίνει μια ταυτότητα στην πλειάδα

 Χρησιμοποιείται επίσης για αναφορά στην πλειάδα από άλλη πλειάδα


 Γενικός κανόνας: Επιλέξτε σαν πρωτεύον κλειδί το μικρότερο από
τα υποψήφια κλειδιά (σε σχέση με το μέγεθος)
 Δεν εφαρμόζεται πάντα – η επιλογή μερικές φορές είναι
υποκειμενική

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 24

Ο πίνακας ΑΥΤΟΚΙΝΗΤΟ με δύο υποψήφια κλειδιά –


σαν πρωτεύον έχει επιλεγεί το ΑριθΚυκλοφοριας

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 25
Σχεσιακό Σχήμα Βάσης Δεδομένων
 Σχεσαικό σχήμα βάσης δεδομένων :
 Ένα σύνολο S από σχήματα σχέσεων που
ανήκουν στην ίδια βάση δεδομένων.
 S είναι το όνομα όλου του σχήματος της βάσης
δεδομένων
 S = {R1, R2, ..., Rn}
 R1, R2, …, Rn είναι τα ονόματα των ατομικών
σχημάτων σχέσεων στη βάση δεδομένων S
 Η επόμενη διαφάνεια δείχνει το σχήμα βάσης
δεδομένων ΕΤΑΡΕΙΑ με 6 σχήματα σχέσεων
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση
Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 26

Σχήμα Βάσης Δεδομένων ΕΤΑΙΡΕΙΑ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 27
Ακεραιότητα οντοτήτων
 Ακεραιότητα οντοτήτων:
 Τα γνωρίσματα του πρωτεύοντος κλειδιού PK κάθε

σχήματος σχέσης R στην S δεν μπορούν να έχουν


τιμές null σε οποιαδήποτε πλειάδα της r(R).
 Αυτό συμβαίνει επειδή οι τιμές του πρωτεύοντος κλειδιού
χρησιμοποιούνται για τον προσδιορισμό των πλειάδων.
 t[PK] ≠ null για κάθε πλειάδα t στην r(R)
 Αν το PK πολλά γνωρίσματα, δεν επιτρέπεται τιμή null σε
οποιοδήποτε από τα γνωρίσματα αυτά
 Σημείωση: Και άλλα γνωρίσματα της R μπορεί να μην
επιτρέπεται να έχουν null τιμές, αν και δεν ανήκουν στο
πρωτεύον κλειδί.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 28

Αναφορική Ακεραιότητα
 Ένας περιορισμός μεταξύ δύο σχέσεων
 Οι προηγούμενοι περιορισμοί αναφέρονται σε μια
σχέση.
 Χρησιμοποιούνται για τον προσδιορισμό μιας
συσχέτισης μεταξύ των πλειάδων δύο σχέσεων:
 Τη σχέση που αναφέρει και την σχέση που
αναφέρεται.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 29
Αναφορική Ακεραιότητα
 Οι πλειάδες στην σχέση που αναφέρει R1
έχουν γνωρίσματα FK (ονομάζονται γνωρίσματα
ξένου κλειδιού) που αναφέρουν τα γνωρίσματα
πρωτεύοντος κλειδιού PK της αναφερόμενης
σχέσης R2.
 Μια πλειάδα t1 της R1 λέμε ότι αναφέρει μια
πλειάδα t2 της R2 αν t1[FK] = t2[PK].
 Ένας αναφορικός περιορισμός ακεραιότητας
μπορεί να παριστάνεται, σε ένα σχήμα σχεσιακής
βάσης δεδομένων, σαν κατευθυνόμενο τόξο από
το R1.FK στο R2.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 30

Περιορισμός Αναφορικής
ακεραιότητας (ή ξένου κλειδιού)
 Δήλωση του περιορισμού
 Η τιμή στη στήλη (ή τις στήλες) ξένου κλειδιού FK
της σχέσης που αναφέρει R1 μπορεί να είναι
είτε:
 (1) μια υπάρχουσα τιμή πρωτεύοντος κλειδιού μιας
αντίστοιχης τιμής πρωτεύοντος κλειδιού PK στην
αναφερόμενη σχέση R2, ή
 (2) είναι null.
 Στην περίπτωση (2), το FK στην R1 δεν πρέπει
να είναι μέρος του πρωτεύοντος κλειδιού.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 31
Παρουσίαση ενός σχήματος σχεσιακής βάσης
και των περιορισμών της
 Κάθε σχήμα σχέσης μπορεί να παρασταθεί σαν μια
γραμμή ονομάτων γνωρισμάτων
 Το όνομα της σχέσης γράφεται πάνω από τα ονόματα
των γνωρισμάτων
 Το γνώρισμα (ή τα γνωρίσματα) πρωτεύοντος κλειδιού θα
υπογραμμίζονται
 Ένας περιορισμός ξένου κλειδιού (αναφορική
ακεραιότητα) παρουσιάζεται σαν κατευθυνόμενη ακμή
(τόξο) από τα γνωρίσματα ξένου κλειδιού προς τον
αναφερόμενο πίνακα
 Για σαφήνεια μπορεί να δείχνει το πρωτεύον κλειδί της
αναφερόμενης σχέσης
 Η επόμενη διαφάνεια δείχνει το διάγραμμα σχεσιακού
σχήματος ΕΤΑΙΡΕΙΑ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 32

Αναφορικοί περιορισμοί ακεραιότητας για τη βάση


δεδομένων ΕΤΑΙΡΕΙΑ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 33
Άλλοι τύποι περιορισμών
 Σημασιολογικοί περιορισμοί ακεραιότητας:
 Βασίζονται στα σημασιολογικά της εφαρμογής και δεν
μπορούν να διατυπωθούν από το μοντέλο μόνο του
 Παράδειγμα: “το μέγιστο πλήθος ωρών απασχόλησης ενός
εργαζόμενου σε όλα τα έργα μια εβδομάδα είναι 56 ώρες”
 Για την περιγραφή τους μπορεί να πρέπει να
χρησιμοποιηθεί μια γλώσσα ορισμού περιορισμών
 Η SQL-99 υποστηρίζει σκανδάλες και ASSERTIONS για
ορισμό κάποιων από αυτές

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 34

Κατάσταση φορτωμένης βάσης


δεδομένων
 Κάθε σχέση στην τρέχουσα κατάσταση θα έχει πολλές
πλειάδες
 Η κατάσταση της σχεσιακής βάσης δεδομένων είναι η
ένωση όλων των καταστάσεων σχέσεων
 Όποτε αλλάζει η βάση δεδομένων, προκύπτει μια νέα
κατάσταση
 Οι βασικές πράξεις αλλαγής μιας βάσης δεδομένων:
 INSERT εισαγωγή μιας νέας πλειάδας σε μια σχέση
 DELETE διαγραφή μιας υπάρχουσας πλειάδας από τη
σχέση
 MODIFY τροποποίηση ενός γνωρίσματος από μια
υπάρχουσα πλειάδα
 Η επόμενη διαφάνεια είναι ένα παράδειγμα κατάστασης
της βάσης δεδομένων ΕΤΑΙΡΕΙΑ
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση
Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 35
Κατάσταση για τη βάση δεδομένων ΕΤΑΙΡΕΙΑ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 36

Πράξεις ενημέρωσης σε σχέσεις


 INSERT εισαγωγή μιας πλειάδας.
 DELETE διαγραφή μιας πλειάδας.
 MODIFY τροποποίηση μιας πλειάδας.
 Οι περιορισμοί ακεραιότητας δεν πρέπει να
παραβιάζονται από τις πράξεις ενημέρωσης.
 Διαφορετικές πράξεις ενημέρωσης μπορεί να πρέπει να
ομαδοποιηθούν.
 Οι ενημερώσεις μπορεί να διαδίδονται προκαλώντας
αυτόματα άλλες ενημερώσεις. Αυτό μπορεί να είναι
απαραίτητο για διατήρηση των περιορισμών
ακεραιότητας.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 37
Πράξεις ενημέρωσης σε σχέσεις
 Σε περίπτωση παραβίασης ακεραιότητας,
μπορούν να ληφθούν διάφορα μέτρα:
 Ακύρωση της πράξης που προκαλεί την
παραβίαση (επιλογή RESTRICT ή REJECT)
 Εκτέλεση της πράξης με ενημέρωση του χρήστη
για την παραβίαση
 Ενεργοποίηση επιπλέον ενημερώσεων ώστε να
διορθωθεί η παραβίαση (επιλογή CASCADE, και
SET NULL)
 Εκτέλεση μιας ρουτίνας διόρθωσης που
προσδιορίζει ο χρήστης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 38

Πιθανές παραβιάσεις για κάθε πράξη


 Η INSERT μπορεί να παραβιάζει κάποιον από τους
περιορισμούς:
 Περιορισμός πεδίου:
 Αν η τιμή ενός γνωρίσματος της νέας πλειάδας δεν ανήκει στο
καθορισμένο πεδίο ορισμού
 Περιορισμός κλειδιού:
 Αν η τιμή ενός γνωρίσματος κλειδιού της νέας πλειάδας
υπάρχει ήδη σε μια άλλη πλειάδα της σχέσης
 Αναφορική ακεραιότητα:
 Αν η τιμή ενός ξένου κλειδιού στη νέα πλειάδα αναφέρεται σε
τιμή πρωτεύοντος κλειδιού που δεν υπάρχει στη σχέση που
γίνεται αναφορά
 Ακεραιότητα οντότητας:
 Αν η τιμή του πρωτεύοντος κλειδιού στη νέα πλειάδα είναι null

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 39
Πιθανές παραβιάσεις για κάθε πράξη
 Η DELETE μπορεί να παραβιάζει μόνο αναφορική
ακεραιότητα:
 Αν η τιμή του πρωτεύοντος κλειδιού της πλειάδας που
διαγράφεται αναφέρεται από άλλες πλειάδες της βάσης
 Μπορεί να διορθωθεί με διάφορες ενέργειες: RESTRICT,
CASCADE, SET NULL (βλ Κεφάλαιο 8 για λεπτομέρειες)
 RESTRICT επιλογή: απόρριψη της διαγραφής
 CASCADE επιλογή: διάδοση της νέας τιμής πρωτεύοντος
κλειδιού στα ξένα κλειδιά των πλειάδων που την αναφέρουν
 SET NULL επιλογή: τα ξένα κλειδιά των πλειάδων που την
αναφέρουν παίρνουν την τιμή NULL
 Κατά τη διάρκεια του σχεδιασμού της βάσης δεδομένων
πρέπει να ορισθεί πρέπει να ορισθεί μ ια από τις παραπάνω
επιλογές για κάθε περιορισμό ξένου κλειδιού.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 40

Πιθανές παραβιάσεις για κάθε πράξη


 Η UPDATE μπορεί να παραβιάσει τον περιορισμό πεδίου
ορισμού και τον περιορισμό NOT NULL σε ένα γνώρισμα
που τροποποιείται
 Οποιοσδήποτε από τους άλλους περιορισμούς μπορεί
επίσης να παραβιασθεί, ανάλογα με το γνώρισμα που
τροποποιείται:
 Τροποποίηση του πρωτεύοντος κλειδιού (PK):
 Παρόμοια με μια DELETE ακολουθούμενη από μια INSERT
 Απαιτούνται παρόμοιες επιλογές με αυτές της DELETE
 Τροποποίηση ενός ξένου κλειδιού (FK):
 Μπορεί να παραβιάσει την αναφορική ακεραιότητα
 Τροποποίηση κανονικού γνωρίσματος (ούτε PK ούτε FK):
 Μπορεί να παραβιάσει μόνο περιορισμούς πεδίου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 41
Σύνοψη
 Παρουσιάσθηκαν οι έννοιες του σχεσιακού μοντέλου
 Ορισμοί
 Χαρακτηριστικά των σχέσεων
 Εξετάσθηκαν οι περιορισμοί του σχεσιακού μοντέλου και
των σχεσιακών σχημάτων βάσεων δεδομένων
 Περιορισμοί πεδίου ορισμού
 Περιορισμοί κλειδιού
 Ακεραιότητα οντοτήτων
 Αναφορική ακεραιότητα
 Παρουσιάσθηκαν οι σχεσιακές πράξεις ενημέρωσης και η
αντιμετώπιση παραβίασης των περιορισμών

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση


Δίαυλος Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 5- 42

Κεφάλαιο 6
Σχεσιακή Άλγεβρα και Σχεσιακός
Λογισμός

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe


Γιατί θα μιλήσουμε
 Σχεσιακή Άλγεβρα
 Μοναδιαίοι Σχεσιακοί Τελεστές
 Συνολοθεωρητικές πράξεις της σχεσιακής άλγεβρας
 Δυαδικοί Σχεσιακοί Τελεστές
 Επιπλέον Σχεσιακές Πράξεις
 Παραδείγματα Ερωτήσεων Σχεσιακής Άλγεβρας
 Σχεσιακός Λογισμός
 Σχεσιακός Λογισμός Πλειάδων
 Σχεσιακός Λογισμός Πεδίων Ορισμού
 Παράδειγμα βάσης δεδομένων (ΕΤΑΙΡΕΙΑ)
 Ανασκόπηση της γλώσσας QBE

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 2

Ανασκόπηση της Σχεσιακής Άλγεβρας


 Η σχεσιακή άλγεβρα είναι το βασικό σύνολο
πράξεων για το σχεσιακό μοντέλο
 Οι πράξεις αυτές επιτρέπουν σε ένα χρήστη να
προσδιορίζει βασικά αιτήματα ανάκτησης (ή
ερωτήσεις)
 Το αποτέλεσμα μιας πράξης είναι μια νέα σχέση,
που μπορεί να έχει σχηματισθεί από μια ή
περισσότερες σχέσεις εισόδου
 Η ιδιότητα αυτή καθιστά την άλγεβρα “κλειστή”
(όλα τα αντικείμενα στη σχεσιακή άλγεβρα είναι
σχέσεις)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 3
Ανασκόπηση της Σχεσιακής Άλγεβρας
(συν.)
 Επομένως οι πράξεις της άλγεβρας παράγουν
νέες σχέσεις
 Περαιτέρω χειρισμός αυτών μπορεί να γίνει με
χρήση πράξεων της ίδιας άλγεβρας
 Μια ακολουθία πράξεων της σχεσιακής άλγεβρας
σχηματίζει μια έκφραση της σχεσιακής
άλγεβρας
 Το αποτέλεσμα μιας σχεσιακής έκφρασης είναι
επίσης σχέση η οποία παριστάνει το αποτέλεσμα
μιας ερώτησης στη βάση δεδομένων (ή ένα αίτημα
ανάκτησης)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 4

Σύντομο Ιστορικό της καταγωγής της


Άλγεβρας
 Ο Muhammad ibn Musa al-Khwarizmi (800-847 CE)
έγραψε ένα βιβλίο με τίτλο al-jabr για την αριθμητική των
μεταβλητών
 Το βιβλίο μεταφράσθηκε στα λατινικά.
 Ο τίτλος του (al-jabr) έδωσε στην άλγεβρα το όνομά της.
 Ο Al-Khwarizmi ονόμασε τις μεταβλητές “shay”
 “Shay” στα Αραβικά σημαίνει “πράγμα”.
 Στα Ισπανικά αν το “shay” το πούμε “xay” (το “x” ήταν “sh” στα
Ισπανικά).
 Με τον καιρό η λέξη αυτή συντμήθηκε σαν x.
 Από που προέρχεται η λέξη Αλγόριθμος?
 Προέρχεται από τον “al-Khwarizmi"
 Σχετική αναφορά: (http://www.pbs.org/empires/islam/innoalgebra.html)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 5
Ανασκόπηση της Σχεσιακής Άλγεβρας
 Η σχεσιακή άλγεβρα αποτελείται από διάφορες ομάδες πράξεων
 Μοναδιαίες Σχέσιακές Πράξεις
 SELECT επιλογή (σύμβολο: σ )
 PROJECT προβολή (σύμβολο: π)
 RENAME μετονομασία (σύμβολο: ρ)
 Πράξεις της Σχεσιακής Άλγεβρας από την Θεωρία Συνόλων
 ΕΝΩΣΗ ( ∪ ), ΤΟΜΗ ( ∩ ), ΔΙΑΦΟΡΑ ( – )
 ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ ( x )
 Δυαδικές Σχεσιακές Πράξεις
 JOIN συνένωση (υπάρχουν παραλλαγές της συνένωσης)
 DIVISION διαίρεση
 Επιπλέον Σχεσιακές Πράξεις
 Εξωτερικές συνενώσεις, εξωτερική ένωση
 ΣΥΝΑΘΡΟΙΣΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (Για παράδειγμα SUM, COUNT,
AVG, MIN, MAX)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 6

Σχήμα της βάσης δεδομένων ΕΤΑΙΡΕΙΑ

 Όλα τα παραδείγματα αναφέρονται στη βάση δεδομένων ΕΤΑΙΡΕΙΑ.


Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 7
Μοναδιαίες Σχεσιακές Πράξεις: ΕΠΙΛΟΓΗ
 Η πράξη της επιλογής (συμβολίζεται με σ) χρησιμοποιείται για την
επιλογή ενός υποσυνόλου πλειάδων από μια σχέση με βάση μια
συνθήκη επιλογής.
 Η συνθήκη επιλογής δρα σαν ένα φίλτρο
 Επιλέγονται μόνο οι πλειάδες που ικανοποιούν την συνθήκη
 Οι πλειάδες που ικανοποιούν την συνθήκη επιλέγονται ενώ
οι άλλες πλειάδες απορρίπτονται
 Παραδείγματα:
 Επιλογή των πλειάδων ΕΡΓΑΖΟΜΕΝΟΣ που το ΤΜΗΜΑ είναι 4:

σ ΑΡΙΘΤ = 4 (ΕΡΓΑΖΟΜΕΝΟΣ)
 Επιλογή των πλειάδων εργαζόμενος με μισθό μεγαλύτερο από
€30,000:
σ ΜΙΣΘΟΣ > 30,000 (ΕΡΓΑΖΟΜΕΝΟΣ)
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 8

Μοναδιαίες Σχεσιακές Πράξεις: ΕΠΙΛΟΓΗ

 Γενικά, η πράξη της επιλογής συμβολίζεται με σ


<συνθήκη επιλογής>(R) όπου

 Χρησιμοποιείται το σύμβολο σ για τον τελεστή επιλογή


 Η συνθήκη επιλογής είναι Boolean (λογική) έκφραση που
ορίζεται στα γνωρίσματα της σχέσης R
 Επιλέγονται οι πλειάδες που καθιστούν την συνθήκη true
 Εμφανίζονται στο αποτέλεσμα της πράξης
 Οι πλειάδες που καθιστούν την συνθήκη false δεν επιλέγονται
 Απορρίπτονται από το αποτέλεσμα της πράξης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 9
Μοναδιαίες Σχεσιακές Πράξεις:
ΕΠΙΛΟΓΗ(συν.)
 Ιδιότητες της επιλογής
 Η πράξη της επιλογής σ <συνθήκη επιλογής>(R) παράγει μια σχέση S που
έχει το ίδιο σχήμα (ίδια γνωρίσματα) με την R
 Η επιλογή σ είναι αντιμεταθετική:

 σ <συνθήκη1>(σ < συνθήκη2> (R)) = σ <συνθήκη2> (σ < συνθήκη1> (R))


 Λόγω της ιδιότητας της αντιμεταθετικότητας, μια ακολουθία από
πράξεις επιλογής μπορεί να εφαρμοσθεί με οποιαδήποτε σειρά:
 σ<συνθ1>(σ< συνθ2> (σ< συνθ3> (R)) = σ< συνθ2> (σ<συνθ3> (σ<συνθ1> ( R)))
 Μια ακολουθία από πράξεις επιλογής μπορεί να αντικατασταθεί από
μια επιλογή με μια σύζευξη όλων των συνθηκών:
 σ<συνθ1>(σ< συνθ2> (σ< συνθ3>(R)) = σ < συνθ1> AND < συνθ2> AND < συνθ3>(R)))
 Το πλήθος των πλειάδων του αποτελέσματος της επιλογής είναι
μικρότερο (ή ίσο) με το πλήθος των πλειάδων της σχέσης εισόδου
R

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 10

Τα παρακάτω αποτελέσματα επερωτήσεων


αναφέρονται σε αυτή την κατάσταση βάσης δεδομένων

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 11
Μοναδιαίες Σχεσιακές Πράξεις:
ΠΡΟΒΟΛΗ
 Η πράξη της προβολής συμβολίζεται με π
 Η πράξη αυτή διατηρεί κάποιες στήλες (γνωρίσματα) από
μια σχέση και απορρίπτει τις άλλες στήλες.
 Η προβολή δημιουργεί μια κατακόρυφη διαμέριση
 Η λίστα (γνωρίσματα) των στηλών που προσδιορίζεται
διατηρείται σε κάθε πλειάδα
 Τα άλλα γνωρίσματα σε κάθε πλειάδα απορρίπτονται
 Παράδειγμα: Για να εμφανισθεί το όνομα, το επίθετο και ο
μισθός των εργαζομένων, χρησιμοποιείται η:
πΕΠΙΘΕΤΟ, ΟΝΟΜΑ,ΜΙΣΘΟΣ(ΕΡΓΑΖΟΜΕΝΟΣ)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 12

Μοναδιαίες Σχεσιακές Πράξεις:


ΠΡΟΒΟΛΗ(συν.)

 Η γενική μορφή της πράξης προβολή είναι:


π<λίστα γνωρισμάτων>(R)
 π είναι το σύμβολο που χρησιμοποιείται ξια να παρασταθεί
η πράξη της προβολής
 <λίστα γνωρισμάτων> είναι η επιθυμητή λίστα των
γνωρισμάτων από τη σχέση R.
 Η πράξη της προβολής δεν εμφανίζει διπλότυπες
πλειάδες
 Αυτό γίνεται επειδή το αποτέλεσμα της πράξης της
προβολής πρέπει να είναι ένα σύνολο από πλειάδες
 Τα σύνολα στα μαθηματικά δεν επιτρέπουν διπλά στοιχεία.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 13
Μοναδιαίες Σχεσιακές Πράξεις:
ΠΡΟΒΟΛΗ(συν.)
 Ιδιότητες της πράξης ΠΡΟΒΟΛΗ
 Το πλήθος των πλειάδων στο αποτέλεσμα της
προβολής π<λίστα>(R) είναι πάντα μικρότερο ή ίσο
με το πλήθος των πλειάδων της R
 Αν η λίστα των γνωρισμάτων περιλαμβάνει ένα
κλειδί της R, τότε το πλήθος των πλειάδων του
αποτελέσματος της προβολής είναι ίσο to με το
πλήθος των πλειάδων της R
 Η προβολή δεν είναι αντιμεταθετική
 π <list1> (π <list2> (R) ) = π <list1> (R) αν το <list2>
περιέχει τα γνωρίσματα της <list1>

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 14

Παραδείγματα Εφαρμογής των πράξεων


ΕΠΙΛΟΓΗ και ΠΡΟΒΟΛΗ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 15
Εκφράσεις της Σχεσιακής Άλγεβρας
 Μπορεί να θέλουμε να εφαρμόσουμε διάφορες πράξεις
της σχεσιακής άλγεβρας την μια μετά την άλλη
 Μπορούμε να γράψουμε τις πράξεις είτε σαν μια έκφραση
της σχεσιακής άλγεβρας εμφωλεύοντας πράξεις, ή
 Μπορούμε να εφαρμόσουμε μια πράξη τη φορά και να
δημιουργήσουμε ενδιάμεσα αποτελέσματα σχέσεων.
 Στην τελευταία περίπτωση, πρέπει να δώσουμε
ονόματα στις σχέσεις με τα ενδιάμεσα αποτελέσματα.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 16

Απλή έκφραση έναντι ακολουθίας


σχεσιακών πράξεων (Παράδειγμα)
 Για ανάκτηση του ονόματος, του επιθέτου, και του μισθού
όλων των εργαζομένων στο τμήμα 5, πρέπει να
εφαρμόσουμε μια πράξη επιλογής και μια πράξη προβολής
 Μπορούμε να γράψουμε μια απλή έκφραση της σχεσιακής
άλγεβρας σαν:
 πΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΜΙΣΘΟΣ(σ ΑΡΙΘΤ=5(ΕΡΓΑΖΟΜΕΝΟΣ))

 Ή μπορούμε να δείξουμε ρητά την ακολουθία των πράξεων,


δίνοντας ένα όνομα σε κάθε ενδιάμεση σχέση:
 ΤΜΗΜ5_ΕΡΓ ← σ ΑΡΙΘΤ=5(ΕΡΓΑΖΟΜΕΝΟΣ)

 ΑΠΟΤΕΛΕΣΜΑ←π ΟΝΟΜΑ,ΕΠΙΘΕΤΟ, ΜΙΣΘΟΣ (ΤΜΗΜ5_ΕΡΓ)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 17
Μοναδιαίες σχεσιακές πράξεις:
Μετονομασία

 Ο τελεστής της μετονομασίας (RENAME)


συμβολίζεται με ρ
 Σε μερικές περιπτώσεις, μπορεί να θέλουμε να
μετονομασθούν τα γνωρίσματα μιας σχέσης ή το
όνομα της σχέσης ή και τα δύο
 Είναι χρήσιμο όταν μια ερώτηση απαιτεί

πολλαπλές πράξεις
 Απαραίτητο σε μερικές περιπτώσεις (βλ. την

πράξη JOIN)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 18

Μοναδιαίες σχεσιακές
πράξεις:Μετονομασία (συν.)
 Η γενική πράξη μετονομασίας ρ μπορεί να
εκφρασθεί με οποιαδήποτε από τις παρακάτω
μορφές:
 ρS (B1, B2, …, Bn )(R) αλλάζει και τα δύο:
 Το όνομα της σχέσης σε S, και
 Τα ονόματα B1, B1, …..Bn της στήλης(γνώρισμα)
 ρS(R) αλλάζει:
 Μόνο το όνομα της σχέσης σε S
 ρ(B1, B2, …, Bn )(R) αλλάζει:
 Μόνο τα ονόματα B1, B1, …..Bn των στηλών
(γνωρισμάτων)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 19
Μοναδιαίες σχεσιακές
πράξεις:Μετονομασία (συν.)
 Για ευκολία, χρησιμοποιούμε επίσης μια συντομογραφία
για μετονομασία των γνωρισμάτων σε μια ενδιάμεση
σχέση:
 Αν γράψουμε:
• RESULT ← π ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΜΙΣΘΟΣ (ΤΜΗΜ5_ΕΡΓ)
• Το RESULT θα έχει τα ίδια ονόματα γνωρισμάτων όπως η
ΤΜΗΜ5_ΕΡΓ (ίδια γνωρίσματα με την ΕΡΓΑΖΟΜΕΝΟΣ)
• Αν γράψουμε:
• RESULT (F, M, L, S, B, A, SX, SAL, SU, DNO)← ρ
RESULT (F.M.L.S.B,A,SX,SAL,SU, DNO)(ΤΜΗΜ5_ΕΡΓ)
• ΤΑ 10 γνωρίσματα της ΤΜΗΜ5_ΕΡΓ μετονομάζονται σε F,
M, L, S, B, A, SX, SAL, SU, DNO, αντίστοιχα

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 20

Παράδειγμα εφαρμογής πολλών


πράξεων και μετονομασίας

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 21
Πράξεις της σχεσιακής άλγεβρας από την
θεωρία συνόλων: ΕΝΩΣΗ
 Πράξη ΕΝΩΣΗ
 Δυαδική πράξη, συμβολίζεται με ∪
 Το αποτέλεσμα της R ∪ S, είναι μια σχέση που
περιλαμβάνει όλες τις πλειάδες που είτε ανήκουν στην R ή
στην S ή και στην R και στην S
 Οι διπλότυπες πλειάδες απαλείφονται
 Οι δύο σχέσεις R και S πρέπει να είναι “συμβατές προς τον
τύπο” (ή συμβατές προς την ΕΝΩΣΗ)
 Η R και η S πρέπει να έχουν το ίδιο πλήθος γνωρισμάτων

 Κάθε ζεύγος αντίστοιχων γνωρισμάτων πρέπει να έχουν

συμβατό τύπο (να έχουν το ίδιο ή συμβατά πεδία ορισμού)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 22

Πράξεις της σχεσιακής άλγεβρας από την


θεωρία συνόλων: ΕΝΩΣΗ
 Παράδειγμα:
 Να ανακτηθούν οι αριθμοί ταυτότητας όλων των εργαζομένων
που ή δουλεύουν στο τμήμα 5 (ΑΠΟΤΕΛ1 παρακάτω) ή είναι
άμεσοι προϊστάμενοι ενός εργαζομένου στο τμήμα 5
(ΑΠΟΤΕΛ2 παρακάτω)
 Μπορούμε να χρησιμοποιήσουμε την πρ΄ξη της ένωσης όπως:
ΤΜΗΜ5_ΕΡΓ ← σΑΡΙΘ_Τ=5 (ΕΡΓΑΖΟΜΕΝΟΣ)
ΑΠΟΤΕΛ1 ← π ΑΡ_ΤΑΥΤ(ΤΜΗΜ5_ΕΡΓ)
ΑΠΟΤΕΛ2(ΑΡ_ΤΑΥΤ) ← πSΠΡΟΙΣΤΑΜΕΝΟΣ(ΤΜΗΜ5_ΕΡΓ)
ΑΠΟΤΕΛΕΣΜΑ ← ΑΠΟΤΕΛ1 ∪ ΑΠΟΤΕΛ2
 Η πράξη της ένωσης παράγει τις πλειάδες που ανήκουν ή στην
ΑΠΟΤΕΛ1 ή στην ΑΠΟΤΕΛ2 ή και στις δύο.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 23
Παράδειγμα του αποτελέσμαστος πράξης
ένωσης
 Παράδειγμα ένωσης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 24

Πράξεις της σχεσιακής άλγεβρας από την


θεωρία συνόλων
 Για τις δυαδικές πράξεις συνόλων ένωση ∪ (καθώς και
την τομή ∩, και τη διαφορά –) απαιτείται συμβατότητα
τύπου των τελεστέων
 Οι R1(A1, A2, ..., An) και R2(B1, B2, ..., Bn) είναι
συμβατές προς τον τύπο αν:
 Έχουν το ίδιο πλήθος γνωρισμάτων, και
 Τα πεδία ορισμού των αντίστοιχων γνωρισμάτων είναι
συμβατά προς τον τύπο (δηλ dom(Ai)=dom(Bi) για i=1, 2,
..., n).
 Η σχέση που προκύπτει για το R1∪R2 (καθώς και το
R1∩R2, ή το R1–R2) έχει τα ίδια ονόματα γνωρισμάτων
με την πρώτη σχέση R1 (συμβατικά)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 25
Πράξεις της σχεσιακής άλγεβρας από την
θεωρία συνόλων : ΤΟΜΗ

 Η τομή συμβολίζεται με ∩
 Το αποτέλεσμα της πράξης R ∩ S, είναι μια
σχέση που περιέχει όλες τις πλειάδες που
ανήκουν και στην R και στην S
 Τα ονόματα των γνωρισμάτων του
αποτελέσματος θα είναι τα ίδια με τα
ονόματα των γνωρισμάτων της R
 Οι δύο σχέσεις τελεστέοι R και S πρέπει να
είναι “συμβατοί προς τον τύπο”

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 26

Πράξεις της σχεσιακής άλγεβρας από την


θεωρία συνόλων : ΔΙΑΦΟΡΑ
 Η Διαφορά συνόλων (λέγεται και MINUS ή
EXCEPT) συμβολίζεται με το –
 Το αποτέλεσμα της R – S, είναι μια σχέση που
περιέχει όλες τις πλειάδες που ανήκουν στην R
αλλά όχι στην S
 Τα ονόματα των γνωρισμάτων στο
αποτέλεσμα θα είναι ίδια με τα ονόματα των
γνωρισμάτων στην R
 Οι δύο σχέσεις τελεστέοι R και S πρέπει να
είναι “συμβατοί προς τον τύπο”
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 27
Παράδειγμα για UNION, INTERSECT, και
DIFFERENCE

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 28

Ιδιότητες των ΕΝΩΣΗ, ΤΟΜΗ, και


ΔΙΑΦΟΡΑ
 Τόσο η τομή όσο και η ένωση είναι αντιμεταθετικές
πράξεις· δηλαδή
 R ∪ S = S ∪ R, και R ∩ S = S ∩ R
 Τόσο ή ένωση όσο και η τομή μπορούν μπορούν να
θεωρηθούν και σαν n-τάξεως πράξεις που εφαρμόζονται
σε οποιοδήποτε πλήθος σχέσεων καθώς είναι και οι δύο
προσεταιριστικές πράξεις· δηλαδή
 R ∪ (S ∪ T) = (R ∪ S) ∪ T
 (R ∩ S) ∩ T = R ∩ (S ∩ T)
 Η διαφορά δεν είναι αντιμεταθετική· δηλαδή, γενικά
 R–S≠S–R

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 29
Πράξεις της σχεσιακής άλγεβρας από την
θεωρία συνόλων : ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ
 Πράξη Καρτεσιανού (ή ΧΙΑΣΤΙ) γινομένου
 Η πράξη αυτή χρησιμοποιείται για να συνδυασθούν πλειάδες από
δύο σχέσεις κατά συνδυαστικό τρόπο.
 Συμβολίζεται με R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm)

 Το αποτέλεσμα είναι μια σχέση Q βαθμού n + m γνωρισμάτων:

 Q(A1, A2, . . ., An, B1, B2, . . ., Bm), με αυτή τη σειρά.


 Η κατάσταση της σχέσης που προκύπτει έχει μια πλειάδα για κάθε
συνδυασμό πλειάδων —μια από R και μια από την S.
 Επομένως, αν η R έχει nR πλειάδες (συμβολίζεται με |R| = nR ), και
η S έχει nS πλειάδες, τότε η R x S θα έχει nR * nS πλειάδες.
 Οι δύο τελεστέοι ΔΕΝ χρειάζεται να είναι “συμβατοί προς τον
τύπο”

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 30

Πράξεις της σχεσιακής άλγεβρας από την θεωρία


συνόλων : ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ(συν.)

 Γενικά, το Καρτεσιανό γινόμενο δεν είναι μια


πράξη με σημασία
 Μπορεί να έχει πρακτική σημασία όταν
ακολουθείται από άλλες πράξεις
 Παράδειγμα (χωρίς σημασία):
 ΓΥΝ_ΕΡΓΑΖ ← σ ΦΥΛΟ=’F’(ΕΡΓΑΖΟΜΕΝΟΣ)
 ΟΝΟΜ_ΕΡΓΑΖ ← π ΟΝΟΜΑ, ΕΟΙΘΕΤΟ, ΑΡ_ΤΑΥΤ
(FEMALE_EMPS)
 ΕΞΑΡΤ_ΕΡΓΑΖ ← ΟΝΟΜ_ΕΡΓΑΖ x ΕΞΑΡΤΩΜΕΝΟΣ
 Η ΕΞΑΡΤ_ΕΡΓΑΖ θα περιέχει κάθε συνδυασμό
ΟΝΟΜ_ΕΡΓΑΖ και ΕΞΑΡΤΩΜΕΝΟΣ
 Είτε σχετίζονται είτε όχι

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 31
Πράξεις της σχεσιακής άλγεβρας από την θεωρία
συνόλων : ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ(συν.)

 Για να έχουμε μόνο τους συνδυασμούς όπου ο


ΕΞΑΡΤΩΜΕΝΟΣ σχετίζεται με τον ΕΡΓΑΖΟΜΕΝΟ,
προσθέτουμε μια πράξη επιλογής
 Παράδειγμα (με σημασία):
 ΓΥΝ_ΕΡΓΑΖ ← σ ΦΥΛΟ=’F’(ΕΡΓΑΖΟΜΕΝΟΣ)
 ΟΝΟΜ_ΕΡΓΑΖ ← π ΟΝΟΜΑ, ΕΟΙΘΕΤΟ, ΑΡ_ΤΑΥΤ (FEMALE_EMPS)

 ΕΞΑΡΤ_ΕΡΓΑΖ ← ΟΝΟΜ_ΕΡΓΑΖ x ΕΞΑΡΤΩΜΕΝΟΣ

 ΠΡΑΓΜ_ΕΞΑΡΤ ← σΑΡ_ΤΑΥΤ=Ε_ΑΡΤΑΥΤ(ΕΞΑΡΤ_ΕΡΓΑΖ )

 ΑΠΟΤΕΛΕΣΜΑ ← π ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ_ΕΞΑΡΤΩΜΕΝΟΥ


(ΠΡΑΓΜ_ΕΞΑΡΤ)
 Τώρα η ΑΠΟΤΕΛΕΣΜΑ θα περιέχει τις γυναίκες εργαζόμενες και τα
εξαρτώμενα μέλη τους

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 32

Παράδειγμα εφαρμογής Καρτεσιανού


γινομένου

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 33
Δυαδικές σχεσιακές πράξεις:Συνένωση
(JOIN)
 Η πράξη της συνένωσης (συμβολίζεται με )
 Η σειρά Καρτεσιανό γινόμενο ακολουθούμενο από
ΕΠΙΛΟΓΗ χρησιμοποιείται συχνά για προσδιορισμό και
επιλογή από δύο σχέσεις πλειάδων που σχετίζονται
 Μια ειδική πράξη, ονομάζεται JOIN συνδυάζει αυτή την
ακολουθία πράξεων σε μια πράξη
 Αυτή η πράξη είναι πολύ σημαντική για κάθε σχεσιακή βάση
δεδομένων με περισσότερες από μια σχέσεις, επειδή μας
επιτρέπει να συνδυάζουμε πλειάδες που σχετίζονται από
διαφορετικές σχέσεις
 Η γενική μορφή της πράξης της συνένωσης δύο σχέσεων
R(A1, A2, . . ., An) και S(B1, B2, . . ., Bm) είναι:
R <συνθήκη συνένωση>S
 Όπου οι R και S μπορεί να είναι οποιεσδήποτε σχέσεις που
προκύπτουν από εκφράσεις της σχεσιακής άλγεβρας.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 34

Δυαδικές σχεσιακές πράξεις:Συνένωση


(συν.)
 Παράδειγμα: Υποθέστε ότι θέλουμε να ανακτήσουμε το όνομα του
διευθυντή κάθε τμήματος.
 Για το όνομα του διευθυντή, πρέπει να συνδυάσουμε κάθε πλειάδα
ΤΜΗΜΑ με την πλειάδα ΕΡΓΑΖΟΜΕΝΟΣ με τιμή ΑΡ_ΤΑΥΤ ίδια με
την τιμή ΔΙΕΥΘΥΝΤΗΣ στην πλειάδα ΤΜΗΜΑ.
 Το επιτυγχάνουμε με χρήση της πράξης συνένωσης .

 ΔΙΕΥΘ_ΤΜΗΜ ← ΤΜΗΜΑ ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ ΕΡΓΑΖΟΜΕΝΟΣ


 ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ είναι η συνθήκη συνένωσης
 Συνδυάζει κάθε εγγραφή τμήμα με τον εργαζόμενο που διευθύνει το
τμήμα
 Η συνθήκη συνένωσης μπορεί να ορισθεί και σαν
ΤΜΗΜΑ.ΔΙΕΥΘΥΝΤΗΣ= ΕΡΓΑΖΟΜΕΝΟΣ.ΑΡ_ΤΑΥΤ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 35
Παράδειγμα εφαρμογής συνένωσης

ΔΙΕΥΘ_ΤΜΗΜ ← ΤΜΗΜΑ MGRSSN=SSN ΕΡΑΖΟΜΕΝΟΣ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 36

Μερικές ιδιότητες της συνένωσης


 Έστω η παρακάτω πράξη συνένωσης:
 R(A1, A2, . . ., An) S(B1, B2, . . ., Bm)
R.Ai=S.Bj
 Το αποτέλεσμα είναι μια σχέση Q βαθμού n + m :
 Q(A1, A2, . . ., An, B1, B2, . . ., Bm), με αυτή τη σειρά.
 Η κατάσταση της σχέσης που προκύπτει έχει μια πλειάδα
για κάθε συνδυασμό πλειάδων—r από την R και s από την
S, αλλά μόνο αν ικανοποιούν την συνθήκη συνένωσης
r[Ai]=s[Bj]
 Επομένως, αν η R έχει nR πλειάδες, και η S έχει nS
πλειάδες, τότε το αποτέλεσμα της συνένωσης θα έχει γενικά
λιγότερες από nR * nS πλειάδες.
 Μόνο οι σχετιζόμενες πλειάδες (με βάση τη συνθήκη
συνένωσης) θα εμφανισθούν στο αποτέλεσμα

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 37
Μερικές ιδιότητες της συνένωσης
 Η ενική περίπτωση της πράξης της συνένωσης
ονομάζεται θήτα συνένωση (Theta-join): R S
theta
 Η συνθήκη συνένωσης ονομάζεται theta
 Theta μπορεί να είναι οποιαδήποτε λογική (boolean)
έκφραση στα γνωρίσματα των R και S· για παράδειγμα:
 R.Ai<S.Bj AND (R.Ak=S.Bl OR R.Ap<S.Bq)
 Οι περισσότερες συνθήκες συνένωσης περιλαμβάνουν
μια ή περισσότερες συνθήκες συνένωσης συνδεδεμένων
με τον τελεστή “AND”· για παράδειγμα:
 R.Ai=S.Bj AND R.Ak=S.Bl AND R.Ap=S.Bq

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 38

Δυαδικές σχεσιακές πράξεις: EQUIJOIN


 Συνένωση ισότητας
 Η πιο συνηθισμένη χρήση της συνένωσης περιλαμβάνει
συνθήκες συνένωσης με συγκρίσεις ισότητας μόνο
 Μια τέτοια συνένωση, όπου ο μόνος τελεστής σύγκρισης
που χρησιμοποιείται είναι =, ονομάζεται συνένωση
ισότητας (EQUIJOIN).
 Στο αποτέλεσμα μιας συνένωσης ισότητας έχουμε πάντα
ένα ή περισσότερα ζεύγη γνωρισμάτων (που δεν χρειάζεται
να έχουν τα ίδια ονόματα) που έχουν τις ίδιες τιμές σε κάθε
πλειάδα.
 Η συνένωση του προηγούμενου παραδείγματος ήταν
συνένωση ισότητας.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 39
Δυαδικές σχεσιακές πράξεις :
Πράξη Φυσικής συνένωσης
 Πράξη φυσικής συνένωσης
 Μια άλλη παραλλαγή της συνένωσης λέγεται φυσική
συνένωση (NATURAL JOIN) — συμβολίζεται με * —
δημιουργήθηκε για να απαλλαγούμε από το δεύτερο
(πλεονάζον) γνώρισμα σε μια συνένωση ισότητας.
 Επειδή κάθε ζεύγος γνωρισμάτων με τις ίδιες τιμές πελονάζει
 Ο τυπικός ορισμός της φυσικής συνένωσης απαιτεί τα δύο
γνωρίσματα συνένωσης, ή κάθε ζεύγος αντίστοιχων
γνωρισμάτων συνένωσης, να έχουν το ίδιο όνομα και στις
δύο σχέσεις
 Αν δεν συμβαίνει αυτό, εφαρμόζεται πρώτα μια πράξη
μετονομασίας.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 40

Δυαδικές σχεσιακές πράξεις :


Πράξη Φυσικής συνένωσης(συν.)
 Παράδειγμα: Για να εφαρμόσουμε φυσική συνένωση στα γνωρίσματα
συνένωσης ΚΩΔ_ΤΜΗΜ της ΤΜΗΜΑ και της ΤΟΠΟΘ_ΤΜΗΜΑ, αρκεί
να γράψουμε:
 ΤΟΠ_ΤΜΗΜ ← ΤΜΗΜΑ * ΤΟΠΟΘ_ΤΜΗΜΑ

 Το μόνο γνώρισμα με το ίδιο όνομα είναι το ΚΩΔ_ΤΜΗΜ


 Με βάση αυτό το γνώρισμα δημιουργείται μια έμεση συνθήκη
συνένωσης:
ΤΜΗΜΑ. ΚΩΔ_ΤΜΗΜ = ΤΟΠΟΘ_ΤΜΗΜΑ. ΚΩΔ_ΤΜΗΜ

 Ένα άλλο παράδειγμα: Q ← R(A,B,C,D) * S(C,D,E)


 Η έμεση συνθήκη συνένωσης περιλαμβάνει κάθε ζεύγος
γνωρισμάτων με το ίδιο όνομα, σε σύζευξη:
 R.C=S.C AND R.D.S.D
 Στο αποτέλεσμα εμφανίζεται μόνο ένα γνώρισμα:
 Q(A,B,C,D,E)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 41
Παράδειγμα πράξης φυσικής συνένωσης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 42

Πλήρες Σύνολο Σχεσιακών Πράξεων


 Το σύνολο των πράξεων συμπεριλαμβανομένων
των ΕΠΙΛΟΓΗ σ, ΠΡΟΒΟΛΗ π , ΕΝΩΣΗ ∪,
ΔΙΑΦΟΡΑ − , ΜΕΤΟΝΟΜΑΣΙΑ ρ, και
ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ X ονομάζεται ένα
πλήρες σύνολο επειδή οποιαδήποτε άλλη
έκφραση της σχεσιακής άλγεβρας μπορεί να
εκφρασθεί με συνδυασμό αυτών των πράξεων.
 Για παράδειγμα:
 R ∩ S = (R ∪ S ) – ((R − S) ∪ (S − R))
 R <join condition>S = σ <join condition> (R X S)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 43
Δυαδικές σχεσιακές πράξεις: ΔΙΑΙΡΕΣΗ
 Πράξη της διαίρεσης
 Η πράξη της διαίρεσης εφαρμόζεται σε δύο σχέσεις
 R(Z) ÷ S(X), όπου X υποσύνολο του Z. Έστω Y = Z - X
(και επομένως Z = X ∪ Y)· δηλαδή, έστω Y το σύνολο των
γνωρισμάτων της R που δεν είναι γνωρίσματα της S.

 Το αποτέλεσμα της διαίρεσης είναι μια σχέση T(Y) που


περιέχει μια πλειάδα t αν εμφανίζονται tR πλειάδες στην R
με tR [Y] = t, και με
 tR [X] = ts για κάθε πλειάδα ts της S.

 Για να εμφανισθεί μια πλειάδα t στο αποτέλεσμα T της


διαίρεσης, οι τιμές της t πρέπει να εμφανίζονται στην R σε
συνδυασμό με κάθε πλειάδα της S.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 44

Παράδειγμα Διαίρεσης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 45
Συμβολισμός Δένδρου ερωτήσεων
 Δένδρο ερωτήσεων
 Μια εσωτερική δομή δεδομένων για αναπαράσταση μιας
ερώτησης
 Τυπική τεχνική για εκτίμηση της εκτέλεσης μιας ερώτησης, η
δημιουργία ενδιάμεσων αποτελεσμάτων, και η βελτιστοποίηση της
εκτέλεσης
 Οι κόμβοι παριστάνουν πράξεις όπως επιλογή, προβολή,
συνένωση, μετονομασία, διαίρεση, ….
 Οι κόμβοι φύλλα παριστάνουν βασικές σχέσεις

 Ένα δένδρο δίνει μια καλή οπτική αίσθηση της πολυπλοκότητας


της ερώτησης και των πράξεων που απαιτούνται
 Η αλγεβρική βελτιστοποίηση ερωτήσεων αποτελείται από
επαναδιατύπωση της ερώτησης ή τροποποίηση του δένδρου σε
ισοδύναμο.
(βλ. Κεφάλαιο 15)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 46

Παράδειγμα Δένδρου ερωτήσεων

Π Π.ΚΩΔ_ΕΡΓΟΥ, Π.Κ_ΤΜΗΜΑ, Ε.ΕΠΙΘΕΤΟ, Ε.ΔΙΕΥΘΥΝΣΗ, Ε.ΗΜ_ΓΕΝ

Τ.ΔΙΕΥΘΥΝΤΗΣ=Ε.ΑΡ_ΤΑΥΤ

P.Κ_ΤΜΗΜΑ=Τ.ΚΩΔ_ΤΜΗΜ
E ΕΡΓΑΖΟΜΕΝΟΣ

P.ΤΟΠ_ΕΡΓΟΥ=‘Stafford’ T ΤΜΗΜΑ

EP ΕΡΓΟ

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 47
Επιπλέον Σχεσιακές Πράξεις: Συναθροιστικές
Συναρτήσεις και Ομαδοποίηση
 Ένας τύπος αιτήματος που δεν μπορεί να εκφρασθεί σε βασική
σχεσιακή άλγεβρα είναι ο προσδιορισμός μαθηματικών
συναθροιστικών συναρτήσεων σε συλλογές τιμών από τη βάση
δεδομένων.
 Παραδείγματα τέτοιων συναρτήσεων περιλαμβάνουν ανάκτηση του
μέσου ή του συνολικού μισθού όλων των εργαζομένων ή το συνολικό
πλήθος των πλειάδων εργαζόμενος.
 Οι συναρτήσεις αυτές χρησιμοποιούνται σε απλές στατιστικές
ερωτήσεις που συνοψίζουν πληροφορίες από πλειάδες της
βάσης δεδομένων.
 Οι συνήθεις συναρτήσεις που εφαρμόζονται σε αριθμητικές συλλογές
τιμών
 SUM, AVERAGE, MAXIMUM, and MINIMUM.

 Η συνάρτηση COUNT χρησιμοποιείται για απαρίθμηση πλειάδων ή


τιμών.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 48

Χρήση Συναθροιστικών Συναρτήσεων


 Χρήση του τελεστή συναθροιστικής συνάρτησης ℱ
 ℱMAX ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) ανακτά την τιμή μέγιστου
μισθού από την σχέση ΕΡΓΑΖΟΜΕΝΟΣ
 ℱMIN ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) ανακτά την τιμή ελάχιστου
μισθού από την σχέση ΕΡΓΑΖΟΜΕΝΟΣ
 ℱSUM ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) υπολογίζει το άθροισμα των
μισθών από την σχέση ΕΡΓΑΖΟΜΕΝΟΣ
 ℱCOUNT ΑΡ_ΤΑΥΤ, AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) υπολογίζει
το πλήθος των εργαζομένων και τη μέση τιμή του μισθού
τους
 Σημείωση: η count απλά μετρά το πλήθος των γραμμών,
χωρίς απαλοιφή των διπλών

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 49
Χρήση Ομαδοποίησης με Συνάθροιση
 Όλα τα προηγούμενα παραδείγματα συνοψίζουν ένα ή περισσότερα
γνωρίσματα για ένα σύνολο πλειάδων
 Μέγιστος μισθός ή Πλήθος ΑρΤαυτ

 Η Ομαδοποίηση μπορεί να συνδυασθεί με Συναθροιστικές


Συναρτήσεις
 Παράδειγμα: Για κάθε τμήμα, ανάκτησε τα ΑΡΙΘ_, COUNT ΑΡ_ΤΑΥΤ,
και AVERAGE ΜΙΣΘΟΣ
 Μια παραλλαγή της πράξης της συνάθροισης ℱ μας επιτρέπει:
 Το γνώρισμα ομαδοποίησης τίθεται αριστερά του συμβόλου

 Οι συναθροιστικές συναρτήσεις δεξιά του συμβόλου

 ΑΡΙΘ_Τ ℱCOUNT ΑΡ_ΤΑΥΤ, AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ)

 Η παραπάνω πράξη ομαδοποιεί εργαζόμενους με ΑΡΙΘ_Τ (κωδικό


τμήματος) και υπολογίζει το πλήθος των εργαζομένων και το μέσο
μισθό ανά τμήμα.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 50

Παραδείγματα εφαρμογής συναθροιστικών


συναρτήσεων και ομαδοποίησης

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 51
Επιπλέον Σχεσιακές Πράξεις (συν.)
 Πράξεις Αναδρομικής Κλειστότητας
 Ένας άλλος τύπος πράξης που, γενικά, δεν μπορεί να

προσδιορισθεί στη βασική αρχική σχεσιακή άλγεβρα


είναι η αναδρομική κκλειστότητα.
 Η πράξη αυτή εφαρμόζεται σε μια αναδρομική συσχέτιση.
 Ένα παράδειγμα αναδρομικής πράξης είναι η
ανάκτηση όλων των ΕΠΙΒΛΕΠΟΜΕΝΩΝ ενός
ΕΡΓΑΖΟΜΕΝΟΣ e σε όλα τα επίπεδα — δηλαδή, όλοι
EMPLOYEE e’ που επιβλέπονται άμεσα από τον e·
όλοι οι εργαζόμενοι e’’ που άμεσα επιβλέπονται από
κάθε εργαζόμενο e’· όλοι οι εργαζόμενοι e’’’ που
άμεσα επιβλέπονται από κάθε εργαζόμενο e’’; κοκ.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 52

Επιπλέον Σχεσιακές Πράξεις (συν.)


 Αν και είναι δυνατόν να ανακτηθούν οι
εργαζόμενοι σε κάθε επίπεδο και στη συνέχεδια
να γίνει ένωση τους, δεν μπορούμε, γενικά, να
προσδιορίσουμε μια ερώτηση σαν “ανάκτηση των
επιβλεπομένων από τον ‘James Borg’ σε όλα τα
επίπεδα” χωρίς την χρήση μηχανισμού
επανάληψης.
 Το πρότυπο SQL3 περιλαμβάνει σύνταξη για
αναδρομική κλειστότητα.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 53
Επιπλέον Σχεσιακές πράξεις (συν.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 54

Επιπλέον Σχεσιακές Πράξεις (συν.)


 Η πράξη εξωτερικής συνένωσης (OUTER JOIN)
 Στη φυσική συνένωση και την συνένωση ισότητας, οι
πλειάδες χωρίς αντίστοιχη (ή σχετιζόμενη) πλειάδα
απαλείφονται από το αποτέλεσμα της συνένωσης
 Οι πλειάδες με τιμή null στα γνωρίσματα συνένωσης
απαλείφονται επίσης
 Αυτό έχει σαν αποτέλεσμα την απώλεια πληροφοριών.
 Ένα σύνολο πράξεων, ονομάζονται εξωτερικές (OUTER)
συνενώσεις, μπορούν να χρησιμοποιηθούν όταν θέλουμε
να διατηρηθούν όλες οι πλειάδες της R, ή αυτές της S, ή
όλες αυτές στις δύο σχέσεις στο αποτέλεσμα της
συνένωσης, ανεξάρτητα από τον αν έχουν αντίστοιχες
πλειάδες στην άλλη σχέση.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 55
Επιπλέον Σχεσιακές Πράξεις (συν.)
 Η πράξη της αριστερής εξωτερικής συνένωσης διατηρεί
κάθε πλειάδα στην πρώτη ή αριστερή σχέση R στην
R S· αν δεν βρεθεί αντίστοιχη πλειάδα στην S, τότε
στα γνωρίσματα της S στο αποτέλεσμα της συνένωσης
δίδονται τιμές null.
 Μια παρόμοια πράξη, δεξιά αριστερή συνένωση, διατηρεί
κάθε πλειάδα στη δεύτερη ή δεξιά σχέση S στο
αποτέλεσμα της R S.
 Μια Τρίτη πράξη, πλήρης εξωτερική συνένωση,
συμβολίζεται με διατηρεί όλες τις πλειάδες τόσο
στην αριστερή όσο και στην δεξιά σχέση όταν δεν
βρεθούν αντίστοιχες πλειάδες, θέτοντας όπου απαιτείται
τιμές null.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 56

Επιπλέον σχεσιακές πράξεις (συν.)


ΑΠΟΤΕΛΕΣΜΑ
ΟΝΟΜΑ ΑΡΧ_ΠΑΤ ΕΠΙΘΕΤΟ Τ_ΟΝΟΜΑ

John B Smith null


Franklin T Wong Research
Alicia J Zelaya null
Jennifer S Wallace Administration
Ramesh K Narayan null
Joyce A English null
Ahmad V Jabbar null
James E Borg Headquarters

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 57
Επιπλέον σχεσιακές πράξεις (συν.)
 Πράξεις εξωτερικής ένωσης
 Η πράξη εξωτερικής ένωσης αναπτύχθηκε για έχουμε την
ένωση πλειάδων από δύο σχέσεις αν οι σχέσεις relations
δεν είναι συμβατές ως προς το τύπο.
 Η πρ΄ξη αυτή σχηματίζει την ένωση των πλειάδων των δύο
σχέσεων R(X, Y) και S(X, Z) που είναι μερικά συμβατές, με
την έννοια ότι μερικά από τα γνωρίσματά τους, έστω X, είναι
συμβατά προς τον τύπο.
 Τα γνωρίσματα που είναι συμβατά προς τον τύπο
παριστάνονται μόνο μια φορά στο αποτέλεσμα, και αυτά
που δεν είναι από οποιαδήποτε σχέση διατηρούνται επίσης
στο αποτέλεσμα T(X, Y, Z).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 58

Επιπλέον σχεσιακές πράξεις (συν.)


 Παράδειγμα: Μια εξωτερική ένωση μπορεί να εφαρμοσθεί
σε δύο σχέσεις που το σχήμα τους είναι
ΦΟΙΤΗΤΗΣ(Ονομα, ΑΡ_ΤΑΥΤ, Τμημα, Επιβλεπων) και
ΔΙΔΑΣΚΩΝ(Ονομα, ΑΡ_ΤΑΥΤ, Τμημα, Βαθμιδα).
 Οι πλειάδες από τις δύο σχέσεις συνδυάζονται με βάση τις
ίδιες τιμές στα κοινά γνωρίσματα— Ονομα, ΑΡ_ΤΑΥΤ, Τμημα.
 ΑΝ ένας φοιτητής είναι και διδάσκων, τόσο το Επιβλεπων όσο
και το Βαθμιδα θα έχουν τιμή· διαφορετικά, ένα από τα δύο
αυτά γνωρίσματα θα είναι null.
 Η σχέση που προκύπτει ΦΟΙΤΗΤΗΣ_Η_ΔΙΔΑΣΚΩΝ θα έχει τα
παρακάτω γνωρίσματα:
ΦΟΙΤΗΤΣ_Η_ΔΙΔΑΣΚΩΝ (Ονομα, ΑΡ_ΤΑΥΤ, Τμημα,
Επιβλέπων, Βαθμιδα)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 59
Παραδείγματα ερωτήσεων σε Σχεσιακή
Άλγεβρα : Διαδικαστική μορφή
 Ε1: Να ανακτηθούν το όνομα και η διεύθυνση όλων των εργαζομένων στο
τμήμα ‘Research’.
RESEARCH_ΤΜΗΜ ← σ Τ_ΟΝΟΜΑ=’Research’ (ΤΜΗΜΑ)
RESEARCH_ΕΡΓ ← (RESEARCH_ΤΜΗΜ ΚΩΔ_ΤΜΗΜ= ΑΡΙΘ_Τ ΕΡΓΑΖΟΜΕΝΟΣ)
ΑΠΟΤΕΛΕΣΜΑ ← π ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ (RESEARCH_ΕΡΓ)

 Ε6: Να ανακτηθούν τα ονόματα των εργαζομένων χωρίς εξαρτώμενα


μέλη.
ΟΛΟΙ ← π ΑΡ_ΤΑΥΤ(ΕΡΓΑΖΟΜΕΝΟΣ)
ΕΡΓ_ΜΕ_ΕΞΑΡΤ(ΑΡ_ΤΑΥΤ) ← π Ε_ΑΡΤΑΥΤ(ΕΞΑΡΤΩΜΕΝΟΣ)
ΕΡΓ_ΧΩΡΙΣ_ΕΞΑΡΤ ← (ΟΛΟΙ - ΕΡΓ_ΜΕ_ΕΞΑΡΤ)
ΑΠΟΤΕΛΕΣΜΑ ← π ΕΠΙΘΕΤΟ, ΟΝΟΜΑ (ΕΡΓ_ΧΩΡΙΣ_ΕΞΑΡΤ * ΕΡΓΑΖΟΜΕΝΟΣ)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 60

Παραδείγματα ερωτήσεων σε Σχεσιακή


Άλγεβρα – Απλές εκφράσεις

Οι παραπάνω ερωτήσεις διατυπώνονται σαν απλές


εκφράσεις:
 Ε1: Να ανακτηθούν το όνομα και η διεύθυνση όλων των εργαζομένων στο
τμήμα ‘Research’.
π ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ (σ Τ_ΟΝΟΜΑ= ‘Research’
(ΤΜΗΜΑ (ΕΡΓΑΖΟΜΕΝΟΣ))
ΚΩΔ_ΤΜΗΜ= ΑΡΙΘ_Τ

 Ε6: Να ανακτηθούν τα ονόματα των εργαζομένων χωρίς εξαρτώμενα


μέλη.
π ΕΠΙΘΕΤΟ, ΟΝΟΜΑ((π ΑΡ_ΤΑΥΤ (ΕΡΓΑΖΟΜΕΝΟΣ) − ρ
ΑΡ_ΤΑΥΤ (π Ε_ΑΡΤΑΥΤ (ΕΞΑΡΤΩΜΕΝΟΣ))) ∗
ΕΡΓΑΖΟΜΕΝΟΣ)
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 61
Σχεσιακός Λογισμός
 Μια έκφραση του σχεσιακού λογισμού δημιουργεί μια
νέα σχέση, που ορίζεται με μεταβλητές με πεδία τιμών
γραμμές αποθηκευμένων σχέσεων της βάσης δεδομένων
(σε λογισμό πλειάδων) ή στήλες αποθηκευμένων
σχέσεων (σε λογισμό πεδίων ορισμού).
 Σε μια έκφραση του λογισμού, δεν υπάρχει διάταξη των
πράξεων που να καθορίζει πως θα ανακτηθεί το
αποτέλεσμα της ερώτησης —μια έκφραση του λογισμού
μόνο τι πληροφορίες πρέπει να περιέχει το αποτέλεσμα.
 Αυτό το χαρακτηριστικό διαχωρίζει την σχεσιακή άλγεβρα
από τον σχεσιακό λογισμό.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 62

Σχεσιακός Λογισμός (Συν.)

 Ο σχεσιακός λογισμός θεωρείτε σαν μη


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

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 63
Σχεσιακός Λογισμός Πλειάδων
 Ο σχεσιακός λογισμός πλειάδων βασίζεται στον
προσδιορισμό ενός πλήθους από μεταβλητές πλειάδες.
 Κάθε μεταβλητή πλειάδα συνήθως έχει πεδίο ορισμού
κάποια σχέση της βάσης δεδομένων, με την έννοια ότι η
μεταβλητή μπορεί να πάρει τιμή οποιαδήποτε πλειάδα
από αυτή τη σχέση.
 Μια απλή ερώτηση του σχεσιακού λογισμού πλειάδων
έχει τη μορφή
{t | COND(t)}
 όπου t είναι μια μεταβλητή πλειάδα και COND (t) είναι μια
έκφραση συνθήκης που περιλαμβάνει το t.
 Το αποτέλεσμα μιας τέτοιας ερώτησης είναι το σύνολο όλων
των πλειάδων t που ικανοποιούν την COND (t).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 64

Σχεσιακός Λογισμός Πλειάδων(Συν.)

 Παράδειγμα: Για να βρεθεί το όνομα και το επίθετο όλων


των εργαζομένων με μισθό μεγαλύτερο από €5000,
μπορούμε να γράψουμε την παρακάτω έκφραση
λογισμού πλειάδων:
{t.ΟΝΟΜΑ, t.ΕΠΙΘΕΤΟ | ΕΡΓΑΖΟΜΕΝΟΣ(t) AND
t.ΜΙΣΘΟΣ>5000}
 Η συνθήκη ΕΡΓΑΖΟΜΕΝΟΣ(t) προσδιορίζει ότι η σχέση
πεδίου τιμών της μεταβλητής πλειάδας t είναι η
ΕΡΓΑΖΟΜΕΝΟΣ.
 Θα ανακτηθεί το όνοαμ και το επίθετο (ΠΡΟΒΟΛΗ πΟΝΟΜΑ,
ΕΠΙΘΕΤΟ) κάθε πλειάδας ΕΡΓΑΖΟΜΕΝΟΣ t που ικανοποιεί
τη συνθήκη t.ΜΙΣΘΟΣ>5000 (ΕΠΙΛΟΓΗ σ ΜΙΣΘΟΣ >5000).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 65
Ο υπαρξιακός και ο καθολικός
ποσοδείκτης
 Δύο ειδικά σύμβολα που ονομάζονται ποσοδείκτες μπορεί να
εμφανισθούν στις εκφράσεις· είναι ο καθολικός ποσοδείκτης quantifier
(∀) και ο υπαρξιακός ποσοδείκτης (∃).
 Άτυπα, μια μεταβλητή πλειάδα t είναι δεσμευμένη αν ποσοδεικτείται,
δηλαδή εμφανίζεται σε μια πρόταση (∀ t) ή (∃ t) · διαφορετικά, είναι
ελεύθερη.
 Αν F είναι ένας τύπος, είναι επίσης τύποι τα (∃ t)(F) και (∀ t)(F), όπου
t είναι μια μεταβλητή πλειάδα.
 Ο τύπος (∃ t)(F) είναι αληθής αν ο τύπος F αποτιμάται σε true για
κάποια (τουλάχιστον μια) πλειάδα που δίνεται ως τιμή στις
ελεύθερες εμφανίσεις της t στην F· διαφορετικά η (∃ t)(F) είναι
false.
 Ο τύπος (∀ t)(F) είναι true αν ο τύπος F αποτιμάται σε true για
κάθε πλειάδα (του πεδίου τιμών) που δίνεται ως τιμή στις
ελεύθερες εμφανίσεις της t στην F· διαφορετικά η (∀ t)(F) είναι
false.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 66

Ο υπαρξιακός και ο καθολικός


ποσοδείκτης(Συν.)

 Το ∀ ονομάζεται ο καθολικός ή “για κάθε”


ποσοδείκτης κάθε πλειάδα “του πεδίου ορισμού”
πρέπει να αποτιμά το F σε true ώστε ο
ποσοδεικτούμενος τύπος να είναι true.
 Το ∃ ονομάζεται υπαρξιακός ή “υπάρχει”
ποσοδείκτης κάθε πλειάδα που υπάρχει στο
“πεδίο ορισμού” μπορεί να αποτιμά την F σε true
ώστε ο ποσοδεικτούμενος τύπος να είναι true.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 67
Παράδειγμα ερώτησης με χρήση του
υπαρξιακού ποσοδείκτη
 Να ανακτηθεί το όνομα και η διεύθυνση όλων των εργαζομένων στο τμήμα
‘Research’. Η ερώτηση μπορεί να εκφρασθεί σαν :
{t.ΟΝΟΜΑ, t.ΕΠΙΘΕΤΟ, t.ΔΙΕΥΘΥΝΣΗ | ΕΡΓΑΖΟΜΕΝΟΣ(t) and (∃ d)
(ΤΜΗΜΑ(d) and d.Τ_ΟΝΟΜΑ=‘Research’ and d.ΚΩΔ_ΤΜΗΜ=t.ΑΡΙΘ_Τ) }
 Οι μόνες ελεύθερες μεταβλητές πλειάδες σε μια έκφραση του σχεσιακού
λογισμού θα πρέπει να είναι αυτές που εμφανίζονται αριστερά της μπάρας (|).
 Στην παραπάνω ερώτηση, η t είναι η μόνη ελεύθερη μεταβλητή· στη
συνέχεια είναι διαδοχικά δεσμευμένη σε κάθε πλειάδα.
 Αν μια πλειάδα ικανοποιεί τις συνθήκες που προσδιορίζονται στην ερώτηση,
ανακτώνται τα γνωρίσματα ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, και ΔΙΕΥΘΥΝΣΗ για κάθε
τέτοια πλειάδα.
 Οι συνθήκες ΕΡΓΑΖΟΜΕΝΟΣ (t) και ΤΜΗΜΑ(d) προσδιορίζουν τις
σχέσεις πεδία ορισμού των t και d.
 Η συνθήκη d.Τ_ΟΝΟΜΑ = ‘Research’ είανι μια συνθήκη επιλογής και
αντιστοιχεί σε μια πράξη ΕΠΙΛΟΓΗ της σχεσιακής άλγεβρας, ενώ η
συνθήκη d.ΚΩΔ_ΤΜΗΜ = t.ΑΡΙΘ_Τ είναι μια συνθήκη συνένωσης.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 68

Παράδειγμα ερώτησης με χρήση του


καθολικού ποσοδείκτη
 Να βρεθούν τα ονόματα των εργαζομένων που απασχολούνται σε όλα τα έργα
που ελέγχει το τμήμα 5. Η ερώτηση μπορεί να είναι:
{e.ΕΠΙΘΕΤΟ, e.ΟΝΟΜΑ | ΕΡΓΑΖΟΜΕΝΟΣ(e) and ( (∀ x)(not(ΕΡΓΟ(x)) or
not(x.Κ_ΤΜΗΜΑ=5)
OR ( (∃ w)(ΑΠΑΣΧΟΛΗΣΗ(w) and w.Ε_ΑΡΤΑΥΤ=e.ΑΡ_ΤΑΥΤ and
x.ΚΩΔ_ΕΡΓΟΥ=w.Κ_ΕΡΓΟ))))}
 Αποκλείονται από την καθολική ποσοδείκτηση όλες οι πλειάδες που δεν
ενδιαφέρουν κάνοντας την συνθήκη true για όλες αυτές τις πλειάδες.
 Οι πρώτες πλειάδες για αποκλεισμό (αναγκάζοντας να αποτιμώνται αυτόματα σε
true) είναι αυτές που δεν ανήκουν στη σχέση R που ενδιαφέρει.
 Στην παραπάνω ερώτηση, χρησιμοποιώντας την έκφραση not(ΕΡΓΟ(x)) μέσα
στον τύπο με καθολική ποσοσδείκτηση αποτιμάται σε true για όλες τις πλειάδες x
που δεν ανήκουν στη σχέση ΕΡΓΟ.
 Στη συνέχεια αποκλείουμε από την R τις πλειάδες που δεν μας ενδιαφέρουν. Η
έκφραση not(x.Κ_ΤΜΗΜΑ =5) αποτιμάται σε true για όλες τις πλειάδες x της
σχέσης ΕΡΓΟ που δεν ελέγχεται από το τμήμα 5.
 Τέλος, ορίζουμε μια συνθήκη που θα πρέπει να ισχύει για όλες τις πλειάδες της R
που απομένουν.
( (∃ w)(ΑΠΑΣΧΟΛΗΣΗ(w) and w. Ε_ΑΡΤΑΥΤ =e.ΑΡΤΑΥΤ and x. ΚΩΔ_ΕΡΓΟΥ
=w.Κ_ΕΡΓΟ)
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 69
Γλώσσες που βασίζονται στο σχεσιακό
λογισμό πλειάδων
 Η γλώσσα SQL βασίζεται στο λογισμό πλειάδων.
Χρησιμοποιεί την βασική μπλοκ δομή για να εκφρασθούν
επερωτήσεις σε λογισμό πλειάδων:
 SELECT <λίστα γνωρισμάτων>
 FROM <λίστα σχέσεων>
 WHERE <συνθήκες>
 Η πρόταση SELECT αναφέρει τα γνωρίσματα της
προβολής, η πρόταση FROM αναφέρει τις σχέσεις που
χρειάζονται για την ερώτηση, και η πρόταση WHERE τις
συνθήκες επιλογής και συνένωσης.
 Η σύνταξη της SQL επεκτείνεται περαιτέρω για να
υποστηρίξει και άλλες πράξεις. (Βλ. Κεφάλαιο 8).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 70

Γλώσσες που βασίζονται στο σχεσιακό


λογισμό πλειάδων(Συν.)
 Μια άλλη γλώσσα που βασίζεται στο λογισμό πλειάδων
είναι η QUEL που χρησιμοποιεί μεταβλητές με πεδίο
ορισμού σχέσεις όπως και στο λογισμό πλειάδων. Η
σύνταξή της περιλαμβάνει:
 RANGE OF <όνομα μεταβλητής> IS <όνομα σχέσης>
 Στη συνέχεια χρησιμοποιεί
 RETRIEVE <λίστα γνωρισμάτων από μεταβλητές σχέσεων>
 WHERE <συνθήκες>
 Η γλώσσα αυτή προτάθηκε για το σχεσιακό ΣΔΒΔ
INGRES. (το σύστημα υποστηρίζεται και σήμερα από την
Computer Associates – αλλά η γλώσσα QUEL δεν
υπάρχει).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 71
Ο σχεσιακός λογισμός πεδίων ορισμού
 Μια άλλη παραλλαγή του σχεσιακού λογισμού ονομάζεται σχεσιακός
λογισμός πεδίων ορισμού, ή απλά, λογισμός πεδίων, είναι
ισοδύναμος με τον λογισμό πλειάδων και την σχεσιακή άλγεβρα.
 Η γλώσσα QBE (Query-By-Example) που σχετίζεται με το λογισμό
πεδίων αναπτύχθηκε σχεδόν ταυτόχρονα με την SQL στην IBM
Research, Yorktown Heights, New York.
 Ο λογισμός πεδίων θεωρήθηκε σαν τρόπος εξήγησης του τικάνει
η QBE.
 Ο λογισμός πεδίων διαφέρει από τον λογισμό πλειάδων στον τύπο
των μεταβλητών που χρησιμοποιεί:
 Αντί να χρησιμοποιεί μεταβλητές τύπου πλειάδας, οι μεταβλητές
παίρνουν τιμές σε πεδία ορισμού γνωρισμάτων.
 Για το σχηματισμό μιας σχέσης βαθμού n για το αποτέλεσμα μιας
ερώτησης, πρέπει να έχουμε n από τις μεταβλητές αυτές— μια για
κάθε γνώρισμα.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 72

Ο σχεσιακός λογισμός πεδίων


ορισμού(συν.)

 Μια έκφραση του λογισμού πεδίων είναι της


μορφής
{ x1, x2, . . ., xn |
COND(x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m)}
 Όπου τα x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m είναι
μεταβλητές πεδίου με τιμές πεδία ορισμού (των
γνωρισμάτων)
 και COND είναι μια συνθήκη ή ένας τύπος του
σχεσιακού λογισμού πεδίων ορισμού.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 73
Παράδειγμα ερώτησης με χρήση
λογισμού πεδίων
Να ανακτηθεί η ημερομηνία γέννησης και η διεύθυνση του εργαζόμενου με όνομα
‘John B. Smith’.
 Ερώτηση :
{uv | (∃ q) (∃ r) (∃ s) (∃ t) (∃ w) (∃ x) (∃ y) (∃ z)
(ΕΡΓΑΖΟΜΕΝΟΣ(qrstuvwxyz) and q=’John’ and r=’B’ and s=’Smith’)}

 Σε συντομογραφία ΕΡΓΑΖΟΜΕΝΟΣ(qrstuvwxyz) χρησιμοποιεί τις μεταβλητές


χωρίς διαχωριστικά κόμματα: EMPLOYEE(q,r,s,t,u,v,w,x,y,z)

 Χρειάζονται 10 μεταβλητές για τη σχέση ΕΡΓΑΖΟΜΕΝΟΣ, μια για κάθε


γνώρισμα.
 Από τις 10 μεταβλητές q, r, s, . . ., z, μόνο οι u και v είναι ελεύθερες.
 Προσδιορίζονται τα ζητούμενα γνωρίσματα, Ημ_Γεν και ΔΙΕΥΘΥΝΣΗ, από τις
ελεύθερες μεταβλητές πεδίου u για ΗΜ_ΓΕΝ και v για ΔΙΕΥΘΥΝΣΗ.
 Προσδιορίζετε η συνθήκη επιλογής μιας πλειάδας μετά την μπάρα ( | )—
 Συγκεκριμένα, η ακολουθία τιμών που δίδονται στις qrstuvwxyz είναι μια
πλειάδα της σχέσης εργαζόμενος και οι τιμές για τα q (ΟΝΟΜΑ), r
(ΑΡΧ_ΠΑΤ), και s (ΕΠΙΘΕΤΟ) είναι ‘John’, ‘B’, και ‘Smith’, αντίστοιχα.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,
Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 74

QBE: Μια γλώσσα ερωτήσεων που βασίζεται


στο λογισμό πεδίων (Παράρτημα Δ)
 Η γλώσσα βασίζεται στην ιδέα να δίνεται ένα παράδειγμα
μιας ερώτησης χρησιμοποιώντας “στοιχεία
παραδείγματος” που δεν είναι τίποτε άλλο από
μεταβλητές πεδίου.
 Συμβολισμός: Ένα στοιχείο παραδείγματος είναι μια
μεταβλητή πεδίου και προσδιορίζεται σαν μια τιμή
παραδείγματος όπου προτάσσεται ο χαρακτήρας
underscore.
 Ο P. (ονομάζεται P dot) τελεστής (για “print”) τίθεται στις
στήλες που ζητούνται για το αποτέλεσμα της ερώτησης.
 Ένας χρήστης μπορεί αρχικά να ξεκινήσει δίνοντας
πραγματικές τιμές σαν παραδείγματα, αλλά αργότερα
συνηθίζει να δίνει το ελάχιστο πλήθος μεταβλητών σαν
στοιχεία παραδείγματος.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 75
QBE: Μια γλώσσα ερωτήσεων που βασίζεται
στο λογισμό πεδίων (Παράρτημα Δ)

 Η γλώσσα είναι πολύ φιλική στο χρήστη, επειδή


χρησιμοποιεί ελάχιστη σύνταξη.
 Η QBE αναπτύχθηκε πλήρως με δυνατότητες για
ομαδοποίηση, συνάθροιση, ενημέρωση κλπ. Και έχει
δειχθεί ότι είναι ισοδύναμη με την SQL.
 Η γλώσσα είναι διαθέσιμη στο QMF (Query Management
Facility) του DB2 της IBM και την έχουν μιμηθεί κατά
διαφορετικούς τρόπους άλλα προϊόντα όπως η ACCESS
της Microsoft, και το PARADOX.
 Λεπτομέρειες , Παράρτημα Δ.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 76

QBE Παραδείγματα
 Η παρακάτω ερώτηση λογισμού πεδίων μπορεί να
ελαχιστοποιηθεί διαδοχικά από τον χρήστη όπως :
 Ερώτηση :

{uv | (∃ q) (∃ r) (∃ s) (∃ t) (∃ w) (∃ x) (∃ y) (∃ z)
(ΕΡΓΑΖΟΜΝΕΟΣ(qrstuvwxyz) and q=‘John’ and r=‘B’
and s=‘Smith’)}

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 77
QBE Παραδείγματα

 Προσδιορισμός πολύπλοκων συνθηκών στην


QBE:
 Στην QBE χρησιμοποιείται μια τεχνική που
λέγεται “πλαίσιο συνθήκης” για να εκφρασθούν
λογικές εκφράσεις σαν συνθήκες.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 78

Σύνοψη Κεφαλαίου
 Σχεσιακή Άλγεβρα
 Μοναδιαίες σχεσιακές πράξεις
 Πράξεις σχεσιακής άλγεβρας από την θεωρία
συνόλων
 Δυαδικές σχεσιακές πράξεις
 Επιπλέον σχεσιακές πράξεις
 Παραδείγματα ερωτήσεων σε σχεσιακή άλγεβρα
 Σχεσιακός λογισμός
 Σχεσιακός λογισμός πλειάδων
 Σχεσιακός λογισμός πεδίων ορισμού

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση,


Διαυλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 6- 79
Το Σχεσιακό Μοντέλο-Σχεσιακή Άλγεβρα, Σχεσιακός
Λογισμός

Μ.Χατζόπουλος

Αρχιτεκτονική Τριών Σχημάτων

Τελικοί Χρήστες
ΕΞΩΤΕΡΙΚΟ ••• Εξωτερική Όψη n
Εξωτερική Όψη 1
ΕΠΙΠΕΔΟ

ΕΝΝΟΙΟΛΟΓΙΚΟ
ΕΝΝΟΙΟΛΟΓΙΚΟ ΣΧΗΜΑ
ΕΠΙΠΕΔΟ

ΕΣΩΤΕΡΙΚΟ
ΕΣΩΤΕΡΙΚΟ ΣΧΗΜΑ
ΕΠΙΠΕΔΟ

Μ.Χατζόπουλος
Έννοιες του Σχεσιακού Μοντέλου

Tο σχεσιακό μοντέλο παριστάνει τη βάση δεδομένων ως μια


συλλογή από σχέσεις. Mιλώντας χωρίς αυστηρότητα,
μπορούμε να πούμε ότι κάθε σχέση μοιάζει με έναν πίνακα
ή, κατά κάποιο τρόπο, με ένα “επίπεδο” αρχείο εγγραφών.

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ Όνομα Σχέσης

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα

31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
58 Παππάς 7 Αθήνα
Κ_Προμ Κ_Πρ Ποσοτ
22 Π35 200
Γνωρίσματα
ΠΡΟΙΟΝ 31 Π35 100
31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
22 Π14 200
Π35 Οθόνη Γκρι 8

Π76 DVD Μαύρο 4 Πλειάδα ή γραμμή


Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
Ορισμοί (1)

• Πεδίο ορισμού (domain) D είναι ένα σύνολο από ατομικές


τιμές. Mε τον όρο ατομικές (atomic) εννοούμε ότι καμιά τιμή
από το πεδίο ορισμού δεν μπορεί να διασπαστεί, στα
πλαίσια του σχεσιακού μοντέλου. Για κάθε πεδίο ορισμού
προσδιορίζεται επίσης ένας τύπος δεδομένων (data type) ή
μια μορφοποίηση (format).
• Σχήμα σχέσης (relation schema) R, που δηλώνεται με R(A1,
A2, ..., An) αποτελείται από ένα όνομα σχέσης R και μια
λίστα από γνωρίσματα A1, A2, ..., An. Ένα σχήμα σχέσης
χρησιμοποιείται για την περιγραφή μιας σχέσης· το R
λέγεται όνομα (name) αυτής της σχέσης.
• Γνώρισμα (attribute) Ai είναι το όνομα ενός ρόλου που
παίζει κάποιο πεδίο ορισμού D στο σχήμα σχέσης R. To D
λέγεται πεδίο ορισμού του Ai και συμβολίζεται dom(Ai).

Μ.Χατζόπουλος

Ορισμοί (2)

• Βαθμός μιας σχέσης (degree of a relation) είναι το πλήθος n


των γνωρισμάτων του σχήματός της.
• Ένα στιγμιότυπο ή μία κατάσταση σχέσης (relation state)) r
του σχήματος σχέσης R(A1, A2,..., An), που συμβολίζεται και
r(R), είναι ένα σύνολο από n-πλειάδες r = { t1, t2, ..., tm}.
Kάθε n-πλειάδα (n-tuple) t είναι μια διατεταγμένη λίστα από
n τιμές t = <v1, v2, ..., vn>, όπου κάθε τιμή vi, 1 ≤ i ≤ n, είναι
ένα στοιχείο του dom(Ai) ή μια ειδική τιμή null. Η i τιμή της
πλειάδας t, που αντιστοιχεί στο γνώρισμα Ai, αναφέρεται σαν t[Ai].
Το στιγμιότυπο λέγεται και έκταση της σχέσης.

Μ.Χατζόπουλος
Εναλλακτικός Ορισμός

Mια σχέση r(R) είναι μια μαθηματική σχέση βαθμού n στα πεδία
ορισμού dom(A1), dom(A2)...,dom(An), που είναι ένα υποσύνολο
του καρτεσιανού γινομένου των πεδίων ορισμού που ορίζουν
την R:

r(R) ⊆ (dom(A1) Χ dom(A2) Χ ... Χ dom(An))

Tο καρτεσιανό γινόμενο προσδιορίζει όλους τους πιθανούς


συνδυασμούς τιμών από τα υποκείμενα πεδία ορισμού.
Eπομένως, αν συμβολίσουμε το πλήθος των τιμών ή την
πληθικότητα (cardinality) ενός πεδίου ορισμού D με |D|, και
υποθέσουμε ότι όλα τα πεδία ορισμού είναι πεπερασμένα, ο
ολικός αριθμός πλειάδων στο καρτεσιανό γινόμενο είναι

|dom(A1)| * |dom(A2)| * ... * |dom(An)|


Μ.Χατζόπουλος

Χαρακτηριστικά των Σχέσεων

• Διάταξη των πλειάδων σε μια σχέση


• Διάταξη των τιμών μέσα σε μια πλειάδα.
• Τιμές στις πλειάδες
• Ερμηνεία μιας σχέσης

Μ.Χατζόπουλος
Σχήμα Βάσης Δεδομένων
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


ΠΑΡΑΓΓΕΛΙΑ
Κ_Προμ Κ_Πρ Ποσοτ

ΠΡΟΙΟΝ
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη Στιγμιότυπο


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π14 200
Π76 DVD Μαύρο 4
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
Τύποι Περιορισμών στο Σχεσιακό Μοντέλο

1. Περιορισμοί ενδογενείς στο μοντέλο δεδομένων. Τους


ονομάζουμε ενδογενείς περιορισμούς του μοντέλου.
2. Περιορισμοί που μπορούν να εκφρασθούν άμεσα στα
σχήματα του μοντέλου δεδομένων, που τυπικά μπορούν
να προσδιορισθούν στην ΓΟΔ (γλώσσα ορισμού των
δεδομένων,). Αυτοί ονομάζονται περιορισμοί που
βασίζονται στο σχήμα.
3. Περιορισμοί που δεν μπορούν να εκφρασθούν άμεσα
στα σχήματα του μοντέλου δεδομένων, και επομένως
πρέπει να εκφρασθούν και να επιβληθούν από τα
προγράμματα εφαρμογών. Αυτοί ονομάζονται
περιορισμοί που βασίζονται στην εφαρμογή.

Μ.Χατζόπουλος

Περιορισμοί του Σχεσιακού Μοντέλου

• Περιορισμοί πεδίου Ορισμού


• Περιορισμοί Κλειδιού
• Περιορισμοί Ακεραιότητας

Μ.Χατζόπουλος
Περιορισμός Πεδίου Ορισμού
Oι περιορισμοί πεδίου ορισμού καθορίζουν ότι η
τιμή κάθε γνωρίσματος A πρέπει να είναι μία
ατομική τιμή από το πεδίο ορισμού dom(A) αυτού
του γνωρίσματος. Oι τύποι δεδομένων που
συνδέονται με τα πεδία ορισμού συνήθως
περιλαμβάνουν τους καθιερωμένους τύπους
αριθμητικών δεδομένων για ακέραιους (όπως
short integer, integer, long integer) και
πραγματικούς αριθμούς (float και double precision
float). Eπίσης είναι διαθέσιμοι τύποι δεδομένων για
χαρακτήρες, συμβολοσειρές σταθερού και
μεταβλητού μήκους καθώς επίσης και για
ημερομηνία, ώρα, χρονικά σημεία και χρηματικά
ποσά.

Μ.Χατζόπουλος

Περιορισμοί Κλειδιού (1)


Όλα τα στοιχεία ενός συνόλου είναι εξ ορισμού διαφορετικά και,
επομένως, όλες οι πλειάδες σε μια σχέση πρέπει επίσης να είναι
διαφορετικές. Aυτό σημαίνει ότι δεν μπορεί δύο πλειάδες να
έχουν τον ίδιο συνδυασμό τιμών για όλα τα γνωρίσματα τους.
Επομένως υπάρχουν άλλα υποσύνολα γνωρισμάτων ενός
σχήματος σχέσης R με την ιδιότητα ότι κανένα ζευγάρι πλειάδων
σε οποιοδήποτε στιγμιότυπο r της R δεν μπορεί να έχει τον ίδιο
συνδυασμό τιμών για τα γνωρίσματα αυτά. Yποθέστε ότι
συμβολίζουμε ένα τέτοιο υποσύνολο γνωρισμάτων με SK· τότε
για δύο διαφορετικές πλειάδες t1 και t2 σε ένα στιγμιότυπο r της
σχέσης R, έχουμε τον περιορισμό ότι:

t1[SK] ≠ t2[SK]

Ένα τέτοιο σύνολο από γνωρίσματα SK λέγεται υπερ-κλειδί


(superkey) του σχήματος σχέσης R.
Μ.Χατζόπουλος
Περιορισμοί Κλειδιού (2)
Ένα κλειδί (key) K ενός σχήματος σχέσης R είναι ένα
υπερ-κλειδί της R με την επιπλέον ιδιότητα ότι αν
αφαιρεθεί οποιοδήποτε γνώρισμα A από το K απομένει
ένα σύνολο γνωρισμάτων K’ το οποίο δεν είναι υπερ-
κλειδί της R. Ένα σχήμα σχέσης μπορεί να έχει
περισσότερα από ένα κλειδιά. Στην περίπτωση αυτή, κάθε
κλειδί λέγεται υποψήφιο κλειδί (candidate key).
Συνηθίζεται να καθορίζουμε ένα από τα υποψήφια κλειδιά
ως πρωτεύον κλειδί (primary key) της σχέσης. Aυτό είναι
το υποψήφιο κλειδί που οι τιμές του χρησιμοποιούνται για
τον προσδιορισμό των πλειάδων της σχέσης. Αυτό το
κλειδί έχει και σημασία για τον τρόπο που θα οργανωθεί
σαν αρχείο η σχέση.

Μ.Χατζόπουλος

Περιορισμοί Ακεραιότητας-Ακεραιότητα Οντοτήτων

O περιορισμός ακεραιότητας οντοτήτων (entity integrity


constraint) καθορίζει ότι δεν μπορεί η τιμή ενός
πρωτεύοντος κλειδιού να είναι null. Aυτό ισχύει επειδή η
τιμή του πρωτεύοντος κλειδιού χρησιμοποιείται για την
αναγνώριση συγκεκριμένων πλειάδων σε μια σχέση· έτσι,
το να έχουμε null τιμές για ένα πρωτεύον κλειδί σημαίνει
ότι μερικές πλειάδες δεν μπορούν να αναγνωριστούν.

Μ.Χατζόπουλος
Περιορισμοί Ακεραιότητας-Αναφορική Ακεραιότητα
Ο περιορισμός αναφορικής ακεραιότητας (referential
integrity constraint) ορίζεται μεταξύ δύο σχέσεων και
χρησιμοποιείται για την διατήρηση της συνέπειας μεταξύ
των πλειάδων των δύο σχέσεων. Ο περιορισμός
αναφορικής ακεραιότητας ορίζει ότι μια πλειάδα μιας
σχέσης που αναφέρεται σε μια άλλη σχέση πρέπει να
αναφέρεται σε μια υπαρκτή πλειάδα της άλλης σχέσης
αυτής.
Για πιο αυστηρό ορισμό χρησιμοποιούμε την έννοια του ξένου
κλειδιού.

Μ.Χατζόπουλος

Έστω δύο σχήματα σχέσεων R1 και R2. Ένα σύνολο


γνωρισμάτων FK στο σχήμα σχέσης R1 είναι ξένο κλειδί
(foreign key) της R1 αν ικανοποιεί τους δύο επόμενους
κανόνες:
1.Tα γνωρίσματα στο FK έχουν το ίδιο πεδίο ορισμού με τα
γνωρίσματα του πρωτεύοντος κλειδιού PK ενός άλλου
σχήματος σχέσης R2. Tα γνωρίσματα FK λέμε ότι αναφέρονται
στη σχέση R2.
2. Mια τιμή του FK στην πλειάδα t1 της παρούσας κατάστασης
r1(R1) είτε εμφανίζεται ως τιμή του PK σε κάποια πλειάδα t2 της
παρούσας κατάστασης r2(R2) είτε είναι null. Στη πρώτη
περίπτωση έχουμε t1[FK] = t2[PK], και λέμε ότι η πλειάδα t1
αναφέρεται στην πλειάδα t2. Η R1 λέγεται η σχέση που
αναφέρει και η R2 η αναφερόμενη σχέση.

Μ.Χατζόπουλος
Σχήμα Βάσης Δεδομένων
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


ΠΑΡΑΓΓΕΛΙΑ
Κ_Προμ Κ_Πρ Ποσοτ

ΠΡΟΙΟΝ
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος

Μ.Χατζόπουλος

Μια κατάσταση σχεσιακής βάσης δεδομένων (relational


database state) DB του S είναι ένα σύνολο από καταστάσεις
σχέσεων DB = {r1, r2, ..., rm} τέτοια ώστε κάθε ri είναι ένα
στιγμιότυπο του Ri και οι σχέσεις ri ικανοποιούν τους
περιορισμούς ακεραιότητας που προσδιορίζονται στο IC
(περιορισμοί ακεραιότητας).

Μ.Χατζόπουλος
Μ.Χατζόπουλος

Μ.Χατζόπουλος
Πράξεις Ενημέρωσης

• Εισαγωγή:(insertion) χρησιμοποιείται για την


εισαγωγή μιας νέας πλειάδας ή κάποιων νέων
πλειάδων σε μια σχέση.
• H διαγραφή (deletion) χρησιμοποιείται για τη
διαγραφή πλειάδων
• H τροποποίηση (modification) χρησιμοποιείται
για να αλλάξει τις τιμές κάποιων γνωρισμάτων.

Μ.Χατζόπουλος

Προσοχή η εισαγωγή μπορεί να προκαλέσει παραβίαση


οποιονδήποτε περιορισμών και επομένως να μην
εκτελεσθεί.

Μ.Χατζόπουλος
Εισαγωγή (Insert)

1. insert(55, Αδαμόπουλος, 6, Λάρισα) into


ΠΡΟΜΗΘΕΥΤΗΣ που είναι αποδεκτή
2. insert(null, Παπαδόπουλος, 5, Αθήνα) μη αποδεκτή
επειδή έχει null στο κλειδί.
3. insert(22, ‘Παππάς’, 5, ‘Αθήνα’) into
ΠΡΟΜΗΘΕΥΤΗΣ μη αποδεκτή γιατί παραβιάζει
την ιδιότητα του κλειδιού.
4. insert(65, ‘Π35’, 120) into ΠΑΡΑΓΓΕΛΙΑ μη
αποδεκτή γιατί παραβιάζει την αναφορική
ακεραιότητα.

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π14 200
Π76 DVD Μαύρο 4
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
Προσοχή η διαγραφή μπορεί να προκαλέσει παραβίαση
της αναφορικής ακεραιότητας και επομένως να μην
εκτελεσθεί ή να γίνει διάδοση.

Μ.Χατζόπουλος

Διαγραφή (Delete)

1. Διαγραφή του προμηθευτή με κωδικό 58 που είναι


επιτρεπτή.
2. Διαγραφή του προμηθευτή με κωδικό 22. Δεν είναι
επιτρεπτή επειδή έχει δύο αναφορές από την
παραγγελία.
3. Διαγραφή της πλειάδας προιόν με κωδικό Π14. Δεν
είναι επιτρεπτή γιατί υπάρχουν αναφορές σ’ αυτή
από δύο πλειάδες στην παραγγελία.

Μ.Χατζόπουλος
H πράξη της τροποποίησης (Modify) χρησιμοποιείται
για να αλλάξουν οι τιμές ενός ή περισσοτέρων
γνωρισμάτων σε μία (ή σε κάποιες) πλειάδες μιας
σχέσης R. Για την επιλογή της πλειάδας (ή των
πλειάδων) που θα τροποποιηθούν είναι απαραίτητο να
προσδιοριστεί μια συνθήκη πάνω στα γνωρίσματα της
σχέσης R.
H τροποποίηση ενός γνωρίσματος που δεν είναι ούτε
πρωτεύον ούτε ξένο κλειδί συνήθως δεν προκαλεί
προβλήματα· το ΣΔBΔ αρκεί μόνο να επιβεβαιώσει ότι η
νέα τιμή είναι του σωστού τύπου δεδομένων και πεδίου
ορισμού. H τροποποίηση της τιμής του πρωτεύοντος
κλειδιού είναι παρόμοια με την διαγραφή μιας πλειάδας
και την εισαγωγή μιας άλλης στη θέση της, διότι
χρησιμοποιούμε το πρωτεύον κλειδί για να
αναγνωρίζουμε τις πλειάδες.
Μ.Χατζόπουλος

Τροποποίηση (Modify)

1. Τροποποίηση του κωδικού προμηθευτή από 58 σε 95.


Είναι αποδεκτή.
2. Τροποποίηση των παραγγελιών από τον προμηθευτή
22 στον προμηθευτή 58. Αποδεκτή.
3. Τροποποίησε τον κωδικό προιόντος στην παραγγελία
από Π14 σε Π50. Μη αποδεκτή γιατί παραβιάζει την
αναφορική ακεραιότητα.
4. Τροποποίησε τον κωδικό προμηθευτή στην σχέση
προμηθευτής από 31 σε 28. Μη αποδεκτή γιατί
παραβιάζει τον περιορισμό πρωτεύοντος κλειδιού
κλειδιού και αναφορικής ακεραιότητας.

Μ.Χατζόπουλος
Σχεσιακή Άλγεβρα

Ένα μοντέλο δεδομένων πρέπει να περιλαμβάνει και


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

Μ.Χατζόπουλος

Πράξεις της Σχεσιακής Άλγεβρας


Πράξεις Συνόλων

• Ένωση (∪)
• Τομή (∩)
• Διαφορά (-)
• Καρτεσιανό Γινόμενο (Χ)
• Διαίρεση (÷)

Μ.Χατζόπουλος
Πράξεις της Σχεσιακής Άλγεβρας
Πράξεις Ειδικά για Σχεσιακές Βάσεις

• Επιλογή (ή Περιορισμός) (σ)


• Προβολή (π)
• Συνένωση (|><|)

Μ.Χατζόπουλος

Επιλογή ή οριζόντια επιλογή ή περιορισμός

H πράξη EΠIΛOΓH χρησιμοποιείται για την


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

Η δομή της είναι:


σ <συνθήκη επιλογής> (R)

Μ.Χατζόπουλος
Συνθήκη επιλογής

• Aiθc (γνώρισμα της σχέσης και c σταθερά)


• AiθAj (Ai και Aj γνωρίσματα της σχέσης)
• NOT συνθήκη
• συνθήκη1 AND συνθήκη2
• συνθήκη1 OR συνθήκη2

θ∈=, <, ≤, >, ≥, ≠ με την προϋπόθεση ότι υπάρχει


διάταξη για το πεδίο τιμών του γνωρίσματος

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
28 Δέδες 12 Λάρισα
44 Αντύπας 7 Λάρισα
58 Παππάς 7 Αθήνα

Κ_Προμ Π_Ονομα Είδος Πόλη


σΕίδος=7 (ΠΡΟΜΗΘΕΥΤΗΣ)
22 Ανδρέου 7 Αθήνα
44 Αντύπας 7 Λάρισα
58 Παππάς 7 Αθήνα
σΕίδος=7 AND Πόλη=Λάρισα (ΠΡΟΜΗΘΕΥΤΗΣ)
Κ_Προμ Π_Ονομα Είδος Πόλη
44 Αντύπας 7 Λάρισα
Μ.Χατζόπουλος
σΕίδος=7 OR Πόλη=Λάρισα (ΠΡΟΜΗΘΕΥΤΗΣ)

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
28 Δέδες 12 Λάρισα
44 Αντύπας 7 Λάρισα
58 Παππάς 7 Αθήνα

Μ.Χατζόπουλος

O βαθμός μιας σχέσης που προκύπτει από μια πράξη


επιλογής είναι ίδιος με το βαθμό της αρχικής σχέσης R στην
οποία εφαρμόστηκε η πράξη αυτή, διότι έχει τα ίδια
γνωρίσματα με την R.
Το πλήθος πλειάδων της προκύπτουσας σχέσης είναι
πάντοτε μικρότερο από ή ίσο με το πλήθος πλειάδων της
αρχικής σχέσης R. Δηλαδή για κάθε συνθήκη C ισχύει:
|σC(R)|≤|R|. Για το λόγο αυτό η πράξη της επιλογής λέγεται και
περιορισμός. Το ποσοστό των πλειάδων που επιλέγονται με
μια συνθήκη επιλογής αναφέρεται ως επιλεκτικότητα
(selectivity) της συνθήκης.
Η πράξη της επιλογής είναι αντιμεταθετική (commutative),
δηλαδή

σ <συνθ1> (σ <συνθ2> (R)) = σ <συνθ2> (σ <συνθ1> (R))

Μ.Χατζόπουλος
Προβολή ή κατακόρυφη επιλογή

H πράξη ΠPOBOΛH (PROJECT), επιλέγει ορισμένες


στήλες από τον πίνακα και απορρίπτει τις
υπόλοιπες. Aν μας ενδιαφέρουν μόνο ορισμένα
γνωρίσματα μιας σχέσης, χρησιμοποιούμε την
πράξη της προβολής για να ‘προβάλουμε’ τη
σχέση στα γνωρίσματα αυτά.
H γενική μορφή της πράξης της προβολής είναι
π <λίστα γνωρισμάτων> (R)

όπου π είναι το σύμβολο που χρησιμοποιείται για


την πράξη ΠPOBOΛH και <λίστα γνωρισμάτων>
είναι μια λίστα από γνωρίσματα της σχέσης R.
Μ.Χατζόπουλος

πΚ_Προμ, Π_Ονομα, Είδος (ΠΡΟΜΗΘΕΥΤΗΣ)

Κ_Προμ Π_Ονομα Είδος


22 Ανδρέου 7
31 Πέτρου 8
28 Δέδες 12
44 Αντύπας 7
58 Παππάς 7

Μ.Χατζόπουλος
Όμως τι θα γίνει για την
π Είδος, Πόλη (ΠΡΟΜΗΘΕΥΤΗΣ)

Θα πάρουμε αυτό? Ή αυτό?

Είδος Πόλη Είδος Πόλη


7 Αθήνα 7 Αθήνα
8 Πάτρα 8 Πάτρα
12 Λάρισα 12 Λάρισα
7 Λάρισα 7 Λάρισα
7 Αθήνα
Για να είναι σύνολο γίνεται απαλειφή
των διπλοτύπων

Μ.Χατζόπουλος

Ο βαθμός της είναι ίσος με το πλήθος των


γνωρισμάτων στη <λίστα γνωρισμάτων> και
επομένως μικρότερος ή ίσος από αυτόν της
αρχικής σχέσης.
Tο πλήθος των πλειάδων μιας σχέσης που
προκύπτει από μια πράξη προβολής είναι πάντοτε
μικρότερο από ή ίσο με το πλήθος πλειάδων της
αρχικής σχέσης.
Ισχύει
π <λίστα1> (π <λίστα2> (R)) = π <λίστα1> (R)
εφόσον η <λίστα2> περιέχει τα γνωρίσματα της
λίστας <λίστα1>
Η αντιμεταθετικότητα δεν ισχύει για την ΠPOBOΛH.

Μ.Χατζόπουλος
Συνδυασμός Πράξεων
Να βρεθούν τα ονόματα των προμηθευτών από την Λάρισα

π Π_Ονομα σ Πόλη=‘Λάρισα’ (ΠΡΟΜΗΘΕΥΤΗΣ)

Π_Ονομα
Δέδες
Αντύπας

Μ.Χατζόπουλος

ή με την σειρά εκτέλεσης


Τ1←σ Πόλη=‘Λάρισα’ (ΠΡΟΜΗΘΕΥΤΗΣ)

Κ_Προμ Π_Ονομα Είδος Πόλη


28 Δέδες 12 Λάρισα
44 Αντύπας 7 Λάρισα

π Π_Ονομα (Τ1)

Π_Ονομα
Δέδες
Αντύπας

Μ.Χατζόπουλος
Μετονομασία Γνωρισμάτων

ΠΡΟΜ_ΑΘ←σΠόλη=Αθήνα (ΠΡΟΜΗΘΕΥΤΗΣ)

ΠΡΟΜ_ΑΘ(Κωδ_Π, Επίθετο, Είδος, Πόλη)


←σΠόλη=Αθήνα (ΠΡΟΜΗΘΕΥΤΗΣ)

Μ.Χατζόπουλος

Μπορούμε να ορίσουμε την πράξη RENAME –που μπορεί είτε να


μετονομάσει το όνομα μιας σχέσης, η τα ονόματα των γνωρισμάτων, ή
και τα δύο- με ένα τρόπο παρόμοιο με αυτόν που ορίσαμε τις πράξεις
της επιλογής και της προβολής. Η γενική πράξη RENAME όταν
εφαρμοσθεί στην σχέση R βαθμού n συμβολίζεται με οποιαδήποτε
από τις παρακάτω τρεις μορφές:

ρS(B1,B2,…Bn)(R) ή ρS(R) ή ρ(B1,B2,…Bn)(R)

Μ.Χατζόπουλος
Συνολοθεωρητικές Πράξεις

• Ένωση
• Τομή
• Διαφορά
• Καρτεσιανό Γινόμενο

Μ.Χατζόπουλος

Ένωση
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
28 Δέδες 12 Λάρισα
58 Παππάς 7 Αθήνα

ΠΡΟΙΟΝ

Κ_Πρ Πρ_Ονομα Χρώμα Τοποθ Βάρος


Π35 Οθόνη Γκρι Άργος 8
Π76 DVD Μαύρο Αθήνα 4
Π14 Κράνος Άσπρο Αθήνα 1
Μ.Χατζόπουλος
Τ1
Τ1←πΠόλις(ΠΡΟΜΗΘΕΥΤΗΣ) Πόλη
Πάτρα
Τ2 ← πΤοποθ(ΠΡΟΙΟΝ) Λάρισα
Αθήνα

Αποτέλεσμα(City) ← Τ1∪Τ2 Τ2
Τοποθ
Άργος
Αποτέλεσμα
Αθήνα
City
Πάτρα
Λάρισα
Άργος
Αθήνα

Μ.Χατζόπουλος

Τομή
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
28 Δέδες 12 Λάρισα
58 Παππάς 7 Αθήνα

ΠΡΟΙΟΝ

Κ_Πρ Πρ_Ονομα Χρώμα Τοποθ Βάρος


Π35 Οθόνη Γκρι Άργος 8
Π76 DVD Μαύρο Αθήνα 4
Π14 Κράνος Άσπρο Αθήνα 1
Μ.Χατζόπουλος
Τ1
Τ1←πΠόλις(ΠΡΟΜΗΘΕΥΤΗΣ) Πόλη
Πάτρα
Τ2 ← πΤοποθ(ΠΡΟΙΟΝ) Λάρισα
Αθήνα

Αποτέλεσμα(City) ← Τ1∩Τ2 Τ2
Τοποθ
Άργος
Αποτέλεσμα
Αθήνα
City
Αθήνα

Μ.Χατζόπουλος

Διαφορά
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
28 Δέδες 12 Λάρισα
58 Παππάς 7 Αθήνα

ΠΡΟΙΟΝ

Κ_Πρ Πρ_Ονομα Χρώμα Τοποθ Βάρος


Π35 Οθόνη Γκρι Άργος 8
Π76 DVD Μαύρο Αθήνα 4
Π14 Κράνος Άσπρο Αθήνα 1
Μ.Χατζόπουλος
Τ1
Τ1←πΠόλις(ΠΡΟΜΗΘΕΥΤΗΣ) Πόλη
Πάτρα
Τ2 ← πΤοποθ(ΠΡΟΙΟΝ) Λάρισα
Αθήνα

Αποτέλεσμα(City) ← Τ1-Τ2 Τ2
Τοποθ
Άργος
Αποτέλεσμα
Αθήνα
City
Λάρισα
Πάτρα

Μ.Χατζόπουλος

Ιδιότητες των Συνολοθεωρητικών Πράξεων

R∪S=S ∪ R και R∩S = S∩R


R ∪ (S ∪ T) = (R ∪ S) ∪ T, και
(R ∩ S) ∩ T =R ∩ (S ∩ T)

Οι πράξεις είναι προσεταιριστικές,


R ∪ (S ∪ T) = (R ∪ S) ∪ T, και
(R ∩ S) ∩ T =R ∩ (S ∩ T)
H πράξη της διαφοράς δεν είναι
αντιμεταθετική, δηλαδή :
R-S≠S-R

Μ.Χατζόπουλος
Καρτεσιανό Γινόμενο (CARTESIAN PRODUCT)
ή ΧΙΑΣΤΙ ΓΙΝΟΜΕΝΟ (CROSS PRODUCT)

H πράξη αυτή, χρησιμοποιείται προκειμένου να


συνδυαστούν πλειάδες από δύο σχέσεις έτσι ώστε να
μπορούν να αναγνωριστούν οι πλειάδες που σχετίζονται.
Γενικά, το αποτέλεσμα της πράξης R(A1, A2, ..., An) Χ S(B1, B2,
..., Bm) είναι μια σχέση Q με n + m γνωρίσματα Q(A1, A2, ...,
An, B1, B2, ..., Bm) και με αυτήν τη σειρά. H προκύπτουσα
σχέση Q έχει μία πλειάδα για κάθε συνδυασμό πλειάδων -
μία από την R και μία από την S. Eπομένως, αν η R έχει nR
πλειάδες και η S nS πλειάδες, τότε η R Χ S έχει nR * nS
πλειάδες

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π14 200
Π76 DVD Μαύρο 4
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
Έστω ότι για κάθε προμηθευτή από την Αθήνα θέλουμε τον κωδικό
του το όνομα του, τον κωδικό και την ποσότητα κάθε παραγγελίας

Τ1 ← σ Πολη=Αθήνα (ΠΡΟΜΗΘΕΥΤΗΣ)

Τ2← Τ1 Χ ΠΑΡΑΓΓΕΛΙΑ

Τ3 ← σ Τ1.Κ.Προμ=ΠΑΡΑΓΕΛΙΑ. Κ.Προμ(Τ2)

Τ← π Τ3.Κ.Προμ, Π_Ονομα, Κ_Πρ, Ποσοτ (Τ3)

Μ.Χατζόπουλος

Τ1
Κ_Προμ Π_Ονομα Είδος Πόλη
22 Ανδρέου 7 Αθήνα
58 Παππάς 7 Αθήνα

Μ.Χατζόπουλος
Τ2

Κ_Προμ Π_Ονομα Είδος Πόλη Κ_Προμ Κ_Πρ Ποσοτ


22 Ανδρέου 7 Αθήνα 22 Π35 200
22 Ανδρέου 7 Αθήνα 31 Π35 100

22 Ανδρέου 7 Αθήνα 31 Π76 150


22 Ανδρέου 7 Αθήνα 28 Π14 150
22 Ανδρέου 7 Αθήνα 22 Π14 150
58 Παππάς 7 Αθήνα 22 Π35 200
58 Παππάς 7 Αθήνα 31 Π35 100

58 Παππάς 7 Αθήνα 31 Π76 150


58 Παππάς 7 Αθήνα 28 Π14 150
58 Παππάς 7 Αθήνα 22 Π14 200

Μ.Χατζόπουλος

Τ3

Κ_Προμ Π_Ονομα Είδος Πόλη Κ_Προμ Κ_Πρ Ποσοτ


22 Ανδρέου 7 Αθήνα 22 Π35 200

22 Ανδρέου 7 Αθήνα 22 Π14 150

Τ
Κ_Προμ Π_Ονομα Κ_Πρ Ποσοτ
22 Ανδρέου Π35 200

22 Ανδρέου Π14 150

Μ.Χατζόπουλος
Πράξεις Συνένωσης

H πράξη ΣYNENΩΣH (JOIN), που συμβολίζεται με


χρησιμοποιείται για να συνδυαστούν σε ενιαίες
πλειάδες κάποιες σχετιζόμενες πλειάδες από δύο
σχέσεις.

Μ.Χατζόπουλος

Έστω ότι για κάθε προμηθευτή από την Αθήνα θέλουμε τον κωδικό
του το όνομα του, τον κωδικό προϊόντος και την ποσότητα κάθε
παραγγελίας

Τ1 ← σ Πολη=Αθήνα (ΠΡΟΜΗΘΕΥΤΗΣ)

Τ2← Τ1 Τ1.Κ.Προμ=ΠΑΡΑΓΕΛΙΑ. Κ.Προμ ΠΑΡΑΓΓΕΛΙΑ

Τ← π Τ2.Κ.Προμ, Π_Ονομα, Κ_Πρ, Ποσοτ (Τ2)

Μ.Χατζόπουλος
Τ1
Κ_Προμ Π_Ονομα Είδος Πόλη
22 Ανδρέου 7 Αθήνα
58 Παππάς 7 Αθήνα

Τ2

Κ_Προμ Π_Ονομα Είδος Πόλη Κ_Προμ Κ_Πρ Ποσοτ


22 Ανδρέου 7 Αθήνα 22 Π35 200
22 Ανδρέου 7 Αθήνα 22 Π14 150

Τ
Κ_Προμ Π_Ονομα Κ_Πρ Ποσοτ
22 Ανδρέου Π35 200

22 Ανδρέου Π14 150

Μ.Χατζόπουλος

H γενική μορφή της πράξης ΣYNENΩΣH επί δύο σχέσεων


R(A1, A2, ..., An) και S(B1, B2, ..., Bm) είναι:

R <συνθήκη συνένωσης> S

Μ.Χατζόπουλος
Συνθήκη Επιλογής

Ai θ Βj όπου τα Ai και Βj είναι γνωρίσματα των R και S


αντίστοιχα

συνθήκη1 AND συνθήκη2


θ∈=, <, ≤, >, ≥, ≠ με την προϋπόθεση ότι υπάρχει
διάταξη για το πεδίο τιμών του γνωρίσματος
Η συνένωση αυτή λέγεται και θ συνένωση.
Η πιο συνηθισμένη περίπτωση συνένωσης είναι αυτή της
συνένωσης με συνθήκη ισότητας (EQUIJOIN)

Μ.Χατζόπουλος

Στη συνένωση ισότητας ένα ζεύγος γνωρισμάτων έχει την


ίδια τιμή σε κάθε πλειάδα. Eπειδή το ένα γνώρισμα
από κάθε τέτοιο ζεύγος γνωρισμάτων με ίδιες τιμές
αποτελεί πλεονασμό, δημιουργήθηκε μια νέα πράξη
που λέγεται ΦYΣIKH ΣYNENΩΣH (NATURAL JOIN) –
συμβολίζεται με *- για την απαλοιφή του δεύτερου
γνωρίσματος. O τυπικός ορισμός της φυσικής
συνένωσης απαιτεί τα δύο γνωρίσματα της
συνένωσης (ή κάθε ζεύγος γνωρισμάτων
συνένωσης) να έχουν το ίδιο όνομα (αν αυτό δεν
ισχύει γίνεται μετονομασία του ενός).

Μ.Χατζόπουλος
Έστω ότι για κάθε προμηθευτή από την Αθήνα θέλουμε τον κωδικό
του το όνομα του, τον κωδικό προϊόντος και την ποσότητα κάθε
παραγγελίας

Τ1 ← σ Πολη=Αθήνα (ΠΡΟΜΗΘΕΥΤΗΣ)

Τ2← Τ1 *ΠΑΡΑΓΓΕΛΙΑ

Τ← π Τ2.Κ.Προμ, Π_Ονομα, Κ_Πρ, Ποσοτ (Τ2)

Μ.Χατζόπουλος

Τ1
Κ_Προμ Π_Ονομα Είδος Πόλη
22 Ανδρέου 7 Αθήνα
58 Παππάς 7 Αθήνα

Τ2

Κ_Προμ Π_Ονομα Είδος Πόλη Κ_Πρ Ποσοτ


22 Ανδρέου 7 Αθήνα Π35 200
22 Ανδρέου 7 Αθήνα Π14 150

Τ
Κ_Προμ Π_Ονομα Κ_Πρ Ποσοτ
22 Ανδρέου Π35 200

22 Ανδρέου Π14 150

Μ.Χατζόπουλος
Ένας πιο γενικός αλλά μη τυπικός ορισμός της
φυσικής συνένωσης είναι ο:

Q←R * (<λίστα1>, <λίστα2>) S

Στην περίπτωση αυτή, το <λίστα1> προσδιορίζει


μια λίστα i γνωρισμάτων από την R και το <λίστα2>
προσδιορίζει μια λίστα i γνωρισμάτων από την S.
Oι λίστες χρησιμοποιούνται για να σχηματιστούν
συνθήκες σύγκρισης ισότητας ανάμεσα σε ζεύγη
αντίστοιχων γνωρισμάτων· στη συνέχεια, οι
συνθήκες ενώνονται με τελεστές σύζευξης. Mόνο η
λίστα που αντιστοιχεί σε γνωρίσματα της πρώτης
σχέσης R - η <λίστα1> - διατηρείται στο αποτέλεσμα
Q.
Μ.Χατζόπουλος

αν η R έχει nR πλειάδες και η S έχει nS πλειάδες, το


αποτέλεσμα μιας πράξης συνένωσης R |><|
<συνθήκη συνένωσης> S θα έχει μεταξύ μηδέν και
nR*nS πλειάδων. Tο αναμενόμενο μέγεθος του
αποτελέσματος της συνένωσης διαιρούμενο δια του
μέγιστου μεγέθους nR*nS δίνει μια αναλογία που
λέγεται επιλεκτικότητα συνένωσης (join selectivity),
και αποτελεί ιδιότητα κάθε συνθήκης συνένωσης.

Μ.Χατζόπουλος
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π14 200
Π76 DVD Μαύρο 4
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος

Έστω ότι για κάθε προμηθευτή θέλουμε τον κωδικό του το όνομα
του, τον κωδικό και το όνομα προϊόντος και την ποσότητα κάθε
παραγγελίας

Τ1← (ΠΡΟΜΗΘΕΥΤΗΣ*ΠΑΡΑΓΓΕΛΙΑ)*ΠΡΟΙΟΝ

Τ ←π Κ.Προμ, Π_Ονομα, Κ_Πρ, Πρ_Ονομα Ποσοτ (Τ1)

Μ.Χατζόπουλος
Το σύνολο των πράξεων της σχεσιακής άλγεβρας
{σ, π, ∪, -, Χ}είναι ένα πλήρες (complete) σύνολο,
κατά την έννοια ότι κάθε άλλη πράξη της σχεσιακής
άλγεβρας μπορεί να εκφραστεί ως μια ακολουθία
πράξεων από το σύνολο αυτό.

R ∩ S ≡ (R ∪ S) - ((R - S) ∪ (S - R))

R|><| <συνθήκη> S≡ σ <συνθήκη> (R Χ S)

Μ.Χατζόπουλος

Διαίρεση

H πράξη ΔIAIPEΣH (DIVISION) είναι χρήσιμη για


μια ειδική κατηγορία ερωτήσεων που
εμφανίζονται
μερικές φορές σε εφαρμογές βάσεων
δεδομένων. Συμβολίζεται με ÷

Ας δούμε ένα παράδειγμα:


Να βρεθούν οι κωδικοί των προμηθευτών που
προμηθεύουν όλα τα προϊόντα.

Μ.Χατζόπουλος
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π76 450
Π76 DVD Μαύρο 4
22 Π14 200
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος

Τ1← π Κ_πρ (ΠΡΟΙΟΝ)

Τ2 ← π Κ_Προμ, Κ_Πρ (ΠΑΡΑΓΓΕΛΙΑ)

Τ ←Τ2÷Τ1

Μ.Χατζόπουλος
Τ1 Τ2
Κ_Πρ Κ_Προμ Κ_Πρ

Π35 22 Π35

Π76 31 Π35

Π14 31 Π76
28 Π14

22 Π76
22 Π14

Κ_Προμ
22

Μ.Χατζόπουλος

Η πράξη της διαίρεσης εφαρμόζεται σε δύο σχέσεις R(Z) ÷


S(X), όπου X ⊆ Z. Έστω Y = Z – X (και επομένως Z=X∪Y,
δηλαδή έστω Y το σύνολο των γνωρισμάτων της R που δεν
είναι γνωρίσματα της S. Tο αποτέλεσμα της διαίρεσης είναι
μια σχέση T(Y) που περιλαμβάνει μια πλειάδα t αν στην R
υπάρχει μια πλειάδα tR με tR[Y] = t και tR[X] = tS για κάθε
πλειάδα tS της S. Aυτό σημαίνει ότι για να εμφανιστεί μια
πλειάδα t στο αποτέλεσμα T της διαίρεσης, οι τιμές της t
πρέπει να εμφανίζονται στην R σε συνδυασμό με κάθε
πλειάδα της S.

T1←πY(R)
T2←πY((S Χ T1) - R)
T←T1 -T2

Μ.Χατζόπουλος
Ένας τύπος πράξης που, γενικά, δεν μπορεί να οριστεί στη
σχεσιακή άλγεβρα, είναι η αναδρομική κλειστότητα (recursive
closure). Aυτή η πράξη εφαρμόζεται σε μια αναδρομική
συσχέτιση (recursive relationship) μεταξύ πλειάδων του ίδιου
τύπου, όπως η συσχέτιση μεταξύ ενός εργαζομένου και του
προϊσταμένου του.

ΕΡΓΑΖΟΜΕΝΟΣ

Κωδ Επίθετο Προιστ Πόλη


22 Ανδρέου null Αθήνα
31 Πέτρου 22 Πάτρα
28 Δέδες 31 Λάρισα
46 Τσέρτος null Άργος
68 Στύλας 46 Αθήνα
58 Παππάς 22 Αθήνα

Μ.Χατζόπουλος

Να βρεθούν οι κωδικοί των εργαζομένων που επιβλέπει άμεσα ή


έμμεσα ο 22.
Τ1←π Κωδ, Προιστ (ΕΡΓΑΖΟΜΕΝΟΣ)

Τ2 ←σΠροιστ=22 (Τ1)
Τ3 ←π Προιστ(Τ2)

Τ1 Τ2
Κωδ Προιστ Κωδ Προιστ
Τ3
22 null 31 22
31 22 Κωδ
58 22
28 31 31
46 null 58
68 46
58 22

Μ.Χατζόπουλος
T4←T2 |><| T2.Kωδ=Τ1.Προιστ T1

Τ1.Κωδ Τ1.Προιστ Κωδ Προιστ


28 31 31 22

Τ5 ←π Τ1.Κωδ Τ4

Κωδ
28

ΑΠΟΤΕΛΕΣΜΑ ←Τ3∪Τ5

Μ.Χατζόπουλος

Πράξη Εξωτερικής Συνένωσης


Πολλές φορές σε μια πράξη συνένωσης R |><| S
θέλουμε στο αποτέλεσμα μόνο τις πλειάδες της μιας
σχέσης (της R ή της S) για τις οποίες υπάρχει πλειάδα
με αντίστοιχη τιμή στο γνώρισμα της συνένωσης.
Ορίζουμε μια επέκταση της πράξης της συνένωσης που
λέγεται εξωτερική συνένωση. Διακρίνουμε την
αριστερή εξωτερική συνένωση( |><| ) και την δεξιά
εξωτερική συνένωση (|×| )

Μ.Χατζόπουλος
ΠΡΟΜΗΘΕΥΤΗΣ

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π76 450
Π76 DVD Μαύρο 4
22 Π14 200
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος

Να βρεθούν τα ονόματα των προμηθευτών που έχουν


τουλάχιστον μια παραγγελία

R←ΠΡΟΜΗΘΕΥΤΗΣ
S ←ΠΑΡΑΓΓΕΛΙΑ

T1 ←R |><| R.Κ_ΠΡΟΜ=S.Κ_ΠΡΟΜ S

ΑΠΟΤΕΛΕΣΜΑ ←π Π_Ονομα Τ1

Μ.Χατζόπουλος
Εξωτερική Ένωση
H πράξη της EΞΩTEPIKHΣ ENΩΣHΣ (OUTER UNION)
αναπτύχθηκε για να παράγεται η ένωση πλειάδων από
μη συμβατές προς την ένωση σχέσεις. Aυτή η πράξη θα
δημιουργήσει την ένωση πλειάδων δύο σχέσεων που
είναι μερικά συμβατές (partially compatible), κατά την
έννοια ότι κάποια μόνο από τα γνωρίσματά τους είναι
συμβατά ως προς την ένωση.Tα γνωρίσματα που δεν
είναι συμβατά ως προς την ένωση και από τις δύο
σχέσεις διατηρούνται στο αποτέλεσμα, και οι πλειάδες
που δεν έχουν τιμές για τα γνωρίσματα αυτά
συμπληρώνονται με τιμές null.

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ OUTER_UNION ΠΡΟΙΟΝ

Κ_Προμ Π_Ονομα Είδος Πόλη Κ_Πρ Πρ_Ονομα Χρωμα Βαρος


22 Ανδρέου 7 Αθήνα null null null null
31 Πέτρου 8 Πάτρα null null null null
28 Δέδες 12 Λάρισα null null null null
58 Παππάς 7 Αθήνα null null null null

null null null null Π35 Οθόνη Γκρι 8


null null null null Π76 DVD Μαύρο 4
null null null null Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
ΠΡΟΜΗΘΕΥΤΗΣ (ΠΡΜ)

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα
ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)
28 Δέδες 12 Λάρισα
Κ_Προμ Κ_Πρ Ποσοτ
58 Παππάς 7 Αθήνα
22 Π35 200

ΠΡΟΙΟΝ (ΠΡ) 31 Π35 100


31 Π76 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
28 Π14 150
Π35 Οθόνη Γκρι 8
22 Π76 450
Π76 DVD Μαύρο 4
22 Π14 200
Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος

Όλα τα στοιχεία των προϊόντων

σ(ΠΡ)

Κ_Πρ Πρ_Ονομα Χρώμα Βάρος


Π35 Οθόνη Γκρι 8

Π76 DVD Μαύρο 4


Π14 Κράνος Άσπρο 1

Μ.Χατζόπουλος
Όλα τα στοιχεία των προμηθευτών από την Αθήνα
σ Πόλη =‘Αθήνα’ (ΠΡΜ)

Κ_Προμ Π_Ονομα Είδος Πόλη


22 Ανδρέου 7 Αθήνα
58 Παππάς 7 Αθήνα

Μ.Χατζόπουλος

Τους κωδικούς των προμηθευτών που έχουν παραγγελία


για το προϊόν Π35

Τ1←σ Κ_Πρ=Π35 (ΠΑΡ)

Τ ←π Κ_Προμ (Τ1)

Κ_Προμ
22

31

Μ.Χατζόπουλος
Τα στοιχεία των παραγγελιών που η ποσότητα είναι
μεταξύ 150 και 300

σ Ποσοτ≥150 and Ποσοτ≤300 (ΠΑΡ)

Μ.Χατζόπουλος

Οι κωδικοί των προϊόντων για τα οποία δεν έχει


παραγγελία ο προμηθευτής 28
Τ1 ←σ Κ_Προμ=28 (ΠΑΡ)

Τ2 ←π Κ_Πρ (Τ1)

Τ3 ←π Κ_Πρ (ΠΡ)

Τ ←Τ3-Τ2

Μ.Χατζόπουλος
Οι κωδικοί των προϊόντων για τα οποία υπάρχει
παραγγελία σε προμηθευτή από την Λάρισα

Τ1 ←σ Πόλη=‘Λάρισα’ (ΠΡΜ)

Τ2 ←π Κ_Προμ (Τ1)

Τ3 ←Τ2*ΠΑΡ

Τ ←π Κ_Πρ (Τ3)

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ (ΠΡΜ)
Κ_Προμ Π_Ονομα Είδος Πόλη ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)
Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα 22 Π35 Ε25 200

28 Δέδες 12 Λάρισα 31 Π35 Ε25 100


58 Παππάς 7 Αθήνα 31 Π76 Ε32 150
ΠΡΟΙΟΝ (ΠΡ) 28 Π14 Ε68 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
22 Π76 Ε25 450
Π35 Οθόνη Γκρι 8
22 Π35 Ε32 670
Π76 DVD Μαύρο 4
22 Π35 Ε68 650
Π14 Κράνος Άσπρο 1
58 Π14 Ε68 670
Κ_Ερ Προυπ Πόλη
28 Π14 Ε32 540
Ε25 245Κ Αθήνα
ΕΡΓΟ 22 Π14 Ε25 200
(ΕΡ) Ε32 500Κ Άργος
Ε68 1000Κ Αθήνα
Μ.Χατζόπουλος
Τα ζεύγη προμηθευτής έργο που βρίσκονται στην ίδια
πόλη

Τ1←ΠΡΜ*ΕΡ
Τ2 ←π Κ_Προμ,Κ_Ερ (Τ1)

Μ.Χατζόπουλος

Οι κωδικοί των προϊόντων για τα οποία υπάρχει


παραγγελία από ένα προμηθευτή από την Αθήνα σε ένα
έργο στην Αθήνα.

Τ1←σ Πόλη=‘Αθήνα’ (ΕΡ)


Τ2 ←π Κ_Ερ (Τ1)
Τ3 ←σ Πόλη=‘Αθήνα’ (ΠΡΜ)
Τ4 ←π Κ_Προμ (Τ3)
Τ5 ←Τ2*ΠΑΡ
Τ6 ←Τ5*Τ4
Τ ←π Κ_Πρ (Τ6)

Μ.Χατζόπουλος
Τα ζεύγη κωδικών προϊόντων για τα οποία υπάρχει
παραγγελία στον ίδιο προμηθευτή
Τ1 ←π Κ_Προμ,Κ_Πρ (ΠΑΡ)
Τ2 (ΧΚ_Προμ, ΧΚ_Πρ)← π Κ_Προμ,Κ_Πρ (ΠΑΡ)
Τ3 ←Τ1 |><|Κ_Προμ=ΧΚ_Προμ and Κ_Πρ<ΧΚ_Πρ Τ2

Τ ←π Κ_πρ,ΧΚ_Πρ (Τ3)

Μ.Χατζόπουλος

Οι κωδικοί των προϊόντων για τα οποία υπάρχει


παραγγελία από τουλάχιστον ένα έργο στην Αθήνα.

Τ1 ←σ Πόλη=‘Αθήνα’ (ΕΡ)
Τ2 ←π Κ_ΕΡ (Τ1)
Τ3 ←Τ2*ΠΑΡ
Τ ←π Κ_Πρ (Τ3)

Μ.Χατζόπουλος
Οι κωδικοί των έργων με προϋπολογισμό μικρότερο από
αυτόν του Ε68
Τ1 (ΧΚ_Ερ, ΧΠρουπ)←π Κ_Ερ, Προυπ (ΕΡ)
Τ2 (ΥΚ_Ερ, ΥΠρουπ)←π Κ_Ερ, Προυπ (ΕΡ)
Τ3 ←Τ1 Χ Τ2
Τ4 ←σ ΧΚ_Ερ=Ε68 and Χπρουπ>Υπρουπ (Τ3)
Τ5 ←π ΥΚ_Ερ (Τ4)

Μ.Χατζόπουλος

Τα έργα για τα οποία υπάρχουν παραγγελίες μόνο στον


προμηθευτή 22

Τ1 ←σ Κ_Προμ=22 (ΠΑΡ)
Τ2 ←π Κ_Ερ (Τ1)
Τ3 ← σ Κ_Προμ≠22 (ΠΑΡ)
Τ4 ←π Κ_Ερ (Τ3)
Τ ←Τ2-Τ4

Μ.Χατζόπουλος
Οι κωδικοί των προϊόντων για τα οποία υπάρχει
παραγγελία για όλα τα έργα στο Άργος

Τ1 ←σ Πόλη=‘Άργος’ (ΕΡ)
Τ2 ←π Κ_Ερ (Τ1)
Τ3 ←π Κ_Πρ, Κ_Ερ (ΠΑΡ)
Τ ←Τ3÷Τ2

Μ.Χατζόπουλος

Τους κωδικούς των προμηθευτών που έχουν παραγγελία


για ένα προϊόν σε όλα τα έργα

Τ1 ←π Κ_Ερ (ΕΡ)
Τ2 ←π Κ_Προμ,Κ_Πρ,Κ_Ερ (ΠΑΡ)
Τ3 ←Τ2÷Τ1
Τ4 ←π Κ_Προμ (Τ3)

Μ.Χατζόπουλος
Οι κωδικοί των προϊόντων για τα οποία είτε υπάρχει
παραγγελία σε προμηθευτή από την Αθήνα ή για έργο
στην Αθήνα
Τ1 ←σ Πόλη=‘Αθήνα’ (ΠΡΜ)
Τ2 ←π Κ_Προμ (Τ1)
Τ3 ←Τ1*ΠΑΡ
Τ4 ←π Κ_Πρ (Τ3)
Τ5 ← σ Πόλη=‘Αθήνα’ (ΕΡ)
Τ6 ←π Κ_Ερ (Τ5)
Τ7 ←Τ6*ΠΑΡ
Τ8 ←π Κ_Πρ (Τ7)
Τ ←Τ8∪Τ4

Μ.Χατζόπουλος

ΕΡΓΑΖΟΜΕΝΟΣ

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

ΤΜΗΜΑ
Τ_ΟΝΟΜΑ ΚΩΔ_ΤΜΗΜ ΔΙΕΥΘΥΝΤΗΣ ΗΜΕΡ_ΕΝΑΡΞΗΣ

ΤΟΠΟΘ_ΤΜΗΜΑ ΑΠΑΣΧΟΛΗΣΗ

ΚΩΔ_ΤΜΗΜ Τ_ΤΟΠΟΘΕΣΙΑ Ε_ΑΡΤΑΥΤ Κ_ΕΡΓΟ ΩΡΕΣ

ΕΡΓΟ
Ε_ΟΝΟΜΑ ΚΩΔ_ΕΡΓΟΥ Κ_ΤΜΗΜΑ ΤΟΠ_ΕΡΓΟΥ

ΕΞΑΡΤΩΜΕΝΟΣ
Ε_ΑΡΤΑΥΤ ΟΝΟΜΑ_ΕΞΑΡΤΩΜΕΝΟΥ ΗΜ_ΓΕΝ ΦΥΛΟ ΣΧΕΣΗ
Μ.Χατζόπουλος
Bρες τα ονόματα και τις διευθύνσεις όλων των
εργαζομένων που δουλεύουν στο τμήμα ‘Research’.

RESEARCH_TMHM ← σ T_ONOMA = ‘Research’ (TMHMA)


EP_RESEARCH_TMHM ← (RESEARCH_TMHM |><|
KΩΔ_TMHM = APIΘ_T EPΓAZOMENOΣ)
AΠOTEΛEΣMA ← π ONOMA, EΠIΘETO, ΔIEYΘYNΣH
(EP_RESEARCH_TMHM)

Μ.Χατζόπουλος

Για κάθε έργο στο ‘Stafford’, δώσε μια λίστα με τον κωδικό του
έργου, το τμήμα στο οποίο υπάγεται, και το επίθετο, τη
διεύθυνση και την ημερομηνία γέννησης του διευθυντή του
τμήματος στο οποίο υπάγεται το έργο.

STAFFORD_EPΓA ← σ TOΠ_EPΓOY = ‘Stafford’ (EPΓO)


TMHMATA ←(STAFFORD_EPΓA |><| K_TMHMA =
KΩΔ_TMHM TMHMA)
ΔIEYΘYNTEΣ_EPΓΩN ← (TMHMATA |><| ΔIEYΘYNTHΣ =
AP_TAYT EPΓAZOMENOΣ)
AΠOTEΛEΣMA ← π KΩΔ_EPΓOY, KΩΔ_TMHM, EΠIΘETO,
ΔIEYΘYNΣH, HMEP_ΓEN (EP_RESEARCH_TMHM)

Μ.Χατζόπουλος
Δώσε μια λίστα κωδικών των έργων όπου εμπλέκονται είτε
ως απασχολούμενοι είτε ως διευθυντές των τμημάτων που τα
ελέγχουν εργαζόμενοι με επίθετο ‘Smith’.

SMITH(E_APTAYT) ← π AP_TAYT (σ EΠIΘETO = ‘Smith’


(EPΓAZOMENOΣ))
SMITH_EPΓA ← π K_EPΓOY (AΠAΣXOΛHΣH * SMITH)
ΔIEYΘYNTEΣ←π EΠIΘETO, KΩΔ_TMHM (EPΓAZOMENOΣ |><|
AP_TAYT = ΔIEYΘYNTHΣ TMHMA)
ΔIEYΘYNTEΣ_SMITH ← σ EΠIΘETO = ‘Smith’ (ΔIEYΘYNTEΣ)
ΔIEYΘYNTEΣ_SMITH_TMHM π KΩΔ_TMHM
(ΔIEYΘYNTEΣ_SMITH)
SMITH_TMHM_ΔIEYΘ(KΩΔ-TMHMA) ← π KΩΔ_EPΓOY
(ΔIEYΘYNTEΣ_SMITH*ΕΡΓΟ)
AΠOTEΛEΣMA← (SMITH_EPΓA ∪
SMITH_EPΓA_ΔIEYΘ)

Μ.Χατζόπουλος

Σχεσιακός Λογισμός Πλειάδων

Στο σχεσιακό λογισμό γράφουμε μια δηλωτική έκφραση για να


προσδιορίσουμε ένα αίτημα ανάκτησης και επομένως δεν υπάρχει
περιγραφή για τον τρόπο εκτέλεσης μιας επερώτησης. Μια
έκφραση του σχεσιακού λογισμού προσδιορίζει τι θα ανακτηθεί
και ΟΧΙ το πως θα ανακτηθεί. Επομένως ο σχεσιακός λογισμός
θεωρείται μη διαδικαστική γλώσσα.

Μ.Χατζόπουλος
Mια απλή επερώτηση στο σχεσιακό λογισμό πλειάδων είναι
της μορφής:

{t | COND(t)}

όπου t είναι μια μεταβλητή πλειάδων και COND(t) είναι μια έκφραση
συνθήκης που περιλαμβάνει το t. Tο αποτέλεσμα μιας τέτοιας
επερώτησης είναι ένα σύνολο πλειάδων t που ικανοποιούν την
COND(t).

Μ.Χατζόπουλος

Σε μια έκφραση σχεσιακού λογισμού πρέπει να προσδιορίσουμε

• Για κάθε μεταβλητή πλειάδων t, τη σχέση τιμών R της t. H


σχέση αυτή προσδιορίζεται με μια συνθήκη της μορφής
R(t).
• Mια συνθήκη για την επιλογή ενός συγκεκριμένου
συνδυασμού πλειάδων. Eφ' όσον οι μεταβλητές πλειάδων
παίρνουν τιμές από τις αντίστοιχες σχέσεις τιμών, η
συνθήκη αποτιμάται για κάθε πιθανό συνδυασμό πλειάδων
ώστε να αναγνωριστούν οι επιλεγόμενοι συνδυασμοί για
τους οποίους η συνθήκη αποτιμάται σε TRUE.
• Ένα σύνολο από γνωρίσματα που πρέπει να ανακτηθούν,
τα ζητούμενα γνωρίσματα. Oι τιμές των γνωρισμάτων
αυτών ανακτώνται για κάθε επιλεγόμενο συνδυασμό
πλειάδων.

Μ.Χατζόπουλος
Nα ανακτηθούν η ημερομηνία γέννησης και η διεύθυνση του
εργαζομένου (ή των εργαζομένων) με ονοματεπώνυμο 'John B.
Smith'.

E0:{t.HM_ΓEN, t.ΔIEYΘYNΣH | EPΓAZOMENOΣ(t) and


t.ONOMA='John' and t.APX_ΠAT='B' and t.EΠIΘETO='Smith'}

Μ.Χατζόπουλος

Μια γενική έκφραση του σχεσιακού λογισμού πλειάδων είναι


της μορφής:

{t1.A1, t2.A2, ..., tn.An | COND(t1, t2, ..., tn, tn+1, tn+2, ..., tn+m)}

Μ.Χατζόπουλος
Άτομα
1. Ένα άτομο της μορφής R(ti), όπου R είναι το όνομα μιας
σχέσης και ti είναι μια μεταβλητή πλειάδων. Tο άτομο
αυτό προσδιορίζει ως πεδίο τιμών της μεταβλητής
πλειάδων ti τη σχέση με όνομα R.
2. Ένα άτομο της μορφής ti.A op tj.B όπου op είναι ένας
από τους τελεστές σύγκρισης στο σύνολο {=, >, ≥, <, ≤, ≠},
και ti, tj είναι μεταβλητές πλειάδων. Tο A είναι ένα
γνώρισμα της σχέσης τιμών της ti, και το B είναι ένα
γνώρισμα της σχέσης τιμών της tj.
3. Ένα άτομο της μορφής ti.A op c ή c op ti.B, όπου op είναι
ένας από τους τελεστές σύγκρισης στο σύνολο {=, >, ≥, <,
≤, ≠}, και ti, tj είναι μεταβλητές πλειάδων, το A είναι ένα
γνώρισμα της σχέσης τιμών της ti, το B είναι ένα
γνώρισμα της σχέσης τιμών της tj και το c είναι μια
σταθερή τιμή.
Μ.Χατζόπουλος

Τύποι

1. Kάθε άτομο είναι ένας τύπος.


2. Aν F1 και F2 είναι τύποι, τότε είναι επίσης τύποι και τα (F1
and F2), (F1 or F2), not(F1) και not(F2). Oι τιμές αληθείας για
αυτούς τους τέσσερις τύπους παράγονται από τους
επιμέρους τύπους F1 και F2 κατά τον ακόλουθο τρόπο:
α.O (F1 and F2) έχει τιμή true αν και ο F1 και ο F2 έχουν
τιμή true, διαφορετικά έχει τιμή false.
β.O (F1 or F2) έχει τιμή false αν και ο F1 και ο F2 έχουν τιμή
false, διαφορετικά έχει τιμή true.
γ.O not(F1) έχει τιμή true αν ο F1 έχει τιμή false, και false
αν ο F1 έχει τιμή true.
δ.O not(F2) έχει τιμή true αν ο F2 έχει τιμή false, και false
αν ο F2 έχει τιμή true.

Μ.Χατζόπουλος
Στους τύπους μπορούν να εμφανιστούν δύο ειδικά σύμβολα που
λέγονται ποσοδείκτες (quantifiers). Aυτά είναι ο καθολικός
ποσοδείκτης (universal quantifier) (∀) και ο υπαρξιακός ποσοδείκτης
(existential quantifier) (∃).

Μ.Χατζόπουλος

Ελεύθερες και δεσμευμένες μεταβλητές πλειάδες

• H εμφάνιση μιας μεταβλητής πλειάδων σε έναν τύπο F που


είναι άτομο είναι ελεύθερη στην F.
• H εμφάνιση μιας μεταβλητής πλειάδων t σε έναν τύπο που
κατασκευάζεται από λογικούς τελεστές - (F1 and F2), (F1 or
F2), not(F1) και not(F2) - είναι ελεύθερη ή δεσμευμένη
ανάλογα με το αν είναι ελεύθερη ή δεσμευμένη στον F1 ή
στον F2 (αν εμφανίζεται στον ένα ή στον άλλο). Σημειώστε
ότι σε έναν τύπο της μορφής F = (F1 and F2) ή F = (F1 or F2),
μια μεταβλητή πλειάδων μπορεί να είναι ελεύθερη στον F1
και δεσμευμένη στον F2, ή το αντίστροφο. Στην περίπτωση
αυτή, η μία εμφάνιση της μεταβλητής πλειάδων στον F είναι
δεσμευμένη και η άλλη ελεύθερη.
• Όλες οι ελεύθερες εμφανίσεις μιας μεταβλητής πλειάδων t
σε έναν τύπο F είναι δεσμευμένες στον τύπο F' της μορφής
F' = (∃ t)(F) ή F' = (∀ t)(F). H μεταβλητή πλειάδων δεσμεύεται
προς τον ποσοδείκτη που προσδιορίζεται στον F'

Μ.Χατζόπουλος
F1 : d.T_ONOMA ='Research'
F2 : (∃ t) (d.KΩΔ_TMHM=t.APIΘ_T)
F3 : (∀ t) (d.ΔΙΕΥΘΥΝΤΗΣ=’333445555’)

Μ.Χατζόπουλος

Τύποι (συν.)

3. Aν το F είναι τύπος, τότε επίσης τύπος είναι και το (∃


t)(F), όπου t είναι μια μεταβλητή πλειάδων. O τύπος (∃
t)(F) αποτιμάται σε true αν ο τύπος F έχει τιμή true για
κάποια (τουλάχιστον μία) πλειάδα που δίνεται ως τιμή
στις ελεύθερες εμφανίσεις της t στον F· διαφορετικά, ο (∃
t)(F) αποτιμάται σε false.
4. Aν το F είναι τύπος, τότε επίσης τύπος είναι και το (∀
t)(F), όπου t είναι μια μεταβλητή πλειάδων. O τύπος (∀
t)(F) αποτιμάται σε true αν ο τύπος F έχει τιμή true για
κάθε πλειάδα (του πεδίου τιμών) που δίνεται ως τιμή στις
ελεύθερες εμφανίσεις της t στον F· διαφορετικά, ο (∀ t)(F)
αποτιμάται σε false.

Μ.Χατζόπουλος
Nα βρεθούν το όνομα και η διεύθυνση όλων των εργαζομένων στο
τμήμα 'Research'.

{t.ONOMA, t.EΠIΘETO, t.ΔIEYΘYNΣH |EPΓAZOMENOΣ(t)


and ((∃ d) TMHMA(d) and d.T_ONOMA='Research' and
d.KΩΔ_TMHM=t.APIΘ_T))}

Μ.Χατζόπουλος

Για κάθε έργο στο 'Stafford' να βρεθεί ο κωδικός του έργου, ο


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

{p.KΩΔ_EPΓOY, p.K_TMHMA, m.EΠIΘETO, m.HM_ΓEN,


m.ΔIEYΘYNΣH |
EPΓO(p) and EPΓAZOMENOΣ(m) and
p.TOΠ_EPΓOY='Stafford' and ((∃ d)
(TMHMA(d) and p.K_TMHMA=d.KΩΔ_TMHM and
d.ΔIEYΘYNTHΣ=m.AP_TAYT))) }

Μ.Χατζόπουλος
Nα βρεθεί το ονοματεπώνυμο κάθε εργαζόμενου που εργάζεται σε
κάποια από τα έργα που ελέγχονται από το τμήμα 5.

{e.ONOMA, e.EΠIΘETO | EPΓAZOMENOΣ(e) and ((∃ x)(∃ w)


(EPΓO(x) and AΠAΣXOΛHΣH(w) and x.K_TMHMA=5 and
w.E_APTAYT=e.AP_TAYT and x.KΩΔ_EPΓOY=w.K_EPΓO))}

Μ.Χατζόπουλος

Bρες τη λίστα των έργων στα οποία εμφανίζονται εργαζόμενοι με


επίθετο 'Smith', είτε ως εργαζόμενοι σε ένα έργο είτε ως διευθυντές
του τμήματος που ελέγχει το έργο αυτό.

{p.KΩΔ_EPΓOY |EPΓO(p) and (((∃ e)(∃


w)(EPΓAZOMENOΣ(e) and AΠAΣXOΛHΣH(w) and
w.K_EPΓO = p.KΩΔ_EPΓOY and e.EΠIΘETO=’Smith’ and
e.AP_TAYT = w.E_APTAYT))
or
((∃ m)(∃ d)(EPΓAZOMENOΣ(m) and TMHMA(d) and
p.K_TMHMA = d.KΩΔ_EPΓOY and
d.ΔIEYΘYNTHΣ=m.AP_TAYT and
m.EΠIΘETO=’Smith’)))}

Μ.Χατζόπουλος
Υλοποίηση των Σχεσιακών Τελεστών

Μ.Χατζόπουλος

Ένα σχεσιακό ΣΔBΔ πρέπει να συμπεριλαμβάνει αλγόριθμους


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

Μ.Χατζόπουλος
Δρόμοι Προσπέλασης (Access Paths)

Ένας δρόμος προσπέλασης είναι ή :


(1)Μια σάρωση ενός αρχείου
ή
(2)Ένα ευρετήριο και μια συνθήκη επιλογής

Ένα ευρετήριο αντιστοιχεί στην συνθήκη επιλογής αν μπορεί να


χρησιμοποιηθεί για την ανάκτηση των πλειάδων που ικανοποιούν την
συνθήκη.
Μια απλή συνθήκη επιλογής έχει την μορφή
γνώρισμα θ τιμή
θ∈{<, ≤, =, >, ≥, ≠}
Η επιλεκτικότητα ενός δρόμου προσπέλασης είναι το πλήθος των
σελίδων που πρέπει να προσπελασθούν για να ανακτηθούν οι
επιθυμητές πλειάδες
Μ.Χατζόπουλος

Απόδοση

Στον υπολογισμό του κόστους μας ενδιαφέρει


μόνο το κόστος εισόδου/εξόδου. Το κόστος αυτό
θα το μετρήσουμε πλήθος σελίδων που
μεταφέρονται από/προς τη μνήμη.

Η απόδοση κάθε πράξης μπορεί να εκτιμηθεί για


διαφορετικές μεθόδους υλοποίησης.

Μ.Χατζόπουλος
ΠΡΟΜΗΘΕΥΤΗΣ (ΠΡΜ)
Κ_Προμ Π_Ονομα Είδος Πόλη ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)
Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα 22 Π35 Ε25 200

28 Δέδες 12 Λάρισα 31 Π35 Ε25 100


58 Παππάς 7 Αθήνα 31 Π76 Ε32 150
ΠΡΟΙΟΝ (ΠΡ) 28 Π14 Ε68 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
22 Π76 Ε25 450
Π35 Οθόνη Γκρι 8
22 Π35 Ε32 670
Π76 DVD Μαύρο 4
22 Π35 Ε68 650
Π14 Κράνος Άσπρο 1
58 Π14 Ε68 670
Κ_Ερ Προυπ Πόλη
28 Π14 Ε32 540
Ε25 245Κ Αθήνα
ΕΡΓΟ 22 Π14 Ε25 200
(ΕΡ) Ε32 500Κ Άργος
Ε68 1000Κ Αθήνα
Μ.Χατζόπουλος

Πράξη της Επιλογής (1)

Απλή επιλογή της μορφής:

σ R.Aθc (R)

Μ.Χατζόπουλος
Δεν υπάρχει ευρετήριο και τα δεδομένα δεν είναι
ταξινομημένα στο γνώρισμα Α

Σειριακή αναζήτηση (εξαντλητική


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

Το κόστος είναι όσο μια εξαντλητική σάρωση


του αρχείου. Αν επομένως το μέγεθος του
αρχείου είναι b σελίδες αυτό θα είναι και το
κόστος γενικά.
(Πότε μπορεί να είναι λιγότερο;)
Μ.Χατζόπουλος

σ Ποσοτ>200 (ΠΑΡ) ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)


Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Π35 Ε25 200

31 Π35 Ε25 100


31 Π76 Ε32 150

28 Π14 Ε68 150


22 Π76 Ε25 450
22 Π35 Ε32 670

22 Π35 Ε68 650

58 Π14 Ε68 670


28 Π14 Ε32 540

22 Π14 Ε25 200

Μ.Χατζόπουλος
Δεν υπάρχει ευρετήριο στο γνώρισμα της επιλογής αλλά
το αρχείο είναι φυσικά ταξινομημένο στο γνώρισμα της
επιλογής

Δυαδική αναζήτηση: Αν η συνθήκη επιλογής


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

Μ.Χατζόπουλος

ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)
σ Ποσοτ>200 (ΠΑΡ) Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
31 Π35 Ε25 100

31 Π76 Ε32 150

28 Π14 Ε68 150


Το κόστος της δυαδικής 22 Π14 Ε25 200
αναζήτησης είναι:
22 Π35 Ε25 200
Ο(log 2 b)
22 Π76 Ε25 450

Και επιπλέον το κόστος 28 Π14 Ε32 540


της σειριακής 22 Π35 Ε68 650
αναζήτησης
58 Π14 Ε68 670

22 Π35 Ε32 670

Μ.Χατζόπουλος
Χρήση Πρωτεύοντος ευρετηρίου ή κλειδιού
κατακερματισμού

Στην περίπτωση που το γνώρισμα της


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

Το κόστος θα είναι το ύψος του ευρετηρίου


συν 1. Αν x το ύψος του ευρετηρίου θα είναι
x+1

Μ.Χατζόπουλος

Xρήση ενός πρωτεύοντος ευρετηρίου για ανάκτηση


πολλών εγγραφών

Αν η συνθήκη σύγκρισης είναι >,≥,<, ή ≤ σε ένα


πεδίο-κλειδί με πρωτεύον ευρετήριο
χρησιμοποιούμε το ευρετήριο για να βρούμε
την εγγραφή που ικανοποιεί την αντίστοιχη
συνθήκη ισότητας και στη συνέχεια ανακτούμε
όλες τις εγγραφές που ακολουθούν στο
ταξινομημένο αρχείο.
Για παράδειγμα στην ερώτηση σ Κ_Προμ>28 (ΠΡΜ)
μπορεί να χρησιμοποιηθεί το ευρετήριο για την εύρεση
της πρώτης εγγραφής και στη συνέχεια να γίνει
σάρωση.
Μ.Χατζόπουλος
Χρήση ευρετηρίων συστάδων για ανάκτηση πολλών
εγγραφών

Αν η συνθήκη επιλογής περιλαμβάνει μια


συνθήκη ισότητας σε ένα γνώρισμα που δεν
είναι κλειδί αλλά έχει ορισθεί σ’ αυτό ένα
ευρετήριο συστάδων, χρησιμοποιούμε το
ευρετήριο συστάδων για την ανάκτηση όλων
των εγγραφών που ικανοποιούν τη συνθήκη
επιλογής.
Για παράδειγμα η σ Ποσοτ>200 (ΠΑΡ) και υπάρχει
ευρετήριο συστάδα στην ποσότητα
Το κόστος θα είναι x (ύψος ευρετηρίου) συν την
ανάκτηση των s εγγραφών που ικανοποιούν την
συνθήκη s/bfr
Μ.Χατζόπουλος

Xρήση δευτερεύοντος ευρετηρίου (B+-δένδρου) σε


μια συνθήκη ισότητας

Αυτή η μέθοδος αναζήτησης μπορεί να


χρησιμοποιηθεί για να ανακτηθεί μία μοναδική
εγγραφή, αν το γνώρισμα της συνθήκης είναι κλειδί
(έχει μοναδικές τιμές) ή για να ανακτηθούν
πολλαπλές εγγραφές αν το γνώρισμα της συνθήκης
δεν είναι κλειδί. Eπιπλέον μπορεί να
χρησιμοποιηθεί για ανάκτηση εγγραφών,
προκειμένου για συνθήκες που περιλαμβάνουν τους
τελεστές >, >=,<, ή <=.

Μ.Χατζόπουλος
Πολύπλοκες Συνθήκες Επιλογής

Γενικά η συνθήκη επιλογής μπορεί μπορεί να είναι


μια΄λογική παράσταση. Μπορεί να έχει την μορφή:
συνθήκη1 op συνθήκη2 op … συνθήκηN
όπου το op είναι ο λογικός τελεστής AND ή OR.
Για παράδειγμα
σ Είδος=7 AND Πόλη=‘Άργος’ (ΠΡΜ)

Μια τέτοια παράσταση μπορούμε να την μετατρέψουμε


σε συζευκτική μόνο

Μ.Χατζόπουλος

Συζευκτική επιλογή με χρήση ατομικού ευρετηρίου

Αν ένα γνώρισμα που περιλαμβάνεται σε


οποιαδήποτε απλή συνθήκη της συζευκτικής
συνθήκης έχει μια διαδρομή προσπέλασης
που επιτρέπει τη χρήση μιας από τις μεθόδου
όπως και σε απλή συνθήκη, χρησιμοποιούμε
αυτή τη συνθήκη για την ανάκτηση των
εγγραφών και στη συνέχεια ελέγχουμε αν κάθε
ανακτηθείσα εγγραφή ικανοποιεί τις
υπόλοιπες απλές συνθήκες της συζευκτικής
συνθήκης.
σ Είδος=7 AND Πόλη=‘Άργος’ (ΠΡΜ)
Αν υπάρχει ευρετήριο στο Είδος ή την Πόλη
Μ.Χατζόπουλος
Συζευκτική επιλογή με χρήση σύνθετου ευρετηρίου

Αν δύο ή περισσότερα γνωρίσματα συμμετέχουν


σε συνθήκες ισότητας στη συζευκτική συνθήκη και
υπάρχει σύνθετο ευρετήριο (ή δομή
κατακερματισμού) στον συνδυασμό των πεδίων.

σ Είδος=7 AND Πόλη=‘Άργος’ (ΠΡΜ)

Αν υπάρχει σύνθετο ευρετήριο στο Είδος και Πόλη, το


σύνθετο ευρετήριο θα δώσει άμεσα τις πλειάδες που
πληρούν και τις δύο συνθήκες

Μ.Χατζόπουλος

Συζευκτική επιλογή με τομή των δεικτών εγγραφών


Αν υπάρχουν δευτερεύοντα ευρετήρια σε όλα (ή σε μερικά) πεδία
που ενέχονται σε συνθήκες σύγκρισης ισότητας της συζευκτικής
συνθήκης κι αν τα ευρετήρια περιλαμβάνουν δείκτες εγγραφών (αντί
δείκτες μπλοκ) τότε κάθε ευρετήριο μπορεί να χρησιμοποιηθεί για
ανάκτηση ενός συνόλου δεικτών εγγραφών που ικανοποιούν τη
μεμονωμένη απλή συνθήκη. H τομή αυτών των συνόλων δεικτών
δίνει τους δείκτες εγγραφών που ικανοποιούν τη συζευκτική
συνθήκη. Oι δείκτες της τομής χρησιμοποιούνται στη συνέχεια για
την άμεση ανάκτηση αυτών των εγγραφών. Aν μερικές μόνον από τις
συνθήκες έχουν δευτερεύοντα ευρετήρια, κάθε ανακατωμένη
εγγραφή ελέγχεται για να διαπιστωθεί αν ικανοποιεί και τις
υπόλοιπες συνθήκες
σ Χρώμα=‘Μαύρο’ AND Βάρος=10 (ΠΡ)
Αν υπάρχει ευρετήριο και στο χρώμα και στο βάρος μπορούν
να βρεθούν οι δυο λίστες μπλοκ που ικανοποιούν τις
συνθήκες και οι ζητούμενες είναι η τομή τους.
Μ.Χατζόπουλος
Η ORACLE χρησιμοποιεί διάφορες τεχνικές για
συζευκτικές συνθήκες. Μια είναι αυτή που εφαρμόζει
AND σε bitmaps. Μια άλλη χρησιμοποιεί συνένωση με
κατακερματισμό (θα την εξετάσουμε παρακάτω)στις δυο
λίστες.
Ο SQL Server υλοποιεί συνένωση ευρετηρίων.

Μ.Χατζόπουλος

Διαζευκτική Συνθήκη

Μια διαζευκτική συνθήκη (όπου οι απλές συνθήκες


συνδέονται με το λογικό τελεστή OR) είναι πολύ πιο
δύσκολη σε ό,τι αφορά την επεξεργασία της και τη
βελτιστοποίηση.
Μπορούμε να κάνουμε εξαντλητική σάρωση της σχέσης.
Ή μπορεί να χρησιμοποιήσουμε διάφορα ευρετήρια.
΄Συγκεκριμένα αν υπάρχουν ευρετήρια για γνωρίσματα
της σύζευξης μπορούμε να τα χρησιμοποιήσουμε για
περιορίσουμε την αναζήτηση

σ (Χρώμα=‘Άσπρο OR Πρ_Ονομα=‘DVD’) AND Βάρος=25 (ΠΡ)

Μ.Χατζόπουλος
Αν κάθε όρος της διάζευξης έχει ευρετήριο μπορούμε να
αποφύγουμε την σάρωση της σχέσης. Χρησιμοποιούμε το
ευρετήριο κάθε συνθήκης. Βρίσκουμε έτσι την λίστα των
διευθύνσεων που ικανοποιούν κάθε συνθήκη και στη
συνέχεια βρίσκουμε την ένωση τους.

Ο SQL Server τέτοιες ενώσεις καθώς και


bitmaps με διαζευκτικές συνθήκες.

Μ.Χατζόπουλος

ORACLE

• Μετατροπή της ερώτησης σε ένωση ερωτήσεων χωρίς


OR.
• Αν οι συνθήκες της διάζευξης περιέχουν το ίδιο
γνώρισμα χρησιμοποίηση της δομής του ευρετηρίου.
• Χρήση bitmaps με διαζευκτικές συνθήκες

Η Sybase χρησιμοποιεί ενώσεις λιστών

Μ.Χατζόπουλος
Οι πράξεις της συνένωσης

Μ.Χατζόπουλος

ΠΡΟΜΗΘΕΥΤΗΣ (ΠΡΜ)
Κ_Προμ Π_Ονομα Είδος Πόλη ΠΑΡΑΓΓΕΛΙΑ (ΠΑΡ)
Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα 22 Π35 Ε25 200

28 Δέδες 12 Λάρισα 31 Π35 Ε25 100


58 Παππάς 7 Αθήνα 31 Π76 Ε32 150
ΠΡΟΙΟΝ (ΠΡ) 28 Π14 Ε68 150
Κ_Πρ Πρ_Ονομα Χρώμα Βάρος
22 Π76 Ε25 450
Π35 Οθόνη Γκρι 8
22 Π35 Ε32 670
Π76 DVD Μαύρο 4
22 Π35 Ε68 650
Π14 Κράνος Άσπρο 1
58 Π14 Ε68 670
Κ_Ερ Προυπ Πόλη
28 Π14 Ε32 540
Ε25 245Κ Αθήνα
ΕΡΓΟ 22 Π14 Ε25 200
(ΕΡ) Ε32 500Κ Άργος
Ε68 1000Κ Αθήνα
Μ.Χατζόπουλος
Η συνένωση είναι μια από τις πιο χρήσιμες πράξεις της
σχεσιακής άλγεβρας και είναι ουσιαστικά η κύρια πράξη
για τον συνδυασμό πληροφοριών από δυο ή περισσότερες
σχέσεις

H πράξη της συνένωσης είναι μια από τις πιο χρονοβόρες


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

Μ.Χατζόπουλος

Η συνένωση αποτελείται από ένα Καρτεσιανό γινόμενο


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

Μ.Χατζόπουλος
Συνενώσεις σε Εμπορικά Συστήματα
Sybase ASE:Υποστηρίζει εμφωλευμένους βρόγχους με ευρετήριο
και συνένωση με ταξινόμηση και συγχώνευση.
Sybase ASIQ: Υποστηρίζει εμφωλευμένους βρόγχους σε σελίδες,
εμφωλευμένους βρόγχους με ευρετήριο, κατακερματισμό, και
συνένωση με ταξινόμηση και συγχώνευση.
Oracle: Υποστηρίζει εμφωλευμένους βρόγχους σε σελίδες, μια
παραλλαγή της συνένωσης του υβριδικού κατακερματισμού, και
συνένωση με ταξινόμηση και συγχώνευση.
DB2: Υποστηρίζει εμφωλευμένους βρόγχους σε σελίδες,
εμφωλευμένους βρόγχους με ευρετήριο, και συνένωση υβριδικού
κατακερματισμού.
SQL Server: Υποστηρίζει εμφωλευμένους βρόγχους σε σελίδες,
εμφωλευμένους βρόγχους με ευρετήριο, συνένωση με ταξινόμηση
και συγχώνευση, και συνένωση με κατακερματισμό

Μ.Χατζόπουλος

Eμφωλευμένοι βρόχοι (εξαντλητική μέθοδος)

Ο απλούστερος αλγόριθμος συνένωσης.


Για κάθε εγγραφή t της σχέσης R
(εξωτερικός βρόχος), ανακτάται κάθε
εγγραφή s από τη σχέση S (εσωτερικός
βρόγχος) και ελέγχεται αν οι δύο εγγραφές
ικανοποιούν τη συνθήκη συνένωσης.

foreach tuple r∈R do


foreach tuple s∈S do
if ri==sj then output <r,s>

Μ.Χατζόπουλος
Η χειρότερη περίπτωση είναι αν εξετάζουμε μια μια τις
πλειάδες της R με αυτές της S.
Αν bR και bS είναι οι σελίδες αντίστοιχα των σχέσεων και
pR και pS οι πλειάδες ανά σελίδα τότε το κόστος είναι:

bR+ pR * bR * bS.

Που δίνει απόθανα αποτελέσματα


Αν bΠΑΡ=1000, bΠΡΜ=500 και pΠΑΡ=100
Σημαίνει κόστος 1000+100*1000*500=1000+(5*107)
που με χρόνο προσπέλασης 10ms δίνει 140 ώρες

Δεν λαμβάνουμε υπόψη και το κόστος εγγραφής του


αποτελέσματος.
Μ.Χατζόπουλος

Μια βελτίωση μπορεί να γίνει αν δεν εξετάζουμε μια-μια


τις εγγραφές αλλά σελίδες.

Με τον τρόπο αυτό το κόστος θα είναι:

bR+ bR * bS.

Οπότε στη συγκεκριμένη περίπτωση

1000+1000*500=501000
Ή 1.4 ώρες

Μ.Χατζόπουλος
Από τους τύπους αυτούς παρατηρούμε ότι έχει σημασία
ποια σχέση θα διαλέξουμε σαν εξωτερική στο βρόγχο. Η
εξωτερική θα πρέπει να είναι η μικρότερη από τις δυο.

Μ.Χατζόπουλος

Εμφωλευμένοι βρόγχοι με χρήση ενδιάμεσης μνήμης

Στον προηγούμενο αλγόριθμο δεν κάναμε χρήση της


δυνατότητας του buffer εισόδου. Αν ένα buffer
μεγέθους B σελίδων τότε ο αλγόριθμος μπορεί να
τροποποιηθεί σε:

foreach block από Β-2 σελίδες της R do


foreach σελίδα της S do
για όλες τις πλειάδες r∈R στο block που αντιστοιχούν σε
πλειάδες s∈S της σελίδας
output <r,s>

Μ.Χατζόπουλος
Σχέση R

Input buffer Output buffer

Αρχικές Scan all S


Σχέσεις στο
Αποτέλεσμα της συνένωσης
Δίσκο
Στο δίσκο

Μ.Χατζόπουλος

Στην περίπτωση αυτή το κόστος θα είναι:


bR+ bR /(Β-2)* bS.

Αν επομένως στην περίπτωση μας Β=102 το κόστος θα


είναι:
1000+10*500=6000
Ενώ αν η εξωτερική είναι η ΠΡ
500+5*1000=5500

Μ.Χατζόπουλος
Μπορούμε επίσης να βελτιώσουμε κάπως το CPU κόστος
αν για την σχέση R κρατήσουμε ένα πίνακα
κατακερματισμού στην κύρια μνήμη

Μ.Χατζόπουλος

Hash table for block Rj


(k<B-2)

Input buffer Output buffer

Αρχικές Scan all S


Σχέσεις στο
Αποτέλεσμα της συνένωσης
Δίσκο
Στο δίσκο

Μ.Χατζόπουλος
Συνένωση απλού βρόγχου (χρήση μιας δομής
προσπέλασης για ανάκτηση των εγγραφών που
ικανοποιούν τη συνθήκη)
Αν υπάρχει ευρετήριο (ή κλειδί
κατακερματισμού) για ένα από τα δύο
γνωρίσματα της συνένωσης -έστω το j της
σχέσης S- ανακτώνται όλες οι εγγραφές r της
σχέσης R, μία προς μία, και χρησιμοποιείται η
δομή προσπέλασης για να ανακτηθούν άμεσα
όλες οι εγγραφές της σχέσης S που
ικανοποιούν τη συνθήκη sj=ri
foreach tuple r∈R do Η αναζήτηση στο S
foreach tuple s∈S where με χρήση του
ri==sj then output <r,s> ευρετηρίου

Μ.Χατζόπουλος

Για κάθε πλειάδα r∈R χρησιμοποιούμε το ευρετήριο για


ανάκτηση των αντίστοιχων πλειάδων της S.
Η διαφορά της μεθόδου είναι ότι δεν κάνει αναζήτηση στο
Καρτεσιανό γινόμενο των σχέσεων. Το κόστος σάρωσης
της R είναι το ίδιο bR όπως και στην προηγούμενη
μέθοδο.΄Όμως το κόστος ανάκτησης των πλειάδων της S
εξαρτάται από το είδος του ευρετηρίου και την
επιλεξιμότητα.

Μ.Χατζόπουλος
Για κάθε πλειάδα της R το κόστος αναζήτησης της S
είναι:

1. Αν το ευρετήριο της S είναι Β+ δένδρο το κόστος


εύρεσης του κόμβου φύλου είναι μεταξύ 2 και 4. Αν
είναι ευρετήριο κατακερματισμού 1 με 2.
2. Μόλις βρεθεί ο κατάλληλος τερματικός κόμβος το
κόστος ανάκτησης εξαρτάται από το αν το ευρετήριο
είναι συστάδα. Αν είναι το κόστος είναι μια ακόμη
προσπέλαση. Αν όχι το κόστος θα είναι τόσες
προσπελάσεις όσες και οι αντίστοιχες πλειάδες της S
(υποθέτοντας ότι βρίσκονται σε διαφορετική σελίδα).

Μ.Χατζόπουλος

Παράδειγμα
Έστω ΠΑΡ*ΠΡΜ

Ας υποθέσουμε ότι η ΠΡΜ έχει ευρετήριο


κατακερματισμού στο Κ_Προμ που είναι και κλειδί με
προσπέλαση 1.2 κατά μέσο όρο.
Το ΠΑΡ έχει 1000 σελίδες των 100 πλειάδων η σελίδα.
Επομένως το συνολικό κόστος είναι:
1000+100000(1+1.2)=222000

Μ.Χατζόπουλος
Συνένωση ταξινόμησης-συγχώνευσης

Αν οι εγγραφές των σχέσεων R και S είναι φυσικά


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

Μ.Χατζόπουλος

Mια παραλλαγή του αλγόριθμου ταξινόμησης-συγχώνευσης


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

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

Μ.Χατζόπουλος

ΠΑΡ
Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Π35 Ε25 200

31 Π35 Ε25 100


ΠΡΜ
31 Π76 Ε32 150
Κ_Προμ Π_Ονομα Είδος Πόλη
28 Π14 Ε68 150
22 Ανδρέου 7 Αθήνα
31 Πέτρου 8 Πάτρα 22 Π76 Ε25 450

28 Δέδες 12 Λάρισα 22 Π35 Ε32 670


58 Παππάς 7 Αθήνα 22 Π35 Ε68 650

58 Π14 Ε68 670

28 Π14 Ε32 540


22 Π14 Ε25 200

Μ.Χατζόπουλος
ΠΑΡ
Κ_Προμ Κ_Πρ Κ_Ερ Ποσοτ
22 Π35 Ε25 200

22 Π14 Ε25 200


ΠΡΜ
22 Π35 Ε68 650
Κ_Προμ Π_Ονομα Είδος Πόλη 22 Π76 Ε25 450
22 Ανδρέου 7 Αθήνα 22 Π35 Ε32 670
28 Δέδες 12 Λάρισα
28 Π14 Ε68 150
31 Πέτρου 8 Πάτρα
28 Π14 Ε32 540
58 Παππάς 7 Αθήνα
31 Π35 Ε25 100
31 Π76 Ε32 150
58 Π14 Ε68 670

Μ.Χατζόπουλος

procedure join(R,S, ‘Ri = Sj ‘)


Tr = η πρώτη πλειάδα της R;
Ts= η πρώτη πλειάδα της S;
Gs η πρώτη πλειάδα της S
while Tr≠ eof and Gs ≠ eof do{
while Tri< Gsj do
Tr = η επόμενη πλειάδα της Tr από την R;
while Tri> Gsj do
Gs = η επόμενη πλειάδα της Gs από την S;
Ts=Gs;
while Tri == Gsj do{
Ts=Gs;
while Tsj== Tri do{
output <Tr, Ts>
Ts= η επόμενη πλειάδα της Ts από την S;}
Tr= η επόμενη πλειάδα της Ts από την R;
}
Gs=Ts
}
Μ.Χατζόπουλος
Το κόστος ταξινόμησης της R είναι Ο(bR logbR)
Το κόστος ταξινόμησης της S είναι Ο(bS logbS)
Το κόστος της συγχώνευσης είναι bR+bS αν δεν χρειασθεί
να επαναφερθούν κάποια τμήματα της S.

Η μέθοδος αυτή είναι ιδιαίτερα καλή αν τουλάχιστον μια


από τις σχέσεις είναι ταξινομημένη στο γνώρισμα της
συνένωσης ή αν έχει ευρετήριο συστάδα στο γνώρισμα
συνένωσης.

Μ.Χατζόπουλος

Συνένωση με κατακερματισμό

Κατά την μέθοδο αυτή δημιουργείται ένα ευρετήριο


κατακερματισμού για τις εγγραφές των αρχείων R
και S, χρησιμοποιώντας τα γνωρίσματα
συνένωσης A και B ως κλειδιά κατακερματισμού.
Kαι για τα δύο αρχεία χρησιμοποιείται το ίδιο
αρχείο κατακερματισμού και η ίδια συνάρτηση
κατακερματισμού.
Πρώτη φάση (φάση διαμέρισης) :Πρώτα διατρέχεται
το αρχείο με τις λιγότερες εγγραφές (έστω το R)
μία μόνο φορά, προκειμένου να απεικονισθούν οι
εγγραφές του στους κάδους του αρχείου
κατακερματισμού (οι εγγραφές του R μοιράζονται
στους κάδους κατακερματισμού).
Μ.Χατζόπουλος
Δεύτερη φάση (που ονομάζεται φάση της
αναζήτησης) το άλλο αρχείο (S) διατρέχεται μία
μόνο φορά με απεικόνιση κάθε εγγραφής του στον
κατάλληλο κάδο, όπου η εγγραφή συνδυάζεται με
όλες τις εγγραφές του αρχείου R που ταιριάζουν με
αυτή. Αυτή η απλουστευμένη περιγραφή της
συνένωσης με κατακερματισμό υποθέτει ότι το
μικρότερο από τα δύο αρχεία χωράει τελείως σε
κάδους της μνήμης μετά την πρώτη φάση.

Μ.Χατζόπουλος

Η ιδέα είναι να γίνει κατακερματισμός και των δυο


σχέσεων στο γνώρισμα της συνένωσης χρησιμοποιώντας
την ίδια συνάρτηση κατακερματισμού h. Αν ο
κατακερματισμός χωρίσει σε k διαμερίσεις
εξασφαλίζουμε ότι οι πλειάδες της R στην i διαμέριση
έχουν αντίστοιχες πλειάδες στην S μόνο από την ίδια
διαμέριση. Αυτό σημαίνει ότι μπορούμε να διαβάσουμε
μια πλήρη διαμέριση της μικρότερης σχέσης R και απλά
να σαρώσουμε μόνο την αντίστοιχη διαμέριση της S.
Αυτές οι πλειάδες των R και S δεν θα χρειασθεί να
εξετασθούν ξανά. Επομένως μετά την διαμέριση των R
και S μπορεί να γίνει η συγχώνευση μόνο με μια
ανάγνωση των R και S, με την προϋπόθεση ότι υπάρχει
διαθέσιμη μνήμη για κάθε διαμέριση της R.

Μ.Χατζόπουλος
Hash table for block Rj
(k<B-10

Input buffer Output buffer

Αρχικές Scan all S


Σχέσεις στο
Αποτέλεσμα της συνένωσης
Δίσκο
Στο δίσκο

Μ.Χατζόπουλος

Πρακτικά για κάθε διαμέριση χτίζεται ένας πίνακας


κατακερματισμού για κάθε διαμέριση της R,
χρησιμοποιώντας μια συνάρτηση κατακερματισμού
h2 που είναι διαφορετική από την h, ώστε να μειωθεί
το CPU κόστος. Χρειαζόμαστε αρκετή μνήμη για να
μπορεί να καταχωρηθεί αυτός ο πίνακας
κατακερματισμού, που θα είναι λίγο μεγαλύτερη από
την διαμέριση της R.

Μ.Χατζόπουλος
//Διαμέριση της R
foreach tuple r∈R
read r και πρόσθεσε την στην σελίδα εξόδου h(ri)
//Διαμέριση της S
foreach tuple s∈S
read r και πρόσθεσε την στην σελίδα εξόδου h(si)
//Φάση συνένωσης
for l=1,…,k do {
//Δημιουργία του πίνακα κατακερματισμού για την Ri, με χρήση της h2
foreach tuple r ∈Rl do
read r και εισαγωγή στον πίνακα κατακερματισμού με χρήση της h2(rl);
//Σάρωση της Sl για αντίστοιχες πλειάδες στην Rl
foreach tuple s∈ στη διαμέριση Sl do {
read s και απεικόνισε με χρήση της h2;
Για τις πλειάδες r της R που αντιστοιχούν output <r,s> };
Καθαρισμός του πίνακα κατακερματισμού;
}

Μ.Χατζόπουλος

Κόστος της συνένωσης με κατακερματισμό


Στη φάση της διαμέρισης σαρώνουμε την R και την
S μια φορά και γράφουμε μια φορά. Επομένως το
κόστος αυτής της φάσης είναι 2(bR+bS).
Στη δεύτερη φάση σαρώνουμε κάθε διαμέριση μια
φορά, υποθέτοντας ότι κάθε διαμέριση χωράει στη
μνήμη, το κόστος είναι bR+bS. Επομένως το συνολικό
κόστος είναι 3(bR+bS).

Επομένως στο παράδειγμα μας θα είναι:


3*(500+1500)=4500
που για πρόσβαση 10ms κοστίζει λιγότερο από ένα
λεπτό.
Μ.Χατζόπουλος
Απαιτήσεις σε μνήμη
Για να αυξήσουμε τις πιθανότητες να χωράει κάθε διαμέριση στη
μνήμη πρέπει να ελαχιστοποιήσουμε το μέγεθος κάθε διαμέρισης
μεγιστοποιώντας το πλήθος των διαμερίσεων. Στη φάση της
διαμέρισης, για διαμέριση της R (και της S) σε k διαμερίσεις
χρειαζόμαστε k block εξόδου και ένα εισόδου. Επομένως με B
σελίδες το μέγιστο πλήθος διαμερίσεων είναι k=B-1. Υποθέτοντας
ότι οι διαμερίσεις έχουν ίδιο μέγεθος, τότε το μέγεθος κάθε
διαμέρισης της R είναι bR /(B-1). Το πλήθος των σελίδων του
πίνακα κατακερματισμού (στη μνήμη) κατά την φάση της
συνένωσης είναι f*bR /(B-1) (όπου f ο παράγοντας αύξησης λόγω
κατακερματισμού).
Κατά την φάση της συγχώνευσης θέλουμε μια σελίδα για την
σάρωση των διαμερίσεων της S και μια για την έξοδο. Επομένως
για να χωράει στη μνήμη η διαμέριση B>(f*bR /(B-1))+2.
Επομένως για B>√f* √ bR έχουμε καλή απόδοση του αλγόριθμου.

Μ.Χατζόπουλος

Αν επομένως B>√f* √bR αναμένουμε ότι κάθε διαμέριση


θα έχει μέγεθος bR /(Β-1). Αν δεν έχουμε τόση μνήμη η αν
δεν γίνει ομοιόμορφη κατανομή θα έχουμε κάποια
υπερχείλιση. Η απόδοση στην περίπτωση της
υπερχείλισης μπορεί να βελτιωθεί με επανάληψη του
κατακερματισμού (της R).

Μ.Χατζόπουλος
Υβριδικός Αλγόριθμος Συνένωσης με Κατακερματισμό
Αν διαθέτουμε περισσότερη μνήμη μπορεί να χρησιμοποιήσουμε
μια παραλλαγή του αλγόριθμου κατακερματισμού. Έστω ότι
B>f*(bR/k) για κάποιο ακέραιο k. Δηλαδή αν διαμερίσουμε την R
σε k διαμερίσεις μεγέθους bR/k μπορούμε να έχουμε ένα πίνακα
κατακερματισμού στη μνήμη. Για την διαμέριση της R (και της S)
σε k σελίδες εξόδου και μια σελίδα εισόδου, δηλαδή k+1 σελίδες.
Επομένως έχουμε B-(k+1) επιπλέον σελίδες κατά την φάση της
διαμέρισης.
Έστω ότι B-(k+1)>f*(bR/k). Τότε έχουμε επιπλέον μνήμη κατά την
φάση της διαμέρισης για να χωρέσει και μια διαμέριση της R. Η
ιδέα είναι να κρατήσουμε στη μνήμη την πρώτη διαμέριση της R.
Επίσης κατά της διαμέριση της S η πρώτη διαμέριση δεν
γράφεται αλλά συγκρίνεται άμεσα με την πρώτη της R. Το κέρδος
είναι ότι δεν θα ξαναδιαβαστούν οι πρώτες διαμερίσεις των R και
S.

Μ.Χατζόπουλος

Για παράδειγμα αν bR=500 σελίδες και bS=1000 σελίδες και Β=300.


Μπορούμε να κρατήσουμε στη μνήμη την πρώτη διαμέριση της R
όταν χωρίζεται σε δυο διαμερίσεις. Κατά τη φάση της διαμέρισης της
R σαρώνουμε την R και γράφουμε μια διαμέριση δηλαδή το κόστος
είναι 500+250. Σαρώνουμε την S γράφουμε μια διαμέριση. Το κόστος
είναι 1000+500 (αν υποθέσουμε ότι οι διαμερίσεις έχουν ίδιο μέγεθος.
Στην συνένωση σαρώνουμε την δεύτερη διαμέριση των R και S με
κόστος 250+500. Συνολικό κόστος 750+1500+750=3500.

Μ.Χατζόπουλος
Σύγκριση Συνένωσης με κατακερματισμό με συνένωση
συγχώνευσης ταξινόμησης
Αν B>√bR όπου bR το μέγεθος της μικρότερης σχέσης, και
υποθέσουμε ομοιόμορφη κατανομή στις διαμερίσεις το κόστος
του κατακερματισμού είναι 3(bR+bS).
Αν B>√bS όπου bS το μέγεθος της μεγαλύτερης σχέσης, τότε το
πλήθος των ταξινομημένων σειρών κάθε σχέσης είναι μικρότερο
του √bS και αν υποθέσουμε ότι οι διαθέσιμες σελίδες για την
συγχώνευσης είναι περισσότερες από 2√bS δηλαδή περισσότερες
από το συνολικό πλήθος των ταξινομημένων σειρών, μπορούμε να
διαθέσουμε μια σελίδα για κάθε σειρά της R και της S. Τότε
μπορεί να γίνει ταυτόχρονα η συγχώνευση των σειρών της R και
της S. Βέβαια χρειαζόμαστε μνήμη B>2√bS .
Συνολικό κόστος 3(bR+bS).

Μ.Χατζόπουλος

•Αν οι διαμερίσεις στον κατακερματισμό δεν έχουν ομοιόμορφη


κατανομή , η συνένωση με κατακερματισμό μπορεί να κοστίσει
παραπάνω.
Αν η διαθέσιμε μνήμη είναι μεταξύ √bR και √bS τότε η συγχώνευση με
κατακερματισμό κοστίζει λιγότερο (αφού υπάρχει μνήμη μόνο για τις
διαμερίσεις της μικρότερης σχέσης)
Επιπλέον παράγοντες που πρέπει να ληφθούν υπόψη είναι αν κάποια
σχέση είναι ταξινομημένη σε κάποιο γνώρισμα συνένωσης.

Μ.Χατζόπουλος
Γενικότερες Συνθήκες Συνένωσης περιλαμβάνουν ισότητα σε
περισσότερα από ένα γνωρίσματα και συνθήκες άλλες εκτός από
ισότητα.
• Για ισότητα σε περισσότερα από ένα γνωρίσματα στον αλγόριθμο
εμφωλευμένων βρόγχων με ευρετήριο μπορούμε να χτίσουμε ένα
ευρετήριο στο συνδυασμό των γνωρισμάτων της R και να την
χρησιμοποιήσουμε σαν εσωτερική σχέση ή μπορούμε να
χρησιμοποιήσουμε υπάρχον ευρετήριο σ’ αυτό τον συνδυασμό
γνωρισμάτων.
• Για ισότητα σε περισσότερα από ένα γνωρίσματα στον αλγόριθμο
ταξινόμησης συγχώνευσης μπορούμε να ταξινομήσουμε στον
συνδυασμό των γνωρισμάτων. Επίσης στην συνένωση με
κατακερματισμό, ο κατακερματισμός γίνεται στο συνδυασμό των
γνωρισμάτων.

Μ.Χατζόπουλος

Σε περίπτωση ανισότητας R.A<S.B

• Χρειαζόμαστε ένα Β+ δενδρικό ευρετήριο για τον αλγόριθμο


εμφωλευμένων βρόγχων με ευρετήριο.
• Οι αλγόριθμοι ταξινόμησης συγχώνευσης και κατακερματισμού
συγχώνευσης δεν μπορούν να εφαρμοσθούν.
• Οι άλλοι αλγόριθμοι μπορούν να εφαρμοσθούν

Μ.Χατζόπουλος
Συνολοθεωρητικές Πράξεις
Από άποψη υλοποίησης το Καρτεσιανό γινόμενο και η
τομή μπορούν να θεωρηθούν ειδικές περιπτώσεις της
συνένωσης. Για την τομή συνένωση με ισότητα για όλα
τα γνωρίσματα και το Καρτεσιανό γινόμενο συνένωση
χωρίς συνθήκη συνένωσης.
Το βασικό πρόβλημα για για την πράξη της ένωσης είναι
η απαλοιφή των διπλότυπων.Μια παραλλαγή της
μεθόδου απαλοιφής των διπλότυπων μπορεί να
χρησιμοποιηθεί και για την διαφορά.

Μ.Χατζόπουλος

Ταξινόμηση για Ένωση και Διαφορά


1. Ταξινόμηση της R και της S στο συνδυασμό όλων
των γνωρισμάτων
2. Σάρωση των ταξινομημένων R και S και συγχώνευση
με απαλοιφή των διπλότυπων. (Μπορεί να γίνει και
με δημιουργία ταξινομημένων σειρών και
συγχώνευση τους)

Παρόμοια γίνεται και η διαφορά μόνο που κατά την φάση


της συγχώνευσης γράφουμε τις πλειάδες της R αφού
ελεγχθεί ότι δεν ανήκουν στην S

Μ.Χατζόπουλος
Κατακερματισμό για Ένωση και Διαφορά

1. Διαμέριση των R και S με χρήση μιας συνάρτησης


κατακερματισμού h.
2. Για κάθε διαμέριση l:
• Δημιουργία ενός πίνακα κατακερματισμού
(χρησιμοποιώντας μια συνάρτηση κατακερματισμού
h2≠h) για την Sl.
• Σάρωση της Rl. Για κάθε πλειάδα απεικόνιση στον
πίνακα κατακερματισμού της Sl. Αν η πλειάδα
υπάρχει στον πίνακα απορρίπτεται διαφορετικά
προστίθεται.
• Εγγραφή του πίνακα και ετοιμασία για την επόμενη
διαμέριση

Μ.Χατζόπουλος

Με τον ίδιο τρόπο γίνεται και η διαφορά (R-S). Η


διαφορά είναι στην επεξεργασία της διαμέρισης. Μετά
τον πίνακα κατακερματισμού της Sl,σαρώνουμε την Rl.
Αν μια πλειάδα δεν είναι στον πίνακα γράφεται στο
αποτέλεσμα.

Μ.Χατζόπουλος
,649 15
61?:43µ94 14 B8:1/
:>.>7 54 0649B9/22

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 1 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe

0. 41>1. 2 0649B9/22


4 4 3 µ46.9<µ (1) :>.>7 (1)
0. 41>1. 27 B8:1/ :>.>7  
  ! 
 
:
1. ",:2 SQL :>.>7  '=45. 610:
2. 61?:43µ94 8>:45.; (847?µ22;   445/ B4691.; 5,66262; :2145.;
3. 61?:43µ94 14 4; B:,84; %!$ 54 ')##+' 5-62; µ4; :A22;.
4. 61?:43µ94 14 %&$$! 54 <7?6>7
5. )69B9/22 '<73:9445A7 B:,8>7 54 8>:45A7 <77A>7
 @9 >:45-; 7B:,4; µ4; :A22;:
6. '<7<µ?; %:,8>7 µ =:.2 >6.7>2;   
  
7. *:.2 <:445A7 µ3?>7 2 0649B9/22 :>.>7   
  
8. *:.2 B4684µ?2; 54 54µ.>7 5?9<; 2 0649B9/22
:>.>7
9. 75?B22 2; 0649B9/22; :>.>7 27 Oracle
10. '2µ4969145. 0649B9/22 :>.>7

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 3 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 4

41>1. 2 0649B9/22 1. ",:2 SQL :>.>7 


:>.>7 (2) '=45. 610: (1)
 !
  :
  045. µ97, B9< µB9:/ 7 µ:3/ 
610:459@; 6-; 54 7 0649B9423/.
 7 µB695 :A22; B:4-=4 µ4 SELECT-FROM-
WHERE -5:2, 53A; 54 B:9,4; GROUP BY 54
HAVING 7 B969@7 µ.µ 9< µB695.
 
µ 
µ

 
 µ-  µ4 :A22
3>:9@74 8=>:4, µB695 :>.>7.
 $4 <73:94459/ 6-; 27 SQL B:-B4 7
B:46µ0,7974 27 B5µ-72 ,610:.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 5 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 6

1
2. µ  
  µ 
(1) Algorithms for External Sorting (2)

  µ  :
 Refers to sorting algorithms that are suitable for large files
of records stored on disk that do not fit entirely in main
memory, such as most database files.
 Sort-Merge strategy:
 Starts by sorting small subfiles (runs) of the main file and
then merges the sorted runs, creating larger sorted subfiles
that are merged in turn.
 Sorting phase: nR = (b/nB)
 Merging phase: dM = Min (nB-1, nR); nP = (logdM(nR))
 nR: number of initial runs; b: number of file blocks;
 nB: available buffer space; dM: degree of merging;
 nP: number of passes.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 7 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 8

3. Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (1) Operations (2)
 Implementing the SELECT Operation  Implementing the SELECT Operation (contd.):
 Search Methods for Simple Selection:
 S1 Linear search (brute force):
 Examples:  Retrieve every record in the file, and test whether its attribute
 (OP1):  SSN='123456789' (EMPLOYEE) values satisfy the selection condition.
 S2 Binary search:
 (OP2):  DNUMBER>5(DEPARTMENT)
 If the selection condition involves an equality comparison on a
 (OP3):  DNO=5(EMPLOYEE) key attribute on which the file is ordered, binary search (which
is more efficient than linear search) can be used. (See OP1).
 (OP4):  DNO=5 AND SALARY>30000 AND SEX=F(EMPLOYEE)
 S3 Using a primary index or hash key to retrieve a
 (OP5):  ESSN=123456789 AND PNO=10(WORKS_ON) single record:
 If the selection condition involves an equality comparison on a
key attribute with a primary index (or a hash key), use the
primary index (or the hash key) to retrieve the record.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 9 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 10

Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (3) Operations (4)
 Implementing the SELECT Operation (contd.):  Implementing the SELECT Operation (contd.):
 Search Methods for Simple Selection:
 S4 Using a primary index to retrieve multiple records:
 Search Methods for Simple Selection:
 If the comparison condition is >, , <, or  on a key field with a  S7 Conjunctive selection:
primary index, use the index to find the record satisfying the  If an attribute involved in any single simple condition in the
corresponding equality condition, then retrieve all subsequent records
in the (ordered) file. conjunctive condition has an access path that permits the use
 S5 Using a clustering index to retrieve multiple records: of one of the methods S2 to S6, use that condition to retrieve
 If the selection condition involves an equality comparison on a non-
the records and then check whether each retrieved record
key attribute with a clustering index, use the clustering index to satisfies the remaining simple conditions in the conjunctive
retrieve all the records satisfying the selection condition. condition.
 S6 Using a secondary (B+-tree) index:  S8 Conjunctive selection using a composite index
On an equality comparison, this search method can be used to

retrieve a single record if the indexing field has unique values (is a  If two or more attributes are involved in equality conditions in
key) or to retrieve multiple records if the indexing field is not a key. the conjunctive condition and a composite index (or hash
 In addition, it can be used to retrieve records on conditions involving structure) exists on the combined field, we can use the index
>,>=, <, or <=. (FOR RANGE QUERIES) directly.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 11 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 12

2
Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (5) Operations (7)
 Implementing the SELECT Operation (contd.):  Implementing the SELECT Operation (contd.):
 Search Methods for Complex Selection:  Whenever a single condition specifies the selection, we
 S9 Conjunctive selection by intersection of record can only check whether an access path exists on the
pointers: attribute involved in that condition.
 This method is possible if secondary indexes are available on  If an access path exists, the method corresponding to that
all (or some of) the fields involved in equality comparison access path is used; otherwise, the “brute force” linear search
conditions in the conjunctive condition and if the indexes approach of method S1 is used. (See OP1, OP2 and OP3)
include record pointers (rather than block pointers).
 Each index can be used to retrieve the record pointers that  For conjunctive selection conditions, whenever more
satisfy the individual condition. than one of the attributes involved in the conditions have an
 The intersection of these sets of record pointers gives the access path, query optimization should be done to choose
record pointers that satisfy the conjunctive condition, which are the access path that retrieves the fewest records in the most
then used to retrieve those records directly. efficient way.
 If only some of the conditions have secondary indexes, each
retrieved record is further tested to determine whether it  Disjunctive selection conditions
satisfies the remaining conditions.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 13 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 14

Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (8) Operations (9)

 Implementing the JOIN Operation:  Implementing the JOIN Operation (contd.):


 Join (EQUIJOIN, NATURAL JOIN)  Methods for implementing joins:
 two–way join: a join on two files  J1 Nested-loop join (brute force):
 For each record t in R (outer loop), retrieve every record s
 e.g. R A=B S from S (inner loop) and test whether the two records satisfy
 multi-way joins: joins involving more than two files. the join condition t[A] = s[B].
 e.g. R A=B S C=D T  J2 Single-loop join (Using an access structure to retrieve
the matching records):
 Examples  If an index (or hash key) exists for one of the two join attributes
 (OP6): EMPLOYEE DNO=DNUMBER DEPARTMENT — say, B of S — retrieve each record t in R, one at a time, and
then use the access structure to retrieve directly all matching
 (OP7): DEPARTMENT MGRSSN=SSN EMPLOYEE records s from S that satisfy s[B] = t[A].

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 15 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 16

Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (10) Operations (11)
 Implementing the JOIN Operation (contd.):  Implementing the JOIN Operation (contd.):
 Methods for implementing joins:  Methods for implementing joins:
 J3 Sort-merge join:  J4 Hash-join:
 If the records of R and S are physically sorted (ordered) by  The records of files R and S are both hashed to the
value of the join attributes A and B, respectively, we can
same hash file, using the same hashing function on
implement the join in the most efficient way possible.
the join attributes A of R and B of S as hash keys.
 Both files are scanned in order of the join attributes, matching
the records that have the same values for A and B.  A single pass through the file with fewer records
 In this method, the records of each file are scanned only once
(say, R) hashes its records to the hash file buckets.
each for matching with the other file—unless both A and B are  A single pass through the other file (S) then hashes
non-key attributes, in which case the method needs to be each of its records to the appropriate bucket, where
modified slightly. the record is combined with all matching records
from R.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 17 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 18

3
Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (12) Operations (13)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 19 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 20

Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (14) Operations (15)

 Implementing the JOIN Operation (contd.):  Implementing the JOIN Operation (contd.):
 Other types of JOIN algorithms
 Factors affecting JOIN performance  Partition hash join
 Available buffer space  Partitioning phase:
 Each file (R and S) is first partitioned into M partitions using a
 Join selection factor partitioning hash function on the join attributes:
R1 , R2 , R3 , ...... Rm and S1 , S2 , S3 , ...... Sm
 Choice of inner VS outer relation 


Minimum number of in-memory buffers needed for the


partitioning phase: M+1.
 A disk sub-file is created per partition to store the tuples
for that partition.
 Joining or probing phase:
 Involves M iterations, one per partitioned file.
 Iteration i involves joining partitions Ri and Si.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 21 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 22

Algorithms for SELECT and JOIN Algorithms for SELECT and JOIN
Operations (16) Operations (17)

 Implementing the JOIN Operation (contd.):  Implementing the JOIN Operation (contd.):
 Partitioned Hash Join Procedure:  Cost analysis of partition hash join:
1. Reading and writing each record from R and S during the
 Assume Ri is smaller than Si. partitioning phase:
1. Copy records from Ri into memory buffers. (bR + bS), (bR + bS)
2. Read all blocks from Si, one at a time and each 2. Reading each record during the joining phase:
record from Si is used to probe for a matching (bR + bS)
record(s) from partition Si. 3. Writing the result of join:
3. Write matching record from Ri after joining to the bRES
record from Si into the result file.  Total Cost:
 3* (bR + bS) + bRES

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 23 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 24

4
Algorithms for SELECT and JOIN
Operations (18)
 Implementing the JOIN Operation (contd.):
 Hybrid hash join:
 Same as partitioned hash join except:
 Joining phase of one of the partitions is included during the
partitioning phase.
 Partitioning phase:
 Allocate buffers for smaller relation- one block for each of the
M-1 partitions, remaining blocks to partition 1.
 Repeat for the larger relation in the pass through S.)
 Joining phase:
 M-1 iterations are needed for the partitions R2 , R3 ,
R4 , ......Rm and S2 , S3 , S4 , ......Sm. R1 and S1 are joined
during the partitioning of S1, and results of joining R1 and S1
are already written to the disk by the end of partitioning phase.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 25 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 26

Algorithms for PROJECT and SET Algorithms for PROJECT and SET
Operations (2) Operations (3)
 Algorithm for SET operations  Algorithm for SET operations (contd.)
 Set operations:  UNION (See Figure 15.3c)
 UNION, INTERSECTION, SET DIFFERENCE and  Sort the two relations on the same attributes.
CARTESIAN PRODUCT  Scan and merge both sorted files concurrently, whenever
 CARTESIAN PRODUCT of relations R and S include all the same tuple exists in both relations, only one is kept in
possible combinations of records from R and S. The the merged results.
attribute of the result include all attributes of R and S.  INTERSECTION (See Figure 15.3d)
 Cost analysis of CARTESIAN PRODUCT  Sort the two relations on the same attributes.
 If R has n records and j attributes and S has m records and  Scan and merge both sorted files concurrently, keep in the
k attributes, the result relation will have n*m records and j+k merged results only those tuples that appear in both
attributes. relations.
 CARTESIAN PRODUCT operation is very expensive and  SET DIFFERENCE R-S (See Figure 15.3e)
should be avoided if possible.  Keep in the merged results only those tuples that appear in
relation R but not in relation S.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 27 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 28

5. Implementing Aggregate Operations Implementing Aggregate Operations and


and Outer Joins (1) Outer Joins (2)
 Implementing Aggregate Operations:  Implementing Aggregate Operations (contd.):
 Aggregate operators:  SUM, COUNT and AVG
 MIN, MAX, SUM, COUNT and AVG  For a dense index (each record has one index entry):
 Options to implement aggregate operators:  Apply the associated computation to the values in the index.

 Table Scan  For a non-dense index:


 Index  Actual number of records associated with each index entry must

 Example be accounted for


 SELECT MAX (SALARY)  With GROUP BY: the aggregate operator must be applied separately
 FROM EMPLOYEE; to each group of tuples.
 Use sorting or hashing on the group attributes to partition the file
 If an (ascending) index on SALARY exists for the employee relation,
then the optimizer could decide on traversing the index for the largest into the appropriate groups;
value, which would entail following the right most pointer in each  Computes the aggregate function for the tuples in each group.

index node from the root to a leaf.  What if we have Clustering index on the grouping attributes?

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 29 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 30

5
Implementing Aggregate Operations and Implementing Aggregate Operations and
Outer Joins (3) Outer Joins (4)
Implementing Outer Join:

 Outer Join Operators:
 Implementing Outer Join (contd.):
 LEFT OUTER JOIN  Modifying Join Algorithms:
 RIGHT OUTER JOIN
 FULL OUTER JOIN.  Nested Loop or Sort-Merge joins can be modified to
 The full outer join produces a result which is equivalent to the union of the implement outer join. E.g.,
results of the left and right outer joins.
 For left outer join, use the left relation as outer relation and
 Example:
SELECT FNAME, DNAME
construct result from every tuple in the left relation.
FROM (EMPLOYEE LEFT OUTER JOIN DEPARTMENT  If there is a match, the concatenated tuple is saved in the
ON DNO = DNUMBER); result.
 Note: The result of this query is a table of employee names and their
associated departments. It is similar to a regular join result, with the exception  However, if an outer tuple does not match, then the tuple is
that if an employee does not have an associated department, the employee's still included in the result but is padded with a null value(s).
name will still appear in the resulting table, although the department name
would be indicated as null.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 31 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 32

Implementing Aggregate Operations and 6. Combining Operations using Pipelining


Outer Joins (5) (1)
 Implementing Outer Join (contd.):  Motivation
 Executing a combination of relational algebra operators.
 Implement the previous left outer join example  A query is mapped into a sequence of operations.
 {Compute the JOIN of the EMPLOYEE and DEPARTMENT  Each execution of an operation produces a temporary
tables} result.
 TEMP1
FNAME,DNAME(EMPLOYEE DNO=DNUMBER DEPARTMENT)
 {Find the EMPLOYEEs that do not appear in the JOIN}
 Generating and saving temporary files on disk is time
 TEMP2   FNAME (EMPLOYEE) - FNAME (Temp1)
consuming and expensive.
 {Pad each tuple in TEMP2 with a null DNAME field}  Alternative:
 TEMP2  TEMP2 x 'null'  Avoid constructing temporary results as much as possible.
 {UNION the temporary tables to produce the LEFT OUTER JOIN}  Pipeline the data through multiple operations - pass the
 RESULT  TEMP1  TEMP2 result of a previous operator to the next without waiting to
 The cost of the outer join, as computed above, would include the cost complete the previous operation.
of the associated steps (i.e., join, projections and union).

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 33 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 34

7. Using Heuristics in Query


Combining Operations using Pipelining (2) Optimization(1)

 Example:  Process for heuristics optimization


1. The parser of a high-level query generates an initial
 For a 2-way join, combine the 2 selections on the internal representation;
input and one projection on the output with the 2. Apply heuristics rules to optimize the internal
Join. representation.
 Dynamic generation of code to allow for multiple 3. A query execution plan is generated to execute groups of
operations based on the access paths available on the files
operations to be pipelined. involved in the query.
 Results of a select operation are fed in a
"Pipeline" to the join algorithm.  The main heuristic is to apply first the operations that
reduce the size of intermediate results.
 Also known as stream-based processing.  E.g., Apply SELECT and PROJECT operations before
applying the JOIN or other binary operations.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 35 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 36

6
Using Heuristics in Query Optimization (2) Using Heuristics in Query Optimization (3)
 Query tree:  Example:
 For every project located in ‘Stafford’, retrieve the project number,
 A tree data structure that corresponds to a relational algebra
expression. It represents the input relations of the query as the controlling department number and the department manager’s
last name, address and birthdate.
leaf nodes of the tree, and represents the relational algebra
operations as internal nodes.  Relation algebra:
 An execution of the query tree consists of executing an PNUMBER, DNUM, LNAME, ADDRESS, BDATE
internal node operation whenever its operands are (((PLOCATION=‘STAFFORD’(PROJECT))
(DEPARTMENT)) (EMPLOYEE))
available and then replacing that internal node by the DNUM=DNUMBER MGRSSN=SSN

relation that results from executing the operation.


 SQL query:
 Query graph: Q2: SELECT P.NUMBER,P.DNUM,E.LNAME,
 A graph data structure that corresponds to a relational E.ADDRESS, E.BDATE
calculus expression. It does not indicate an order on which FROM PROJECT AS P,DEPARTMENT AS D,
operations to perform first. There is only a single graph EMPLOYEE AS E
corresponding to each query. WHERE P.DNUM=D.DNUMBER AND
D.MGRSSN=E.SSN AND
P.PLOCATION=‘STAFFORD’;
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 37 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 38

Using Heuristics in Query Optimization (4) Using Heuristics in Query Optimization (5)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 39 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 40

Using Heuristics in Query Optimization (6) Using Heuristics in Query Optimization (7)
 Heuristic Optimization of Query Trees:
 The same query could correspond to many different
relational algebra expressions — and hence many different
query trees.
 The task of heuristic optimization of query trees is to find a
final query tree that is efficient to execute.
 Example:
Q: SELECT LNAME
FROM EMPLOYEE, WORKS_ON, PROJECT
WHERE PNAME = ‘AQUARIUS’ AND
PNMUBER=PNO AND ESSN=SSN
AND BDATE > ‘1957-12-31’;

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 41 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 42

7
Using Heuristics in Query Optimization (8) Using Heuristics in Query Optimization (9)
 General Transformation Rules for Relational Algebra Operations:
1. Cascade of : A conjunctive selection condition can be broken up into
a cascade (sequence) of individual  operations:
  c1 AND c2 AND ... AND cn(R) = c1 (c2 (...(cn(R))...) )

2. Commutativity of : The  operation is commutative:


 c1 (c2(R)) = c2 (c1(R))

3. Cascade of : In a cascade (sequence) of  operations, all but the


last one can be ignored:
 List1 (List2 (...(Listn(R))...) ) = List1(R)

4. Commuting  with : If the selection condition c involves only the


attributes A1, ..., An in the projection list, the two operations can be
commuted:
 A1, A2, ..., An (c (R)) = c (A1, A2, ..., An (R))

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 43 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 44

Using Heuristics in Query Optimization Using Heuristics in Query Optimization


(10) (11)
 General Transformation Rules for Relational Algebra Operations  General Transformation Rules for Relational Algebra
(contd.):
Operations (contd.):
5. Commutativity of ( and x ): The operation is commutative as is
the x operation: 7. Commuting  with (or x): Suppose that the projection list
 R C S = S C R; R x S = S x R is L = {A1, ..., An, B1, ..., Bm}, where A1, ..., An are
6. Commuting  with (or x ): If all the attributes in the selection attributes of R and B1, ..., Bm are attributes of S. If the
condition c involve only the attributes of one of the relations being
joined—say, R—the two operations can be commuted as follows: join condition c involves only attributes in L, the two
 c ( R S ) = (c (R)) S
operations can be commuted as follows:
 Alternatively, if the selection condition c can be written as (c1 and c2),  L ( R C S ) = (A1, ..., An (R)) C ( B1, ..., Bm (S))
where condition c1 involves only the attributes of R and condition c2
involves only the attributes of S, the operations commute as follows:  If the join condition C contains additional attributes not in
 c ( R S ) = (c1 (R)) (c2 (S)) L, these must be added to the projection list, and a final 
operation is needed.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 45 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 46

Using Heuristics in Query Optimization Using Heuristics in Query Optimization


(12) (13)
 General Transformation Rules for Relational Algebra  General Transformation Rules for Relational Algebra
Operations (contd.): Operations (contd.):
8. Commutativity of set operations: The set operations  and
 are commutative but “–” is not.  The  operation commutes with .
9. Associativity of , x, , and  : These four operations are L ( R  S ) = (L (R))  (L (S))
individually associative; that is, if  stands for any one of
these four operations (throughout the expression), we
have  Converting a (, x) sequence into : If the condition c of a
 (RS)T = R(ST)  that follows a x Corresponds to a join condition, convert
10. Commuting  with set operations: The  operation the (, x) sequence into a as follows:
commutes with  ,  , and –. If  stands for any one of (C (R x S)) = (R C S)
these three operations, we have
 c ( R  S ) = (c (R))  (c (S))
 Other transformations

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 47 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 48

8
Using Heuristics in Query Optimization Using Heuristics in Query Optimization
(14) (15)
 Outline of a Heuristic Algebraic Optimization Algorithm:  Summary of Heuristics for Algebraic Optimization:
1. Using rule 1, break up any select operations with conjunctive conditions into
a cascade of select operations. 1. The main heuristic is to apply first the operations that
2. Using rules 2, 4, 6, and 10 concerning the commutativity of select with other reduce the size of intermediate results.
operations, move each select operation as far down the query tree as is
permitted by the attributes involved in the select condition. 2. Perform select operations as early as possible to reduce
3. Using rule 9 concerning associativity of binary operations, rearrange the leaf the number of tuples and perform project operations as
nodes of the tree so that the leaf node relations with the most restrictive early as possible to reduce the number of attributes. (This
select operations are executed first in the query tree representation.
is done by moving select and project operations as far
4. Using Rule 12, combine a Cartesian product operation with a subsequent
select operation in the tree into a join operation. down the tree as possible.)
5. Using rules 3, 4, 7, and 11 concerning the cascading of project and the 3. The select and join operations that are most restrictive
commuting of project with other operations, break down and move lists of should be executed before other similar operations. (This is
projection attributes down the tree as far as possible by creating new project
operations as needed. done by reordering the leaf nodes of the tree among
6. Identify subtrees that represent groups of operations that can be executed by themselves and adjusting the rest of the tree
a single algorithm. appropriately.)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 49 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 50

Using Heuristics in Query Optimization 8. Using Selectivity and Cost Estimates in


(16) Query Optimization (1)
 Query Execution Plans  Cost-based query optimization:
 An execution plan for a relational algebra query consists of  Estimate and compare the costs of executing a
a combination of the relational algebra query tree and
information about the access methods to be used for each
query using different execution strategies and
relation as well as the methods to be used in computing the choose the strategy with the lowest cost estimate.
relational operators stored in the tree.  (Compare to heuristic query optimization)
 Materialized evaluation: the result of an operation is stored
as a temporary relation.
 Pipelined evaluation: as the result of an operator is  Issues
produced, it is forwarded to the next operator in sequence.  Cost function
 Number of execution strategies to be considered

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 51 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 52

Using Selectivity and Cost Estimates in Using Selectivity and Cost Estimates in
Query Optimization (2) Query Optimization (3)

 Cost Components for Query Execution  Catalog Information Used in Cost Functions
1. Access cost to secondary storage  Information about the size of a file
 number of records (tuples) (r),
2. Storage cost  record size (R),
3. Computation cost  number of blocks (b)
4. Memory usage cost  blocking factor (bfr)
Information about indexes and indexing attributes of a file
5. Communication cost 

 Number of levels (x) of each multilevel index


 Number of first-level index blocks (bI1)
 Note: Different database systems may focus on  Number of distinct values (d) of an attribute
Selectivity (sl) of an attribute
different cost components. 

 Selection cardinality (s) of an attribute. (s = sl * r)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 53 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 54

9
Using Selectivity and Cost Estimates in Using Selectivity and Cost Estimates in
Query Optimization (4) Query Optimization (5)
 Examples of Cost Functions for SELECT  Examples of Cost Functions for SELECT (contd.)
 S1. Linear search (brute force) approach  S4. Using an ordering index to retrieve multiple records:
 CS1a = b;
 For an equality condition on a key, CS1a = (b/2) if the record  For the comparison condition on a key field with an ordering
is found; otherwise CS1a = b. index, CS4 = x + (b/2)
 S2. Binary search:  S5. Using a clustering index to retrieve multiple records:
 CS2 = log2b + (s/bfr) –1  CS5 = x + ┌ (s/bfr) ┐
 For an equality condition on a unique (key) attribute, CS2
=log2b  S6. Using a secondary (B+-tree) index:
 S3. Using a primary index (S3a) or hash key (S3b) to  For an equality comparison, CS6a = x + s;
retrieve a single record  For an comparison condition such as >, <, >=, or <=,
 CS3a = x + 1; CS3b = 1 for static or linear hashing;  CS6a = x + (bI1/2) + (r/2)
 CS3b = 1 for extendible hashing;

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 55 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 56

Using Selectivity and Cost Estimates in Using Selectivity and Cost Estimates in
Query Optimization (6) Query Optimization (7)
 Examples of Cost Functions for SELECT (contd.)  Examples of Cost Functions for JOIN
 S7. Conjunctive selection:  Join selectivity (js)
 Use either S1 or one of the methods S2 to S6 to solve.
 js = | (R C S) | / | R x S | = | (R C S) | / (|R| * |S
For the latter case, use one condition to retrieve the records

|)
and then check in the memory buffer whether each retrieved
record satisfies the remaining conditions in the conjunction.  If condition C does not exist, js = 1;
 S8. Conjunctive selection using a composite index:  If no tuples from the relations satisfy condition C, js
 Same as S3a, S5 or S6a, depending on the type of index. = 0;
 Usually, 0 <= js <= 1;
 Examples of using the cost functions.  Size of the result file after join operation
 | (R C S) | = js * |R| * |S |

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 57 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 58

Using Selectivity and Cost Estimates in Using Selectivity and Cost Estimates in
Query Optimization (8) Query Optimization (9)
 Examples of Cost Functions for JOIN (contd.)  Examples of Cost Functions for JOIN (contd.)
 J1. Nested-loop join:  J2. Single-loop join (contd.)
 For a secondary index,
 CJ1 = bR + (bR*bS) + ((js* |R|* |S|)/bfrRS)  CJ2a = bR + (|R| * (xB + sB)) + ((js* |R|* |S|)/bfrRS);
 (Use R for outer loop)  For a clustering index,
 J2. Single-loop join (using an access structure to retrieve  CJ2b = bR + (|R| * (xB + (sB/bfrB))) + ((js* |R|* |S|)/bfrRS);
the matching record(s))  For a primary index,
 CJ2c = bR + (|R| * (xB + 1)) + ((js* |R|* |S|)/bfrRS);
 If an index exists for the join attribute B of S with index  If a hash key exists for one of the two join attributes — B of
levels xB, we can retrieve each record s in R and then use S
the index to retrieve all the matching records t from S that  CJ2d = bR + (|R| * h) + ((js* |R|* |S|)/bfrRS);
satisfy t[B] = s[A].  J3. Sort-merge join:
 The cost depends on the type of index.  CJ3a = CS + bR + bS + ((js* |R|* |S|)/bfrRS);
 (CS: Cost for sorting files)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 59 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 60

10
Using Selectivity and Cost Estimates in 9. Overview of Query Optimization in
Query Optimization (10) Oracle
 Multiple Relation Queries and Join Ordering  Oracle DBMS V8
 A query joining n relations will have n-1 join operations, and  Rule-based query optimization: the optimizer chooses
hence can have a large number of different join orders when execution plans based on heuristically ranked operations.
we apply the algebraic transformation rules.  (Currently it is being phased out)
 Current query optimizers typically limit the structure of a  Cost-based query optimization: the optimizer examines
(join) query tree to that of left-deep (or right-deep) trees. alternative access paths and operator algorithms and
chooses the execution plan with lowest estimate cost.
 Left-deep tree:  The query cost is calculated based on the estimated usage of
resources such as I/O, CPU and memory needed.
 A binary tree where the right child of each non-leaf node is
 Application developers could specify hints to the ORACLE
always a base relation.
query optimizer.
 Amenable to pipelining
 The idea is that an application developer might know more
 Could utilize any access paths on the base relation (the right
child) when executing the join.
information about the data.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 61 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 62

10. Semantic Query Optimization Summary


 Semantic Query Optimization: 0. Introduction to Query Processing
 Uses constraints specified on the database schema in order to
modify one query into another query that is more efficient to
1. Translating SQL Queries into Relational Algebra
execute. 2. Algorithms for External Sorting
 Consider the following SQL query, 3. Algorithms for SELECT and JOIN Operations
SELECT E.LNAME, M.LNAME 4. Algorithms for PROJECT and SET Operations
FROM EMPLOYEE E M
WHERE E.SUPERSSN=M.SSN AND E.SALARY>M.SALARY
5. Implementing Aggregate Operations and Outer Joins
 Explanation: 6. Combining Operations using Pipelining
 Suppose that we had a constraint on the database schema that 7. Using Heuristics in Query Optimization
stated that no employee can earn more than his or her direct 8. Using Selectivity and Cost Estimates in Query
supervisor. If the semantic query optimizer checks for the
existence of this constraint, it need not execute the query at all Optimization
because it knows that the result of the query will be empty. 9. Overview of Query Optimization in Oracle
Techniques known as theorem proving can be used for this
purpose. 10. Semantic Query Optimization

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 63 Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 15- 64

11

You might also like