Πληροφορική και Τηλεπικοινωνίες Κ18
Υλοποίηση Συστημάτων Βάσεων Δεδομένων
Εαρινό Εξάμηνο 2010
Διδάσκων: Αναπ. Καθηγητής Δ. Γουνόπουλος
Ηλεκτρονική Διεύθυνση: dg παπάκι di τελεία uoa τελεία gr
Ιστοσελίδα μαθήματος: http://www.di.uoa.gr/~k18/
Περιεχόμενα
Να ελέγχετε το χώρο αυτό για τις τρέχουσες ανακοινώσεις. (Τελευταία ενημέρωση στις 22/10/2010)
Βαθμολογία γραπτού διαγωνίσματος περιόδου Σεπτεμβρίου (22/10/2010)
Η βαθμολογία του γραπτού διαγωνίσματος βρίσκεται εδώ.
Σχετικά με τις βαθμολογίες περιόδου Σεπτεμβρίου (22/10/2010)
Οι βαθμοί του μαθήματος για την περίοδο του Σεπτεμβρίου θα ανακοινωθούν αύριο, 23/10. Όσοι θέλετε να δείτε το γραπτό σας μπορείτε να έρθετε τη Δευτέρα 13:00-14:00.
Διαθέσιμες ώρες για ερωτήσεις πάνω στις βαθμολογίες (03/09/2010)
Για τυχόν απορίες σχετικά με τις βαθμολογίες του μαθήματος μπορείτε να έλθετε τη Δευτέρα 06/09 και ώρες 11:00 - 13:00 στο γραφείο Β9.
Τελική βαθμολογία μαθήματος (30/08/2010)
Η τελική βαθμολογία του μαθήματος βρίσκεται εδώ.
Βαθμολογία γραπτού διαγωνίσματος (07/08/2010)
Η βαθμολογία του γραπτού διαγωνίσματος βρίσκεται εδώ.
Βαθμολογία 1ης άσκησης (05/08/2010)
Η τελική βαθμολογία της 1ης άσκησης βρίσκεται εδώ.
Βαθμολογία 2ης άσκησης (04/08/2010)
Η βαθμολογία της 2ης άσκησης βρίσκεται εδώ.
Βαθμολογία 1ης άσκησης (23/06/2010)
Η βαθμολογία της 1ης άσκησης βρίσκεται εδώ.
Ύλη Μαθήματος (06/06/2010)
Η ύλη του μαθήματος περιλαμβάνει τα εξής:
1) Από το βιβλίο (5η έκδοση)
- Κεφάλαιο 1: όλο
- Κεφάλαιο 2: όλο
- Κεφάλαιο 5: όλο
- Κεφάλαιο 6: Παράγραφοι 6.1 - 6.5
- Κεφάλαιο 13: όλο
- Κεφάλαιο 14: όλο
- Κεφάλαιο 15: Παράγραφοι 15.1 - 15.5
2) Τις διαφάνειες που υπάρχουν στο site του μαθήματος
Νεότερη παράταση για τη 2η άσκηση (03/06/2010)
Δίνεται νέα παράταση για την παράδοση της εργασίας, μέχρι και την Παρασκευή 04/06/2010, στις 23:59 το βράδυ.
Παράταση παράδοσης δεύτερης άσκησης (28/05/2010)
Η παράδοση της δεύτερης άσκησης του μαθήματος μετατίθεται για την Πέμπτη 03/06/2010 στις 23:59. Η καταληκτική ημερομηνία δηλώσεων ομάδων παραμένει η
1η Ιουνίου (όπως έχει ανακοινωθεί και παλαιότερα).
Διάλεξη Τρίτης 25/05 (22/05/2010)
Το μάθημα της Τρίτης 25/05 δεν θα πραγματοποιηθεί.
Tutorial πάνω σε Linear Hashing (20/05/2010)
Για όσους δεν κατάφεραν να είναι στο φροντιστήριο, αλλά και γι' αυτούς που ήρθαν και υπάρχουν ακόμα απορίες, μπορείτε να κατεβάσετε σε ppt ή σε pdf μορφή, ένα tutorial που φτιάξαμε και που εξηγεί, μέσω
παραδείγματος, τις έννοιες αλλά και τη λειτουργία του γραμμικού κατακερματισμού (Linear Hashing).
Όπως πάντα, για πιο συγκεκριμένες απορίες που μπορεί να έχετε, στέλνετε email στο k18 [at] di [dot] uoa [dot] gr.
Υπενθύμιση φροντιστήριου για τη δεύτερη άσκηση (16/05/2010)
Υπενθυμίζεται ότι την Τρίτη 18/05, στις 11:00 - 13:00, αντί του μαθήματος θα πραγματοποιηθεί φροντιστήριο σχετικά με τη δεύτερη άσκηση, για να
δοθούν διευκρινίσεις και να λυθούν τυχόν απορίες.
Διόρθωση των main1 (16/05/2010)
Για λόγους debugging, σε δική μας πρότυπη υλοποίηση της εργασίας 2, είχαμε τοποθετήσει στη main1 τη συνάρτηση printInfo(), με όρισμα τύπου
LH_info*. Η συγκεκριμένη συνάρτηση δεν αναφέρεται πουθενά στην εκφώνηση της εργασίας, αλλά εκ παραδρομής παρέμεινε στη main1.
Επίσης, στις συναρτήσεις LH_FindAllEntries() που υπάρχουν στις main2 και main3, το πρώτο όρισμα ήταν τύπου LH_info*, ενώ στην εκφώνηση αναφέρεται
ότι είναι τύπου LH_info. Προκειμένου να ανακοινωθούν οι main το συντομότερο δυνατό, δεν έγινε διεξοδικός έλεγχος ότι τα πρότυπα των συναρτήσεων
συμβαδίζουν πλήρως με αυτά της εκφώνησης, όσον αφορά τον τύπο των ορισμάτων.
Κατεβάστε από εδώ τις main όπου έχουν διορθωθεί τα προαναφερθέντα λάθη. Για οποιοδήποτε πρόβλημα, στείλτε
email στο k18 [at] di [dot] uoa [dot] gr.
Ανακοίνωση αρχείων δεύτερης εργασίας (15/05/2010)
Από εδώ μπορείτε να κατεβάσετε τις main για τον έλεγχο των προγραμμάτων σας.
Από εδώ μπορείτε να κατεβάσετε δεδομένα για τον έλεγχο των προγραμμάτων σας. Μπορείτε φυσικά να φτιάξετε και δικά
σας, αρκεί να έχουν την ίδια μορφοποίηση με τα αρχεία που δίνουμε εμείς.
Κατεβάστε, επίσης, τη νέα βιβλιοθήκη του BF επιπέδου για Windows (VS'08) και για Linux (gcc 4.2+). Η βιβλιοθήκη δεν έχει αλλαγές, εκτός από το ότι μπορείτε να έχετε περισσότερα ανοιχτά
αρχεία απ' ότι στην προηγούμενη άσκηση.
Σχετικά με την παράδοση των εργασιών (12/05/2010)
Για την παράδοση των εργασιών θα χρειαστεί πρώτα να δηλώσετε τις ομάδες σας. Για να το κάνετε αυτό, ακολουθήστε τη διαδικασία
που περιγράφεται εδώ. Η διαδικασία δηλώσεων ισχύει μέχρι και την 1 Ιουνίου 2010 και μόνο για όσους
πρόκειται να παραδώσουν τη φετινή εργασία.
Αφού ολοκληρώσετε την παραπάνω διαδικασία, θα δημιουργηθεί στο ~k18/askisi2/ ένας νέος κατάλογος, που θα περιλαμβάνει τα std των μελών της
ομάδας στην οποία ανήκετε. Αν π.χ. τα μέλη της ομάδας είναι stdXXXXX και stdYYYYY, ο κατάλογος θα είναι της μορφής stdXXXXX_stdYYYYY.
Μπορείτε να δηλώσετε ομάδα μόνο μία φορά. Αρκεί η δήλωση να γίνει από ένα μέλος της ομάδας, δεν χρειάζεται να γίνει από κάθε
μέλος χωριστά.
Αν επιθυμείτε να αλλάξετε ομάδα μετά την εγγραφή σας, στείλτε email στο k18 [at] di [dot] uoa [dot] gr, με την τροποποίηση της ομάδας σας
καθώς και την αιτιολογία.
Η διαδικασία δημιουργίας των καταλόγων δεν είναι αυτόματη, αλλά εκτελείται περιοδικά. Για το λόγο αυτό αφήστε μέχρι και ~2 ώρες να περάσουν
από τη στιγμή που θα ολοκληρώσετε τη διαδικασία εγγραφής.
Αφού δημιουργηθούν οι κατάλογοί σας, μεταφέρετε τα αρχεία της εργασίας σας στον κατάλογο που σας αντιστοιχεί.
Αυτό μπορεί να γίνει με τον εξής τρόπο:
- Μεταφέρετε τα αρχεία που σκοπεύετε να παραδώσετε στο λογαριασμό κάποιου από τα μέλη της ομάδας
- Αντιγράφετε τα αρχεία στον κατάλογο παράδοσης εκτελώντας την εντολή: cp αρχείο1 αρχείο2 ...
~k18/askisi2/όνομα_καταλόγου_ομάδας
- Επιβεβαιώνετε ότι τα αρχεία σας έχουν αντιγραφεί επιτυχώς εκτελώντας την εντολή: ls ~k18/askisi2/όνομα_καταλόγου_ομάδας
Φροντιστήριο για τη δεύτερη άσκηση (11/05/2010)
Την Τρίτη 18/05 στις 11:00 - 13:00 θα πραγματοποιηθεί φροντιστήριο για τη δεύτερη άσκηση.
Διαθέσιμες ώρες για απορίες (11/05/2010)
Παρακάτω αναφέρονται οι ημέρες, οι ώρες, καθώς και το γραφείο των βοηθών του μαθήματος όπου μπορείτε να έρχεστε για απορίες:
- Θάνος Παπαπέτρου: Τετάρτη 19/05, 15:00 - 18:00 (Γραφείο Ι2)
- Γιώργος Βαλκανάς: Παρασκευή 21/05, 12:00 - 14:00 (Γραφείο Α23)
- Αλέξης Κοτσιφάκος: Πέμπτη 20/05 στις 10:00 - 13:00 (Γραφείο Α23)
Ανακοίνωση δεύτερης εργασίας (07/05/2010)
Ανακοινώνεται η δεύτερη εργασία του μαθήματος εδώ. Ημερομηνία παράδοσης 31 Μαΐου 2010.
Ομάδες πρώτης εργασίας ( 06/05/2010 )
Στο αρχείο που βρίσκεται εδώ μπορείτε να βρείτε τις ομάδες που παρέδωσαν την 1η εργασία.
Σε περίπτωση που έχετε παραδώσει αλλά δεν βρίσκετε τα std της ομάδας σας στο αρχείο, ενημερώστε με e-mail στο k18 [ at ] di [ dot ] uoa [ dot ] gr,
αναφέροντας τα άτομα της ομάδας σας, τα std σας και τον τρόπο με τον οποίο παραδώσατε την εργασία.
Παράταση παράδοσης πρώτης άσκησης (26/04/2010)
Η παράδοση της πρώτης άσκησης του μαθήματος μετατίθεται για τη Δευτέρα 03/05/2010.
Διαθέσιμες ώρες για απορίες (26/04/2010)
Παρακάτω αναφέρονται οι ημέρες, οι ώρες, καθώς και το γραφείο των βοηθών του μαθήματος όπου μπορείτε να έρχεστε για απορίες:
- Θάνος Παπαπέτρου: Τετάρτη 28/04, 15:00 - 18:00 (Γραφείο Ι2)
- Γιώργος Βαλκανάς: Τετάρτη 28/04, 12:00 - 14:00, και Πέμπτη 30/04 στις 12:00 - 14:00 (Γραφείο Α23)
- Αλέξης Κοτσιφάκος: Τρίτη 27/04 στις 11:00 - 13:00, και Πέμπτη 29/04 στις 14:00 - 16:00 (Γραφείο Α23)
Ανακοίνωση για τον κατάλογο της ομάδας σας (25/04/2010)
Σε αυτό το αρχείο μπορείτε να βρείτε τον κατάλογο στον οποίο θα πρέπει να μεταφέρετε τα αρχεία της άσκησής σας. Το
αρχείο έχει 2 στήλες, στην πρώτη αναφέρεται το stdXXXXX του κάθε φοιτητή για τον οποίο έχει δηλωθεί ομάδα από τη φόρμα εγγραφής και στη
δεύτερη ο κατάλογος στον οποίο θα πρέπει να μεταφερθούν τα αρχεία της ομάδας. Σε περίπτωση που τα μέλη της ομάδας είναι 2, όπως έχει αναφερθεί και
στην προηγούμενη ανακοίνωση, ο κατάλογος είναι ο ίδιος και για τα 2 μέλη της.
Σχετικά με την παράδοση των εργασιών (21/04/2010)
Για την παράδοση των εργασιών θα χρειαστεί πρώτα να δηλώσετε τις ομάδες σας. Για να το κάνετε αυτό, ακολουθήστε τη διαδικασία
που περιγράφεται εδώ. Η διαδικασία δηλώσεων ισχύει μέχρι και τις 28 Απριλίου 2010 και μόνο για όσους
πρόκειται να παραδώσουν την φετινή εργασία.
Αφού ολοκληρώσετε την παραπάνω διαδικασία, θα δημιουργηθεί στο ~k18/askisi1/ ένας νέος κατάλογος, που θα περιλαμβάνει τα std των μελών της
ομάδας στην οποία ανήκετε. Αν π.χ. τα μέλη της ομάδας είναι stdXXXXX και stdYYYYY, ο κατάλογος θα είναι της μορφής stdXXXXX_stdYYYYY.
Μπορείτε να δηλώσετε ομάδα μόνο μία φορά. Αρκεί η δήλωση να γίνει από ένα μέλος της ομάδας, δεν χρειάζεται να γίνει από κάθε
μέλος χωριστά.
Αν επιθυμείτε να αλλάξετε ομάδα μετά την εγγραφή σας, στείλτε email στο k18 [at] di [dot] uoa [dot] gr, με την τροποποίηση της ομάδας σας
καθώς και την αιτιολογία.
Η διαδικασία δημιουργίας των καταλόγων δεν είναι αυτόματη, αλλά εκτελείται περιοδικά. Για το λόγο αυτό αφήστε μέχρι και ~2 ώρες να περάσουν
από τη στιγμή που θα ολοκληρώσετε τη διαδικασία εγγραφής.
Αφού δημιουργηθούν οι κατάλογοί σας, μεταφέρετε τα αρχεία της εργασίας σας στον κατάλογο που σας αντιστοιχεί.
Αυτό μπορεί να γίνει με τον εξής τρόπο:
- Μεταφέρετε τα αρχεία που σκοπεύετε να παραδώσετε στο λογαριασμό κάποιου από τα μέλη της ομάδας
- Αντιγράφετε τα αρχεία στον κατάλογο παράδοσης εκτελώντας την εντολή: cp αρχείο1 αρχείο2 ...
~k18/askisi1/όνομα_καταλόγου_ομάδας
- Επιβεβαιώνετε ότι τα αρχεία σας έχουν αντιγραφεί επιτυχώς εκτελώντας την εντολή: ls ~k18/askisi1/όνομα_καταλόγου_ομάδας
Διαθέσιμες ώρες για απορίες (13/04/2010)
Παρακάτω αναφέρονται οι ημέρες, οι ώρες, καθώς και το γραφείο των βοηθών του μαθήματος όπου μπορείτε να έρχεστε για απορίες:
- Θάνος Παπαπέτρου: Τετάρτη 14/04, Δευτέρα 19/04 και Τετάρτη 21/04, 15:00 - 17:00 (Γραφείο Ι2)
- Γιώργος Βαλκανάς: Παρασκευή 16/04, Τρίτη 20/04 και Παρασκευή 23/04, 12:00 - 14:00 (Γραφείο Α23)
- Αλέξης Κοτσιφάκος: Πέμπτη 15/04 στις 14:00 - 16:00, Δευτέρα 19/04 και Πέμπτη 22/04 στις 12:00 - 14:00 (Γραφείο Α23)
Φροντιστήριο για την πρώτη άσκηση (12/04/2010)
Υπενθυμίζεται ότι αύριο, Τρίτη 13/04, στις 11:00-13:00 το πρωί θα πραγματοποιηθεί φροντιστήριο στην ώρα του μαθήματος επάνω στην πρώτη άσκηση.
Μικρή τροποποίηση στη 2η main (03/04/2010)
Εκ παραδρομής, σε δική μας υλοποίηση των συναρτήσεων, η HP_GetAllEntries() ήταν ορισμένη να επιστρέφει int, αντί για void όπως αναφέρεται στην
εκφώνηση της άσκησης. Για το λόγο αυτό στη main2, γίνεται σχετικός έλεγχος αν η συνάρτηση επιστρέψει αρνητική τιμή. Κατεβάστε από εδώ την διορθωμένη main2.
Γενικές Διευκρινίσεις για τις Εργασίες (30/03/2010)
- Την Τρίτη 13/04, 11:00-13:00 το πρωί, στην ώρα του μαθήματος, θα γίνει φροντιστήριο επάνω στην άσκηση.
- Οι ασκήσεις μπορούν να γίνουν είτε ατομικά, είτε σε ομάδες 2 ατόμων.
- Μπορείτε να κρατήσετε τις περσινές ασκήσεις, αλλά και τις δύο. Δεν μπορείτε να κρατήσετε μόνο 1 περσινή και να κάνετε την άλλη
φέτος.
- Αν κάποιος θέλει να κρατήσει τις περσινές ασκήσεις, να στείλει email στο k18 [at] di [dot] uoa [dot] gr, με ό,τι παρέδωσε πέρυσι.
- Για να περάσει κάποιος το μάθημα πρέπει να περάσει τη βάση και στο γραπτό και στις ασκήσεις, δηλαδή να έχει μέσο όρο τουλάχιστον 4.5
στις δύο ασκήσεις.
Διευκρινίσεις για τα αρχεία της πρώτης εργασίας (29/03/2010)
Στο tar αρχείο των βιβλιοθηκών για Linux υπάρχει μια ενδεικτική main για το πως μπορείτε να χρησιμοποιήσετε τη BF βιβλιοθήκη. Από λάθος η main δεν
είχε συμπεριληφθεί στο αντίστοιχο αρχείο για Windows. Για διευκόλυνση, μπορείτε να βρείτε την main εδώ.
Για τις main έχει γίνει η υπόθεση ότι υπάρχουν φάκελοι BF, HP και HT, σύμφωνα με τα #include που υπάρχουν στην αρχή. Αυτό δεν είναι υποχρεωτικό και
μπορείτε να το αλλάξετε, αναλόγως την τοποθεσία που έχετε τα αρχεία που αναπτύσσετε. Ωστόσο, αυτή ειναι η μοναδική αλλαγή που επιτρέπεται να
πραγματοποιήσετε στις main που σας δόθηκαν.
Στη main2, δεν είχε τοποθετηθεί στην αρχή της εκτέλεσης η BF_Init(), το οποίο ήταν πιθανό να δημιουργήσει προβλήματα στην εκτέλεση και έλεγχο του
προγράμματός σας. Η main2 που περιλαμβάνει την BF_Init() δίνεται εδώ.
Η main1 δέχεται εγγραφές από το stdin, συνεπώς μπορείτε να εισάγετε και δικές σας εγγραφές. Οι εγγραφές πρέπει να ακολουθούν τη μορφή που έχουν
αυτές των αρχείων data, data1 και data2. Μια εναλλακτική είναι να δώσετε τα δεδομένα με ανακατεύθυνση εισόδου, από τα αρχεία που σας έχουν δοθεί, ή
δικά σας. Αυτό μπορείτε να το κάνετε ως εξής:
./main1 < datafile
Η main2, για να εκτελεστεί χρειάζεται δύο ορίσματα, όπου το πρώτο είναι ένα αρχείο σωρού (heap file) ενώ το δεύτερο ένα αρχείο κατακερματισμού.
Έτσι, μια πιθανή εκτέλεση της 2ης main είναι:
./main2 < heapfile > < hashfile >
όπου heapfile το όνομα του αρχείου σωρού, ενώ hashfile το όνομα του αρχείου κατακερματισμού που θέλετε να δοκιμάσετε.
Ανακοίνωση αρχείων πρώτης εργασίας (26/03/2010)
Η βιβλιοθήκη για το BF επίπεδο που θα χρειαστείτε για την πρώτη εργασία του μαθήματος παρέχεται για λειτουργικά συστήματα
Windows και Linux. Για τις δοκιμές των προγραμμάτων σας μπορείτε να
χρησιμοποιήσετε τις main που δίνονται εδώ ενώ κάποια ενδεικτικά αρχεία δεδομένων δίνονται
εδώ. Μία ελαφρά τροποποιημένη έκδοση της πρώτης άσκησης βρίσκεται εδώ.
Ανακοίνωση πρώτης εργασίας (20/03/2010)
Ανακοινώνεται η πρώτη εργασία του μαθήματος εδώ. Ημερομηνία παράδοσης 30 Απριλίου 2010.
Η ύλη του μαθήματος από το βιβλίο (Elmasri και Navathe) είναι: Κεφάλαια 1,2,5,6,13,14 και από το 15 οι ενότητες 15.2, 15.3 και 15.4
Μέρος 1: Διαχείριση αρχείων στο δίσκο
- Εισαγωγικά: Διαφάνειες 1
- Εισαγωγικά: Διαφάνειες 2
- Ευρετήρια Δένδρων: Διαφάνειες 10
- Ευρετήρια Κατακερματισμού: Διαφάνειες 11
- Ευρετήρια Κατακερματισμού (2): Διαφάνειες 4
- Ευρετήρια (3): Διαφάνειες 5
- Ευρετήρια (4): Διαφάνειες 14
- Β-Δένδρα: Διαφάνειες 6
- Εξωτερική Ταξινόμηση: Διαφάνειες 7
- Εξωτερική Ταξινόμηση (2): Διαφάνειες 13
Μέρος 2: Σχεσιακό Μοντέλο
- Κεφάλαιο 5: Διαφάνειες 8
- Κεφάλαιο 6: Διαφάνειες 9
- Σχεσιακή Άλγεβρα: Διαφάνειες 10
- Διαφάνειες 11
- Διαφάνειες 12
Το μάθημα K18 "Υλοποίηση Συστημάτων Βάσεων Δεδομένων" θα καλύψει έναν αριθμό από βασικά θέματα που αφορούν την οργάνωση και αποθήκευση δεδομένων
σε εξωτερικές μονάδες αποθήκευσης, κατά βάση δίσκους. Τα συγκεκριμένα θέματα που θα συζητηθούν περιλαμβάνουν την έννοια του αρχείου, περιφεριακά
συστήματα αποθήκευσης και τα φυσικά χαρακτηριστικά τους, διάταξη αρχείων που βρίσκονται σε δίσκους, πρωτεύουσα (primary) οργάνωση αρχείων,
δευτερεύουσες (secondary) οργανώσεις αρχείων, στατικές και δυναμικές δομές δεδομένων, κατακερματισμός (hashing), Β+ δένδρα, και πολυδιάστατες δομές
δεδομένων (π.χ., R-δένδρα). Επίσης θα υπεισέλθει σε θέματα επεξεργασίας επερωτήσεων δεδομένων, αλγορίθμων που χρησιμοποιούνται, και του αντίστοιχου
κόστους. Το υλικό του μαθήματος θα αντληθεί από το βιβλίο που θα σας μοιραστεί.
Εκτός από την κάλυψη της ύλης, το μάθημα περιλαμβάνει ένα τελικό διαγώνισμα και κάποιες εργασίες, τα οποία και θα αποφασίσουν τον τελικό
βαθμό.
Τμήμα Α: Δευτέρα 17:00 - 19:00 Αμφιθέατρο, Τρίτη 11:00 - 13:00 Αμφιθέατρο
Τμήμα Β: Δευτέρα 19:00 - 21:00 Αμφιθέατρο, Πέμπτη 11:00 - 13:00 Α2
Η συμμετοχή στις συζητήσεις την ώρα του μαθήματος θεωρείται απαραίτητη, ώστε να μεγιστοποιηθεί η αποδοτικότητα όλων κατά την διάρκειά του. Ελπίζω
ότι οι διαλέξεις θα πάρουν την μορφή διαλόγου, καθότι αυτό είναι που θα τις κάνει ενδιαφέρουσες για όλους.
1)Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων - 5η έκδοση (1ος τόμος), γραμμένο από τους Ramez Elmasri και Sham B. Navathe. Το βιβλίο θα
μοιρασθεί μόλις βγουν οι καταστάσεις των εγγεγραμμένων από την γραμματεία. Θα το παραλάβετε από τον εκδότη κατ' ευθείαν: ΔΙΑΥΛΟΣ, Αλεξανδρείας 95 και
Τιμαίου, Αθήνα.
2)Συστήματα Διαχείρισης Βάσεων Δεδομένων - 2η έκδοση (Τόμος Α), γραμμένο από τους Raghu Ramakrishnan και Johannes Gehrke. Το
βιβλίο θα μοιρασθεί μόλις βγουν οι καταστάσεις των εγγεγραμμένων από την γραμματεία. Θα το παραλάβετε από το βιβλιοπωλείο: Στοά του Βιβλίου,
Πεσματζόγλου 5, Αθήνα
Διαφάνειες 1,
Διαφάνειες 2,
Διαφάνειες 3,
Διαφάνειες 4,
Διαφάνειες 5,
Διαφάνειες 6,
Διαφάνειες 7,
Διαφάνειες 8,
Διαφάνειες 9,
Διαφάνειες 10,
Διαφάνειες 10 - Ευρετήρια Δενδρικών Δομών,
Διαφάνειες 11,
Διαφάνειες 11 - Ευρετήρια Κατακερματισμού,
Διαφάνειες 12,
Διαφάνειες 13,
Διαφάνειες 13 - Εξωτερική Ταξινόμηση,
Διαφάνειες 14,
Επεξεργασία επερωτήσεων - μέρος Α,
Επεξεργασίας επερωτήσεων - μέρος Β,
Αλγόριθμοι επεξεργασίας επερωτήσεων και βελτιστοποίηση
'Αλλα προτεινόμενα βιβλία για Βάσεις Δεδομένων
Στην περίπτωση που κάποιοι ενδιαφέρονται για άλλα βιβλία στην Αγγλική βιβλιογραφία για οργάνωση αρχείων και γενικότερα βάσεις δεδομένων, θα
συνιστούσα τo εξής:
- Hank Korth, Avi Silberschatz, and S. Sudarshan, Database System Concepts, 3rd Edition, McGraw-Hill, 1998.
'Αλλα βιβλία που είναι μεν καλά, αλλά δεν θα τα προτιμούσα σε σχέση με τα παραπάνω ή των Elmasri-Navathe είναι τα εξής:
- Jeff Ullman and Jennifer Widom, A First Course in Database Systems, Prentice Hall, 1997.
- Hector Garcia-Molina, Jeff Ullman and Jennifer Widom, Database System Implementation, Prentice Hall, 2000.
- Patrick O'Neil, Database Principles, Programming, Performance, Morgan Kaufmann, 1994.
Ο τελικός βαθμός του μαθήματος θα υπολογισθεί ως εξής: 40% οι ασκήσεις και 60% το διαγώνισμα. Για να περάσετε θα χρειαστεί να έχετε τουλάχιστον 5
στο συνολικό βαθμό των ασκήσεων και τουλάχιστον 5 στο διαγώνισμα.
Το τελικό διαγώνισμα θα εστιασθεί στα θέματα που θα έχουν καλυφθεί σε όλη την διάρκεια του εξαμήνου. Η ημερομηνία του θα αποφασισθεί αργότερα.
Τμήμα του μαθήματος είναι η εκτέλεση δύο εργασιών. Αυτές θα πραγματεύονται υλικό που καλύπτουμε στο μάθημα, ώστε να αποκτήσετε όλοι μιά
πραγματική και άμεση εμπειρία. Όποιες ασκήσεις περιλαμβάνουν προγραμματισμό, αυτός θα γίνει στη γλώσσα C ή C++. Τα θέματα των ασκήσεων είναι: α)
άμεση χρήση εγγραφών στον δίσκο, ώστε να γίνει ένα ζέσταμα στην γλώσσα C, β) υλοποίηση μιας στατικής δομής δεδομένων σε αρχείο δίσκου, πίνακα
κατακερματισμού ή άλλης, και γ) υλοποίηση μιας δυναμικής δομής δεδομένων σε αρχείο δίσκου, Β+ δένδρο ή άλλης. Μία από τις δύο παραπάνω μπορεί να
αντικατασταθεί από υλοποίηση μιας απλής μορφής του επιπέδου ενός συστήματος βάσεων δεδομένων που διαχειρίζεται εγγραφές μέσα σε μπλοκ του δίσκου.
Οι εργασίες είναι ατομικές, ή ομαδικές σε ομάδες των δύο ατόμων. Έχετε ελεύθερη επιλογή στην ομάδα που θα ενταχθείτε. Για τα ομαδικά τμήματα
εργασίας, κάθε μέλος της ομάδας θα πάρει ξεχωριστό βαθμό ανάλογα με την συνεισφορά του στο όλο έργο. Στόχος είναι όλα τα μέλη της ομάδας να έχουν
παρόμοια συνεισφορά ώστε να παίρνουν και τον ίδιο βαθμό εργασίας.
Κάτι προφανές: Οποιαδήποτε συζήτηση μεταξύ σας για τα θέματα μιας άσκησης, την θεωρία πάνω στην οποία αυτή βασίζεται, ή και ιδέες για το
πώς μπορεί αυτή να προσεγγιστεί είναι θεμιτές και επιθυμητές, γιατί βοηθάνε στην καλύτερη κατανόηση της όλης ύλης.
Το τελικό προϊόν μιάς άσκησης όμως (κώδικας ή γραπτό) πρέπει να είναι έργο αποκλειστικά της ομάδας (ή του ατόμου) που το υπογράφει. Οποιαδήποτε άλλη
δυσάρεστη κατάσταση σε οποιαδήποτε άσκηση θα σημαίνει μηδενισμό στο μάθημα.
( 30/04/2010: ) Μπορείτε να κρατήσετε τις περσινές ασκήσεις, αλλά και τις δύο. Δεν μπορείτε να κρατήσετε 1 περσινή και να κάνετε την άλλη φέτος.
Σε περίπτωση που επιλέξετε να κρατήσετε τις περσινές ασκήσεις, στείλτε email στο k18 [at] di [dot] uoa [dot] gr, με ό,τι παραδώσατε πέρυσι. Για
να περάσει κάποιος το μάθημα πρέπει να περάσει τη βάση και στο γραπτό και στις ασκήσεις, δηλαδή να έχει μέσο όρο τουλάχιστον 4.5στις δύο
ασκήσεις.