1. Ανασκόπηση των Βασικών Εννοιών των Βάσεων Δεδομένων

Σχετικά έγγραφα
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

2. Το Μοντέλο Οντοτήτων- Συσχετίσεων

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

Μοντέλο Οντοτήτων-Συσχετίσεων

Θεωρία Κανονικοποίησης

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

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


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

#5. Σχεσιακό Μοντέλο

Query-by-Example (QBE)

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

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

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

καλών σχεσιακών σχημάτων

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

Κανονικοποίηση. Σημασιολογία Γνωρισμάτων. Άτυπες Οδηγίες. Παράδειγμα. Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ. Περιττές Τιμές και Ανωμαλίες Ενημέρωσης

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεσιακή Άλγεβρα. Κεφάλαιο 4. Database Management Systems, R. Ramakrishnan and J. Gehrke

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης.

Σχεδίαση Β.Δ. (Database Design)

καλών σχεσιακών σχημάτων

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

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

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

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

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

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

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

Lecture 23: Functional Dependencies and Normalization

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων : Σχεσιακή Άλγεβρα 1

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

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

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Διδάσκουσα: Μαρία Χαλκίδη. Βάσεις Δεδομένων, Παν. Πειραιώς

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

Σχεδιασμός μιας Β : Βήματα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.

Διδάσκων: Παναγιώτης Ανδρέου

Μοντέλο Οντοτήτων-Συσχετίσεων

Πληροφορική 2. Βάσεις Δεδομένων (Databases)


Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

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

Επισκόπηση Μαθήµατος

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

Επεξεργασία Ερωτήσεων

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

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

Εισαγωγή στη Σχεσιακή Άλγεβρα

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Εισαγωγή. Σχεδιασµός µιας Β

Κανονικοποίηση. Άτυπες Οδηγίες. Παράδειγµα. Αξιολόγηση Σχεσιακών Σχηµάτων Β. Περιττές Τιµές και Ανωµαλίες Ενηµέρωσης

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

ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

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

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

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Πρόλογος Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

Μοντέλο Οντοτήτων-Συσχετίσεων

Επεξεργασία Ερωτήσεων

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διδάσκων: Παναγιώτης Ανδρέου

Απεικόνιση Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Μοντέλο Δεδομένων

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

Επεξεργασία Ερωτήσεων


Βάσεις εδοµένων. Συνολοθεωρητικές Πράξεις. Ειδικές Πράξεις. Εκφράσεις. Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων. Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός

Το εσωτερικό ενός Σ Β

Κανονικές Μορφές. Συνενώσεις Άνευ Απωλειών. Προσοχή με τις τιμές null στην αποσύνθεση

Διδάσκων: Παναγιώτης Ανδρέου

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Διδάσκουσα: Μαρία Χαλκίδη. Βάσεις Δεδομένων, Παν. Πειραιώς

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

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

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

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

Transcript:

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 1. Ανασκόπηση των Βασικών Εννοιών των Βάσεων Δεδομένων Βάσεις εδομένων Χρήστος ουλκερίδης 5/10/2017

Γνωριμία Καθηγητής: Χρήστος ουλκερίδης (cdoulk@unipi.gr) Ώρες γραφείου (502, Γρ.Λαμπράκη 126): Πέμπτη 11:30 13:30 Και κατόπιν συνεννόησης Ώρες μαθήματος: Πέμπτη 8:15 11:00, Αίθουσα ΓΛ405 Ώρες εργαστηρίου: ΤΒΑ, (4-5 εργαστήρια), Υπεύθ. Χρήστος Μανουσόπουλος 2

Επικοινωνία Ιστοσελίδα μαθήματος: http://evdoxos.ds.unipi.gr/courses/ds101/ Θέματα και υλικό σχετικά με το μάθημα ΙΑΛΕΞΕΙΣ ΑΝΑΚΟΙΝΩΣΕΙΣ ΕΚΦΩΝΗΣΕΙΣ ΕΡΓΑΣΙΩΝ ΠΑΡΑ ΟΣΗ ΕΡΓΑΣΙΩΝ ΕΡΓΑΣΤΗΡΙΟ... 3

Περιεχόμενα Μαθήματος Αποθήκευση στο δίσκο Ευρετήρια Επεξεργασία επερωτήσεων Βελτιστοποίηση επερωτήσεων οσοληψίες Έλεγχος ταυτοχρονισμού Αποκατάσταση συστήματος Επιλεγμένα προχωρημένα θέματα Β 4

Βιβλία Μαθήματος Συστήματα ιαχείρισης Βάσεων εδομένων R. Ramakrishnan και J. Gehrke Συστήματα Βάσεων εδομένων: Η Πλήρης Θεωρία των Βάσεων εδομένων A. Silberschatz, H. F. Korth, S. Sudarshan Θεμελιώδεις Αρχές Συστημάτων Βάσεων εδομένων R. Elmasri και S. B. Navathe 5

Βαθμολογία Ασκήσεις (Α) Εργαστηρίου - Χρήστος Μανουσόπουλος Εξέταση (Ε) Τελικός Βαθμός = max(ε, 0.8*Ε + 0.2*Α) ίσως υπάρξουν και έξτρα ασκήσεις σε προχωρημένα θέματα SQL 6

Διάρθρωση Διάλεξης Βασικές έννοιες βάσεων δεδομένων Εννοιολογικός σχεδιασμός Μοντέλο οντοτήτων-συσχετίσεων Σχεσιακό μοντέλο Σχεσιακή άλγεβρα Κανονικοποίηση 7

Βασικές Έννοιες Βάσεων Δεδομένων

Ορισμοί εδομένα (Data): Γνωστά γεγονότα που μπορούν να καταγραφούν και έχουν κάποια υπονοούμενη σημασία Βάση δεδομένων (Database): Μια συλλογή σχετιζόμενων δεδομένων Σύστημα διαχείρισης βάσεων δεδομένων (DBMS): Ένα πακέτο λογισμικού που επιτρέπει τη δημιουργία, τη χρήση και τη συντήρηση μιας βάσης δεδομένων 9

Εφαρμογές Βάσεων Δεδομένων Τραπεζικές εφαρμογές ιαχείριση λογαρισμών, δανείων, πιστωτικών καρτών Συστήματα κράτησης εισιτηρίων Αεροπορικές, ακτοπλοϊκές γραμμές Εταιρείες Τμήματα μηχανοργάνωσης Λογιστική, μισθοδοσία, αποθήκη, πωλήσεις, πελάτεςπρομηθευτές Πανεπιστήμια Γραμματεία (εγγραφές, βαθμολογία) ιαδίκτυο Ηλεκτρονικά καταστήματα... 10

Γιατί όχι Αρχεία (1) Μειονεκτήματα της χρήσης αρχείων Πλεονασμός δεδομένων (redundancy) και ασυνέπεια (inconsistency) Πολλαπλές μορφές αρχείων, εμφάνιση της πληροφορίας σε διαφορετικά αρχεία υσκολία στην προσπέλαση δεδομένων Ανάγκη νέου προγράμματος για κάθε νέα εργασία Απομόνωση δεδομένων Τα δεδομένα βρίσκονται σε πολλά αρχεία με διαφορετικές μορφές Προβλήματα ακεραιότητας Π.χ. Υπόλοιπο λογαριασμού > 0 Περιορισμοί ακεραιότητας γίνονται μέρος του κώδικα ύσκολο να προστεθούν ή να αλλάξουν οι περιορισμοί 11

Γιατί όχι Αρχεία (2) Ατομικότητα ενημερώσεων Όταν εκτελείται μέρος των ενημερώσεων, τα δεδομένα μπορεί να είναι ασυνεπή Ταυτόχρονη προσπέλαση από πολλαπλούς χρήστες Μπορεί να οδηγήσει σε ασυνέπειες Προβλήματα ασφάλειας Π.χ. Μεταφορά σε λογαριασμό Π.χ. Ταυτόχρονη ανάγνωση υπολοίπου λογαριασμού και ανάληψη 12

Βασικές Λειτουργίες μιας Βάσης Δεδομένων Ορισμός μιας βάσης δεδομένων σε όρους τύπων δεδομένων, δομών και περιορισμών ημιουργία ή φόρτωση της βάσης σε δευτερεύον μέσο αποθήκευσης ιαχείριση της βάσης Επερωτήσεις, εξαγωγή αναφορών, εισαγωγές, διαγραφές και ενημερώσεις του περιεχομένου Ταυτόχρονη επεξεργασία και διαμοιρασμός από ένα σύνολο προγραμμάτων και χρηστών ιατηρώντας την εγκυρότητα και συνοχή των δεδομένων 13

Βασικές Λειτουργίες μιας Βάσης Δεδομένων Άλλα χαρακτηριστικά Μέτρα προστασίας και ασφάλειας, ώστε να αποτραπεί η μη εξουσιοδοτημένη πρόσβαση Παρουσίαση και οπτικοποίηση των δεδομένων 14

