Download - Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Transcript
Page 1: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Υπολογιστικά  Συστήματα  –Βάσεις  ΔεδομένωνΔιδάσκοντες:  Δρ.  Ευγενία  Αδαμοπούλου,  Δρ.  Κώστας  Δεμέστιχας

ΔΠΜΣ  «Τεχνο-­‐Οικονομικά  Συστήματα»Τεχνολογία  Πληροφορίας  και  Τηλεπικοινωνιών

Page 2: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Ιστοσελίδα  Μαθήματος

¨ http://people.cn.ntua.gr/jenny/index.php/courses

¨ e-mail επικοινωνίας:  ¤ [email protected]¤ [email protected]

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

2

Page 3: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Προτεινόμενη  Βιβλιογραφία

¨ A. Silberschatz, H. Korth και  S. Sudarsham, Database System Concepts (Συστήματα  Βάσεων  Δεδομένων), 4ηέκδοση  ή  ανώτερη

¨ Για  τη  σύνταξη  εντολών  SQL μπορείτε  να  συμβουλεύεστε:  ¤ http://www.w3schools.com/sql/default.asp

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

3

Page 4: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Σύστημα  Διαχείρισης  Βάσης  Δεδομένων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

4

¨ Σύστημα  Διαχείρισης  Βάσης  Δεδομένων  (Database Management System –DBMS)¤ ένα  σύστημα  που  επιτρέπει  την  αποτελεσματική  και  βολική  αποθήκευση  

δεδομένων  που  σχετίζονται  μεταξύ  τους  καθώς  και  την  πρόσβαση  σε  αυτά¤ Βάση  Δεδομένων  (ΒΔ)  – Database (DB): η  συλλογή  των  δεδομένων  που  

σχετίζονται  μεταξύ  τους¨ Ευρεία  χρήση  σε

¤ Τράπεζες:  πληροφορίες  συναλλαγών¤ Αεροπορικές  εταιρείες:  κρατήσεις  θέσεων,  πληροφορίες  πτήσεων¤ Πανεπιστήμια:  εγγραφές  και  βαθμοί  φοιτητών¤ Πωλήσεις:  πληροφορίες  πελατών,  προϊόντων,  πωλήσεων¤ Συναλλαγές  πιστωτικών  καρτών:  πληροφορίες  συναλλαγών,  μηνιαίες  κινήσεις¤ Τηλεπικοινωνίες:  αναλυτικές  καταστάσεις  κλήσεων,  μηνιαίες  χρεώσεις,  

πληροφορίες  θέσης,  πληροφορίες  συνδρομητών¤ Βιομηχανία:  πληροφορίες  προμηθειών,  αποθήκης,  παραγγελιών¤ Ανθρώπινοι  πόροι:  πληροφορίες  εργαζομένων,  μισθών,  φόρων  μισθοδοσίας

Page 5: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Τα  Μειονεκτήματα  των  Συστημάτων  Αρχείων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

5

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

¨ Πριν  την  έλευση  των  DBMS,  οι  εφαρμογές  βάσεων  δεδομένων  βασίζονταν  απευθείας  στα  συστήματα  αρχείων

¨ Μειονεκτήματα   της  απευθείας   χρήσης  συστημάτων  αρχείων  για  την  αποθήκευση   και  διαχείριση  δεδομένων¤ Πλεονασμός  και  ασυνέπεια  των  δεδομένων

n Επανάληψη  πληροφορίας  σε  διαφορετικά  αρχεία,  συνακόλουθη  δυσκολία  διατήρησης  της  συνέπειας  των  διαφόρων  αντιγράφων  των  ίδιων  δεδομένων

¤ Δυσχερής  πρόσβαση  στα  δεδομέναn Κάθε  φορά  που  εμφανίζεται  μια  νέα  ανάγκη  (π.χ.  αναζήτηση  με  βάση  διαφορετικά  κριτήρια),  πρέπει  να  γραφεί  ένα  καινούριο  πρόγραμμα  που  να  την  καλύπτει

