Διάγραμμα Παρουσίασης Τι είναι οι Βάσεις Δεδομένων; Γιατί Παρουσιάζουν τόσο Ενδιαφέρον; Ποια είναι τα Πλεονεκτήματα των Βάσεων Δεδομένων; Προκλήσεις του Μέλλοντος;
Τι είναι οι Βάσεις Δεδομένων; Βάση Δεδομένων (Database - DB): Μια συλλογή από συσχετιζόμενα δεδομένα. Π.χ., Τα δεδομένα ενός Πανεπιστήμιου (Φοιτητές, Μαθήματα, Αίθουσες, Εγγραφες, κτλ.) Τυχαία συλλογή δεδομένων δεν αποτελούν ΒΔ π.χ., όλες οι λέξεις ενός βιβλίου παρόλο που είναι συσχετιζόμενα δεδομένα δεν αποτελούν βάση δεδομένων. Δεδομένα (Data): Γνωστά γεγονότα τα οποία μπορούν να καταγραφούν και τα οποία έχουν συγκεκριμένη σημασία. π.χ., Ο Κώστας είναι 32 ετών με ταυτότητα 721233.
Τι είναι οι Βάσεις Δεδομένων; Σχεσιακό Μοντέλο (Codd’70, ΙΒΜ): To επικρατέστερο μοντέλο αναπαράστασης Δεδομένων σε Σύγχρονες Βάσεις Δεδομένων. Μια Σχέση r είναι ένα σύνολο πλειάδων (tuples) r={t1,t2, …tΜ}, όπου κάθε πλειάδα είναι μια διατεταγμένη ακολουθία γνωρισμάτων (attributes) t=<v1,v2,…,vΝ>. Γνωρίσματα Όνομα Σχέσης Επικεφαλίδα Εγγραφές
Τι είναι οι Βάσεις Δεδομένων; Παράδειγμα (Σχεσιακής) Βάσης Πανεπιστημίου
Τι είναι οι Βάσεις Δεδομένων; Database Management System (DBMS): Λογισμικό/α για τη δημιουργία, τη διατήρηση, και επεξεργασία μιας DB. π.χ., Oracle, IBM DB2, SQL-Server, PostgreSQL, MySQL, MS Access, Interbase, Sybase, … Κύριος σκοπός των DBMS: αποθήκευση & διαχείριση Εύκολα και βολικά (conveniently) Γρήγορα και αποδοτικά (efficiently) Αξιόπιστα και με συνέπεια (reliably and consistently) Σύστημα Βάσης (Database System): DBS = DBMS + DATA Κάποτε περιλαμβάνονται στην πιο πάνω εξίσωση και οι εφαρμογές.
Τι είναι οι Βάσεις Δεδομένων; (DB)
Τι είναι οι Βάσεις Δεδομένων; Ανατομία του MySQL Server 11
Γιατί παρουσιάζουν τόσο ενδιαφέρουν οι ΒΔ; Ερώτηση: Γιατί παρουσιάζουν τόσο ενδιαφέρουν οι Σχεσιακές Βάσεις Δεδομένων; Απάντηση Γιατί είναι το τεχνικό θεμέλιο (υπόβαθρο) κάθε σύγχρονου Πληροφοριακού Συστήματος. Τραπεζικές Εφαρμογές & Χρηματιστήριο, (Διαδικτυακά) Συστήματα Κρατήσεων Ε-Διακυβέρνηση (Ανανέωση Αδειών, Φορολογία, κτλ.) Αρχεία Προσωπικού, Πελατών, κτλ (Οργανισμοί, Εταιρείες, κτλ.) Λιανική Πώληση και Διαδικτυακά Καταστήματα Τηλεπικοινωνίες, και άπειρες άλλες εφαρμογές…. Γιατί ένα από τα μεγαλύτερα ποσοστά απασχόλησης αποφοίτων της Πληροφορικής είναι στο χώρο των Πληροφοριακών Συστημάτων (Βάσεων Δεδομένων)
Διάγραμμα Παρουσίασης Τι είναι οι Βάσεις Δεδομένων; Γιατί Παρουσιάζουν τόσο Ενδιαφέρον; Ποια είναι τα Πλεονεκτήματα των Βάσεων Δεδομένων; Προκλήσεις Μέλλοντος;
Ποια τα Πλεονεκτήματα των ΒΔ; 1) Ανεξαρτησία Προγράμματος-Δεδομένων (Program-data independence) δηλ., Δυνατότητα αλλαγής της Φυσικής Δομής δεδομένων χωρίς να επηρεαστούν τα Προγράμματα (DBMS Application Programs / Queries) DB DBMS Database System Program
Ποια τα Πλεονεκτήματα των ΒΔ; 2) Δυνατότητα Εκτέλεσης Δηλωτικών Επερωτήσεων μέσω Γενικής Διεπαφής Ο Χρήστης διατυπώνει τι επιθυμεί να ανακτήσει χωρίς να ορίζει πως (δηλ., αλγόριθμο) θέλει να γίνει η ανάκτηση δεδομένων. SELECT Course_number FROM COURSE WHERE Credit_hours<4 AND Department=‘CS’ DB Database System
Ποια τα Πλεονεκτήματα των ΒΔ; 3) Δυνατότητα Επιβολής Κανόνων Ακεραιότητας Π.χ., Επιβολή κανόνα: «Κανένα μάθημα δεν μπορεί να λαμβάνει πάνω από 10 Διδακτικές Μονάδες» Παράδειγμα σε SQL-DDL: CREATE TABLE COURSE ( CourseID INT PRIMARY KEY, Units INT NOT NULL CHECK (Units<11)….) 4) Δυνατότητα Εκτέλεσης Σκανδαλών (Triggers) Π.χ., «Σε κάθε νέα εισαγωγή δεδομένων στον πίνακα COURSE στείλε ένα EMAIL στη Γραμματεία» 5) Ταυτόχρονη Επεξεργασία Πολλαπλών Δοσοληψιών Διασφαλίζει ότι τα δεδομένα θα παραμένουν σε συνεπή (consistent) κατάσταση (δηλαδή είτε όλα αποθηκεύονται ή τίποτα!) … Μέσω Υποσυστήματος Ταυτοχρονίας.
Ποια τα Πλεονεκτήματα των ΒΔ; (Έλεγχος Ταυτοχρονίας) Ψευδοκώδικας Δοσοληψίας Deposit (amount, account#) { x = read(ARRAY[account#]); write(ARRAY[account#], amount + x); } Θεωρήστε: ARRAY[7] = €100 T1: Deposit1(100, 7) T2: Deposit2(50, 7) Εκτέλεση 1 Εκτέλεση 2 T1 Read1 Write1 T2 Read2 Write2 T1 Read1 Write1 T2 Read2 Write2 150€ ! WRONG 250€ (Correct)
Ποια τα Πλεονεκτήματα των ΒΔ; Μέτρα Προστασίας και Ασφάλειας Δυνατότητα περιορισμού μη-εξουδιοτημένων (unauthorized) προσβάσεων στα δεδομένα. Μέσω Υποσυστήματος Ασφάλειας (Security) Διασφάλιση Μόνιμης Αποθήκευσης Δεδομένων Κάθε ολοκληρωμένη δοσοληψία (πρόγραμμα βάσης) θα καταγράψει μόνιμα τα αποτελέσματα στη βάση. Μέσω Υποσυστήματος Ανάκαμψης (Recovery) Προχωρημένες Δυνατότητες: Διασύνδεση με Διαδίκτυο, Εξόρυξη Δεδομένων (Data Mining), Ανάκτηση Δεδομένων (Information Retrieval), Γεωγραφικά Δεδομένα, Αναφορές (Reports), κτλ.
Ποια τα Πλεονεκτήματα των ΒΔ; Επιτρέπει σε ένα οργανισμό να ανακαλύψει / ορίσει τα δεδομένα του: Π.χ., Σχεδιάζοντας και Υλοποιώντας τη βάση UNIVERSITY προτυποποιείται ότι το STUDENT.Name είναι Αλφαριθμητική Ακολουθία 30 χαρακτήρων. Μειωμένος χρόνος ανάπτυξης εφαρμογών Υπολογίζεται ότι ο χρόνος ανάπτυξης εφαρμογών με βάσεις μειώνεται κατά 75-84%. Ευελιξία Εύκολη μετάβαση σε άλλο προμηθευτή βάσης δεδομενων (με εργαλεία EXPORT).
Διάγραμμα Παρουσίασης Τι είναι οι Βάσεις Δεδομένων; Γιατί Παρουσιάζουν τόσο Ενδιαφέρον; Ποια είναι τα Πλεονεκτήματα των Βάσεων Δεδομένων; Προκλήσεις Μέλλοντος;
Προκλήσεις Μέλλοντος στις ΒΔ; #1) Μετατόπιση Απαιτήσεων Λειτουργιών Από ΒΔ Αλφαριθμητικών Δεδομένων σε ΒΔ εικόνων, ήχου, γεωγραφικών δεδομένων, δικτυακών δεδομένων, κτλ. Αναζήτηση Εικόνων SELECT * FROM IMAGES WHERE most_similar_to(A) O1 O2 O3 O4 O5
Προκλήσεις Μέλλοντος στις ΒΔ; #2) Μετατόπιση Πλατφόρμας Από Συμβατικούς Διαθέτες σε Κέντρα Δεδομένων και Μικροσυσκευές Sun’s Container-based Data Center
Προκλήσεις Μέλλοντος στις ΒΔ; Google Cloud Datacenter in Oregon, USA, 2010 45,000 Servers
Προκλήσεις Μέλλοντος στις ΒΔ; Συλλογή Ροών Δεδομένων Από Αισθητήρες
Προκλήσεις Μέλλοντος στις ΒΔ; Συλλογή Ροών Δεδομένων Από Αισθητήρες
Προκλήσεις Μέλλοντος στις ΒΔ; #3) Μετατόπιση Μεγέθους ΒΔ Παράδειγμα Sprint Telecom (Αμερική): 5ή Μεγαλύτερη ΒΔ στον Κοσμο* Καταγραφή δεδομένων συνδιάλεξης (π.χ., ο X τηλεφώνησε του Υ για 10 λεπτά και 20 δευτερόλεπτα) 2,85 τρισεκατομμύρια (x1012) εγγραφές! 385 εκατομμύρια (x106) νέες εγγραφές την ημέρα! Σε εξαιρετικές περιπτώσεις μέχρι και 70,000 νέες εγγραφές το Δευτερόλεπτο! * 1η μεγαλύτερη: World Data Centre for Climate, MPI, Γερμανία, 220 Terabytes δεδομένων.
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Για την ανάπτυξη μιας Σχεσιακής Βάσης δεδομένων ακολουθούνται τα ακόλουθα βήματα Ανάλυση Απαιτήσεων (Requirement Analysis): Ο Αναλυτής του συστήματος προετοιμάζει ένα έγγραφο απαιτήσεων με την βοήθεια του πελάτη. Τι δεδομένα να αποθηκεύονται και που; Τι εφαρμογές θα αναπτυχθούν πάνω από τα δεδομένα; Ποιες πράξεις/διαδικασίες πρέπει να υποστηριχθούν και με τι απαιτήσεις επίδοσης; Εννοιολογική Σχεδίαση Βάσης (Conceptual Database Design): O DB Designer ετοιμάζει ένα ER διάγραμμα το οποίο μπορεί να γίνει αντιληπτό στο πελάτη (για επικύρωση) Το διάγραμμα αυτό πρέπει να ορθό, πλήρες και αποδοτικό για να είναι εύκολη η μετατροπή στο επόμενο στάδιο.
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Αποτέλεσμα: Διάγραμμα ER 6
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Λογική Σχεδίαση Βάσης (Logical Database Design): Μετατροπή του ER διαγράμματος σε ένα (Σχεσιακό) Σχήμα Βάσης. Στιγμιότυπο Διαγράμματος Δομής Δεδομένων (Data Structure Diagram) στον SQL Server Management Studio (ουσιαστικά αναπαράσταση του σχεσιακού σχήματος)
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Συστατικά της Βάσης Δεδομένων που έχουν δημιουργηθεί μέχρι στιγμή Database System DBMS Catalog Tables
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; D. Εκλέπτυνση Σχήματος (Schema Refinement): Ανάλυση σχήματος για εντοπισμό τυχαίων προβλημάτων π.χ., Student(ssn, vehicleID, motorID). Αποφυγή πολλών κενών τιμών π.χ., Εάν ο Κώστας ΔΕΝ έχει vehicle και motor τότε δημιουργείται η μη επιθυμητή εγγραφή (111, NULL, NULL); BAD (112, NULL, KLT15); BAD (113, XKJDL, NULL); BAD (113, HJDDL, KST139); OK
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; D. Δημιουργία Εσωτερικών Προγραμμάτων (Sprocs, UDFs, Triggers): DBMS SProcs UDFs Views Triggers Catalog Tables
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Φυσικός Σχεδιασμός Βάσης Έλεγχος ότι η βάση θα ικανοποιεί τις απαιτήσεις επίδοσης/φόρτου κτλ. τα οποία επιβάλλουν οι απαιτήσεις του εγγράφου ανάλυσης. Υλοποίηση Εφαρμογής και Μηχανισμών Ασφάλειας (Application & Security Design)
Ποια είναι η Διαδικασία Ανάπτυξης ΒΔ; Προγραμματισμός Εφαρμογών DBMS Programming Language (π.χ., JAVA, C, C#,…) SProcs UDFs Interfaces: JDBC, ODBC, κτλ. Views Web Languages (PHP, Python, ASP, Ruby, Perl) Triggers Catalog/ Indexes Tables
Παράδειγμα: Βάση Δεδομένων μίας Εταιρίας Περιγραφή των απαιτήσεων Η εταιρία είναι οργανωμένη σε τμήματα(departments). Κάθε τμήμα έχει μοναδικό όνομα(name), αριθμό (number), και συγκεκριμένο προσωπικό (employee). Απαιτείται η αποθήκευση της ημερομηνίας έναρξης (start date) της δουλειάς κάποιου εργαζομένου. Επίσης κάθε τμήμα έχει διαφορετικές τοποθεσίες (locations). Κάθε τμήμα έχει υπό την ευθύνη του κάποια έργα(projects), κάθε ένα από τα οποία έχουν μοναδικό όνομα (name), μοναδικό αριθμό (unique number), και τοποθεσία εκτέλεσης (single location).
Παράδειγμα: Βάση Δεδομένων μίας Εταιρίας Αποθηκεύουμε κάθε ενός εργαζομένου τα στοιχεία name, SSN, address, salary, sex, και birth date. Ένας εργαζόμενος βρίσκεται σε ένα τμήμα αλλά μπορεί να απασχολείται σε παραπάνω του ενός έργα. Απαιτούμε την καταγραφή των αριθμών των ορών (number of hours) ανά εβδομάδα που κάθε ένας υπάλληλος δουλεύει για κάποιο έργο. Επίσης είναι ιδιαίτερα σημαντικό να κρατιούνται οι σχέσεις ανωτερότητας μεταξύ των υπαλλήλων.
E-R Μοντέλο Στο E-R μοντέλο διακρίνουμε Οντότητα Οντότητες - entities Χαρακτηριστικά - attributes Σχέσεις – relationships Οντότητα Ένα αντικείμενο ή γεγονός του πραγματικού κόσμου Φυσική οντότητα / Εννοιολογική Οντότητα:Αυτοκίνητο-Εργασία
E-R Μοντέλο Χαρακτηριστικά(Attributes) Μια σειρά ιδιοτήτων που περιγράφουν μια οντότητα (entity) Μια οντότητα έχει ΤΙΜΕΣ για κάθε ένα από τα χαρακτηριστικά
Τύποι Χαρακτηριστικών Απλά-Σύνθετα (Simple vs. Composite) Απλά ΑΤΟΜΙΚΑ χαρακτηριστικά-Σύνθετα χαρακτηριστικά π.χ. Ηλικία-διεύθυνση(street, city, state, zip) Μια ιεραρχία σύνθετου χαρακτηριστικού:
Τύποι Χαρακτηριστικών Μονότιμα – Πολυότιμα Μονότιμα: Επιδέχονται μιας τιμής Πολυότιμα: Επιδέχονται πολλών τιμών π.χ. τα χρώματα ενός αυτοκινήτου Απευθείας-Εξαγώμενα(Stored vs. Derived Attributes) birth date vs. age (calculated from birth date) Σύνθετα Χαρακτηριστικά Τα σύνθετα και τα πολυότιμα μπορούν να είναι εμφωλευμένα
Τύποι Οντοτήτων Τύπος Οντότητας Περιγράφει την ΣΥΛΛΟΓΗ αντικειμένων με το ίδια ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ π.χ. ΕΤΑΙΡΕΙΑ, ΥΠΑΛΛΗΛΟΣ Μια οντότητα είναι ένα ΣΤΥΓΜΙΟΤΥΠΟ(instance) ενός τύπου οντότητας Συνεπώς όλες οι οντότητες που έχουν ίδια χαρακτηριστικά εμπίπτουν στον ίδιο ΤΥΠΟ
Χαρακτηριστικά Κλειδιά(Key Attributes) Χαρακτηριστικό κλειδί Attribute(s) of an entity type for which each entity must have a unique value Βασικός Περιορισμός: Κάθε οντότητα θα πρέπει να έχει ΤΟΥΛΑΧΙΣΤΟΝ ΕΝΑ χαρακτηριστικό κλειδί Σύνθετο κλειδί: Registration(State, RegistrationNumber)
Αρχικό E-R Διάγραμμα Πρωταρχική Εννοιολογική Σχεδίαση Καθορισμός των Τύπων των Οντοτήτων και των Χαρακτηριστικών Δεν περιλαμβάνονται οι σχέσεις Όσο αφορά την βάση δεδομένων της Εταιρίας: Η Οντότητα ΤΜΗΜΑ με χαρακτηριστικά Name, Number, Location, Manager, και ManagerStartDate. Η τοποθεσία είναι το μοναδικό πολυότιμο χαρακτηριστικό. Το όνομα και ο αριθμός είναι ΜΟΝΑΔΙΚΑ.
Αρχικό E-R Διάγραμμα Η Οντότητα PROJECT με χαρακτηριστικά Name, Number, Location , ControllingDepartment. Η Οντότητα εργαζόμενος EMPLOYEE με χαρακτηριστικά Name, SSN, Sex, Address, Salary, BirthDate, Department, και Supervisor. An entity type DEPENDENT with attributes Employee, DependentName, Sex, BirthDate, and Relationship (to the employee).
Σχέσεις-Relationships Σχέση Είναι η συσχέτιση δύο ή περισσοτέρων ΔΙΑΚΡΙΤΩΝ ΟΝΤΟΤΗΤΩΝ Στιγμιότυπο σχέσης Μια συσχέτιση μεταξύ δύο οντοτήτων που ανήκουν σε διαφορετικούς τύπους οντοτήτων Ο Γιάννης δουλεύει στο τμήμα ΛΟΓΙΣΤΗΡΙΟ
Σχέσεις-Relationships Τύπος Σχέσης-Relationship Type WORKS_IN (EMPLOYEE:DEPARTMENT) Μπορεί να έχει ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ Σύνολο Σχέσεων-Relationship Set Ένα σύνολο Στιγμιότυπων Σχέσεων ιδίου τύπου
Σχέσεις-Relationships Βαθμός Σχέσης-Degree of Relationship Καθορίζει τον αριθμό των αντικειμένων που συμμετέχουν Δυαδική σχέση: βαθμός 2 Ternary relationship: βαθμός 3 Ρόλοι σχέσεων-Relationship Roles The roles of participating entity types in a relationship type (e.g., WORKS_IN) EMPLOYEE as worker, DEPT. as employer
Τύποι Σχέσεων(Types) Πολλαπλές σχέσεις-Multiple Relationships Παραπάνω από ένας τύπος σχέσης μπορεί να υπάρχει για δύο ίδιες οντότητες Οι συμμετέχουσες οντότητες μπορούν να παίζουν διαφορετικούς ρόλους σε διαφορετικούς τύπους σχέσεων MANAGES (EMPLOYEE:DEPARTMENT) WORKS_IN (EMPLOYEE:DEPARTMENT)
Τύποι Σχέσεων(Types) Αναδρομικός Τύπος Σχέσης(Recursive) Μια σχέση μπορεί να συσχετίζει δύο οντότητες του ιδίου τύπου π.χ. SUPERVISION (EMPLOYEE:EMPLOYEE) Η σχέση SUPERVISION συσχετίζει τον EMPLOYEE την μια φορά με ρόλο superviseeκαι την άλλη με ρόλο supervisor.
Περιορισμοί Σχέσεων(Constraints) Προέρχονται από τον εξωτερικό κόσμο Κάθε εργαζόμενος δουλεύει σε ένα μόνο τμήμα Κάθε εργαζόμενος δουλεύει σε πολλά project Κάθε τμήμα έχει manager Κάθε project ελέγχεται από ένα τμήμα Δομικοί περιορισμοί ως προς Το Cardinality Και τους Συμμετέχοντες
Cardinality Σχέσης(πλήθος σχέσης) Cardinality Ratio ΚΑΘΟΡΙΖΕΙ ΤΩΝ ΑΡΙΘΜΟ ΤΩΝ ΣΤΙΓΜΙΟΤΥΠΩΝ ΤΩΝ ΣΧΕΣΕΩΝ ΣΤΗΝ ΟΠΟΙΑ ΜΕΤΕΧΕΙ ΜΙΑ ΟΝΤΟΤΗΤΑ 1:1 (κάθε οντότητα μπορεί να συμμετέχει μια μόνο φορά) 1:N (Η μια οντότητα μπορεί να συμμετάσχει μια φορά και η άλλη πολλές) M:N (Κάθε οντότητα μπορεί να συμμετάσχει πολλές φορές) WORKS_ON (EMPLOYEE:PROJECT) = M:N WORKS_FOR (EMPLOYEE:DEPT) = N:1
Περιορισμοί Συμμετοχής-Participation Constraints Καθορίζουν αν κάθε οντότητα πρέπει να συμμετέχει σε μια σχέση για να υπάρχει Ολική Συμμετοχή(Total) ΕΞΑΡΤΗΣΗ ΥΠΑΡΞΗΣ (existence dependency) Κάθε οντότητα αναγκαστικά συμμετέχει σε μια σχέση DEPARTMENT with respect to MANAGES DEPENDENT to DEPENDENTS_OF
Περιορισμοί Συμμετοχής-Participation Constraints Μερική Συμμετοχή(Partial) Κάποιες οντότητες μπορούν να μην συμμετέχουν σε μια σχέση EMPLOYEE to MANAGES, EMPLOYEE to DEPENDENTS_OF
Χαρακτηριστικά των σχέσεων(Attributes) Οι τύποι των σχέσεων μπορεί να έχουν χαρακτηριστικά NumberOfHours for WORKS_ON StartDate for MANAGES
Ασθενείς Τύποι Οντοτήτων-Weak Entity Types Ασθενής Τύπος Οντότητας Μια Οντότητα χωρίς μοναδικό κλειδί (παραβιάζει το key constraint) Συμμετέχει σε μια σχέση με ένα identifying (owner) τύπο οντότητας Διαθέτει ένα μερικό κλειδί (ένα σύνολο χαρακτηριστικών που μπορούν να προσδιορίσουν μερικώς την οντότητα) Έχει ολική συμμετοχή σε μια σχέση
Βελτιστοποιώντας το E-R Καθορισμός Σχέσεων Αλλάζουμε όλα τα χαρακτηριστικά που υποδηλώνουν σχέση σε τύπο σχέσης: Manager from DEPT., Supervisor from EMPLOYEE Προσδιορίζουμε cardinality,συμμετοχή και περιορισμούς Παράδειγμα της Εταιρείας MANAGES (EMPOYEE:DEPARTMENT) = 1:1 (partial:total), has ‘StartDate’ attribute
Βελτιστοποιώντας το E-R Παράδειγμα της Εταιρείας WORKS_FOR (EMPLOYEE:DEPT) = N:1 (t:t) CONTROLS (DEPT:PROJECT) = 1:N (p:t) SUPERVISION (EMPLOYEE_supervisor: EMPLOYEE_supervisee) = 1:N (p:p) WORKS_ON(EMPOYEE:PROJECT) = M:N (t:t), has ‘Hours’ attribute DEPENDENTS_OF (EMPOYEE:DEPENDENT) = 1:N (p:t), DEPENDENT as a weak entity type
Συμβάσεις στα διαγράμματα E-R Τύποι Οντοτήτων Ισχυρός τύπος οντότητας Ασθενής Τύπος EMPLOYEE DEPENDENT
Συμβάσεις στα διαγράμματα E-R Τύποι Σχέσεων Τύπος σχέσης Ολική συμμετοχή : διπλή γραμμή Μερική συμμετοχή: μονή γραμμή HAS DEPENDENTS_OF
Συμβάσεις στα διαγράμματα E-R Χαρακτηριστικά(Attributes) Oval σχήματα Τα σύνθετα χαρακτηριστικά έχουν δενδρική δομή Τα πολιότιμα σε διπλά oval Τα εξαγόμενα χαρακτηριστικά με διακεκομένες Τα χαρακτηριστικά κλειδιά: υπογραμμισμένα
Συμβάσεις στα διαγράμματα E-R
Άλλες Συμβάσεις στα διαγράμματα E-R Επιλογή χαρακτηριστικών ονομάτων Οντότητες και σχέσεις με κεφαλαία Τα χαρακτηριστικά με κεφαλαίο το πρώτο γράμμα ΟΙ ΣΧΕΣΕΙΣΑΠΟ ΑΡΙΣΤΕΡΑ ΠΡΟΣ ΤΑ ΔΕΞΙΑ
Σχεδιαστικές Αρχές E-R Διαγραμμάτων Σχεδιασμός Σχήματος Μια διαδικασία επαναληπτικής βελτιστοποίησης αρχικό σχέδιο βελτιώσεις τελικό σχέδιο Σχεδιαστικές Επιλογές Κάποια αφηρημένη έννοια αρχικά μοντελοποιείται ως ένα χαρακτηριστικό και στην συνέχεια αν χρειαστεί σαν σχέση Κάποιο χαρακτηριστικό το οποίο υπάρχει σε πάρα πολλές οντότητες μπορεί να αποτελέσει την δική του οντότητα
Δομή παρουσίασης Εισαγωγή στις Βάσεις Δεδομένων Έννοιες και Αρχιτεκτονική ενός DBMS Μοντελοποίηση Δεδομένων (entity-relationship model) Σχεσιακό Μοντέλο (relational model)
Κατηγοριοποίηση Μοντελοποίησης Δεδομένων Εννοιολογικό-Conceptual (high-level) Αντιπροσωπευτικό-Representational (implementation-level) Φυσικό-Physical (low-level) Θα ασχοληθούμε με την μετατροπή ενός E-R σε ΣΧΕΣΙΑΚΟ σχήμα βάσης δεδομένων
Relational Model Concepts Η βάση δεδομένων είναι συλλογή πινάκων που αντιπροσωπεύουν ΟΝΤΟΤΗΤΕΣ ΚΑΙ ΣΧΕΣΕΙΣ Το όνομα του πίνακα είναι ο τίτλος της σχέσης Οι στήλες(Columns) αντιπροσωπεύουν τα χαρακτηριστικά Οι γραμμές(rows ή tuples) στα στιγμιότυπα
attribute tuple Entity-Relation
Χαρακτηριστικά σχεσιακής αναπαράστασης Η σειρά των tupples ΔΕΝ ΠΑΙΖΕΙ ΑΠΟΛΥΤΩΣ ΚΑΝΕΝΑ ΡΟΛΟ
Σχεσιακοί Περιορισμοί-Relational Constraints Domain Constraints Η τιμή κάθε χαρακτηριστικού Ai θα πρέπει να είναι αδιαίρετη Key Constraints: Superkey Για οποιαδήποτε διακριτά tuples t1 and t2 in r(R) t1SK t2SK (SK είναι υποσύνολο των attributes)
Σχεσιακοί Περιορισμοί-Relational Constraints Key Constraints: Candidate key Είναι το ελάχιστο superkey Είναι το superkey στο οποίο η αφαίρεση ενός attribute (SK – {Ai}) οδηγεί στο να πάψει να είναι SK Ένας πίνακας μπορεί να έχει πολλά υποψήφια κλειδιά το primary key (PK) επιλέγεται από τα υποψήφια κλειδιά
Σχεσιακοί Περιορισμοί-Relational Constraints Superkey {LicenseNumber, Make} {LicenseNumber, EngineSerialNumber, make, model} {LicenseNumber, make, model} Key (Candidate Key) {LicenseNumber}, {EngineSerialNumber} Primary Key Select one candidate key: {LicenseNumber}
Σχεσιακοί Περιορισμοί-Relational Constraints Entity Integrity Constraints Constraints on null: Κάποια χαρακτηριστικά δεν μπορεί να είναι null Κανένα πρωτεύων κλειδί δεν μπορεί να είναι null γιατί χρησιμοποιείται για τον προσδιορισμό του tuple
Σχεσιακοί Περιορισμοί-Relational Constraints Referential Integrity Constraints Καθορίζονται σχέσεις μεταξύ των πινάκων έτσι ώστε να εξασφαλιστεί η συνοχή ανάμεσα στα tuples To κάθε tuple σε ένα πίνακα (R1) που αναφέρετε σε άλλον (R2) πρέπει να εξασφαλίζει την ύπαρξη του R1:referencing relation, R2:referenced relation
Σχεσιακοί Περιορισμοί-Relational Constraints Referential Integrity Constraints Τα tuples στην referencing relation R1 έχουν foreign key (FK) που ΣΥΣΧΕΤΙΖΕΙ το primary key της referenced relation R2 Το tuple t1 in R1 λέμε οτι αναφέρεται στο tuple t2 in R2 if t1[FK] = t2[PK] ΟΙ ΤΙΜΕΣ ΤΩΝ του foreign key στην R1 ΠΡΕΠΕΙ ΝΑ ΤΑΙΡΙΑΖΟΥΝ με τις τιμές του primary key στην R2
Λειτουργίες-Operations Update Operations Insert, Delete, Modify Αλλάζουν την κατάσταση της Βάσης Δεδομένων Δεν πρέπει να παραβιάζουν τους περιορισμούς (domain, key, entity integrity, referential integrity) Retrieval Operations Select, Project, Join, Union, Intersect, … ΚΑΜΙΑ ΑΛΛΑΓΗ ΣΤΟ ΣΤΗΝ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΒΑΣΗΣ ΠΩΣ? Με την χρήση SQL Language
SQL Background SQL Ιστορική εξέλιξη Structured Query Language Standard query γλώσσα για εμπορικά relational DBMSs Κάθε DBMS έχει και τα δικά του extensions Ιστορική εξέλιξη SEQUEL at IBM (1974) on System R IMB DB2 SQL (1983) SQL (SQL1 or SQL-86): first standard version by ANSI and ISO SQL2 (SQL-92): more DDL/DML features SQL3 (SQL-99): object-oriented concepts
Βασικά Queries στην SQL Query Syntax (SELECT Statement) SELECT <attribute list> FROM <table list> WHERE <condition>; Definition SELECT: specifies attributes to be selected FROM : specifies tables to be accessed WHERE: specifies conditions for choosing a subset of tuples <attribute list>: a list of attribute names whose values are to be retrieved. <table list>: a list of the relations names required to process the query. <condition>: conditional expression to identify the tuples to be retrieved. Case insensitive
Βασικά Queries στην SQL SQL Query Example Retrieve the names of all employees who work for the department number 4 SELECT FNAME, LNAME FROM EMPLOYEE WHERE DNO = 4;
Βασικά Queries στην SQL SQL Query Characteristics SQL query result is not a mathematical set (may have duplicate tuples) SELECT SALARY FROM EMPLOYEE WHERE DNO = 4; Resulting relation: (25000, 43000, 25000)
Βασικά Queries στην SQL Implicit vs. Explicit Join Q1) retrieve the name and address of all employees who work for the ‘Research’ Dept. SELECT FNAME,LNAME,ADDRESS FROM DEPARTMENT,EMPLOYEE WHERE DNAME=‘Research’ AND DNUMBER=DNO; FROM DEPARTMENT JOIN EMPLOYEE ON DNUMBER=DNO WHERE DNAME=‘Research’;
Βασικά Queries στην SQL Another Join Example Q2) for every project located in ‘Houston’, list the project #, the controlling department #, and the department manager’s last name SELECT PNUMBER,DNUM,LNAME FROM PROJECT,DEPARTMENT,EMPLOYEE WHERE PLOCATION=‘Houston’ AND DNUM=DNUMBER AND MGRSSN=SSN;
Βασικά Queries στην SQL Qualifying Attributes Qualify attributes by dot notation Prevent ambiguity Format: table.attribute Q1) retrieve the name and address of all employees who work for the ‘Research’ Dept. SELECT FNAME,LNAME,ADDRESS FROM DEPARTMENT,EMPLOYEE WHERE DNAME=‘Research’ AND DEPARTMENT.DNUMBER=EMPLOYEE.DNO;
Βασικά Queries στην SQL Tables as Sets in SQL To eliminate duplicate tuples SELECT DISTINCT SALARY FROM EMPLOYEE WHERE DNO=5; Default is ALL (duplicates are allowed) SELECT ALL SALARY
Βασικά Queries στην SQL Substring Comparison comparison condition on only parts of a character string comparison operator: LIKE %: arbitrary number of characters _ : a single character SELECT FNAME, LNAME FROM EMPLOYEE WHERE FNAME LIKE ‘%Wo%’ AND BDATE LIKE ’195 _ _ _ _ _ _ _’;
Άσκηση Έστω ότι στη ΒΔ ενός βιβλιοπωλείου υπάρχουν οι ακόλουθες σχέσεις: BOOK (BID, TITLE, AID, SUBJECT, QUANTITY-IN-STOCK) AUTHOR (AID, FIRST-NAME, LAST-NAME) CUSTOMER (CID, FIRST-NAME, LAST-NAME) ORDER-DETAILS (OID, BID, QUANTITY) ORDER (OID, CID, ORDER-YEAR) ASSUMPTIONS: Τα πρωτεύοντα κλειδιά είναι υπογραμμισμένα ενώ τα ξένα κλειδιά είναι σε πλάγια γραφή. Κάθε συγγραφέας έχει συγγράψει τουλάχιστον ένα βιβλίο του βιβλιοπωλείου. Κάθε βιβλίο έχει έναν μόνο συγγραφέα. Κάθε παραγγελία γίνεται από έναν μόνο πελάτη και σχετίζεται με μία ή περισσότερες εγγραφές της σχέσης ORDER-DETAILS (π.χ., μία παραγγελία μπορεί να περιλαμβάνει διαφορετικά βιβλία). Σχεδιάστε το Διάγραμμα Οντοτήτων-Συσχετίσεων.
Λύση