Σύστημα Διαχείρισης Βάσεων Δεδομένων Χρήστες/Προγραμματιστές Σύστημα ιαχείρισης Βάσης εδομένων Λογισμικό Σ Β Προγράμματα εφαρμογών/ερωτήσεις Λογισμικό επεξεργασίας ερωτήσεων/προγραμμάτων Λογισμικό προσπέλασης αποθηκευμένων δεδομένων Αποθηκευμένος ορισμός της Βάσης εδομένων (Μεταδεδομένα) Αποθηκευμένη Βάση εδομένων 15

Επίπεδα Αφαίρεσης Πολλές όψεις Πώς οι χρήστες βλέπουν τα δεδομένα Ένα εννοιολογικό σχήμα Περιγράφει τη λογική οργάνωση Όψη 1 Όψη 2 Όψη 3 Εννοιολογικό Σχήμα Φυσικό Σχήμα Ένα φυσικό σχήμα Περιγράφει τα αρχεία και τους δείκτες 16

Παράδειγμα Βάσης Δεδομένων: ΠΑΝΕΠΙΣΤΗΜΙΟ Εννοιολογικό σχήμα ΦΟΙΤΗΤΗΣ ΗΛΩΝΕΙ ΜΑΘΗΜΑ Όνομα Αριθ.Μητρώου Έτος Κωδικός Όνομα Εξάμηνο Φυσικό σχήμα Όνομα Αριθ.Μητρώου Έτος Νίκος 21 2 Ελένη 15 4 Όνομα Κωδικός Νίκος 1 Ελένη 1 Ελένη 3 Κωδικός Όνομα Εξάμηνο 1 Βάσεις 7 2 Σήματα 8 3 Φυσική 1 17

Παράδειγμα (Πολλαπλές Όψεις) Όνομα Αριθ.Μητ. Κωδικός Όνομα Εξάμηνο Βαθμός Αναλυτική βαθμολογία Νίκος 21 1 Βάσεις 7 10 Νίκος 21 2 Σήματα 8 9 Νίκος 21 15 Πεδία 3 10 Νίκος 21 6 Μαθηματικά 1 8 Κωδικός Όνομα Προαπαιτούμενο 1 Βάσεις 6 15 Πεδία 6 Προαπαιτούμενα μαθήματα 18

Βασικά Χαρακτηριστικά της Προσέγγισης Βάσεων Δεδομένων (1) Αυτοπεριγραφική φύση ενός συστήματος βάσης δεδομένων Ο ορισμός ή η περιγραφή της βάσης αποθηκεύεται στον κατάλογο του συστήματος. Οι πληροφορίες αυτές λέγονται μετα-δεδομένα. Απομόνωση μεταξύ προγραμμάτων και δεδομένων Ονομάζεται ανεξαρτησία προγράμματος-δεδομένων Επιτρέπει την αλλαγή της δομής αρχείων, δίχως την ανάγκη μετατροπής των προγραμμάτων προσπέλασης 19

Ανεξαρτησία των Δεδομένων Οι εφαρμογές είναι ανεξάρτητες του τρόπου οργάνωσης και αποθήκευσης των δεδομένων Ένα από τα σημαντικότερα πλεονεκτήματα της χρήσης ενός Σ Β Λογική ανεξαρτησία των δεδομένων Ανεξαρτησία από αλλαγές στη λογική οργάνωση των δεδομένων Φυσική ανεξαρτησία των δεδομένων Ανεξαρτησία από αλλαγές στη φυσική οργάνωση των δεδομένων 20

Βασικά Χαρακτηριστικά της Προσέγγισης Βάσεων Δεδομένων (2) Αφαίρεση δεδομένων Το μοντέλο δεδομένων αποκρύπτει λεπτομέρειες του τρόπου αποθήκευσης και παρέχει στους χρήστες μια εννοιολογική αναπαράσταση της βάσης δεδομένων. Υποστήριξη πολλαπλών όψεων των δεδομένων Κάθε χρήστης μπορεί να βλέπει μια διαφορετική όψη της βάσης δεδομένων, η οποία περιγράφει μόνο τα δεδομένα που τον ενδιαφέρουν 21

Βασικά Χαρακτηριστικά της Προσέγγισης Βάσεων Δεδομένων (3) ιαμοιρασμός δεδομένων Επιτρέπει σε πολλούς χρήστες να προσπελάζουν τη βάση δεδομένων την ίδια χρονική στιγμή Επεξεργασία δοσοληψιών από πολλούς χρήστες Έλεγχος ταυτόχρονης προσπέλασης Π.χ. κρατήσεις αεροπορικών εισιτηρίων Εγγυάται ότι κάθε δοσοληψία εκτελείται σωστά Πολλοί χρήστες ενημερώνουν τα ίδια δεδομένα Online Transaction Processing (OLTP) 22

Εννοιολογικός Σχεδιασμός

Σχεδίαση Βάσεων Δεδομένων Συλλογή και Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Βάσης εδομένων Λογικός Σχεδιασμός Βάσης εδομένων Φυσικός Σχεδιασμός Βάσης εδομένων 24

Εννοιολογική Σχεδίαση Συλλογή και ανάλυση απαιτήσεων οδηγεί σε μια περιγραφή του μικρόκοσμου Χρήση του μοντέλου Οντοτήτων-Συσχετίσεων (Entity Relationship Model) Εύρεση οντοτήτων και συσχετίσεων Εύρεση γνωρισμάτων Καθορισμός περιορισμών ακεραιότητας Σε επόμενο βήμα Μετάφραση του διαγράμματος οντοτήτων-συσχετίσεων σε σχεσιακό μοντέλο 25

Οντότητα (Entity) Αντικείμενο με φυσική ύπαρξη Π.χ. άνθρωπος, αυτοκίνητο, σπίτι, εργαζόμενος Αντικείμενο ιδεατά υπαρκτό Π.χ. εταιρεία, εργασία, πανεπιστημιακό μάθημα ΕΡΓΑΖΟΜΕΝΟΣ ΕΤΑΙΡΕΙΑ Μια οντότητα μπορεί να έχει πολλά στιγμιότυπα Έχει συγκεκριμένες ιδιότητες που λέγονται γνωρίσματα (attributes) Μια συγκεκριμένη οντότητα έχει μία τιμή για κάθε γνώρισμά της Νίκος Γιώργος Σοφία Όνομα: Νίκος ιεύθυνση: Τρίπολης 13 Ηλικία: 33 Τηλέφωνο: 2710123456 26

Γνώρισμα (Attribute) Αποτελεί την περιγραφή μιας ιδιότητας που έχει μια οντότητα Ένα υποσύνολο των γνωρισμάτων χρησιμοποιείται ως αναγνωριστικό ή κλειδί (key) Το κάθε στιγμιότυπο της οντότητας έχει διαφορετικό κλειδί Μια οντότητα μπορεί να έχει περισσότερα από ένα κλειδιά Ένα από αυτά επιλέγεται ως πρωτεύον κλειδί (primary key) 1 ΕΡΓΑΖΟΜΕΝΟΣ Αριθ.Ταυτ. Ηλικία Όνομα e1 33 Νίκος e2 2 27 Σοφία 27

Γνωρίσματα Κλειδιά - Περιορισμοί Περιορισμός κλειδιού (key constraint) ή μοναδικότητας (uniqueness constraint) Γνώρισμα με διακεκριμένες τιμές για κάθε οντότητα Π.χ. Το γνώρισμα Όνομα της οντότητας ΕΤΑΙΡΕΙΑ Μονοσήμαντος προσδιορισμός της οντότητας εν μπορεί να υπάρχουν δύο οντότητες με το ίδιο κλειδί υνατότητα ύπαρξης πολλαπλών κλειδιών σε μια οντότητα 28

Τύποι Γνωρισμάτων ιεύθυνση Απλά και σύνθετα Πόλη ιεύθ.οδού Τ.Κ. Οδός Αριθμός Μονότιμα και πλειότιμα e1 Άσπρο,Κόκκινο Opel ΑΒΓ1234 Αποθηκευμένα και παραγόμενα Ηλικία ΦΟΙΤΗΤΗΣ Ημ.Γέννησης 29

Τιμές Null και Σύνολα Τιμών Γνωρισμάτων Null: ειδική τιμή, που δηλώνει Μη ύπαρξη δυνατής τιμής Π.χ. Αριθμός διαμερίσματος όταν πρόκειται για μονοκατοικία Έλλειψη γνώσης της τιμής (υπάρχει όμως δυνατή τιμή) Π.χ. ε γνωρίζω το τηλέφωνο ενός εργαζόμενου Κάθε απλό γνώρισμα ενός τύπου οντοτήτων συνδέεται με ένα σύνολο τιμών ή πεδίο ορισμού Π.χ. Ηλικία [16,70] 30