¤ Απομόνωση  των  δεδομένωνn Δεδομένα  κατανεμημένα  σε  πολλαπλά  αρχεία  διαφορετικών  τύπων

Page 6: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Τα  Μειονεκτήματα  των  Συστημάτων  Αρχείων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

6

¨ Μειονεκτήματα  – συνέχεια  ¤ Προβλήματα  ακεραιότητας  των  δεδομένων

n Δυνατότητα  επιβολής  περιορισμών  στα  δεδομένα  (π.χ.  υπόλοιπο  λογαριασμού  >  0)  μόνο  μέσα  από  τον  κώδικα  των  προγραμμάτων,  δυσχεραίνοντας  την  προσθήκη  νέων

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

¤ Προβλήματα  ταυτόχρονης  πρόσβασηςn Παράδειγμα:  αν  δύο  πελάτες  προσπαθήσουν  ταυτόχρονα  να  κάνουν  ανάληψη  από  ένα  λογαριασμό

¤ Προβλήματα  ασφάλειαςn Δυσκολία  παροχής  πρόσβασης  στους  χρήστες  σε  κάποια  αλλά  όχι  όλα  τα  δεδομένα

¨ à Στα  προβλήματα  αυτά  δίνουν  λύσεις  τα  DBMS

Page 7: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

ΑφαιρετικότηταΔεδομένων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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.

Page 8: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Βασικές  Έννοιες

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

8

¨ Σχήμα  ΒΔ  (schema):  Το  γενικό  σχέδιο  της  ΒΔ  (μεταβάλλεται  σπάνια)¤ Καθορίζει  το  είδος των  δεδομένων  που  θα  διατηρεί  η  ΒΔ,  καθώς  και  το  

είδος των  σχέσεων  μεταξύ  τουςn Παράδειγμα:  η  ΒΔ  θα  διατηρεί  το  σύνολο  των  πελατών  μιας  τράπεζας  και  το  σύνολο  των  λογαριασμών  της,  καθώς  και  τον  τρόπο  αντιστοίχισης  αυτών

¨ Στιγμιότυπο  ΒΔ  (instance):  Η  συλλογή  των  δεδομένων  που  είναι  αποθηκευμένα   στη  ΒΔ  κάποια  συγκεκριμένη   στιγμή¤ Πρόκειται  δηλ.  για  τα  περιεχόμενα της  ΒΔ  μια  χρονική  στιγμή

¨ Μοντέλο  δεδομένων  (data model): Ένα  σύνολο  εργαλείων  για  την  περιγραφή  των  δεδομένων,  των  σχέσεών  τους,  της  σημασίας  τους  και  των  περιορισμών  τους¤ Δύο  βασικοί  τύποι  μοντέλων  δεδομένων

n Σχεσιακό  μοντέλο (Relational model)n Μοντέλο  οντότητας-­‐σχέσης  (Entity-Relationship model – E-R model)

Page 9: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Σχεσιακό  Μοντέλο

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

9

¨ Ένα  σχεσιακό  μοντέλο  χρησιμοποιεί  μια  συλλογή  από  πίνακες  για  την  αναπαράσταση  των  δεδομένων  και  των  σχέσεών  τους¤ Κάθε  πίνακας (ή  αλλιώς  σχέση – relation)  αποτελείται  από  στήλες (ή  αλλιώς  πεδία  ή  ιδιότητες   – attributes)  και  γραμμές (ή  αλλιώς  εγγραφές  ή  πλειάδες – tuples)

¤ Η  σειρά  των  εγγραφών  δεν  έχει  σημασία¨ Παράδειγμα:  Βλ.  επόμενη  διαφάνεια

¤ Βλέπουμε  ότι  η  αντιστοίχιση   (συσχέτιση)  πελατών  με  λογαριασμούς   γίνεται  αποτελεσματικότερα   μέσω  ενός  τρίτου  πίνακα  (του  πίνακα  καταθετών)

Page 10: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

10Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

