Τεχνολογία Βάσεων Δεδομένων

Γενικά

  • Κωδικός Μαθήματος: 1743
  • Εξάμηνο: 7ο
  • Τύπος Μαθήματος: Επιστημονικής Περιοχής (ΕΠ)
  • Είδος Μαθήματος: Επιλογής (ΕΠ)
  • Γνωστική Περιοχή: Διαχείριση Δεδομένων - Τεχνητή Νοημοσύνη (ΔΔΤΝ)
  • Διδασκαλία Θεωρίας: 4 ώρες/εβδομάδα
  • Πιστωτικές μονάδες ECTS: 6
  • Ηλεκτρονική σελίδα μαθήματος: https://moodle.teithe.gr/course/view.php?id=1250
  • Γλώσσα διδασκαλίας και Εξετάσεων: Ελληνικά
  • Το μάθημα προσφέρεται σε φοιτητές Erasmus
  • Προτεινόμενα προαπαιτούμενα μαθήματα: (1401) Συστήματα Διαχείρισης Βάσεων Δεδομένων

Μαθησιακά Αποτελέσματα

Το μάθημα αποτελεί συνέχεια του μαθήματος 'Συστήματα Διαχείρισης Βάσεων Δεδομένων' και εστιάζει: (α) στη διαχείριση βάσεων δεδομένων μέσα από γλώσσες προγραμματισμού, (β) στον προγραμματισμό στον εξυπηρετητή της βάσης δεδομένων, (γ) σε μη σχεσιακά μοντέλα βάσεων δεδομένων και (δ) σε θέματα που αφορούν στην βελτιστοποίηση των αιτημάτων στο σχεσιακό μοντέλο. Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:

  • Εφαρμόζει τεχνικές ενσωμάτωσης κώδικα SQL σε κώδικα γλώσσας προγραμματισμού χρησιμοποιώντας τεχνολογία JDBC, πλαίσια λογισμικού, όπως Hybernate, Spring και API σύνδεσης αντικειμένων, όπως JPA, JDO
  • Ορίζει και διαχειρίζεται αποθηκευμένες διαδικασίες και εναύσματα στον εξυπηρετητή της βάσης δεδομένων
  • Σχεδιάζει και υλοποιεί, με χρήση αποθηκευμένων διαδικασιών, υπηρεσίες διαχείρισης δεδομένων στο διαδίκτυο
  • Εξηγεί έννοιες και πρακτικές που σχετίζονται με σύγχρονα μη σχεσιακά μοντέλα, όπως το αντικειμενοσχεσιακό μοντέλο (SQL3) και NoSQL βάσεις δεδομένων, αναγνωρίζει τις βασικές έννοιες και πρακτικές των τεχνολογιών οργάνωσης, διαχείρισης και επεξεργασίας ημιδομημένων δεδομένων και των αντίστοιχων τεχνολογιών (XML, XPath, XML Schema, XQuery, SQL2008)
  • Αναλύει και να συγκρίνει τα διαφορετικά μοντέλα βάσεων δεδομένων μεταξύ τους και να επιλέγει την ενδεδειγμένη λύση για κάθε περίπτωση διαχείρισης δεδομένων
  • Εξηγεί έννοιες και πρακτικές που σχετίζονται με την υλοποίηση και την εφαρμογή πολιτικής ελέγχου του ταυτόχρονου της εκτέλεσης των συναλλαγών στο σύγχρονο DBMS. Επίσης, εκτιμά και να διακρίνει τις διαφορετικές τεχνολογίες υλοποίησης του ελέγχου του ταυτόχρονου σε σύγχρονα δημοφιλή περιβάλλοντα DBMS: MySQL, Oracle, IBM DB2, PostgreSQL
  • Συντάσσει προγραμματιστικό κώδικα με έμφαση στη διαχείριση των συναλλαγών και, δια μέσου αυτής, στη διασφάλιση της ορθότητας του πληροφοριακού περιεχομένου της βάσης. Επίσης, προσομοιώνει και να εξηγεί προβλήματα που σχετίζονται με την απουσία ελέγχου του ταυτόχρονου (concurrency control) κατά την εκτέλεση των συναλλαγών. Επίσης, το βαθμό στον οποίο αυτά τα προβλήματα αντιμετωπίζονται με την επιβολή επιπέδων απομόνωσης στις συναλλαγές και στη χρήση καλών πρακτικών κατά τη σύνταξη του σχετικού προγραμματιστικού κώδικα αξιοποιώντας τις δυνατότητες που παρέχει/υποστηρίζει το σύγχρονο περιβάλλον DBMS.