Συσχετίσεις Συνδέουν δύο ή περισσότερες οντότητες Π.χ. ΕΡΓΑΖΟΜΕΝΟΣ ανήκει σε ΤΜΗΜΑ Ένας τύπος συσχέτισης R μεταξύ n τύπων οντοτήτων E 1, E 2,, E n ορίζει ένα σύνολο συνδέσεων μεταξύ των οντοτήτων ΕΡΓΑΖΟΜΕΝΟΣ ΑΝΗΚΕΙ ΤΜΗΜΑ Κάθε στιγμιότυπο r i μιας συσχέτισης R είναι μια σύνδεση οντοτήτων e 1 r 1 d 1 31

Παράδειγμα: Συσχέτιση και Στιγμιότυπο ΕΡΓΑΖΟΜΕΝΟΣ ΑΝΗΚΕΙ ΤΜΗΜΑ e 1 r 1 d 1 e 2 e 3 e 4 r 2 r 3 d 2 d 3 d 4 32

Περιορισμοί Τύπων Συσχετίσεων Λόγος πληθικότητας (cardinality ratio) Προσδιορίζει τον αριθμό των στιγμιοτύπων μιας συσχέτισης στα οποία μπορεί να συμμετέχει μια οντότητα Ένα-προς-ένα (1:1) Ένα-προς-πολλά (1:Ν) ή πολλά-προς-ένα (Ν:1) Πολλά-προς-πολλά (Μ:Ν) Συμμετοχή Ολική Μερική 1 1 ΕΡΓΑΖΟΜΕΝΟΣ ΙΕΥΘΥΝΕΙ ΤΜΗΜΑ Ν 1 ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΑΖΕΤΑΙ ΤΜΗΜΑ Μ Ν ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΟ ΕΡΓΑΖΟΜΕΝΟΣ 1 1 ΙΕΥΘΥΝΕΙ ΤΜΗΜΑ 33

Παράδειγμα: 1-1 με Μερική Συμμετοχή του ΕΡΓΑΖΟΜΕΝΟΣ και Ολική του ΕΡΓΟ ΕΡΓΑΖΟΜΕΝΟΣ ΙΕΥΘΥΝΕΙ ΕΡΓΟ e 1 r 1 d 1 e 2 e 3 r 2 d 2 e 4 r 3 d 3 34

Παράδειγμα: Μ-Ν Συσχέτιση ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΟ e 1 e 2 e 3 r 1 r 2 r 3 r 4 d 1 d 2 e 4 r 5 r 6 d 3 r 7 35

Γνωρίσματα Τύπων Συσχετίσεων Μια συσχέτιση μπορεί να έχει γνωρίσματα Π.χ. Γνώρισμα Ώρες στη ΙΕΥΘΥΝΕΙ Π.χ. Γνώρισμα Ημ.Έναρξης στην ΑΠΑΣΧΟΛΗΣΗ Γνωρίσματα συσχετίσεων 1:1 και 1:Ν Μπορούν να μεταφερθούν σε έναν από τους συμμετέχοντες τύπους οντοτήτων Γνωρίσματα συσχετίσεων Μ:Ν Υποχρεωτικά (!) ως γνώρισμα συσχέτισης 1 1 ΕΡΓΑΖΟΜΕΝΟΣ ΙΕΥΘΥΝΕΙ ΤΜΗΜΑ Ώρες Ν 1 ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΑΖΕΤΑΙ ΤΜΗΜΑ Ημ.Έναρξης Μ Ν ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΟ Ώρες 36

ν-αδικές Συσχετίσεις Συσχετίσεις με βαθμό μεγαλύτερο του 2 Ένας τριαδικός τύπος συσχέτισης αναπαριστά περισσότερη πληροφορία από ότι τρεις δυαδικοί τύποι συσχετίσεων Γιατί; ΠΡΟΜΗΘΕΥΤΗΣ ΠΡΟΜΗΘΕΥΕΙ ΕΡΓΟ ΠΡΟΜΗΘΕΥΤΗΣ ΠΡΟΜΗΘΕΥΕΙ ΕΡΓΟ ΑΝΤΙΚΕΙΜΕΝΟ ΜΠΟΡΕΙ ΝΑ ΠΡΟΜΗΘΕΥΤΕΙ ΑΝΤΙΚΕΙΜΕΝΟ ΧΡΗΣΙΜΟΠΟΙΕΙ 37

Το Σχεσιακό Μοντέλο

Σχεδίαση Βάσεων Δεδομένων Συλλογή και Ανάλυση Απαιτήσεων Εννοιολογικός Σχεδιασμός Βάσης εδομένων Μοντέλο Οντοτήτων Συσχετίσεων Λογικός Σχεδιασμός Βάσης εδομένων Σχεσιακό Μοντέλο Φυσικός Σχεδιασμός Βάσης εδομένων 39

Γενικά για το Σχεσιακό Μοντέλο Παριστάνει τη Β ως μια συλλογή από σχέσεις Άτυπα, μια σχέση μοιάζει με ένα πίνακα (table) ή αρχείο Κάθε γραμμή Μια συλλογή από τιμές που σχετίζονται Κάθε στήλη Προσδιορίζει πώς πρέπει να ερμηνευτούν οι τιμές δεδομένων σε κάθε γραμμή Όλες οι τιμές σε μια στήλη είναι του ίδιου τύπου δεδομένων 40

Ορολογία Ονόματα Γνωρισμάτων Πίνακας (Σχέση) ΦΟΙΤΗΤΗΣ Όνομα Αριθ.Μητρώου Ημ.Γέννησης Τμήμα Γιάννης 012345 06/12/1990 Αρχιτεκτόνων Νίκος 123456 12/10/1989 Ηλεκτρολόγων Γιάννης 234567 09/01/1988 Μηχανολόγων Ελένη 345678 22/11/1989 Χημικών Μαρία 456789 01/06/1990 Ηλεκτρολόγων Πλειάδες (tuples) 41

Πεδίο Ορισμού Σύνολο από ατομικές τιμές (δε διασπώνται) Παραδείγματα πεδίων ορισμού Τηλ_Αριθμοί_Ελλάδος το σύνολο των 10-ψήφιων αριθμών τηλεφώνου Αριθμός_Μητρώου Το σύνολο των επιτρεπόμενων 13-ψήφιων αριθμών Τύπος δεδομένων (π.χ. αλφαριθμητικό, ακέραιος) Μορφοποίηση (π.χ. (ddd)ddd-dddd όπου d ψηφίο) Σε κάθε πεδίο ορισμού δίνεται ένα όνομα, ένας τύπος δεδομένων και μια μορφοποίηση 42

Σχήμα Σχέσης Σχήμα σχέσης (relation schema) R αποτελείται από ένα όνομα σχέσης R και μια λίστα από γνωρίσματα A 1,A 2,...,A n R(A 1,A 2,...,A n ) Πεδίο ορισμού του A i dom(a i ) Βαθμός σχέσης Το πλήθος n των γνωρισμάτων του σχήματός της Παράδειγμα σχέσης βαθμού 4 ΦΟΙΤΗΤΗΣ(Όνομα, ΑρΜητρώου, ΗμΓέννησης, Τμήμα) dom(αρμητρώου)=αριθμός_μητρώου 43

Σχέση Σχέση (ή στιγμιότυπο σχέσης) r του σχήματος σχέσης R είναι ένα σύνολο από n- πλειάδες (n-tuples) r= {t 1,t 2,...,t m } t = <v 1,v 2,...,v n > v i ανήκει στο dom(a i ) ή είναι null Παράδειγμα n-πλειάδας (Γιάννης, 012345, 06/12/1990, Αρχιτεκτόνων) 44

Διάταξη Πλειάδων σε μια Σχέση Οι πλειάδες σε μια σχέση δεν έχουν συγκεκριμένη διάταξη Όπως τα στοιχεία ενός συνόλου Όμως όταν οι εγγραφές ενός αρχείου αποθηκεύονται φυσικά στο δίσκο, πάντα υπάρχει διάταξη Όνομα Αριθ.Μητρώου Όνομα Αριθ.Μητρώου Γιάννης 012345 Νίκος 123456 Γιάννης 234567 = Νίκος 123456 Γιάννης 234567 Γιάννης 012345 45

Διάταξη Τιμών σε μια Πλειάδα Μια n-πλειάδα είναι μια διατεταγμένη λίστα n τιμών Προσοχή λοιπόν στη σειρά των γνωρισμάτων, π.χ. (Γιάννης, 012345, 06/12/1990, Αρχιτεκτόνων) ΣΩΣΤΟ (012345, Γιάννης, 06/12/1990, Αρχιτεκτόνων) ΛΑΘΟΣ 46

