2. Διαδικαστικά θέµατα
Διάρκεια: 20 λεπτά
●
●Η παρουσίαση είναι διαθέσιµη στη διεύθυνση
http://papaliakos.gr/db/presentations
●Επίσης σας έχει διανεµηθεί σε χαρτί ώστε...
●ΝΑ ΚΡΑΤΗΣΕΤΕ ΣΗΜΕΙΩΣΕΙΣ!
●Ερωτήσεις δεκτές, κατά προτίµηση στο τέλος
κάθε ενότητας
3. Εισαγωγή
● Υπόθεση: είστε σχετικοί µε το αντικείµενο των
ΒΔ.
● Νιώθετε ότι σας λείπουν κάποιες γνώσεις, όµως
τα καταφέρατε σε µια-δυο περιπτώσεις που
χρειάστηκε να φτιάξετε ΒΔ στην access.
● Σας προσφέρουν 2000 € για µια ΒΔ-δουλειά
µιας εβδοµάδας: pas mal!
5. Στόχοι
Να µπορούµε να εξηγήσουµε τις έννοιες:
● Εξάρτηση (data dependency)
● Πλεονασµός (redundancy) και
● Ασυνέπεια (inconsistency) δεδοµένων
Να µπορούµε να εξαλείψουµε τα παραπάνω
προβλήµατα µέσω της κανονικοποίησης (normalization).
6. Βασικές έννοιες - Πυλώνες
● Εξάρτηση (Dependency)
● Πλεονασµός δεδοµένων (Data redundancy)
● Ασυνέπεια δεδοµένων (Data inconsistency)
● Κανονικοποίηση (Normalization)
● Κανονικές µορφές (Normal forms)
● 1NF – 2NF - 3NF
“Στο πεδίο των Η/Υ όπου κι αν πετάξεις µια πέτρα θα χτυπήσεις µια βάση
δεδοµένων”
7. 1. Εξάρτηση (Dependency)
Όταν λέµε: το Y εξαρτάται από το X εννοούµε:
Y=f(X)
● ή µε άλλα λόγια, το Χ καθορίζει το Υ.
● Αυτή η εξάρτηση σηµειώνεται ως X → Y.
Παράδειγµα:
invoice_id line_nr product_code product_name customer_name
Τι εξαρτήσεις έχουµε εδώ;
8. 1. Εξάρτηση (Dependency)
Όταν λέµε: το Y εξαρτάται από το X εννοούµε:
Y=f(X)
● ή µε άλλα λόγια, το Χ καθορίζει το Υ.
● Αυτή η εξάρτηση σηµειώνεται ως X → Y.
Παράδειγµα:
invoice_id line_nr product_code product_name customer_name
product_code product_name
→
invoice_id
→ customer_name
9. 1. Εξάρτηση (Dependency)
Δώστε παραδείγµατα εξαρτηµένων µεταβλητών:
● Σε µια ΒΔ µαθητών-µαθηµάτων-βαθµών
● Σε µια ΒΔ υλικών-αποθηκών-αποθεµάτων
● Σε µια ΒΔ αυτοκινήτων
12. 2Α. Πλεονασµός δεδοµένων
(Data redundancy)
Η ίδια πληροφορία φυλάσσεται σε διάφορα µέρη (διπλο-εγγραφή).
Παράδειγµα: η διεύθυνση και το τηλέφωνο ενός πελάτη µπορεί να φυλάσεται στο αρχείο των
λογαριασµών όψεως και στο αντίστοιχο αρχείο των λογαριασµών ταµιευτηρίου µιας τράπεζας.
κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ
οψ-004 Παπαλιάκος Κρυστάλλη 6943483457
κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ
ταµ-037 Παπαλιάκος Κρυστάλλη 6943483457
Αυτό ονοµάζεται
πλεονασµός δεδοµένων
(data redundancy).
14. 2Β. Ασυνέπεια δεδοµένων
(Data inconsistency)
● Αυτός ο πλεονασµός µπορεί να οδηγήσει σε
ασυνέπεια δεδοµένων (data inconsistency)
δηλαδή σε
● διαφορετικά αντίγραφα των ιδίων δεδοµένων τα οποία
● µπορεί να µη συµφωνούν µεταξύ τους.
15. 2Β. Ασυνέπεια δεδοµένων
(Data inconsistency)
● διαφορετικά αντίγραφα των ιδίων δεδοµένων
● µπορεί να µη συµφωνούν µεταξύ τους.
● Παράδειγµα: αν αλλάξουµε τη διεύθυνση ενός πελάτη στο αρχείο των λογαριασµών
ταµιευτηρίου, τότε αυτή η αλλαγή δεν θα φαίνεται οπουδήποτε αλλού (πχ. στο αρχείο των
λογαριασµών όψεως).
κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ
οψ-004 Παπαλιάκος Κρυστάλλη 6943483457
κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ
ταµ-037 Παπαλιάκος Καβάφη 6947159333
18. Τι κάνουµε ???
I am superhero
2NF
(arghh!)
● Normalization to the rescue
I am super-
superhero
I am superhero
3NF
1NF
(arghh!)
(arghh!)
19. 3. Normal forms & normalization
1η κανονική µορφή - First “The key...”
Normal Form (1NF)
2η κανονική µορφή - Second “the whole key...”
Normal Form (2NF)
3η κανονική µορφή - Third “and nothing but the key!”
Normal Form (3NF)
20. 3. Normal forms & normalization
Η διαδικασία κανονικοποίησης (για κάθε πίνακα)
● Συµµόρφωση των δεδοµένων µας σε διαδοχικές κανονικές
µορφές (1NF → 2NF → 3NF)
● Κάθε στήλη (σε κάθε πίνακα) εξαρτάται από
● Το κλειδί,
● ολόκληρο το κλειδί και
● τίποτα άλλο εκτός από το κλειδί
● 1NF (the key) → 2NF (the whole key) → 3NF (& nothing but the key)
21. 3Α. 1η κανονική µορφή
st
1 Normal Form (1NF)
1η κανονική µορφή
First Normal Form (1NF): “the Key”
● Το κλειδί καθορίζει όλες τις ιδιότητες (στήλες) του πίνακα
● ΟΧΙ πολλαπλές τιµές σε µία στήλη
● ΟΧΙ οµάδες δεδοµένων: µία στήλη = µία ιδιότητα
22. 3Α. 1η κανονική µορφή
st
1 Normal Form (1NF)
● Ο παρακάτω πίνακας είναι σε 1NF;
23. 3Β. 2η κανονική µορφή
nd
2 Normal Form (2NF)
2η κανονική µορφή
Second Normal Form (2NF): “the whole key...”
● 1η κανονική µορφή (1NF)
+
● ΟΧΙ µερικές εξαρτήσεις (partial dependencies),
Άρα............
24. Θεραπεία για τις “κακές εξαρτήσεις”
Αφαιρούµε τις µερικές εξαρτήσεις
invoice_id line_nr product_code product_name customer_name
invoice_id line_nr product_code product_name
invoice_id customer_name
25. 3Γ. 3η κανονική µορφή
rd
3 Normal Form (3NF)
3η κανονική µορφή
Third Normal Form (3NF): “...and nothing but the key!”
● 2η κανονική µορφή (2NF)
+
● ΟΧΙ µεταβατικές εξαρτήσεις (transitive dependencies)
Οπότε..............
26. Θεραπεία για τις “κακές εξαρτήσεις”
Αφαιρούµε τις µεταβατικές εξαρτήσεις
invoice_id line_nr product_code product_name
invoice_id customer_name
invoice_id line_nr product_code product_code product_name
invoice_id customer_name
30. Επίλογος
Στόχοι:
1.Να µπορούµε να εξηγήσουµε τις έννοιες:
– Εξάρτηση (data dependency)
– Πλεονασµός (redundancy) και
– Ασυνέπεια (inconsistency) δεδοµένων
2.Να µπορούµε να εξαλείψουµε τα παραπάνω
προβλήµατα µέσω της κανονικοποίησης
(normalization).