Σχεσιακό Μοντέλο (Γρήγορη επανάληψη) Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr
Σχεσιακές Βάσεις Δεδομένων Ορισμός : Τα δεδομένα αποθηκεύονται σε πίνακες που σχετίζονται μεταξύ τους με κοινά χαρακτηριστικά που ονομάζονται κλειδιά.. Οποιαδήποτε πληροφορία (οντότητα) σε μια σχεσιακή ΒΔ μπορεί να αναζητηθεί με το όνομα ενός πίνακα, το όνομα ενός χαρακτηριστικού και τη τιμή ενός προτεύοντος κλειδόύ.
Ορισμοί Οντότητα: Αντικείμενο, έννοια ή κάποιο γεγονός ( πχ πελάτης) Χαρακτηριστικό: ιδιότητα μιας οντότητας Γραμμή ή εγγραφή: συγκριμένα χαρακτηριστικά μιας οντότητας Πίνακας: συλλογή από εγγραφές ΒΔ: συλλογή από πίνακες
Σχεσιακό μοντέλο μιας ΒΔ Αναπτύχτηκε από τον E.F. Codd και C.J. Date Πίνακες = Οντότητα = Σχέση Γραμμή πίνακα = πλειάδα (tuple) = στιγμιότυπο (instance) Στήλη πίνακα = χαρακτηριστικό Εννοιολογική σύνδεση πινάκων Μοντέλο Οντοτήτων-Σχέσεων (Entity-Relationship Model)
Σχεσιακό μοντέλο Κάθε χαρακτηριστικό έχει μια μοναδική ονομασία σε μια οντότητα Κάθε γραμμή είναι μοναδική Η ταξινόμηση των χαρακτηριστικών (στηλών) και γραμμών δεν είναι σημαντική.
Μοντέλο Δεδομένων: Τι είναι? Ένα μοντέλο δεδομένων είναι μια αναπαράσταση της πραγματικότητας. Χρησιμοποιείται για να ορίσει τη χωρισκή και διαχειριστική υλοποίηση μιας ΒΔ. Τα μοντέλα δεδομένων έχουν δύο διαστάσεις: δομή: πως-που γίνεται η καταχώρηση διαδικασίες: διαχείριση των δεδομένων
CRUD! Οι πιο συνηθισμένες ενέργειας σε μια ΒΔ είναι: Δημιουργία Ανάκτηση Ενημέρωση Διαγραφή Γίνονται σε όλα τα επίπεδα : Πίνακες, εγγραφές, χαρακτηριστικά.
Παράδειγμα Πίνακα
ΒΔ - Views Ένα View είναι μια «εικόνα» ενός πίνακα ή συνδυασμού πινάκων. Τα views χρησιμοποιούνται κυρίως για ΑΝΑΓΝΩΣΗ Είναι μια απλοποίηση ενός σύνθετου μοντέλου. Υλοποιεί μέρος της ασφάλειας στην προσπέλαση πληροφορίας
Δείκτες Ένας δείκτης χρησιμοποιείται για την επιτάχυνση της ανάκτησης των δεδομένων. Οι δείκτες ορίζονται σε μια ή περισσότερες στήλες. Οι δείκτες χρειάζονται χώρο στο δίσκο. Μερικές φορές πάρα πολύ. Οι δείκτες δεν είναι απαραίτητοι για τη λειτουργία μιας ΣΒΔ.
Σχέσεις οντοτήτων Πως μια οντότητα σχετίζεται με μία άλλη; Αναφέρονται σε: Κτητικότατα Πατρότητα Εκχώρηση Ρύθμιση
Κλειδιά πινάκων Ορισμός: Ένα κλειδί σε έναν πίνακα είναι έναν υποσύνολο από τα χαρακτηριστικά του πίνακα, με τις ακόλουθη ιδιότητα: Μοναδική ταυτοποίηση εγγραφής
Πρωτεύον κλειδί Είδος κλειδιών Χρησιμεύει για τον εντοπισμό μιας μοναδικής εγγραφής. Μπορεί να σχηματιστεί από ένα συνδυασμό αρκετών χαρακτηριστικών ή συναρτήσεων αυτών. Ξένο κλειδί Μια στήλη ή σύνολο στηλών ενός πίνακα με την ιδιότητα της αντιστοίχισης με το πρωτεύων κλειδί ενός πίνακα. Τα κλειδιά αυτά χρησιμοποιούνται για την σχεσιακή ένωση των οντοτήτων, συνδέοντας δύο γραμμές με μίαμία σχέση μεταξύ αυτών.
Αναπαράσταση σχεσιακής ένωσης δύο οντοτήτων Πίνακας A Name Address Order # John Doe 45 Decalb Av. 123456 Jane Doe 14 Sterling Tr. 654321 Πίνακας B Order # TotalValue 654321 152.235 659835 100.000
Σχεσιακές σχέσεις πινάκων Μια-προς-πολλά (One-to-many) σχεσιακές σχέσεις πινάκων αναφέρονται στο Πρωτεύον Κλειδί ενός πίνακα (PK) και στο ξένο κλειδί (FK) του δεύτερου πίνακα.
Παράδειγμα σχεσιακών πινάκων
Άλλοι ορισμοί Πληθικότητα (Cardinality): μια-προς-μια (one-to-one), μία-προς-πολλά (one-to-many), πολλα-προς-πολλά (many-to-many relationships) Προαιρετικότητα : η σχέση μεταξύ των οντοτήτων είναι υποχρεωτική ή προαιρετική.
Ακεραιότητα ΒΔ Η ακεραιότητα μια ΒΔ εμπεριέχει την διατήρηση των λογικών και επιχειρισιακών κανόνων σε επίπεδο πινάκων και σχέσεων μεταξύ αυτών. Έχουμε: Ακεραιότητα μεταξύ οντοτήτων (Entity Integrity) Ακεραιότητα μεταξύ σχέσεων (Referential Integrity)
Σχεσιακή εγκυρότητα Η σχεσιακή εγκυρότητα αναφέρεται σε δύο πίνακες που σχετίζονται μεταξύ τους. Παράδειγμα: Εάν ο πίνακας Α έχει ένα ξένο κλειδί το οποίο αντιστοιχεί στο πρωτεύον κλειδί του πίνακα Β ΤΟΤΕ τιμές του ξένου κλειδιού είτε είναι ίδιες με αυτές του πρωτεύοντος κλειδιού ή έχουν τιμή null.
SQL- Structured Query Language Η SQL είναι μια γλώσσα προγραμματισμού που χρησιμοποιείται από όλες τις σχεσιακές ΒΔ Το συντακτικό της περιλαμβάνει: Ορισμό οντοτήτων και σχέσεων μεταξύ αυτών CRUD Συναρτήσεις (COUNT, SUM, MIN, MAX) κτλ
Κανονικοποίηση Κανονικοποίηση: Η διαδικασία δόμησης των δεδομένων για την ελαχιστοποίηση της αντιγραφής πληροφορίας και την αποφυγή αντιφάσεων Η διαδικασία είναι μια επανάληψη απλοποίησης ενός πίνακα σε δύο ή περισσότερους πίνακες με την ταυτόχρονη δημιουργία σχέσεων μεταξύ αυτών. Η κανονικοποίηση γίνεται συνήθως σε βήματα. Κάθε βήμα απαιτεί αυστηρότερους κανόνες.
Σχεδιασμός ΒΔ Βήμα 1: Προσδιορίζουμε τις οντότητες και δημιουργούμε τους αντίστοιχους πίνακες. Χρησιμοποιούμε συγκεκριμένη ονοματολογία.. Βήμα 2: Προσδιορίζουμε το Πρωτέον Κλειδί για κάθε πίνακα. Βήμα 3: Προσδιορίζουμε τα χαρακτηριστικά κάθε οντότητας. Βήμα 4: Προσδιορίζουμε τις σχέσεις μεταξύ των πινάκων. Βήμα 5: Κανονικοποιούμε τους πίνακες
Μοντέλο Διαστάσεων Αρχιτεκτονική Αποθηκών Δεδομένων Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr
Βασικά βήματα διαχείρισης ενός DW έργου The DW Lifecycle Toolkit
Μοντέλο διαστάσεων (Dimensional Modelling) Τεχνική που έχει στόχο να αναπαραστήσει τα δεδομένα ώστε να έχουμε ταχύτατη ανάκτηση. Χρησιμοποιεί το σχεσιακό μοντέλο δεδομένων με ορισμένες αλλαγές ή περιορισμούς. Βασίζεται σε : Έναν πίνακα που ονομάζεται πίνακας τιμών (Fact Table) Ένα σύνολο μικρότερων πινάκων που ονομάζονται πίνακες διαστάσεων (Dimensions)
Μοντέλο διαστάσεων (Dimensional Modelling) Μοντέλο σχεδίασης που έχει μελετηθεί πολύ Σχετικά εύκολη η εισαγωγή νέων δεδομένων, χωρίς να χρειαστεί να ξαναφορτώσουμε όλον τον πίνακα. Σχετικά εύκολη η προσθήκη νέων χαρακτηριστικών Τυποποιημένες σχεδιαστικές διαδικασίες. Πληθώρα προϊόντων που το υποστηρίζουν
Πίνακας τιμών (Fact Table) Περιέχει αριθμητικές ποσότητες που προκύπτουν από κάποια επιχειρηματική διαδικασία Μπορεί να έχει πολλές εγγραφές Μπορεί να μεγαλώσει σε όγκο δεδομένων πολύ γρήγορα Μπορεί να έχει απλές, σύνθετες ή συναθροίσεις τιμών Ενώνεται με πίνακες διαστάσεων μέσω ξένων κλειδιών
Πίνακας τιμών (Fact Table) Ορισμός Μετρίσιμο μια αριθμητική ποσότητα η οποία αναφέρεται σε κάποια δείκτη απόδοσης της επιχείρησης Συνάθροιση σχηματίζεται όταν ενώνουμε διαστάσεις για να δημιουργήσουμε μια μοναδική τιμή. Μετρήσεις που σχετίζονται με κάποια επιχειρηματική διαδικασία. Τα χαρακτηριστικά των πινάκων τιμών είναι :. Υπολογιζόμενα ή τιμές OLTP Προκύπτουν από άλλα χαρακτηριστικά Αθροίσιμα, ημί-αθροίσιμα, μη-αθροίσιμα
Πίνακας τιμών (Fact Table) Διαστάσεις Sales Fact Table Product_id Store_id Item_id Day_id Sales_amount Sales_units... Μετρήσιμα
Πίνακας τιμών (Fact Table) Δεν θα πρέπει να περιέχει NULL σε ξένα κλειδιά διαστάσεων Αν ένα μετρήσιμο χαρακτηριστικό εμφανίζεται σε πολλούς πίνακες τιμών, θα πρέπει εννοιολογικά να είναι ίδιο (Conformed fact) Ένας πίνακας τιμών μπορεί έχει μετρήσιμα που έχουν τιμές στον χώρο και το χρόνο (Transaction Fact Table) πχ συναλλαγές ATM.
Πίνακας τιμών (Fact Table) Ένας πίνακας τιμών μπορεί έχει μετρήσιμα που αφορούν σε συνάθροιση τιμών για κάποιο χρονικό διάστημα (Periodic Snapshot Fact Table), πχ ημέρα, εβδομάδα, μήνας, χρόνος. Ένας πίνακας τιμών μπορεί να μην έχει καν μετρήσιμα (Factless Fact Table). Καταγράφουν συνήθως την απουσία κάποιου συμβάντος, πχ ο ασθενής δεν ήρθε στο ραντεβού με τον γιατρό.
Πίνακες Διαστάσεων (Dimension Table) Οι πίνακες διαστάσεων έχουν τα ακόλουθα χαρακτηριστικά : Έχουν ένα πρωτεύον κλειδί. Είναι μη-κανονικοποιημένοι πίνακες Έχουν χαρακτηριστικά χαμηλής πληθικότητας (low cardinality) Είναι σχεσιακά ενωμένα με πίνακες τιμών μέσω ξένων κλειδιών.
Πίνακες Διαστάσεων (Dimension Table) Οι πίνακες διαστάσεων έχουν τα ακόλουθα χαρακτηριστικά : Περιέχουν πληροφορία που αφορά στα χαρακτηριστικά μιας επιχειρηματικής διαδικασίας. Τα δεδομένα που περιέχουν είναι επί το πλείστον στατικά Προσδιορίζουν επιχειρησιακούς περιορισμούς Καθορίζουν ομαδοποιήσεις δεδομένων Είναι η βάση στην οποία αναπτύσσονται h διεπαφή του χρήστη και οι εκτυπώσεις Απαντούν στις ερωτήσεις «Ποιός», «Τι», «Που», «Πότε», «Γιατί», «Πως».
Πίνακες Διαστάσεων (Dimension Table)
Κατηγορίες πινάκων διαστάσεων Ακανόνιστες διαστάσεις Διαστάσεις με ιεραρχία Διαστάσεις για λογικές τιμές ή/και δείκτες Διαστάσεις με κενές τιμές Διαστάσεις χρόνου Μίνι-διαστάσεις Διαστάσεις χιονονοιφάδας
Διαστάσεις χρόνου Αναφέρεται σε ωρολογιακές και ημερολογιακές τιμές Σχεδόν κάθε πίνακας τιμών έχει το λιγότερο μια χρονική διάσταση Εορτολόγιο, οικονομικό έτος κτλ πρέπει να ενσωματωθούν Ορίζεται στην αρχή υλοποίησης του DW Δεν έχει κάποια φυσική εξάρτηση με πίνακα. Λίγες τιμές μπορούν να δημιουργηθούν απευθείας με SQL Υλοποίηση με το excel ή αναζήτηση στο Διαδίκτυο
Διαστάσεις χρόνου http://www.kimballgroup.com/wp-content/uploads/1998/12/think-globally-figure-21.png
Αργά μεταβαλλόμενες διαστάσεις (ΑΜΔ) (Slowly Changing Dimensions - SCD) Ιστορικότητα Τύπου 0 Καμία αλλαγή Τύπου 1 Διορθώσεις Τύπου 2 Νέα εγγραφή Τύπου 3 Νέο χαρακτηριστικό Τύπου 4, 5,6 Πιο «εξωτικές»
Αρχιτεκτονική σχεδίαση Αστέρα Product Table Product_id Product_disc,... Store Table Store_id District_id,... Πίνακας Τιμών Sales Fact Table Product_id Store_id Item_id Day_id Sales_amount Sales_units,... Πίνακες Διαστάσεων 40 Time Table Day_id Month_id Year_id,... Item Table Item_id Item_desc,...
Αρχιτεκτονική σχεδίαση Αστέρα Η αρχιτεκτονική αστέρα είναι η απλούστερη αρχιτεκτονική σε ένα DW. Ονομάζεται αρχιτεκτονική αστέρα γιατί το διάγραμμα οντοτήτων μοιάζει με αστέρι, με άκρες που εκτείνονται προς τα έξω από ένα κοινό κέντρο. Το κέντρο του αστεριού είναι ο πίνακας τιμών, και οι άκρες οι πίνακες διαστάσεων. Συνήθως οι πίνακες τιμών είναι 3NF κανονικοποιμένοι, ενώ οι πίνακες διαστάσεων δεν είναι κανονικοποιημένοι.
Διαφορές ανάμεσα στο Σχεσιακό Μοντέλο και το Μοντέλο Διαστάσεων Σχεσιακό Μοντέλο Ένας πίνακας ανά οντότητα Κανονικοποιημένο σχήμα Μεγιστοποίηση ταχύτητας ενημέρωσης Μικρές συναλλαγές Μοντέλο Διαστάσεων Ένας πίνακας τιμών, πολλοί πίνακες διαστάσεων Μεγιστοποίηση κατανόησης Μεγιστοποίησης ταχύτητας ανάκτησης Ανάκτησης πολλών εγγραφών
Σχεσιακό Μοντέλο Countries Customers CustomerID AddressID Addresses AddressID StateID Street States StateID CountryID Desc CountryID Description Name OrderHeader OrderHeaderID CustomerID OrderDate FreightAmount OrderDetails OrderHeaderID ProductID Amount Products ProductID Description Size
Μοντέλο Διαστάσεων Time TimeID Date Month Quarter Year FactSales CustomerID ProductID TimeID SalesAmount Customers CustomerID Name Street State Country Products ProductID Description Size Subcategory Category
Δημιουργία Μοντέλου Διαστάσεων Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr
Ποια τα προβλήματα που συναντάμε; Επικοινωνία και στρατηγική Ποια η μεθοδολογία ανάπτυξης που θα ακολουθήσουμε; Τι υπάρχει αυτή την στιγμή στην Αποθήκη Δεδομένων; Τεκμηρίωση Οι επιχειρησιακοί χρήστες δεν μπορούν να διαβάσουν ένα διάγραμμα οντοτήτων Οι επιχειρησιακοί χρήστες ξέρουν καλά το πολύ 1 ή 2 επιχειρησιακές διαδικασίες πχ. Χρήστες στις Πωλήσεις και Χρήστες στην Αποθήκη Οι εννοιολογικά ίδιες διαστάσεις είναι πολύ δύσκολο να σχεδιαστούν
Επιλογή Επιχειρηματικής Διαδικασίας Επιλογή επιπέδου αναφοράς Επιλογή Διαστάσεων Επιλογή Μετρήσιμων
Επιλογή επιχειρηματικής διαδικασίας Ανατρέχουμε στις απαιτήσεις του έργου Επιλέγουμε ένα ή περισσότερους πίνακες από το σχεσιακό μοντέλο Η απαιτήσεις θα πρέπει να είναι μια συνεκτική επιχειρηματική διαδικασία Καθορίζουμε το Data Mart Δεν ξεχνάμε τον αρχικό σχεδιασμό της Επιχειρησιακής Αποθήκης Δεδομένων.
Επιλογή επιχειρηματικής διαδικασίας Τα Data Marts θα πρέπει να αναπαριστούν επιχειρηματικές διαδικασίες σε υψηλό επίπεδο Επιλέγουμε ένα ή περισσότερους πίνακες από το σχεσιακό μοντέλο Το πλήθος των Data Marts εξαρτάται από τον επίπεδο λεπτομέρειας της επιχειρηματικής διαδικασίας Θα πρέπει να γνωρίζουμε καλά τις πηγές των δεδομένων μας Θα πρέπει να γνωρίζουμε καλά τις ανάγκες των χρηστών Δεν ξεχνάμε τον αρχικό σχεδιασμό της Επιχειρησιακής Αποθήκης Δεδομένων.
Επίπεδο ανάφοράς/ανάλυσης Ο ορισμός του επιπέδου αναφοράς είναι το πιο σημαντικό βήμα στο μοντέλο διαστάσεων. Το επίπεδο αναφοράς ορίζει εννοιολογικά μια εγγραφή στον πίνακα τιμών Πρέπει να οριστεί πριν γίνει επιλογή των διαστάσεων ή των μετρήσιμων ποσοτήτων. Διαφορετικά επίπεδα αναφοράς για το ίδια μετρήσιμη ποσότητα δεν θα πρέπει να καταχωρούνται στον ίδιο πίνακα.
Επιλογή διαστάσεων Μια διάσταση θα πρέπει να εναρμονίζεται με το επίπεδο αναφοράς που έχει επιλεγεί. Διαστάσεις που χρησιμοποιούνται σε πολλά Data Marts, θα πρέπει να έχουν το ίδιο νόημα (Conformed Dimensions) Ορίζουμε όλα τα δυνητικά χαρακτηριστικά. Αργότερα θα αποφασίσουμε πια θα κρατήσουμε
Πίνακας ανάλυσης http://www.kimballgroup.com/wp-content/uploads/1999/12/the-matrix-fig-111.png
Πίνακας ανάλυσης (σε Excel)
CUSTOMER customer_id (PK) customer_name purchase_profile credit_profile address STORE store_id (PK) store_name address district floor_type ERD ORDER order_num (PK) customer_id (FK) store_id (FK) clerk_id (FK) date PRODUCT SKU (PK) description brand category ORDER-LINE order_num (PK) (FK) SKU (PK) (FK) promotion_key (FK) dollars_sold units_sold dollars_cost CLERK clerk_id (PK) clerk_name clerk_grade PROMOTION promotion_num (PK) promotion_name price_type ad_type
TIME time_key (PK) SQL_date day_of_week month STORE store_key (PK) store_id store_name address district floor_type DIMENSONAL MODEL FACT time_key (FK) store_key (FK) clerk_key (FK) product_key (FK) customer_key (FK) promotion_key (FK) dollars_sold units_sold dollars_cost PRODUCT product_key (PK) SKU description brand category CUSTOMER customer_key (PK) customer_name purchase_profile credit_profile address CLERK clerk_key (PK) clerk_id clerk_name clerk_grade PROMOTION promotion_key (PK) promotion_name price_type ad_type