Περιορισμοί στο Σχεσιακό Μοντέλο υνατοί περιορισμοί σε ένα σχεσιακό σχήμα βάσης δεδομένων Περιορισμοί πεδίου ορισμού Περιορισμοί κλειδιού Περιορισμοί ακεραιότητας οντοτήτων Περιορισμοί αναφορικής ακεραιότητας 47

Περιορισμοί Πεδίου Ορισμού Η τιμή κάθε γνωρίσματος Α πρέπει να είναι μία ατομική τιμή από το πεδίο ορισμού dom(a) Ακέραιοι (short integer, integer, long integer) Πραγματικοί (float, double) Συμβολοσειρές σταθερού και μεταβλητού μήκους Ημερομηνία/Ώρα Χρηματικά ποσά Υποδιαστήματα τιμών (ακέραιοι από 16 ως 70) Αριθμήσιμοι τύποι δεδομένων (κόκκινο,άσπρο,μπλε) 48

Περιορισμοί Κλειδιού Όλα τα στοιχεία μιας σχέσης είναι διαφορετικά, αφού αποτελούν στοιχεία συνόλου Ένα υποσύνολο γνωρισμάτων για το οποίο κανένα ζευγάρι πλειάδων δεν έχει τον ίδιο συνδυασμό τιμών ονομάζεται υπερ-κλειδί (super-key) Κάθε σχέση έχει τουλάχιστον ένα υπερ-κλειδί, το σύνολο των γνωρισμάτων της Ένα κλειδί (key) Κ ενός σχήματος σχέσης R είναι ένα υπερ-κλειδί από το οποίο εάν αφαιρέσουμε οποιοδήποτε γνώρισμα Α, απομένει ένα σύνολο γνωρισμάτων Κ που δεν είναι υπερ-κλειδί της R Ένα κλειδί είναι ένα ελάχιστο υπερ-κλειδί Ένα σχήμα σχέσης μπορεί να έχει περισσότερα από ένα κλειδιά, που ονομάζονται υποψήφια κλειδιά (candidate keys) Ένα από αυτά επιλέγεται ως πρωτεύον κλειδί (primary key) Όνομα Αριθ.Μητρώου Ημ.Γέννησης Τμήμα 49

Σχεσιακό Σχήμα Βάσης Δεδομένων Ένα σχεσιακό σχήμα βάσης δεδομένων (relational database schema) S είναι ένα σύνολο από σχεσιακά σχήματα S = {R 1,R 2,,R m } και ένα σύνολο από περιορισμούς ακεραιότητας (integrity constraints) Ένα στιγμιότυπο σχεσιακής βάσης δεδομένων (relational database instance) DB του S είναι ένα σύνολο από στιγμιότυπα σχέσεων DB = {r 1,r 2,,r m }, τέτοια ώστε κάθε r i είναι ένα στιγμιότυπο του R i και οι σχέσεις r i ικανοποιούν τους περιορισμούς ακεραιότητας 50

Παράδειγμα Σχεσιακού Σχήματος ΒΔ 51

Απεικόνιση Μοντέλου Ο/Σ σε Σχέσεις (1) Αλγόριθμος Απεικόνισης ΒΗΜΑ 1: Μετατροπή οντοτήτων σε σχέσεις Καθορισμός πρωτεύοντων κλειδιών ΒΗΜΑ 2: Μετατροπή μη ισχυρών τύπων οντοτήτων σε σχέσεις, με ξένο κλειδί το πρωτεύον κλειδί του ιδιοκτήτη τύπου οντότητας Πρωτεύον κλειδί είναι ο συνδυασμός μερικού κλειδιού και πρωτεύοντος κλειδιού ιδιοκτήτη ΒΗΜΑ 3: Για κάθε 1:1 συσχέτιση R που συνδέει τις σχέσεις S και T, βάζουμε στην S ως ξένο κλειδί το πρωτεύον κλειδί της T Η S είναι η οντότητα που έχει ολική συμμετοχή H S παίρνει και τα γνωρίσματα της R ΒΗΜΑ 4: Για κάθε 1:Ν συσχέτιση R που συνδέει τις σχέσεις S και T(έστω S στην πλευρά Ν), βάζουμε στην S ως ξένο κλειδί το πρωτεύον κλειδί της T H S παίρνει και τα γνωρίσματα της R. 52

Απεικόνιση Μοντέλου Ο/Σ σε Σχέσεις (2) Αλγόριθμος Απεικόνισης (συνέχεια) ΒΗΜΑ 5: Για κάθε Μ:Ν συσχέτιση R δημιουργείται μια νέα σχέση Συμπεριλαμβάνονται σαν γνωρίσματα ξένων κλειδιών τα πρωτεύοντα κλειδιά των οντοτήτων Επίσης, συμπεριλαμβάνονται σαν γνωρίσματα της νέας σχέσης τυχόν γνωρίσματα της συσχέτισης Πρωτεύον κλειδί είναι ο συνδυασμός όλων των ξένων κλειδιών ΒΗΜΑ 6: Κάθε πλειότιμο γνώρισμα Α αναπαρίσταται ως νέα σχέση με γνώρισμα το Α Η νέα σχέση έχει ως ξένο κλειδί Κ, το κλειδί της οντότητας, και ο συνδυασμός των Α και Κ είναι το πρωτεύον κλειδί ΒΗΜΑ 7: Κάθε ν-αδικός τύπος συσχέτισης R αναπαρίσταται ως νέα σχέση Συμπεριλαμβάνονται σαν γνωρίσματα ξένων κλειδιών τα πρωτεύοντα κλειδιά των οντοτήτων Επίσης, συμπεριλαμβάνονται σαν γνωρίσματα της νέας σχέσης τυχόν γνωρίσματα της συσχέτισης Πρωτεύον κλειδί είναι ο συνδυασμός όλων των ξένων κλειδιών 53

Παράδειγμα 54

Λύση 55

Σχεσιακή Άλγεβρα

Γενικά Σχεσιακή άλγεβρα Συλλογή από πράξεις που χρησιμοποιούνται για το χειρισμό ολόκληρων σχέσεων Ένας τελεστής της σχεσιακής άλγεβρας δέχεται ένα (ή δύο) στιγμιότυπα σχέσεων ως είσοδο επεξεργασίας παράγει μια σχέση-αποτέλεσμα στην έξοδο Επιτρέπεται η σύνθεση τελεστών ώστε να δημιουργείται ένα σύνθετο αίτημα: η παράσταση σχεσιακής άλγεβρας 57

Ορισμός Μια παράσταση είναι: Ή μία σχέση Ή ένας μοναδιαίος τελεστής της άλγεβρας που επιδρά σε μία παράσταση Ή ένας δυαδικός τελεστής της άλγεβρας που επιδρά σε δύο παραστάσεις 58

Βασικοί Τελεστές Σχεσιακής Άλγεβρας Επιλογή Επιλογή συγκεκριμένων γραμμών (πλειάδων) μιας σχέσης Προβολή Επιλογή συγκεκριμένων στηλών μιας σχέσης Ένωση, τομή, διαφορά Πράξεις από τη συνολοθεωρία, παίρνουν ως είσοδο το ίδιο σχεσιακό σχήμα Μετονομασία Σχέσεων και γνωρισμάτων Συζεύξεις και καρτεσιανό γινόμενο Συνθέσεις σχέσεων ιαίρεση 59

Τρέχον Παράδειγμα (1) Sailors (sid: integer, sname: string, rating: integer, age:real) Boats (bid: integer, bname:string, color: string) Reserves (sid: integer, bid:integer, day:date) 60

Τρέχον Παράδειγμα (2) sid sname rating age 22 Dustin 7 45.0 31 Lubber 8 55.5 58 Rusty 10 35.0 Στιγμιότυπο S1 της Sailors sid bid day sid sname rating age 28 yuppy 9 35.0 31 Lubber 8 55.5 44 guppy 5 35.0 58 Rusty 10 35.0 Στιγμιότυπο S2 της Sailors 22 101 10/10/96 58 103 11/12/96 Στιγμιότυπο R1 της Reserves 61

Επιλογή (Select) Επιλογή (σ) υποσυνόλου πλειάδων μιας σχέσης που ικανοποιούν τη συνθήκη επιλογής Συνθήκη επιλογής είναι μια λογική παράσταση Boole Το σχήμα στο αποτέλεσμα της επιλογής ταυτίζεται με το σχήμα της σχέσης στην είσοδο Επιλογή των έμπειρων ναυτών (βαθμός μεγαλύτερος του 8) σ <συνθήκη επιλογής> (<όνομα σχέσης>) σ rating>8 (S2) sid sname rating age 28 yuppy 9 35.0 58 Rusty 10 35.0 62

Προβολή (Project) Εξαγωγή (π) στηλών από μια σχέση Το σχήμα της σχέσης στην έξοδο αποτελείται από τα πεδία που προβάλλονται π <λίστα γνωρισμάτων> (<όνομα σχέσης>) π sname,rating (S2) π age (S2) sname rating yuppy 9 Lubber 8 guppy 5 Rusty 10 age 35.0 55.5 Γιατί μόνο 2 εγγραφές; Θυμηθείτε: η σχέση είναι σύνολο! Άρα απαλοιφή διπλοτύπων 63

