ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Φυσική Σχεδίαση – Υλοποίηση βάσης ΕΣΔ232 – Οργάνωση Δεδομένων στη.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΚΕΣ 01: Αυτόματος Έλεγχος © 2006 Nicolas Tsapatsoulis Σχεδίαση Σ.Α.Ε: Σύγχρονες Μέθοδοι Σχεδίασης Σ.Α.Ε ΚΕΣ 01 – Αυτόματος Έλεγχος.
Advertisements

Indexing.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
Βάσεις Δεδομένων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασφάλεια και Δικαιοδοσία σε Βάσεις Δεδομένων.
Μοντέλο Οντοτήτων-Συσχετισμών
PL/SQL.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
Τι είναι συνάρτηση Ορισμός
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Ανάλυση Συστημάτων Αυτομάτου Ελέγχου:
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
Βάσεις Δεδομένων Μάθημα 4.
ΔΤΨΣ 150: Ψηφιακή Επεξεργασία Εικόνας © 2005 Nicolas Tsapatsoulis Κατάτμηση Εικόνων: Κατάτμηση με βάση τις περιοχές Τμήμα Διδακτικής της Τεχνολογίας και.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis SQL: Ερωτήματα, προγραμματισμός και εναύσματα ΕΣΔ232 – Οργάνωση Δεδομένων.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Βάσεις Δεδομένων II Ενότητα 2: Το μοντέλο οντοτήτων/συσχετίσεων
Δημιουργία Σχεσιακού μοντέλου από ERD
Βάσεις Δεδομένων Εργαστήριο Ι Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ι Ενότητα 7: H γλώσσα SQL Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
ΒΕΣ 06: Προσαρμοστικά Συστήματα στις Τηλεπικοινωνίες © 2007 Nicolas Tsapatsoulis Προσαρμοστικοί Αλγόριθμοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων: Ο αναδρομικός.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων  Χειρισμός Δεδομένων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό.
Βάσεις Δεδομένων ER-Διάγραμμα.
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων
Σχεσιακό Μοντέλο Δεδομένων
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Βάσεις Δεδομένων Ι Επανάληψη
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Κανονικοποίηση ΤΙ ΕΙΝΑΙ ; Τεχνική Διαδικασία
Βάσεις Δεδομένων και web-based Εφαρμογές
Γ6.4 Μορφοποίηση Πινάκων και Πρωτεύον Κλειδί
POSTGRESQL Η PostgreSQL είναι ένα αντικείμενο-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (object relational database management system - ORDBMS) και.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ενότητα # 5: Περιορισμοί ακεραιότητας
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Μεταγράφημα παρουσίασης:

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Φυσική Σχεδίαση – Υλοποίηση βάσης ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα  Περιεχόμενα  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα Περιεχόμενα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis  Βιβλιογραφία  [Ullman 2007]: Chapter 4  [Seyed 2007]: Chapter 8  [Forta 2005]: Chapter 21  [Oppel 2004]: Chapter 8  [Petersen 2002]: Chapter 5  [Taylor 2000]: Chapters 10, 12  [Teorey 2005]: Chapter 6 Βιβλιογραφία Ενότητας  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis  Η φυσική σχεδίαση αποσκοπεί στο μετασχηματισμό του ER διαγράμματος σε μια βάση δεδομένων. Περιλαμβάνει:  Τη δημιουργία των πινάκων της βάσης:  Τον καθορισμό των πεδίων στους πίνακες  Τον καθορισμό των περιορισμών όσον αφορά τα πεδία των πινάκων, τις επιτρεπτές τιμές τις οποίες λαμβάνουν καθώς και τα ξένα κλειδιά  Η φυσική σχεδίαση της βάσης μπορεί να γίνει είτε με εξειδικευμένο λογισμικό το οποίο συνήθως παρέχεται με το σύστημα DBMS (π.χ. phpMyAdmin για τη βάση MySQL) είτε με κατάλληλες εντολές SQL (συνήθως βασισμένες στην CREATE TABLE και την ALTER TABLE).  Η δεύτερη μεθοδολογία φυσικής υλοποίησης της βάσης (δηλαδή με τη βοήθεια της SQL) είναι λιγότερο εξαρτημένη από το συγκεκριμένο σύστημα DBMS που χρησιμοποιείται Εισαγωγή  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Βασικά βήματα μετασχηματισμού ER διαγράμματος σε βάση  Ο μετασχηματισμός ενός ER διαγράμματος σε βάση δεδομένων περιλαμβάνει αρκετές ενέργειες και ελέγχους. Εντούτοις τα τρία κυριότερα βήματα είναι: 1)Μετασχηματισμός κάθε οντότητας σε πίνακα (με εισαγωγή των κατάλληλων κλειδιών και πεδίων). 2)Δημιουργία ενός πίνακα για κάθε συσχέτιση πολλά προς πολλά. Στον πίνακα συμπεριλαμβάνονται τα πρωτεύοντα κλειδιά των οντοτήτων που συνδέονται με τη συσχέτιση καθώς και τα δεδομένα διασταύρωσης 3)Μετασχηματισμός κάθε τριαδικής (ή μεγαλύτερης πολλαπλότητας) συσχέτισης σε πίνακα ανεξαρτήτως της μορφής της συσχέτισης (π.χ. ένας προς ένα προς ένα, ένα προς πολλά προς ένα, κ.ο.κ) 4)Προσθήκη των κατάλληλων περιορισμών στα πεδία των πινάκων που έχουν δημιουργηθεί στα βήματα (1)-(3)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Μετασχηματισμός οντοτήτων  Όλες οι οντότητες που εμφαίνονται στο ER διάγραμμα μετασχηματίζονται σε πίνακες.  Στους πίνακες περιλαμβάνονται όλα τα πεδία των οντοτήτων ως στήλες  Για κάθε οντότητα που αντιστοιχεί σε μια συσχέτιση «ένα προς πολλά» που αντιστοιχεί στην πλευρά του «πολλά» δημιουργείται στον αντίστοιχο πίνακα ένα ξένο κλειδί με αναφορά στο πρωτεύον κλειδί στην πλευρά του «ένα»  Συσχετίσεις «ένα προς ένα» υποδηλώνουν συχνά κακή σχεδίαση (ιδιαίτερα όταν είναι υποχρεωτικές και προς τις δύο κατευθύνσεις). Αν κατασκευαστούν δύο ξεχωριστοί πίνακες τότε επιλέγεται ο ένας μόνο από αυτούς για να προστεθεί σε αυτόν ξένο κλειδί  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Παράδειγμα  Να κατασκευάσετε τους πίνακες για το πιο κάτω διάγραμμα.  Λύση:  CREATE TABLE Departments (code CHAR(3), name VARCHAR(25), phone VARCHAR(15), sec_name VARCHAR(45), chairman INT(3), PRIMARY KEY(code))  CREATE TABLE Students (sid INT(3), name VARCHAR(20), surname VARCHAR(25), semester INT(1) UNSIGNED, phone VARCHAR(15), dept_id CHAR(3) NOT NULL, PRIMARY KEY(sid), FOREIGN KEY (dept_id) REFERENCES Departments ON DELETE SET default ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Μετασχηματισμός συσχετίσεων  Οι συσχετίσεις απαιτούν ιδιαίτερους χειρισμούς στην υλοποίηση της βάσης:  Σχέσεις πολλά προς πολλά μετασχηματίζονται σε πίνακες  Τριαδικές σχέσεις οποιασδήποτε πολλαπλότητας μετασχηματίζονται σε πίνακες  Σε όλες τις περιπτώσεις η πολλαπλότητα της σχέσης μας οδηγεί σε συγκεκριμένες επιλογές όσον αφορά τις τιμές των ξένων κλειδιών και των τιμών NULL  Στις επόμενες διαφάνειες θα δούμε διάφορα παραδείγματα μετασχηματισμού συσχετίσεων.  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς ένα  Διακρίνουμε τρεις περιπτώσεις:  Ένα προς ένα υποχρεωτική (ολική συμμετοχή και των δύο οντοτήτων) και προς τις δύο κατευθύνσεις. Στην περίπτωση αυτή οι δύο οντότητες μπορούν να ενοποιηθούν σε μία. Αν θέλουμε να τις κρατήσουμε (πιθανόν επειδή ο πίνακας που προκύπτει έχει πολλά πεδία) τότε χρησιμοποιούμε μόνο στον ένα πίνακα ξένο κλειδί με μη NULL τιμή (και κατάλληλες συνθήκες σε περίπτωση διαγραφής ή και ενημέρωσης)  Ένα προς ένα υποχρεωτική (ολική συμμετοχή) προς τη μία κατεύθυνση. Η οντότητα στην πλευρά του προαιρετικού τμήματος παίρνει ξένο κλειδί το πρωτεύον της άλλης οντότητας (δηλαδή της οντότητας που συμμετέχει ολικά στη σχέση). Το ξένο κλειδί έχει μη NULL τιμή και κατάλληλες συνθήκες σε περίπτωση διαγραφής ή και ενημέρωσης.  Ένα προς ένα προαιρετική (μερική συμμετοχή) και προς τις δύο κατευθύνσεις. Χρησιμοποιούμε μόνο στον ένα πίνακα ξένο κλειδί με τιμή που μπορεί να είναι και NULL (και κατάλληλες συνθήκες σε περίπτωση διαγραφής ή και ενημέρωσης)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς ένα (2)  Ένα προς ένα υποχρεωτική και προς τις δύο κατευθύνσεις.  CREATE TABLE Reports (no INT(3), name VARCHAR(40), PRIMARY KEY(no))  CREATE TABLE Abbreviations (Abbr_no CHAR(6), report_no INT(3) NOT NULL UNIQUE, PRIMARY KEY(Abbr_no), FOREIGN KEY (report_no) REFERENCES Reports ON DELETE cascade ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς ένα (3)  Ένα προς ένα υποχρεωτική προς τη μία κατεύθυνση.  CREATE TABLE Academics (ID INT(3), name VARCHAR(20), surname VARCHAR(25), rank INT(1) UNSIGNED, specialty VARCHAR(25), phone VARCHAR(15), PRIMARY KEY(ID))  CREATE TABLE Departments (code CHAR(3), name VARCHAR(25), phone VARCHAR(15), sec_name VARCHAR(45), coordinator_ID INT(3) NOT NULL UNIQUE PRIMARY KEY(code), FOREIGN KEY (coordinator_ID) REFERENCES Academics ON DELETE SET default ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς ένα (4)  Ένα προς ένα προαιρετική και προς τις δύο κατευθύνσεις.  «Σε κάθε ακαδημαϊκό μπορεί να δοθεί το πολύ ένα laptop. Υπάρχουν laptop που δεν έχουν χρεωθεί σε κανένα ακαδημαϊκό»  CREATE TABLE Academics (ID INT(3), name VARCHAR(20), surname VARCHAR(25), rank INT(1) UNSIGNED, specialty VARCHAR(25), phone VARCHAR(15), PRIMARY KEY(ID))  CREATE TABLE Laptops (no INT(2), firm VARCHAR(20), bought_date DATE, academic_ID INT(3), PRIMARY KEY(no), FOREIGN KEY (academic_ID) REFERENCES Academics ON DELETE SET NULL ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς πολλά  Σε όλες τις περιπτώσεις το ξένο κλειδί τοποθετείται στην οντότητα που αντιστοιχεί στα πολλά. Διακρίνουμε τέσσερεις υποπεριπτώσεις: 1)Ένα προς πολλά υποχρεωτική και προς τις δύο κατευθύνσεις (ολική συμμετοχή και των δύο οντοτήτων στη σχέση). Το ξένο κλειδί έχει μη NULL τιμή και κατάλληλες συνθήκες σε περίπτωση διαγραφής ή και ενημέρωσης 2)Ένα προς πολλά προαιρετική προς την κατεύθυνση του «ένα» (η οντότητα στο ένα μετέχει μερικά στη σχέση). Το ξένο κλειδί μπορεί να έχει NULL τιμή (και κατάλληλες συνθήκες σε περίπτωση διαγραφής ή και ενημέρωσης). 3)Ένα προς πολλά προαιρετική προς την κατεύθυνση του «πολλά». Ο μετασχηματισμός είναι ίδιος με την περίπτωση (1). Ο έλεγχος της υποχρεωτικής τιμής στα «πολλά» δεν μπορεί να εφαρμοστεί κατά τον ορισμό του πίνακα αλλά με μεταγενέστερο έλεγχο. 4)Ένα προς πολλά προαιρετική και προς τις δύο κατευθύνσεις. Ο μετασχηματισμός είναι ίδιος με την περίπτωση (2). Ο έλεγχος της υποχρεωτικής τιμής στα «πολλά» δεν μπορεί να εφαρμοστεί κατά τον ορισμό του πίνακα αλλά με μεταγενέστερο έλεγχο.  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς πολλά (2)  Ένα προς πολλά υποχρεωτική και προς τις δύο κατευθύνσεις:  «Κάθε ακαδημαϊκός υπάγεται σε ένα και μόνο τμήμα. Κάθε τμήμα έχει τουλάχιστον ένα ακαδημαϊκό»  CREATE TABLE Departments (code CHAR(3), name VARCHAR(25), phone VARCHAR(15), sec_name VARCHAR(45), PRIMARY KEY(code)).  CREATE TABLE Academics (ID INT(3), name VARCHAR(20), surname VARCHAR(25), rank INT(1) UNSIGNED, specialty VARCHAR(25), phone VARCHAR(15), dept_id CHAR(3) NOT NULL, PRIMARY KEY(ID), FOREIGN KEY (dept_ID) REFERENCES Departments ON DELETE SET default ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση ένα προς πολλά (3)  Ένα προς πολλά προαιρετική προς την κατεύθυνση του «πολλά»  «Κάθε τμήμα δημοσιεύει πολλές αναφορές. Υπάρχουν αναφορές που δεν δημοσιεύονται από κάποιο τμήμα»  CREATE TABLE Departments (code CHAR(3), name VARCHAR(25), phone VARCHAR(15), sec_name VARCHAR(45), PRIMARY KEY(code)).  CREATE TABLE Reports (no INT(3), title VARCHAR(40), summary TEXT, dept_id CHAR(3), PRIMARY KEY(ID), FOREIGN KEY (dept_ID) REFERENCES Departments ON DELETE SET NULL ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Δυαδική συσχέτιση πολλά προς πολλά  Σε όλες τις περιπτώσεις δημιουργείται επιπλέον πίνακας για τη σχέση πολλά προς πολλά  Στο νέο πίνακα ορίζουμε ξένα κλειδιά των πρωτεύοντα κλειδιά των συσχετιζόμενων οντοτήτων καθώς και τα δεδομένα διασταύρωσης.  Επειδή η σχέση πολλά προς πολλά με τη δημιουργία ενδιάμεσου πίνακα θα διασπαστεί σε δύο σχέσεις ένα προς πολλά με υποχρεωτική την πλευρά του «ένα» ισχύουν για τις τιμές των πεδίων όσα αναφέρθηκαν για τη αντίστοιχη σχέση (ένα προς πολλά με υποχρεωτική την πλευρά του «ένα»).  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Παράδειγμα  Να μετασχηματίσετε την πιο κάτω σχέση σε πίνακες:  Λύση:  CREATE TABLE Courses (code CHAR(6), name VARCHAR(25), ECTS INT(1) UNSIGNED, PRIMARY KEY(code)).  CREATE TABLE Rooms (code VARCHAR(8), type SET(‘lecture’, ‘lab’), capacity INT(2) UNSIGNED, PRIMARY KEY(code)).  CREATE TABLE Course_Rooms (room_code VARCHAR(8), course_code CHAR(6), day SET(‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’), start_time TIME, end_time TIME, PRIMARY KEY(room_code, course_code, day), FOREIGN KEY (room_code) REFERENCES Rooms ON DELETE cascade ON UPDATE cascade, FOREIGN KEY (course_code) REFERENCES Courses ON DELETE cascade ON UPDATE cascade)  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Ακεραιότητα δεδομένων  Με τον όρο ακεραιότητα δεδομένων αναφερόμαστε στη διαδικασία προστασίας των δεδομένων της βάσης μέσω περιορισμών που τίθενται σε αυτήν.  Ο όρος «περιορισμοί» προέκυψε επειδή απαγορεύουν αλλαγές στα δεδομένα οι οποίες θα μπορούσαν να παραβιάσουν έναν ή περισσότερους «κανόνες της επιχείρησης» (business rules).  Οι «κανόνες επιχείρησης» υλοποιούνται σε μια βάση με κάποιον (πολλές φορές περισσότερους από έναν) από τους πιο κάτω τρόπους:  NOT NULL τιμές.  Πρωτεύοντα κλειδιά (δηλαδή διαφορετική τιμή για κάθε εγγραφή και επιπλέον μη NULL τιμή)  Ξένα κλειδιά (κάθε τιμή ξένου κλειδιού αντιστοιχεί σε κάποια τιμή πρωτεύοντος κλειδιού στον πίνακα αναφοράς)  Μοναδικές (unique) τιμές (όπως τα πρωτεύοντα κλειδιά αλλά επιτρέπονται και NULL τιμές)  Έλεγχος τιμής πεδίου (για παράδειγμα HIRE_DATE > BORN_DATE)  Έλεγχοι πεδίου (τύποι δεδομένων στα πεδία)  Εναύσματα (π.χ. κατά τη διαγραφή ενός ακαδημαϊκού από τη βάση ελέγχεται κατά πόσον το τμήμα πληροί τον ελάχιστο αριθμό ακαδημαϊκών διότι η σχέση «ένα προς πολλά» είναι τουλάχιστον ένα στην πλευρά του «πολλά»  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Παραδείγματα  Να υλοποιηθεί πλήρως η βάση για το ER διάγραμμα του σχήματος  Να δημιουργηθούν οι πίνακες που αντιστοιχούν σε οντότητες  Να δημιουργηθούν οι πίνακες που αντιστοιχούν σε σχέσεις πολλά προς πολλά  Να οριστούν τα κατάλληλα πρωτεύοντα και ξένα κλειδιά (καθώς επίσης και οι περιορισμοί ακεραιότητας ξένου κλειδιού)  Να οριστούν οι περιορισμοί πεδίου και τιμών NULL  Εισαγωγή  Μετασχηματισμός οντοτήτων  Μετασχηματισμός συσχετίσεων  Ακεραιότητα δεδομένων  Παραδείγματα