Βάσεις Δεδομένων. Ενότητα 5: Σημασιολογικός Σχεδιασμός. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Σχετικά έγγραφα
Βάσεις Δεδομένων. Ενότητα 7.1: Structured Query Language - 1 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 3: Σχεδιασμός και Διαχείριση Βάσεων Δεδομένων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 4: Μοντελοποίηση Συσχέτισης Οντοτήτων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων. Ενότητα 7.2: Structured Query Language - 2 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Τεχνοοικονομική Ανάλυση Οργάνωση και Διοίκησης Έργων και Επιχειρήσεων

Βάσεις Δεδομένων Ενότητα 4

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

Βάσεις Δεδομένων. Ενότητα 6: Κανονικοποίηση. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Σχεδίαση Βάσεων Δεδομένων

Ηλεκτρονικοί Υπολογιστές II

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Λογιστικές Εφαρμογές Εργαστήριο

Το Σχεσιακό Μοντέλο Βάσεων Δεδομένων

Λογιστικές Εφαρμογές Εργαστήριο

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1

Διάγραμμα Οντοτήτων - Συσχετίσεων

Σχεδίαση Σχεσιακών ΒΔ

ΔΙΑΓΡΑΜΜΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

Εισαγωγή στις Βάσεις Δεδομζνων II

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Υδραυλικά & Πνευματικά ΣΑΕ

Εισαγωγή στην πληροφορική

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Φυσική Σχεδίαση Υλοποίηση βάσης

Μέθοδοι Βελτιστοποίησης

Βάσεις Δεδομένων (Databases)

ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ

Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

ΕΝΝΟΙΟΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΔΕΔΟΜΕΝΩΝ (6)

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στα Πληροφοριακά Συστήματα

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή στα Πληροφοριακά Συστήματα

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Διάλεξη 06: Σχεσιακό Μοντέλο I (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 6 η : Ταξινόμηση & Ομαδοποίηση Δεδομένων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 8 : Βάσεις Δεδομένων (2/2) Δρ.

Βάσεις Περιβαλλοντικών Δεδομένων


Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΠΛΗΡΟΦΟΡΙΚΗ. Ενότητα: Εργαστηριακές Ασκήσεις. Καθηγήτρια: Ι.

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Ηλεκτρονικοί Υπολογιστές II

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Βάσεις Δεδομένων Ι. 2 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

Σχεδιασμός Βάσεων Δεδομένων

Βιομηχανικοί Ελεγκτές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Επιχειρησιακές Επικοινωνίες

Ιστορία της μετάφρασης

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Βάσεις Δεδομένων Εισαγωγή

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στους Αλγορίθμους

Ανοικτά Ακαδημαϊκά Μαθήματα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οργάνωση και Διοίκηση Πωλήσεων

Βάσεις δεδομένων. (3 ο μάθημα) Ηρακλής Βαρλάμης

Μέθοδοι Βελτιστοποίησης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Φυσική. Ενότητα # 6: Βαρυτικό Πεδίο

Σχεδίαση Βάσεων. Τεχνητά, Σύνθετα, και Δευτερεύοντα Μοναδικά Χαρακτηριστικά (UIDs, Unique IDentifiers) Artificial, Composite, and Secondary UIDs

Περιβαλλοντική Χημεία

Εισαγωγή στους Αλγορίθμους

Αρχεία και Βάσεις Δεδομένων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Σύγχρονες Εφαρμογές Τεχνολογιών της Πληροφορίας και των Επικοινωνιών

Ανάλυση Λογιστικών Καταστάσεων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Μετατροπή Διαγράμματος Οντοτήτων Συσχετίσεων (E-R) σε σχεσιακό. Φροντιστήριο 3 ο

Ενδεικτικές λύσεις ασκήσεων

Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων

Σχεδιασμός Κατασκευών Ενότητα 2: Βασικές Έννοιες Τεχνικών Συστημάτων & Οργάνωση Ανάπτυξης ενός Προϊόντος

Εισαγωγή στα Πληροφοριακά Συστήματα

Συστήματα Υποστήριξης Αποφάσεων Ενότητα # 1: Μία Ανατομία των Αποφάσεων

Ηλεκτρονικοί Υπολογιστές II

Βάσεις Δεδομένων Ι. Παραδείγματα. Γεώργιος Ευαγγελίδης, Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων (Databases)

Εργαστήριο Βάσεων Δεδομένων. Relational Model Σχεσιακό Μοντέλο

Επιχειρησιακή Έρευνα

Πληροφορική. Εργαστηριακή Ενότητα 5 η : Μαθηματικοί Τύποι. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΜΕΘΟΔΟΛΟΓΙΑ ΕΡΕΥΝΑΣ ΓΙΑ ΔΙΟΙΚΗΤΙΚΑ ΣΤΕΛΕΧΗ

Ηλεκτρονικοί Υπολογιστές II

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Βάσεις Δεδομένων Ενότητα 5: Σημασιολογικός Σχεδιασμός Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί Ενότητας Ο φοιτητής που θα παρακολουθήσει με επιτυχία την ενότητα αυτή θα διαθέτει τις απαιτούμενες θεωρητικές και πρακτικές γνώσεις ώστε: Να αναπτύσσει εφαρμογές Βάσεων Δεδομένων σε όλα τα δημοφιλή Συστήματα Διαχείρισης Σχεσιακών Βάσεων Δεδομένων (SQL SERVER, ORACLE, MySQL, ACCESS). 4

Περιεχόμενα Ενότητας Τεχνικές για τον Σημασιολογικό Σχεδιασμό Τεχνικές για το Λογικό Σχεδιασμό Ο Φυσικός Σχεδιασμός της Β.Δ. Μελέτες Περίπτωσης 5

Μελέτη Περίπτωσης Σας έχει προσεγγίσει ένα πανεπιστήμιο για το σχεδιασμό και την ανάπτυξη εφαρμογής σχεσιακής βάσης δεδομένων που θα παρέχει πληροφορίες για τα μαθήματα που προσφέρει, τα ακαδημαϊκά τμήματα που διεξάγουν τα μαθήματα, το ακαδημαϊκό προσωπικό και τους εγγεγραμμένους φοιτητές. Το σύστημα θα χρησιμοποιείται κυρίως από τους φοιτητές και το ακαδημαϊκό προσωπικό. Η συλλογή και η ανάλυση απαιτήσεων που υλοποιήθηκε στη διαδικασία σχεδιασμού της βάσης δεδομένων παρέχει τις ακόλουθες απαιτήσεις...\coursework\coursework_university TRA.doc 6

Σημασιολογικός Σχεδιασμός Βήμα 1: Δημιουργούμε ένα σημασιολογικό μοντέλο δεδομένων για κάθε χρήστη Βήμα 1.1 Προσδιορίζουμε τους τύπους οντοτήτων Βήμα 1.2 Προσδιορίζουμε τους τύπους σχέσεων Βήμα 1.3 Προσδιορίζουμε τα χαρακτηριστικά των τύπων οντοτήτων και των σχέσεων Βήμα 1.4 Προσδιορίζουμε τα πεδία τιμών των χαρακτηριστικών Βήμα 1.5 Καθορίζονται τα υποψήφια και τα πρωτεύοντα κλειδιά 7

Σημασιολογικός Σχεδιασμός (2) Βήμα 1: Δημιουργούμε ένα σημασιολογικό μοντέλο δεδομένων για κάθε χρήστη Βήμα 1.6 Ελέγχουμε το μοντέλο Βήμα 1.8 Ελέγχουμε ότι το μοντέλο ικανοποιεί τις ανάγκες συναλλαγών Βήμα 1.9 Αναθεώρηση του μοντέλου δεδομένων σε συνεργασία με τους χρήστες 8

Η Μελέτη Περίπτωσης - Οντότητες Οντότητες και τα Χαρακτηριστικά τους Department {deptname, phone, faxno, location} deptname, phone, faxno unique Course {ccode, title, duration} ccode, title - unique Staff {staffno, name (first, last), address, phone, officeno, sex, salary, post, computerid, qualifications} staffno, phone, computerid - unique qualifications - multi-valued Student {matericno, name(first, last), address (town, street, postcode), dob, sex, loan, computerid} matericno, computerid - unique name, address - composite Module {mcode, title, startdate, enddate, texts, assessment (coursework, exam)} mcode, title - unique texts - multi-valued assessment - composite Next-Of-Kin {name, phone, relationship} name - partial key - weak entity 9

Μελέτη Περίπτωσης - Σχέσεις Runs {(Department, Course), (1..*), (1..1)} Κάθε Σχολή (participation: 1) τρέχει περισσότερα από ένα τμήματα (cardinality: *); Κάθε τμήμα (participation: 1) λειτουργεί σε μία και μόνο μία Σχολή (cardinality: 1); Cardinality ratio: 1:*. Employs {Department, Staff), (1..*), (1..1)} Κάθε Σχολή (participation: 1) απασχολεί πολλά μέλη του εκπαιδευτικού προσωπικού (cardinality: *); Κάθε μέλος του Εκπαιδευτικού προσωπικού (participation: 1) εργάζεται σε μια Σχολή(cardinality: 1); Cardinality ratio: 1:*. Uses {(Course, module), (1..*), (0..1)} Κάθε τμήμα (participation:1) χρησιμοποιεί περισσότερα από ένα μαθήματα (cardinality: *); Όχι όλα τα μαθήματα (participation: 0) χρησιμοποιούνται στο τμήματα αλλά εφόσον χρησιμοποιούνται αυτό γίνεται από ένα τμήμα μόνο. (cardinality: 1); Cardinality ratio: 1:*. Undertake {(Student, Module), (1..*), (0..*)}; Attribute: performance; Κάθε φοιτητής (participation: 1) δηλώνει περισσότερα από ένα μαθήματα (cardinality: *); Δεν δηλώνονται όλα τα μαθήματα (participation: 0) και ένα μάθημα μπορεί να δηλωθεί από περισσότερους από έναν φοιτητές (cardinality: *); Cardinality ratio: *:*. 10