Παράδειγμα Παράστασης Εύρεση ονομάτων και βαθμών υψηλόβαθμων ναυτικών π sname,rating (σ rating>8 (S2)) sname rating yuppy 9 Rusty 10 64

Ένωση (Union) Επιστρέφει ένα στιγμιότυπο σχέσης (R U S) όπου συμπεριλαμβάνονται όλες οι πλειάδες οι οποίες καταχωρούνται είτε στο στιγμιότυπο της R είτε στο στιγμιότυπο της S R και S είναι συμβατά ως προς την ένωση όταν Έχουν τον ίδιο αριθμό πεδίων Τα αντίστοιχα πεδία έχουν κοινό πεδίο ορισμού Αντιμεταθετική R U S = S U R Προσεταιριστική R U (S U T) = (R U S) U T S1 U S2 sid sname rating age 22 Dustin 7 45.0 31 Lubber 8 55.5 58 Rusty 10 35.0 28 yuppy 9 35.0 44 guppy 5 35.0 65

Τομή (Intersection) Επιστρέφει ένα στιγμιότυπο σχέσης (R S) στο οποίο συμπεριλαμβάνονται όλες οι πλειάδες που υπάρχουν και στο R και στο S Τα R και S πρέπει να είναι συμβατά ως προς την ένωση Αντιμεταθετική R S= S R Προσεταιριστική R (S T) = (R S) T S1 S2 sid sname rating age 31 Lubber 8 55.5 58 Rusty 10 35.0 66

Διαφορά Επιστρέφει ένα στιγμιότυπο σχέσης (R - S) στο οποίο συμπεριλαμβάνονται όλες οι πλειάδες του στιγμιότυπου της R οι οποίες δεν περιέχονται στο στιγμιότυπο της S Τα R και S πρέπει να είναι συμβατά ως προς την ένωση εν είναι αντιμεταθετική R S S R S1 - S2 sid sname rating age 22 Dustin 7 45.0 67

Καρτεσιανό Γινόμενο (Cross Join) Επιστρέφει ένα στιγμιότυπο σχέσης (R x S) της οποίας το σχήμα περιλαμβάνει όλα τα πεδία του R(με την ίδια σειρά όπως στο R) ακολουθούμενα από όλα τα πεδία του S(με την ίδια σειρά όπως στο S) (sid) sname rating age (sid) bid Day S1 x R1 22 Dustin 7 45.0 22 101 10/10/96 22 Dustin 7 45.0 58 103 11/12/96 31 Lubber 8 55.5 22 101 10/10/96 31 Lubber 8 55.5 58 103 11/12/96 58 Rusty 10 35.0 22 101 10/10/96 58 Rusty 10 35.0 58 103 11/12/96 68

Ακολουθίες Πράξεων και Μετονομασία Αλλαγή ονόματος σχέσης ή ορισμένων πεδίων ημιουργία ενδιάμεσων σχέσεων αποτελέσματα Εναλλακτικός τρόπος αντί της μίας παράστασης που έχει εμφωλευμένες άλλες παραστάσεις Αντί για π sname,rating (σ rating>8 (S2)) Έχουμε ισοδύναμα ΥΨΗΛΟΒΑΘΜΟΙ σ rating>8 (S2) R(ΟΝΟΜΑ,ΒΑΘΜΟΣ) π sname,rating (ΥΨΗΛΟΒΑΘΜΟΙ) ΟΝΟΜΑ ΒΑΘΜΟΣ yuppy 9 Rusty 10 69

Συζεύξεις (Joins) Η πράξη της σύζευξης χρησιμοποιείται για να συνδυαστούν σε ενιαίες πλειάδες κάποιες συσχετιζόμενες πλειάδες από δύο σχέσεις R <συνθήκη σύζευξης>s Σημαντική πράξη διότι επιτρέπει να επεξεργαστούμε συσχετίσεις μεταξύ σχέσεων Μπορεί να ορισθεί ως καρτεσιανό γινόμενο το οποίο ακολουθούν επιλογές και προβολές 70

Συνθήκη Σύζευξης Συνθήκη σύζευξης είναι της μορφής <συνθήκη> AND <συνθήκη> AND AND <συνθήκη> Συνθήκη της μορφής A i θ Β j, όπου A i είναι ένα γνώρισμα της R, Β j είναι ένα γνώρισμα της S A i και Β j έχουν το ίδιο πεδίο ορισμού θ είναι ένας από τους τελεστές {=, <, <=, >, >=, } R1 S1.sid<R1.sid S1 (sid) sname rating age (sid) bid day 22 Dustin 7 45.0 58 103 11/12/96 31 Lubber 8 55.5 58 103 11/12/96 71

Σύζευξη Ισότητας Μια σύζευξη που ο μόνος τελεστής σύγκρισης που χρησιμοποιείται είναι αυτός της ισότητας λέγεται σύζευξη ισότητας (EQUIJOIN) Το αποτέλεσμα περιλαμβάνει τα πεδία της δομής του R ακολουθούμενα από εκείνα τα πεδία του S που δε συμμετέχουν στη συνθήκη σύζευξης R1 S1.sid=R1.sid S1 sid sname rating age bid day 22 Dustin 7 45.0 101 10/10/96 58 Lubber 10 35.0 103 11/12/96 72

Φυσική Σύζευξη Μια σύζευξη ισότητας (R S) όπου ορίζεται να ισχύουν ισότητες ανάμεσα σε όλα τα πεδία τα οποία συμβαίνει να έχουν το ίδιο όνομα στις δομές των R και S R S είναι ισοδύναμο με R S.sid=R.sid S όταν το μόνο πεδίο που έχουν κοινό οι R και S είναι το sid Επιλεκτικότητα σύζευξης (join selectivity) Το αναμενόμενο μέγεθος αποτελέσματος της σύζευξης διαιρούμενο διά του μεγίστου μεγέθους n R *n S 73

Διαίρεση Sno S1 S1 S1 S1 S2 S2 S3 S4 S4 A Pno P1 P2 P3 P4 P1 P2 P2 P2 P4 Για δύο στιγμιότυπα σχέσεων R(a,b) και S(b), το αποτέλεσμα της διαίρεσης R/S είναι ένα σύνολο με όλες τις τιμές a(σε μορφή μονόστηλων πλειάδων) όπου για κάθε μία πλειάδα b του S υπάρχει η αντίστοιχη πλειάδα <a,b> στο R B1 pno P2 B2 pno P2 P4 B3 pno P1 P2 P4 A/B1 sno S1 S2 S3 S4 A/B2 A/B3 sno S1 S4 sno S1 74

Πλήρες Σύνολο Πράξεων Έχει δειχθεί ότι το σύνολο των πράξεων της σχεσιακής άλγεβρας {σ,π,u,-,x} είναι ένα πλήρες (complete) σύνολο, κατά την έννοια ότι κάθε άλλη πράξη της σχεσιακής άλγεβρας μπορεί να εκφραστεί ως μια ακολουθία πράξεων από το σύνολο αυτό R S = (R U S) ((R - S) U (S - R)) R <συνθήκη>s = σ <συνθήκη> R X S 75

Επιπλέον Σχεσιακές Πράξεις Κάποιοι ευρέως χρησιμοποιούμενοι τύποι ερωτημάτων (από εμπορικά σχεσιακά Σ Β ) δεν μπορούν να εκφραστούν στη σχεσιακή άλγεβρα Ταξινόμηση Συναθροιστικές συναρτήσεις Πράξη εξωτερικής σύζευξης Πράξη εξωτερικής ένωσης 76

Ταξινόμηση οθείσας μια σχέσης R και μιας λίστας γνωρισμάτων ταξινόμησης L, είναι δυνατή η ταξινόμηση της R ως προς τις τιμές των γνωρισμάτων της L(με τη σειρά που εμφανίζονται) R1 TAU L (R) Αν για δύο πλειάδες όλες οι τιμές των γνωρισμάτων της L είναι ίδιες, τότε αυτές ταξινομούνται αυθαίρετα S1 TAU age (S1) sid sname rating age S1 58 Rusty 10 35.0 22 Dustin 7 45.0 31 Lubber 8 55.5 77

Συναθροιστικές Συναρτήσεις Άθροισμα (sum), μέσος όρος (average), μέγιστο (maximum), ελάχιστο (minimum), πλήθος (count), κ.ά. Συνήθως προηγείται ομαδοποίηση πλειάδων με βάση την τιμή κάποιων γνωρισμάτων <γνωρίσματα ομαδοποίησης> ƒ <λίστα συνάρτησης> (όνομα σχέσης) Παράδειγμα Εύρεση κωδικού τμήματος, πλήθος εργαζομένων στο τμήμα και μέσου όρου του μισθού αυτών ΑΡΙΘ_ΤΜ ƒ COUNT ΑΡ_ΤΑΥΤ, AVERAGE ΜΙΣΘΟΣ (ΕΡΓΑΖΟΜΕΝΟΣ) 78

