Σχεδίαση Βάσεων Δεδομένων Εισαγωγή στις Έννοιες των Σχεσιακών Βάσεων Δεδομένων Introduction to Relational Database Concepts 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Στόχοι Το μάθημα αυτό καλύπτει τους ακόλουθους στόχους: Να ορίσει ένα πρωτεύον κλειδί Να ορίσει ένα ξένο κλειδί Να ορίσει έναν κανόνα ακεραιότητας της στήλης Να προσδιορίσει τη σειρά, τη στήλη, το πρωτεύον κλειδί, το μοναδικό κλειδί, και τα στοιχεία του ξένου κλειδιού σε ένα διάγραμμα ενός πίνακα που περιέχει τα στοιχεία αυτά Να προσδιορίσει παραβιάσεις των κανόνων ακεραιότητας των δεδομένων 2 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Σκοπός Το εννοιολογικό μοντέλο δεδομένων μετασχηματίζεται σε μία σχεσιακή βάση δεδομένων. Αυτό σημαίνει ότι οι οντότητές μας, τα χαρακτηριστικά, οι σχέσεις και τα μοναδικά αναγνωριστικά θα μεταφραστούν σε αντικείμενα σε μία σχεσιακή βάση δεδομένων. Συγκρίνετέ το με έναν σχεδιαστή ρούχων ο οποίος παίρνει το σχέδιο από χαρτί και το εφαρμόζει στο ύφασμα. Ο σχεδιαστής πρέπει να κατανοήσει το πώς να ράψει τα σχέδια, όπως και εσείς θα χρειαστεί να κατανοήσετε τη δομή των αντικειμένων των σχεσιακών βάσεων δεδομένων. 3 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Απεικόνιση Σχεσιακής Βάσης Δεδομένων Μία σχεσιακή βάση δεδομένων είναι μία βάση δεδομένων την οποία ο χρήστης βλέπει ως μία συλλογή από πίνακες δυο διαστάσεων, οι οποίοι περιέχουν στήλες και γραμμές. Ο παρακάτω πίνακας περιέχει δεδομένα υπαλλήλων. EMPLOYEES (table name) EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID Σειρά 100 Steven King 90 101 Neena Kochhar 90 102 Lex De Haan 90 200 Jennifer Whalen 10 205 Shelley Higgins 110 Στήλη 4 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Γλώσσα για Πρόσβαση στα Δεδομένα Η δομημένη γλώσσα ερωτημάτων (SQL) μας δίνει τη δυνατότητα να έχουμε πρόσβαση στα δεδομένα σε μία σχεσιακή βάση δεδομένων με έναν αποτελεσματικό τρόπο. Αντί για να ψάχνουμε χειροκίνητα σε κάθε σειρά για να βρούμε τη εγγραφή για τον εργαζόμενο νούμερο 200, μπορούμε να χρησιμοποιήσουμε την ακόλουθη SQL δήλωση: SELECT last_name, department_id FROM employees WHERE employee_id = 200; Μπορείτε να δείτε το αποτέλεσμα αυτής της δήλωσης στην επόμενη διαφάνεια. 5 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Απεικόνιση του SQL Ερωτήματος EMPLOYEES (table name) EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID 100 Steven King 90 101 Neena Kochhar 90 102 Lex De Haan 90 200 Jennifer Whalen 10 205 Shelley Higgins 110 SELECT last_name, department_id FROM employees WHERE employee_id = 200; LAST_NAME Whalen DEPARTMENT_ID 10 6 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ειδικό SQL Ερώτημα Για να βρούμε όλους τους εργαζομένους στο τμήμα νούμερο 90, γράφουμε μία διαφορετική SQL δήλωση: SELECT * FROM employees WHERE department_id = 90; Ξανά, μπορείτε να δείτε το αποτέλεσμα στην επόμενη διαφάνεια. 7 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ειδικό SQL Ερώτημα (συνέχεια) 8 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Πρωτεύον Κλειδί Ένα πρωτεύον κλειδί (Primary Key, PK) είναι μία στήλη ή σύνολο από στήλες, που προσδιορίζουν με μοναδικό τρόπο κάθε σειρά σε έναν πίνακα. 9 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Πρωτεύον Κλειδί Πολλαπλών EMPLOYEES EMPLOYEE ID FIRST NAME LAST NAME... 100 Steven King... 101 Neena Kochhar... 102 Lex De Haan... 200 Jennifer Whalen... 205 Shelley Higgins... Single Column Primary Key DEPARTMENT ID 90 90 90 10 110 Κάθε πίνακας πρέπει να έχει ένα πρωτεύον κλειδί, και ένα πρωτεύον κλειδί πρέπει να είναι μοναδικό. Κανόνες Πρωτεύοντος Κλειδιού 10 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Υποψήφιοι Πρωτεύοντος Κλειδιού Ένας πίνακας μπορεί να έχει περισσότερες από μία στήλες, ή συνδυασμούς από στήλες, που θα μπορούσαν να χρησιμοποιηθούν ως το πρωτεύον κλειδί του πίνακα. Κάθε στήλη, ή συνδυασμός από στήλες, ονομάζεται «υποψήφιο» κλειδί διότι θα μπορούσε να επιλεγεί για να χρησιμοποιηθεί ως το πρωτεύον κλειδί. MEMBERS MEMBER_ID LAST_NAME FIRST_NAME PAYROLL_ID 100 SMITH DANA 21215 310 ADAMS TYLER 59877 210 CHEN LAWRENCE 1101 405 GOMEZ CARLOS 52 378 LOUNGANI NEIL 90386 Υποψήφιο Κλειδί Υποψήφιο Κλειδί 11 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Επιλογή ενός Υποψήφιου Κλειδιού Διαλέξτε ένα υποψήφιο κλειδί για να γίνει το πρωτεύον κλειδί για τον πίνακα. Οι άλλοι υποψήφιοι γίνονται εναλλακτικά κλειδιά (ή μοναδικά κλειδιά) Πρωτεύον Kλειδί 12 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ξένο Κλειδί Ένα ξένο κλειδί (Foreign Key,FK) είναι μία στήλη, ή συνδυασμός από στήλες, σε έναν πίνακα ο οποίος περιέχει τιμές που ταιριάζουν με τις τιμές του πρωτεύοντος κλειδιού σε έναν άλλον πίνακα. ΕΡΓΑΖΟΜΕΝΟΙ (EMPLOYEES) Ξένο Κλειδί ΤΜΗΜΑΤΑ (DEPARTMENTS) Αναφέρεται σε Πρωτεύον Κλειδί 13 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Κανόνες Ξένου Κλειδιού Εάν ένα πρωτεύον κλειδί αποτελείται από ένα ή περισσότερα ξένα κλειδιά, τότε η τιμή του ξένου κλειδιού δεν μπορεί να είναι NULL. Πρωτεύον Κλειδί Το Πρωτεύον Κλειδί (PK, Primary Key) συνδέεται στο Ξένο του Κλειδί (FK, Foreign Key) 14 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ακεραιότητα Στήλης Μία στήλη πρέπει να περιέχει μόνο τιμές που συνάδουν με τη μορφή των καθορισμένων δεδομένων της στήλης. ΛΟΓΑΡΙΑΣΜΟΙ (ACCOUNTS) ΟΡΙΣΜΟΣ ΠΙΝΑΚΑ ΛΟΓΑΡΙΑΣΜΟΙ (ACCOUNTS Table Definition) 15 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περίληψη των Κανόνων Ακεραιότητας Δεδομένων Οι κανόνες ακεραιότητας δεδομένων (επίσης γνωστοί ως περιορισμοί) καθορίζουν τη σωστή κατάσταση σχέσεων μιας βάσης δεδομένων. Οι κανόνες ακεραιότητας δεδομένων εξασφαλίζουν ότι οι χρήστες μπορούν να πραγματοποιήσουν μόνο αυτές τις λειτουργίες που αφήνουν τη βάση δεδομένων σε μία σωστή και συνεπή κατάσταση. 16 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περίληψη των Κανόνων Ακεραιότητας Δεδομένων (συνέχεια) Τύπος Περιορισμού Επεξήγηση Παράδειγμα Ακεραιότητα Οντότητας Ένα πρωτεύον κλειδί πρέπει να είναι μοναδικό, και κανένα μέρος του πρωτεύοντος κλειδιού δεν μπορεί να είναι null Η στήλη emp_no στον πίνακα EMPLOYEES (ΕΡΓΑΖΟΜΕΝΟΙ) δεν μπορεί να είναι null Ακεραιότητα Αναφοράς Ένα ξένο κλειδί πρέπει να ταιριάζει με μία τιμή ενός ήδη υπάρχοντος πρωτεύοντος κλειδιού (ή αλλιώς θα είναι null εφόσον επιτρέπονται) Η τιμή στη στήλη dept_no του πίνακα EMPLOYEES (ΕΡΓΑΖΟΜΕΝΟΙ) πρέπει να ταιριάζει με μία τιμή στη στήλη dept_no του πίνακα DEPARTMENTS (ΤΜΗΜΑΤΑ) Ακεραιότητα Στήλης Μία στήλη πρέπει να περιέχει μόνο τιμές που συνάδουν με τις καθορισμένες μορφές δεδομένων της στήλης Η τιμή στη στήλη ισορροπίας του πίνακα ACCOUNTS (ΛΟΓΑΡΙΑΣΜΟΙ) πρέπει να είναι αριθμητική Ακεραιότητα Οριζόμενη από το Χρήστη Τα δεδομένα που είναι αποθηκευμένα σε μία βάση δεδομένων πρέπει να συμμορφώνονται με τους κανόνες της επιχείρησης Εάν η τιμή στη στήλη ισορροπίας του πίνακα ACCOUNTS (ΛΟΓΑΡΙΑΣΜΟΙ) είναι κάτω από 1,00 πρέπει να στείλουμε ένα γράμμα στο ιδιοκτήτη του λογαριασμού (αυτό θα χρειαστεί επιπρόσθετο προγραμματισμό για την επιβολή) 17 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Ορολογία Λέξεις κλειδιά που χρησιμοποιήθηκαν στο μάθημα αυτό: Υποψήφιο κλειδί Στήλη Ξένο κλειδί Πρωτεύον κλειδί Σχεσιακή βάση δεδομένων Σειρά Μοναδικό κλειδί 18 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
Περίληψη Στο μάθημα αυτό, θα πρέπει να έχετε μάθει πώς να: Ορίζετε ένα πρωτεύον κλειδί Ορίζετε ένα ξένο κλειδί Ορίζετε ένα κανόνα ακεραιότητας στήλης Προσδιορίζετε τη σειρά, τη στήλη, το πρωτεύον κλειδί, το μοναδικό κλειδί, και τα στοιχεία του ξένου κλειδιού σε ένα διάγραμμα ενός πίνακα που περιέχει τα στοιχεία αυτά Αναγνωρίζετε παραβιάσεις των κανόνων ακεραιότητας δεδομένων 19 Copyright 2013, Oracle and/or its affiliates. All rights reserved.