Μελέτη Περίπτωσης Σχέσεις (2) Teaches {(Staff, Module), (1..*), (0..*)}; Attribute: Hours; Κάθε μέλος του Εκπαιδευτικού προσωπικού διδάσκει τουλάχιστον ένα μάθημα (participation: 1) και ένα μάθημα μπορεί να διδαχθεί από περισσότερους από έναν καθηγητές (cardinality: *); Δεν διδάσκονται όλα τα μαθήματα (participation:0) αλλά όταν διδάσκεται ένα μάθημα τότε μπορεί να διδαχθεί από περισσότερους από έναν καθηγητές (cardinality: *); Cardinality ratio: *:*. Leads {(Staff, Course), (0..1), (1..1)} Δεν διοικούν όλα τα μέλη Εκπαιδευτικού Προσωπικού τμήμα (participation: 0) αλλά μπορούν να διοικούν το περισσότερο ένα τμήμα (cardinality: 1); Κάθε τμήμα (participation: 1) διοικείται από ένα (το πολύ) μέλος του εκπαιδευτικού προσωπικού (cardinality: 1); Cardinality ratio: 1:1. Enrol {(Student, Course), (1..1), (1..*)} Κάθε φοιτητής (participation: 1) εγγράφεται σε ένα μόνο τμήμα (cardinality: 1); Κάθε τμήμα (participation: 1) έχει περισσότερους από έναν φοιτητές (cardinality: *); Cardinality ratio: 1:*. Coordinates {(Staff, Module), (0..*), (1..1)} Δεν είνει υπεύθυνο όλο το εκπαιδευτικό προσωπικό για μαθήματα (participation: 0), αλλά μπορεί να είναι υπεύθυνο για περισσότερα από ένα μαθήματα (cardinality: *); Κάθε μάθημα (participation: 1) συντοντίζεται από ένα (το πολύ) μέλος του Εκπαιδευτικού Προσωπικού (cardinality: 1); Cardinality ratio: 1:*. 11

