Σημειώσεις του μαθήματος

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


Videos: μπορείτε να δείτε κάποια uploaded videos στο Panos Vassiliadis YouTube channel σε δύο playlist (α) ΜΥΕ030: ΠΘΤΕΒΔ (για τις διαλέξεις του μαθήματος) και (β) Κώδικας για διαχείριση δεδομένων (την οποία θα συμπληρώνω, κατά το δυνατόν, με προγραμματιστικά θέματα)


1. Εισαγωγή 

  • Μερικά εισαγωγικά για το μάθημα: αντικείμενο,προαπαιτούμενες γνώσεις, εργασίες, κλπ
  • Σε μια καθηλωτική ομιλία ο Rudolf Bayer, δημιουργός των B-trees, συνοψίζει την ιστορία των βάσεων δεδομένων (και των Β-δέντρων) σε 45 μαγικά λεπτά. (Το κουμπί cc ενεργοποιεί τους υποτίτλους, αν τυχόν δεν εμφανιστούν by default. Best viewed in Chrome -- at least, by the time this is authored.)
  • Στο ίδιο σεμινάριο Software Pioneer's Seminar (again, best viewed in Chrome -- at least, by the time this is authored), μπορείτε να παρακολουθήσετε μια ανεπανάληπτη συγκέντρωση από τους "πατριάρχες" της Πληροφορικής, οι οποίοι εξηγούν πώς ξεκίνησαν όλα. Από πλευράς βάσεων δεδομένων, μπορείτε να δείτε και τον Peter Chen, δημιουργό του μοντέλου Οντοτήτων Συσχετίσεων.

2. Εσωτερική Οργάνωση Βάσεων Δεδομένων

  • Αποθήκευση δεδομένων στο δίσκο
  • Δομές ενός instance
  • Διεργασίες ενός instance
  • Στο σεμινάριο της Βασεοδεδομενολογίας στο CMU, υπάρχει μια καταπληκτική ομιλία του D. Richard Hipp, βασικού αρχιτέκτονα της SQLite και δείτε πώς ένα "ελαφρύ" σύστημα μοιάζει τόσο πολύ εσωτερικά με τα "βαριά" παραδοσιακά συστήματα. Ξαναδείτε την αφού θα έχουμε ολοκληρώσει το μάθημα.

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

  • Γενικές αρχές επεξεργασίας ερωτήσεων
  • Επί μέρους τεχνικές επεξεργασίας ερωτήσεων

4. Βελτιστοποίηση Ερωτήσεων

  • Τα συστατικά ενός βελτιστοποιητή
  • Παραγωγή πλάνων

Ένα λυμένο παράδειγμα

Άλλο ένα παράδειγμα

5. Συναλλαγές

  • Συναλλαγές
  • Ιδιότητες συναλλαγών -- ACID test
  • Χρονοπρογράμματα
  • Προβλήματα Χρονοπρογραμμάτων
  • Σειριοποιησιμότητα
  • Συγκρούσεις και σειριοποιησιμότητα
  • Γράφος Σειριοποιησιμότητας
  • Φαντάζομαι θα εκπλαγείτε αν μάθετε τις τεχνολογίες που χρησιμοποιούνται σε transaction-heavy IT systems: mainframes as of 2020.

Άλλο ένα παράδειγμα

Ανανηψιμότητα συναλλαγών

6. Βασικές Αρχές Ελέγχου Ταυτοχρονισμού

  • Κλειδώματα
  • Πρωτόκολλο 2 Phase Locking (2PL)
  • Ιδιότητες 2PL (ορισμός,σχέση με σειριοποιησιμότητα)
  • Πρακτική Υλοποίηση 2PL
  • Αδιέξοδα
  • SQL και Συναλλαγές

6. Προχωρημένα θέματα Ελέγχου Ταυτοχρονισμού

  • κλειδώματα πολλαπλής κλιμάκωσης
  • phantoms
  • κλειδώματα σε Β+δέντρα.

7. Ανάνηψη από αποτυχίες

  • Αιτίες αποτυχιών
  • Βασικές αρχές ανάνηψης από αποτυχίες
  • Αλγόριθμος Write-Ahead Log (WAL)

Ένα παράδειγμα

8. Φυσική σχεδίαση και Ρύθμιση Βάσεων Δεδομένων

  • Η διαδικασία σχεδίασης
  • Επιλογή ευρετηρίων
  • Προσαρμογή του σχήματος της βάσης δεδομένων
  • Ρύθμιση ερωτήσεων

9. Ασφάλεια Βάσεων Δεδομένων

  • Γενικές αρχές διαχείρισης ασφάλειας
  • Διακριτικός έλεγχος ασφαλείας
  • Υποχρεωτικός έλεγχος ασφαλείας
  • Στατιστικές βάσεις δεδομένων

10. Αποθήκες Δεδομένων

  • Τι είναι οι Αποθήκες Δεδομένων
  • Αρχιτεκτονική και σχήμα της Αποθήκης Δεδομένων
  • Λειτουργικές διαδικασίες της Αποθήκης Δεδομένων
  • Συστήματα επερώτησης της Αποθήκης Δεδομένων
  • Λεξικό Μεταπληροφορίας