Γενικές Ικανότητες
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Λήψη αποφάσεων
  • Αυτόνομη εργασία
  • Ομαδική εργασία
  • Άσκηση κριτικής και αυτοκριτικής
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Περιεχόμενο Μαθήματος

  • Ενσωμάτωση κώδικα SQL σε προγραμματιστικά περιβάλλοντα τρίτης γενιάς.
  • Η Αρχιτεκτονική της ανοικτής πρόσβασης με χρήση JDBC. Δημιουργία ολοκληρωμένων εφαρμογών με χρήση δημοφιλών DBMS, όπως Oracle, PostgreSQL, Microsoft SQL Server και MySQL.
  • Πλαίσια λογισμικού (Frameworks) και API σύνδεσης αντικειμένων, που δημιουργούνται σε μια αντικειμενοστρεφή γλώσσα προγραμματισμού όπως η Java, με σχεσιακά συστήματα βάσεων δεδομένων ή άλλες μορφές διαχείρισης της πληροφορίας, όπως Hybernate, Spring, JPA, JDO κα.
  • Αποθηκευμένες διαδικασίες (stored procedures) και εναύσματα (triggers) στον εξυπηρετητή της βάσης δεδομένων.
  • Υπηρεσίες διαχείρισης δεδομένων στο διαδίκτυο: Επεξήγηση της σχεδίασης των data web services, η υλοποίησή τους μέσω αποθηκευμένων διαδικασιών και εντολών SQL και η κλήση/ενεργοποίηση και χρήση τους.
  • Σχεδίαση βάσεων δεδομένων για ένα αντικειμενοσχεσιακό σύστημα βάσεων δεδομένων, επεκτείνοντας το σχεσιακό μοντέλο, εμφωλευμένες συλλογές, η γλώσσα αιτημάτων SQL3 και ειδικότερα οι αντικειμενοσχεσιακές επεκτάσεις της, υλοποίηση ολοκληρωμένου παραδείγματος σε Oracle.
  • Μελέτη των κυριότερων τύπων NoSQL βάσεων δεδομένων και των δημοφιλέστερων υλοποιήσεων τους, όπως google firebase, mongo db, Neo4j, db4o κα.
  • Τεχνολογίες ημιδομημένης οργάνωσης των δεδομένων, όπως XML, XML Schema, SQL2008, XQuery, Xpath. Υποστήριξη της μορφοποίησης XML και διαχείριση των αντίστοιχων δεδομένων σε ORDBMS αλλά και σε native περιβάλλον XML, όπως η BaseX.
  • Η συναλλαγή ως λογική μονάδα εργασίας στο περιβάλλον πελάτη/διακομιστή DBMS.
  • Σφάλματα (errors) και διαγνωστικά μηνύματα κατά την εκτέλεση του κώδικα SQL.
  • Διαχείριση των σφαλμάτων και των εξαιρέσεων (exceptions) στην SQL.
  • Προβλήματα ταυτοχρονισμού (χαμένη ενημέρωση/lost update, πρόχειρη ανάγνωση/dirty read, μη-επαναλήψιμη ανάγνωση/non-repeatable read, ανάγνωση φαντάσματος/phantom read.
  • Ιδιότητες ACID, η ιδανική συναλλαγή.
  • Επίπεδα απομόνωσης των συναλλαγών.
  • Τεχνολογίες/μηχανισμοί υλοποίησης του ελέγχου του ταυτόχρονου στην εκτέλεση των συναλλαγών: έλεγχος ταυτοχρονισμού με σχήμα κλειδώματος (Locking Scheme Concurrency Control, LSCC), έλεγχος ταυτοχρονισμού με πολλαπλές εκδόσεις (Multi-Versioning Concurrency Control, MVCC), αισιόδοξος έλεγχος ταυτοχρονισμού (Optimistic Concurrency Control, OCC).
  • Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

    Τρόπος Παράδοσης
    • Πρόσωπο με πρόσωπο θεωρητική διδασκαλία (παράδοση, συζήτηση, επίλυση προβλημάτων).
    Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
    • Χρήση λογισμικού παρουσιάσεων διαφανειών.
    • Χρήση ηλεκτρονικής πλατφόρμας μάθησης (moodle).
    • Ηλεκτρονική επικοινωνία με τους φοιτητές/τριες.
    • Διαθεσιμότητα επιλεγμένων διαλέξεων του μαθήματος σε μορφοποίηση ψηφιακού βίντεο, μέσω του εξυπηρετητή Video on Demand του τμήματος.
    • Χρήση περιβάλλοντος εικονικής μηχανής (virtual machine) της διεθνούς σύμπραξης DBTechNet με προ-εγκατεστημένο λογισμικό διαφόρων (ελεύθερων) συστημάτων RDBMS: IBM DB2 Express-C, Oracle Express, PostgreSQL, MySQL. Χρήση του εκπαιδευτικού περιεχομένου του μαθήματος “Οι Συναλλαγές στην SQL” της διεθνούς σύμπραξης DBTechNet (http://dbtech.uom.gr/mod/resource/view.php?id=1064).
    Οργάνωση Διδασκαλίας
    Δραστηριότητα Φόρτος εργασίας εξαμήνου
    Διαλέξεις52
    Συγγραφή και παρουσίαση βιβλιογραφικής εργασίας25
    Εκπόνηση μελέτης και υλοποίησης λογισμικού40
    Ατομική Μελέτη και ανάλυση βιβλιογραφίας63
    Σύνολο 180
    Αξιολόγηση φοιτητών

    Η αξιολόγηση των φοιτητών στηρίζεται στην τελική γραπτή εξέταση και στις εργασίες. Τα κριτήρια αξιολόγησης είναι προσβάσιμα από τους φοιτητές στην ηλεκτρονική σελίδα του μαθήματος.

    Συνιστώμενη Βιβλιογραφία

    Συγγράμματα μέσω του συστήματος "Εύδοξος"
    1. R. Elmasri και S.B. Navathe, 2016. “Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων”, (7η έκδοση), Εκδόσεις Δίαυλος, ISBN 978-960-531-343-2, Κωδικός Βιβλίου στον Εύδοξο: 50662846.
    2. J. Hoffer, V, Ramesh, Heiki Topi, 2017. “ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ: ΣΥΓΧΡΟΝΗ ΔΙΑΧΕΙΡΙΣΗ”, (11η Έκδοση), Εκδόσεις Τζιόλα, ISBN 978-960-418-502-3, Κωδικός Βιβλίου στον Εύδοξο: 50656016.
    3. R. Ramakrishnan και J. Gehrke, 2012. “Συστήματα Διαχείρισης Βάσεων Δεδομένων”, (3η έκδοση), Εκδόσεις Τζιόλα, ISBN 978-960-418-411-8, Κωδικός Βιβλίου στον Εύδοξο: 22694245.
    Συμπληρωματική ελληνόγλωσση βιβλιογραφία
    1. J.D. Ullman, J. Widom, Βασικές Αρχές για τα Συστήματα Βάσεων Δεδομένων, Εκδόσεις 'Κλειδάριθμος', Αθήνα 2008
    2. Ι. Μανωλόπουλος, Α. Παπαδόπουλος, Συστήματα Βάσεων Δεδομένων: Θεωρία και Πρακτική Εφαρμογή, Εκδόσεις Νέων Τεχνολογιών, Αθήνα 2006
    3. T. Connolly, C. Begg, και A. Strachan, Συστήματα Βάσεων Δεδομένων: Μια πρακτική προσέγγιση στο σχεδιασμό, υλοποίηση και διεύθυνση, τόμοι Α και Β, Εκδόσεις Ίων, Αθήνα 2001
    4. Χ. Σκουρλάς, Σχεσιακές Βάσεις Δεδομένων, Εκδόσεις Νέων Τεχνολογιών, Αθήνα 2000
    5. M. Laiho, D.A. Dervos, K. Silpio, SQL Transactions: Θεωρία και Ασκήσεις Πρακτικής Εφαρμογής, Έκδοση DBTechNet, ISBN 978-952-93-2421-7, Ανάκτηση από (30/6/2019): http://150.214.214.5/DBTechVETProd/sites/default/files/sql-transactions_handbook_gr_2014-11-12.pdf
    6. Α. Σταυρακούδης, Βλασεις Δεδομένων και SQL: Μία Πρακτική Προσέγγιση, 2η Έκδοση, Εκδόσεις Κλειδάριθμος, Αθήνα 2015
    Συμπληρωματική ξενόγλωσση βιβλιογραφία
    1. W. Lemahieu, S. Van Den Broucke, B. Baesens, Principles of Database Management: The Practical Guide to Storing, Managing, and Analyzing Big and Small Data, Cambridge University Press, 2018
    2. T. Connolly, C. Begg, Database Systems: A Practical Approach to design, Implementation, and Management, 5th Edition, Addison Wesley, 2010
    3. R. Elmasri και S.B. Navathe, Fundamentals of Database Systems, 5th Edition, Addison-Wesley 2006
    4. R. Ramakrishnan και J. Gehrke, Database Management Systems, 3rd Edition, Mc Graw-Hill, 2002
    5. J.D. Ullman, J. Widom, A First Course in Database Systems, Prentice-Hall, 2007