Μελέτη Περίπτωσης Σχέσεις (3) Manages {(Staff, Department), (0..1), (1..1)}; Attribute: startdate; Δεν είναι όλο το προσωπικό (participation: 0) υπεύθυνο για τη Διοίκηση Σχολής αλλά μπορεί να είναι διευθυντής σε μια το πολύ σχολή (cardinality: 1); Κάθε Σχολή (participation: 1) διοικείται από ένα (το πολύ) μέλος του Εκπαιδευτικού προσωπικού (cardinality: 1); Cardinality ratio: 1:1. Has {(Student, Next-Of-Kin), (1..1), (1..1)} Κάθε φοιτητής (participation: 1) έχει το πολύ ενεν συγγενή (cardinality:1); Κάθε συγγενής (participation: 1) αντιστοιχεί σε έναν μόνο φοιτητή (cardinality: 1); Cardinality ratio: 1:1 12

Μερικό Διάγραμμα Οντοτήτων Module Staff staffno {PK} name fname lname address phone {AK} officeno Student matericno {PK} computerid {AK} name fname lname address town mcode {PK} title startdate enddate assessment coursework exam texts [1..*] Department name {PK} phone faxno location Next-Of-Kin name {PPK} phone sex salary post computerid {AK} qualifications [1..*] street postcode dob sex loan Course ccode {PK} title {AK} Duration DeptName relationship 13

Ολικό Διάγραμμα Οντοτήτων 14

Λoγικός Σχεδιασμός 15

Λογικός Σχεδιασμός Βήμα 2 Κατασκευάζουμε και ελέγχουμε το λογικό μοντέλο δεδομένων για κάθε Όψη Βήμα 2.1 Μετακινούμε χαρακτηριστικά που δεν είναι συμβατά με το Σχεσιακό Μοντέλο (optional step) Βήμα 2.2 Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο Βήμα 2.3 Ελέγχουμε σύμφωνα με τους κανόνες Κανονικοποίησης 16