Εξωτερική Σύζευξη Οι τύποι σύζευξης που έχουμε δει ως τώρα Απαλοίφουν από το αποτέλεσμα πλειάδες χωρίς συσχετιζόμενη πλειάδα Απαλοίφουν πλειάδες με τιμές null στα γνωρίσματα σύζευξης Ένα σύνολο από πράξεις που λέγονται Εξωτερικές Συζεύξεις (Outer Joins) διατηρούν στο αποτέλεσμα όλες τις πλειάδες της S ή της R ή και των δύο Αριστερή Εξωτερική Σύζευξη (Left Outer Join) εξιά Εξωτερική Σύζευξη (Right Outer Join) Πλήρης Εξωτερική Σύζευξη (Full Outer Join) 79

Παράδειγμα Φέρε όλους τους ναύτες από στο στιγμιότυπο S1 και τις κρατήσεις R1 για βάρκες, ανεξάρτητα από το εάν έχουν κάνει κρατήσεις S1 LEFT OUTER JOIN S1.sid=R1.sid R1 (sid) sname rating age (sid) bid day 22 Dustin 7 45.0 22 101 10/10/96 31 Lubber 8 55.5 null null null 58 Rusty 10 35.0 58 103 11/12/96 80

Εξωτερική Ένωση (Outer Union) Παράγει ένωση πλειάδων από μη συμβατές προς την ένωση σχέσεις, αλλά από σχέσεις που είναι μερικά συμβατές μόνο (partially compatible) Παράδειγμα Τι θα παράγει η εξωτερική ένωση των ακόλουθων σχέσεων; ΦΟΙΤΗΤΗΣ(Όνομα, Αρ_Ταυτ, Τμήμα, Επιβλέπων) ΕΠ(Όνομα, Αρ_Ταυτ, Τμήμα, Βαθμίδα) 81

