Κανονικοποίηση Βάσεων      Δεδοµένων(Database Normalization)     Πχης (M) B. Παπαλιάκος ΠΝ      (vpapaliakos@gmail.com)
Διαδικαστικά θέµαταΔιάρκεια: 20 λεπτά●●Η παρουσίαση είναι διαθέσιµη στη διεύθυνσηhttp://papaliakos.gr/db/presentations●Επί...
Εισαγωγή●   Υπόθεση: είστε σχετικοί µε το αντικείµενο των    ΒΔ.●   Νιώθετε ότι σας λείπουν κάποιες γνώσεις, όµως    τα κα...
Εισαγωγή
ΣτόχοιΝα µπορούµε να εξηγήσουµε τις έννοιες:●   Εξάρτηση (data dependency)●   Πλεονασµός (redundancy) και●   Ασυνέπεια (in...
Βασικές έννοιες - Πυλώνες●   Εξάρτηση (Dependency)●   Πλεονασµός δεδοµένων (Data redundancy)●   Ασυνέπεια δεδοµένων (Data ...
1. Εξάρτηση (Dependency)Όταν λέµε: το Y εξαρτάται από το X εννοούµε:                                Y=f(X)●   ή µε άλλα λό...
1. Εξάρτηση (Dependency)Όταν λέµε: το Y εξαρτάται από το X εννοούµε:                                         Y=f(X)●   ή µ...
1. Εξάρτηση (Dependency)Δώστε παραδείγµατα εξαρτηµένων µεταβλητών:●   Σε µια ΒΔ µαθητών-µαθηµάτων-βαθµών●   Σε µια ΒΔ υλικ...
“Καλή” και “Κακή” εξάρτηση●    “Καλή” εξάρτηση (“Good” dependency):●    Πρωτεύον κλειδί (Primary Key) → άλλες ιδιότητες●  ...
Αποτέλεσµα;
2Α. Πλεονασµός δεδοµένων               (Data redundancy)Η ίδια πληροφορία φυλάσσεται σε διάφορα µέρη (διπλο-εγγραφή).Παράδ...
2Α. Πλεονασµός δεδοµένων          (Data redundancy)●   Παράδειγµα:Τι µπορεί να πάει στραβά???
2Β. Ασυνέπεια δεδοµένων           (Data inconsistency)●   Αυτός ο πλεονασµός µπορεί να οδηγήσει σε          ασυνέπεια δεδο...
2Β. Ασυνέπεια δεδοµένων               (Data inconsistency)●   διαφορετικά αντίγραφα των ιδίων δεδοµένων●   µπορεί να µη συ...
2Β. Ασυνέπεια δεδοµένων           (Data inconsistency)●   διαφορετικά αντίγραφα των ιδίων δεδοµένων●   συµφωνούν µεταξύ το...
Προβλήµατα στα δεδοµένα µας         (Data anomalies)Update anomaly                         Insertion anomalyDeletion anomaly
Τι κάνουµε ???                                   I am superhero                                         2NF               ...
3. Normal forms & normalization1η κανονική µορφή - First           “The key...”  Normal Form (1NF)2η κανονική µορφή - Seco...
3. Normal forms & normalizationΗ διαδικασία κανονικοποίησης (για κάθε πίνακα)●   Συµµόρφωση των δεδοµένων µας σε διαδοχικέ...
3Α. 1η κανονική µορφή              st             1 Normal Form (1NF)1η κανονική µορφήFirst Normal Form (1NF): “the Key”● ...
3Α. 1η κανονική µορφή          st         1 Normal Form (1NF)●   Ο παρακάτω πίνακας είναι σε 1NF;
3Β. 2η κανονική µορφή            nd           2 Normal Form (2NF)2η κανονική µορφήSecond Normal Form (2NF): “the whole key...
Θεραπεία για τις “κακές εξαρτήσεις”Αφαιρούµε τις µερικές εξαρτήσεις   invoice_id   line_nr        product_code    product_...
3Γ. 3η κανονική µορφή            rd           3 Normal Form (3NF)3η κανονική µορφήThird Normal Form (3NF): “...and nothing...
Θεραπεία για τις “κακές εξαρτήσεις”Αφαιρούµε τις µεταβατικές εξαρτήσεις   invoice_id   line_nr        product_code   produ...
Κανονικοποίηση στην πράξη
Συνεπώς...●   Αφαιρούµε       –   Πολλαπλές στήλες – πολλαπλές τιµές       –   Μερικές εξαρτήσεις       –   Μεταβατικές εξ...
Επίλογος●   Βασικές έννοιες        –   Εξάρτηση (Dependency)        –   Πλεονασµός δεδοµένων (Data redundancy)        –   ...
ΕπίλογοςΣτόχοι:1.Να µπορούµε να εξηγήσουµε τις έννοιες:      – Εξάρτηση (data dependency)      –   Πλεονασµός (redundancy)...
Πηγές●   http://en.wikipedia.org/wiki/Database_normaliza    tion (click here)●   http://databases.about.com/od/specificpro...
Ερωτήσεις ???
Upcoming SlideShare
Loading in …5
×

Db crash_course-normalization

605 views

Published on

This is a 45-minute presentation on database normalization (in Greek).
It is supposed to be one of the series of lessons in databases.

Published in: Design, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
605
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Db crash_course-normalization

  1. 1. Κανονικοποίηση Βάσεων Δεδοµένων(Database Normalization) Πχης (M) B. Παπαλιάκος ΠΝ (vpapaliakos@gmail.com)
  2. 2. Διαδικαστικά θέµαταΔιάρκεια: 20 λεπτά●●Η παρουσίαση είναι διαθέσιµη στη διεύθυνσηhttp://papaliakos.gr/db/presentations●Επίσης σας έχει διανεµηθεί σε χαρτί ώστε...●ΝΑ ΚΡΑΤΗΣΕΤΕ ΣΗΜΕΙΩΣΕΙΣ!●Ερωτήσεις δεκτές, κατά προτίµηση στο τέλοςκάθε ενότητας
  3. 3. Εισαγωγή● Υπόθεση: είστε σχετικοί µε το αντικείµενο των ΒΔ.● Νιώθετε ότι σας λείπουν κάποιες γνώσεις, όµως τα καταφέρατε σε µια-δυο περιπτώσεις που χρειάστηκε να φτιάξετε ΒΔ στην access.● Σας προσφέρουν 2000 € για µια ΒΔ-δουλειά µιας εβδοµάδας: pas mal!
  4. 4. Εισαγωγή
  5. 5. ΣτόχοιΝα µπορούµε να εξηγήσουµε τις έννοιες:● Εξάρτηση (data dependency)● Πλεονασµός (redundancy) και● Ασυνέπεια (inconsistency) δεδοµένωνΝα µπορούµε να εξαλείψουµε τα παραπάνωπροβλήµατα µέσω της κανονικοποίησης (normalization).
  6. 6. Βασικές έννοιες - Πυλώνες● Εξάρτηση (Dependency)● Πλεονασµός δεδοµένων (Data redundancy)● Ασυνέπεια δεδοµένων (Data inconsistency)● Κανονικοποίηση (Normalization)● Κανονικές µορφές (Normal forms) ● 1NF – 2NF - 3NF“Στο πεδίο των Η/Υ όπου κι αν πετάξεις µια πέτρα θα χτυπήσεις µια βάση δεδοµένων”
  7. 7. 1. Εξάρτηση (Dependency)Όταν λέµε: το Y εξαρτάται από το X εννοούµε: Y=f(X)● ή µε άλλα λόγια, το Χ καθορίζει το Υ.● Αυτή η εξάρτηση σηµειώνεται ως X → Y.Παράδειγµα: invoice_id line_nr product_code product_name customer_nameΤι εξαρτήσεις έχουµε εδώ;
  8. 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. 9. 1. Εξάρτηση (Dependency)Δώστε παραδείγµατα εξαρτηµένων µεταβλητών:● Σε µια ΒΔ µαθητών-µαθηµάτων-βαθµών● Σε µια ΒΔ υλικών-αποθηκών-αποθεµάτων● Σε µια ΒΔ αυτοκινήτων
  10. 10. “Καλή” και “Κακή” εξάρτηση● “Καλή” εξάρτηση (“Good” dependency):● Πρωτεύον κλειδί (Primary Key) → άλλες ιδιότητες● “Κακές” εξαρτήσεις (“Bad” dependencies):● Μερική εξάρτηση (Partial dependency) invoice_id line_nr product_code product_name customer_name● Μεταβατική εξάρτηση (Transitive dependency) invoice_id line_nr product_code product_name customer_name
  11. 11. Αποτέλεσµα;
  12. 12. 2Α. Πλεονασµός δεδοµένων (Data redundancy)Η ίδια πληροφορία φυλάσσεται σε διάφορα µέρη (διπλο-εγγραφή).Παράδειγµα: η διεύθυνση και το τηλέφωνο ενός πελάτη µπορεί να φυλάσεται στο αρχείο τωνλογαριασµών όψεως και στο αντίστοιχο αρχείο των λογαριασµών ταµιευτηρίου µιας τράπεζας. κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ οψ-004 Παπαλιάκος Κρυστάλλη 6943483457 κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ ταµ-037 Παπαλιάκος Κρυστάλλη 6943483457 Αυτό ονοµάζεται πλεονασµός δεδοµένων (data redundancy).
  13. 13. 2Α. Πλεονασµός δεδοµένων (Data redundancy)● Παράδειγµα:Τι µπορεί να πάει στραβά???
  14. 14. 2Β. Ασυνέπεια δεδοµένων (Data inconsistency)● Αυτός ο πλεονασµός µπορεί να οδηγήσει σε ασυνέπεια δεδοµένων (data inconsistency)δηλαδή σε● διαφορετικά αντίγραφα των ιδίων δεδοµένων τα οποία● µπορεί να µη συµφωνούν µεταξύ τους.
  15. 15. 2Β. Ασυνέπεια δεδοµένων (Data inconsistency)● διαφορετικά αντίγραφα των ιδίων δεδοµένων● µπορεί να µη συµφωνούν µεταξύ τους.● Παράδειγµα: αν αλλάξουµε τη διεύθυνση ενός πελάτη στο αρχείο των λογαριασµών ταµιευτηρίου, τότε αυτή η αλλαγή δεν θα φαίνεται οπουδήποτε αλλού (πχ. στο αρχείο των λογαριασµών όψεως). κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ οψ-004 Παπαλιάκος Κρυστάλλη 6943483457 κωδ_λογαρ. πελ_όνοµα πελ_διευθ πελ_τηλ ταµ-037 Παπαλιάκος Καβάφη 6947159333
  16. 16. 2Β. Ασυνέπεια δεδοµένων (Data inconsistency)● διαφορετικά αντίγραφα των ιδίων δεδοµένων● συµφωνούν µεταξύ τους;
  17. 17. Προβλήµατα στα δεδοµένα µας (Data anomalies)Update anomaly Insertion anomalyDeletion anomaly
  18. 18. Τι κάνουµε ??? I am superhero 2NF (arghh!) ● Normalization to the rescue I am super- superheroI am superhero 3NF 1NF (arghh!) (arghh!)
  19. 19. 3. Normal forms & normalization1η κανονική µορφή - 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. 20. 3. Normal forms & normalizationΗ διαδικασία κανονικοποίησης (για κάθε πίνακα)● Συµµόρφωση των δεδοµένων µας σε διαδοχικές κανονικές µορφές (1NF → 2NF → 3NF)● Κάθε στήλη (σε κάθε πίνακα) εξαρτάται από ● Το κλειδί, ● ολόκληρο το κλειδί και ● τίποτα άλλο εκτός από το κλειδί● 1NF (the key) → 2NF (the whole key) → 3NF (& nothing but the key)
  21. 21. 3Α. 1η κανονική µορφή st 1 Normal Form (1NF)1η κανονική µορφήFirst Normal Form (1NF): “the Key”● Το κλειδί καθορίζει όλες τις ιδιότητες (στήλες) του πίνακα● ΟΧΙ πολλαπλές τιµές σε µία στήλη● ΟΧΙ οµάδες δεδοµένων: µία στήλη = µία ιδιότητα
  22. 22. 3Α. 1η κανονική µορφή st 1 Normal Form (1NF)● Ο παρακάτω πίνακας είναι σε 1NF;
  23. 23. 3Β. 2η κανονική µορφή nd 2 Normal Form (2NF)2η κανονική µορφήSecond Normal Form (2NF): “the whole key...”● 1η κανονική µορφή (1NF) +● ΟΧΙ µερικές εξαρτήσεις (partial dependencies), Άρα............
  24. 24. Θεραπεία για τις “κακές εξαρτήσεις”Αφαιρούµε τις µερικές εξαρτήσεις invoice_id line_nr product_code product_name customer_name invoice_id line_nr product_code product_name invoice_id customer_name
  25. 25. 3Γ. 3η κανονική µορφή rd 3 Normal Form (3NF)3η κανονική µορφήThird Normal Form (3NF): “...and nothing but the key!”● 2η κανονική µορφή (2NF) +● ΟΧΙ µεταβατικές εξαρτήσεις (transitive dependencies) Οπότε..............
  26. 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
  27. 27. Κανονικοποίηση στην πράξη
  28. 28. Συνεπώς...● Αφαιρούµε – Πολλαπλές στήλες – πολλαπλές τιµές – Μερικές εξαρτήσεις – Μεταβατικές εξαρτήσεις● Εξαλείφουµε προβλήµατα στα δεδοµένα µας● Κανονικοποίηση όλων των πινάκων● Κανονικοποίηση όλης της ΒΔ
  29. 29. Επίλογος● Βασικές έννοιες – Εξάρτηση (Dependency) – Πλεονασµός δεδοµένων (Data redundancy) – Ασυνέπεια δεδοµένων (Data inconsistency) – Κανονικοποίηση (Normalization) – Κανονικές µορφές (Normal forms) 1NF – 2NF - 3NF
  30. 30. ΕπίλογοςΣτόχοι:1.Να µπορούµε να εξηγήσουµε τις έννοιες: – Εξάρτηση (data dependency) – Πλεονασµός (redundancy) και – Ασυνέπεια (inconsistency) δεδοµένων2.Να µπορούµε να εξαλείψουµε τα παραπάνω προβλήµατα µέσω της κανονικοποίησης (normalization).
  31. 31. Πηγές● http://en.wikipedia.org/wiki/Database_normaliza tion (click here)● http://databases.about.com/od/specificproducts/ a/normalization.htm (click here)
  32. 32. Ερωτήσεις ???

×