Λογικός Σχεδιασμός (2) Βήμα 2: Κατασκευάζουμε και ελέγχουμε το λογικό μοντέλο δεδομένων για κάθε Όψη Βήμα 2.4 Επιβεβαιώνουμε τη λειτουργικότητα του μοντέλου σε σχέση με τις συναλλαγές του χρήστη Βήμα 2.5 Επιβεβαιώνουμε τις συνθήκες ακεραιότητας Βήμα 2.6 Αναθεώρηση του μοντέλου σε συνεργασία με τους χρήστες 17

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (1)Ισχυρός Τύπος Οντότητας (Strong entity types) Δημιουργία της Σχέσης που περιλαμβάνει όλα τα χαρακτηριστικά της οντότητας. Στα σύνθετα χαρακτηριστικά να συμπεριλάβετε μόνο τα επιμέρους απλά χαρακτηριστικά. Στη Μελέτη Περίπτωσης Department {deptname, phone, faxno, location} Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid} Student {matericno, fname, lname, town, street, postcode, dob, sex, loan} Course {ccode, title, duration} Module {mcode, title, startdate, enddate, coursework, exam} 18

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (2) (2) Ασθενής Τύπος Οντότητας (Weak entity types) Δημιουργήστε σχέσεις που περιλαμβάνουν όλα τα χαρακτηριστικά. Το πρωτεύον κλειδί προέρχεται μέρος του από την οντότητα από την οποία εξαρτάται η ασθενής οντότητα. Next-Of-Kin {matericno, name, phone, relationship} fk 19

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (3) 3) 1:* Δυαδικός τύπος σχέσης Στη μία πλευρά βρίσκεται η οντότητα master (1) και την άλλη η οντότητα detail (πολλά). Το πρωτεύων κλειδί της οντότητας master το μεταφέρουμε στην οντότητα detail και αποτελεί ξένο κλειδί. Παράδειγμα Runs {(Department, Course), (1..*), (1..1)} Course {ccode, title, duration, deptname} fk Department name {PK} phone faxno location Runs > Course ccode {PK} title {AK} Duration DeptName 20

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (4) (4) 1:1 Δυαδικοί Τύποι Σχέσεων Είναι περισσότερο πολύπλοκες περιπτώσεις. Δυο προσεγγίσεις: Δημιουργούμε μια νέα σχέση που να περιλαμβάνει και τις δυο οντότητες Δημιουργούμε δυο σχέσεις και κρατάμε το κλειδί της μίας σαν ξένο κλειδί στην άλλη. Έχουμε τις παρακάτω περιπτώσεις: (a) Υποχρεωτική συμμετοχή και στις δύο οντότητες της 1:1 σχέσης; (b) Υποχρεωτική συμμετοχή στις μία από τις δύο πλευρές της 1:1 σχέσης; (c) Μη Υποχρεωτική συμμετοχή και στις δύο πλευρές της 1:1 σχέσης. 21

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (5) (α) Υποχρεωτική συμμετοχή και στις δύο οντότητες της 1:1 σχέσης; Παράδειγμα: Δημιουργούμε μια σχέση από τη σύνθεση και των δύο και επιλέγουμε να κρατήσουμε σαν πρωτεύον κλειδί το κλειδί της μιας από τις δύο. Τo κλειδί της άλλης μπορεί να χρησιμοποιηθεί σαν εναλλακτικό κλειδί. Student (StudeentNo, fname, lname, telno, DeptName) Primary Key cstudentno Apartment(ApartmentCode, Building, ) Primary Key ApartmentCode Student (StudeentNo, fname, lname, telno, DeptName, ApartmentCode, Building) 22

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (6) β) Υποχρεωτική συμμετοχή στις μία από τις δύο πλευρές της 1:1 σχέσης Δημιουργούνται δυο πίνακες Προσδιορίζουμε την κύρια και την δευτερεύουσα οντότητα (συνθήκες συμμετοχής). Η οντότητα με την μη υποχρεωτική συμμετοχή είναι η κύρια Αντιγράφουμε το κλειδί της κυρίας οντότητας στην δευτερεύουσα σαν ξένο κλειδί. Αν η σχέση έχει χαρακτηριστικά τότε αυτά θα συμπεριληφθούν στον πίνακα της δευτερεύουσας οντότητας. Leads {(Staff, Course), (0..1), (1..1)} Course {ccode, title, duration, deptname, leaderstaffno} fk fk 23

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (7) γ) Μη Υποχρεωτική συμμετοχή και στις δύο πλευρές της 1:1 σχέσης Δημιουργούμε δυο πίνακες. Το ποιος θα είναι ο κύριος και ποιος ο δευτερεύων καθορίζεται σχετικά αυθαίρετα. Παράδειγμα: Το προσωπικό Χρησιμοποιεί Αυτοκίνητα της Εταιρείας. Η σχέση (1:1) μεταξύ προσωπικού και αυτοκινήτων δεν είναι υποχρεωτική και για τις δύο πλευρές. Μπορούμε να επιλέξουμε σαν πρωτεύον το Προσωπικό. 24

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (8) (5) 1:1 Αναδρομικές Σχέσεις Ακολουθεί τους κανόνες της 1:1 σχέσης. 25

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (9) (6) *:* Δυαδικός Τύπος Οντότητας Δημιουργούμε έναν νέο πίνακα ο οποίος περιλαμβάνει τα στοιχεία και από τις δύο οντότητες που είναι μέρος της σχέσης. Τα πρωτεύοντα κλειδιά και των δύο οντοτήτων συμπεριλαμβάνονται στο νέο πίνακα και αποτελούν ξένα κλειδιά. Τα ξένα κλειδιά θα συμμετέχουν στον πρωτεύον κλειδί του νέου πίνακα (πιθανότατα με κάποιο από τα χαρακτηριστικά του νέου πίνακα) Teaches {(Staff, Module), (1..*), (0..*)}; Attribute: Hours; - Δημιουργία Νέας Σχέσης Teaches {teachstaffno, modulecode, hours} fk fk r.a. 26

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (10) (7) Περίπλοκοι τύποι οντοτήτων Δημιουργούμε ένα νέο πίνακα ο οποίο θα περιγράφει τη σχέση μεταξύ των οντοτήτων και θα περιλαμβάνει κάθε στοιχείο που σχετίζεται με τη σχέση. Τα πρωτεύοντα κλειδιά αντιγράφονται στο νέο πίνακα και αποτελούν ξένα κλειδιά. Τα πρωτεύονται κλειδιά των σχέσεων 1..* θα συμμετέχουν στο πρωτεύον κλειδί του νέου πίνακα. 27

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (11) (7) Περίπλοκοι τύποι οντοτήτων - Παράδειγμα 28

