Οντότητα
Αντικείμενο με φυσική ύπαρξη (π.χ. ένας μαθητής) ή αντικείμενο εννοιολογικά υπαρκτό (π.χ. μάθημα).
Κάθε οντότητα έχει ένα όνομα.
Κάθε οντότητα έχει ιδιότητες που την περιγράφουν (π.χ. η οντότητα Μαθητής έχει Επώνυμο, Όνομα, Ημερομηνία γέννησης, κλπ).
Στις σχεσιακές ΒΔ αναπαριστώνται με πίνακες όπου κάθε πεδίο (στήλη) του πίνακα αντιστοιχεί σε μια ιδιότητα της οντότητας.
Μια συγκεκριμένη οντότητα αντιστοιχεί σε μια εγγραφή (γραμμή) έχει μια τιμή για κάθε μία από τις ιδιότητές της (π.χ., Επώνυμο = «Παπαδόπουλος»).
Για παράδειγμα, η οντότητα Μαθητής έχει τις ιδιότητες: Επώνυμο, Όνομα, Ημερομηνία Γέννησης, Πατρώνυμο, Υπηκοότητα κ.α.
Οι ιδιότητες αυτές αναπαρίστανται σε πίνακα ως εξής:
Επώνυμο | Όνομα | Ημερομηνία Γέννησης | Πατρώνυμο | Υπηκοότητα |
Παπαδόπουλος | Δημήτρης | 25/6/1995 | Νικόλαος | Ελληνική |
Ακεραιότητα Δεδομένων
Για κάθε ιδιότητα της οντότητας ορίζουμε τον τύπο δεδομένων της. Αυτό βοηθάει τη βάση στο να κάνει έλεγχο των δεδομένων του χρήστη. Οι τύποι δεδομένων που χρησιμοποιούμε είναι:
Κείμενο. Μέχρι 255 χαρακτήρες. Το χρησιμοποιούμε όταν έχουμε κείμενο ή κείμενο μαζί με αριθμούς, π.χ. ΖΑΑ6522
Υπόμνημα. Κείμενο χωρίς περιορισμό μεγέθους.
Αριθμός. Μόνο αριθμός, ακέραιος ή δεκαδικός, θετικός ή αρνητικός. Όταν ένα πεδίο είναι αριθμός μπορεί να συμμετέχει σε μαθηματικές πράξεις.
Νομισματική Μονάδα. Πρακτικά είναι αριθμός αλλά μορφοποιείται ώστε να εμφανίζει το σύμβολο του νομίσματος και δύο δεκαδικές θέσεις, π.χ. 32,14€
Ημερομηνία / Ώρα. Μπορεί να κρατήσει ημερομηνία, ώρα ή ημερομηνία και ώρα.
Ναι / Όχι. Χρησιμοποιείται σε όποια περίπτωση μπορούμε να απαντήσουμε με ναι/όχι, ισχύει/δεν ισχύει, αληθές/ψευδές.
Συνημμένο. Επιτρέπει να επισυνάψουμε ένα αρχείο στο πεδίο, π.χ. μια φωτογραφία.
Πρωτεύον Κλειδί
Κάθε πίνακας πρέπει να περιλαμβάνει μια στήλη ή σύνολο στηλών, που να προσδιορίζει μοναδικά κάθε γραμμή που είναι αποθηκευμένη στον πίνακα. Π.χ αριθμός μητρώου μαθητή, αριθμός κυκλοφορίας αυτοκινήτου. Στην ορολογία βάσης δεδομένων, αυτή η πληροφορία ονομάζεται πρωτεύον κλειδί του πίνακα.
Οι τιμές του πρέπει να είναι μοναδικές για κάθε εγγραφή.
Πρέπει να έχει πάντα μια τιμή.
Η τιμή του δε θα μεταβάλλεται.
Σε περίπτωση που καμία ιδιότητα της οντότητας δεν πληροί τους παραπάνω περιορισμούς, προσθέτουμε μία ιδιότητα την οποία ονομάζουμε συνήθως με πρόθεμα Κωδικός_ και το όνομα του πίνακα, π.χ. Κωδικός_Πελάτη.
Στα παραδείγματα και στις ασκήσεις μας θα χρησιμοποιούμε πρωτεύον κλειδί που αποτελείται από μία στήλη και όχι σύνθετο (από πολλές στήλες).
Παράδειγμα
Στον πίνακα Μαθητής με ιδιότητες Επώνυμο, Όνομα, Ημερομηνία Γέννησης, Πατρώνυμο, Υπηκοότητα καμία απ' αυτές δε μπορεί να γίνει πρωτεύον κλειδί γιατί παραβιάζουν τον 1ο περιορισμό. Για το λόγο αυτό, προσθέτουμε μία στήλη που την ονομάζουμε Κωδικός_Μαθητή ή Αριθμός_Μητρώου.
Κωδικός_Μαθητή | Επώνυμο | Όνομα | Ημερομηνία Γέννησης | Πατρώνυμο | Υπηκοότητα |
1 | Παπαδόπουλος | Δημήτρης | 25/6/1995 | Νικόλαος | Ελληνική |
2 | Παπαδόπουλος | Μιχάλης | 15/9/1995 | Γεώργιος | Ελληνική |
3 | Οικονόμου | Δημήτρης | 25/6/1995 | Νικόλαος | Ελληνική |
Άσκηση: Ακεραιότητα Δεδομένων - Πρωτεύον Κλειδί
Άσκηση: Αναγνώριση Οντοτήτων - Ιδιοτήτων
Για τη διαχείριση των επαφών σε ένα τηλέφωνο, ο προγραμματιστής σχεδιάζει να χρησιμοποιήσει μια σχεσιακή ΒΔ. Συγκεκριμένα θα καταχωρεί:
Επαφές που θα εισάγει ο χρήστης. Για κάθε επαφή ενδιαφέρουν τα στοιχεία επώνυμο, όνομα, ψευδώνυμο, ημερομηνία γέννησης, σημειώσεις.
Τηλέφωνα που αντιστοιχούν σε κάθε επαφή. Για κάθε τηλέφωνο ενδιαφέρουν το νούμερο και ο τύπος του. Συνήθεις τύποι είναι: προσωπικό, οικίας, εργασίας, fax
Αναγνωρίστε και ονομάστε τις οντότητες.
Προσδιορίστε τις ιδιότητες κάθε οντότητας.
Προσδιορίστε το πρωτεύον κλειδί κάθε οντότητας.
Δηλώστε τον τύπο κάθε ιδιότητας.
Για κάθε οντότητα φτιάξτε τον πίνακά της.
Εισάγετε μερικές ενδεικτικές εγγραφές σε κάθε πίνακα.