Υπολογιστικά Συστήματα –Βάσεις ΔεδομένωνΔιδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας
ΔΠΜΣ «Τεχνο-‐Οικονομικά Συστήματα»Τεχνολογία Πληροφορίας και Τηλεπικοινωνιών
Ιστοσελίδα Μαθήματος
¨ http://people.cn.ntua.gr/jenny/index.php/courses
¨ e-mail επικοινωνίας: ¤ [email protected]¤ [email protected]
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
2
Προτεινόμενη Βιβλιογραφία
¨ A. Silberschatz, H. Korth και S. Sudarsham, Database System Concepts (Συστήματα Βάσεων Δεδομένων), 4ηέκδοση ή ανώτερη
¨ Για τη σύνταξη εντολών SQL μπορείτε να συμβουλεύεστε: ¤ http://www.w3schools.com/sql/default.asp
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
3
Σύστημα Διαχείρισης Βάσης Δεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
4
¨ Σύστημα Διαχείρισης Βάσης Δεδομένων (Database Management System –DBMS)¤ ένα σύστημα που επιτρέπει την αποτελεσματική και βολική αποθήκευση
δεδομένων που σχετίζονται μεταξύ τους καθώς και την πρόσβαση σε αυτά¤ Βάση Δεδομένων (ΒΔ) – Database (DB): η συλλογή των δεδομένων που
σχετίζονται μεταξύ τους¨ Ευρεία χρήση σε
¤ Τράπεζες: πληροφορίες συναλλαγών¤ Αεροπορικές εταιρείες: κρατήσεις θέσεων, πληροφορίες πτήσεων¤ Πανεπιστήμια: εγγραφές και βαθμοί φοιτητών¤ Πωλήσεις: πληροφορίες πελατών, προϊόντων, πωλήσεων¤ Συναλλαγές πιστωτικών καρτών: πληροφορίες συναλλαγών, μηνιαίες κινήσεις¤ Τηλεπικοινωνίες: αναλυτικές καταστάσεις κλήσεων, μηνιαίες χρεώσεις,
πληροφορίες θέσης, πληροφορίες συνδρομητών¤ Βιομηχανία: πληροφορίες προμηθειών, αποθήκης, παραγγελιών¤ Ανθρώπινοι πόροι: πληροφορίες εργαζομένων, μισθών, φόρων μισθοδοσίας
Τα Μειονεκτήματα των Συστημάτων Αρχείων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
5
¨ Όπως είδαμε στο προηγούμενο μάθημα, ένας τρόπος για τη διατήρηση πληροφοριών σε έναν υπολογιστή είναι η αποθήκευσή τους σε αρχεία του Λειτουργικού Συστήματος
¨ Πριν την έλευση των DBMS, οι εφαρμογές βάσεων δεδομένων βασίζονταν απευθείας στα συστήματα αρχείων
¨ Μειονεκτήματα της απευθείας χρήσης συστημάτων αρχείων για την αποθήκευση και διαχείριση δεδομένων¤ Πλεονασμός και ασυνέπεια των δεδομένων
n Επανάληψη πληροφορίας σε διαφορετικά αρχεία, συνακόλουθη δυσκολία διατήρησης της συνέπειας των διαφόρων αντιγράφων των ίδιων δεδομένων
¤ Δυσχερής πρόσβαση στα δεδομέναn Κάθε φορά που εμφανίζεται μια νέα ανάγκη (π.χ. αναζήτηση με βάση διαφορετικά κριτήρια), πρέπει να γραφεί ένα καινούριο πρόγραμμα που να την καλύπτει
¤ Απομόνωση των δεδομένωνn Δεδομένα κατανεμημένα σε πολλαπλά αρχεία διαφορετικών τύπων
Τα Μειονεκτήματα των Συστημάτων Αρχείων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
6
¨ Μειονεκτήματα – συνέχεια ¤ Προβλήματα ακεραιότητας των δεδομένων
n Δυνατότητα επιβολής περιορισμών στα δεδομένα (π.χ. υπόλοιπο λογαριασμού > 0) μόνο μέσα από τον κώδικα των προγραμμάτων, δυσχεραίνοντας την προσθήκη νέων
¤ Προβλήματα ατομικότητας των ενημερώσεωνn Παράδειγμα: αν η μεταφορά ενός ποσού από ένα λογαριασμό σε έναν άλλο διακοπεί, τότε πρέπει ή να γίνουν και οι δύο ενέργειες (χρέωση του ενός λογαριασμού και ισόποση πίστωση του άλλου) ή να μην γίνει καμία από τις δύο ενέργειες
¤ Προβλήματα ταυτόχρονης πρόσβασηςn Παράδειγμα: αν δύο πελάτες προσπαθήσουν ταυτόχρονα να κάνουν ανάληψη από ένα λογαριασμό
¤ Προβλήματα ασφάλειαςn Δυσκολία παροχής πρόσβασης στους χρήστες σε κάποια αλλά όχι όλα τα δεδομένα
¨ à Στα προβλήματα αυτά δίνουν λύσεις τα DBMS
ΑφαιρετικότηταΔεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
7
¨ Βασικός σκοπός ενός DBMS είναι να παρέχει στους χρήστες μια αφηρημένη προβολή των δεδομένων, αποκρύπτοντας λεπτομέρειες σχετικά με τον τρόπο αποθήκευσής τους¤ Φυσικό Επίπεδο: περιγράφει πώς αποθηκεύονται τα δεδομένα, δηλ. πολύπλοκες δομές
δεδομένων¤ Λογικό Επίπεδο: περιγράφει τι δεδομένα αποθηκεύονται στη βάση και ποιες είναι οι σχέσεις
μεταξύ τους¤ Επίπεδο Προβολής: περιγράφει μέρος μόνο μιας ολόκληρης βάσης, ανάλογα με τις ανάγκες
και απαιτήσεις του χρήστη (π.χ. μπορεί να υπάρχει μία προβολή που να περιλαμβάνει τους μισθούς των εργαζομένων και μία που να μην τους περιλαμβάνει)
1.3 View of Data 7
view 1 view 2
logicallevel
physicallevel
view n…
view level
Figure 1.1 The three levels of data abstraction.
languages support the notion of a structured type. For example, we may describea record as follows:1
type instructor = recordID : char (5);name : char (20);dept name : char (20);salary : numeric (8,2);
end;
This code defines a new record type called instructor with four fields. Each fieldhas a name and a type associated with it. A university organization may haveseveral such record types, including
• department, with fields dept name, building, and budget
• course, with fields course id, title, dept name, and credits
• student, with fields ID, name, dept name, and tot cred
At the physical level, an instructor, department, or student record can be de-scribed as a block of consecutive storage locations. The compiler hides this levelof detail from programmers. Similarly, the database system hides many of thelowest-level storage details from database programmers. Database administra-tors, on the other hand, may be aware of certain details of the physical organiza-tion of the data.
1The actual type declaration depends on the language being used. C and C++ use struct declarations. Java does not havesuch a declaration, but a simple class can be defined to the same effect.
Βασικές Έννοιες
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
8
¨ Σχήμα ΒΔ (schema): Το γενικό σχέδιο της ΒΔ (μεταβάλλεται σπάνια)¤ Καθορίζει το είδος των δεδομένων που θα διατηρεί η ΒΔ, καθώς και το
είδος των σχέσεων μεταξύ τουςn Παράδειγμα: η ΒΔ θα διατηρεί το σύνολο των πελατών μιας τράπεζας και το σύνολο των λογαριασμών της, καθώς και τον τρόπο αντιστοίχισης αυτών
¨ Στιγμιότυπο ΒΔ (instance): Η συλλογή των δεδομένων που είναι αποθηκευμένα στη ΒΔ κάποια συγκεκριμένη στιγμή¤ Πρόκειται δηλ. για τα περιεχόμενα της ΒΔ μια χρονική στιγμή
¨ Μοντέλο δεδομένων (data model): Ένα σύνολο εργαλείων για την περιγραφή των δεδομένων, των σχέσεών τους, της σημασίας τους και των περιορισμών τους¤ Δύο βασικοί τύποι μοντέλων δεδομένων
n Σχεσιακό μοντέλο (Relational model)n Μοντέλο οντότητας-‐σχέσης (Entity-Relationship model – E-R model)
Σχεσιακό Μοντέλο
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
9
¨ Ένα σχεσιακό μοντέλο χρησιμοποιεί μια συλλογή από πίνακες για την αναπαράσταση των δεδομένων και των σχέσεών τους¤ Κάθε πίνακας (ή αλλιώς σχέση – relation) αποτελείται από στήλες (ή αλλιώς πεδία ή ιδιότητες – attributes) και γραμμές (ή αλλιώς εγγραφές ή πλειάδες – tuples)
¤ Η σειρά των εγγραφών δεν έχει σημασία¨ Παράδειγμα: Βλ. επόμενη διαφάνεια
¤ Βλέπουμε ότι η αντιστοίχιση (συσχέτιση) πελατών με λογαριασμούς γίνεται αποτελεσματικότερα μέσω ενός τρίτου πίνακα (του πίνακα καταθετών)
10Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
Κλειδιά
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
11
¨ Ένα υπερ-‐κλειδί (superkey) είναι ένα σύνολο από μία ή περισσότερες ιδιότητες που προσδιορίζουν μοναδικά κάθε εγγραφή ενός πίνακα¤ Παράδειγμα: Τόσο το σύνολο {customer-‐id} όσο και το {customer-‐id,
customer-‐name} αποτελούν υπερ-‐κλειδιά για τον πίνακα customer¨ Ένα υπερ-‐κλειδί Κ λέγεται υποψήφιο κλειδί (candidate key) αν είναι
το ελάχιστο δυνατό (δηλ. δεν υπάρχει υποσύνολό του που να αποτελεί υπερ-‐κλειδί)¤ Παράδειγμα: Το σύνολο {customer-‐id} είναι υποψήφιο κλειδί για τον
πίνακα customer
¨ Ο σχεδιαστής της ΒΔ διαλέγει ένα υποψήφιο κλειδί για να προσδιορίσει μοναδικά κάθε εγγραφή του πίνακα – το υποψήφιο αυτό κλειδί ονομάζεται πρωτεύον κλειδί (primary key – PK)
Κλειδιά
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
12
¨ Το πρωτεύον κλειδί θα πρέπει να επιλέγεται με προσοχή ¤ Παραδείγματα: Μπορεί να χρησιμοποιηθεί ως μοναδικό
αναγνωριστικό ενός ατόμου... n το ονοματεπώνυμό του?n η διεύθυνσή του?n ο αριθμός κοινωνικής ασφάλισής του?n ο αριθμός φορολογικού μητρώου του?
¨ Ξένο κλειδί (foreign key – FK): Ένας πίνακας, έστω rf, ενδέχεται να περιλαμβάνει μεταξύ των ιδιοτήτων του και το πρωτεύον κλειδί ενός άλλου πίνακα, έστω rp – η ιδιότητα αυτή αποτελεί ένα ξένο κλειδί για τον rf που κάνει αναφορά (δείχνει) στον rp¤ Η σχέση rf καλείται και αναφέρουσα (referencing) σχέση, ενώ η rp
καλείται αναφερόμενη (referenced) σχέση
Πεδίο Ορισμού και Σχήμα Σχέσης
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
13
¨ Το σύνολο επιτρεπτών τιμών μιας ιδιότητας καλείται πεδίο ορισμού (domain)
¨ Η ειδική τιμή null θεωρείται μέλος κάθε πεδίου ορισμού και σημαίνει ότι η αντίστοιχη τιμή απουσιάζει ή είναι άγνωστη¤ Ο χειρισμός τιμών null είναι συχνά δύσκολος
¨ Έστω ότι A1, A2, …, An είναι ιδιότητες¨ Τότε το R = (A1, A2, …, An ) ονομάζεται σχήμα σχέσης (relation
schema)¤ Παράδειγμα:customer = (customer-‐id, customer-‐name, customer-‐street, customer-‐city)ή καλύτερα γράφουμε: customer (customer-‐id, customer-‐name, customer-‐street, customer-‐city)
Γλώσσες ΒΔ
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
14
¨ Γλώσσα Ορισμού των Δεδομένων – Data Definition Language (DDL): καθορίζει το σχήμα της ΒΔ¤ Παράδειγμα: Ορισμός του πίνακα accountcreate table account
(account-number char(10), balance integer)
n Η εκτέλεση της παραπάνω εντολής δημιουργεί τον πίνακα account, ενώ επίσης ενημερώνει ένα ειδικό σύνολο από πίνακες το οποίο ονομάζεται λεξικό ή κατάλογος δεδομένων και περιέχει μετα-‐δεδομένα.
¨ Γλώσσα Χειρισμού των Δεδομένων – Data Manipulation Language – DML): επιτρέπει στους χρήστες να ανακαλούν πληροφορίες, εισάγουν νέες, διαγράφουν ή τροποποιούν υπάρχουσες¤ Παράδειγμα: select customer-name from customerwhere customer-id = ‘192-83-7465’
n Η εκτέλεση της παραπάνω εντολής βρίσκει το όνομα του πελάτη του οποίου ο κωδικός είναι ο 192-83-7465. Τέτοιου είδους εντολές καλούνται και ερωτήματα.
¨ Η SQL (Structured Query Language) είναι η πιο διαδεδομένη γλώσσα για ΒΔ (τόσο DDL όσο και DML)
Παράδειγμα Βάσης Δεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
15
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Demestichas 03100100 Katexaki 24 8 1
Papadopoulos 03100203 Papagou 3 7 4
Papadakis 03101122 Kokkinopoulou 15 6 2
Raptis 03100209 Papagou 5 7 1
STUDENTREGISTRY
Παράδειγμα Βάσης Δεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
16
IdNumber Diktya Arxitektoniki
Sxedio
03100121 1 2 10
03100100 4 5 9
03100203 6 6
03101122 8 3
03100209 7 9
GRADESREGISTRY
*Στο παράδειγμα, όπου ο πίνακας έχει κενά θεωρούμε ότι υπάρχει η τιμή null
Παράδειγμα – SQL QueryΕπιστροφή όλων των εγγραφών
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
17
¨ select * from STUDENTREGISTRY;¨ Τι κάνει το παραπάνω query?
¤ Απ.: Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Demestichas 03100100 Katexaki 24 8 1
Papadopoulos 03100203 Papagou 3 7 4
Papadakis 03101122 Kokkinopoulou 15 6 2
Raptis 03100209 Papagou 5 7 1
Παράδειγμα – SQL QueryΕπιστροφή εγγραφών με συγκεκριμένα κριτήρια
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
18
¨ select * from STUDENTREGISTRY where Semester=7;¨ Τι κάνει το παραπάνω query?
¤ Απ.: Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY με τους φοιτητές που βρίσκονται στο 7o εξάμηνο
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Papadopoulos 03100203 Papagou 3 7 4
Raptis 03100209 Papagou 5 7 1
Παράδειγμα – SQL QueryΕπιστροφή στήλης με συγκεκριμένα κριτήρια
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
19
¨ select IdNumber from STUDENTREGISTRY where Semester=7;¨ Τι κάνει το παραπάνω query?
¤ Απ.: Επιστρέφει τους αριθμούς μητρώου όλων των φοιτητών που βρίσκονται στο 7ο εξάμηνο
¨ Πώς παίρνουμε τους Α/Μ όλων των φοιτητών που βρίσκονται σε εξάμηνο μικρότερο του 7ου;
IdNumber
03100121
03100203
03100209
Παράδειγμα – SQL QueryΜέτρηση εγγραφών και χρήση συναρτήσεων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
20
¨ select count(*) from STUDENTREGISTRY;¨ Τι κάνει το παραπάνω query?
¤ Απ. Επιστρέφει το πλήθος γραμμών του πίνακα STUDENTREGISTRY (δηλ.: 5)¨ select count(*) from STUDENTREGISTRY where Semester > 6 AND Semester <
9;¨ Τι κάνει το παραπάνω query?
¤ Απ. Επιστρέφει το πλήθος φοιτητών που βρίσκονται στο 7ο ή στο 8ο εξάμηνο (4)¤ Ομοίως: select count(*) from STUDENTREGISTRY where Semester = 7 OR Semester = 8;¤ Ομοίως: select count(*) from STUDENTREGISTRY where Semester in (7, 8);
¨ Άλλες σημαντικές συναρτήσεις (aggregate functions): max(), min(), avg(), sum()¤ Επιστρέφουν μία τιμή που υπολογίζεται βάσει των τιμών μιας στήλης¤ Ερ. Τι κάνει το παρακάτω query?¤ select avg(Sxedio) from GRADESREGISTRY;
Παράδειγμα – SQL QueryΑνάκτηση εγγραφών από δύο πίνακες
21
¨ select STUDENTREGISTRY.Name, GRADESREGISTRY.Diktya, GRADESREGISTRY.Sxediofrom STUDENTREGISTRY, GRADESREGISTRY where STUDENTREGISTRY.IdNumber = GRADESREGISTRY.IdNumber;
¨ ή: select s.Name, g.Diktya, g.Sxedio from STUDENTREGISTRY as s, GRADESREGISTRY as g where s.IdNumber = g.IdNumber;
¨ Τι κάνει το παραπάνω query?¤ Απ. Επιστρέφει τα ονόματα των φοιτητών και τους αντίστοιχους βαθμούς τους στα
μαθήματα Δίκτυα και Σχέδιο¨ Εναλλακτικά με χρήση join:
¤ select STUDENTREGISTRY.Name, GRADESREGISTRY.Diktya, GRADESREGISTRY.Sxedio fromSTUDENTREGISTRY join GRADESREGISTRY on STUDENTREGISTRY.IdNumber = GRADESREGISTRY.IdNumber;
Name Diktya Sxedio
Adamopoulou 1 10
Demestichas 4 9
Papadopoulos 6
Papadakis 8 3
Raptis 7
Είδη συνδέσμων (join) –Εποπτική παρουσίαση
22
*join σκέτο και inner joinείναι συνώνυμα*left/right/full join και left/right/full outer join είναι συνώνυμα, αντίστοιχα
Παράδειγμα – SQL QueryΟι δύο τρόποι να κάνουμε join
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
23
¨ Με χρήση join: select table1.this, table2.that, table2.somethingelsefrom table1 inner join table2 on table1.foreignkey = table2.primarykeywhere (some other conditions)
¨ Με κατάλληλη συνθήκη εντός του where: select table1.this, table2.that, table2.somethingelsefrom table1, table2where table1.foreignkey = table2.primarykey AND (some other conditions)
Παράδειγμα – SQL QueryΕπιλογή εξ αποτελέσματος άλλου query
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
24
¨ select Name from (select s.Name, g.Diktya fromSTUDENTREGISTRY as s, GRADESREGISTRY as g wheres.IdNumber = g.IdNumber) where Diktya < 5;
¨ Τι κάνει το παραπάνω query?¤ Απ. Επιστρέφει τα ονόματα των φοιτητών που έχουν βαθμό μικρότερο
του 5 στο μάθημα Δίκτυα
Name
Demestichas
Παράδειγμα – SQL QueryΕπιστροφή ταξινομημένων αποτελεσμάτων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
25
¨ select * from STUDENTREGISTRY order by IdNumber;¨ Τι κάνει το παραπάνω query?
¤ Απ. Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY ταξινομημένες κατά αύξουσα σειρά του Αριθμού Μητρώου
Name IdNumber Address Semester NumberofFailedExams
Demestichas 03100100 Katexaki 24 8 1
Adamopoulou 03100121 Polytexneiou 35 7 0
Papadopoulos 03100203 Papagou 3 7 4
Raptis 03100209 Papagou 5 7 1
Papadakis 03101122 Kokkinopoulou 15 6 2
Παράδειγμα – SQL QueryΧρήση συνάρτησης με ομαδοποίηση αποτελεσμάτων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
26
¨ select Semester, sum(NumberofFailedExams) asSumOfFailedExams from STUDENTREGISTRY group by Semester;
¨ Τι κάνει το παραπάνω query?¤ Απ. Επιστρέφει το άθροισμα των αποτυχημένων εξετάσεων ανά εξάμηνο
Semester SumOfFailedExams
8 1
7 5
6 2
Παράδειγμα – SQL QueryΑπαλοιφή διπλότυπων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
27
¨ select distinct Semester from STUDENTREGISTRY;¨ Τι κάνει το παραπάνω query?
¤ Απ. Επιστρέφει τις τιμές των εξαμήνων χωρίς διπλότυπα
Semester
8
7
6
Παράδειγμα – SQL QueryΑναζήτηση με μοτίβο χαρακτήρων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
28
¨ select Name from STUDENTREGISTRY where Name LIKE ‘Papa%’;¨ Τι κάνει το παραπάνω query?
¤ Απ. Επιστρέφει τα ονόματα των φοιτητών που ξεκινούν με Papa (και ακολουθεί κανένας, ένας ή περισσότεροι χαρακτήρες)
¤ Χρησιμοποιήθηκε εδώ το wildcard % για να φτιαχτεί το μοτίβο (pattern) που θέλουμε να αναζητήσουμε
¤ Επίσης, συχνά χρησιμοποιείται και το wildcard _ για να υποδηλώσει έναν ακριβώς χαρακτήρα (π.χ. το ‘Papadak_s’ θα επέστρεφε και το Papadakis αλλά και το Papadakos, αν υπήρχε)
¤ Τι αποτέλεσμα θα είχε η ακόλουθη εντολή;n select Name from STUDENTREGISTRY where Name LIKE ‘%apad%’;
Name
Papadopoulos
Papadakis
Παράδειγμα – SQL Query Γενική σύνταξη
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
29
¨ Παράδειγμα 1: ¤ select attr1, attr2, …, attrj, …, attrn¤ into table_results¤ from table1¤ where condition1 AND|OR condition2¤ order by table1.attrjasc|desc;
¨ Παράδειγμα 2: ¤ select attr1, aggregate_function(attr2) as myvalue¤ into table_results¤ from table1¤ where condition1 AND|OR condition2¤ group by attr1¤ order by myvalue asc|desc;
Παράδειγμα – SQL QueryΤροποποίηση εγγραφών πίνακα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
30
¨ update STUDENTREGISTRYset Address = Amarousiou 32 where Name = ‘Raptis’;
¨ Τι κάνει το παραπάνω query?¤ Απ. Αλλάζει τη διεύθυνση του φοιτητή Ράπτη¤ Ερ. Τι θα γινόταν αν ξεχνούσαμε το where Name = ‘Raptis’;
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Demestichas 03100100 Katexaki 24 8 1
Papadopoulos 03100203 Papagou 3 7 4
Papadakis 03101122 Kokkinopoulou 15 6 2
Raptis 03100209 Amarousiou 32 7 1
Παράδειγμα – SQL QueryΔιαγραφή εγγραφών πίνακα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
31
¨ delete from STUDENTREGISTRY where Name = ‘Raptis’;¨ Τι κάνει το παραπάνω query?
¤ Απ. Διαγράφει το φοιτητή Ράπτη¤ Ερ. Τι θα γινόταν αν ξεχνούσαμε το where Name = ‘Raptis’;
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Demestichas 03100100 Katexaki 24 8 1
Papadopoulos 03100203 Papagou 3 7 4
Papadakis 03101122 Kokkinopoulou 15 6 2
Παράδειγμα – SQL QueryΕισαγωγή νέων εγγραφών σε πίνακα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
32
¨ insert into STUDENTREGISTRY values (‘Raptis’, ‘031000209’, ‘Amarousiou 32’, 7, 1);
¨ Τι κάνει το παραπάνω query?¤ Απ. Εισάγει το φοιτητή Ράπτη μαζί με τα στοιχεία του (θεωρούμε ότι ο
Ράπτης είχε διαγραφεί μέσω του προηγούμενου query)
Name IdNumber Address Semester NumberofFailedExams
Adamopoulou 03100121 Polytexneiou 35 7 0
Demestichas 03100100 Katexaki 24 8 1
Papadopoulos 03100203 Papagou 3 7 4
Papadakis 03101122 Kokkinopoulou 15 6 2
Raptis 03100209 Amarousiou 32 7 1
Δομή ΒΔ
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
33
¨ Δύο βασικά συστατικά¤ Διαχειριστής αποθήκευσης (storage manager)¤ Επεξεργαστής ερωτημάτων (query processor)
Διαχειριστής Αποθήκευσης
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
34
¨ Υπεύθυνος για την αποτελεσματική αποθήκευση, ανάκληση και ενημέρωση δεδομένων
¨ Συστατικά του διαχειριστή αποθήκευσης¤ Διαχειριστής ελέγχου ταυτότητας και ακεραιότητας¤ Διαχειριστής συναλλαγών
n συναλλαγή (transaction) είναι ένα σύνολο ενεργειών επί της ΒΔ οι οποίες πρέπει να εκτελεστούν σαν μια ενιαία λειτουργία
¤ Διαχειριστής αρχείωνn υπεύθυνος για τη δέσμευση του χώρου στο δίσκο και τις δομές δεδομένων που
χρησιμοποιούνται για την αποθήκευση πληροφοριών¤ Διαχειριστής buffer
n υπεύθυνος για την τροφοδοσία των δεδομένων από το δίσκο στην κύρια μνήμη¨ Χειρίζεται τις εξής δομές δεδομένων
¤ Αρχεία δεδομένων¤ Λεξικό δεδομένων¤ Ευρετήρια
Επεξεργαστής Ερωτημάτων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
35
¨ Βασικά στάδια επεξεργασίας ερωτήματος1. Επεξεργασία και μετάφραση (Parsing and translation)2. Βελτιστοποίηση (Optimization)3. Υπολογισμός (Evaluation)
¨ Βασικά συστατικά¤ DDL interpreter
(διερμηνευτής)¤ DML compiler
(μεταγλωττιστής)¤ Query evaluation
engine (Μηχανή υπολογισμού ερωτημάτων)
538 Chapter 12 Query Processing
queryoutput
query parser andtranslator
evaluation engine
relational-algebraexpression
execution plan
optimizer
data statisticsabout data
Figure 12.1 Steps in query processing.
Given a query, there are generally a variety of methods for computing theanswer. For example, we have seen that, in SQL, a query could be expressed inseveral different ways. Each SQL query can itself be translated into a relational-algebra expression in one of several ways. Furthermore, the relational-algebrarepresentation of a query specifies only partially how to evaluate a query; there areusually several ways to evaluate relational-algebra expressions. As an illustration,consider the query:
select salaryfrom instructorwhere salary < 75000;
This query can be translated into either of the following relational-algebra ex-pressions:
• !salary <75000 (!salary (instructor ))
• !salary (!salary<75000 (instructor ))
Further, we can execute each relational-algebra operation by one of severaldifferent algorithms. For example, to implement the preceding selection, we cansearch every tuple in instructor to find tuples with salary less than 75000. If aB+-tree index is available on the attribute salary, we can use the index instead tolocate the tuples.
To specify fully how to evaluate a query, we need not only to provide therelational-algebra expression, but also to annotate it with instructions specifyinghow to evaluate each operation. Annotations may state the algorithm to be used
Γενική Δομή DBMS36
Διαχείριση Συναλλαγών
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
37
¨ Μια συναλλαγή (transaction) αποτελείται από μια σειρά από εντολές ερωτημάτων ή/και ενημερώσεων που πρέπει να εκτελεστεί αδιαίρετα
¨ Μια συναλλαγή τερματίζει με μία από τις δύο κάτωθι εντολές¤ commit (ολοκλήρωση), μέσω της οποίας γίνονται μόνιμες οι ενημερώσεις που εκτελεί η συναλλαγή στη ΒΔ
¤ rollback (αναίρεση), μέσω της οποίας ακυρώνονται όλες οι ενημερώσεις που έγιναν από τις SQL εντολές της συναλλαγής
¨ Σε πολλές ΒΔ, κάθε SQL εντολή θεωρείται εξ ορισμού μία συναλλαγή από μόνη της και γίνεται commit μόλις εκτελεστεί¤ Αυτό το αυτόματο commit το απενεργοποιεί ο προγραμματιστής εάν επιθυμεί να ορίσει μια συναλλαγή που αποτελείται από SQL εντολές
Διαχείριση Συναλλαγών
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
38
¨ Οι συναλλαγές απαιτείται να έχουν ιδιότητες ACID (Atomicity, Consistency, Isolation, Durability)¤ Ατομικότητα (Atomicity): διασφαλίζει ότι ή όλες οι επιπτώσεις μιας συναλλαγής θα εμφανιστούν στη ΒΔ ή καμία δε θα εμφανιστεί
¤ Συνέπεια (Consistency): διασφαλίζει ότι η εκτέλεση μιας συναλλαγής σε μια συνεπή ΒΔ αφήνει σε συνεπή κατάσταση τη ΒΔ
¤ Απομόνωση (Isolation): διασφαλίζει ότι η ταυτόχρονη εκτέλεση συναλλαγών απομονώνει τη μία συναλλαγή από την άλλη
¤ Αντοχή (Durability): διασφαλίζει ότι, αφού ολοκληρωθεί επιτυχώς μια συναλλαγή, οι ενημερώσεις αυτής δε χάνονται, ακόμα και αν το σύστημα χαλάσει
Τυπική Αρχιτεκτονική Εφαρμογών ΒΔ
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
39
1.10 Data Mining and Information Retrieval 25
user
application
database system
network
(a) Two-tier architecture
client
server
user
application client
database system
network
application server
(b) Three-tier architecture
Figure 1.6 Two-tier and three-tier architectures.
query language statements. Application program interface standards like ODBCand JDBC are used for interaction between the client and the server.
In contrast, in a three-tier architecture, the client machine acts as merely afront end and does not contain any direct database calls. Instead, the client endcommunicates with an application server, usually through a forms interface.The application server in turn communicates with a database system to accessdata. The business logic of the application, which says what actions to carry outunder what conditions, is embedded in the application server, instead of beingdistributed across multiple clients. Three-tier applications are more appropriatefor large applications, and for applications that run on the World Wide Web.
1.10 Data Mining and Information Retrieval
The term data mining refers loosely to the process of semiautomatically analyzinglarge databases to find useful patterns. Like knowledge discovery in artificialintelligence (also called machine learning) or statistical analysis, data miningattempts to discover rules and patterns from data. However, data mining differsfrom machine learning and statistics in that it deals with large volumes of data,stored primarily on disk. That is, data mining deals with “knowledge discoveryin databases.”
Some types of knowledge discovered from a database can be represented bya set of rules. The following is an example of a rule, stated informally: “Youngwomen with annual incomes greater than $50,000 are the most likely people to buysmall sports cars.” Of course such rules are not universally true, but rather have
Ευχαριστώ για την προσοχή σας!
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
40
Παράρτημα Α441
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
Μοντέλο E-‐R – Απλό παράδειγμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
42
7.5 Entity-Relationship Diagrams 277
an instructor may advise many students, and a student may have manyadvisors.
E-R diagrams also provide a way to indicate more complex constraints on thenumber of times each entity participates in relationships in a relationship set. Aline may have an associated minimum and maximum cardinality, shown in theform l..h, where l is the minimum and h the maximum cardinality. A minimumvalue of 1 indicates total participation of the entity set in the relationship set;that is, each entity in the entity set occurs in at least one relationship in thatrelationship set. A maximum value of 1 indicates that the entity participates in atmost one relationship, while a maximum value ∗ indicates no limit.
For example, consider Figure 7.10. The line between advisor and student has acardinality constraint of 1..1, meaning the minimum and the maximum cardinal-ity are both 1. That is, each student must have exactly one advisor. The limit 0..∗on the line between advisor and instructor indicates that an instructor can havezero or more students. Thus, the relationship advisor is one-to-many from instruc-tor to student, and further the participation of student in advisor is total, implyingthat a student must have an advisor.
It is easy to misinterpret the 0..∗ on the left edge and think that the relationshipadvisor is many-to-one from instructor to student—this is exactly the reverse of thecorrect interpretation.
If both edges have a maximum value of 1, the relationship is one-to-one. Ifwe had specified a cardinality limit of 1..∗ on the left edge, we would be sayingthat each instructor must advise at least one student.
The E-R diagram in Figure 7.10 could alternatively have been drawn witha double line from student to advisor, and an arrow on the line from advisor toinstructor, in place of the cardinality constraints shown. This alternative diagramwould enforce exactly the same constraints as the constraints shown in the figure.
7.5.3 Complex Attributes
Figure 7.11 shows how composite attributes can be represented in the E-R notation.Here, a composite attribute name, with component attributes first name, middleinitial, and last name replaces the simple attribute name of instructor. As another
example, suppose we were to add an address to the instructor entity-set. Theaddress can be defined as the composite attribute address with the attributes
instructorIDnamesalary
studentIDnametot_cred
advisor 1..10..*
Figure 7.10 Cardinality limits on relationship sets.
¨ Το μοντέλο οντότητας-‐σχέσης (μοντέλο E-R) είναι ένα υψηλού επιπέδου μοντέλο δεδομένων το οποίο βασίζεται στην αντίληψη του πραγματικού κόσμου, και αποτελείται από μια συλλογή βασικών αντικειμένων, που ονομάζονται οντότητες, και από τις σχέσεις μεταξύ αυτών των αντικειμένων¤ Τα σύνολα οντοτήτων αναπαριστώνται με ορθογώνια¤ Τα σύνολα σχέσεων αναπαριστώνται με ρόμβους¤ Γραμμές συνδέουν σύνολα οντοτήτων με σύνολα σχέσεων
Μοντέλο E-‐R –Πολύπλοκο παράδειγμα
43
282 Chapter 7 Database Design and the E-R Model
7.5.7 E-R diagram for the University Enterprise
In Figure 7.15, we show an E-R diagram that corresponds to the university enter-prise that we have been using thus far in the text. This E-R diagram is equivalentto the textual description of the university E-R model that we saw in Section 7.4,but with several additional constraints, and section now being a weak entity.
In our university database, we have a constraint that each instructor must haveexactly one associated department. As a result, there is a double line in Figure 7.15between instructor and inst dept, indicating total participation of instructor in instdept; that is, each instructor must be associated with a department. Further, there
is an arrow from inst dept to department, indicating that each instructor can haveat most one associated department.
time_slotcourse
studentIDnamesalary
IDnametot_cred
course_idtitlecredits
time_slot_id{ day
start_timeend_time
}course_id prereq_id
advisor
teaches takes
sec_course sec_time_slot
grade
prereq
inst_dept stud_dept
instructor
departmentdept_namebuildingbudget
sectionsec_idsemesteryear
course_dept
sec_class
classroombuildingroom_numbercapacity
Figure 7.15 E-R diagram for a university enterprise.
Συμβολισμοί στα διαγράμματα E-‐R44
7.9 Alternative Notations for Modeling Data 305
requires not only data modeling experts, but also domain experts who knowthe requirements of the application but may not be familiar with data modeling.An intuitive diagrammatic representation is particularly important since it easescommunication of information between these groups of experts.
A number of alternative notations for modeling data have been proposed,of which E-R diagrams and UML class diagrams are the most widely used. Thereis no universal standard for E-R diagram notation, and different books and E-Rdiagram software use different notations. We have chosen a particular notation
E
R
R
R
R
R
role-name
R
E
A1A2
A2.1A2.2
{A3}A4
E
Rl..h E
E1
E2 E3
E1
E2 E3
E1
E2 E3
entity set
relationship set
identifyingrelationship setfor weak entity set primary key
many-to-manyrelationship
many-to-onerelationship
one-to-onerelationship
cardinalitylimits
discriminatinga!ribute ofweak entity set
total participationof entity set inrelationship
a!ributes:simple (A1),composite (A2) andmultivalued (A3)derived (A4)
ISA: generalizationor specialization
disjointgeneralization
total (disjoint)generalization
role indicator
total
A1
E
A1
ER E
()
Figure 7.24 Symbols used in the E-R notation.
Αντιστοιχία συμβολισμών μεταξύ διαγραμμάτων ER και UML διαγραμμάτων κλάσεων
45
7.9 Alternative Notations for Modeling Data 309
–A1+M1
E
E2 E3
E1
E2 E3
E1
E2 E3
binaryrelationship
class with simple a!ributesand methods (a!ributeprefixes: + = public,– = private, # = protected)
overlappinggeneralization
disjointgeneralization
A1M1
E entity witha!ributes (simple,composite,multivalued, derived)
RE2E1 role1 role2
relationshipa!ributes E2E1 role1 role2
A1R
R cardinalityconstraintsE2E1
RE2E10.. * 0..1 0..1 0.. *
RE3
E1E2
RE3
E1E2n-ary
relationships
E1
E2 E3
overlapping
disjoint
ER Diagram Notation Equivalent in UML
R E2E1 role1 role2
R E2E1 role1 role2
A1
() ()
E1
Figure 7.26 Symbols used in the UML class diagram notation.
box by a dotted line to the line depicting the relationship set. This box can thenbe treated as an entity set, in the same way as an aggregation in E-R diagrams,and can participate in relationships with other entity sets.
Since UML version 1.3, UML supports nonbinary relationships, using the samediamond notation used in E-R diagrams. Nonbinary relationships could not bedirectly represented in earlier versions of UML—they had to be converted tobinary relationships by the technique we have seen earlier in Section 7.7.3. UMLallows the diamond notation to be used even for binary relationships, but mostdesigners use the line notation.
Cardinality constraints are specified in UML in the same way as in E-R dia-grams, in the form l..h, where l denotes the minimum and h the maximum numberof relationships an entity can participate in. However, you should be aware thatthe positioning of the constraints is exactly the reverse of the positioning of con-straints in E-R diagrams, as shown in Figure 7.26. The constraint 0..∗ on the E2
Σχεσιακή Άλγεβρα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
46
2.6 Relational Operations 51
RELATIONAL ALGEBRA
The relational algebra defines a set of operations on relations, paralleling theusual algebraic operations such as addition, subtraction or multiplication, whichoperate on numbers. Just as algebraic operations on numbers take one or morenumbers as input and return a number as output, the relational algebra op-erations typically take one or two relations as input and return a relation asoutput.
Relational algebra is covered in detail in Chapter 6, but we outline a few ofthe operations below.
Symbol (Name) Example of Use! !salary>=85000(instructor )(Selection) Return rows of the input relation that satisfy
the predicate.! !ID,salary (instructor)(Projection) Output specified attributes from all rows of
the input relation. Remove duplicate tuplesfrom the output.
✶ instructor ✶ department(Natural join) Output pairs of rows from the two input rela-
tions that have the same value on all attributesthat have the same name.
× instructor × department(Cartesian product) Output all pairs of rows from the two input
relations (regardless of whether or not theyhave the same values on common attributes)
∪ !name (instructor ) ∪!name (student )(Union) Output the union of tuples from the two input
relations.
and salary. In this example, we could have performed the operations in eitherorder, but that is not the case for all situations, as we shall see.
Sometimes, the result of a query contains duplicate tuples. For example, if weselect the dept name attribute from the instructor relation, there are several casesof duplication, including “Comp. Sci.”, which shows up three times. Certain rela-tional languages adhere strictly to the mathematical definition of a set and removeduplicates. Others, in consideration of the relatively large amount of processingrequired to remove duplicates from large result relations, retain duplicates. Inthese latter cases, the relations are not truly relations in the pure mathematicalsense of the term.
Of course, data in a database must be changed over time. A relation can beupdated by inserting new tuples, deleting existing tuples, or modifying tuples by
The expression ρx(E) returns the result of E under the name x The expression ρx(A1, A2, …, An)(E) returns the result of E under the name x, and with the attributes renamed to A1, A2, …, An
Also:
Αντικειμενοστραφείς Βάσεις Δεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
47
¨ Όταν τα υπό διαχείριση δεδομένα είναι περίπλοκα και σύνθετα, το σχεσιακό (relational) μοντέλο μπορεί να αποδειχτεί ανεπαρκές
¨ Το αντικειμενοστραφές (object-oriented) μοντέλο δεδομένων, το οποίο βασίζεται στις αρχές του αντικειμενοστραφούς προγραμματισμού (όπως ενθυλάκωση, πολυμορφισμός, κληρονομικότητα, κλάσεις αντικειμένων), μπορεί να συνιστά κατάλληλη λύση σε τέτοιες περιπτώσεις
¨ Ένα αντικειμενοστραφές DBMS πρέπει να είναι σε θέση να αποθηκεύει αντικείμενα σαν αυτά που υποστηρίζονται από την επιλεγείσα αντικειμενοστραφή γλώσσα προγραμματισμού¤ Τέτοιου είδους αντικείμενα καλούνται μόνιμα (persistent), δηλ. δεν εξαφανίζονται
μόλις τερματιστεί το πρόγραμμα, και ανήκουν και αυτά σε κλάσεις¨ Η καταλληλότητα ή μη των αντικειμενοστραφών ΒΔ αποτελεί αντικείμενο
διενέξεων και πρέπει να κρίνεται κατά περίσταση¤ Για μια αντιμετώπιση του θέματος, βλ. π.χ.:
n http://www.25hoursaday.com/WhyArentYouUsingAnOODBMS.html
Top Related