Δημιουργούμε τις Σχέσεις από το Σημασιολογικό Μοντέλο (12) (9) Χαρακτηριστικά Πολλαπλών Τιμών Δημιουργούμε ένα νέο πίνακα Στο νέο πίνακα μεταφέρουμε το χαρακτηριστικό και αντιγράφουμε το πρωτεύον κλειδί της οντότητας ως ξένο κλειδί. texts Texts {modulecode, text} fk Qualifications Qualifications {qualstaffno, qualification} fk Module mcode {PK} title startdate enddate assessment coursework exam texts [1..*] Staff staffno {PK} name fname lname.. computerid {AK} qualifications [1..*] 29

Η Μελέτη Περίπτωσης (1) 1. Αποτύπωση Οντοτήτων Department {deptname, phone, faxno, location} Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid} Student {matericno, fname, lname, town, street, postcode, dob, sex, loan} Course {ccode, title, duration} Module {mcode, title, startdate, enddate, coursework, exam} Next-Of-Kin {matericno, name, phone, relatiobship} fk 30

Η Μελέτη Περίπτωσης (2) 2. Αποτύπωση Σχέσεων και των χαρακτηριστικών τους Runs {(Department, Course), (1..*), (1..1)} Course {ccode, title, duration, deptname} fk Uses {(Course, module), (1..*), (0..1)} Module {mcode, title, startdate, enddate, coursework, exam, coursecode} fk Employs {Department, Staff), (1..*), (1..1)} Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid, deptname} fk Undertake {(Student, Module), (1..*), (0..*)}; Attribute: performance; - Δημιουργία Νέας Σχέσης. Undertake {stdmaterincno, modulecode, performance} fk fk r.a. 31

Η Μελέτη Περίπτωσης (3) Teaches {(Staff, Module), (1..*), (0..*)}; Attribute: Hours; - Δημιουργία Νέας Σχέσης Teaches {teachstaffno, modulecode, hours} fk fk r.a. Leads {(Staff, Course), (0..1), (1..1)} Course {ccode, title, duration,deptname, leaderstaffno} fk fk Enrol {(Student, Course), (1..1), (1..*)} Student {matericno, fname, lname, town, street, postcode, dob, sex, loan, coursecode} fk Coordinates {(Staff, Module), (0..*), (1..1)} Module {mcode, title, startdate, enddate, coursework, exam, coursecode, cordstaffno} fk fk Manages {(Staff, Department), (0..1), (1..1)}; Attribute: startdate; Department {deptname, phone, faxno, location, mgrstaffno, mgrstartdate} fk r.a. Has {(Student, Next-Of-Kin), (1..1), (1..1)} - Έχει ήδη συμπεριληφθεί 32

