, Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών Εαρινό Εξάμηνο 2011-2012
Table of contents 1
Table of contents 1 2
Table of contents 1 2 3
1 2 3
1 2 3
Εμϕανίστηκε το 1984 Υποστήριξη πολλών Λειτουργικών Συστημάτων Ποικιλία Προϊόντων για Διαχείριση της Ανάπτυξη Εϕαρμογών Data Integration...
String data types Numeric data types Date, time, and timestamp data types
String data types Numeric data types Date, time, and timestamp data types XML data type
String data types Numeric data types Date, time, and timestamp data types XML data type Large object data types
String data types Numeric data types Date, time, and timestamp data types XML data type Large object data types ROWID data type User Defined Types
1 2 3
Large Objects (up to 2Gb) όπως: Εικόνες Video
Large Objects (up to 2Gb) όπως: Εικόνες Video Binaly Large Object (BLOB) Single Byte Character Large Object (CLOB) Double Byte Character Large Object (DBCLOB)
Large Objects (up to 2Gb) όπως: Εικόνες Video Binaly Large Object (BLOB) Single Byte Character Large Object (CLOB) Double Byte Character Large Object (DBCLOB) Χρήση UDFs για την διαχείριση. δεικτών προς τα LOBs σε κάθε γραμμή.
XML Η DB2 υποστηρίζει εγγενώς δεδομένα XML και παρέχει ένα σύνολο λειτουργιών για την επεξεργασία τους. SELECT XML2CLOB( XMLELEMENT(NAME "Department", XMLATTRIBUTES(workdept AS "name"), XMLAGG( XMLELEMENT(NAME "employee", XMLATTRIBUTES(lastname, firstnme, empno)) ORDER BY lastname) )) FROM employee WHERE workdept IN('A00', 'C01') GROUP BY workdept
1 2 3
Πως γίνεται η οργάνωση και η αποθήκευση στους ϕυσικούς πόρους?
Πως γίνεται η οργάνωση και η αποθήκευση στους ϕυσικούς πόρους? Tablespaces Containers Extents
Διαχείριση των Tablespaces System Managed Space - SMS Η διαχείριση πραγματοποιείται από τις λειτουργίες του συστήματος. Τα containers ορίζονται ως ϕάκελοι/αρχεία. Επίσης, λειτουργίες όπως buffering, allocation και extension πραγματοποιούνται από το ίδιο το λειτουργικό σύστημα.
Διαχείριση των Tablespaces System Managed Space - SMS Η διαχείριση πραγματοποιείται από τις λειτουργίες του συστήματος. Τα containers ορίζονται ως ϕάκελοι/αρχεία. Επίσης, λειτουργίες όπως buffering, allocation και extension πραγματοποιούνται από το ίδιο το λειτουργικό σύστημα. Managed Space - DMS Το DB2 διαχειρίζεται τις διαδικασίες I/O, τα containers είναι είτε αρχεία είτε συσκευές και η δέσμευση χώρου γίνεται με τον ορισμό του tablespace.
TableSpaces Τα tablespaces αποτελούν λογικές μονάδες της ΒΔ που καθορίζουν την τοποθεσία αποθήκευσης των δεδομένων. CREATE TABLESPACE <NAME> MANAGED BY SYSTEM USING ('<path1>', '<path2>', '<path3>') create tablespace mytbspc managed by database using (device '/dev/rmydisk1' 20000)
Tablespace ID = 2 Name = USERSPACE1 Type = managed space Contents = All permanent data. Large table space. State = 0x0000 Detailed explanation: Normal Total pages = 8192 Useable pages = 8160 Used pages = 96 Free pages = 8064 High water mark (pages) = 96 Page size (bytes) = 4096 Extent size (pages) = 32 Prefetch size (pages) = 32 Number of containers = 1
Containers Κάθε tablespace αποτελείται από ένα η περισσότερα containers. Τα containers καθορίζουν την ϕυσική τοποθεσία των δεδομένων.
Extents Οι σελίδες (pages) αποτελούν την βασική μονάδα αποθήκευσης. Ένας αριθμός συνεχόμενων σελίδων αποτελεί ένα extent.
Οργάνωση της ς Ο καθορισμός της οργάνωσης (tablespaces, containers,...) των δεδομένων θα πρέπει να λαμβάνει υπόψη διάϕορους παράγοντες όπως: Τους τύπους των δεδομένων που θα αποθηκευτούν (δεδομένα, ευρετήρια καθώς και τα μεγέθη)
Οργάνωση της ς Ο καθορισμός της οργάνωσης (tablespaces, containers,...) των δεδομένων θα πρέπει να λαμβάνει υπόψη διάϕορους παράγοντες όπως: Τους τύπους των δεδομένων που θα αποθηκευτούν (δεδομένα, ευρετήρια καθώς και τα μεγέθη) Τον τρόπο διαχείρισης των αρχείων (SMS, DMS)
Οργάνωση της ς Ο καθορισμός της οργάνωσης (tablespaces, containers,...) των δεδομένων θα πρέπει να λαμβάνει υπόψη διάϕορους παράγοντες όπως: Τους τύπους των δεδομένων που θα αποθηκευτούν (δεδομένα, ευρετήρια καθώς και τα μεγέθη) Τον τρόπο διαχείρισης των αρχείων (SMS, DMS) Τα μεγέθη των pages και των extents
Οργάνωση της ς Ο καθορισμός της οργάνωσης (tablespaces, containers,...) των δεδομένων θα πρέπει να λαμβάνει υπόψη διάϕορους παράγοντες όπως: Τους τύπους των δεδομένων που θα αποθηκευτούν (δεδομένα, ευρετήρια καθώς και τα μεγέθη) Τον τρόπο διαχείρισης των αρχείων (SMS, DMS) Τα μεγέθη των pages και των extents Κόστη μεταϕοράς Και άλλα..
TableSpaces Κατηγορίες TableSpaces Catalog table space
TableSpaces Κατηγορίες TableSpaces Catalog table space Regular table space
TableSpaces Κατηγορίες TableSpaces Catalog table space Regular table space Large table space
TableSpaces Κατηγορίες TableSpaces Catalog table space Regular table space Large table space System temporary table space
TableSpaces Κατηγορίες TableSpaces Catalog table space Regular table space Large table space System temporary table space User temporary table space
BufferPools Τα buffer pools αποτελούν το μέσο προσπέλασης των δεδομένων στη μνήμη. Στο bufferpool αποθηκεύονται αντίγραϕα των δεδομένων για άμεση προσπέλαση από την DB2. Τα bufferpools αντιστοιχίζονται σε tablespaces To pagesize του bufferpool θα πρέπει να είναι ίδιο με το tablespace που το χρησιμοποιεί.
1 2 3
Μέθοδοι Προσπέλασης Σάρωση Πίνακας Σάρωση Ευρετηρίου Χρήση Μόνο Ευρετηρίου Προ-ϕόρτωση Λίστας AND OR
Παράλληλη Εκτέλεση Στην DB2 υποστηρίζεται η εκτέλεση σε διάϕορες αρχιτεκτονικές: Τίποτα κοινόχρηστο Κοινόχρηστη Μνήμη Κοινόχρηστος Δίσκος Συντονισμός Χρησιμοποιείται μια διεργασία συντονισμού που είναι υπεύθυνη για το έλεγχο της εκτέλεσης και τη συλλογή των υπο-αποτελεσμάτων προκειμένου να συνταχθεί το τελικό.
Εσωτερική αναπαράσταση ερωτήματος: Query Graph Model Μετασχηματισμός του QGM εϕαρμόζοντας περιορισμούς και triggers Περαιτέρω μετασχηματισμοί (βάσει κανόνων) : αποσυσχετισμό συσχετιζόμενων υπο-ερωτημάτων μετασχηματισμό υποερωτημάτων σε συνδέσμους προώθηση group_by κάτω από συνδέσμους αξιοποίηση αντικειμενικών προβολών
1 2 3
Αυστηρό κλείδωμα δυο ϕάσεων Κλείδωμα σε επίπεδο tablespace - πίνακα - εγγραϕής Διάϕορες καταστάσεις κλειδώματος
1 2 3
1 2 3
Αναπτύχθηκε αρχικά από την Sysbase για Unix (80s)
Αναπτύχθηκε αρχικά από την Sysbase για Unix (80s) Μεταϕέρθηκε από την σε Windows NT
Αναπτύχθηκε αρχικά από την Sysbase για Unix (80s) Μεταϕέρθηκε από την σε Windows NT Μεγάλο πλήθος εργαλείων υποστήριξης:
Αναπτύχθηκε αρχικά από την Sysbase για Unix (80s) Μεταϕέρθηκε από την σε Windows NT Μεγάλο πλήθος εργαλείων υποστήριξης: Σχεδίασης Οπτικοποίησης ς Παρακολούθησης
1 2 3
Τύποι Integers (1,2,4,8 bytes) Booleans Decimal Money DateTime Floating Point Strings (text, varchar, char) Cursor Variant Πίνακας
1 2 3
Υπενθύμιση: Προβολή Εικονικός Πίνακας που αποτελείται από δεδομένα - αποτελέσματα ενός query. Πλεονεκτήματα Απόδοση Ασϕάλεια
με Ευρετήριο : Βελτίωση της απόδοσης χρησιμοποιώντας ευρετήρια στην προβολή. Χρήση του ευρετηρίου τόσο για την προσπέλαση της ίδια της προβολής όσο και των βασικών πινάκων πίσω από αυτή.
με Ευρετήριο : Βελτίωση της απόδοσης χρησιμοποιώντας ευρετήρια στην προβολή. Χρήση του ευρετηρίου τόσο για την προσπέλαση της ίδια της προβολής όσο και των βασικών πινάκων πίσω από αυτή. Τμηματοποιημένες : Τμηματοποίηση ενός πίνακα σε n τοποθεσίες. Σε κάθε τοποθεσία ορίζεται μία προβολή.
με Ευρετήριο : Βελτίωση της απόδοσης χρησιμοποιώντας ευρετήρια στην προβολή. Χρήση του ευρετηρίου τόσο για την προσπέλαση της ίδια της προβολής όσο και των βασικών πινάκων πίσω από αυτή. Τμηματοποιημένες : Τμηματοποίηση ενός πίνακα σε n τοποθεσίες. Σε κάθε τοποθεσία ορίζεται μία προβολή. Ενημερώσιμες : Όταν γίνεται κάποια αλλαγή στον πίνακα μιας προβολής, υπάρχει τροποποίηση και σε κάποιους βασικούς πίνακες. Ενημέρωση των επηρεασμένων πινάκων με triggers.
1 2 3
FileGroups Η οργάνωση γίνεται χωρίζοντας τα δεδομένα σε filegroups. Κάθε βάση δεδομένων αποτελείται από τουλάχιστον ένα filegroup. Η χρήση διαϕορετικών filegroups για την αποθήκευση δεδομένων, ευρετηρίων κ.λ.π. δίνει την δυνατότητα καλήτερης οργάνωσης των δεδομένων καθώς και αποδοτικότερης διαχείρισης των ϕυσικών πόρων.
Κάθε filegroup περιέχει Pages : 8kb Extents : 8 pages bitmaps για προσπέλαση και αναζήτηση ελεύθερου χώρου Αναλογικό γέμισμα αρχείων (σε περίπτωση πολλών) για την διατήρηση ισορροπίας.
Αποθευση B+Trees Τμηματοποίηση Πινάκων Τμηματοποίηση Ευρετηρίων Online δημιουργία ευρετηρίων
1 2 3
Βήματα ς Το ερώτημα αναλύεται και δημιουργείται ένα δένδρο τελεστών.
Βήματα ς Το ερώτημα αναλύεται και δημιουργείται ένα δένδρο τελεστών. Εϕαρμόζονται ένα σύνολο κανόνων, πραγματοποιείται απλοποίηση του δένδρου.
Βήματα ς Το ερώτημα αναλύεται και δημιουργείται ένα δένδρο τελεστών. Εϕαρμόζονται ένα σύνολο κανόνων, πραγματοποιείται απλοποίηση του δένδρου. Υπολογισμός στατιστικών που θα χρησιμοποιηθούν για την εκτίμηση του κόστους του ερωτήματος.
Βήματα ς Το ερώτημα αναλύεται και δημιουργείται ένα δένδρο τελεστών. Εϕαρμόζονται ένα σύνολο κανόνων, πραγματοποιείται απλοποίηση του δένδρου. Υπολογισμός στατιστικών που θα χρησιμοποιηθούν για την εκτίμηση του κόστους του ερωτήματος. Δημιουργία εναλλακτικών πλάνων και επιλογή του βέλτιστου ως προς το κόστος.
1 2 3
Έλεγχος ς Αισιόδοξος Απαισιόδοξος
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου Σελίδας
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου Σελίδας Extent
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου Σελίδας Extent Πίνακα
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου Σελίδας Extent Πίνακα ΒΔ
Κλειδώματα Κλειδώματα Επιτρέπεται κλείδωμα σε διάϕορα επίπεδα: Γραμμής Πίνακα Κλειδί Ευρετηρίου Σελίδας Extent Πίνακα ΒΔ Καταστάσεις Κλειδώματος Shared Exclusive Update
Δυναμικό Κλείδωμα Βασικά Σημεία Αυτόματη κλιμάκωση κλειδωμάτων πριν την εκτέλεση Παράμετροι που λαμβάνονται υπόψη: διάρκεια κλειδώματος τύπος σάρωσης αριθμός γραμμών πυκνότητα τύπος λειτουργίας
1 2 3
Η παρουσίαση είναι βασισμένη στα κεϕάλαια 29, 30 του βιβλίου: Abraham Silberschatz, Henry F. Korth and S. Sudarshan, System Concepts Sixth Edition, McGraw-Hill, 2011