Πληροφορίες για το Περιεχόμενο και τη Διεξαγωγή του Μαθήματος

 

Καθηγητής: Πάνος Βασιλειάδης
Γραφείο:  Β.2
Τηλέφωνο:  26510-0-8814
E-mail:  pvassil@cs.uoi.gr
URL:  www.cs.uoi.gr/~pvassil/
URL μαθήματος  http://www.cs.uoi.gr/~pvassil/courses/db_III

 

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

Οι εγκύκλιες σπουδές στο γνωστικό αντικείμενο των βάσεων δεδομένων χωρίζονται σε τρία μέρη. Κατ' αρχήν, κάποιος εισάγεται στις βασικές έννοιες σχεδίασης βάσεων δεδομένων (μοντέλο οντοτήτων-συσχετίσεων και σχεσιακό μοντέλο), και στις κύριες γλώσσες βάσεων δεδομένων (SQL,σχεσιακή άλγεβρα, σχεσιακός λογισμός). Τμήμα της βασικής εκπαίδευσης αποτελεί και η εισαγωγή σε βασικές δομές αποθήκευσης δεδομένων (αρχεία, ευρετήρια) και η περαιτέρω μύηση σε προχωρημένες διαδικασίες ορθής σχεδίασης (κανονικοποίηση). Όλες αυτές οι γνώσεις παρέχονται στο εισαγωγικό μάθημα "Βάσεις Δεδομένων".

Το δεύτερο μέρος των εγκυκλίων σπουδών σε βάσεις δεδομένων αφορά  στοιχεία της εσωτερικής δομής ενός Συστήματος Διαχείρισης Βάσεων Δεδομένων. Αυτά αφορούν την εσωτερική αρχιτεκτονική του, την επεξεργασία ερωτήσεων, την βελτιστοποίηση ερωτήσεων, τη φυσική σχεδίαση και ρύθμιση μιας βάσης δεδομένων, τη διαχείριση χρηστών, την ανάνηψη από αποτυχίες κ.ά. Το τρίτο μέρος των σπουδών περιλαμβάνει συγκεκριμένες κατηγορίες εφαρμογών και βάσεων δεδομένων ειδικών χρήσεων που επεκτείνουν την "βασική" τεχνολογία των βάσεων δεδομένων, όπως για παράδειγμα, αποθήκες δεδομένων και εξόρυξη γνώσης, κατανεμημένες και παράλληλες βάσεις δεδομένων, αντικειμενοστρεφείς και αντικειμενο-σχεσιακές βάσεις δεδομένων, το πρότυπο SQL-1999, η γλώσσα ερωτήσεων Datalog, το επεκτεταμένο μοντέλο Οντοτήτων-Συσχετίσεων, καθώς και χωροχρονικές, διαδικτυακές και ενεργές βάσεις δεδομένων.

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

Για να παρακολουθήσετε το μάθημα, ΔΕΝ είναι τυπικά απαραίτητο να έχετε περάσει το μάθημα "Βάσεις Δεδομένων". Είναι απαραίτητο όμως να μπορείτε να καταλαβαίνετε βασικές έννοιες του γνωστικού αντικειμένου των βάσεων δεδομένων, όπως το σχεσιακό μοντέλο, το μοντέλο οντοτήτων συσχετίσεων, η σχεδίαση βάσεων δεδομένων, η γλώσσα SQL και η σχεσιακή άλγεβρα. Εν γένει, μια επανάληψη των σχετικών εννοιών θα σας βοηθήσει αρκετά.

Διδακτέα Ύλη

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

Αν υπάρξει χρόνος, θα καλυφθούν και θέματα όπως:

  • Αποθήκες δεδομένων
  • Αντικειμενοστρεφείς και αντικειμενο-σχεσιακές βάσεις δεδομένων
  • Το πρότυπο SQL-1999
  • Η γλώσσα ερωτήσεων Datalog
  • Το επεκτεταμένο μοντέλο Οντοτήτων-Συσχετίσεων
  • Χωροχρονικές, διαδικτυακές και ενεργές βάσεις δεδομένων.

Εργασίες

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

Θα δοθούν 3 σειρές ασκήσεων στα θέματα που θα καλύψουμε στο μάθημα. Η παράδοση των εργασιών είναι προαιρετική.

