ΤΕΙ ΑΘΗΝΩΝ ΣΧΟΛΗ Σ Ο ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2009-2010 Η/Υ ΙΙΙ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ (Θεωρία) ΜΑΘΗΜΑ 1ο Εισαγωγή στις βάσεις δεδοµένων Αθανασίου Ειρήνη, MSc 1
Εισαγωγή-Ορισµοί Ε ΟΜΕΝΑ (DATA) Γνωστά γεγονότα / περιστατικά που καταγράφονται και έχουν νόηµα ΒΑΣΗ Ε ΟΜΕΝΩΝ (DATABASE) Μία ΟΛΟΚΛΗΡΩΜΕΝΗ συλλογή εδοµένων που συσχετίζονται, η οποία αποθηκεύεται σε δευτερεύουσα Μνήµη ΣΥΣΤΗΜΑ ΙΟΙΚΗΣΗΣ / ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ (DATABASE MANAGEMENT SYSTEM - DBMS) Μια αυτοτελής συλλογή από τµήµατα λογισµικού (προγράµµατα) για την δηµιουργία, επεξεργασία και την συντήρηση βάσεων δεδοµένων ΣΥΣΤΗΜΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ (DATABASE SYSTEM) Το λογισµικό (DBMS) µαζί µε τη Βάση εδοµένων 2
Μια Βάση εδοµένων... Αναπαριστά µια άποψη του πραγµατικού κόσµου Είναι δοµηµένη σε οντότητες και γνωρίσµατα ή χαρακτηριστικά Σχεδιάζεται έτσι ώστε να παρέχει ευκολότερη πρόσβαση στα δεδοµένα Ο σχεδιασµός πρέπει να λαµβάνει υπόψη τις ανάγκες των τελικών χρηστών καθώς και τις λειτουργίες που θα πρέπει να επιτελούνται 3
Παραδείγµατα Χρήσης Β Τράπεζες: Βάση δεδοµένων που διαχειρίζεται συναλλαγές και λογαριασµούς Αερογραµµές: Κρατήσεις, πρόγραµµα πτήσεων Πανεπιστήµια: Εγγραφές, αρχεία φοιτητών, βαθµοί Πωλήσεις: Πελάτες, προϊόντα, αγορές, κατάσταση αποθήκης Βιοµηχανία: Παραγωγή, στοκ, παραγγελίες, αλυσίδα παραγωγής Ανθρώπινοι πόροι: στοιχεία εργαζοµένων, ασφάλιση, φορολογία, µισθοί 4
Ιστορική Αναδροµή (1/4) 1950s (Πρώτη Γενεά - Αρχεία σε Ταινίες) batch processing, κάρτες και ταινίες (σειριακή επεξεργασία) 1960s ( εύτερη Γενεά - Αρχεία σε ίσκους) Εκτεταµένη χρήση των ίσκων»επιστηµονικό Πεδίο Βάσεων εδοµένων Πρώτα Συστήµατα Αρχείων Γενικευµένα Πακέτα Ταξινόµησης εδοµένων ειλή παρουσία Γενικευµένων Λογισµικών Πακέτων Ορισµός των εδοµένων σε Γλώσσα Προγραµµατισµού»COBOL Ανάπτυξη Συστηµάτων Β για Ιδιωτική Χρήση 5
Ιστορική Αναδροµή (2/4) 1970s Τρίτη Γενεά - Προ-Σχεσιακή (Pre-Relational) Τάση για Πρότυπα µε την CODASYL αναφορές προτύπων 1969, 73, 78, 81, 85..,»DBTG (Data Base Task Group) ΑΠΟΘΗΚΕΥΣΗ δεδοµένων ΚΑΙ ΤΩΝ ΟΡΙΣΜΩΝ τους Εµφύτευση προγραµµάτων προσπέλασης γενικής χρήσης σε HOST γλώσσα (COBOL) Συστήµατα ικτύου (NETWORK) και Ιεραρχικά (HIERARCHICAL) Θεωρητικός Ορισµός του Σχεσιακού Μοντέλου (από τον CODD) Ενδιαφέρον από την Ακαδηµαϊκή / Ερευνητική Κοινότητα (Computer Science) Καθαρός ιαχωρισµός µεταξύ «φυσικής» και «λογικής» οργάνωσης Β Θεωρητικές προσεγγίσεις σε Πρακτικά Θέµατα Λειτουργίας Τα πρώτα πιλοτικά Σχεσιακά Συστήµατα (SYSTEM-R, INGRESS) Αναγνώριση του ρόλου της Μοντελοποίησης. Χαρακτηριστικά Συστηµάτων Επεξεργασία Β σε ΧΑΜΗΛΟ επίπεδο (κακό στην παραγωγικότητα, λάθη, κλπ.) 6
Ιστορική Αναδροµή (3/4) 1980-1990s (Τετάρτη Γενεά Σχεσιακό Μοντέλο και Συστήµατα) Relational Database Systems ΥΨΗΛΟΥ επιπέδου, ισχυρότατες Γλώσσες Επεξεργασίας Αναγνώριση της Θεωρίας Βάσεων εδοµένων Αρχιτεκτονικές 3 επιπέδων To DBMS ενσωµατωµένο σε µεγάλα Συστήµατα οσοληψιών (Transactional Systems) π.χ. σε ίκτυα, Τραπεζικά συστήµατα. SQL (Structured Query Language) γλώσσα επεξεργασίας δεδοµένων Εµφάνιση των Αντικειµενοστραφών Συστηµάτων, Ευφυών Συστηµάτων, κλπ. 7
Ιστορική Αναδροµή (4/4) 1990-2000s (Πέµπτη Γενεά Μετά-Σχεσιακή Εποχή) Η εποχή των ΣΥΝΘΕΤΩΝ ΟΝΤΟΤΗΤΩΝ σε Βάσεις εδοµένων (π.χ. πολυµέσα - multimedia) Object-Relational Database Systems Εξυπηρετητές / πελάτες Κατανεµηµένες (Multidatabases) Συστήµατα σε Προσωπικούς Υπολογιστές Συστήµατα στο Internet (Web-based), Java, XML, Αποθήκες εδοµένων (Data Warehouse) 8
Το Σενάριο Επεξεργασίας µε DBMS (Σ Β ) 9
Λειτουργίες Σ Β Ορισµός µιας βάσης δεδοµένων: προδιαγραφή των τύπων, των δοµών και των περιορισµών των δεδοµένων που θα αποθηκευτούν στη Β Κατασκευή µια βάσης δεδοµένων: αποθήκευση των ίδιων των δεδοµένων Χειρισµός (manipulation) µιας βάσης δεδοµένων: υποβολή ερωτήσεων για την ανάκτηση δεδοµένων, ενηµέρωση (νέες εισαγωγές, διαγραφές ή τροποποιήσεις) Άλλες λειτουργίες: ιαµοιρασµός, προστασία από αστοχίες υλικού και λογισµικού, ασφάλεια 10
Γιατί Σ Β ; Παροχή µόνιµης αποθήκευσης Ακεραιότητα εδοµένων και Ασφάλεια Ανεξαρτησία εδοµένων Αποδοτική Προσπέλαση εδοµένων ιαχείριση εδοµένων Ταυτόχρονη προσπέλαση και «ανάρρωση» από σφάλµατα 11
Χαρακτηριστικά και Ιδιότητες των Σ Β εν θα πρέπει να περιλαµβάνει περιττά δεδοµένα (redundant data). Η βάση θα πρέπει να είναι σχεδιασµένη έτσι ώστε τα δεδοµένα που περιλαµβάνει να ανακτώνται εύκολα και γρήγορα. Η βάση θα πρέπει να χαρακτηρίζεται από σύστηµα ασφάλειας (security system) που να απαγορεύει την πρόσβαση στα δεδοµένα µη εξουσιοδοτηµένων ατόµων (προβλήµατα ασφαλείας, ποιος έχει πρόσβαση σε ποιο αρχείο). Η βάση θα πρέπει να µπορεί να διαχειρίζεται ταυτόχρονες προσπελάσεις πάνω στα ίδια δεδοµένα (concurrency control). (Όταν δεν υπάρχει έλεγχος στην ταυτόχρονη χρήση φτάνουµε σε λάθη, π.χ. δύο χρήστες διαβάζουν το υπόλοιπο του λογαριασµού και το αλλάζουν ταυτόχρονα η συνδιαλλαγή πρέπει να γίνεται πλήρως ή καθόλου) Η βάση θα πρέπει να διαθέτει σύστηµα δηµιουργίας αντιγράφων ασφαλείας των δεδοµένων που είναι καταχωρηµένα σε αυτή (backups). 12
Οι χρήστες των Σ Β ιαχειριστές (Database Administrators) Υπεύθυνοι για την διαχείριση της Βάσης (βοηθούν χρήστες να ορίζουν όψεις, επιλέγουν εναλλακτικές δοµές µνήµης και µεθόδους πρόσβασης, επίσης είναι υπεύθυνοι για την ασφάλεια και την ακεραιότητα της Βάσης, για την απόδοση του Συστήµατος, κλπ.) Σχεδιαστές (Database Designers) Υπεύθυνοι για τον Σχεδιασµό και Ανάπτυξη της Βάσης Αναλυτές Συστηµάτων και Προγραµµατιστές (Application Programmers / Systems Analysts) Αναπτύσσουν τις Εφαρµογές Τελικοί Χρήστες (End-Users) Κάνουν χρήσεις των εφαρµογών, κάνουν ερωταποκρίσεις, κλπ. Περιστασιακοί (CASUAL USERS), Παραµετρικοί (PARAMETRIC) (π.χ., ταµίας τραπέζης προκαθορισµένοι από την εφαρµογή) και Εξειδικευµένοι (SOPHISTICATED) 13
Παραδείγµατα Σ Β 14
Πλήρης ιαδικασία Ανάπτυξης Β 15
Ανάλυση Απαιτήσεων Η φάση κατά την οποία συγκεντρώνονται οι απαραίτητες πληροφορίες για: το σχεδιασµό της Βάσης εδοµένων τον καθορισµό των προδιαγραφών της εφαρµογής Οι προδιαγραφές πρέπει να καθοριστούν όσο το δυνατόν σαφέστερα και πληρέστερα, διότι: αλλαγές στις προδιαγραφές κατά τη διάρκεια της υλοποίησης καταναλώνουν χρόνο και πόρους 16
Ορισµός Βάσης εδοµένων Ορίζονται: Οι Οντότητες Τα Χαρακτηριστικά Οι µεταξύ τους Συσχετίσεις Τα Ερωτήµατα που θα θέσουµε στην βάση 17
Βήµα 1ο: Οι Οντότητες Οντότητα είναι ένα αντικείµενο που αναπαριστάται στην Β και µπορεί να διαχωριστεί πλήρως από τα υπόλοιπα δεδοµένα Αντιπροσωπεύει ένα αντικείµενο ή µια έννοια του πραγµατικού κόσµου Μια οντότητα αντιπροσωπεύει πολλά πράγµατα τα οποία µοιράζονται κοινά χαρακτηριστικά. Πχ δύο διαφορετικοί φοιτητές είναι δύο στιγµιότυπα της οντότητας Φοιτητής 18
Βήµα 2ο: Γνωρίσµατα Ένα γνώρισµα περιγράφει µία ιδιότητα κάποιας οντότητας Κατά την καταγραφή των γνωρισµάτων µιας οντότητας πρέπει να ληφθούν υπόψη όλες οι πληροφορίες που θα χρειαστεί να αποθηκευτούν για κάθε οντότητα, έτσι ώστε να επιτελούνται οι λειτουργίες που απαιτούνται από τους τελικούς χρήστες 19
Βήµα 3ο: Συσχετίσεις µεταξύ Οντοτήτων (1/2) Μια συσχέτιση µεταξύ οντοτήτων αντιπροσωπεύει µια αλληλεπίδραση µεταξύ τους. Για παράδειγµα η σχέση «σπουδάζει σε» αποτελεί µια συσχέτιση µεταξύ των οντοτήτων Σχολή και Φοιτητής Τυπικά µια συσχέτιση αντιπροσωπεύει αυτό που στον πραγµατικό κόσµο εκφράζεται µε ρήµα 20
Βήµα 3ο: Συσχετίσεις µεταξύ Οντοτήτων (2/2) Αν η συσχέτιση είναι υποχρεωτική εκφράζεται µε το ρήµα πρέπει. Πχ κάθε φοιτητής πρέπει να σπουδάζει σε µια σχολή. Αυτό είναι υποχρεωτική συσχέτιση των οντοτήτων φοιτητής και σχολή Αν η συσχέτιση δεν είναι υποχρεωτική εκφράζεται µε το ρήµα µπορεί. Πχ κάποιος φοιτητής µπορεί να έχει δανειστεί ένα βιβλίο. Αυτό είναι συσχέτιση µη υποχρεωτική µεταξύ των οντοτήτων φοιτητής και βιβλίο 21
Βήµα 4ο: Καταγραφή Πιθανών Ερωτηµάτων Η διαδικασία καταγραφής των ερωτηµάτων που απαιτούνται εξαρτάται από τις λειτουργίες που θα χρειάζεται να εκτελούνται από τη βάση Καθορίζονται από τις απαιτήσεις των τελικών χρηστών 22
Αναγνώριση Οντοτήτων και Συσχετίσεων Ο χαρακτηρισµός ενός αντικειµένου ως οντότητα ή γνώρισµα µπορεί να αποδειχτεί δύσκολος. Εξαρτάται πάντα από τις απαιτήσεις των τελικών εφαρµογών. Γενικά: Οι οντότητες περιέχουν περιγραφική πληροφορία για ένα φυσικό αντικείµενο Τα γνωρίσµατα είτε περιγράφουν, είτε ταυτοποιούν µια οντότητα Οι σχέσεις αποτελούν συσχετισµούς οντοτήτων 23
Παράδειγµα 1 (Περιγραφή 1/2) Θεωρείστε το παρακάτω σύνολο απαιτήσεων για τη βάση δεδοµένων ενός Συνεργείου Αυτοκινήτων. Το συνεργείο απασχολεί ένα σύνολο από υπαλλήλους. Για τους υπαλλήλους µας ενδιαφέρει να κρατάµε το ονοµατεπώνυµο, τη διεύθυνση, το τηλέφωνο, την ειδικότητα και το µισθό. Οι πελάτες κλείνουν ραντεβού µε το συνεργείο για την επισκευή του αυτοκινήτου τους. Για κάθε πελάτη θέλουµε να ξέρουµε: ονοµατεπώνυµο, διεύθυνση και τηλέφωνο. Για το ραντεβού κρατάµε πληροφορία για: την ηµεροµηνία, την ώρα, µια µικρή περιγραφή του προβλήµατος. Για το αυτοκίνητο θέλουµε να ξέρουµε: τη µάρκα, το µοντέλο, τη χρονολογία κατασκευής, τον αριθµό κυκλοφορίας και τον αριθµό πλαισίου του. Κάθε πελάτης µπορεί να φέρει περισσότερα από ένα αυτοκίνητα για επισκευή. 24
Παράδειγµα 1 (Περιγραφή 2/2) Σε κάθε αυτοκίνητο γίνεται µία επισκευή, για την οποία κρατάµε τα εξής στοιχεία: ηµεροµηνία έναρξης επισκευής, ηµεροµηνία λήξης επισκευής και περιγραφή. Η επισκευή γίνεται από κάποιον υπάλληλο. Το συνεργείο διαθέτει ανταλλακτικά τα οποία χρησιµοποιούνται στις επισκευές των αυτοκινήτων. Για το κάθε ανταλλακτικό κρατάµε στοιχεία για: τον τύπο, τον κωδικό, το κόστος και την ποσότητα των αποθεµάτων. Μας ενδιαφέρει να ξέρουµε ποια και πόσα ανταλλακτικά χρησιµοποιήθηκαν σε κάθε επισκευή. Κάθε επισκευή έχει ένα συνολικό κόστος που προκύπτει από το άθροισµα του κόστους των ανταλλακτικών και του κόστους εργασίας. Μας ενδιαφέρει να διατηρούµε στοιχεία για τις οφειλές κάθε πελάτη 25
Παράδειγµα 1 : Οντότητες Υπάλληλος Πελάτης Αυτοκίνητο Επισκευή Ανταλλακτικό Οφειλή 26
Παράδειγµα 1 : Χαρακτηριστικά Υπάλληλος Όνοµα Επώνυµο ιεύθυνση Τηλέφωνο Ειδικότητα Μισθό Πελάτης ΑΦΜ Τηλέφωνο Πόλη ιεύθυνση Όνοµα Επώνυµο Επισκευή Ηµ/νία έναρξης Ηµ/νία λήξης Περιγραφή Υπάλληλος Αυτοκίνητο Συνολικό κόστος 27
Παράδειγµα 1 : Συσχετίσεις Ο πελάτης Έχει οφειλές Έχει αυτοκίνητο Κλείνει ραντεβού Κατά την διάρκεια συγκεκριµένης επισκευής Επισκευάζεται αυτοκίνητο Χρησιµοποιούνται ανταλλακτικά Απασχολούνται υπάλληλοι 28
Παράδειγµα 1 : Πιθανά Ερωτήµατα Ποια ραντεβού κλείστηκαν σε συγκεκριµένη ηµεροµηνία και ποια τα χαρακτηριστικά του πελάτη που τα έκλεισε Ποια ηµεροµηνία έγινε η εισαγωγή στο συνεργείο αυτοκινήτου µε συγκεκριµένο αριθµό κυκλοφορίας Ποια ανταλλακτικά χρησιµοποιήθηκαν σε συγκεκριµένη επισκευή Ποια αυτοκίνητα έχει συγκεκριµένος πελάτης 29
Παράδειγµα 2 (Περιγραφή 1/2) Καλείστε να µηχανογραφήσετε ένα ραδιοφωνικό σταθµό. Καταγραφή όλου του προσωπικού που εργάζεται στο ραδιοφωνικό σταθµό. Για τον κάθε εργαζόµενο θα πρέπει να διατηρούνται τα προσωπικά του στοιχεία (ΑΦΜ, αριθµός ταυτότητας, ονοµατεπώνυµο, ταχυδροµική ή/και ηλεκτρονική διεύθυνση, τηλέφωνα), η θέση του στο σταθµό, η εκποµπή που πιθανό να παρουσιάζει κτλ. Καταγραφή όλων των δίσκων και των τραγουδιών που υπάρχουν στο σταθµό και σύνδεση µεταξύ τραγουδιών, δίσκων και τραγουδιστών. Επίσης, θα πρέπει να φαίνεται σε ποια ζώνη (εκποµπή και παραγωγό) αντιστοιχεί το κάθε είδος δισκογραφίας. 30
Παράδειγµα 2 (Περιγραφή 2/2)... Καταγραφή όλων των τηλεφώνων του σταθµού. Τα τηλέφωνα αυτά µπορεί να είναι των εργαζοµένων στο σταθµό, των πελατών, των δηµόσιων ή ιδιωτικών φορέων ή οποιουδήποτε άλλου σχετίζεται µε το σταθµό. Για κάθε τηλέφωνο θα πρέπει να διατηρούνται όλα τα στοιχεία που αφορούν τον κάτοχό του: ονοµατεπώνυµο, αριθµός ταυτότητας, ΑΦΜ, ταχυδροµική και ηλεκτρονική διεύθυνση, σχέση του µε την εταιρία και άλλα που θα σκεφτείτε εσείς. Καταγραφή όλων των χορηγών της κάθε εκποµπής (ένας χορηγός συνδέεται πάντα µε την εκποµπή και τον παραγωγό και προφανώς έχει ένα τηλέφωνο). Κάθε εκποµπή µπορεί να έχει από έναν µέχρι πέντε χορηγούς 31
Βάση εδοµένων Ραδιοφωνικού Σταθµού Καταγραφή όλου του προσωπικού που εργάζεται στο ραδιοφωνικό σταθµό. Για τον κάθε εργαζόµενο θα πρέπει να διατηρούνται τα προσωπικά του στοιχεία (ΑΦΜ, αριθµός ταυτότητας, ονοµατεπώνυµο, ταχυδροµική ή/και ηλεκτρονική διεύθυνση, τηλέφωνα), η θέση του στο σταθµό, η εκποµπή που πιθανό να παρουσιάζει κτλ. Καταγραφή όλων των δίσκων και των τραγουδιών που υπάρχουν στο σταθµό και σύνδεση µεταξύ τραγουδιών, δίσκων και τραγουδιστών. Επίσης, θα πρέπει να φαίνεται σε ποια ζώνη (εκποµπή και παραγωγό) αντιστοιχεί το κάθε είδος δισκογραφίας. Καταγραφή όλων των τηλεφώνων του σταθµού. Τα τηλέφωνα αυτά µπορεί να είναι των εργαζοµένων στο σταθµό, των πελατών, των δηµόσιων ή ιδιωτικών φορέων ή οποιουδήποτε άλλου σχετίζεται µε το σταθµό. Για κάθε τηλέφωνο θα πρέπει να διατηρούνται όλα τα στοιχεία που αφορούν τον κάτοχό του: ονοµατεπώνυµο, αριθµός ταυτότητας, ΑΦΜ, ταχυδροµική και ηλεκτρονική διεύθυνση, σχέση του µε την εταιρία και άλλα που θα σκεφτείτε εσείς. Καταγραφή όλων των χορηγών της κάθε εκποµπής (ένας χορηγός συνδέεται πάντα µε την εκποµπή και τον παραγωγό και προφανώς έχει ένα τηλέφωνο). Κάθε εκποµπή µπορεί να έχει από έναν µέχρι πέντε χορηγούς Εντοπίστε τις οντότητες, τα χαρακτηριστικά, τις συσχετίσεις και τα πιθανά ερωτήµατα του προβλήµατος. 32
Παράδειγµα 2 : Οντότητες Τεχνικός Υπάλληλος Γραφείου Ραδιοφωνικός Παραγωγός Χορηγός Εκποµπή Τραγούδι Καλλιτέχνης ίσκος Τηλεφωνικός Κατάλογος 33
Παράδειγµα 2 : Χαρακτηριστικά Τραγούδι Είδος µουσικής ίσκος Τραγουδιστής Τίτλος Ηµ/νια Κυκλοφορίας Ραδιοφωνικός Παραγωγός Όνοµα Επώνυµο ΑΦΜ ΑΤ Εκποµπή Χορηγός Επωνυµία ιεύθυνση Τηλέφωνο Ονοµ/µο υπευθύνο υ 34
Παράδειγµα 2 : Συσχετίσεις Ένας ή περισσότεροι χορηγοί χορηγούν µία εκποµπή Ένας ραδιοφωνικός παραγωγός τουλάχιστον παρουσιάζει µία ή περισσότερες εκποµπές Ένα τραγούδι παίζει σε κάποια εκποµπή Ένα τραγούδι ανήκει σε έναν ή περισσότερους δίσκους Ένας καλλιτέχνης έχει πολλά τραγούδια Ένας τεχνικός υποστηρίζει πολλές εκποµπές 35
Παράδειγµα 2 : Πιθανά Ερωτήµατα Σε ποιες εκποµπές παίζει ένα συγκεκριµένο τραγούδι Ποιες εκποµπές έχουν παραπάνω από έναν ραδιοφωνικό παραγωγό Ποιοι είναι οι ραδιοφωνικοί παραγωγοί στις εκποµπές που χορηγεί ένας συγκεκριµένος χορηγός Ποια είναι τα δηµοφιλέστερα τραγούδια των εκποµπών Ποιες εκποµπές υποστηρίζονται από συγκεκριµένο τεχνικό Ποια τραγούδια ακούστηκαν σε συγκεκριµένη εκποµπή 36
Παράδειγµα 3 Θέλουµε να υλοποιήσουµε µια βάση για µία βιβλιοθήκη. Θα αποθηκεύουµε πληροφορία για τα βιβλία τους συγγραφείς και τις κατηγορίες βιβλίων 37
Παράδειγµα 3 : Οντότητες Βιβλίο: Η οντότητα βιβλίο καταγράφει τα στοιχεία των βιβλίων και τα γνωρίσµατά της είναι πχ τίτλος, περίληψη, έκδοση, εξώφυλλο κλπ Συγγραφέας: Η οντότητα περιγράφει τον συγγραφέα και περιέχει τα ατοµικά στοιχεία, όπως πχ όνοµα, επώνυµο, έτος γέννησης-θανάτου, βιογραφικό, web site, κλπ Κατηγορία: Περιγράφει τις κατηγορίες στις οποίες έχουν διαχωριστεί τα βιβλία και περιέχει στοιχεία όπως όνοµα, περιγραφή κατηγορίας, (γονική κατηγορία) κλπ. 38
Παράδειγµα 3 : Χαρακτηριστικά Βιβλίο Τίτλος ISBN Έκδοση Περίληψη Εξώφυλλο Συγγραφέας Κατηγορία Ονοµασία Περιγραφή Γονική κατηγορία Συγγραφέας Όνοµα Επώνυµο Έτος γέννησης Έτος θανάτου Βιογραφικό Web site 39
Παράδειγµα 3 : Συσχέτιση Οντοτήτων Κάθε βιβλίο ανήκει σε µία κατηγορία Κάθε συγγραφέας έχει γράψει τουλάχιστον ένα βιβλίο 40
Παράδειγµα 3 : Πιθανά Ερωτήµατα Τα βιβλία που ανήκουν σε µία κατηγορία Η βιβλιογραφία ενός συγγραφέα Ο συγγραφέας ενός βιβλίου Οι υποκατηγορίες µιας κατηγορίας Οι συγγραφείς που είναι «εν ζωή» Τα βιβλία που έχουν ξεπεράσει την 10η έκδοση Τα βιβλία που περιέχουν στην περίληψή τους τις λέξεις «βάση δεδοµένων» 41