Υπολογιστικά+Συστήματα+ –...

Click here to load reader

  • date post

    14-Jul-2020
  • Category

    Documents

  • view

    5
  • download

    0

Embed Size (px)

Transcript of Υπολογιστικά+Συστήματα+ –...

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

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

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

    ¨ 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

  • Γενική  Δομή  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 cardinalityconstraintsE2E1R

    E2E10.. * 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