Παράδειγμα (1) Να βρεθούν τα ονόματα των ναυτικών που έχουν κάνει κράτηση στη βάρκα με κωδικό 103 π sname ((σ bid=103 Reserves) Sailors) π sname (σ bid=103 (Reserves Sailors) ύο ισοδύναμες παραστάσεις (ως προς το αποτέλεσμα) μπορεί να έχουν διαφορετικό κόστος επεξεργασίας Βελτιστοποιητής αιτημάτων (query optimizer) 82

Παράδειγμα (2) Να βρεθούν τα ονόματα των ναυτικών οι οποίοι έχουν κάνει κράτηση σε κόκκινη βάρκα π sname ((σ color= red Boats) Reserves Sailors) π sname (π sid ((π bid (σ color= red Boats)) Reserves) Sailors) Σε ποια παράσταση θα προσπαθούσε να καταλήξει ένας σχεσιακός βελτιστοποιητής αιτημάτων; 83

Παράδειγμα (3) Να βρεθούν τα ονόματα των ναυτικών οι οποίοι έχουν κάνει κράτηση είτε σε κόκκινη είτε σε πράσινη βάρκα TempBoats (σ color= red Boats) U (σ color= green Boats) π sname (TempBoats Reserves Sailors) TempBoats σ color= red OR color= green Boats π sname (TempBoats Reserves Sailors) 84

Κανονικοποίηση

Εισαγωγή στην Κανονικοποίηση Σχεδιασμός ιδεατής βάσης δεδομένων παράγει ένα σύνολο από σχεσιακά σχήματα, και ένα σύνολο περιορισμών ακεραιότητας Μετάβαση από ένα σχεσιακό σχήμα σε ένα βελτιωμένο σχεσιακό σχήμα Κανονικοποίηση (normalization) με χρήση διάσπασης (decomposition) Σχεδίαση σχέσεων Πώς να σχεδιάζουμε «καλές» σχέσεις Το «καλές» αναφέρεται σε στην ορθότητα (correctness) και στην έλλειψη πλεονασμού (redundancy) 86

Διάρθρωση Υπόλοιπης Διάλεξης Εισαγωγή στην τελειοποίηση του σχεσιακού σχήματος Προβλήματα πλεονασμού στα δεδομένα Συναρτησιακές εξαρτήσεις Κανονικές μορφές Κανονικοποίηση ιασπάσεις 87

Προβλήματα που Προκαλεί ο Πλεονασμός Πλεονασμός στην αποθήκευση Η ίδια πληροφορία καταχωρείται πολλές φορές Προβληματική ενημέρωση Όταν ενημερώνεται ένα μόνο αντίγραφο (πολλαπλά καταχωρημένων) δεδομένων προκύπτει ασυνέπεια στο πληροφοριακό περιεχόμενο της Β Προβληματική εισαγωγή Το σχήμα δεν μπορεί να καταχωρήσει μια νέα πληροφορία σε σχέση με άλλη αντίστοιχη πληροφορία της οποίας η καταχώρηση έχει προηγηθεί Προβληματική διαγραφή Το σχήμα δεν μπορεί να διαγράψει κάποια πληροφορία, χωρίς να προκαλείται διαγραφή άλλης σχετικής πληροφορίας 88

Παράδειγμα (1/2) Hourly_Emps(ssn, name, lot, rating, hourly_wages, hours_worked) SNLRWH Έστω ότι ισχύει: R W ηλαδή για κάθε τιμή του rating υπάρχει μία μόνο επιτρεπτή τιμή για το hourly_wages ssn name lot rating hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madayan 35 8 10 40 89

Παράδειγμα (2/2) Προβληματική ενημέρωση εν μπορούμε να αλλάξουμε το W μόνο στην πρώτη πλειάδα Προβληματική εισαγωγή εν μπορούμε να εισάγουμε νέο εργαζόμενο εάν δε γνωρίζουμε το hourly_wages για το συγκεκριμένο rating Προβληματική διαγραφή Εάν διαγράψουμε όλους τους υπαλλήλους με rating=8 χάνουμε την πληροφορία ότι συσχετίζεται με hourly_wages=10 ssn name lot rating hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madayan 35 8 10 40 90

Χρήση Διασπάσεων Εμπειρικά ο πλεονασμός προκύπτει σε ένα σχεσιακό σχήμα όταν επιβάλλονται μη φυσιολογικού τύπου διασυνδέσεις ανάμεσα στα γνωρίσματα Πολλά προβλήματα που σχετίζονται με πλεονασμό μπορούν να αντιμετωπιστούν με την αντικατάσταση ενός πίνακα από μια συλλογή «μικρότερων» πινάκων (διάσπαση μεγάλου πίνακα σε άλλους μικρότερους) 91

Παράδειγμα (συνέχεια) Hourly_Emps2(ssn, name, lot, rating, hours_worked) Wages(rating, hourly_wages) ssn name lot rating hours_worked 1 Attishoo 48 8 40 2 Smiley 22 8 30 3 Smethurst 35 5 30 4 Guidu 35 5 32 5 Madayan 35 8 40 rating hourly_wages 8 10 5 7 92

Προβλήματα που Σχετίζονται με τη Διάσπαση Χρειάζεται να γίνει διάσπαση; Κανονικές μορφές πινάκων Ποια προβλήματα μπορεί να προκαλέσει η διάσπαση; ύο ενδιαφέρουσες ιδιότητες Σύζευξη χωρίς απώλεια πληροφορίας Επαναδημιουργία κάθε στιγμιότυπου του αρχικού πίνακα από τα στιγμιότυπα των μικρότερων πινάκων ιατήρηση συναρτησιακών εξαρτήσεων υνατότητα επιβολής κάθε περιορισμού του αρχικού πίνακα, επιβάλλοντας κάποιους περιορισμούς στους μικρότερους πίνακες Μειονέκτημα των διασπάσεων Ανάγκη σύζευξης πινάκων (joins) για την απάντηση επερωτήσεων (queries) 93

Συναρτησιακές Εξαρτήσεις Η συναρτησιακή εξάρτηση (functional dependency FD) είναι ένα είδος περιορισμού ακεραιότητας (IC) που γενικεύει την έννοια του κλειδιού Έστω R(X,Y, ), τότε θα λέμε ότι ένα στιγμιότυπο r της R ικανοποιεί την FD:XY, όταν για κάθε ζεύγος πλειάδων t 1 και t 2 του r ισχύουν Αν t 1.X=t 2.X => t 1.Y=t 2.Y Παράδειγμα: ABC A B C D A1 B1 C1 A1 B1 C1 A1 B2 C2 A2 B1 C3 D1 D2 D1 D1 94

Εγκυρότητα και Περιορισμοί Κλειδιού Έγκυρο ονομάζεται το στιγμιότυπο ενός πίνακα που ικανοποιεί όλους τους περιορισμούς ακεραιότητας (ICs), καθώς και όλες τις συναρτησιακές εξαρτήσεις (FDs) εν είναι δυνατός ο έλεγχος ισχύος (=δεν παραβιάζεται καμιά FD) μιας συναρτησιακής εξάρτησης FD επί μιας σχέσης R Είναι δυνατός μόνο σε κάποιο στιγμιότυπο r της R Μια FD δεν αποτελεί περιορισμό κλειδιού (στο προηγούμενο παράδειγμα) παρά το ότι δεν παραβιάζεται η ABC, το AB δε συνιστά κλειδί του πίνακα Ο περιορισμός κύριου κλειδιού αποτελεί μια ειδική περίπτωση FD Χ Υ Τα γνωρίσματα που αποτελούν το κλειδί παίζουν το ρόλο του Χ, ενώ το σύνολο όλων των γνωρισμάτων παίζουν το ρόλο του Υ 95

Ιδιότητες Συναρτησιακών Εξαρτήσεων (1/3) Μια FD f λέμε ότι συνεπάγεται από ένα σύνολο F από FD όταν η f ισχύει για το κάθε ένα στιγμιότυπο πίνακα όπου ισχύουν όλες οι συναρτησιακές εξαρτήσεις του F Εγκλεισμός F + του F (closure) είναι το σύνολο όλων των FD που συνεπάγονται από το F Αξιώματα του Armstrong Ανακλαστικότητα: Εάν X Y, τότε X Y Επάυξηση: Εάν Χ Υ, τότε ΧΖ ΥΖ για κάθε Ζ Επαγωγή: Εάν Χ Υ και Υ Ζ, τότε Χ Ζ Αυτοί είναι ισχυροί και πλήρεις κανόνες λογισμού για FD 96

Ιδιότητες Συναρτησιακών Εξαρτήσεων (2/3) ύο επιπλέον κανόνες (που προκύπτουν από τα αξιώματα) Ένωση: Εάν Χ Υ και Χ Ζ, τότε Χ ΥΖ ιάσπαση: Εάν Χ ΥΖ, τότε Χ Υ και Χ Ζ Παράδειγμα: Contracts(cid,sid,jid,did,pid,qty,value) C είναι το κλειδί: C CSJDPQV Η αγορά ενός είδους (P) από ένα πρόγραμμα (J) γίνεται μέσω ενός μόνο συμβολαίου (C): JP C Κάθε τμήμα (D) αγοράζει το πολύ ένα είδος (P) από έναν προμηθευτή (S): SD P JPC και C CSJDPQV συνεπάγονται: JP CSJDPQV SD P συνεπάγεται: SDJ JP SDJ JP και JP CSJDPQV συνεπάγονται: SDJ CSJDPQV 97

Ιδιότητες Συναρτησιακών Εξαρτήσεων (3/3) Ο υπολογισμός του εγκλεισμού ενός συνόλου FD είναι ακριβός (το μέγεθος του εγκλεισμού είναι εκθετικό ως προς το πλήθος των γνωρισμάτων) Αυτό που μας ενδιαφέρει είναι εάν μια δεδομένη FD Χ Υ ανήκει στον εγκλεισμό ενός συνόλου F από FD Ένας αποδοτικός τρόπος ελέγχου Υπολογίζουμε τον εγκλεισμό των γνωρισμάτων Χ + του Χ ως προς το F Είναι ένα σύνολο γνωρισμάτων Α τέτοιο ώστε: Χ Α F + Υπάρχει γραμμικός αλγόριθμος για τον υπολογισμό του Ελέγχουμε εάν το Υ ανήκει στο Χ + Παράδειγμα Το σύνολο F = {A B, B C, CD E} συνεπάγεται το Α Ε; ηλαδή το Α Ε ανήκει στο F + ή ισοδύναμα το Ε ανήκει στο Α + ; 98

Εγκλεισμός Συνόλου Γνωρισμάτων ίνονται: μια σχέση R, ένα σύνολο γνωρισμάτων {Α 1,Α 2,...,Α n } της R, και ενός συνόλου F από FD Να βρεθούν: όλα τα υπόλοιπα γνωρίσματα Β της R έτσι ώστε: {Α 1,Α 2,...,Α n } Β Αλγόριθμος Ξεκινάμε με το σύνολο γνωρισμάτων Κ= {Α 1,Α 2,...,Α n } repeat until no change if (AA B F) and (AA K) and (B K) then πρόσθεσε το B στο Κ 99

Παράδειγμα ΑΒ C AD E B D AF B Πώς θα χρησιμοποιήσουμε τον αλγόριθμο για να ελέγξουμε εάν ένα σύνολο γνωρισμάτων είναι κλειδί; Εγκλεισμός του {Α,Β} = Εγκλεισμός του {Α,F} = Το σύνολο F = {A B, B C, CD E} συνεπάγεται το Α Ε; 100

Χρήση των FD για Παραγωγή Καλών Σχημάτων Ξεκινάμε με ένα σύνολο σχέσεων Ορίζουμε τις FD (και τα κλειδιά) για τις σχέσεις με βάση τη σημασιολογία της εφαρμογής Μετασχηματίζουμε τις σχέσεις σε κανονικές μορφές (κανονικοποίηση) Με χρήση διάσπασης ιαισθητικά «καλό» σχήμα σημαίνει ότι εν υπάρχουν ανώμαλες καταστάσεις Μπορούμε να ανακατασκευάσουμε όλη την αρχική πληροφορία 101

Κανονικές Μορφές Όταν ένα σχεσιακό σχήμα βρίσκεται σε μία κανονική μορφή, γνωρίζουμε ότι συγκεκριμένου τύπου προβλήματα δεν υπάρχουν Πρωτη κανονική μορφή (1NF) Ένας πίνακας είναι σε 1NF όταν κάθε γνώρισμά του καταχωρεί ατομικές τιμές εύτερη κανονική μορφή (2NF) Εάν κάθε γνώρισμα εξαρτάται από ολόκληρο το πρωτεύον κλειδί Εάν κάθε υποψήφιο κλειδί αποτελείται από ένα γνώρισμα, τότε ο πίνακας είναι σε 2NF Τρίτη κανονική μορφή (3NF) Boyce-Codd Normal Form (BCNF) 3NF BCNF 1NF 2NF 102

Κανονική Μορφή Boyce-Codd (BCNF) Μια απλή συνθήκη για την αποφυγή ανωμαλιών από τις σχέσεις Μια σχέση R βρίσκεται σε BCNF, όσον αφορά στις FD της, αν και μόνο αν οποτεδήποτε ισχύει μια μη τετριμμένη εξάρτηση A B στην R, το Α περιέχει κάποιο κλειδί της R Γιατί η παραβίαση αυτής της συνθήκης παράγει μη καλά σχήματα; 103

Παράδειγμα BCNF Hourly_Emps(ssn, name, lot, rating, hourly_wages, hours_worked) Ποιες είναι οι συναρτησιακές εξαρτήσεις; Ποια είναι τα κλειδιά; Βρίσκεται η σχέση σε BCNF; ssn name lot rating hourly_wages hours_worked 1 Attishoo 48 8 10 40 2 Smiley 22 8 10 30 3 Smethurst 35 5 7 30 4 Guidu 35 5 7 32 5 Madayan 35 8 10 40 104

Τρίτη Κανονική Μορφή Η διάσπαση σε BCNF δε διατηρεί τις εξαρτήσεις Μια σχέση R βρίσκεται σε 3NF αν και μόνο αν Για οποιαδήποτε μη τετριμμένη εξάρτηση Χ Αστην R, το Χ περιέχει κάποιο κλειδί της R ή Το Α αποτελεί τμήμα κάποιου κλειδιού της R Είναι συμβιβασμός αντί της BCNF Κάθε BCNF πίνακας είναι και 3NF Η 3NF επιτρέπει κάποιο πλεονασμό 105

Μερική και Μεταβατική Εξάρτηση Έστω μια FD X A που παραβιάζει τη συνθήκη 3NF. ιακρίνονται δύο περιπτώσεις: Το Χ είναι γνήσιο υποσύνολο κάποιου κλειδιού Κ (Μερική Εξάρτηση) ΚΛΕΙ Ι Γνωρίσματα Χ Γνώρισμα Α Το Χ δεν αποτελεί γνήσιο υποσύνολο κανενός κλειδιού (Μεταβατική Εξάρτηση) ΚΛΕΙ Ι Γνωρίσματα Χ Γνώρισμα Α ΚΛΕΙ Ι Γνώρισμα Α Γνωρίσματα Χ 106

Παραδείγματα Σχετικά με 3NF Μερική εξάρτηση Reserves(sid,bid,day,creditcard) (SBDC) Αν ισχύει S C, τα ζεύγη (S,C) καταχωρούνται με πλεονασμό Μεταβατική εξάρτηση Hourly_Emps(SNLRWH) Αν ισχύει R W, τότε ισχύει και: S R W, άρα προβλήματα στην εισαγωγή, ενημέρωση και διαγραφή Πλεονασμός ακόμη κι όταν ο πίνακας είναι 3NF Reserves (SBDC) και ισχύει S C εν είναι 3NF Εάν ισχύει επιπλέον C S Είναι 3NF, διότι το CBD είναι κλειδί Πάλι όμως υπάρχει πλεονασμός στα ζεύγη (S,C) 107

Διασπάσεις Έστω R μια σχέση με γνωρίσματα {Α 1,Α 2,...,Α n } ημιουργήστε δύο σχέσεις R 1 και R 2 με γνωρίσματα {Β 1,Β 2,...,Β m } και {C 1,C 2,...,C l } αντίστοιχα, έτσι ώστε {Β 1,Β 2,...,Β m } {C 1,C 2,...,C l }= {Α 1,Α 2,...,Α n } και 1. η R 1 είναι ο περιορισμός της R πάνω στο {Β 1,Β 2,...,Β m } 2. η R 2 είναι ο περιορισμός της R πάνω στο {C 1,C 2,...,C l } 3. η επανένωση (join) των R 1 και R 2 παράγει την R 108

Ορολογία των Διασπάσεων Ο περιορισμός (1,2) ονομάζεται προβολή και τα διπλότυπα απαλείφονται Η επανένωση στο (3) ονομάζεται σύζευξη Μια διάσπαση που ικανοποιεί το (3) ονομάζεται διάσπαση με σύζευξη χωρίς απώλεια πληροφορίας (lossless-join decomposition) Μόνο τέτοιου είδους διασπάσεις μας ενδιαφέρουν 109

Διάσπαση με Σύζευξη Χωρίς Απώλεια Πληροφορίας Η διάσπαση της R στα X και Y είναι με σύζευξη χωρίς απώλεια πληροφορίας ως προς το F αν και μόνο αν ο εγκλεισμός του F περιλαμβάνει την εξάρτηση X Y X ή την X Y Y Συγκεκριμένα η διάσπαση της R στα ΧΥ και R-Υ είναι με σύζευξη χωρίς απώλεια πληροφορίας, αν το Χ Υ ισχύει πάνω στην R και το Χ Υ είναι κενό S P D s1 p1 d1 s2 p2 d2 s3 p1 d3 ιάσπαση S P s1 s2 s3 p1 p2 p1 P D p1 p2 p1 d1 d2 d3 Ανασύσταση S P D s1 p1 d1 s2 p2 d2 s3 p1 d3 s1 p1 d3 s3 p1 d1 110

Παράδειγμα Hourly_Emps(SNLRWH) και ισχύει R W Παραβιάζεται η 3NF ιάσπαση σε δύο πίνακες SNLRH RW Χωρίς απώλεια πληροφορίας! ιότι (με βάση την προηγούμενη παρατήρηση) ισχύει R W και το R W είναι κενό, οπότε γίνεται διάσπαση σε RW και (Hourly_Emps W) 111

Διασπάσεις που Διατηρούν τις Εξαρτήσεις (1/2) Έστω CSJDPQV, C είναι το κλειδί, JP C και SD P To JP είναι επίσης κλειδί Το SD P παραβιάζει τη BCNF ιάσπαση σε BCNF: CSJDQV και SDP Πρόβλημα: ο έλεγχος JP C απαιτεί σύζευξη ιάσπαση που διατηρεί τις εξαρτήσεις (διαισθητικά) Αν η R διασπαστεί στα Χ, Y και Ζ και επιβάλλουμε τις FD που ισχύουν στα X, στο Υ και στο Ζ, τότε όλες οι FD που ίσχυαν αρχικά στην R πρέπει να εξακολουθούν να ισχύουν Προβολή ενός συνόλου FD F: Αν η R διασπαστεί στα Χ,..., η προβολή F X του F στο X είναι το σύνολο των FD U V του F + (εγκλεισμός του F) για τις οποίες τα U, V ανήκουν στο X 112

Διασπάσεις που Διατηρούν τις Εξαρτήσεις (2/2) Η διάσπαση της R στα X και Y διατηρεί τις εξαρτήσεις αν: (F X F Υ ) + = F + δηλαδή αν θεωρήσουμε μόνο τις εξαρτήσεις του F + που μπορούν να ελεγχθούν στο Χ χωρίς να εξετάσουμε το Υ, και (αντίστοιχα) στο Υ χωρίς να εξετάσουμε το Χ, αυτές συνεπάγονται όλες τις εξαρτήσεις του F + Είναι σημαντικό να θεωρήσουμε το F + κι όχι το F, στον παραπάνω ορισμό Έστω ABC με Α Β, Β C, C A και διασπάμε σε AB και BC Η διάσπαση διατηρεί τις εξαρτήσεις; H C A διατηρείται; Η διατήρηση των εξαρτήσεων δε συνεπάγεται τη σύζευξη χωρίς απώλεια πληροφορίας Έστω ABC με Α Β και διασπάμε σε AB και BC 113

Γιατί να Χρησιμοποιήσουμε Διάσπαση; Η πρώτη ερώτηση που πρέπει να αναλογιστούμε Είναι απαραίτητο να γίνει κάποια διάσπαση; Αν μια σχέση βρίσκεται σε μια κανονική μορφή, τότε συγκεκριμένοι τύποι προβλημάτων ελαχιστοποιούνται/αποφεύγονται Αυτό μπορεί να μας βοηθήσει να αποφασίσουμε εάν είναι καλό να διασπάσουμε μια σχέση Ο ρόλος των FD στον εντοπισμό πλεονασμού Έστω σχέση R με γνωρίσματα τα A, B και C Αν δεν ισχύουν FD: εν υπάρχει πλεονασμός Αν ισχύει (π.χ. Α Β): ιάφορες πλειάδες μπορεί να έχουν την ίδια τιμή για το Α κι αν συμβεί αυτό, τότε όλες θα έχουν την ίδια τιμή και για το Β 114

Διάσπαση σε BCNF Αλγόριθμος διάσπασης σχέσης R σε μια συλλογή BCNF σχέσεων Έστω ότι η FD X A παραβιάζει την BCNF Όπου Χ R και Α ένα απλό γνώρισμα της R Τότε ο πίνακας R διασπάται σε R-A και XA Εάν κάποιο από τα R-A και XA δεν είναι BCNF, εφαρμόζεται αναδρομικά ο αλγόριθμος 115

Παράδειγμα Διάσπασης σε BCNF CSJDPQV SD P JP C SD P J S SDP CSJDQV J S JS 1. Όμως δε διατηρείται η JP C 2. Μπορούμε να προσθέσουμε μία σχέση CJP 3. Πλεονασμός! CJDQV 116

Σχετικά με τη Διάσπαση σε BCNF Η διάσπαση σε BCNF είναι συνεπής-σωστή Χωρίς απώλεια πληροφορίας Το τελικό σύνολο των διασπασμένων σχέσεων μπορεί να διαφέρει, ανάλογα με Ποιο σύνολο FD ξεκινήσαμε Τη σειρά που επιλέξαμε τις FD που παραβίαζαν τη BCNF Τελικά όλα τα αποτελέσματα θα βρίσκονται σε BCNF 117

Διάσπαση σε 3NF Υπάρχει πάντα διάσπαση σε 3NF που διατηρεί τις εξαρτήσεις και είναι χωρίς απώλεια σύζευξης και μπορεί να υπολογιστεί σε πολυωνυμικό χρόνο Μπορεί να χρησιμοποιηθεί ο αλγόριθμος για BCNF Για να εξασφαλιστεί η διατήρηση των εξαρτήσεων Αν το Χ Υ δε διατηρείται, προσθέτουμε τη σχέση ΧΥ Το πρόβλημα είναι ότι μπορεί η ΧΥ να παραβιάζει την 3NF π.χ. θεωρήστε την προσθήκη του CJP για να διατηρήσουμε τη JP C. Τι θα συνέβαινε αν είχαμε επιπλέον και τη J C; Αντί για το αρχικό σύνολο εξαρτήσεων F, χρησιμοποίησε την ελάχιστη κάλυψη του F 118

Ελάχιστη Κάλυψη για το Σύνολο των FD Ελάχιστη κάλυψη G για το σύνολο συναρτησιακών εξαρτήσεων F F + = G + εξί μέρος εξαρτήσεων στο G είναι ένα χαρακτηριστικό Το G είναι το ελάχιστο σύνολο με την πρώτη ιδιότητα Παράδειγμα Οι A B, ABCD E, EF GH, ACDF EG έχουν την ελάχιστη κάλυψη: A B, ACD E, EF G και EF H 119