Page 11: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Κλειδιά

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

11

¨ Ένα  υπερ-­‐κλειδί  (superkey)  είναι  ένα  σύνολο  από  μία  ή  περισσότερες   ιδιότητες  που  προσδιορίζουν  μοναδικά  κάθε  εγγραφή  ενός  πίνακα¤ Παράδειγμα:  Τόσο  το  σύνολο  {customer-­‐id} όσο  και  το  {customer-­‐id,  

customer-­‐name}  αποτελούν  υπερ-­‐κλειδιά  για  τον  πίνακα  customer¨ Ένα  υπερ-­‐κλειδί  Κ  λέγεται  υποψήφιο  κλειδί  (candidate  key) αν  είναι  

το  ελάχιστο  δυνατό  (δηλ.  δεν  υπάρχει  υποσύνολό  του  που  να  αποτελεί  υπερ-­‐κλειδί)¤ Παράδειγμα:  Το  σύνολο  {customer-­‐id} είναι  υποψήφιο  κλειδί  για  τον  

πίνακα  customer

¨ Ο  σχεδιαστής   της  ΒΔ  διαλέγει  ένα  υποψήφιο   κλειδί  για  να  προσδιορίσει  μοναδικά  κάθε  εγγραφή  του  πίνακα  – το  υποψήφιο  αυτό  κλειδί  ονομάζεται  πρωτεύον  κλειδί  (primary  key  – PK)

Page 12: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Κλειδιά

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

12

¨ Το  πρωτεύον  κλειδί  θα  πρέπει  να  επιλέγεται  με  προσοχή  ¤ Παραδείγματα:  Μπορεί  να  χρησιμοποιηθεί  ως  μοναδικό  

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

¨ Ξένο  κλειδί  (foreign  key  – FK): Ένας  πίνακας,  έστω  rf,  ενδέχεται   να  περιλαμβάνει  μεταξύ  των  ιδιοτήτων  του  και  το  πρωτεύον  κλειδί  ενός  άλλου  πίνακα,  έστω  rp – η  ιδιότητα  αυτή  αποτελεί  ένα  ξένο  κλειδί  για  τον  rf που  κάνει  αναφορά  (δείχνει)  στον  rp¤ Η  σχέση  rf καλείται  και  αναφέρουσα (referencing)   σχέση,  ενώ  η  rp

καλείται  αναφερόμενη  (referenced)   σχέση

Page 13: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Πεδίο  Ορισμού  και  Σχήμα  Σχέσης

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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)

Page 14: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Γλώσσες  ΒΔ

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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)

Page 15: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

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

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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

Page 16: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

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

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

16

IdNumber Diktya Arxitektoniki

Sxedio

03100121 1 2 10

03100100 4 5 9

03100203 6 6

03101122 8 3

03100209 7 9

GRADESREGISTRY

*Στο  παράδειγμα,  όπου  ο  πίνακας  έχει  κενά  θεωρούμε  ότι  υπάρχει  η  τιμή  null

Page 17: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 18: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 19: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – SQL QueryΕπιστροφή  στήλης  με  συγκεκριμένα  κριτήρια

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

19

¨ select IdNumber from STUDENTREGISTRY where Semester=7;¨ Τι  κάνει  το  παραπάνω  query?

¤ Απ.:  Επιστρέφει   τους  αριθμούς  μητρώου  όλων  των  φοιτητών  που  βρίσκονται  στο  7ο εξάμηνο

¨ Πώς  παίρνουμε  τους  Α/Μ  όλων  των  φοιτητών  που  βρίσκονται  σε  εξάμηνο  μικρότερο  του  7ου;

IdNumber

03100121

03100203

03100209

Page 20: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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;

Page 21: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 22: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Είδη  συνδέσμων  (join)  –Εποπτική  παρουσίαση

22

*join σκέτο  και  inner joinείναι  συνώνυμα*left/right/full join και  left/right/full outer join είναι  συνώνυμα,  αντίστοιχα

Page 23: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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)