Η Μελέτη Περίπτωσης (4) Module Αποτύπωση των Χαρακτηριστικών με πολλές τιμές Α. (texts) Module {mcode, title, startdate, enddate, texts, assessment (coursework, exam)} texts Πολλαπλών τιμών Texts {modulecode, text} fk qualifications Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid} Qualifications Πολλαπλών τιμών Qualifications {qualstaffno, qualification} fk mcode {PK} title startdate enddate assessment coursework exam texts [1..*] Staff staffno {PK} name fname lname.. computerid {AK} qualifications [1..*] 33

Το Τελικό Σχήμα Της Β.Δ. Department {deptname, phone, faxno, location, mgrstaffno, mgrstartdate} Primary key: deptname Foreign key: mgrstaffno references Staff (staffno) Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid, deptname} Primary key: staffno Foreign key: deptname references Department (deptname) Course {ccode, title, duration, leaderstaffno, deptname} Primary key: ccode Foreign key: leaderstaffno references Staff (staffno) Foreign key: deptname reference Department (deptname) Module {mcode, title, startdate, enddate, coursework, exam, coursecode, cordstaffno} Primary key: mcode Foreign key: coursecode references Course (ccode) Foreign key: cordstaffno references Staff (staffno) Student {matericno, fname, lname, town, street, postcode, dob, sex, loan, coursecode} Primary key: matericno Foreign key: coursecode references Course (ccode) 34

Το Τελικό Σχήμα Της Β.Δ. (2) Next-Of-Kin {matericno, name, phone, relationship} Primary key: matericno, name Foreign key: matericno references Student (matericno) Undertake {stdmatericno, modulecode, performance} Primary key: stdmatericno, modulecode Foreign key: stdmatericno references Student (matericno) Foreign key: modulecode references Module (mcode) Teaches {teachstaffno, modulecode, hours} Primary key: teachstaffno, modulecode Foreign key: teachstaffno references Staff (staffno) Foreign key: modulecode references Module (mcode) Texts {modulecode, text} Primary key: modulecode, text Foreign key: modulecode references Module (mcode) Qualifications {qualstaffno, qualification} Primary key: qualstaffno, qualification Foreign Key: qualstaffno references Staff (staffno) 35

Ασκήσεις Μελέτες Περίπτωσης (1) Άσκηση 1 Με βάση τις ακόλουθες περιγραφές, δημιουργήστε ένα κατάλληλο διάγραμμα οντοτήτων (class diagramme) για κάθε μία από τις σχέσεις Βάσης Δεδομένων που αφορά τις Εταιρείες ενός Ομίλου Εταιρειών. a) Κάθε εταιρεία του Ομίλου διαθέτει περισσότερα από ένα τμήματα, καθώς και κάθε τμήμα ανήκει σε μία μόνο εταιρεία. b) Κάθε τμήμα απασχολεί έναν ή περισσότερους υπαλλήλους, και κάθε εργαζόμενος εργάζεται για ένα τμήμα. c) Κάθε ένας από τους εργαζομένους ενδέχεται να έχει ή όχι ένα ή περισσότερα εξαρτώμενα πρόσωπα, και κάθε εξαρτώμενο μέλος εξαρτάται από έναν μόνο υπάλληλο. Να κατασκευάσετε ένα ενιαίο διάγραμμα συσχέτισης οντοτήτων 36

Ασκήσεις Μελέτες Περίπτωσης (2) Άσκηση 2 Δίδεται το παρακάτω Διάγραμμα Συσχέτισης Οντοτήτων τμήματος της Βάσης Δεδομένων ενός Μεσιτικού Γραφείου για την ενοικίαση οικημάτων. Να κατασκευάσετε το λογικό σχήμα της Βάσης Δεδομένων ακλουθώντας τα βήματα του λογικού σχεδιασμού. Περιγράψτε αναλυτικά τα βήματα. 37

