Παρουσίαση/Προβολή
Υλοποίηση Συστημάτων Βάσεων Δεδομένων
(Κ18) - Γιάννης Ιωαννίδης
Περιγραφή Μαθήματος
Το μάθημα K18 ``Υλοποίηση Συστημάτων Βάσεων Δεδομένων'' είναι το δεύτερο από τα δύο βασικά μαθήματα Βάσεων Δεδομένων στο νέο Πρόγραμμα Προπτυχιακών Σπουδών και καλύπτει θέματα των εσωτερικών στρωμάτων ενός συστήματος βάσεων δεδομένων, δηλ.,το ``φυσικό'' επίπεδο, με διαχείριση μνήμης, ευρετήρια, επεξεργασία τελεστών, κτλ. (Το πρώτο είναι το μάθημα ``Σχεδίαση και Χρήση Βάσεων Δεδομένων'', του 4ου εξαμήνου, το οποίο καλύπτει θέματα που αφορούν στα επάνω στρώματα, δηλ., στο "λογικό" και το "σημασιολογικό" επίπεδο, και στην εξωτερική διάδραση.) Συγκεκριμένα, θα καλύψει έναν αριθμό από βασικά θέματα που αφορούν την οργάνωση και αποθήκευση δεδομένων σε εξωτερικές μονάδες αποθήκευσης, κατά βάση δίσκους. Τα συγκεκριμένα θέματα που θα συζητηθούν περιλαμβάνουν την έννοια του αρχείου, περιφεριακά συστήματα αποθήκευσης και τα φυσικά χαρακτηριστικά τους, διάταξη και ταξινόμηση αρχείων που βρίσκονται σε δίσκους, πρωτεύουσα (primary) οργάνωση αρχείων, δευτερεύουσες (secondary) οργανώσεις αρχείων, στατικές και δυναμικές δομές δεδομένων, ISAM, στατικός και δυναμικός κατακερματισμός (hashing), Β+ δένδρα και πολυδιάστατες δομές δεδομένων (π.χ., R-δένδρα). Επίσης θα υπεισέλθει σε θέματα σχεσιακής άλγεβρας, επεξεργασίας επερωτήσεων δεδομένων και τελεστών σχεσιακής άλγεβρας, αλγορίθμων που χρησιμοποιούνται, και του αντίστοιχου κόστους, με ή χωρίς τη χρήση ευρετηρίων. Επιπλέον, το μάθημα πραγματεύεται την έννοια της δοσοληψίας, έλεγχο συνδρομικότητας (ταυτόχρονης προσπέλασης) και ανάκαμψη από βλάβες. Το υλικό του μαθήματος θα αντληθεί κατά κύριο λόγο από το βιβλίο που θα σας μοιραστεί.
Εκτός από την κάλυψη της ύλης, το μάθημα περιλαμβάνει ένα τελικό διαγώνισμα και κάποιες εργασίες, τα οποία και θα αποφασίσουν τον τελικό βαθμό.
Ημερομηνία δημιουργίας
Τρίτη 2 Δεκεμβρίου 2
-
Περιεχόμενο Μαθήματος
Το μάθημα K18 ``Υλοποίηση Συστημάτων Βάσεων Δεδομένων'' είναι το δεύτερο από τα δύο βασικά μαθήματα Βάσεων Δεδομένων στο νέο Πρόγραμμα Προπτυχιακών Σπουδών και καλύπτει θέματα των εσωτερικών στρωμάτων ενός συστήματος βάσεων δεδομένων, δηλ.,το ``φυσικό'' επίπεδο, με διαχείριση μνήμης, ευρετήρια, επεξεργασία τελεστών, κτλ. (Το πρώτο είναι το μάθημα ``Σχεδίαση και Χρήση Βάσεων Δεδομένων'', του 4ου εξαμήνου, το οποίο καλύπτει θέματα που αφορούν στα επάνω στρώματα, δηλ., στο "λογικό" και το "σημασιολογικό" επίπεδο, και στην εξωτερική διάδραση.) Συγκεκριμένα, θα καλύψει έναν αριθμό από βασικά θέματα που αφορούν την οργάνωση και αποθήκευση δεδομένων σε εξωτερικές μονάδες αποθήκευσης, κατά βάση δίσκους. Τα συγκεκριμένα θέματα που θα συζητηθούν περιλαμβάνουν την έννοια του αρχείου, περιφεριακά συστήματα αποθήκευσης και τα φυσικά χαρακτηριστικά τους, διάταξη και ταξινόμηση αρχείων που βρίσκονται σε δίσκους, πρωτεύουσα (primary) οργάνωση αρχείων, δευτερεύουσες (secondary) οργανώσεις αρχείων, στατικές και δυναμικές δομές δεδομένων, ISAM, στατικός και δυναμικός κατακερματισμός (hashing), Β+ δένδρα και πολυδιάστατες δομές δεδομένων (π.χ., R-δένδρα). Επίσης θα υπεισέλθει σε θέματα σχεσιακής άλγεβρας, επεξεργασίας επερωτήσεων δεδομένων και τελεστών σχεσιακής άλγεβρας, αλγορίθμων που χρησιμοποιούνται, και του αντίστοιχου κόστους, με ή χωρίς τη χρήση ευρετηρίων. Επιπλέον, το μάθημα πραγματεύεται την έννοια της δοσοληψίας, έλεγχο συνδρομικότητας (ταυτόχρονης προσπέλασης) και ανάκαμψη από βλάβες. Το υλικό του μαθήματος θα αντληθεί κατά κύριο λόγο από το βιβλίο που θα σας μοιραστεί.
Εκτός από την κάλυψη της ύλης, το μάθημα περιλαμβάνει ένα τελικό διαγώνισμα και κάποιες εργασίες, τα οποία και θα αποφασίσουν τον τελικό βαθμό.
Βοηθήματα
Η πλειοψηφία των αναγνωσμάτων περιλαμβάνεται και στα δύο βιβλία που έχουν επιλεχθεί για το μάθημα:
Βιβλία
- Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων, γραμμένο από τους Ramez Elmasri και Sham B. Navathe, μεταφρασμένο από τον Καθηγητή Μιχάλη Χατζόπουλο.
- Συστήματα Διαχείρισης Βάσεων Δεδομένων, γραμμένο από τους Raghu Ramakrishnan και Johannes Gehrke.
Άλλα προτεινόμενα βιβλία
Στην περίπτωση που κάποιοι ενδιαφέρονται για άλλα βιβλία στην Αγγλική βιβλιογραφία για οργάνωση αρχείων και γενικότερα βάσεις δεδομένων, συνιστάται τo εξής:
- Hank Korth, Avi Silberschatz, and S. Sudarshan, Database System Concepts, 3rd Edition, McGraw-Hill.
'Αλλα βιβλία που είναι μεν καλά, αλλά δεν θα τα προτιμούσα σε σχέση με τα παραπάνω ή των Elmasri-Navathe είναι τα εξής:
- Jeff Ullman and Jennifer Widom, A First Course in Database Systems, Prentice Hall.
- Hector Garcia-Molina, Jeff Ullman and Jennifer Widom, Database System Implementation, Prentice Hall.
Εκπαιδευτικές Δραστηριότητες
Διαλέξεις
- Δευτέρα 9:00 - 11:00, Αμφιθέατρο A2
- Τρίτη 9:00 - 11:00, Αμφιθέατρο Α2
Η συμμετοχή στις συζητήσεις την ώρα του μαθήματος θεωρείται απαραίτητη, ώστε να μεγιστοποιηθεί η αποδοτικότητα όλων κατά την διάρκειά του. Ελπίζω ότι οι διαλέξεις θα πάρουν την μορφή διαλόγου, καθότι αυτό είναι που θα τις κάνει ενδιαφέρουσες για όλους.
Ανθρώπινο Δυναμικό
Διδάσκοντες
Θεόφιλος Μαΐλης (2022 - 2023) (tmailis παπάκι di τελεία uoa τελεία gr, Ι19) - ώρες γραφείου: με προσυνεννόηση
Βοηθοί Μαθήματος
Τρόποι αξιολόγησης / εξέτασης
Βαθμολογία
Ο τελικός βαθμός του μαθήματος θα υπολογισθεί ως εξής: τελικό διαγώνισμα (50%), 2-3 εργασίες (50%). Τα ποσοστά αυτά μπορεί να αλλάξουν λίγο κατά τη διάρκεια του εξαμήνου ανάλογα με την πορεία του μαθήματος. Για να περάσει κανείς θα πρέπει να έχει συνολικό βαθμό τουλάχιστον 5, και επιπλέον να έχει τουλάχιστον 3 σε κάθε άσκηση, τουλάχιστον 5 στον μέσο όρο των βαθμών των ασκήσεων, και τουλάχιστον 5 στο διαγώνισμα.
Η βαθμολογία των ασκήσεων προηγουμένων ετών δεν μπορεί να χρησιμοποιηθεί στο τρέχον εξάμηνο. Όλοι οι φοιτητές θα πρέπει να κάνουν τις ασκήσεις που θα δοθούν φέτος.
Διαγώνισμα
Το τελικό διαγώνισμα θα εστιασθεί στα θέματα που θα έχουν καλυφθεί σε όλη την διάρκεια του εξαμήνου. Η ημερομηνία του θα αποφασισθεί αργότερα.
Εργασίες
Τμήμα του μαθήματος είναι η εκτέλεση δύο ή τριών (2-3) εργασιών. Αυτές θα πραγματεύονται υλικό που καλύπτουμε στο μάθημα, ώστε να αποκτήσετε όλοι μια πραγματική και άμεση εμπειρία. Όλες οι ασκήσεις περιλαμβάνουν προγραμματισμό, και αυτός θα γίνει είτε στη γλώσσα C ή C++, είτε στη γλώσσα python. Πιθανά θέματα των ασκήσεων είναι τα εξής:- άμεση χρήση εγγραφών στον δίσκο, ώστε να γίνει ένα ζέσταμα στον προγραμματισμό,
- υλοποίηση μιας στατικής δομής δεδομένων σε αρχείο δίσκου, πίνακα κατακερματισμού ή άλλης, και
- υλοποίηση μιας δυναμικής δομής δεδομένων σε αρχείο δίσκου, Β+ δένδρο ή άλλης.
Μία από τις δύο τελευταίες παραπάνω εργασίες μπορεί να αντικατασταθεί από υλοποίηση μιας απλής μορφής του επιπέδου ενός συστήματος βάσεων δεδομένων που διαχειρίζεται εγγραφές μέσα σε μπλοκ του δίσκου, ή της ταξινόμησης ενός αρχείου, ή ενός τελεστή επεξεργασίας δεδομένων.
Οι εργασίες είναι ομαδικές σε ομάδες των δύο ή τριών ατόμων. Έχετε ελεύθερη επιλογή στην ομάδα που θα ενταχθείτε, η οποία ιδανικά θα διατηρείτε η ίδια σε όλες τις εργασίες. Κάθε μέλος της ομάδας θα πάρει ξεχωριστό βαθμό ανάλογα με την συνεισφορά του στη συνολική σχετική προσπάθεια. Στόχος είναι, βέβαια, όλα τα μέλη της ομάδας να έχουν παρόμοια συνεισφορά σε μια εργασία ώστε να παίρνουν και τον ίδιο βαθμό.
Κάτι προφανές
Οποιαδήποτε συζήτηση μεταξύ σας για τα θέματα μιας άσκησης, την θεωρία πάνω στην οποία αυτή βασίζεται, ή και ιδέες για το πώς μπορεί αυτή να προσεγγιστεί είναι θεμιτές και επιθυμητές, γιατί βοηθάνε στην καλύτερη κατανόηση της όλης ύλης. Το τελικό προϊόν μιάς άσκησης όμως (κώδικας ή γραπτό) πρέπει να είναι έργο αποκλειστικά της ομάδας (ή του ατόμου) που το υπογράφει. Οποιαδήποτε άλλη δυσάρεστη κατάσταση σε οποιαδήποτε άσκηση θα σημαίνει μηδενισμό στο μάθημα.