Page 24: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 25: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 26: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – SQL QueryΧρήση  συνάρτησης  με  ομαδοποίηση  αποτελεσμάτων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

26

¨ select Semester, sum(NumberofFailedExams) asSumOfFailedExams from STUDENTREGISTRY group by Semester;

¨ Τι  κάνει  το  παραπάνω  query?¤ Απ.  Επιστρέφει   το  άθροισμα  των  αποτυχημένων  εξετάσεων  ανά  εξάμηνο

Semester SumOfFailedExams

8 1

7 5

6 2

Page 27: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – SQL QueryΑπαλοιφή  διπλότυπων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

27

¨ select distinct Semester from STUDENTREGISTRY;¨ Τι  κάνει  το  παραπάνω  query?

¤ Απ.  Επιστρέφει  τις  τιμές  των  εξαμήνων   χωρίς  διπλότυπα

Semester

8

7

6

Page 28: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 29: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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;

Page 30: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 31: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 32: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράδειγμα  – 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

Page 33: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Δομή  ΒΔ

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

33

¨ Δύο  βασικά  συστατικά¤ Διαχειριστής   αποθήκευσης   (storage manager)¤ Επεξεργαστής   ερωτημάτων (query processor)

Page 34: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Διαχειριστής  Αποθήκευσης

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

34

¨ Υπεύθυνος  για  την  αποτελεσματική  αποθήκευση,  ανάκληση  και  ενημέρωση  δεδομένων

¨ Συστατικά  του  διαχειριστή  αποθήκευσης¤ Διαχειριστής  ελέγχου  ταυτότητας  και  ακεραιότητας¤ Διαχειριστής  συναλλαγών

n συναλλαγή  (transaction)  είναι  ένα  σύνολο  ενεργειών  επί  της  ΒΔ  οι  οποίες  πρέπει  να  εκτελεστούν  σαν  μια  ενιαία  λειτουργία

¤ Διαχειριστής  αρχείωνn υπεύθυνος  για  τη  δέσμευση  του  χώρου  στο  δίσκο  και  τις  δομές  δεδομένων  που  

χρησιμοποιούνται  για  την  αποθήκευση  πληροφοριών¤ Διαχειριστής  buffer

n υπεύθυνος  για  την  τροφοδοσία  των  δεδομένων  από  το  δίσκο  στην  κύρια  μνήμη¨ Χειρίζεται  τις  εξής  δομές  δεδομένων

¤ Αρχεία  δεδομένων¤ Λεξικό  δεδομένων¤ Ευρετήρια

Page 35: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Επεξεργαστής  Ερωτημάτων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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

Page 36: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Γενική  Δομή  DBMS36

Page 37: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Διαχείριση  Συναλλαγών

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

37

¨ Μια  συναλλαγή  (transaction)  αποτελείται  από  μια  σειρά  από  εντολές  ερωτημάτων  ή/και  ενημερώσεων  που  πρέπει  να  εκτελεστεί  αδιαίρετα

¨ Μια  συναλλαγή  τερματίζει  με  μία  από  τις  δύο  κάτωθι  εντολές¤ commit (ολοκλήρωση),   μέσω  της  οποίας  γίνονται  μόνιμες  οι  ενημερώσεις   που  εκτελεί  η  συναλλαγή  στη  ΒΔ

¤ rollback (αναίρεση),  μέσω  της  οποίας  ακυρώνονται  όλες  οι  ενημερώσεις   που  έγιναν  από  τις  SQL εντολές  της  συναλλαγής

¨ Σε  πολλές  ΒΔ,  κάθε  SQL εντολή  θεωρείται  εξ  ορισμού  μία  συναλλαγή  από  μόνη  της  και  γίνεται  commit μόλις  εκτελεστεί¤ Αυτό  το  αυτόματο  commit το  απενεργοποιεί  ο  προγραμματιστής  εάν  επιθυμεί   να  ορίσει  μια  συναλλαγή  που  αποτελείται  από  SQL εντολές