Ασκήσεις Μελέτες Περίπτωσης (4) Μελέτη Περίπτωσης Σας έχει ανατεθεί ο σχεδιασμός της Βάσης Δεδομένων του Τμήματο Πωλήσεων μιας εταιρείας. Η ανάλυση απαιτήσεων έχει καταγράφει τα παρακάτω: Στο τμήμα πωλήσεων διατηρούν αρχείο των προϊόντων που πωλούν στους πελάτες τους. Κάθε προϊόν έχει έναν μοναδικό κωδικό. Επίσης για τα προϊόντα διατηρούμε στοιχεία όπως η περιγραφή, το κόστος προμήθειας, η τιμή και η ποσότητα σε απόθεμα. Το απόθεμα ανανεώνεται τακτικά. Όταν το απόθεμα μειώνεται, γίνεται παραγγελία συγκεκριμένης ποσότητας του προϊόντος. Διατηρείται αρχείο πελατών. Κάθε πελάτης έχει ένα μοναδικό κωδικό. Για τους πελάτες διατηρούνται επίσης το όνομα και το επώνυμό τους, η διεύθυνσή τους (οδός, αριθμός, περιοχή, Τ.Κ.), το ΑΦΜ, ο αριθμός τηλεφώνου και η ηλεκτρονική διεύθυνσή τους (email). Για τους πελάτες διατηρούμε πιστωτικό όριο, το οποίο χρησιμοποιείται για την έγκριση των παραγγελιών τους. Ένας πελάτης μπορεί να κάνει καμία, μία ή περισσότερες παραγγελίες κάθε φορά, και μια παραγγελία αφορά πάντα έναν πελάτη. Ένας μοναδικός αριθμός παραγγελίας (άυξων αριθμός) προσδιορίζει την παραγγελία. Για τις παραγγελίες διατηρούνται η ημερομηνία παράδοσης, τη συνολική τιμή, καθώς και η φάση στην οποία ευρίσκονται (π.χ. Προετοιμασία, Αποστολή, Παράδοση, Ολοκλήρωση). Κάθε παραγγελία γίνεται για ένα ή περισσότερα προϊόντα, και ένα προϊόν μπορεί να ζητηθεί από περισσότερες από μία παραγγελίες. Για κάθε προϊόν που έχει ζητηθεί από παραγγελία, καταγράφεται η ποσότητά του και η τιμή πώλησής. 38

Ασκήσεις Μελέτες Περίπτωσης (5) ΖΗΤΕΙΤΑΙ: α) Να δημιουργήσετε το Σημασιολογικό Σχήμα της Βάσης Δεδομένων ακλουθώντας τα βήματα: Οντότητες και χαρακτηριστικά Σχέσεις Οντοτήτων, Περιορισμοί, Πολλαπλότητα και χαρακτηριστικά των σχεσεων Μερικό Διάγραμμα Οντοτήτων Σφαιρικό Διάγραμμα Οντοτήτων 39

Ασκήσεις Μελέτες Περίπτωσης (6) Μελέτη Περίπτωσης (συνέχεια) β) Να δημιουργήσετε το Λογικό Σχήμα της Βάσης Δεδομένων. Παρουσιάστε αναλυτικά το κάθε Βήμα που ακολουθείται για να κατασκευλασετε το Λογικό Σχήμα της Βάσης Δεδομένων Παρουσιάστε την Τελική Μορφή της Βάσης Δεδομένων στη μορφή: Department {deptname, phone, faxno, location, mgrstaffno, mgrstartdate} Primary key: deptname Foreign key: mgrstaffno references Staff (staffno) Staff {staffno, fname, lname, address, phone, officeno, sex, salary, post, computerid, deptname} Primary key: staffno Foreign key: deptname references Department (deptname) 40

Τέλος Ενότητας