Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη
Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data Modeler 4. Ασκήσεις
Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data Modeler 4. Ασκήσεις
Περιεχόμενα Βάση δεδομένων είναι μια καλά ορισμένη και ολοκληρωμένη συλλογή δεδομένων που αφορούν έναν οργανισμό. Τα συστήματα λογισμικού που αφορούν στη διαχείριση των δεδομένων ονομάζονται Συστήματα Διαχείρισης Βάσεων Δεδομένων - ΣΔΒΔ (Data Base Management Systems - DBMS).
Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data Modeler 4. Ασκήσεις
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση Η διαδικασία σχεδιασμού των βάσεων δεδομένων αρχίζει με τη φάση της ανάλυσης των απαιτήσεων (requirements analysis) κατά την οποία: αποτυπώνονται οι κανόνες που διέπουν τη λειτουργία του οργανισμού (enterprise rules), καθορίζονται οι επιθυμητές πληροφορίες και οι δοσοληψίες (transactions) που τις παράγουν, καταγράφονται οι περιορισμοί επί των δεδομένων, και προσδιορίζονται οι απαιτήσεις ασφάλειας των δεδομένων.
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση Κατασκευή μοντέλου οντοτήτων συσχετίσεων Προσδιορισμός οντοτήτων Προσδιορισμός συσχετίσεων Προσδιορισμός κλειδιών και χαρακτηριστικών οντοτήτων και συσχετίσεων Εκλέπτυνση μοντέλου οντοτήτων συσχετίσεων Προσδιορισμός πληθαρίθμων συσχετίσεων Διάσπαση συσχετίσεων Ν:Μ
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση Δημιουργία του σχεσιακού μοντέλου της Βάσης Δεδομένων από το μοντέλο οντοτήτων-συσχετίσεων που αναπτύχθηκε στην προηγούμενη φάση του κύκλου ζωής. Ελεγχος κανονικότητας των πινάκων του σχεσιακού μοντέλου. Βελτιστοποίηση αποδοτικότητας της βάσης δεδομένων(π.χ. με δημιουργία πρόσθετων πινάκων από ήδη υπάρχοντες, με συγχώνευση υπαρχόντων πινάκων κλπ).
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση Δημιουργία Βάσης Δεδομένων στο επιλεγμένο Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ) Θέση της Βάσης Δεδομένων σε λειτουργία
Κύκλος Ζωής Ανάπτυξης ΒΔ Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Φυσικός Σχεδιασμός Υλοποίηση Συντήρηση Τροποποιήσεις στο σχεδιασμό της Βάσης Δεδομένων προκειμένου να εξασφαλίζεται η κάλυψη των ολοένα μεταβαλλόμενων αναγκών των χρηστών του οργανισμού για τον οποίο έχει υλοποιηθεί η Βάση Δεδομένων.
Εννοιολογικός Σχεδιασμός Συμβολισμοί Οντότητα (entity): Ένα διακριτό ως προς τα όμοιά του αντικείμενο που έχει φυσική ή εννοιολογική ύπαρξη. Παραδείγματα: 1. Αντικείμενα με φυσική ύπαρξη: Ένας συγκεκριμένος καθηγητής, ένας συγκεκριμένος φοιτητής 2. Αντικείμενα με εννοιολογική ύπαρξη: Ένα συγκεκριμένο μάθημα ή μια συγκεκριμένη γλώσσα προγραμματισμού. Ειδική Περίπτωση: Ασθενής οντότητα (weak entity) Μια οντότητα για την οποία ισχύει ότι κάθε πραγματοποίησή της εξαρτάται από μια πραγματοποίηση μιας άλλης οντότητας ή από πραγματοποιήσεις άλλων οντοτήτων. Οι τελευταίες οντότητες ονομάζονται κτητικές οντότητες (owner entities) ενώ οι συσχετίσεις που συνδέουν μια ασθενή οντότητα και την κτητική της οντότητα ονομάζονται προσδιορίζουσες συσχετίσεις (identifying relationships). Οι προσδιοριστές των ασθενών οντοτήτων είναι ή περιλαμβάνουν προσδιοριστές των οντοτήτων από τις οποίες εξαρτώνται. Συνεπώς, κάθε ασθενής οντότητα έχει υποχρεωτική συμμετοχή στην προσδιορίζουσα συσχέτιση που τη συνδέει με μια κτητική της οντότητα.
Εννοιολογικός Σχεδιασμός Συμβολισμοί Συσχέτιση (relationship): Μια λογική σύνδεση μεταξύ δύο ή περισσότερων οντοτήτων. Οι συσχετίσεις ορίζονται μόνο αναφορικά με οντότητες. Παράδειγμα: Οι οντότητες Νικόλαος Μακρής (που αντιστοιχεί στον τύπο οντοτήτων καθηγητής ) και Βάσεις Δεδομένων (που αντιστοιχεί στον τύπο οντοτήτων μάθημα ) μπορεί να συνδέονται λογικά μέσω της συσχέτισης διδάσκει. Ενώ οι οντότητες αποτελούν αντικείμενα που έχουν φυσική ή εννοιολογική ύπαρξη,.
Εννοιολογικός Σχεδιασμός Συμβολισμοί Χαρακτηριστικά: Μια ιδιότητα μιας οντότητας ή μιας συσχέτισης. Παράδειγμα: Μια οντότητα που αναπαριστά ένα συγκεκριμένο μάθημα (που αντιστοιχεί στον τύπο οντοτήτων μάθημα ) μπορεί να έχει ως χαρακτηριστικά το όνομα του μαθήματος (π.χ. Βάσεις Δεδομένων ) και το εξάμηνο σπουδών που διδάσκεται το μάθημα (π.χ. 6ο). Κατηγοριοποίηση χαρακτηριστικών: Προσδιοριστικά χαρακτηριστικά (identifying attributes) ή προσδιοριστές (identifiers) ή κλειδιά (keys): χρησιμοποιούνται για τον μοναδικό προσδιορισμό κάθε οντότητας ενός τύπου οντοτήτων Περιγραφικά χαρακτηριστικά (descriptors): Χρησιμοποιούνται για την περιγραφή κάθε οντότητας. Παράδειγμα: Ο προσδιοριστής του τύπου οντοτήτων STUDENT (φοιτητής) είναι το χαρακτηριστικό STUDENT-CODE (κωδικός φοιτητή) ενώ περιγραφικά χαρακτηριστικά του τύπου οντοτήτων STUDENT είναι τα STUDENT-NAME (όνομα φοιτητή), STUDENT-SURNAME (επώνυμο φοιτητή) και STUDENT-BIRTH-DATE (ημερομηνία γέννησης φοιτητή).
Εννοιολογικός Σχεδιασμός Ιδιότητες Συσχετίσεων Πληθάριθμοι συσχετίσεων Εξαρτήσεις ύπαρξης
Εννοιολογικός Σχεδιασμός Συσχετίσεις (πληθάριθμοι και εξαρτήσεις ύπαρξης) α) Συσχέτιση 1:1 α1) με υποχρεωτική συμμετοχή των οντοτήτων E1 και E2. α2) με υποχρεωτική συμμετοχή της οντότητας E1 και προαιρετική της E2 α3) με προαιρετική συμμετοχή της οντότητας E1 και υποχρεωτική της E2. α4) με προαιρετική συμμετοχή της οντότητας E1 και προαιρετική της E2.
Εννοιολογικός Σχεδιασμός Συσχετίσεις (πληθάριθμοι και εξαρτήσεις ύπαρξης) β) Συσχέτιση 1:Ν με υποχρεωτική συμμετοχή των οντοτήτων E1 και E2 στη συσχέτιση. Οι υπόλοιπες περιπτώσεις είναι οι ακόλουθες και συμβολίζονται με τρόπο αντίστοιχο με αυτόν της σχέσης 1:1. Συσχέτιση 1:Ν με προαιρετική συμμετοχή των οντοτήτων E1 και E2 στη συσχέτιση Συσχέτιση 1:Ν με προαιρετική συμμετοχή της οντότητας E1 και υποχρεωτική συμμετοχή της E2 στη συσχέτιση Συσχέτιση 1:Ν με υποχρεωτική συμμετοχή της οντότητας E1 και προαιρετική συμμετοχή της E2 στη συσχέτιση
Εννοιολογικός Σχεδιασμός Συσχετίσεις (πληθάριθμοι και εξαρτήσεις ύπαρξης) γ) Συσχέτιση Ν:Μ με υποχρεωτική συμμετοχή των οντοτήτων E1 και E2 στη συσχέτιση. Διάσπαση συσχετίσεων Ν:Μ Οι συσχετίσεις Ν:Μ μπορούν να διασπαστούν σε 2 σχέσεις 1:Ν και Ν:1 με τη χρήση μιας ενδιάμεσης οντότητας, ως ακολούθως:
Εννοιολογικός Σχεδιασμός Συσχετίσεις (πληθάριθμοι και εξαρτήσεις ύπαρξης) δ) Αυτοπαθής συσχέτιση 1:Ν με υποχρεωτική συμμετοχή του γονικού ρόλου της οντότητας E και προαιρετική συμμετοχή του απογονικού ρόλου της οντότητας E στη συσχέτιση.
Φυσικός Σχεδιασμός Μετατροπή μοντέλου οντοτήτων-συσχετίσεων σε σχεσιακό Ορίζεται ένας πίνακας για κάθε οντότητα και συσχέτιση του μοντέλου οντοτήτων-συσχετίσεων και μετατρέπονται τα χαρακτηριστικά των οντοτήτων και των συσχετίσεων σε χαρακτηριστικά των αντίστοιχων πινάκων του σχεσιακού μοντέλου.
Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data Modeler 4. Ασκήσεις
Oracle SQL Developer Data Modeler Λογισμικό που απαιτείται για την εγκατάσταση: Java Development Kit 8+ SQL Developer Data Modeler 4.1.5 Επιλέγουμε την κατάλληλη έκδοση ανάλογα με το λειτουργικό σύστημα που διαθέτουμε. Download URL: http://www.oracle.com/technetwork/developertools/datamodeler/downloads/index.html
Oracle SQL Developer Data Modeler Για να εγκαταστήσουμε τον Oracle SQL Developer Data Modeler κάνουμε unzip το αρχείο zip που κατεβάσαμε από τη σελίδα της Oracle. Για να ανοίξουμε τον Oracle SQL Developer Data Modeler πηγαίνουμε στο directory όπου αποσυμπιέστηκε και κάνουμε διπλό κλικ στο αρχείο datamodeler.exe. Την πρώτη φορά που ανοίγει το πρόγραμμα ζητά την τοποθεσία όπου είναι εγκατεστημένο το JDK. Π.χ. για το jdk1.8.0_112 η default τοποθεσία είναι C:\Program Files\Java\jdk1.8.0_112. Αφού καταχωρήσουμε το path του JDK πατάμε ΟΚ.
Oracle SQL Developer Data Modeler Περιβάλλον προγράμματος 1 2
Oracle SQL Developer Data Modeler 1 2 Μοντέλο Οντοτήτων-Συσχετίσεων Σχεσιακό Μοντέλο Για κάθε μοντέλο οντοτήτων συσχετίσεων που θέλουμε να σχεδιάσουμε δημιουργούμε κι ένα ξεχωριστό Design. Για να εμφανίζουμε ένα μοντέλο κάνουμε δεξί κλικ πάνω στο όνομά του κι επιλέγουμε Show. (βλ. επόμενη διαφάνεια)
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων
Παράδειγμα: Εργαστήρια Τμημάτων Πανεπιστημίου Σ ένα πανεπιστήμιο, τα εργαστήρια έχουν κατανεμηθεί στα ακαδημαϊκά τμήματα. Τα εργαστήρια των προπτυχιακών σπουδών είναι διαφορετικά από τα εργαστήρια των μεταπτυχιακών σπουδών. Σε κάθε προπτυχιακό και μεταπτυχιακό μάθημα μπορεί να αντιστοιχούν πολλά εργαστήρια. Να κατασκευαστεί μοντέλο οντοτήτων-συσχετίσεων για την κατανομή των εργαστηρίων του πανεπιστημίου και να μετατραπεί σε σχεσιακό μοντέλο.
Παράδειγμα: Εργαστήρια Τμημάτων Πανεπιστημίου Προσδιορισμός Οντοτήτων Σ ένα πανεπιστήμιο, τα εργαστήρια έχουν κατανεμηθεί στα ακαδημαϊκά τμήματα. Τα εργαστήρια των προπτυχιακών σπουδών είναι διαφορετικά από τα εργαστήρια των μεταπτυχιακών σπουδών. Σε κάθε προπτυχιακό και μεταπτυχιακό μάθημα μπορεί να αντιστοιχούν πολλά εργαστήρια. Να κατασκευαστεί μοντέλο οντοτήτων-συσχετίσεων για την κατανομή των εργαστηρίων του πανεπιστημίου και να μετατραπεί σε σχεσιακό μοντέλο.
Παράδειγμα: Εργαστήρια Τμημάτων Πανεπιστημίου Προσδιορισμός Συσχετίσεων Σ ένα πανεπιστήμιο, τα εργαστήρια έχουν κατανεμηθεί στα ακαδημαϊκά τμήματα. Τα εργαστήρια των προπτυχιακών σπουδών είναι διαφορετικά από τα εργαστήρια των μεταπτυχιακών σπουδών. Σε κάθε προπτυχιακό και μεταπτυχιακό μάθημα μπορεί να αντιστοιχούν πολλά εργαστήρια. Να κατασκευαστεί μοντέλο οντοτήτων-συσχετίσεων για την κατανομή των εργαστηρίων του πανεπιστημίου και να μετατραπεί σε σχεσιακό μοντέλο.
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων Βήματα 1. Δημιουργία domains (προαιρετικό) 2. Δημιουργία οντοτήτων 3. Δημιουργία συσχετίσεων
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων 1. Δημιουργία domains Πριν από τη δημιουργία των οντοτήτων, υπάρχει η δυνατότητα ορισμού domains στα οποία θα συμπεριλαμβάνονται custom τύποι δεδομένων, τους οποίους μετά θα μπορούμε να χρησιμοποιήσουμε κατά τη δημιουργία των χαρακτηριστικών κάθε οντότητας. Παραδείγματα: Name Logical Type Other Information Code VARCHAR Size: 10 Description VARCHAR Size: 40
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων 1. Δημιουργία domains Για τη δημιουργία domains από το μενού Tools επιλέγουμε Domains Administration. Στο παράθυρο που εμφανίζεται προσθέτουμε ένα προς ένα τα domains ορίζοντας για το καθένα όνομα και τύπο δεδομένων. Μόλις τελειώσουμε πατάμε Save.
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων 2. Δημιουργία οντοτήτων Για να δημιουργήσουμε μια οντότητα κάνουμε κλικ στο εικονίδιο
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων Στο παράθυρο που εμφανίζεται εισάγουμε το όνομα της οντότητας, π.χ. Dept, και στη συνέχεια επιλέγουμε Attributes.
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων Κάνουμε κλικ στο «+» για κάθε νέο attribute που θέλουμε να προσθέσουμε και καταχωρούμε όνομα, τύπο δεδομένων (domain ή logical), source type, και αν θέλουμε να είναι primary key (primary Unique Identifier - UID). Έτσι δημιουργήθηκε η οντότητα Dept και με παρόμοιο τρόπο δημιουργούμε και μια δεύτερη οντότητα με όνομα Lab.
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων Δημιουργία συσχέτισης 1:Ν μεταξύ της οντότητας Dept και της οντότητας Lab με υποχρεωτική τη συμμετοχή και των 2 οντοτήτων. Τύπος Σχέσης Συμμετοχή οντοτήτων στη σχέση
Oracle SQL Developer DM Δημιουργία Μοντέλου Οντοτήτων-Συσχετίσεων Όπως είδαμε παραπάνω, όταν η συμμετοχή μιας οντότητας σε μια σχέση είναι υποχρεωτική τότε η γραμμή της συσχέτισης προς την πλευρά της οντότητας αυτής είναι συμπαγής. Αλλιώς, είναι διακεκομμένη. Δημιουργούμε άλλες δύο οντότητες, τις Post_Course και Under_Course και τις συσχετίζουμε με τις ήδη υπάρχουσες όπως φαίνεται στην ακόλουθη διαφάνεια.
Oracle SQL Developer DM Μοντέλο Οντοτήτων-Συσχετίσεων
Oracle SQL Developer DM Μοντέλο Οντοτήτων-Συσχετίσεων (με attributes)
Oracle SQL Developer DM Μοντέλο Οντοτήτων-Συσχετίσεων Παραδοχές 1. Το μοντέλο αυτό περιγράφει την κατανομή των εργαστηρίων των τμημάτων ενός Πανεπιστημίου. 2. Κάθε τμήμα ενός Πανεπιστημίου (DEPT) έχει ένα ή περισσότερα προπτυχιακά μαθήματα (UNDER_COURSE) κάθε ένα από τα οποία αντιστοιχεί σε ένα μόνο τμήμα του Πανεπιστημίου. 3. Κάθε τμήμα ενός Πανεπιστημίου (DEPT) έχει ένα ή περισσότερα μεταπτυχιακά μαθήματα (POST_COURSE) κάθε ένα από τα οποία αντιστοιχεί σε ένα μόνο τμήμα του Πανεπιστημίου.
Oracle SQL Developer DM 4. Κάθε τμήμα ενός Πανεπιστημίου (DEPT) έχει ένα ή περισσότερα εργαστήρια (LAB) και κάθε εργαστήριο αντιστοιχεί σε ένα μόνο τμήμα του Πανεπιστημίου. 5. Σε κάθε μεταπτυχιακό μάθημα (POST_COURSE) αντιστοιχεί ένα ή περισσότερα εργαστήρια (LAB), ενώ κάθε εργαστήριο μπορεί να αφορά σε ένα μόνο μεταπτυχιακό μάθημα. 6. Σε κάθε προπτυχιακό μάθημα (UNDER_COURSE) μπορεί να αντιστοιχεί ένα ή περισσότερα εργαστήρια (LAB), ενώ κάθε εργαστήριο μπορεί να αφορά σε ένα το πολύ προπτυχιακό μάθημα.
Oracle SQL Developer DM Δημιουργία Σχεσιακού Μοντέλου Για να δημιουργήσουμε το σχεσιακό μοντέλο από το μοντέλο οντοτήτων συσχετίσεων κάνουμε κλικ στο εικονίδιο «Engineer to Relational Model» που φαίνεται στην εικόνα.
Oracle SQL Developer DM Δημιουργία Σχεσιακού Μοντέλου Εμφανίζεται η ακόλουθη οθόνη στην οποία πατάμε Engineer και δημιουργείται το σχεσιακό μοντέλο.
Oracle SQL Developer DM Δημιουργία Σχεσιακού Μοντέλου