Διαγώνισμα

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

Βαθμολογία

Ο τελικός βαθμός υπολογίζεται σαν το άθροισμα των βαθμών των γραπτών εξετάσεων και της εργαστηριακής άσκησης. Το άριστα στις γραπτές εξετάσεις είναι 5, στις ασκήσεις 2, στην προγραμματιστική άσκηση είναι 3. Για να περάσετε το μάθημα, θα πρέπει να πιάσετε τη βάση στις γραπτές εξετάσεις και στην προγραμματιστική άσκηση. Το Σεπτέμβρη η εξέταση θα αφορά τις 5 μονάδες των γραπτών εξετάσεων. Σε περίπτωση εξαιρετικής προγραμματιστικής άσκησης, μπορεί να υπάρξει και bonus μιας μονάδας στον τελικό βαθμό.

Η βαθμολογία των επί μέρους τμημάτων της βαθμολογίας του μαθήματος ΔΕΝ κατοχυρώνεται για επόμενη χρονιά.

Εξ' αποστάσεως διαλέξεις

Συνδέσεις και υλικό:

  • [Αν χρειαστεί να χρησιμοποιήσουμε MS Teams] Ο κωδικός του μαθήματος στο MS Teams είναι nn1xkf6. Για όσους παλιούς ξέρετε το μάθημα ως ΠΛΕ045: στο MS Teams εμφανίζεται με τον κωδικό ΜΥΕ030. You can't miss it.
  • Mπορείτε να δείτε κάποια uploaded videos στο Panos Vassiliadis YouTube channel σε δύο playlist (α) ΜΥΕ030: ΠΘΤΕΒΔ (για τις διαλέξεις του μαθήματος) και (β) Κώδικας για διαχείριση δεδομένων (την οποία θα συμπληρώνω, κατά το δυνατόν, με προγραμματιστικά θέματα)

Παράδοση μέσω turnin

Η παράδοση γίνεται ΑΠΟΚΛΕΙΣΤΙΚΑ ΚΑΙ ΜΟΝΟ μέσω turnin για ασκήσεις (αν είμαστε σε καθεστώς τηλεκπαίδευσης) και για το project


Ασκήσεις: Σε καθεστώς τηλεκπαίδευσης, η παράδοση των ασκήσεων γίνεται μέσω αρχείου pdf, ως εξής:

turnin exA@mye030 AM_NAME_exA.pdf κλπ,

όπου A είναι ο αύξων αριθμός της άσκησης (1, 2, ή 3).

Π.χ., αν το ΑΜ μου ήταν είναι 777, για την άσκηση 2: turnin ex2@mye030 777_VASSILIADIS_ex2.pdf


Project: για το project θέλω ένα text file που θα περιέχει: (α) AM, Ονόματα της ομάδας, (β) το link@Github, στο οποίο θα βρω αυτά που ζητάω στη σχετική λιστούλα, (γ) αν υπάρχει κάτι άλλο που θέλετε να μου πείτε. Θυμίζω ότι το παραδοτέο, ο κώδικας και το video θα είναι στο Github σας (βλ. παρακάτω).

Το turnin θα γίνει στο prj@mye030, ως εξής: turnin prj@mye030 AM1_AM2_AM3_prj.txt

Στο project @ GitHub για το project σας θα αναμένω να δω (Α) το αρχικό README.md όπου θα πρέπει να φαίνονται οι συντελεστές, και οι όποιες τεχνικές λεπτομέρειες, (Β) το φάκελο src, και το φάκελο data (τουλάχιστον) και (Γ) ένα φάκελο deliverables που θα περιέχει (γ1) το pdf για το τελικό παραδοτέο με όνομα ΑΜ1_ΑΜ2_ΑΜ3_projectReport.pdf, (γ2) ένα mp4 video, approx. 10' length, showing your system at work, along with an explanation of the internal structure and design, or, a link to it, in case you have uploaded it somewhere else (youtube, vimeo, ...).


Προσοχή: το turnin αντέχει αρχεία μέχρι 10MB (οπότε, αν το αρχείο σας ξεπερνά το όριο, σπάστε το σε πολλά)

Εργασίες που υποβάλλονται μέσω email απλώς θα αγνοούνται..