ΤΜΗΜΑ : ΤΕΧΓ'201
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ
ΕΡΓΑΣΙΑ ΔΙΑΚΟΠΩΝ ΧΡΙΣΤΟΥΓΕΝΝΩΝ 2013/2014

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

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

Αγώνες.
Πριν την αρχή του πρωταθλήματος (ειδική επιλογή στο menu της εφαρμογής), γίνεται τυχαία κλήρωση μεταξύ των ομάδων. Οι ομάδες βρίσκονται αντίπαλες δύο φορές κατά τη διάρκεια του πρωταθλήματος, μια για κάθε αγωνιστική περίοδο. Για κάθε αγώνα υπάρχει γηπεδούχος και φιλοξενούμενος (διαφορετικός σε κάθε αγωνιστική περίοδο). Κάθε αγώνας έχει ιδιαίτερα χαρακτηριστικά όπως η ημερομηνία και ώρα διεξαγωγής, το γήπεδο διεξαγωγής, αποτέλεσμα κτλ.

Παίκτες.
Ένας παίκτης αγωνίζεται σε μία ομάδα. Κάθε παίκτης έχει ένα μοναδικό αριθμό ο οποίος τον χαρακτηρίζει καθώς και κάποια ιδιαίτερα χαρακτηριστικά όπως Ονοματεπώνυμο, Πατρώνυμο, Ημ/νία Γέννησης, Εθνικότητα, Ομάδα στην οποία αγωνίζεται, Αριθμός κίτρινων και κόκκινων καρτών (ειδική αντιμετώπιση στην περίπτωση που έχει δεχτεί κόκκινη στον αμέσως προηγούμενο αγώνα), θέση στην οποία αγωνίζεται κτλ. Κάθε ομάδα έχει 20 παίκτες στο δυναμικό της, εκ των οποίων μόνο οι 16 μπορούν να λάβουν μέρος σε ένα αγώνα (11 βασικοί, 5 αναπληρωματικοί για αλλαγές).

Ισχύουν τα παρακάτω :
1) Το Ονοματεπώνυμο/Πατρώνυμο ενός παίκτη, προπονητή ή προέδρου είναι μοναδικά.
2) Το όνομα μια ομάδας είναι μοναδικό.
3) Κάθε παίκτης αγωνίζεται σε μία μόνο ομάδα.
4) Κάθε παίκτης παίζει σε μια θέση. Αποδεκτές θέσεις θεωρούνται οι : Τερματοφύλακας (GK), Αμυντικός (DF), Μέσος (MD) και Επιθετικός (FW).
5) Κάθε προπονητής προπονεί μία μόνο ομάδα.
6) Κάθε πρόεδρος διοικεί μία μόνο ομάδα.
7) Κάθε ομάδα έχει μόνο ένα πρόεδρο, ένα μόνο προπονητή και 20 παίκτες.
8) Για κάθε ομάδα δεν υπάρχουν παίκτες με τον ίδιο αριθμό φανέλας.
9) Μεταξύ δύο ομάδων χ και ψ που συμμετέχουν στο πρωτάθλημα  γίνονται δύο αγώνες (ένας σε κάθε αγωνιστική περίοδο), στον ένα είναι γηπεδούχος η ομάδα χ και στον άλλο η ομάδα ψ.
10) Οι αγώνες διεξάγονται με τυχαίο αποτέλεσμα το οποίο παράγεται από τον υπολογιστή (γεννήτρια ψευδοτυχαίων αριθμών). Σε ένα αγώνα «ρίχνετε» από ένα ζάρι 1D6 (με τιμές 0 έως 5), για κάθε ομάδα, το οποίο αποφασίζει τα τέρματα τα οποία πετυχαίνει η εν λόγω ομάδα (ως εκ τούτου μια ομάδα μπορεί να πετύχει έως και 5 τέρματα μέγιστο σε  ένα αγώνα). Οι τιμές των τερμάτων των ομάδων καθορίζουν και το αποτέλεσμα του αγώνα.
11) Για κάθε τέρμα υπολογίζεται ο παίκτης ο οποίος το πέτυχε (Οι επιθετικοί έχουν 60% πιθανότητα να πετύχουν τέρμα, οι μέσοι 30%, οι αμυντικοί 9% και οι τερματοφύλακες 1%).
12) Ο νικητής ενός αγώνα κερδίζει 3 βαθμούς. Ο ηττημένος 0. Σε περίπτωση ισοπαλίας οι ομάδες μοιράζονται από 1 βαθμό.
13) Σε ένα αγώνα κάθε παίκτης έχει πιθανότητα τραυματισμού 3% (οι επιθετικοί 8%), ώστε να ζητηθεί αλλαγή και να μην συμμετάσχουν στον επόμενο αγώνα.
14) Σε ένα αγώνα κάθε παίκτης έχει πιθανότητα 3% να τιμωρηθεί με κίτρινη κάρτα και 1% με κόκκινη (οι αμυντικοί 5% και 2% αντίστοιχα). Παίκτης ο οποίος συμπληρώνει 3 κίτρινες κάρτες ή 1 κόκκινη δεν συμμετέχει στον επόμενο αγώνα. Αφού ο παίκτης εκτίσει την ποινή του, οι κάρτες διαγράφονται.
15) Οι αγώνες διεξάγονται ημέρα Κυριακή (με βάση το πραγματικό ημερολόγιο) και θεωρούμε ότι οι ομάδες δεν έχουν άλλες υποχρεώσεις. Οι ημερομηνίες διεξαγωγής των αγώνων είναι γνωστές από την αρχή του πρωταθλήματος με βάση την κλήρωση.
16) Το πρωτάθλημα αφορά τις περιόδους από το 2010 - 2011 και μετά και ξεκινά την τελευταία Κυριακή του Αυγούστου κάθε έτους. Μετά την ολοκλήρωση της χειμερινής αγωνιστικής περιόδου, ακολουθεί ανάπαυλα μιας Κυριακής. Επίσης αγώνες δεν διεξάγονται την Κυριακή του Ορθόδοξου Πάσχα και την ημέρα των Χριστουγέννων, της Πρωτοχρονιάς, την 28η Οκτωβρίου και την 25η Μαρτίου εάν αυτές είναι Κυριακές.