Page 38: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Διαχείριση  Συναλλαγών

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

38

¨ Οι  συναλλαγές  απαιτείται  να  έχουν  ιδιότητες  ACID (Atomicity, Consistency, Isolation, Durability)¤ Ατομικότητα (Atomicity):  διασφαλίζει  ότι  ή  όλες  οι  επιπτώσεις  μιας  συναλλαγής  θα  εμφανιστούν  στη  ΒΔ  ή  καμία  δε  θα  εμφανιστεί

¤ Συνέπεια (Consistency):  διασφαλίζει  ότι  η  εκτέλεση  μιας  συναλλαγής  σε  μια  συνεπή  ΒΔ  αφήνει  σε  συνεπή  κατάσταση  τη  ΒΔ

¤ Απομόνωση   (Isolation):  διασφαλίζει  ότι  η  ταυτόχρονη  εκτέλεση  συναλλαγών  απομονώνει  τη  μία  συναλλαγή  από  την  άλλη

¤ Αντοχή  (Durability):  διασφαλίζει  ότι,  αφού  ολοκληρωθεί  επιτυχώς  μια  συναλλαγή,  οι  ενημερώσεις   αυτής  δε  χάνονται,  ακόμα  και  αν  το  σύστημα  χαλάσει

Page 39: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Τυπική  Αρχιτεκτονική  Εφαρμογών  ΒΔ

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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

Page 40: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Ευχαριστώ  για  την  προσοχή  σας!

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

40

Page 41: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Παράρτημα  Α441

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

Page 42: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Μοντέλο  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)  είναι  ένα  υψηλού  επιπέδου  μοντέλο  δεδομένων  το  οποίο  βασίζεται  στην  αντίληψη  του  πραγματικού  κόσμου,  και  αποτελείται  από  μια  συλλογή  βασικών  αντικειμένων,  που  ονομάζονται  οντότητες,  και  από  τις  σχέσεις μεταξύ  αυτών  των  αντικειμένων¤ Τα  σύνολα  οντοτήτων  αναπαριστώνται  με  ορθογώνια¤ Τα  σύνολα  σχέσεων  αναπαριστώνται  με  ρόμβους¤ Γραμμές  συνδέουν  σύνολα  οντοτήτων  με  σύνολα  σχέσεων

Page 43: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Μοντέλο  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.

Page 44: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Συμβολισμοί  στα  διαγράμματα  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.

Page 45: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Αντιστοιχία  συμβολισμών  μεταξύ  διαγραμμάτων  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

Page 46: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Σχεσιακή  Άλγεβρα

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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:

Page 47: Υπολογιστικά+Συστήματα+ – Βάσεις+Δεδομένωνpeople.cn.ntua.gr/jenny/images/MyData/dialekseis2016/dialeksi5.pdf · Βάσεις+Δεδομένων

Αντικειμενοστραφείς  Βάσεις  Δεδομένων

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

47

¨ Όταν  τα  υπό  διαχείριση  δεδομένα  είναι  περίπλοκα  και  σύνθετα,  το  σχεσιακό  (relational)  μοντέλο  μπορεί  να  αποδειχτεί  ανεπαρκές

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

¨ Ένα  αντικειμενοστραφές  DBMS πρέπει  να  είναι  σε  θέση  να  αποθηκεύει  αντικείμενα  σαν  αυτά  που  υποστηρίζονται  από  την  επιλεγείσα  αντικειμενοστραφή  γλώσσα  προγραμματισμού¤ Τέτοιου  είδους  αντικείμενα  καλούνται  μόνιμα  (persistent),  δηλ.  δεν  εξαφανίζονται  

μόλις  τερματιστεί  το  πρόγραμμα,  και  ανήκουν  και  αυτά  σε  κλάσεις¨ Η  καταλληλότητα  ή  μη  των  αντικειμενοστραφών  ΒΔ  αποτελεί  αντικείμενο  

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

n http://www.25hoursaday.com/WhyArentYouUsingAnOODBMS.html