LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:school:lessons:db:theory:entity

Οντότητα

  • Αντικείμενο με φυσική ύπαρξη (π.χ. ένας μαθητής) ή αντικείμενο εννοιολογικά υπαρκτό (π.χ. μάθημα).
  • Κάθε οντότητα έχει ένα όνομα.
  • Κάθε οντότητα έχει ιδιότητες που την περιγράφουν (π.χ. η οντότητα Μαθητής έχει Επώνυμο, Όνομα, Ημερομηνία γέννησης, κλπ).
  • Στις σχεσιακές ΒΔ αναπαριστώνται με πίνακες όπου κάθε πεδίο (στήλη) του πίνακα αντιστοιχεί σε μια ιδιότητα της οντότητας.
  • Μια συγκεκριμένη οντότητα αντιστοιχεί σε μια εγγραφή (γραμμή) έχει μια τιμή για κάθε μία από τις ιδιότητές της (π.χ., Επώνυμο = «Παπαδόπουλος»).

Για παράδειγμα, η οντότητα Μαθητής έχει τις ιδιότητες: Επώνυμο, Όνομα, Ημερομηνία Γέννησης, Πατρώνυμο, Υπηκοότητα κ.α.

Οι ιδιότητες αυτές αναπαρίστανται σε πίνακα ως εξής:

Επώνυμο Όνομα Ημερομηνία Γέννησης Πατρώνυμο Υπηκοότητα
Παπαδόπουλος Δημήτρης 25/6/1995 Νικόλαος Ελληνική

Ακεραιότητα Δεδομένων

Για κάθε ιδιότητα της οντότητας ορίζουμε τον τύπο δεδομένων της. Αυτό βοηθάει τη βάση στο να κάνει έλεγχο των δεδομένων του χρήστη. Οι τύποι δεδομένων που χρησιμοποιούμε είναι:

  • Κείμενο. Μέχρι 255 χαρακτήρες. Το χρησιμοποιούμε όταν έχουμε κείμενο ή κείμενο μαζί με αριθμούς, π.χ. ΖΑΑ6522
  • Υπόμνημα. Κείμενο χωρίς περιορισμό μεγέθους.
  • Αριθμός. Μόνο αριθμός, ακέραιος ή δεκαδικός, θετικός ή αρνητικός. Όταν ένα πεδίο είναι αριθμός μπορεί να συμμετέχει σε μαθηματικές πράξεις.
  • Νομισματική Μονάδα. Πρακτικά είναι αριθμός αλλά μορφοποιείται ώστε να εμφανίζει το σύμβολο του νομίσματος και δύο δεκαδικές θέσεις, π.χ. 32,14€
  • Ημερομηνία / Ώρα. Μπορεί να κρατήσει ημερομηνία, ώρα ή ημερομηνία και ώρα.
  • Ναι / Όχι. Χρησιμοποιείται σε όποια περίπτωση μπορούμε να απαντήσουμε με ναι/όχι, ισχύει/δεν ισχύει, αληθές/ψευδές.
  • Συνημμένο. Επιτρέπει να επισυνάψουμε ένα αρχείο στο πεδίο, π.χ. μια φωτογραφία.

Πρωτεύον Κλειδί

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

  1. Οι τιμές του πρέπει να είναι μοναδικές για κάθε εγγραφή.
  2. Πρέπει να έχει πάντα μια τιμή.
  3. Η τιμή του δε θα μεταβάλλεται.

Σε περίπτωση που καμία ιδιότητα της οντότητας δεν πληροί τους παραπάνω περιορισμούς, προσθέτουμε μία ιδιότητα την οποία ονομάζουμε συνήθως με πρόθεμα Κωδικός_ και το όνομα του πίνακα, π.χ. Κωδικός_Πελάτη.

Στα παραδείγματα και στις ασκήσεις μας θα χρησιμοποιούμε πρωτεύον κλειδί που αποτελείται από μία στήλη και όχι σύνθετο (από πολλές στήλες).

Παράδειγμα

Στον πίνακα Μαθητής με ιδιότητες Επώνυμο, Όνομα, Ημερομηνία Γέννησης, Πατρώνυμο, Υπηκοότητα καμία απ' αυτές δε μπορεί να γίνει πρωτεύον κλειδί γιατί παραβιάζουν τον 1ο περιορισμό. Για το λόγο αυτό, προσθέτουμε μία στήλη που την ονομάζουμε Κωδικός_Μαθητή ή Αριθμός_Μητρώου.

Κωδικός_Μαθητή Επώνυμο Όνομα Ημερομηνία Γέννησης Πατρώνυμο Υπηκοότητα
1 Παπαδόπουλος Δημήτρης 25/6/1995 Νικόλαος Ελληνική
2 Παπαδόπουλος Μιχάλης 15/9/1995 Γεώργιος Ελληνική
3 Οικονόμου Δημήτρης 25/6/1995 Νικόλαος Ελληνική

Άσκηση: Ακεραιότητα Δεδομένων - Πρωτεύον Κλειδί

FIXME

Άσκηση: Αναγνώριση Οντοτήτων - Ιδιοτήτων

Για τη διαχείριση των επαφών σε ένα τηλέφωνο, ο προγραμματιστής σχεδιάζει να χρησιμοποιήσει μια σχεσιακή ΒΔ. Συγκεκριμένα θα καταχωρεί:

  • Επαφές που θα εισάγει ο χρήστης. Για κάθε επαφή ενδιαφέρουν τα στοιχεία επώνυμο, όνομα, ψευδώνυμο, ημερομηνία γέννησης, σημειώσεις.
  • Τηλέφωνα που αντιστοιχούν σε κάθε επαφή. Για κάθε τηλέφωνο ενδιαφέρουν το νούμερο και ο τύπος του. Συνήθεις τύποι είναι: προσωπικό, οικίας, εργασίας, fax
  1. Αναγνωρίστε και ονομάστε τις οντότητες.
  2. Προσδιορίστε τις ιδιότητες κάθε οντότητας.
  3. Προσδιορίστε το πρωτεύον κλειδί κάθε οντότητας.
  4. Δηλώστε τον τύπο κάθε ιδιότητας.
  5. Για κάθε οντότητα φτιάξτε τον πίνακά της.
  6. Εισάγετε μερικές ενδεικτικές εγγραφές σε κάθε πίνακα.
el/school/lessons/db/theory/entity.txt · Last modified: Y/m/d H:i by aris.fergadis