ΖΗΤΕΙΤΑΙ :
1) Να σχεδιαστεί το διάγραμμα οντοτήτων / συσχετίσεων για την παραπάνω εφαρμογή. Να καταγραφούν οι υποθέσεις οι οποίες θα γίνουν.
2) Να περιγραφούν όλες οι μη τετριμμένες συναρτησιακές εξαρτήσεις και (αν υπάρχουν) όλες οι πλειότιμες εξαρτήσεις. Να μετατραπεί το διάγραμμα σε σχεσιακό σχήμα. Να γίνει κανονικοποίηση σε 3NF , 4NF ή BCNF. Να γίνει αναλυτική επεξήγηση και να αποδειχθεί ότι όντως το σχήμα βρίσκεται στην κανονική μορφή που έχει επιλεγεί.
3) Να υλοποιηθεί το ανωτέρω σχήμα σε PL/SQL. Ο ορισμός της κάθε σχέσης θα πρέπει να περιλαμβάνει τουλάχιστον : Τα γνωρίσματα και τους τύπους των γνωρισμάτων της σχέσης, Όλους τους περιορισμούς ακεραιότητας, σημασιολογικούς περιορισμούς για τα πεδία τιμών κτλ, όπου αυτό κρίνεται απαραίτητο,        Ορισμοί ευρετηρίων, για συγκεκριμένες σχέσεις/γνωρίσματα. Η επιλογή θα πρέπει να τεκμηριωθεί.

Σημειώνεται ότι θα πρέπει να γίνει ΟΠΩΣΔΗΠΟΤΕ χρήση των ιδιοτήτων των σχέσεων οι οποίες έχουν αναφερθεί παραπάνω, παρ’ αυτά εάν κριθεί απαραίτητο μπορούν να χρησιμοποιηθούν και επιπλέον ιδιότητες η χρησιμότητα των οποίων θα αναλύεται.

Να γραφεί εφαρμογή η οποία :
Θα υπολογίζει και θα εμφανίζει (αφού αποθηκεύσει τα δεδομένα) τις ομάδες ταξινομημένες με βάση τη βαθμολογία που αυτές έλαβαν κατά τη διάρκεια του πρωταθλήματος. Τη βαθμολογία τους. Το σύνολο των αγώνων στους οποίους συμμετείχαν. Οι νίκες, οι ισοπαλίες και οι ήττες τους (εντός και εκτός έδρας). Τα τέρματα που πέτυχαν (εντός, εκτός και σύνολο). Τα τέρματα που δέχτηκαν (εντός, εκτός και σύνολο), καθώς και η διαφορά τερμάτων (παράδειγμα : http://www.superleaguegreece.net/rankfull.htm).

Για κάθε παίκτη θα υπολογίζεται και θα αποθηκεύεται στη βάση αντίστοιχα, ο αριθμός των συμμετοχών του σε αγώνες (εντός, εκτός και σύνολο), τα τέρματα που έχει πετύχει (ή δεχτεί σε περίπτωση τερματοφύλακα), οι κίτρινες και οι κόκκινες κάρτες του, καθώς και οι τραυματισμοί του.

ΠΑΡΑΤΗΡΗΣΕΙΣ
1) Ημερομηνία παράδοσης : Τρίτη 14/1/2014
2) Η εκπόνηση της εργασίας είναι υποχρεωτική και η ημερομηνία παράδοσης είναι δεσμευτική και μη διαπραγματεύσιμη.
3) Η βαθμολογία της εργασίας λαμβάνει το 30% της τελικής βαθμολογίας του μαθήματος.