DB2(στα ρωσικά προφέρεται "dibi two", το χαρτί ανίχνευσης από τα αγγλικά "dibi tu" είναι επίσης κοινό) - οικογένεια προϊόντα λογισμικούστη Διαχείριση Πληροφοριών στην IBM.

Τις περισσότερες φορές, αναφερόμενοι στο DB2, εννοούν το σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων DB2 Universal Database (DB2 UDB), που αναπτύχθηκε και κυκλοφόρησε από την IBM.

Η ορθογραφία "DB/2" εμφανίζεται μερικές φορές, αλλά αυτή η ορθογραφία είναι εσφαλμένη: στη σημείωση IBM, ο αριθμός στον παρονομαστή ενός κλάσματος σημαίνει την πλατφόρμα και το "/2" σημαίνει το προϊόν για το λειτουργικό σύστημα OS/2 (ή τη σειρά υπολογιστών PS/2). Για παράδειγμα, η έκδοση του DB2 για OS/2 ονομάστηκε "DB2/2".

Υλοποιήσεις

Το DB2 DBMS είναι προς το παρόν διαθέσιμο στις ακόλουθες πλατφόρμες:

  • DB2 για Linux, UNIX και Windows v9για πλατφόρμες AIX, HP-UX, Linux, Solaris, Windows και beta για πλατφόρμα Mac OS X
  • DB2 για z/OS v9για πλατφόρμες z/OS και OS/390
  • Διακομιστής DB2 για VSE & VM v7για πλατφόρμες z/VM και z/VSE
  • DB2 για iγια την πλατφόρμα IBM i (ενσωματωμένη στο σύστημα σε επίπεδο υλικού και λογισμικού)

Στο παρελθόν, έχουν κυκλοφορήσει εκδόσεις του διακομιστή βάσης δεδομένων DB2 για OS/2, UnixWare, PTX.

Οι πελάτες DB2 DBMS, εκτός από τις αναφερόμενες πλατφόρμες, κυκλοφορούν ή έχουν κυκλοφορήσει σε διάφορες εκδόσεις και για SINIX, IRIX, κλασικό Mac OS και για MS-DOS, καθώς και σε έκδοση για κινητά DB2 Παντούγια Windows CE, Palm OS, Symbian OS, Neutrino και εικονική μηχανήΙάβα.

Επί του παρόντος, εκτός από τα εμπορικά προϊόντα της οικογένειας, η IBM διανέμει και δωρεάν διανομή DB2 Express-Cγια πλατφόρμες Linux (x86, x86-64, POWER), Windows (x86, x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). Δωρεάν έκδοσηέχει περιορισμούς στη χρήση όχι περισσότερων από έναν επεξεργαστή διπλού πυρήνα και 2 GB για τη λειτουργία του DBMS μνήμη τυχαίας προσπέλασης(ο συνολικός αριθμός επεξεργαστών και μνήμης στο σύστημα μπορεί να είναι οποιοσδήποτε, αλλά οι πόροι πέρα ​​από τα καθορισμένα όρια δεν θα χρησιμοποιηθούν από το DBMS).

Ιστορία

Το DB2 έχει μακρά ιστορία και θεωρείται από ορισμένους ως το πρώτο DBMS που χρησιμοποιεί SQL.

Από το 1975 έως το 1982, το πρωτότυπο DB2 αναπτύχθηκε στην IBM με το όνομα System Relational ή System R. Η γλώσσα SQL εφαρμόστηκε για πρώτη φορά στο IBM System R, αλλά αυτό το σύστημα είχε ερευνητικό χαρακτήρα και το εμπορικό προϊόν, συμπεριλαμβανομένης της SQL, κυκλοφόρησε για πρώτη φορά από την Oracle το 1979.

Το DB2 DBMS πήρε το όνομά του το 1982 με την πρώτη εμπορική κυκλοφορία για SQL/DS και στη συνέχεια για MVS που ονομάζεται DB2. Για μεγάλο χρονικό διάστημα, μαζί με το "DB2", χρησιμοποιήθηκε η παραλλαγή "Βάση δεδομένων 2", επίσης σήμα κατατεθέν της IBM. Προφανώς, αυτό επρόκειτο να είναι το δεύτερο ναυαρχίδα του IBM DBMS μετά το παλιό ιεραρχικό IMS DBMS.

Η ανάπτυξη του DB2 ξεκινά στις αρχές της δεκαετίας του 1970, όταν ο Δρ E. F. Codd, ο οποίος εργαζόταν για την IBM, ανέπτυξε τη θεωρία των σχεσιακών βάσεων δεδομένων και δημοσίευσε ένα μοντέλο χειρισμού δεδομένων τον Ιούνιο του 1970. Για να εφαρμόσει αυτό το μοντέλο, ανέπτυξε μια γλώσσα σχεσιακής βάσης δεδομένων και την ονόμασε Alpha. Η IBM επέλεξε να αναθέσει περαιτέρω ανάπτυξη σε μια ομάδα προγραμματιστών εκτός του ελέγχου του Dr. Codd. Παραβιάζοντας κάποιες αρχές του σχεσιακού μοντέλου, το εφάρμοσαν ως «δομημένο αγγλική γλώσσααιτήματα», συντομογραφία SEQUEL. Εφόσον το SEQUEL ήταν ήδη σήμα κατατεθέν, το όνομα συντομεύτηκε σε SQL - "Structured Query Language" και παρέμεινε έτσι μέχρι σήμερα.

Έτσι, ιστορικά, το DB2 εξελίχθηκε από το DB2 για MVS (εκ των οποίων το DB2 για z/OS είναι απόγονος) και το αδελφό του SQL/DS για VM (εκ των οποίων ο DB2 Server για VSE & VM είναι απόγονος). Αργότερα, μια άλλη ομάδα προγραμματιστών στην IBM εφάρμοσε τον διακομιστή OS/2 EE Database Manager, ο οποίος αργότερα εξελίχθηκε σε DB2 v2 για OS/2, AIX και μετά Windows, και στη συνέχεια σε DB2 UDB (ο απόγονός του είναι DB2 για Linux, UNIX και Windows ). Μια άλλη ομάδα ολοκλήρωσε την ενσωμάτωση της αρχιτεκτονικής DB2 με την ενσωματωμένη βάση δεδομένων AS/400 (ένας απόγονος - DB2 για i). Η IBM προχωρά σταδιακά προς την ενοποίηση όλων αυτών των κλάδων.

Ιδιαιτερότητες

Τα διακριτικά χαρακτηριστικά του DB2 περιλαμβάνουν τη διάλεκτο Γλώσσα SQL, το οποίο καθορίζει, με σπάνιες εξαιρέσεις, την καθαρά δηλωτική σημασία των δομών γλώσσας και έναν ισχυρό βελτιστοποιητή πολλαπλών φάσεων που δημιουργεί ένα αποτελεσματικό σχέδιο εκτέλεσης ερωτημάτων με βάση αυτές τις δηλωτικές κατασκευές. Σε αντίθεση με άλλες διαλέκτους SQL, η διάλεκτος DB2 SQL δεν έχει ουσιαστικά υποδείξεις για τον βελτιστοποιητή, είναι ανεπαρκώς ανεπτυγμένη (και για πολύ καιρόγενικά απουσίαζε) μια γλώσσα αποθηκευμένης διαδικασίας, και επομένως όλα στοχεύουν στη διατήρηση ενός δηλωτικού στυλ γραφής ερωτημάτων. Ταυτόχρονα, η γλώσσα DB2 SQL είναι υπολογιστικά πλήρης, δηλαδή, σας επιτρέπει ενδεχομένως να ορίσετε τυχόν υπολογίσιμες αντιστοιχίες μεταξύ των δεδομένων προέλευσης και του αποτελέσματος σε μια δηλωτική μορφή. Αυτό επιτυγχάνεται, μεταξύ άλλων, με τη χρήση εκφράσεων πίνακα, αναδρομής και άλλων προηγμένων μηχανισμών χειρισμού δεδομένων.

Λόγω της εστίασης της IBM στη σχεσιακή ανάπτυξη και της θέσης της εταιρείας στον κλάδο των υπολογιστών, η διάλεκτος DB2 SQL έχει σημαντικό αντίκτυπο στα πρότυπα ANSI/ISO SQL.

Οι αποθηκευμένες διαδικασίες δεν χρησιμοποιούνται ευρέως στο DB2 και παραδοσιακά, οι συμβατικές γλώσσες προγραμματισμού υψηλού επιπέδου (C, Java, PL/I, Cobol, κ.λπ.) χρησιμοποιούνται για τη σύνταξη αποθηκευμένων διαδικασιών, κάτι που επιτρέπει στον προγραμματιστή να μορφοποιεί εύκολα τις τον ίδιο κώδικα είτε ως μέρος της εφαρμογής είτε ως αποθηκευμένη διαδικασία, ανάλογα με το αν είναι καταλληλότερο να εκτελεστεί στον πελάτη ή στον διακομιστή. Η DB2 επίσης εφαρμόζει επί του παρόντος τη διαδικαστική επέκταση SQL για αποθηκευμένες διαδικασίες, σύμφωνα με το πρότυπο ANSI SQL/PSM.

Ο βελτιστοποιητής DB2 χρησιμοποιεί εκτεταμένα στατιστικά στοιχεία διανομής πινάκων (αν η διαδικασία συλλογής δεδομένων έγινε από το DBA), έτσι το ίδιο ερώτημα SQL μπορεί να μεταφραστεί σε εντελώς διαφορετικά σχέδια εκτέλεσης ανάλογα με τα στατιστικά χαρακτηριστικά των δεδομένων που επεξεργάζεται.

Δεδομένου ότι ιστορικά το DB2 έχει εξελιχθεί από συστήματα πολλών χρηστών σε κεντρικούς υπολογιστές, μεγάλη προσοχή στην αρχιτεκτονική DB2 δίνεται σε θέματα ασφάλειας και κατανομής των ρόλων των ειδικών που συντηρούν το DB2. Συγκεκριμένα, σε αντίθεση με πολλά άλλα DBMS, το DB2 έχει ξεχωριστούς ρόλους για τον διαχειριστή του DBMS (υπεύθυνος για τη διαμόρφωση στοιχεία λογισμικού DB2 και η βέλτιστη εκτέλεσή τους σε σύστημα υπολογιστή) και ένας διαχειριστής βάσης δεδομένων (υπεύθυνος για τη διαχείριση δεδομένων σε μια συγκεκριμένη βάση δεδομένων).

Η χρήση, εάν είναι απαραίτητο, στατικής SQL σε προγράμματα και η έννοια των πακέτων επιτρέπει, σε αντίθεση με τα περισσότερα άλλα DBMS, την εφαρμογή ενός τέτοιου μοντέλου ασφαλείας, όταν τα δικαιώματα εκτέλεσης ορισμένων λειτουργιών μπορούν να παραχωρηθούν σε προγράμματα εφαρμογών ελλείψει τέτοιων δικαιωμάτων για χρήστες που εργάζονται με αυτά τα προγράμματα. Σε αυτήν την περίπτωση, αυτό καθιστά δυνατή τη διασφάλιση της αδυναμίας του χρήστη να εργαστεί με τη βάση δεδομένων να παρακάμψει το πρόγραμμα εφαρμογής, εάν ο χρήστης έχει μόνο δικαιώματα να εκτελέσει το πρόγραμμα, αλλά όχι να χειριστεί ανεξάρτητα δεδομένα.

Ως μέρος της έννοιας της αύξησης του επιπέδου ενσωμάτωσης των εργαλείων ασφαλείας σε ένα σύστημα υπολογιστή, η DB2 δεν διαθέτει δικά της μέσα ελέγχου ταυτότητας χρηστών, ενσωμάτωσης με εργαλεία λειτουργικού συστήματος ή εξειδικευμένους διακομιστές ασφαλείας. Στο DB2, εξουσιοδοτούνται μόνο οι χρήστες που έχουν πιστοποιηθεί από το σύστημα.

Το DB2 είναι το μόνο σχεσιακό DBMS γενικού σκοπού που έχει υλοποιήσεις σε επίπεδο υλικού/λογισμικού (σύστημα IBM i· η υποστήριξη DB2 υλοποιείται επίσης σε υλικό IBM System z mainframe).

Οι σύγχρονες εκδόσεις του DB2 παρέχουν βελτιωμένη υποστήριξη για τη χρήση δεδομένων XML, συμπεριλαμβανομένων λειτουργιών σε μεμονωμένα στοιχεία εγγράφων XML.

Σφάλμα επεξεργασίας

Ένα χρήσιμο χαρακτηριστικό του DB2 SQL Server είναι η ικανότητά του να χειρίζεται σφάλματα. Για το σκοπό αυτό χρησιμοποιείται η δομή SQLCA. Περιοχή επικοινωνιών SQL- Περιοχή σύνδεσης SQL) που επιστρέφει πληροφορίες σφάλματος στο πρόγραμμα εφαρμογής μετά από κάθε εκτέλεση της πρότασης SQL.

Πεδία δομής SQLCODE και οι τιμές τους

Το κύριο, αλλά όχι πάντα χρήσιμο διαγνωστικό σφάλματος περιέχεται στο πεδίο SQLCODE(τύπος δεδομένων - ακέραιος) μέσα στο μπλοκ SQLCA. Μπορεί να λάβει τις ακόλουθες τιμές:

  • Το 0 σημαίνει επιτυχία.
  • Ένας θετικός αριθμός σημαίνει επιτυχία με μία ή περισσότερες προειδοποιήσεις. Για παράδειγμα, +100 σημαίνει ότι δεν βρέθηκαν στήλες.
  • Ένας αρνητικός αριθμός σημαίνει αποτυχία με σφάλμα. Για παράδειγμα, το -911 σημαίνει ένα ανιχνευμένο διάστημα αναμονής κλειδώματος (ή αδιέξοδο) που έχει λήξει, το οποίο ενεργοποιεί μια διαδοχική επαναφορά.

SQLERRM(τύπος δεδομένων - συμβολοσειρά 71 χαρακτήρων). Περιέχει συμβολοσειρά κειμένουμε περιγραφή του σφάλματος εάν το πεδίο SQLCODE είναι μικρότερο από μηδέν.

SQLERRD(τύπος δεδομένων - πίνακας, 6 ακέραιοι). Περιγράφει το αποτέλεσμα της εκτέλεσης της τελευταίας πρότασης SQL:

  • 1 στοιχείο - εσωτερικές πληροφορίες.
  • 2ο στοιχείο - περιέχει την τιμή του πεδίου τύπου SERIAL που δημιουργείται από τον διακομιστή για τη δήλωση INSERT ή έναν πρόσθετο κωδικό σφάλματος.
  • 3ο στοιχείο - ίσο με τον αριθμό των επεξεργασμένων εγγραφών.
  • 4ο στοιχείο - το κατά προσέγγιση κόστος εκτέλεσης αυτού του τελεστή.
  • 5ο στοιχείο - μετατόπιση του σφάλματος στην εγγραφή κειμένου της δήλωσης SQL.
  • 6ο στοιχείο - εσωτερικές πληροφορίες.

Σημειώσεις

Συνδέσεις

  • Σελίδα προγράμματος στον ιστότοπο της IBM
  • DB2 στο developerWorks - άρθρα και εκπαίδευση DB2
  • PlanetDB2 - Ιστολόγιο DB2

Βιβλιογραφία

  • Ημερομηνία Κ.Οδηγός DB2 Relational DBMS. - Μ.: Οικονομικά και στατιστική, 1988. - 320 σελ. - ISBN 5-279-00063-9
  • Zikopoulos P.K., Baklarz J., deRus D., Melnik R.B. DB2 Version 8: The Official Guide = DB2 Version 8: The Official Guide. - Μ.: KUDITS-OBRAZ, 2004. - 400 σελ. - ISBN 5-9579-0031-1
  • Smirnov S. N.Εργασία με IBM DB2: Εκμάθηση. - Μ.: Ήλιος, 2001. - 304 σελ. - ISBN 5-85438-007-2 (συνιστάται από πανεπιστήμια UMO της περιοχής ασφάλεια πληροφοριώνως εκπαιδευτικό βοήθημα στις ειδικότητες «Ολοκληρωμένη Ασφάλεια Πληροφοριών Αυτοματοποιημένων Συστημάτων» και «Ασφάλεια Υπολογιστών»)
  • Σούζαν Βίσερ, Μπιλ Γουόνγκ. Teach Yourself DB2 Universal Database in 21 Days = Sams Teach Yourself DB2 Universal Database in 21 Days. - 2η έκδ. - Μ.: Williams, 2004. - 528 σελ. - ISBN 0-672-32582-9
  • Hook J., Harbus R., Snow D.Ο Universal Guide to DB2 for Windows NT®. - New Jersey: Prentice Hall PTR, 1999. - P. 504. - ISBN 0-13-099723-4

Ίδρυμα Wikimedia. 2010 .

Δείτε τι είναι το "IBM DB2" σε άλλα λεξικά:

    IBM DB2- Προγραμματιστής(οι) IBM Αρχική έκδοση 1983 (1983) ... Wikipedia

    IBM DB2- DB2 ist ein kommerzielles relationales Databank Management System (RDBMS) der Firma IBM, dessen Ursprünge auf das System R und die Grundlagen von E. F. Codd vom IBM Research aus dem Jahr 1970 zurückgeht. Inhaltsverzeichnis 1 Eigenschaften 1.1… … Deutsch Wikipedia

    IBM DB2- Developpeur IBM Dernière version ... Wikipedia en Français

    IBM DB2 Commonstore- Λογισμικό DB2 CommonStore Archiving που παράγεται από την IBM για τη διαχείριση μηνυμάτων ηλεκτρονικού ταχυδρομείου ή δεδομένων SAP ERP. Μέρος του χαρτοφυλακίου διαχείρισης πληροφοριών της IBM που βασίζεται στην πλατφόρμα βάσης δεδομένων DB2. Το DB2 CommonStore είναι ένα από τα πολλά προϊόντα που είναι… … Wikipedia

Στη δουλειά, έπρεπε να ασχοληθώ με το IBM DB2 DBMS για κάποιο χρονικό διάστημα. Επειδή Δεδομένου ότι το σύστημα είναι εμπορικό, δεν υπάρχουν πολλές πληροφορίες στα ρωσικά στο Διαδίκτυο, γι' αυτό αποφάσισα να περιγράψω μερικές από τις δυνατότητες αυτού του DBMS.

Σημείο εισόδου

Ας ξεκινήσουμε με το σημείο εισόδου στο DBMS. Σε SQL SERVER τελικό σημείοείναι ένα παράδειγμα, στο οποίο φυσικά μπορούν να υπάρχουν ξεχωριστές βάσεις δεδομένων, αλλά το μοντέλο διαμόρφωσης και ασφάλειας είναι το ίδιο για ολόκληρη την παρουσία. Στο DB2, το σημείο εισόδου μοιάζει με αυτό - μια παρουσία (που αντιστοιχεί σε μια συγκεκριμένη θύρα) - μια βάση δεδομένων. Ταυτόχρονα, υπάρχει μια ρύθμιση παραμέτρων για ολόκληρη την παρουσία και για μια ξεχωριστή βάση δεδομένων.

Μπορείτε να προβάλετε τη διαμόρφωση της παρουσίας είτε χρησιμοποιώντας την εντολή db2:

Διαμόρφωση διαχειριστή βάσης δεδομένων

Τύπος κόμβου = Enterprise Server Edition με τοπικούς και απομακρυσμένους πελάτες

Επίπεδο έκδοσης διαμόρφωσης διαχειριστή βάσης δεδομένων = 0x0b00

Ταχύτητα CPU (millisec/instruction) (CPUSPEED) = 2,912790e-07
Εύρος ζώνης επικοινωνιών (MB/sec) (COMM_BANDWIDTH) = 1,000000e+02

Μέγιστος αριθμός ταυτόχρονων ενεργών βάσεων δεδομένων (NUMDB) = 8
Υποστήριξη Συστήματος Ομοσπονδιακής Βάσης Δεδομένων (ΟΜΟΣΠΟΝΩΣΗ) = ΝΑΙ
Όνομα παρακολούθησης επεξεργαστή συναλλαγών (TP_MON_NAME) =

Προεπιλεγμένος λογαριασμός αντιστροφής χρέωσης (DFT_ACCOUNT_STR) =

Διαδρομή εγκατάστασης Java Development Kit (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

Επίπεδο καταγραφής διαγνωστικού σφάλματος (DIAGLEVEL) = 3
Επίπεδο ειδοποίησης(NOTIFYLEVEL) = 3
Διαδρομή καταλόγου διαγνωστικών δεδομένων (DIAGPATH) = /home/db2inst1/sqllib/db2dump

Προεπιλεγμένοι διακόπτες παρακολούθησης βάσης δεδομένων
Pool buffer (DFT_MON_BUFPOOL) = OFF

Όπου θα καθοριστούν οι παράμετροι, η σημασία και η αποκωδικοποίησή τους. Μια συντομευμένη έκδοση είναι επίσης δυνατή:

πάρτε dbm cfg

Ή με ένα ερώτημα:

Επιλέξτε όνομα, τιμή από sysibmadm.dbmcfg

Από σημαντικές παραμέτρουςμπορείτε να σημειώσετε:

  • τύπος ελέγχου ταυτότητας (AUTHENTICATION)
  • προεπιλεγμένη διαδρομή για τη δημιουργία νέων βάσεων δεδομένων (DFTDBPATH)
  • εντοπισμός διακομιστή δικτύου (DISCOVER)
Μπορείτε να δείτε τις ρυθμίσεις για μια συγκεκριμένη βάση δεδομένων όπως αυτή:

σύνδεση στο δείγμα(δείγμα - όνομα βάσης δεδομένων)

λάβετε τη διαμόρφωση του διαχειριστή βάσης δεδομένων

Ή με περίπου το ίδιο αίτημα με πριν:

επιλέξτε όνομα, τιμή από sysibmadm.dbcfg

Αυθεντικοποίηση

Η μεγάλη διαφορά μεταξύ του DB2 και άλλων DBMS είναι το μοντέλο ελέγχου ταυτότητας. Δεν υπάρχουν εσωτερικοί χρήστες όπως στον SQL Server ή στο MySQL. Όλος ο έλεγχος ταυτότητας εκτελείται με μέσα εξωτερικά του DBMS (δυναμικά φορτωμένα πρόσθετα) - μέσω του λειτουργικού συστήματος ή εξωτερικών προσθηκών (Kerberos, GSS API). Ο τύπος ελέγχου ταυτότητας ορίζεται στην παράμετρο AUTHENTICATION της διαμόρφωσης του διαχειριστή βάσης δεδομένων. Από προεπιλογή, ορίζεται η τιμή SERVER - το όνομα χρήστη και ο κωδικός πρόσβασης μεταδίδονται σε καθαρό κείμενο και αυτό το ζεύγος ελέγχεται για ορθότητα μέσω του λειτουργικού συστήματος. Εάν το όνομα χρήστη και ο κωδικός πρόσβασης είναι σωστά, τότε ελέγχεται το δικαίωμα CONNECT για τον χρήστη ή τις ομάδες στις οποίες είναι μέλος (συμπεριλαμβανομένης της ειδικής ομάδας PUBLIC, η οποία περιλαμβάνει όλους τους εξουσιοδοτημένους χρήστες). Αυτά τα προνόμια μπορούν να προβληθούν στον πίνακα SYSCAT.DBAUTH:

επιλέξτε GRANTEE από το SYSCAT.DBAUTH όπου CONNECTAUTH = "Y"

Ένα μεγάλο λάθος ρύθμισης παραμέτρων είναι να συμπεριληφθεί ο τύπος ελέγχου ταυτότητας CLIENT.Σε αυτήν την περίπτωση, το DB2 εμπιστεύεται τον έλεγχο ταυτότητας στον συνδεδεμένο πελάτη και εάν το PUBLIC έχει το δικαίωμα CONNECT, τότε οποιοσδήποτε χρήστης μπορεί να συνδεθεί στη βάση δεδομένων και να έχει πρόσβαση σε όλα τα δεδομένα που έχει το PUBLIC. Το όνομα χρήστη λαμβάνεται από το λειτουργικό σύστημα. Δηλαδή, αν συνδεθούμε μέσω του Data Studio ως διαχειριστής χρήστη, τότε όλα τα προνόμια που αυτόν τον χρήστη. Και σε αυτή την περίπτωση, δεν υπάρχει διαφορά από ποιον υπολογιστή έγινε η πρόσβαση. Αυτός ο τύποςΟ έλεγχος ταυτότητας συνιστάται να ενεργοποιείται μόνο όταν υπάρχει ασφαλές κανάλι μεταξύ του διακομιστή και του πελάτη και οι άλλοι πελάτες δεν θα μπορούν να συνδεθούν στο DBMS.

Εξουσιοδότηση

Τα δικαιώματα επιπέδου παρουσίας είναι γραμμένα στη διαμόρφωση του διαχειριστή βάσης δεδομένων. Αυτά είναι τα ακόλουθα προνόμια:

  • ΣΥΣΑΔΜ
  • SYSCTRL
  • ΣΥΣΜΑΙΝΤ
  • ΣΥΣΜΩΝ
Αυτά τα δικαιώματα ορίζονται καθορίζοντας την ομάδα στην οποία θα εισέλθει ο χρήστης. Στο dbmcfg, αυτές είναι οι επιλογές SYSADM_GROUP , SYSCTRL_GROUP , SYSMAINT_GROUP και SYSMON_GROUP, αντίστοιχα.

Στη συνέχεια, υπάρχουν προνόμια ειδικά για τη βάση δεδομένων. Αυτά είναι προνόμια όπως πρόσβαση σε βάση δεδομένων (CONNECTAUTH), δημιουργία πίνακα (CREATETABAUTH), δημιουργία ρουτίνας (EXTERNALROUTINEAUTH) και ούτω καθεξής. Αυτά τα δικαιώματα μπορούν να προβληθούν στην προβολή SYSCAT.DBAUTH

Και τέλος, δικαιώματα πρόσβασης σε συγκεκριμένα δεδομένα - πίνακες, υπορουτίνες και ούτω καθεξής. Όλα εδώ είναι αρκετά επιπόλαια, αλλά και με κάποιες ιδιαιτερότητες.

Τα δικαιώματα πρόσβασης στον πίνακα μπορούν να προβληθούν στην προβολή SYSCAT.TABAUTH. Ο τύπος του παραχωρούμενου προνομίου αποθηκεύεται σε ξεχωριστές στήλες, ανάλογα με το ίδιο το προνόμιο (SELECTAUTH, DELETEAUTH κ.λπ.). Όταν εκχωρείτε ένα προνόμιο χρησιμοποιώντας την εντολή GRANT για τα δικαιώματα REFERENCES και UPDATE, μπορείτε επίσης να καθορίσετε τα ονόματα των στηλών στις οποίες θα επεκταθούν τα δεδομένα δικαιώματα. Σε αυτήν την περίπτωση, οι πληροφορίες σχετικά με αυτό μπορούν να προβληθούν στην προβολή SYSCAT.COLAUTH

Τα προνόμια για τις ρουτίνες (συναρτήσεις, διαδικασίες και μέθοδοι) μπορούν να προβληθούν στο SYSCAT.ROUTINEAUTH . Δεν είναι όλα ασήμαντα εδώ, ανάλογα με τα πεδία SPECIFICNAME και TYPENAME, μπορούν να παραχωρηθούν δικαιώματα σε όλες τις υπορουτίνες ενός δεδομένου σχήματος.

Εάν αρέσει στους αναγνώστες το άρθρο, τότε είμαι έτοιμος να μιλήσω για την προστασία δεδομένων στο DB2 χρησιμοποιώντας τον έλεγχο πρόσβασης βάσει ετικετών

Επισκόπηση βασικών εννοιών και γενική περιγραφήΑρχιτεκτονικές βάσεων δεδομένων IBM DB2 για πλατφόρμες Linux, Unix και Windows

Σειρά περιεχομένου:

Αυτό το περιεχόμενο είναι μέρος # μιας σειράς # άρθρων: Επισκόπηση του DB2 LUW

http://www.?q=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80+DB2+LUW&co=ru&lo=ru&ibm-submit.x=11&ibm-submit.y=13&sn= mh&lang=ru&cc=RU&en=utf&hpp=

Μείνετε συντονισμένοι για νέα άρθρα αυτής της σειράς.

Πρώτες ύλεςκαι στοιχεία επικοινωνίας

Ιδιαίτερες ευχαριστίες στον Mark Barinshtein για τον χρόνο που αφιέρωσε για τη διόρθωση του υλικού των άρθρων, την προσοχή στη λεπτομέρεια και τα πολύτιμα σχόλια.

Το κύριο μέρος του υλικού των άρθρων είναι μια ελεύθερη ερμηνεία επίσημη τεκμηρίωση db2. Οι πληροφορίες που παρουσιάζονται έχουν αναδιαρθρωθεί και αναδιατυπωθεί ώστε να είναι συνοπτικές και ταυτόχρονα όσο το δυνατόν πιο σαφείς. Παραπομπές στις πηγές που χρησιμοποιούνται σε όλες τις περιπτώσεις παρέχονται στο κείμενο των άρθρων και στην ενότητα «Πηγές».

Ως μέρος μιας σειράς άρθρων, σχεδιάζεται να επανεξεταστούν τα ακόλουθα θέματα:

  1. (το άρθρο που διαβάζετε αυτή τη στιγμή)
  2. (εγκατάσταση, διαμόρφωση, διαγνωστικά, αντιγράφων ασφαλείαςκαι ανάρρωση)
  3. προηγμένες διαδικασίες διαχείρισης (μεταφορά πληροφοριών, βελτιστοποίηση απόδοσης, διαχείριση προτεραιοτήτων εκτέλεσης).
  4. εργαλεία για την κατασκευή αποθηκών αναλυτικών δεδομένων.
  5. Τεχνολογίες ανάλυσης στη μνήμη - DB2 BLU.
  6. μαζικά παράλληλη αναλυτική επεξεργασία δεδομένων με DB2 DPF (Δυνατότητα διαμέρισης βάσης δεδομένων).
  7. κατανεμημένες βάσεις δεδομένων (διαμορφώσεις ανακατεύθυνσης, αναπαραγωγή δεδομένων και ενοποιημένη πρόσβαση δεδομένων).
  8. Δυνατότητες ομαδοποίησης DB2 pureScale για ανοχή σφαλμάτων και επεκτασιμότητα.

Τα άρθρα της σειράς θα δημοσιευτούν καθώς προετοιμάζεται το σχετικό υλικό.

Οικογένεια προϊόντων DB2

Η ονομασία "DB2" χρησιμοποιείται από την IBM για μια ολόκληρη οικογένεια προϊόντων που διαφέρουν μεταξύ τους τόσο ως προς τη σύνθεση των πλατφορμών υλικού και λογισμικού στις οποίες χρησιμοποιούνται, όσο και ως προς τη λειτουργικότητα, την αρχιτεκτονική και τα τεχνολογικά χαρακτηριστικά. Αυτές οι διαφορές οφείλονται στη στενή ενσωμάτωση των περισσότερων προϊόντων της οικογένειας DB2 με λειτουργικά συστήματαστο οποίο λειτουργούν, καθώς και τις ιδιαιτερότητες αυτών των λειτουργικών συστημάτων.

Η οικογένεια προϊόντων DB2 περιλαμβάνει επί του παρόντος:

  • DB2 για Linux, Unix και Windows, ή DB2 LUW - ένα DBMS για συστήματα που εκτελούν Linux (RedHat, SuSE, Ubuntu), UNIX (AIX, HP-UX, Solaris) και Microsoft Windows, το οποίο είναι το θέμα αυτού του άρθρου και άλλων άρθρων αυτής της σειράς.
  • DB2 για z/OS- DBMS για το λειτουργικό σύστημα z/OS που χρησιμοποιείται σε κεντρικούς υπολογιστές IBM System z.
  • Διακομιστής DB2 για VSE & VM- DBMS για λειτουργία z/VM και z/VSE που χρησιμοποιούνται σε κεντρικούς υπολογιστές IBM System z.
  • DB2 για i- DBMS για το λειτουργικό σύστημα System i που χρησιμοποιείται στην πλατφόρμα IBM Power.

Κάθε ένα από τα αναφερόμενα DBMS είναι αρχιτεκτονικά προσαρμοσμένο για την πιο αποτελεσματική λειτουργία στα αντίστοιχα λειτουργικά συστήματα και περιλαμβάνει το δικό του συγκεκριμένο σύνολο εργαλείων και εργαλείων διαχείρισης.

Η ορολογία που χρησιμοποιείται στην τεκμηρίωση για τα διάφορα DBMS της οικογένειας DB2 δεν είναι ομοιόμορφη και οι ίδιοι όροι μπορεί να έχουν διαφορετική σημασία για διαφορετικές παραλλαγές του DB2: για παράδειγμα, οι όροι "βάση δεδομένων" και "tablespace" έχουν διαφορετική σημασία για το DB2 LUW και το DB2 για z/OS, λόγω αρχιτεκτονικών διαφορών μεταξύ αυτών των τύπων DBMS.

Έτσι, όταν εργάζεστε με πόρους πληροφοριών που είναι αφιερωμένοι στο DB2, είναι απαραίτητο να διακρίνετε με σαφήνεια ποια από τα προϊόντα της οικογένειας συζητούνται προκειμένου να αποφευχθεί η σύγχυση και τα πιθανά λάθη.

Καταργημένες λειτουργίες DB2 LUW

Με τη μία ή την άλλη μορφή, το DB2 LUW κυκλοφορεί στην αγορά από το 1989 (το έτος κυκλοφόρησε το OS/2 1.10 Extended Edition, το οποίο περιελάμβανε το στοιχείο Database Manager - δηλαδή το σχεσιακό DBMS που ήταν η βάση για το DB2 LUW).

Κατά τη διάρκεια της μακροχρόνιας ανάπτυξης του προϊόντος, ορισμένες λειτουργίες που είχαν αρχικά αναπτυχθεί επανεξετάστηκαν και αντικαταστάθηκαν από άλλη υλοποίηση ή αποκλείστηκαν εντελώς από το προϊόν λόγω της έλλειψης ανάγκης τους. Επομένως, όταν εργάζεστε με υλικά που έχουν προετοιμαστεί για παλαιότερες εκδόσεις του DB2 (για παράδειγμα, έκδοση 9.7), να γνωρίζετε ότι ορισμένες από τις δυνατότητες που περιγράφονται σε αυτά τα υλικά ενδέχεται να αντικατασταθούν σε νεότερες εκδόσεις του DB2 (για παράδειγμα, 10.5 και 11.1). Λεπτομερείς πληροφορίες σχετικά με τις λειτουργίες που έχουν καταργηθεί και αντικατασταθεί παρέχονται στο .

Οι πιο αξιοσημείωτες αλλαγές για διαχειριστές και προγραμματιστές περιλαμβάνουν:

  • αντικατάσταση απαρχαιωμένων εργαλείων διαχείρισης γραφικών "Control Center", "Task Center" και μια σειρά άλλων με τις λειτουργίες του δωρεάν πακέτου IBM Data Studio, καθώς και τις λειτουργίες των εργαλείων που περιλαμβάνονται στη δωρεάν έκδοση του IBM Data Server Manager προϊόν;
  • κατάργηση του διακομιστή διαχείρισης DB2 (DAS), ο οποίος απαιτούνταν για την εκτέλεση εργαλείων διαχείρισης παλαιού τύπου.
  • αντικατάσταση των εργαλείων διαχείρισης φόρτου εργασίας DB2 Governor και Query Patroller με τη λειτουργικότητα DB2 Workload Manager (DB2 WLM).

Σκοπός της προετοιμασίας αυτής της σειράς άρθρων

Ο κύριος σκοπός της συγγραφής μιας σειράς άρθρων ανασκόπησης για το IBM DB2 είναι να καλυφθεί η έλλειψη υλικού για αυτό το θέμα στα ρωσικά. Πράγματι, παρά τη διαθεσιμότητα μεταφράσεων ενός σημαντικού μέρους της τεκμηρίωσης στα ρωσικά και προσβάσιμων βιβλίων στο DB2, εξακολουθεί να υπάρχει έλλειψη διαθέσιμων πληροφοριών επισκόπησης που θα επέτρεπαν στους ενδιαφερόμενους αναγνώστες να πάρουν μια ιδέα για τις δυνατότητες του DB2, στις ιδιαιτερότητες λειτουργικότητας και διαχείρισης.

Ωστόσο, δεν είναι πρόθεση του συγγραφέα να προετοιμάσει μια επισκόπηση όλων των προϊόντων της οικογένειας DB2 (δείτε την πλαϊνή γραμμή "Η οικογένεια προϊόντων DB2"), αντίθετα, σχεδιάζεται να επικεντρωθεί στην παραλλαγή DB2 για Linux, Unix και Λειτουργικά συστήματα Windows - δηλ. σε ένα προϊόν DB2 LUW.

Αναγνώστες που ενδιαφέρονται για πρακτικός οδηγόςγια να ξεκινήσετε με το DB2, σας συνιστώ να ανατρέξετε στο βιβλίο που διανέμεται ελεύθερα "", μεταφρασμένο στα ρωσικά. Αυτό το βιβλίο παρέχει πολλά παραδείγματα κοινών λειτουργιών λογισμικού DB2, καθιστώντας εύκολο να ξεκινήσετε τόσο με την έκδοση DB2 9.7 που περιγράφεται στο βιβλίο όσο και με τις νεότερες εκδόσεις DB2 (10.5 και 11.1). Όταν εργάζεστε με τις τρέχουσες εκδόσεις λογισμικό DB2, να γνωρίζετε ότι ορισμένες λειτουργίες στην έκδοση 9.7 έχουν καταργηθεί και δεν υποστηρίζονται σε νέες εκδόσεις του προϊόντος (δείτε την πλαϊνή γραμμή "Καταργημένες δυνατότητες DB2 LUW").

Λειτουργία DB2 LUW

Το IBM DB2 χρησιμοποιεί τα επί του παρόντος αποδεκτά αρχιτεκτονική πελάτη-διακομιστήσχεσιακό DBMS, με αποθήκευση πληροφοριών στον διακομιστή και σύνδεση εφαρμογών πελάτη με βάσεις δεδομένων τοπικά ή μέσω δικτύου.

Για την παροχή ταυτόχρονης πρόσβασης σε δεδομένα από παράλληλες εφαρμογές, το DB2 χρησιμοποιεί έναν μηχανισμό συναλλαγών που βασίζεται στο κλείδωμα και την καταγραφή συναλλαγών για την παροχή τυπικών εγγυήσεων ACID (Atomicity, Consistency, Isolation, Durability). Αυτός ο μηχανισμός έχει διανύσει πολύ δρόμο εξέλιξης για να διασφαλίσει τη μέγιστη απόδοση, αξιοπιστία και να ελαχιστοποιήσει τις καθυστερήσεις στην εκτέλεση της εφαρμογής.

Το DB2 παρέχει υποστήριξη για όλα τα κοινά βιομηχανικά πρότυπα για πρόσβαση σε δεδομένα εφαρμογών, συμπεριλαμβανομένης μιας τυπικής γλώσσας Ερωτήματα SQL, διεπαφές ODBC και JDBC, εργασία με τυπικές μορφές πίνακα κειμένου κ.λπ. Επιπλέον, το DB2 περιλαμβάνει προηγμένες δυνατότητες αποθήκευσης και εργασίας με ημιδομημένα δεδομένα σε Μορφές XML, JSON/BSON. Για την ανάπτυξη αποθηκευμένων διαδικασιών, το DB2 παρέχει υποστήριξη για μια ποικιλία διαδικαστικών γλωσσών, όπως:

  • πρότυπο για τη γλώσσα DB2 SQL PL,
  • τη γλώσσα SQL/PL που χρησιμοποιείται στο DBMS της Oracle,
  • τη δυνατότητα ανάπτυξης «εξωτερικών» αποθηκευμένων διαδικασιών σε Java, C, C++ και COBOL.

Τα διακριτικά χαρακτηριστικά του DB2 είναι:

  • επεκτασιμότητα, περιορισμένη μόνο από τους διαθέσιμους υπολογιστικούς πόρους και την πιο οικονομική χρήση των υπολογιστικών πόρων.
  • ισχυρά ενσωματωμένα μέσα διαφοροποίησης και ελέγχου πρόσβασης, τα οποία παρέχουν τη δυνατότητα λεπτομερούς περιορισμού της πρόσβασης σε πληροφορίες στο πλαίσιο αντικειμένων (πίνακες, προβολές), καθώς και την εφαρμογή ενός μοντέλου υποχρεωτικού ελέγχου πρόσβασης.
  • προηγμένο ολοκληρωμένο σύστημα δημιουργίας αντιγράφων ασφαλείας και ανάκτησης δεδομένων.
  • διαθεσιμότητα πλήρους συνόλου τεχνολογιών για την κατασκευή "κλασικών" αποθηκών αναλυτικών δεδομένων (διαίρεση πινάκων σε ενότητες, υλοποιημένες προβολές, βελτιστοποίηση προσωρινής αποθήκευσης δεδομένων και σάρωση πινάκων και ευρετηρίων, "εσωτερικός" παραλληλισμός στην εκτέλεση σύνθετων ερωτημάτων κ.λπ.)
  • υποστήριξη για τη δημιουργία διαμορφώσεων μαζικά παράλληλης αναλυτικής επεξεργασίας δεδομένων (MPP) από πολλούς διακομιστές που συνδέονται μέσω ενός δικτύου επικοινωνίας που βασίζεται στη λειτουργία διαμερισμάτων βάσης δεδομένων DB2 (DB2 DPF).
  • μέγιστη ανοχή σφαλμάτων και σχεδόν γραμμική κλιμάκωση των διαμορφώσεων συμπλέγματος PureScale DB2, με δεδομένα αποθηκευμένα σε κοινόχρηστους δίσκους.
  • Τεχνολογία DB2 BLU που υλοποιεί υποστήριξη για σύγχρονα αναλυτικά στοιχεία "στήλης" στη μνήμη χωρίς τη χρήση μη αυτόματης βελτιστοποίησης της δομής της βάσης δεδομένων.

Για να διευκολύνει τη μετεγκατάσταση εφαρμογών από άλλους τύπους DBMS (κυρίως Oracle Database), το DB2 παρέχει προηγμένα εργαλεία συμβατότητας, όπως υποστήριξη για τους απαραίτητους τύπους δεδομένων, αποθηκευμένες διαδικασίες και τυπικές προβολές συστήματος.

Υπάρχουν πολλές εκδόσεις του προϊόντος DB2 LUW, οι οποίες ενώνονται με ένα ενιαίο σύνολο βασικών λειτουργιών και διαφέρουν μεταξύ τους λόγω της παρουσίας περιορισμών στους χρησιμοποιούμενους υπολογιστικούς πόρους και υποστήριξης για προηγμένες λειτουργίες. Η έκδοση DB2 Express-C, η οποία είναι διαθέσιμη χωρίς κόστος, μπορεί να χρησιμοποιηθεί για αξιολόγηση προϊόντων, εκμάθηση και ακόμη και μικρές αναπτύξεις παραγωγής. Η λειτουργικότητα και οι περιορισμοί πόρων των διαφόρων εκδόσεων του DB2 LUW περιγράφονται λεπτομερώς στο άρθρο "".

Δομή του διακομιστή βάσης δεδομένων

Ένας διακομιστής βάσης δεδομένων DB2 είναι ένας υπολογιστής στον οποίο είναι εγκατεστημένο το λογισμικό διακομιστή DB2 (μηχανή DB2) και ο οποίος παρέχει υπηρεσίες δομημένης διαχείρισης πληροφοριών.

Η πρόσβαση στις υπηρεσίες DB2 από εφαρμογές παρέχεται από το λογισμικό πελάτη DB2 (IBM Data Server Driver Package) που επικοινωνεί με τον διακομιστή DB2 σύμφωνα με υποστηριζόμενες μεθόδους σύνδεσης εφαρμογών (συμπεριλαμβανομένων ODBC, JDBC, OLE DB, ADO, CLI και άλλων μεθόδων) . Στις περισσότερες περιπτώσεις, το απαιτούμενο λογισμικό πελάτη εγκαθίσταται με τον διακομιστή DB2, επιτρέποντας σε εφαρμογές που φιλοξενούνται απευθείας στον διακομιστή βάσης δεδομένων να συνδεθούν με τον διακομιστή DB2.

Ένας διακομιστής βάσης δεδομένων DB2 μπορεί να φιλοξενήσει πολλά αντίγραφα του λογισμικού DB2, με διαφορετικές εκδόσεις λογισμικού και καταλόγους εγκατάστασης. Πολλά αντίγραφα λογισμικού DB2 ενδέχεται να βρίσκονται ανεξάρτητα στον ίδιο διακομιστή, εφόσον δεν υπάρχουν διενέξεις πόρων μεταξύ τους (συμπεριλαμβανομένων επαρκών υπολογιστικών πόρων διακομιστή και χωρίς διενέξεις σχετικά με τους λογικούς πόρους του λειτουργικού συστήματος: ονόματα δικτύων, αριθμοί θυρών, κατάλογοι συστημάτων αρχείων κ.λπ. στις.).

Η άμεση παροχή υπηρεσιών DBMS παρέχεται από το στοιχείο διαχείρισης βάσεων δεδομένων DB2 (DB2 DBM). Κάθε αντίγραφο μπορεί να έχει πολλαπλές παρουσίες του διαχειριστή βάσης δεδομένων DB2, ή πιο συνοπτικά, παρουσίες DB2. Ένα παράδειγμα είναι ένα ανεξάρτητο περιβάλλον στο οποίο μπορούν να δημιουργηθούν βάσεις δεδομένων και να εκτελεστούν εφαρμογές. Κάθε παρουσία DB2 έχει τη δική της διαμόρφωση και παρέχει πρόσβαση σε ένα συγκεκριμένο σύνολο βάσεων δεδομένων. Οι παρουσίες DB2 είναι ανεξάρτητες με την έννοια ότι η εκτέλεση λειτουργιών σε μια παρουσία δεν επηρεάζει άλλες, εκτός από τους περιορισμούς πόρων που επιβάλλονται από την εκτέλεση πολλαπλών παρουσιών στον ίδιο φυσικό ή εικονικό διακομιστή.

Η έναρξη και η διακοπή των υπηρεσιών DB2 γίνεται σε επίπεδο στιγμιότυπου, δηλ. κάθε παρουσία DB2 μπορεί να βρίσκεται σε κατάσταση λειτουργίας ή διακοπής. Οι παράμετροι μιας παρουσίας DB2 μπορούν να ορίσουν τα όρια πόρων της (για παράδειγμα, όσον αφορά τη χρήση μνήμης). Οι πόροι μιας παρουσίας DB2 χρησιμοποιούνται για τη διατήρηση των βάσεων δεδομένων που υπάρχουν εντός της παρουσίας.

Μια βάση δεδομένων είναι μια συλλογή αντικειμένων που αποτελούν έναν ενιαίο πίνακα πληροφοριών (πίνακες, προβολές, ευρετήρια κ.λπ.). Οι βάσεις δεδομένων είναι ανεξάρτητες οντότητες και, κατά συνέπεια, συνήθως δεν μοιράζονται αντικείμενα με άλλες βάσεις δεδομένων (εξαίρεση μπορεί να είναι οι διαμορφώσεις κατανεμημένων βάσεων δεδομένων που χρησιμοποιούν μηχανισμούς ομοσπονδίας πρόσβασης δεδομένων).

Ένα σχηματικό παράδειγμα της δομής του διακομιστή βάσης δεδομένων φαίνεται στο σχήμα.


Σε πολλές περιπτώσεις, ο διακομιστής βάσης δεδομένων DB2 περιέχει μία εγκατάσταση DB2 με μία μόνο παρουσία που δημιουργήθηκε και εξυπηρετεί μία ενιαία βάση δεδομένων. Με αυτήν τη ρύθμιση παραμέτρων, όλοι οι πόροι διακομιστή βάσης δεδομένων χρησιμοποιούνται για την εκτέλεση μιας ενιαίας βάσης δεδομένων DB2.

Η εξυπηρέτηση αιτημάτων από συνδεδεμένες εφαρμογές στην πλευρά του διακομιστή της βάσης δεδομένων εκτελείται από τους λεγόμενους πράκτορες DB2. Για κάθε συνδεδεμένη εφαρμογή εντός μιας παρουσίας DB2, ξεκινά ένας συντονιστικός (κύριος) πράκτορας, ο οποίος μπορεί να εκκινήσει αρκετούς πρόσθετους (βοηθητικούς) πράκτορες ανάλογα με τις ανάγκες. Τεχνικά, κάθε πράκτορας είναι ένα ξεχωριστό νήμα εκτέλεσης ή (για παλαιότερες εκδόσεις του DB2) μια ξεχωριστή διεργασία λειτουργικού συστήματος, με σχετικούς πόρους που απαιτούνται για την εκτέλεσή του.

Επιλογές διαμόρφωσης DB2

Η διαμόρφωση του διακομιστή DB2 μπορεί να ρυθμιστεί σε τέσσερα διαφορετικά επίπεδα:

  • Μεταβλητές Περιβάλλοντος;
  • Μητρώο προφίλ DB2.
  • αρχείο ρύθμισης παραμέτρων του διαχειριστή βάσης δεδομένων (DBM CFG).
  • αρχείο ρυθμίσεων βάσης δεδομένων (DB CFG).

Οι μεταβλητές περιβάλλοντος ορίζονται σε επίπεδο λειτουργικού συστήματος διακομιστή και μέσω του λειτουργικού συστήματος. Για το λειτουργικό σύστημα Windows, αυτές οι μεταβλητές είναι πραγματικά καθολικές για τον διακομιστή, για τις οικογένειες λειτουργικών συστημάτων Unix και Linux, κάθε παρουσία μπορεί να έχει τις δικές της συγκεκριμένες ρυθμίσεις μεταβλητής περιβάλλοντος.

Οι ρυθμίσεις μητρώου προφίλ DB2 μπορούν να οριστούν σε επίπεδο λειτουργικού συστήματος (καθολικά) ή σε επίπεδο παρουσίας, με τις ρυθμίσεις επιπέδου παρουσίας να υπερισχύουν εκείνων που έχουν οριστεί σε επίπεδο λειτουργικού συστήματος. Η προβολή και η ρύθμιση των τιμών μητρώου προφίλ DB2 πραγματοποιείται χρησιμοποιώντας την εντολή db2set.

Οι επιλογές του αρχείου διαμόρφωσης του διαχειριστή βάσης δεδομένων ορίζονται σε επίπεδο παρουσίας, ενώ οι επιλογές ρύθμισης παραμέτρων βάσης δεδομένων ορίζονται σε επίπεδο βάσης δεδομένων.

Πολλές παράμετροι είναι δυναμικές, δηλαδή οι αλλαγές που γίνονται τίθενται σε ισχύ αμέσως. Ωστόσο, υπάρχουν ρυθμίσεις που απαιτούν να σταματήσετε και να ξεκινήσετε την αλλαγή της παρουσίας. Αυτό μπορεί να γίνει στη γραμμή εντολών χρησιμοποιώντας τις εντολές db2stop και db2start. Όλες οι εφαρμογές πρέπει να τερματιστούν πριν από τη διακοπή της παρουσίας. Μπορείτε να χρησιμοποιήσετε την εντολή db2stop force για να αναγκάσετε μια παρουσία να σταματήσει.

Το αρχείο διαμόρφωσης του διαχειριστή βάσης δεδομένων περιλαμβάνει ρυθμίσεις που επηρεάζουν την παρουσία και όλες τις βάσεις δεδομένων που περιέχει. Το αρχείο διαμόρφωσης του διαχειριστή βάσης δεδομένων μπορεί να προβληθεί ή να τροποποιηθεί χρησιμοποιώντας γραμμή εντολών(χρησιμοποιώντας τις εντολές GET DBM CFG και UPDATE DBM CFG), καθώς και τα εργαλεία IBM Data Studio.

Το αρχείο διαμόρφωσης βάσης δεδομένων περιλαμβάνει επιλογές που επηρεάζουν μια συγκεκριμένη βάση δεδομένων. Το αρχείο διαμόρφωσης της βάσης δεδομένων μπορεί να προβληθεί ή να τροποποιηθεί χρησιμοποιώντας τη γραμμή εντολών (εντολές GET DB CFG και UPDATE DB CFG) και το IBM Data Studio.

Λεπτομερής περιγραφή των υποστηριζόμενων , καθώς και στην επίσημη τεκμηρίωση του DB2.

Οργάνωση αποθήκευσης δεδομένων

Η μικρότερη φυσική μονάδα αποθήκευσης στο DB2 είναι σελίδα. Τα επιτρεπόμενα μεγέθη σελίδας είναι 4K, 8K, 16K και 32K. Πληροφορίες αντικειμένου βάσης δεδομένων (όπως καταχωρήσεις πίνακα και καταχωρήσεις ευρετηρίου) τοποθετούνται στις σελίδες.

Η εκχώρηση πρόσθετου χώρου για αποθήκευση δεδομένων εκχωρείται από ομάδες σελίδων, οι οποίες καλούνται εκτάσεις. Η εκτέλεση λειτουργιών εκχώρησης επιπλέον χώρου σε επίπεδο έκτασης βελτιώνει την απόδοση των ενθέτων και ενημερώσεων εγγραφών.

Η αποθήκευση πληροφοριών στις βάσεις δεδομένων DB2 οργανώνεται σε αντικείμενα που ονομάζονται επιτραπέζιους χώρους. Το tablespace είναι ένα ονομασμένο σύνολο κοντέινερ για την αποθήκευση πληροφοριών που τοποθετούνται στο σύστημα αρχείων ενός διακομιστή βάσης δεδομένων.

Δημιουργούνται ένας ή περισσότεροι χώροι τραπεζιού για κάθε χώρο τραπεζιού. δοχεία(αρχεία ή καταλόγους στο σύστημα αρχείων) για αποθήκευση πληροφοριών, καθώς και ρύθμιση του μεγέθους της σελίδας και της περιοχής για την προσωρινή αποθήκευση δεδομένων (ομάδα buffer, βλέπε παρακάτω), καθώς και μια σειρά άλλων παραμέτρων.

Υπάρχουν οι ακόλουθοι τύποι επιτραπέζιων χώρων:

  • συνήθης: χρησιμοποιείται για τη φιλοξενία πινάκων χρηστών και ευρετηρίων.
  • μεγάλο: Χρησιμοποιείται για τη φιλοξενία πινάκων και ευρετηρίων χρηστών, καθώς και δεδομένων μεγάλων αντικειμένων (LOB) και δεδομένων XML. Στις σύγχρονες εκδόσεις του DB2, οι μεγάλοι επιτραπέζιοι χώροι χρησιμοποιούνται από προεπιλογή αντί για τους κανονικούς.
  • προσωρινός: χρησιμοποιείται για την αποθήκευση προσωρινών πληροφοριών κατά την εκτέλεση ερωτημάτων (προσωρινοί χώροι πινάκων συστήματος) και προσωρινών πινάκων που ορίζονται από εφαρμογές (προσωρινοί επιτραπέζιοι χώροι χρήστη).

Ο τύπος ενός tablespace καθορίζεται όταν δημιουργείται και δεν μπορεί να αλλάξει παρά μόνο με τη διαγραφή και την εκ νέου δημιουργία του tablespace.

Οι επιτραπέζιοι χώροι μπορούν επίσης να ταξινομηθούν ανάλογα με τον τύπο ελέγχου που ορίζεται όταν δημιουργείται ο πίνακας:

  • χώροι πίνακα που διαχειρίζεται το σύστημα (SMS, System Managed Storage) - οι κατάλογοι χρησιμοποιούνται ως δοχεία χώρου πίνακα, τα αρχεία δεδομένων δημιουργούνται για την τοποθέτηση αντικειμένων αποθήκευσης σε καταλόγους. Ο χώρος δεν έχει εκ των προτέρων εκχωρηθεί, τα αρχεία μεγαλώνουν δυναμικά. Όταν ορίζονται, τα δοχεία σταθεροποιούνται τη στιγμή που δημιουργούνται.
  • Χώροι πίνακα που διαχειρίζεται μια βάση δεδομένων (DMS, Διαχειριζόμενη αποθήκευση βάσης δεδομένων) - τα προκατανεμημένα αρχεία χρησιμοποιούνται ως κοντέινερ χώρου πίνακα, τα κοντέινερ μπορούν να προστεθούν, να διαγραφούν ή να αλλάξουν.
  • αυτόματα διαχειριζόμενοι επιτραπέζιοι χώροι (αυτόματη αποθήκευση) - αυτόματη ανίχνευση του τύπου και της θέσης του κοντέινερ ανάλογα με τον τύπο του επιτραπέζιου χώρου (DMS για κανονικούς και μεγάλους επιτραπέζιους χώρους, SMS για προσωρινούς επιτραπέζιους χώρους). Συγκεκριμένοι ορισμοί κοντέινερ δεν καθορίζονται κατά τη δημιουργία χώρου τραπεζιού, τα απαραίτητα κοντέινερ δημιουργούνται αυτόματα. Η ανάπτυξη των υπαρχόντων εμπορευματοκιβωτίων και η προσθήκη νέων εμπορευματοκιβωτίων ελέγχονται πλήρως από την DB2.

Για να ενεργοποιήσετε την αυτόματη διαχείριση επιτραπέζιου χώρου, πρέπει πρώτα να δημιουργήσετε μια βάση δεδομένων με ενεργοποιημένη την αυτόματη αποθήκευση (που είναι η προεπιλογή) και να συνδέσετε ένα σύνολο διαδρομών αποθήκευσης σε αυτήν.

Από προεπιλογή, το DB2 γράφει διαδοχικά σε εκτάσεις, "ξεγυμνώνοντας" μεταξύ των κοντέινερ. Για παράδειγμα, εάν έχετε χώρο πίνακα με μέγεθος σελίδας 4 KB και μέγεθος έκτασης 8 σελίδων και χρησιμοποιείτε 3 άμεσα κοντέινερ σε χώρο πίνακα DMS, αυτό σημαίνει ότι 32 KB δεδομένων (4 KB x 8 σελίδες σε έκταση = 32 KB) θα γραφτεί ένας δίσκος πριν ξεκινήσει η εγγραφή στον επόμενο.

Ξεκινώντας με την έκδοση DB2 10.1, μια νέα ιδέα έχει εισαχθεί για την απλοποίηση της διαχείρισης αποθήκευσης δεδομένων − ομάδα αποθήκευσης(ομάδα αποθήκευσης). Μια ομάδα αποθήκευσης είναι μια ονομασμένη συλλογή διαδρομών στο σύστημα αρχείων διακομιστή DBMS που μπορεί να χρησιμοποιηθεί για την αποθήκευση δεδομένων. Η σύνθεση των ομάδων αποθήκευσης σε μια βάση δεδομένων τυπικά ορίζει το σύνολο των τύπων συσκευών αποθήκευσης που είναι διαθέσιμες για την αποθήκευση πληροφοριών. Όταν δημιουργείται μια βάση δεδομένων, μια προεπιλεγμένη ομάδα αποθήκευσης δημιουργείται πάντα αυτόματα στη βάση δεδομένων.

Κάθε χώρος πίνακα που διαχειρίζεται αυτόματα σχετίζεται με μία από τις δημιουργημένες ομάδες αποθήκευσης, η οποία καθορίζει τη φυσική θέση των δεδομένων που είναι αποθηκευμένα στους αντίστοιχους χώρους του πίνακα. Είναι δυνατή η μετακίνηση ενός χώρου πίνακα από μια ομάδα αποθήκευσης στην άλλη χρησιμοποιώντας την εντολή ALTER TABLESPACE ... USING STOGROUP ....

Καταγραφή συναλλαγών

Το IBM DB2 LUW, όπως και τα περισσότερα σύγχρονα σχεσιακά DBMS που παρέχουν εγγυήσεις ACID, χρησιμοποιεί το αρχείο καταγραφής συναλλαγών ως έναν από τους κύριους μηχανισμούς για την επιβολή αυτών των απαιτήσεων.

Οι λειτουργίες τροποποίησης δεδομένων που εκτελούνται από το DB2 καταγράφονται στο αρχείο καταγραφής συναλλαγών ως μια σειρά από εγγραφές αρχείου καταγραφής. Κάθε βάση δεδομένων διατηρεί το δικό της αρχείο καταγραφής συναλλαγών, το οποίο είναι μια ακολουθία αρχείων στο δίσκο. Το μέγεθος ενός μεμονωμένου αρχείου καθορίζεται από την παράμετρο LOGFILSIZ, ο αριθμός των αρχικώς δημιουργηθέντων αρχείων καθορίζεται από την παράμετρο LOGPRIMARY. Εάν είναι απαραίτητο, το DB2 μπορεί να δημιουργήσει επιπλέον αρχεία log, ο μέγιστος αριθμός αρχείων που δημιουργούνται ελέγχεται από την παράμετρο LOGSECOND.

Οι πληροφορίες εγγράφονται στο αρχείο καταγραφής συναλλαγών χρησιμοποιώντας ένα ειδικό buffer στη μνήμη RAM. Τα περιεχόμενα του buffer ξεπλένονται στο δίσκο (σε αρχεία καταγραφής συναλλαγών) καθώς γεμίζει το buffer, καθώς και όταν οι συναλλαγές επιβεβαιώνονται ή ακυρώνονται (κατόπιν εντολής της εφαρμογής ή κατά το μη φυσιολογικό κλείσιμο της σύνδεσης με την εφαρμογή).

Το αρχείο καταγραφής συναλλαγών που απαιτείται για την ανάκτηση δεδομένων μετά από ένα σφάλμα ονομάζεται ενεργό αρχείο καταγραφής. Τα ενεργά αρχεία καταγραφής συναλλαγών πρέπει να είναι διαθέσιμα στον διαχειριστή βάσης δεδομένων DB2 ανά πάσα στιγμή. Δεδομένου ότι η διαθεσιμότητα των αρχείων καταγραφής συναλλαγών είναι κρίσιμη για τη διασφάλιση της απόδοσης του DBMS, παρέχεται ένας μηχανισμός για τον κατοπτρισμό των αρχείων καταγραφής συναλλαγών σε δύο συστήματα αρχείων(μπορεί να διαμορφωθεί με την παράμετρο LOGMIRROR).

Εάν επιλέξετε λάθος μέγεθος και αριθμό αρχείων καταγραφής συναλλαγών που δεν αντιστοιχούν στο επίπεδο του τρέχοντος φορτίου, ενδέχεται να υπάρξουν καταστάσεις υπερχείλισης του αρχείου καταγραφής συναλλαγών λόγω ανεπαρκούς αριθμού αρχείων καταγραφής που επιτρέπεται να δημιουργηθούν ή έλλειψης διαθέσιμος χώρος στο δισκο. Ανάλογα με τις ρυθμίσεις της βάσης δεδομένων (δείτε την παράμετρο BLK_LOG_DSK_FUL), ενδέχεται να επιστραφεί ένα κατάλληλο μήνυμα σφάλματος στις εφαρμογές ή η επεξεργασία μπορεί να ανασταλεί μέχρι να επιλυθεί η κατάσταση από τον διαχειριστή.

Επίσης, καταστάσεις υπερχείλισης του αρχείου καταγραφής συναλλαγών μπορεί να προκύψουν όταν υπάρχουν μακροχρόνιες συναλλαγές που εκτελούν λειτουργίες τροποποίησης δεδομένων. Ακόμα κι αν μια τέτοια μακροχρόνια συναλλαγή κάνει μια ενιαία, μικρή αλλαγή βάσης δεδομένων που στη συνέχεια παραμένει αδέσμευτη για μεγάλο χρονικό διάστημα, το αντίστοιχο αρχείο καταγραφής συναλλαγών παραμένει ενεργό και δεν μπορεί να επαναχρησιμοποιηθεί.

Υπάρχουν δύο κύριοι τρόποι λειτουργίας για την καταγραφή συναλλαγών DB2: κυκλική καταγραφή και καταγραφή αρχειοθέτησης. Στη λειτουργία κυκλικής καταγραφής, το DB2 περνά μέσα από το δημιουργημένο σύνολο αρχείων καταγραφής συναλλαγών. Στη λειτουργία καταγραφής αρχειοθέτησης, το DB2 αντιγράφει προαιρετικά τα αρχεία καταγραφής συναλλαγών στο αρχείο χρησιμοποιώντας τις μεθόδους που καθορίζονται από τις παραμέτρους LOGARCHMETH1 και LOGARCHMETH2.

Η λειτουργία κυκλικής καταγραφής διασφαλίζει την αποκατάσταση της ακεραιότητας της βάσης δεδομένων σε περίπτωση διακοπής λειτουργίας του διακομιστή DBMS. Η δημιουργία αντιγράφων ασφαλείας μιας τέτοιας βάσης δεδομένων είναι δυνατή μόνο μετά τον τερματισμό όλων των εφαρμογών (δηλαδή με την αναστολή της πρόσβασης των χρηστών). Ανάκτηση δεδομένων από αντιγράφων ασφαλείαςείναι δυνατή μόνο με την επαναφορά της βάσης δεδομένων στην κατάσταση κατά τη στιγμή της δημιουργίας αντιγράφων ασφαλείας.

Η λειτουργία καταγραφής αρχειοθέτησης διασφαλίζει επίσης ότι η ακεραιότητα της βάσης δεδομένων αποκαθίσταται εάν ο διακομιστής DBMS διακοπεί. Επιπλέον, μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων χωρίς να διακόψετε την πρόσβαση των χρηστών και να συμπεριλάβετε ενεργά αρχεία καταγραφής (απαιτούνται για την αποκατάσταση της ακεραιότητας των δεδομένων) στο αντίγραφο ασφαλείας. Η επαναφορά δεδομένων από ένα αντίγραφο ασφαλείας μπορεί να συμπληρωθεί με την εφαρμογή των αλλαγών που έγιναν στη βάση δεδομένων από τη λήψη του αντιγράφου ασφαλείας και τη μεταφορά της βάσης δεδομένων σε κατάσταση σε επιλεγμένο χρονικό σημείο στο παρελθόν (αλλά όχι νωρίτερα από τη στιγμή που λήφθηκε το αντίγραφο ασφαλείας).

Η λειτουργία καταγραφής αρχειοθέτησης απαιτεί πρόσθετους πόρους για την εκτέλεση εργασιών αρχειοθέτησης, συμπεριλαμβανομένης της αυξημένης I/O και πρόσθετου χώρου στο δίσκο για την αποθήκευση αρχειοθετημένων αρχείων καταγραφής συναλλαγών.

Οργάνωση προσωρινής αποθήκευσης δεδομένων

Για να μειώσει την ποσότητα εισόδου/εξόδου που εκτελείται, το DB2, όπως και άλλα σύγχρονα συστήματα σχεσιακών βάσεων δεδομένων, εκτελούνται στην κρυφή μνήμη ανάγνωση και εγγραφή σε τραπέζια. Η προσωρινή αποθήκευση γίνεται χρησιμοποιώντας περιοχές της μνήμης RAM που ονομάζονται buffer pools. Στο DB2 μπορούν να οριστούν πολλά διαφορετικά buffer pool (δημιουργημένα με την εντολή CREATE BUFFERPOOL), με ενεργοποιημένη σημαία το μέγεθος, το μέγεθος και τον αυτόματο έλεγχο μεγέθους σελίδας. Κάθε χώρος τραπεζιού αντιστοιχίζεται σε μια συγκεκριμένη ομάδα προσωρινής αποθήκευσης και μπορεί να γίνει κοινή χρήση ενός ενιαίου χώρου αποθήκευσης σε πολλούς χώρους τραπεζιού.

Όταν εκτελεί μια λειτουργία ανάγνωσης, αναζητά πρώτα την επιθυμητή σελίδα με δεδομένα στο buffer pool. Εάν βρεθεί μια απαιτούμενη σελίδα, τα δεδομένα διαβάζονται από το buffer pool, διαφορετικά η σελίδα φορτώνεται από το δίσκο στο buffer pool. Παρέχεται ένας μηχανισμός για ασύγχρονη προανάκτηση σελίδων στο buffer pool όταν ανιχνεύεται μια γραμμική (προβλέψιμη) φύση προσβάσεων στη σελίδα. Ο μηχανισμός προανάκτησης σε πολλές περιπτώσεις μειώνει τον χρόνο αναμονής για λειτουργίες ανάγνωσης των απαραίτητων δεδομένων από το δίσκο εκτελώντας αναγνώσεις σε ασύγχρονη λειτουργία.

Όταν εκτελείται μια λειτουργία εγγραφής, η προσαρμογή σελίδας εκτελείται απευθείας στο buffer pool. Σε αυτήν την περίπτωση, η σελίδα δεν εγγράφεται στο δίσκο σε σύγχρονη λειτουργία και η ασφάλεια των δεδομένων διασφαλίζεται από τον μηχανισμό καταγραφής συναλλαγών. Οι σελίδες του αλλαγμένου χώρου πίνακα εγγράφονται στον δίσκο ασύγχρονα, στο παρασκήνιο και παρέχουν μια λογική ελαχιστοποίηση του όγκου της εργασίας που μπορεί να απαιτείται για την αποκατάσταση της κατάστασης της βάσης δεδομένων όταν αυτή είναι ασυνήθιστα (λανθασμένα) κλειστή. Το σωστό κλείσιμο της βάσης δεδομένων (για παράδειγμα, κατά τη διάρκεια ενός τακτικού τερματισμού λειτουργίας του διακομιστή DBMS) διασφαλίζει ότι όλες οι τροποποιημένες σελίδες όλων των ομάδων προσωρινής αποθήκευσης εγγράφονται στο δίσκο.

Χρήση RAM

Το μοντέλο μνήμης DB2 αποτελείται από διάφορες περιοχέςμνήμη σε επίπεδο παρουσίας DB2, βάσης δεδομένων, εφαρμογής και πράκτορα.

Για μια λεπτομερή περιγραφή των χώρων αποθήκευσης DB2, δείτε παρακάτω Σύντομη περιγραφήραντεβού διαφορετικών περιοχών.

Μια λίστα με τις κύριες περιοχές αποθήκευσης DB2 φαίνεται στο παρακάτω σχήμα (αρχικά λήφθηκε από ).

Η συνολική μνήμη που χρησιμοποιείται από την παρουσία DBMS περιλαμβάνει:

  • Monitor Heap - περιοχή μνήμης για λειτουργίες παρακολούθησης και κατάστασης, το μέγεθος ρυθμίζεται από την παράμετρο MON_HEAP_SZ.
  • FCM Buffers - μια περιοχή μνήμης για την αλληλεπίδραση μεταξύ του παράγοντα συντονισμού και των υποπαραγόντων του, καθώς και για την παροχή εσωτερικών αλληλεπιδράσεων σε διαμερισμένες βάσεις δεδομένων.
  • Το Audit Buffer είναι μια περιοχή μνήμης όπου τοποθετούνται οι εγγραφές ελέγχου πριν από την έκπλυση στο αρχείο καταγραφής ελέγχου.

Σε επίπεδο βάσης δεδομένων, συνηθίζεται να γίνεται διάκριση μεταξύ:

  • μια παγκόσμια περιοχή βάσης δεδομένων, που συχνά αναφέρεται ως περιοχή "Μνήμη απόδοσης", η οποία περιλαμβάνει διάφορες περιοχές προσωρινής αποθήκευσης και μια περιοχή κλειδώματος.
  • μια περιοχή δεδομένων εφαρμογής, που συχνά αναφέρεται ως "Λειτουργική μνήμη", η οποία περιλαμβάνει τις διάφορες περιοχές μνήμης εργασίας των πρακτόρων που διατηρούν συνδέσεις με τη βάση δεδομένων.

Η παγκόσμια περιοχή βάσης δεδομένων αποτελείται από τα ακόλουθα κύρια στοιχεία:

  • Buffer pools - buffer pools, δηλ. περιοχές για την προσωρινή αποθήκευση δεδομένων tablespace.
  • Λίστα κλειδαριών - μια περιοχή για την αποθήκευση πληροφοριών σχετικά με κλειδαριές, το μέγεθος των οποίων ελέγχεται από την παράμετρο LOCKLIST.
  • Προσωρινή μνήμη πακέτου - περιοχή για την προσωρινή αποθήκευση σχεδίων εκτέλεσης ερωτημάτων, το μέγεθος ρυθμίζεται από την παράμετρο PCKCACHESZ.
  • cache Catalog - περιοχή για την προσωρινή αποθήκευση του καταλόγου συστήματος, η οποία περιλαμβάνει περιγραφές όλων των αντικειμένων της βάσης δεδομένων, το μέγεθος ρυθμίζεται από την παράμετρο CATALOGCACHE_SZ.
  • Utility heap - RAM για την εκτέλεση εργασιών συντήρησης βάσης δεδομένων (συμπεριλαμβανομένων των λειτουργιών δημιουργίας αντιγράφων ασφαλείας και επαναφοράς), το μέγεθος ρυθμίζεται από την παράμετρο UTIL_HEAP_SZ.
  • Σωρός βάσης δεδομένων - RAM για την εξυπηρέτηση των λειτουργιών της βάσης δεδομένων (συμπεριλαμβανομένου ενός buffer αρχείου καταγραφής συναλλαγών και μιας προσωρινής μνήμης για την επιτάχυνση της πρόσβασης στον κατάλογο του συστήματος, καθώς και ενός buffer ελέγχου σε επίπεδο βάσης δεδομένων), το μέγεθος ρυθμίζεται από την παράμετρο DBHEAP.

Το συνολικό μέγεθος της παγκόσμιας περιοχής βάσης δεδομένων περιορίζεται από τη ρύθμιση DATABASE_MEMORY.

Η περιοχή δεδομένων εφαρμογής περιλαμβάνει:

  • Καθολική μνήμη εφαρμογής - κοινές περιοχές μνήμης που μοιράζονται κατά την επεξεργασία αιτημάτων εφαρμογής, το μέγιστο ποσό ρυθμίζεται από την παράμετρο APPL_MEMORY.
  • Agent Private Memory - περιοχές ιδιωτικής μνήμης που χρησιμοποιούνται για τη λειτουργία μεμονωμένων πρακτόρων που εξυπηρετούν συνδεδεμένες εφαρμογές.

Προαιρετικά, μπορείτε να εκχωρήσετε περιοχές μνήμης που έχουν εκχωρηθεί στο πρόγραμμα οδήγησης DB2 για εκτέλεση στην πλευρά της εφαρμογής. Για τοπικές εφαρμογές (αυτές που χρησιμοποιούν IPC αντί για πρόσβαση δικτύου για σύνδεση με τη διαχείριση βάσης δεδομένων), οι ρυθμίσεις DB2 που ορίζετε ελέγχουν πόση μνήμη RAM εκχωρείται (κυρίως η ρύθμιση ASLHEAPSZ).

Διαχείριση RAM κατά την εκτέλεση λειτουργιών ταξινόμησης

Πολλοί τύποι λειτουργιών DBMS απαιτούν ταξινόμηση δεδομένων, επομένως δίδεται ιδιαίτερη προσοχή στη διαχείριση της μνήμης RAM που χρησιμοποιείται για την ταξινόμηση.

Εάν είναι αδύνατο να εκχωρηθεί πλήρως η περιοχή ταξινόμησης στη μνήμη RAM, τα δεδομένα για ταξινόμηση τοποθετούνται στον προσωρινό χώρο του πίνακα του συστήματος. Η απόδοση των ερωτημάτων που απαιτούν τέτοιες μεγάλες λειτουργίες ταξινόμησης μπορεί να υποβαθμιστεί σημαντικά.

Παράμετροι που ελέγχουν την κατανομή της μνήμης RAM για ταξινόμηση:

  • SORTHEAP - όριο μνήμης για λειτουργία ταξινόμησης.
  • SHEAPTHRES - όριο μεγέθους της ιδιωτικής μνήμης του πράκτορα που εκχωρείται για τη λειτουργία ταξινόμησης.
  • SHEAPTHRES_SHR - το όριο της συνολικής μνήμης RAM που μπορεί να χρησιμοποιηθεί για την εκτέλεση εργασιών ταξινόμησης (από όλους τους καταναλωτές συνολικά) ανά πάσα στιγμή.

Το DB2 υποστηρίζει τρία βασικά μοντέλα διαχείρισης μνήμης ταξινόμησης:

  • Μοντέλο κοινής ταξινόμησης (κοινόχρηστη ταξινόμηση) – χρησιμοποιείται από προεπιλογή, συνεπάγεται τη ρύθμιση της παραμέτρου SHEAPTHRES σε 0. Η κατανομή RAM για ταξινόμηση πραγματοποιείται από την καθολική περιοχή της βάσης δεδομένων.
  • Μοντέλο ιδιωτικής περιοχής ταξινόμησης (ιδιωτική ταξινόμηση) - χρησιμοποιείται όταν η παράμετρος SHEAPTHRES δεν είναι μηδενική και δεν έχει διαμορφωθεί κοινή μνήμηδιαλογή. Η κατανομή της μνήμης RAM για ταξινόμηση πραγματοποιείται από την περιοχή δεδομένων εφαρμογής (ακριβέστερα, από ιδιωτικές περιοχές που ανήκουν σε πράκτορες).
  • Μοντέλο υβριδικής ταξινόμησης (υβριδική ταξινόμηση) - χρησιμοποιείται όταν η παράμετρος SHEAPTHRES δεν είναι μηδενική και υπάρχει διαμορφωμένη κοινόχρηστη μνήμη ταξινόμησης. Οι λειτουργίες που απαιτούν τη χρήση κοινόχρηστης μνήμης ταξινόμησης εκτελούνται με εκχώρηση μνήμης στην καθολική περιοχή της βάσης δεδομένων, άλλες λειτουργίες ταξινόμησης εκτελούνται με εκχώρηση μνήμης σε ιδιωτικές περιοχές πρακτόρων.

Η χρήση κοινής (καθολικής) μνήμης για την εκτέλεση λειτουργιών ταξινόμησης παρέχει μια σειρά από σημαντικά οφέλη:

  • πιο ευέλικτη διαχείριση της μνήμης RAM κατά την εκτέλεση ερωτημάτων, επιτρέποντάς σας να αυξήσετε την αποτελεσματικότητα της χρήσης της μνήμης RAM.
  • τη δυνατότητα χρήσης παράλληλης έκδοσης του αλγορίθμου ταξινόμησης λόγω της ταυτόχρονης πρόσβασης στην περιοχή μνήμης ταξινόμησης του παράγοντα συντονισμού και των δευτερευουσών υπο-πρακτόρων DB2.

Μία από τις ακόλουθες ρυθμίσεις μπορεί να χρησιμοποιηθεί για να ενεργοποιηθεί η χρήση κοινόχρηστης μνήμης κατά την εκτέλεση λειτουργιών ταξινόμησης:

  • Το μοντέλο γενικής περιοχής ταξινόμησης ενεργοποιείται ορίζοντας την παράμετρο SHEAPTHRES σε 0.
  • Ο παραλληλισμός της εκτέλεσης πράξεων ενεργοποιείται ορίζοντας την παράμετρο INTRA_PARALLEL σε YES.
  • η μεταβλητή DB2_WORKLOAD έχει οριστεί σε ANALYTICS.
  • η δυνατότητα DB2 Connection Concentrator είναι ενεργοποιημένη (συνήθως χρησιμοποιείται κατά την πρόσβαση σε βάσεις δεδομένων DB2 για z/OS και DB2 για i, δείτε την περιγραφή αυτής της δυνατότητας στο ).

Αυτόματη διαχείριση εκχώρησης μνήμης

Η παρουσία ενός μεγάλου αριθμού διαφορετικών περιοχών μνήμης RAM και παραμέτρων που ελέγχουν το μέγεθός τους μπορεί να απαιτήσει σημαντική προσπάθεια για τη μη αυτόματη ρύθμιση ενός διακομιστή DB2. Επομένως, ξεκινώντας από την έκδοση 9, το IBM DB2 υποστηρίζει την αυτόματη διαχείριση της κατανομής της μνήμης RAM μεταξύ διαφορετικών περιοχών χρησιμοποιώντας μια διαχείριση μνήμης αυτόματης ρύθμισης (STMM, Self-Tuning Memory Manager).

Όταν το bootstrapping είναι ενεργοποιημένο, το STMM εκχωρεί δυναμικά διαθέσιμους πόρους μνήμης στους καταναλωτές μνήμης στη βάση δεδομένων. Το STMM ανταποκρίνεται στις αλλαγές στα χαρακτηριστικά του φόρτου εργασίας προσαρμόζοντας τις τιμές παραμέτρων διαμόρφωσης μνήμης και το μέγεθος των ομάδων προσωρινής αποθήκευσης για βελτιστοποίηση της απόδοσης. Για να ενεργοποιήσετε το STMM, πρέπει να ορίσετε την παράμετρο διαμόρφωσης βάσης δεδομένων SELF_TUNING_MEM σε ON.

Η αυτόματη διαχείριση της εκχώρησης μνήμης πραγματοποιείται για τις περιοχές μνήμης για τις οποίες επιτρεπόταν ρητά. Όταν ορίζετε μια τιμή παραμέτρου διαμόρφωσης με τις εντολές UPDATE DBM CFG και UPDATE DB CFG, για να χρησιμοποιήσετε STMM, η λέξη-κλειδί AUTOMATIC καθορίζεται μετά την τιμή της παραμέτρου. Η αριθμητική τιμή της παραμέτρου που καθορίζεται σε αυτήν την περίπτωση χρησιμοποιείται ως αρχική τιμή, στη συνέχεια το STMM προσαρμόζει περιοδικά τις τιμές λαμβάνοντας υπόψη το τρέχον φορτίο, αναδιανέμοντας τη μνήμη RAM μεταξύ διαφορετικών καταναλωτών.

Η αυτόματη διαχείριση STMM υποστηρίζεται για τις ακόλουθες επιλογές:

  • INSTANCE_MEMORY είναι η συνολική ποσότητα μνήμης RAM στην παρουσία DB2.
  • DATABASE_MEMORY - περιοχές παγκόσμιων βάσεων δεδομένων.
  • DBHEAP - μια περιοχή για την εξυπηρέτηση λειτουργιών βάσης δεδομένων.
  • LOCKLIST – δυνατότητα διατήρησης δεδομένων σε κλειδαριές.
  • MAXLOCKS - το ποσοστό της μνήμης που καταλαμβάνεται από κλειδώματα μιας εφαρμογής για μετάβαση σε κλιμάκωση κλειδώματος.
  • PCKCACHESZ - περιοχή προσωρινής αποθήκευσης για σχέδια εκτέλεσης ερωτημάτων.
  • SHEAPTHRES_SHR - περιοχή γενικής ταξινόμησης.
  • SORTHEAP - ταξινόμηση μεγέθους περιοχής για μία λειτουργία.
  • APPL_MEMORY - περιοχή λειτουργικής μνήμης.
  • APPLHEAPSZ - όριο ιδιωτικής μνήμης που χρησιμοποιείται από έναν πράκτορα.
  • STMTHEAP - όριο στο μέγεθος της περιοχής που χρησιμοποιείται από τον μεταγλωττιστή των ερωτημάτων SQL και XQuery (ανά ερώτημα).
  • Το STAT_HEAP_SZ είναι η μέγιστη ποσότητα μνήμης RAM που εκχωρείται για στατιστικά στοιχεία κτιρίου από το βοηθητικό πρόγραμμα RUNSTATS και εκχωρείται από την περιοχή λειτουργικής μνήμης.

Τύποι αντικειμένων βάσης δεδομένων

Αυτή η ενότητα παρέχει μια επισκόπηση των τύπων αντικειμένων βάσης δεδομένων DB2. Για μια πλήρη λίστα τύπων αντικειμένων βάσης δεδομένων DB2 και λεπτομερείς πληροφορίες για κάθε τύπο αντικειμένου, ανατρέξτε στην τεκμηρίωση DB2:

Σχέδιο

Τα σχήματα είναι χώροι ονομάτων για τη συλλογή αντικειμένων βάσης δεδομένων. Τα σχήματα χρησιμοποιούνται κυρίως για:

  • παροχή ένδειξης ιδιοκτησίας αντικειμένων ή συνδέσμων με την εφαρμογή·
  • λογική ομαδοποίηση σχετικών αντικειμένων.

Όλα τα αντικείμενα βάσης δεδομένων DB2 (εκτός από τα γενικά συνώνυμα) έχουν πλήρως αναγνωρισμένα ονόματα δύο μερών. Το σχήμα είναι το πρώτο μέρος ενός τέτοιου ονόματος:<имя_схемы>.<имя_объекта>

Το πλήρως αναγνωρισμένο όνομα αντικειμένου πρέπει να είναι μοναδικό. Εάν συνδεθείτε σε μια βάση δεδομένων και δημιουργήσετε ή αποκτήσετε πρόσβαση σε ένα αντικείμενο χωρίς να καθορίσετε ένα σχήμα, το DB2 θα χρησιμοποιήσει το αναγνωριστικό χρήστη που έκανε τη σύνδεση με τη βάση δεδομένων ως όνομα σχήματος. Μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση SET SCHEMA για να ορίσετε το σχήμα για την τρέχουσα περίοδο λειτουργίας.

Η δημιουργία σχήματος μπορεί να γίνει ρητά, καλώντας τη δήλωση CREATE SCHEMA, ή σιωπηρά, στην πρώτη προσπάθεια δημιουργίας ενός αντικειμένου χωρίς να προσδιορίσετε ένα όνομα σχήματος. Στην τελευταία περίπτωση, ο χρήστης πρέπει να λάβει το δικαίωμα IMPLICIT_SCHEMA για να δημιουργήσει με επιτυχία το σχήμα.

Μπορούν να δημιουργηθούν συνώνυμα για τα περισσότερα είδη αντικειμένων βάσης δεδομένων, επιτρέποντας στα αρχικά αντικείμενα να αναφέρονται με διαφορετικό όνομα (ίσως τοποθετούνται σε διαφορετικό σχήμα). Τα συνώνυμα δημιουργούνται χρησιμοποιώντας τη δήλωση CREATE SYNONYM / CREATE ALIAS. Υποστηρίζει επίσης την εργασία με δημόσια συνώνυμα που δεν συνδέονται με ένα συγκεκριμένο σχήμα. Η πρόσβαση σε δημόσια συνώνυμα πραγματοποιείται χωρίς να προσδιορίζεται το σχήμα, ανεξάρτητα από το καθιερωμένο τρέχον σχήμα της συνεδρίας. Τα δημόσια συνώνυμα δημιουργούνται χρησιμοποιώντας την εντολή CREATE PUBLIC SYNONYM / CREATE PUBLIC ALIAS.

τραπέζια

Ένας πίνακας είναι μια συλλογή σχετικών δεδομένων οργανωμένων λογικά σε στήλες και σειρές.

Κάθε γραμμή πίνακα αποτελείται από το ίδιο σύνολο ονομασμένων στηλών. Κατά τη δημιουργία ενός πίνακα, σε κάθε στήλη εκχωρείται ένας τύπος δεδομένων που περιορίζει τις επιτρεπόμενες τιμές στηλών στις σειρές του πίνακα (εγγραφές βάσης δεδομένων) και καθορίζει τη σημασιολογία των πιθανών πράξεων στις αντίστοιχες τιμές (συμπεριλαμβανομένης της σύγκρισης, της ταξινόμησης, των υπολογιστικών πράξεων).

Ένας πίνακας δημιουργείται με την εντολή CREATE TABLE και διαγράφεται με την εντολή DROP TABLE. Υποστηρίζεται η αλλαγή της περιγραφής ενός πίνακα με την εντολή ALTER TABLE, συμπεριλαμβανομένης της προσθήκης και διαγραφής στηλών, αλλαγής των τύπων δεδομένων των στηλών. Αφού εκτελέσετε ορισμένες λειτουργίες αλλαγής της περιγραφής του πίνακα, απαιτείται η αναδιοργάνωσή του (αναδιάρθρωση της φυσικής αποθήκευσης του πίνακα για βέλτιστη πρόσβαση σε αυτόν) χρησιμοποιώντας την εντολή REORG.

Η ταξινόμηση των ενσωματωμένων τύπων δεδομένων DB2 που μπορούν να χρησιμοποιηθούν για τον καθορισμό στηλών πίνακα φαίνεται στο παρακάτω σχήμα.

Εκτός από ένα από επιτρεπόμενες τιμέςυποστηριζόμενος τύπος δεδομένων, οι τιμές στηλών μπορεί να είναι κενές, π.χ. κενή (NULL) τιμή. Η δυνατότητα μιας στήλης να αποθηκεύει μηδενικές τιμές καθορίζεται όταν δημιουργείται ο πίνακας.

Οι περισσότεροι από τους τύπους δεδομένων που παρατίθενται στο σχήμα έχουν άμεσο αντίστοιχο σε άλλα σύγχρονα σχεσιακά DBMS και περιγράφονται λεπτομερώς στην τεκμηρίωση του DB2. Ακολουθεί μια σύντομη περιγραφή των δυνατοτήτων τύπου δεδομένων που είναι ειδικά για το DB2 ή που μπορεί να είναι δύσκολο να χρησιμοποιηθούν.

Όταν εργάζεστε με δεδομένα συμβολοσειράς, σε αντίθεση με ορισμένους άλλους τύπους DBMS, το DB2 διακρίνει μια κενή συμβολοσειρά (συμβολοσειρά μηδενικού μήκους) και μια τιμή NULL του τύπου συμβολοσειράς. Αυτή η δυνατότητα επηρεάζει τη σειρά αναζήτησης (χρησιμοποιώντας το κατηγόρημα ισότητας αντί για την έκφραση IS NULL) και τη σύνθεση των επιτρεπόμενων τιμών στηλών (εάν απαγορεύονται οι τιμές NULL, μπορεί να αποθηκευτεί μια κενή συμβολοσειρά στη στήλη).

Οι τιμές συμβολοσειρών των τύπων GRAPHIC, VARGRAPHIC και DBCLOB διαφέρουν από άλλους τύπους συμβολοσειρών στο ότι αποθηκεύονται πάντα σε κωδικοποίηση UTF-16. Κατά την πρόσβαση στις αντίστοιχες στήλες από την πλευρά της εφαρμογής πελάτη, το DBMS παρέχει μετατροπή δεδομένων στην κωδικοποίηση που χρησιμοποιείται από την εφαρμογή πελάτη.

Οι στήλες τύπου DATE (ημερομηνία) δεν περιέχουν χρονικές σημάνσεις από προεπιλογή. Στη λειτουργία συμβατότητας βάσης δεδομένων Oracle, το DB2 υποστηρίζει επιπλέον την αποθήκευση χαρακτηριστικών χρόνου (ώρες, λεπτά, δευτερόλεπτα) στις στήλες DATE.

Εάν πρέπει να εργαστείτε αποτελεσματικά με ακριβείς δεκαδικούς αριθμούς που περιλαμβάνουν ένα κλασματικό μέρος (για παράδειγμα, σε οικονομικές εφαρμογές), συνιστάται να χρησιμοποιήσετε τον τύπο δεδομένων DECFLOAT, ο οποίος συνδυάζει την ακριβή αναπαράσταση των ΔΕΚΑΔΙΩΝ τιμών και την ικανότητα αποτελεσματικού υπολογισμού τιμές του τύπου FLOAT.

Ο τύπος δεδομένων BLOB παρέχει τη δυνατότητα αποθήκευσης μη δομημένων δυαδικών πληροφοριών (όπως εικόνες ή έγγραφα γραφείου) σε μια βάση δεδομένων. Οι τιμές BLOB μπορούν να αποθηκευτούν μαζί με άλλα πεδία εγγραφής (αν το μέγεθός τους τους επιτρέπει να είναι αρκετά συμπαγείς) ή ξεχωριστά, σε ένα ειδικό αντικείμενο αποθήκευσης. Στην τελευταία περίπτωση, η καταχώρηση περιέχει μια αναφορά στην αποθηκευμένη τιμή BLOB αντί για την ίδια την τιμή. Η αποθήκευση των τιμών των τύπων CLOB και DBCLOB οργανώνεται με παρόμοιο τρόπο.

Ο τύπος δεδομένων XML παρέχει αποθήκευση σε πεδία πίνακα δομημένων ιεραρχικών εγγράφων XML. Για αποθηκευμένα έγγραφα XML, υποστηρίζονται λειτουργίες πρόσβασης χαρακτηριστικών (χωρίς να απαιτείται ανάλυση του εγγράφου XML κατά την πρόσβαση), ευρετηρίαση μεμονωμένων χαρακτηριστικών και άλλες δυνατότητες.

Εκτός από τους ενσωματωμένους τύπους δεδομένων, το DB2 υποστηρίζει τύπους δεδομένων που καθορίζονται από το χρήστη που ορίζονται με βάση τους ενσωματωμένους τύπους. Η εργασία με τύπους δεδομένων που καθορίζονται από το χρήστη περιγράφεται στην τεκμηρίωση του DB2.

Κατά τη δημιουργία ενός πίνακα, είναι δυνατό να καθοριστούν κανόνες για την αυτόματη συμπλήρωση των τιμών τους για στήλες. Μια ειδική περίπτωση στηλών αυτόματης συμπλήρωσης είναι οι στήλες ταυτότητας, οι οποίες είναι αριθμητικές στήλες που δημιουργούν αυτόματα μια μοναδική αριθμητική τιμή για κάθε σειρά που εισάγεται. Η αυτόματη πλήρωση μπορεί να πραγματοποιηθεί σε έναν από τους δύο τρόπους:

  • ΔΗΜΙΟΥΡΓΕΙΤΑΙ ΠΑΝΤΑ - Η τιμή ορίζεται πάντα από τον διακομιστή DB2 και δεν μπορεί να οριστεί ρητά από την εφαρμογή.
  • ΔΗΜΙΟΥΡΓΗΜΕΝΟ ΑΠΟ ΠΡΟΕΠΙΛΟΓΗ - Η τιμή ορίζεται από τον διακομιστή DB2 εάν η εφαρμογή δεν καθόρισε μια ρητή τιμή εκχώρησης κατά την εισαγωγή της εγγραφής.

Επίσης, σε επίπεδο πίνακα, μπορούν να οριστούν περιορισμοί που θέτουν περιορισμούς στη σύνθεση των τιμών των χαρακτηριστικών. Υποστηρίζονται οι ακόλουθοι τύποι περιορισμών:

  • πρωτεύον κλειδί (PRIMARY KEY) - περιορισμός μοναδικότητας σε ένα σύνολο στηλών, που χρησιμοποιείται κυρίως για την αναζήτηση μιας μόνο εγγραφής, μπορεί να υπάρχει μόνο ένα πρωτεύον κλειδί σε έναν πίνακα.
  • περιορισμός μοναδικότητας (UNIQUE) – πρόσθετος περιορισμός μοναδικότητας σε ένα σύνολο στηλών.
  • ξένο κλειδί (ΞΕΝΟ ΚΛΕΙΔΙ) - μια αναφορά με τη μορφή ενός συνόλου τιμών στηλών που δείχνει έναν συνδυασμό στηλών ενός άλλου πίνακα για τον οποίο ορίζεται ένα ξένο κλειδί ή ένας μοναδικός περιορισμός.
  • έλεγχος (CHECK) - μια λογική συνθήκη που περιορίζει πιθανές τιμέςμία ή περισσότερες στήλες σε μια ανάρτηση.

Ο μηχανισμός περιορισμού εφαρμόζει μέσα αυτόματου ελέγχου και διασφάλισης της ακεραιότητας της βάσης δεδομένων, συμπεριλαμβανομένης της αναφορικής ακεραιότητας των δεδομένων (έλεγχος της παρουσίας στον «γονικό» πίνακα εγγραφών που αναφέρονται μέσω ξένων κλειδιών των εγγραφών των πινάκων «παιδιού»). Η σωστή χρήση των περιορισμών σάς επιτρέπει να εγγυηθείτε την τυπική ορθότητα της πλήρωσης της βάσης δεδομένων και, σε κάποιο βαθμό, να προστατεύσετε τον εαυτό σας από σφάλματα εφαρμογής και χρηστών κατά τη διόρθωση δεδομένων.

Δεδομένου ότι ο μηχανισμός περιορισμού δημιουργεί πρόσθετο υπολογιστικό φορτίο κατά την εισαγωγή και ενημέρωση δεδομένων, σε ορισμένες περιπτώσεις η χρήση του εγκαταλείπεται σκόπιμα, επιρρίπτοντας την ευθύνη για τη σωστή συντήρηση της βάσης δεδομένων στην εφαρμογή. Ταυτόχρονα, το DB2 χρησιμοποιεί περιγραφές περιορισμών ακεραιότητας για να προσδιορίσει τις σχέσεις μεταξύ των πινάκων και να επιλέξει το πιο αποτελεσματικό σχέδιο εκτέλεσης ερωτημάτων.

Προσωρινά τραπέζια

Για την αποθήκευση προσωρινών δεδομένων εφαρμογών, το DB2 παρέχει έναν μηχανισμό προσωρινού πίνακα που παρέχει πλήρη λειτουργικότητα για εργασία με δεδομένα σε πίνακα, αλλά στο πλαίσιο της τρέχουσας περιόδου λειτουργίας χρήστη.

Η πρόσβαση σε προσωρινούς πίνακες βελτιώνει σημαντικά την απόδοση ελαχιστοποιώντας ή εξαλείφοντας τις διενέξεις πρόσβασης στον κατάλογο του συστήματος και εξαλείφοντας το κλείδωμα σειρών, την καταγραφή (προαιρετικό, ανάλογα με τη λειτουργία δημιουργίας πίνακα) και τον έλεγχο αδειών.

Οι προσωρινοί πίνακες υποστηρίζουν επίσης ευρετήρια, δηλαδή, κάθε τυπικό ευρετήριο μπορεί να δημιουργηθεί σε έναν προσωρινό πίνακα. Μπορείτε επίσης να συλλέξετε στατιστικά στοιχεία σε τέτοιους πίνακες (χρησιμοποιώντας την εντολή RUNSTATS) για να λάβετε τις πληροφορίες που χρειάζονται το πρόγραμμα βελτιστοποίησης ερωτημάτων.

Οι προσωρινοί πίνακες βρίσκονται σε έναν προσωρινό χώρο πίνακα χρήστη, ο οποίος πρέπει να οριστεί πριν δημιουργηθούν.

Υπάρχουν δύο κύριες ποικιλίες προσωρινών πινάκων στο DB2:

  • δηλωθέντες προσωρινοί πίνακες (DGTT - Declared Global Temporary Tables).
  • δημιούργησε καθολικούς προσωρινούς πίνακες (CGTT - Created Global Temporary Tables).

Οι δηλωμένοι προσωρινοί πίνακες είναι πίνακες στη μνήμη που χρησιμοποιούνται από μια εφαρμογή και απορρίπτονται αυτόματα όταν τερματίζεται. Τέτοιοι πίνακες είναι προσβάσιμοι μόνο από την εφαρμογή που τους δημιούργησε και δεν αποθηκεύονται σε κανέναν από τους πίνακες καταλόγου του συστήματος DB2.

Κάθε δηλωμένος προσωρινός πίνακας έχει ένα σχήμα SESSION. αυτό το σύστημα πρέπει να προσδιορίζεται με αναφορά σε αυτό. Το αναγνωριστικό χρήστη που χρησιμοποιείται για τη δήλωση προσωρινών πινάκων θα έχει πλήρη δικαιώματα σε αυτούς τους πίνακες. Κάθε εφαρμογή που δηλώνει έναν προσωρινό πίνακα θα έχει το δικό της αντίγραφο αυτού του πίνακα.

Ενώ τα DGTT σάς επιτρέπουν να δηλώσετε έναν προσωρινό πίνακα, ο ορισμός ενός τέτοιου πίνακα δεν μπορεί να κοινοποιηθεί σε συνδέσεις ή περιόδους σύνδεσης. Πρέπει να εκδίδετε μια δήλωση ΔΗΛΩΣΗΣ ΠΑΓΚΟΣΜΙΟΥ ΠΡΟΣΩΡΙΝΟΥ ΠΙΝΑΚΑ κάθε φορά που ξεκινάτε μια συνεδρία.

Όταν χρησιμοποιείτε δημιουργημένους καθολικούς προσωρινούς πίνακες (CGTT), ο ορισμός του προσωρινού πίνακα χρειάζεται να δημιουργηθεί μόνο μία φορά, επειδή είναι αποθηκευμένος στον κατάλογο του συστήματος DB2. Αυτό σημαίνει ότι άλλες συνδέσεις μπορούν να χρησιμοποιήσουν τον ορισμό του πίνακα αντί να τον δημιουργήσουν ξανά.

Αν και η δομή του πίνακα CGTT μπορεί να χρησιμοποιηθεί αμέσως, τα δεδομένα από διαφορετικές συνδέσεις είναι ανεξάρτητα μεταξύ τους και εξαφανίζονται όταν η σύνδεση κλείσει.

Δείκτες

Ένα ευρετήριο είναι ένα ταξινομημένο σύνολο πλήκτρων, το καθένα από τα οποία δείχνει σε μια σειρά πίνακα. Τα ευρετήρια επιβάλλουν τη μοναδικότητα της γραμμής (δηλαδή, εφαρμόζουν τους μοναδικούς περιορισμούς που συζητήθηκαν στην προηγούμενη ενότητα) και βελτιώνουν την απόδοση. Τα παρακάτω περιγράφουν μερικά από τα χαρακτηριστικά που μπορούν να οριστούν για δείκτες:

  • Τα ευρετήρια μπορούν να κατασκευαστούν με αύξουσα ή φθίνουσα σειρά τιμών στηλών.
  • Τα κλειδιά ευρετηρίου μπορεί να είναι μοναδικά ή μη μοναδικά.
  • Τα ευρετήρια μπορούν να χτιστούν σε πολλές στήλες (τέτοιοι δείκτες ονομάζονται συνδυασμένοι).
  • Εάν τα δεδομένα του ευρετηρίου και του πίνακα ομαδοποιηθούν στην ίδια ακολουθία ευρετηρίου, ένας τέτοιος δείκτης ονομάζεται ομαδοποιημένος (ΣΥΜΠΛΗΡΩΜΕΝΟΣ ΕΥΡΕΤΗΣ).

Η δημιουργία ευρετηρίου παρέχεται από τη δήλωση CREATE INDEX, η διαγραφή με τη δήλωση DROP INDEX. Κατά τη δημιουργία ενός ευρετηρίου, καθορίζεται ο τύπος του (μοναδικός / μη μοναδικός) και η σύνθεση των στηλών για τη δημιουργία του ευρετηρίου.

Το DB2 παρέχει εργαλεία που παρέχουν αυτοματοποιημένη επιλογή ευρετηρίου για τη βελτιστοποίηση της εκτέλεσης ερωτημάτων. Ο πιο βολικός τρόπος εργασίας με αυτά τα εργαλεία είναι οργανωμένος στο IBM Data Studio.

Ακολουθίες

Αν και τα αντικείμενα ακολουθίας είναι ανεξάρτητα από πίνακες, λειτουργούν παρόμοια με τις στήλες ταυτότητας και παρέχουν τη δημιουργία μοναδικών αριθμητικών ακολουθιών. Η διαφορά μεταξύ ακολουθιών και στηλών ταυτότητας είναι ότι οι στήλες ταυτότητας δημιουργούν μοναδικούς αριθμούς ακριβώς στην καθορισμένη στήλη του πίνακα, ενώ τα αντικείμενα ακολουθίας μπορούν να χρησιμοποιηθούν για τη δημιουργία διαδοχικών αριθμητικών τιμών, η λογική των οποίων καθορίζεται από την εφαρμογή.

Η δημιουργία ακολουθιών παρέχεται από την εντολή CREATE SEQUENCE, η πρόσβαση στις επόμενες και τις τρέχουσες λαμβανόμενες τιμές γίνεται χρησιμοποιώντας τους τελεστές NEXT VALUE FOR και PREVIOUS VALUE FOR. Για συμβατότητα με τη βάση δεδομένων Oracle, υποστηρίζεται επίσης η σύνταξη για την πρόσβαση σε τιμές ακολουθίας μέσω ψευδοστήλων "NEXTVAL" και "CURRVAL".

Αναπαράσταση

Μια προβολή είναι μια εμφάνιση δεδομένων σε πίνακες. Τα δεδομένα για προβολές δεν αποθηκεύονται χωριστά, λαμβάνονται όταν εκτελείται η προβολή. Υποστηρίζονται ένθετες προβολές, δηλαδή προβολές που δημιουργούνται από άλλες προβολές.

Οι προβολές δημιουργούνται με την εντολή CREATE VIEW και διαγράφονται με την εντολή DROP VIEW. Για τη διευκόλυνση της ενημέρωσης (αντικατάστασης) προβολών, παρέχεται η σύνταξη CREATE OR REPLACE VIEW, η οποία παρέχει τη δημιουργία μιας νέας προβολής (αν δεν υπάρχει ήδη) ή την αντικατάσταση μιας υπάρχουσας προβολής με έναν νέο ορισμό (εάν μια προβολή με το το καθορισμένο όνομα έχει ήδη δημιουργηθεί).

εναύσματα

Το έναυσμα είναι ένα αντικείμενο που εκτελεί αυτόματα μια λειτουργία σε έναν πίνακα ή μια προβολή. Μια συγκεκριμένη ενέργεια σε ένα αντικείμενο για το οποίο έχει οριστεί μια σκανδάλη προκαλεί την ενεργοποίηση της σκανδάλης. Συνήθως, ένα έναυσμα δεν θεωρείται αντικείμενο εφαρμογής. Ως εκ τούτου, οι ενεργοποιητές δεν δημιουργούνται συνήθως από προγραμματιστές, αλλά από διαχειριστές βάσεων δεδομένων.

Αποθηκευμένες διαδικασίες και λειτουργίες

Οι αποθηκευμένες διαδικασίες είναι αντικείμενα βάσης δεδομένων που περιέχουν δηλώσεις SQL και επιχειρηματική λογική. Η αποθήκευση μέρους της λογικής της εφαρμογής στη βάση δεδομένων βελτιώνει την απόδοση μειώνοντας την κυκλοφορία μεταξύ της εφαρμογής και της βάσης δεδομένων. Επιπλέον, οι αποθηκευμένες διαδικασίες παρέχουν μια κεντρική θέση αποθήκευσης κώδικα προγράμματος, και, κατά συνέπεια, άλλες εφαρμογές μπορούν να χρησιμοποιήσουν τις ίδιες αποθηκευμένες διαδικασίες. Η δήλωση CALL χρησιμοποιείται για την κλήση μιας αποθηκευμένης διαδικασίας.

Οι συναρτήσεις που καθορίζονται από το χρήστη (UDF) είναι αντικείμενα βάσης δεδομένων που επιτρέπουν στους χρήστες να επεκτείνουν τη γλώσσα SQL με τη δική τους λογική. Μια συνάρτηση επιστρέφει πάντα μια τιμή ή τιμές, συνήθως ως αποτέλεσμα της επιχειρηματικής λογικής που περιλαμβάνεται στη συνάρτηση. Για να καλέσετε μια συνάρτηση, χρησιμοποιήστε την ως μέρος μιας πρότασης SQL ή με μια πρόταση VALUES.

Στο DB2, οι αποθηκευμένες διαδικασίες και οι λειτουργίες που καθορίζονται από το χρήστη μπορούν να αναπτυχθούν σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των PL/SQL, SQL PL, Java, C, C++, COBOL.

Κατάλογος συστήματος

Ένα από τα βασικά πληροφοριακούς πόρουςΤο DBMS είναι ένας κατάλογος συστήματος που αποθηκεύει και παρέχει πρόσβαση σε πληροφορίες σχετικά με τη δομή της βάσης δεδομένων, συμπεριλαμβανομένων:

  • περιγραφή πινάκων, στηλών και ευρετηρίων.
  • περιγραφή και κείμενο προβολών, ενεργοποιήσεων και αποθηκευμένων διαδικασιών.
  • πληροφορίες σχετικά με επιτραπέζιους χώρους και κοντέινερ για την αποθήκευση δεδομένων·
  • καθιερωμένες άδειες για πρόσβαση σε αντικείμενα βάσης δεδομένων.
  • άλλες μετα-πληροφορίες βάσης δεδομένων.

Η πρόσβαση στον κατάλογο του συστήματος απαιτείται για πολλές εργασίες, συμπεριλαμβανομένης της αυτοματοποίησης των εργασιών διαχείρισης και συντήρησης της βάσης δεδομένων, ανάπτυξης εφαρμογών και άλλων.

Οι πιο συχνά χρησιμοποιούμενοι πίνακες (πραγματικά, προβολές) που αποτελούν μέρος του καταλόγου συστήματος είναι:

  • SYSCAT.SCHEMAS - περιγραφή σχημάτων βάσης δεδομένων.
  • SYSCAT.TABLES - περιγραφή πινάκων βάσης δεδομένων.
  • SYSCAT.COLUMNS – περιγραφή στηλών πίνακα.
  • SYSCAT.INDEXES - περιγραφή ευρετηρίων.

Λεπτομερής περιγραφή και σύνθεση των στηλών για τους παραπάνω και άλλους πίνακες του καταλόγου συστήματος δίνεται στο .

Οργάνωση παράλληλης διεκπεραίωσης συναλλαγών

Συναλλαγές

Μια συναλλαγή (ή μονάδα εργασίας) αποτελείται από μία ή περισσότερες δηλώσεις SQL που αντιμετωπίζονται ως ξεχωριστή μονάδα όταν εκτελούνται. Με άλλα λόγια, η αποτυχία μιας δήλωσης σε μια συναλλαγή προκαλεί την αποτυχία ολόκληρης της συναλλαγής, με όλες τις δηλώσεις να εκτελούνται πριν από την επαναφορά του σημείου αποτυχίας.

Η συναλλαγή τελειώνει με μια δήλωση COMMIT. Η συναλλαγή μπορεί επίσης να τελειώσει με μια δήλωση ROLLBACK ή έναν μη κανονικό (μη κανονικό) τερματισμό της εφαρμογής, μετά τον οποίο θα ακυρωθούν όλες οι αλλαγές που έγιναν από την εφαρμογή στη βάση δεδομένων. Η έναρξη μιας συναλλαγής είναι η πρώτη εκτελούμενη δήλωση μετά το άνοιγμα της σύνδεσης της εφαρμογής στη βάση δεδομένων ή μετά την ολοκλήρωση της προηγούμενης συναλλαγής. Κάθε σύνδεση εφαρμογής με τη βάση δεδομένων μπορεί να έχει το πολύ μία ενεργή συναλλαγή.

Όπως αναφέρθηκε προηγουμένως, οι αλλαγές στη βάση δεδομένων καταγράφονται στο αρχείο καταγραφής συναλλαγών. Για να διασφαλιστεί ότι οι αλλαγές που πραγματοποιήθηκαν από μια συναλλαγή που αναιρείται μπορούν να "επιστρέφονται", τα όρια συναλλαγών καταγράφονται επίσης στο αρχείο καταγραφής συναλλαγών. Ταυτόχρονα, οι συναλλαγές που εκτελούν μόνο λειτουργίες ανάγνωσης δεδομένων δεν εγγράφονται στο αρχείο καταγραφής συναλλαγών. Οι πληροφορίες σχετικά με την έναρξη μιας συναλλαγής τοποθετούνται στο αρχείο καταγραφής συναλλαγών πριν από την έναρξη της εκτέλεσης της πρώτης (για μια δεδομένη συναλλαγή) δήλωση εγγραφής δεδομένων.

Σε περίπτωση σφάλματος κατά την εκτέλεση μιας μεμονωμένης δήλωσης που εγγράφει δεδομένα, όλες οι αλλαγές που γίνονται από αυτήν τη δήλωση αναιρούνται χρησιμοποιώντας τα δεδομένα καταγραφής συναλλαγών. Η εφαρμογή, έχοντας λάβει ένα διαγνωστικό μήνυμα σχετικά με την άρνηση εκτέλεσης της δήλωσης, μπορεί να ακυρώσει ολόκληρη τη συναλλαγή (με τη δήλωση ROLLBACK) ή να εκτελέσει κάποιες άλλες ενέργειες με τη βάση δεδομένων και, ως εκ τούτου, να επιβεβαιώσει τις αλλαγές που έγιναν (με τη δήλωση COMMIT ).

Μια εφαρμογή μπορεί να ορίσει πρόσθετα σημεία επαναφοράς σε μια συναλλαγή (χρησιμοποιώντας τη δήλωση SAVEPOINT) και να αναιρέσει τις αλλαγές που έγιναν μετά τη δημιουργία ενός σημείου επαναφοράς (χρησιμοποιώντας τη δήλωση ROLLBACK TO). Η χρήση σημείων επαναφοράς επιτρέπει σε μια εφαρμογή να αναιρεί επιλεκτικά ενέργειες που πραγματοποιούνται σε μια συναλλαγή, κάτι που μπορεί να είναι χρήσιμο κατά τον χειρισμό σφαλμάτων ακεραιότητας δεδομένων και άλλων σεναρίων.

Κλειδαριές

Η παράλληλη χρήση σημαίνει ότι πολλοί χρήστες μπορούν να εργαστούν στα ίδια αντικείμενα βάσης δεδομένων ταυτόχρονα. Η πρόσβαση στα δεδομένα πρέπει να συντονίζεται κατάλληλα για να διασφαλίζεται η ακεραιότητα και η συνέπεια των δεδομένων.

Για να επιτευχθούν σταθερά αποτελέσματα παράλληλων συναλλαγών, απαιτείται έλεγχος της παράλληλης χρήσης κοινών πόρων. Αυτός ο έλεγχος βασίζεται στη χρήση κλειδαριών.

Οι έννοιες του κλειδώματος και του συγχρονισμού είναι στενά συνδεδεμένες. Το κλείδωμα εμποδίζει προσωρινά τις εφαρμογές να εκτελούν άλλες λειτουργίες έως ότου ολοκληρωθεί η τρέχουσα λειτουργία. Όσο πιο ενεργά χρησιμοποιείται το κλείδωμα στο σύστημα, τόσο λιγότερες ευκαιρίες για ταυτόχρονη απομένουν. Από την άλλη πλευρά, όσο λιγότερο συχνά εφαρμόζεται κλειδαριά σε ένα σύστημα, τόσο περισσότερες είναι οι δυνατότητες για ταυτόχρονη χρήση.

Ένα κλείδωμα αποκτάται αυτόματα όπως απαιτείται για τη διατήρηση μιας συναλλαγής και αποδεσμεύεται όταν μια τέτοια συναλλαγή ματαιωθεί (χρησιμοποιώντας μια εντολή COMMIT ή ROLLBACK). Οι κλειδαριές μπορούν να τοποθετηθούν σε τραπέζια ή σειρές.

Υπάρχουν δύο κύριοι τύποι αποκλεισμού:

  • Κοινόχρηστο κλείδωμα (S) - ορίζεται όταν μια εφαρμογή διαβάζει δεδομένα και εμποδίζει άλλες εφαρμογές να κάνουν αλλαγές στην ίδια σειρά.
  • Αποκλειστικό κλείδωμα (X) - Ορίζεται πότε μια εφαρμογή ενημερώνει, εισάγει ή διαγράφει μια σειρά.

Εάν δύο ή περισσότερες εφαρμογές πρέπει να εκτελέσουν μια λειτουργία στο ίδιο αντικείμενο, μία από αυτές θα πρέπει να περιμένει για να αποκτήσει το απαιτούμενο κλείδωμα. Από προεπιλογή, η εφαρμογή θα περιμένει επ 'αόριστον. Το χρονικό όριο κλειδώματος της εφαρμογής ελέγχεται από την παράμετρο διαμόρφωσης βάσης δεδομένων LOCKTIMEOUT. Η προεπιλεγμένη τιμή για αυτήν την παράμετρο είναι -1 (άπειρη αναμονή).

Μπορείτε να χρησιμοποιήσετε τη μεταβλητή περιόδου λειτουργίας CURRENT LOCK TIMEOUT για να ορίσετε το χρονικό όριο λήξης κλειδώματος σε μια συγκεκριμένη σύνδεση. Από προεπιλογή, αυτή η μεταβλητή έχει οριστεί σε LOCKTIMEOUT. Μπορείτε να χρησιμοποιήσετε τη δήλωση SET LOCK TIMEOUT για να αλλάξετε αυτήν την τιμή.

Στην περίπτωση που δύο (ή περισσότερες) εφαρμογές που είναι συνδεδεμένες στην ίδια βάση δεδομένων περιμένουν επ' αόριστον για πόρους λόγω της εσφαλμένης σειράς πρόσβασης σε αυτούς τους πόρους, εμφανίζεται μια κατάσταση αδιεξόδου. Η περίοδος χρονικού ορίου δεν μπορεί να λήξει επειδή κάθε εφαρμογή περιέχει έναν πόρο που χρειάζεται η άλλη εφαρμογή. Σε όλες τις περιπτώσεις, το πρόβλημα αδιεξόδου οφείλεται σε εσφαλμένη δομή ή λογική εφαρμογής.

Το DB2 εντοπίζει αυτόματα καταστάσεις αδιεξόδου εκτελώντας κατάλληλους ελέγχους στα διαστήματα που καθορίζονται από την παράμετρο DLCHKTIME. Όταν ανιχνεύσει ότι έχει όντως συμβεί ένα αδιέξοδο, η DB2 θα χρησιμοποιήσει έναν εσωτερικό αλγόριθμο για να προσδιορίσει ποια από τις δύο συναλλαγές θα πρέπει να επαναφερθεί και ποια να συνεχιστεί.

Επίπεδα απομόνωσης

Μια λεπτομερής ανάλυση των προβλημάτων που μπορεί να προκύψουν εάν δεν υπάρχει έλεγχος ταυτόχρονης παροχής παρέχεται στην τεκμηρίωση του DB2, καθώς και στη βιβλιογραφία σχετικά με τη θεωρία της λειτουργίας του σχεσιακού DBMS. Οι πιθανοί τύποι προβλημάτων περιλαμβάνουν:

  • χαμένη ενημέρωση (εάν ένα μπλοκ δεδομένων αλλάξει ταυτόχρονα από διαφορετικές συναλλαγές, χάνεται μία από τις αλλαγές).
  • αναξιόπιστη ανάγνωση (ανάγνωση δεδομένων που προστέθηκαν ή τροποποιήθηκαν από μια συναλλαγή, η οποία δεν θα επιβεβαιωθεί στη συνέχεια)·
  • μη επαναλαμβανόμενη ανάγνωση (όταν γίνεται εκ νέου ανάγνωση εντός της ίδιας συναλλαγής, αλλάζουν τα δεδομένα που είχαν αναγνωσθεί προηγουμένως).
  • φαντασμαγορική ανάγνωση (οι ίδιες επιλογές σε μια συναλλαγή δίνουν διαφορετικά σύνολα σειρών λόγω προσθήκης, διαγραφής ή αλλαγής σειρών από άλλες συναλλαγές).

Ο έλεγχος της ενσωματωμένης άμυνας του DB2 από την πλευρά της εφαρμογής έναντι των προβλημάτων που αναφέρονται παραπάνω γίνεται με τη ρύθμιση του επιπέδου απομόνωσης που θα χρησιμοποιηθεί. Τα επίπεδα απομόνωσης μπορούν να θεωρηθούν ως πολιτικές κλειδώματος όπου, ανάλογα με το επιλεγμένο επίπεδο απομόνωσης, μπορείτε να επιτύχετε διαφορετικούς τρόπους με τους οποίους μια εφαρμογή κλειδώνει μια βάση δεδομένων. Το επίπεδο απομόνωσης που απαιτείται από μια εφαρμογή μπορεί να οριστεί σε επίπεδο συνεδρίας και σε επίπεδο μεμονωμένου ερωτήματος ή δευτερεύοντος αιτήματος που εκτελείται.

Το DB2 παρέχει τα ακόλουθα επίπεδα προστασίας για την απομόνωση δεδομένων:

  • αναξιόπιστη ανάγνωση (Uncommitted Read, UR).
  • σταθερότητα δρομέα (Cursor Stability, CS);
  • σταθερότητα ανάγνωσης (Read Stability, RS);
  • επαναλαμβανόμενη ανάγνωση (Repeatable Read, RR).

Αυθεντική ανάγνωσηονομάζεται επίσης "βρώμικο". Αυτό είναι το χαμηλότερο επίπεδο απομόνωσης που επιτρέπει τον υψηλότερο βαθμόπαράλληλη χρήση. Οι σειρές δεν κλειδώνονται κατά τη διάρκεια των λειτουργιών ανάγνωσης, εκτός από τις περιπτώσεις που μια άλλη εφαρμογή προσπαθεί να ρίξει ή να τροποποιήσει τον πίνακα. Οι λειτουργίες ενημέρωσης εκτελούνται με τον ίδιο τρόπο όπως όταν χρησιμοποιείται το επόμενο επίπεδο απομόνωσης, το επίπεδο σταθερότητας δρομέα.

Η χρήση του επιπέδου απομόνωσης κακής ανάγνωσης αποτρέπει τα ακόλουθα προβλήματα:

  • χαμένη ενημέρωση.

Σταθερότητα δρομέαείναι το προεπιλεγμένο επίπεδο απομόνωσης. Παρέχει τον ελάχιστο βαθμό μπλοκαρίσματος. Αυτό το επίπεδο απομόνωσης κλειδώνει την "τρέχουσα" σειρά του δρομέα. Εάν η γραμμή είναι μόνο για ανάγνωση, το κλείδωμα παραμένει μέχρι να εισαχθεί μια νέα γραμμή ή να ολοκληρωθεί η λειτουργία. Εάν η σειρά ενημερωθεί, το κλείδωμα παραμένει μέχρι να ολοκληρωθεί η λειτουργία.

Η χρήση του επιπέδου απομόνωσης σταθερότητας δρομέα αποτρέπει τα ακόλουθα ζητήματα:

  • χαμένη ενημέρωση.
  • λανθασμένη ανάγνωση.

Πριν από το DB2 9.7, όταν χρησιμοποιούσατε το επίπεδο απομόνωσης σταθερότητας δρομέα, η εκτέλεση εγγραφής (λειτουργία ΕΝΗΜΕΡΩΣΗΣ) έκλεισε την πρόσβαση ανάγνωσης (λειτουργία SELECT) στην ίδια σειρά. Η λογική βάση ήταν ότι εφόσον η λειτουργία εγγραφής κάνει αλλαγές στη σειρά, η ανάγνωση θα έπρεπε να περιμένει να ολοκληρωθούν οι ενημερώσεις για να ληφθεί η τελική δεσμευμένη τιμή.

Το DB2 9.7 έχει ως προεπιλογή μια διαφορετική προσέγγιση στο επίπεδο απομόνωσης σταθερότητας δρομέα για νέες βάσεις δεδομένων. Αυτή η νέα προσέγγιση υλοποιείται με τη χρήση σημασιολογικών «τρέχουσας δέσμευσης» (CC). Όταν χρησιμοποιείτε τη σημασιολογία CC, μια λειτουργία εγγραφής δεν κλείνει την πρόσβαση στην ίδια σειρά για μια λειτουργία ανάγνωσης. Προηγουμένως, αυτή η προσέγγιση ήταν δυνατή χρησιμοποιώντας το επίπεδο απομόνωσης UR. Η διαφορά με την τρέχουσα προσέγγιση είναι ότι με το UR, η λειτουργία ανάγνωσης λαμβάνει μη έγκυρες τιμές, ενώ με τη σημασιολογία CC, λαμβάνει τις τρέχουσες αποδεκτές τιμές. Οι τρέχουσες δεσμευμένες τιμές είναι οι τιμές που δεσμεύτηκαν πριν από την έναρξη της λειτουργίας εγγραφής.

Σταθερότητα ανάγνωσηςπαρέχει ένα κλείδωμα σε όλες τις σειρές που λαμβάνονται από την εφαρμογή. Για το δεδομένο ερώτημα, όλες οι σειρές που ταιριάζουν με το σύνολο αποτελεσμάτων είναι αποκλεισμένες. Έτσι, η χρήση αυτού του τρόπου απομόνωσης μπορεί να έχει ως αποτέλεσμα η εφαρμογή να αποκτήσει μεγάλο αριθμό κλειδαριών και, εάν επιτευχθούν τα καθορισμένα όρια, να κλιμακώσει τα κλειδώματα από το επίπεδο της σειράς στο επίπεδο του πίνακα. Ωστόσο, σε επίπεδο απομόνωσης σταθερότητας ανάγνωσης, το εργαλείο βελτιστοποίησης ερωτημάτων DB2 δεν αποκτά ρητά κλειδώματα σε επίπεδο πίνακα στο σχέδιο εκτέλεσης των ερωτημάτων που εκτελεί, ακόμα κι αν το σύνολο αποτελεσμάτων περιέχει τις περισσότερες από τις εγγραφές στον πίνακα.

Η χρήση του επιπέδου απομόνωσης σταθερότητας ανάγνωσης αποτρέπει τα ακόλουθα ζητήματα:

  • χαμένη ενημέρωση.
  • Λανθασμένη ανάγνωση?
  • μη επαναλαμβανόμενη ανάγνωση.

Επαναλαμβανόμενη ανάγνωσηείναι το υψηλότερο επίπεδο απομόνωσης. Παρέχει τον υψηλότερο βαθμό κλειδώματος και τη μικρότερη ποσότητα ταυτόχρονης λειτουργίας. Ένα κλείδωμα τοποθετείται στις σειρές που υποβάλλονται σε επεξεργασία για τη δημιουργία του συνόλου αποτελεσμάτων. Με άλλα λόγια, ακόμη και σειρές που δεν μπαίνουν στο τελικό πακέτο αποτελεσμάτων μπορούν να αποκλειστούν. Άλλες εφαρμογές δεν μπορούν να ενημερώσουν, να διαγράψουν ή να εισαγάγουν σειρές που θα επηρεάσουν το σύνολο αποτελεσμάτων έως ότου ολοκληρωθεί η λειτουργία σε εξέλιξη. Η επαναλαμβανόμενη ανάγνωση διασφαλίζει ότι το ίδιο ερώτημα, που δημιουργήθηκε από την εφαρμογή πολλές φορές σε μία μόνο λειτουργία, παράγει τα ίδια αποτελέσματα κάθε φορά.

Το εργαλείο βελτιστοποίησης ερωτημάτων DB2, όταν χρησιμοποιείται το επίπεδο απομόνωσης επαναλαμβανόμενης ανάγνωσης, μπορεί να συμπεριλάβει στο σχέδιο εκτέλεσης ερωτήματος ρητές λειτουργίεςρύθμιση κλειδαριών σε επίπεδο πίνακα όταν τα αντίστοιχα ερωτήματα περιλαμβάνουν σάρωση όλων των σειρών του πίνακα (που σημαίνει την ανάγκη κλειδώματος κάθε σειράς του πίνακα κατά την εκτέλεση του ερωτήματος).

Η χρήση του επιπέδου απομόνωσης σταθερότητας ανάγνωσης αποτρέπει τα πάντα πιθανά προβλήματαανταγωνιστική πρόσβαση, αλλά ταυτόχρονα περιορίζεται όσο το δυνατόν περισσότερο ο πιθανός παραλληλισμός της εκτέλεσης των πράξεων.

συμπέρασμα

Σε αυτό το άρθρο, εξετάστηκαν οι κύριες λειτουργίες του IBM DB2 LUW DBMS, η δομή του διακομιστή βάσης δεδομένων, οι ρυθμίσεις διαμόρφωσης και η οργάνωση της αποθήκευσης δεδομένων. Επιπλέον, λαμβάνονται υπόψη οι βασικές αρχές του διακομιστή DB2, οι υποστηριζόμενοι τύποι αντικειμένων βάσης δεδομένων και η οργάνωση της παράλληλης επεξεργασίας συναλλαγών DB2.

Στη δουλειά, έπρεπε να ασχοληθώ με το IBM DB2 DBMS για κάποιο χρονικό διάστημα. Επειδή Δεδομένου ότι το σύστημα είναι εμπορικό, δεν υπάρχουν πολλές πληροφορίες στα ρωσικά στο Διαδίκτυο, γι' αυτό αποφάσισα να περιγράψω μερικές από τις δυνατότητες αυτού του DBMS.

Σημείο εισόδου

Ας ξεκινήσουμε με το σημείο εισόδου στο DBMS. Στον SQL SERVER, το τελικό σημείο είναι μια παρουσία, η οποία φυσικά μπορεί να έχει ξεχωριστές βάσεις δεδομένων, αλλά το μοντέλο διαμόρφωσης και ασφάλειας είναι το ίδιο για ολόκληρη την παρουσία. Στο DB2, το σημείο εισόδου μοιάζει με αυτό - μια παρουσία (που αντιστοιχεί σε μια συγκεκριμένη θύρα) - μια βάση δεδομένων. Ταυτόχρονα, υπάρχει μια ρύθμιση παραμέτρων για ολόκληρη την παρουσία και για μια ξεχωριστή βάση δεδομένων.

Μπορείτε να προβάλετε τη διαμόρφωση της παρουσίας είτε χρησιμοποιώντας την εντολή db2:

Διαμόρφωση διαχειριστή βάσης δεδομένων

Τύπος κόμβου = Enterprise Server Edition με τοπικούς και απομακρυσμένους πελάτες

Επίπεδο έκδοσης διαμόρφωσης διαχειριστή βάσης δεδομένων = 0x0b00

Ταχύτητα CPU (millisec/instruction) (CPUSPEED) = 2,912790e-07
Εύρος ζώνης επικοινωνιών (MB/sec) (COMM_BANDWIDTH) = 1,000000e+02

Μέγιστος αριθμός ταυτόχρονων ενεργών βάσεων δεδομένων (NUMDB) = 8
Υποστήριξη Συστήματος Ομοσπονδιακής Βάσης Δεδομένων (ΟΜΟΣΠΟΝΩΣΗ) = ΝΑΙ
Όνομα παρακολούθησης επεξεργαστή συναλλαγών (TP_MON_NAME) =

Προεπιλεγμένος λογαριασμός αντιστροφής χρέωσης (DFT_ACCOUNT_STR) =

Διαδρομή εγκατάστασης Java Development Kit (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

Επίπεδο καταγραφής διαγνωστικού σφάλματος (DIAGLEVEL) = 3
Επίπεδο ειδοποίησης(NOTIFYLEVEL) = 3
Διαδρομή καταλόγου διαγνωστικών δεδομένων (DIAGPATH) = /home/db2inst1/sqllib/db2dump

Προεπιλεγμένοι διακόπτες παρακολούθησης βάσης δεδομένων
Pool buffer (DFT_MON_BUFPOOL) = OFF

Όπου θα καθοριστούν οι παράμετροι, η σημασία και η αποκωδικοποίησή τους. Μια συντομευμένη έκδοση είναι επίσης δυνατή:

πάρτε dbm cfg

Ή με ένα ερώτημα:

Επιλέξτε όνομα, τιμή από sysibmadm.dbmcfg

Οι σημαντικές παράμετροι περιλαμβάνουν:

  • τύπος ελέγχου ταυτότητας (AUTHENTICATION)
  • προεπιλεγμένη διαδρομή για τη δημιουργία νέων βάσεων δεδομένων (DFTDBPATH)
  • εντοπισμός διακομιστή δικτύου (DISCOVER)
Μπορείτε να δείτε τις ρυθμίσεις για μια συγκεκριμένη βάση δεδομένων όπως αυτή:

σύνδεση στο δείγμα(δείγμα - όνομα βάσης δεδομένων)

λάβετε τη διαμόρφωση του διαχειριστή βάσης δεδομένων

Ή με περίπου το ίδιο αίτημα με πριν:

επιλέξτε όνομα, τιμή από sysibmadm.dbcfg

Αυθεντικοποίηση

Η μεγάλη διαφορά μεταξύ του DB2 και άλλων DBMS είναι το μοντέλο ελέγχου ταυτότητας. Δεν υπάρχουν εσωτερικοί χρήστες όπως στον SQL Server ή στο MySQL. Όλος ο έλεγχος ταυτότητας εκτελείται με μέσα εξωτερικά του DBMS (δυναμικά φορτωμένα πρόσθετα) - μέσω του λειτουργικού συστήματος ή εξωτερικών προσθηκών (Kerberos, GSS API). Ο τύπος ελέγχου ταυτότητας ορίζεται στην παράμετρο AUTHENTICATION της διαμόρφωσης του διαχειριστή βάσης δεδομένων. Από προεπιλογή, ορίζεται η τιμή SERVER - το όνομα χρήστη και ο κωδικός πρόσβασης μεταδίδονται σε καθαρό κείμενο και αυτό το ζεύγος ελέγχεται για ορθότητα μέσω του λειτουργικού συστήματος. Εάν το όνομα χρήστη και ο κωδικός πρόσβασης είναι σωστά, τότε ελέγχεται το δικαίωμα CONNECT για τον χρήστη ή τις ομάδες στις οποίες είναι μέλος (συμπεριλαμβανομένης της ειδικής ομάδας PUBLIC, η οποία περιλαμβάνει όλους τους εξουσιοδοτημένους χρήστες). Αυτά τα προνόμια μπορούν να προβληθούν στον πίνακα SYSCAT.DBAUTH:

επιλέξτε GRANTEE από το SYSCAT.DBAUTH όπου CONNECTAUTH = "Y"

Ένα μεγάλο λάθος ρύθμισης παραμέτρων είναι να συμπεριληφθεί ο τύπος ελέγχου ταυτότητας CLIENT.Σε αυτήν την περίπτωση, το DB2 εμπιστεύεται τον έλεγχο ταυτότητας στον συνδεδεμένο πελάτη και εάν το PUBLIC έχει το δικαίωμα CONNECT, τότε οποιοσδήποτε χρήστης μπορεί να συνδεθεί στη βάση δεδομένων και να έχει πρόσβαση σε όλα τα δεδομένα που έχει το PUBLIC. Το όνομα χρήστη λαμβάνεται από το λειτουργικό σύστημα. Δηλαδή, εάν συνδεθούμε μέσω του Data Studio ως χρήστης Administrator, τότε θα παραχωρηθούν όλα τα προνόμια που έχει αυτός ο χρήστης. Και σε αυτή την περίπτωση, δεν υπάρχει διαφορά από ποιον υπολογιστή έγινε η πρόσβαση. Αυτός ο τύπος ελέγχου ταυτότητας συνιστάται να ενεργοποιείται μόνο όταν υπάρχει ασφαλές κανάλι μεταξύ του διακομιστή και του πελάτη και οι άλλοι πελάτες δεν θα μπορούν να συνδεθούν στο DBMS.

Εξουσιοδότηση

Τα δικαιώματα επιπέδου παρουσίας είναι γραμμένα στη διαμόρφωση του διαχειριστή βάσης δεδομένων. Αυτά είναι τα ακόλουθα προνόμια:

  • ΣΥΣΑΔΜ
  • SYSCTRL
  • ΣΥΣΜΑΙΝΤ
  • ΣΥΣΜΩΝ
Αυτά τα δικαιώματα ορίζονται καθορίζοντας την ομάδα στην οποία θα εισέλθει ο χρήστης. Στο dbmcfg, αυτές είναι οι επιλογές SYSADM_GROUP , SYSCTRL_GROUP , SYSMAINT_GROUP και SYSMON_GROUP, αντίστοιχα.

Στη συνέχεια, υπάρχουν προνόμια ειδικά για τη βάση δεδομένων. Αυτά είναι προνόμια όπως πρόσβαση σε βάση δεδομένων (CONNECTAUTH), δημιουργία πίνακα (CREATETABAUTH), δημιουργία ρουτίνας (EXTERNALROUTINEAUTH) και ούτω καθεξής. Αυτά τα δικαιώματα μπορούν να προβληθούν στην προβολή SYSCAT.DBAUTH

Και τέλος, δικαιώματα πρόσβασης σε συγκεκριμένα δεδομένα - πίνακες, υπορουτίνες και ούτω καθεξής. Όλα εδώ είναι αρκετά επιπόλαια, αλλά και με κάποιες ιδιαιτερότητες.

Τα δικαιώματα πρόσβασης στον πίνακα μπορούν να προβληθούν στην προβολή SYSCAT.TABAUTH. Ο τύπος του παραχωρούμενου προνομίου αποθηκεύεται σε ξεχωριστές στήλες, ανάλογα με το ίδιο το προνόμιο (SELECTAUTH, DELETEAUTH κ.λπ.). Όταν εκχωρείτε ένα προνόμιο χρησιμοποιώντας την εντολή GRANT για τα δικαιώματα REFERENCES και UPDATE, μπορείτε επίσης να καθορίσετε τα ονόματα των στηλών στις οποίες θα επεκταθούν τα δεδομένα δικαιώματα. Σε αυτήν την περίπτωση, οι πληροφορίες σχετικά με αυτό μπορούν να προβληθούν στην προβολή SYSCAT.COLAUTH

Τα προνόμια για τις ρουτίνες (συναρτήσεις, διαδικασίες και μέθοδοι) μπορούν να προβληθούν στο SYSCAT.ROUTINEAUTH . Δεν είναι όλα ασήμαντα εδώ, ανάλογα με τα πεδία SPECIFICNAME και TYPENAME, μπορούν να παραχωρηθούν δικαιώματα σε όλες τις υπορουτίνες ενός δεδομένου σχήματος.

Εάν αρέσει στους αναγνώστες το άρθρο, τότε είμαι έτοιμος να μιλήσω για την προστασία δεδομένων στο DB2 χρησιμοποιώντας τον έλεγχο πρόσβασης βάσει ετικετών

Μια σχεσιακή βάση δεδομένων είναι ένα σύνολο σχέσεων των οποίων τα ονόματα ταιριάζουν με τα ονόματα των σχημάτων σχέσεων στο σχήμα της βάσης δεδομένων. Σήμερα, είναι γνωστός ένας μεγάλος αριθμός διαφορετικών διακομιστών βάσης δεδομένων SQL. Ας επικεντρωθούμε στα ακόλουθα τέσσερα κορυφαία DBMS διακομιστών - Oracle8i, IBM DB2, Microsoft SQLΔιακομιστής και Informix - και συγκρίνετε τα σε λειτουργία σε κάθε ένα από τα κύρια στάδια λειτουργίας.

Oracle8i. Πακέτο Oracle8i, προικισμένο με το πιο προηγμένο σύνολο λειτουργιών για εργασία με τη γλώσσα Java και πρόσβαση σε δεδομένα μέσω Διαδικτύου, ένα σύστημα βελτιστοποίησης ταυτόχρονης πρόσβασης. Το μόνο μειονέκτημα αυτού του ΣΔΒΔ είναι η πολυπλοκότητα της διαχείρισης, ωστόσο, όλο το κόστος εφαρμογής και ανάπτυξής του θα αποδώσει αργότερα με αποτελεσματική και αξιόπιστη εργασία. (η πολυπλοκότητα και το υψηλό κόστος είναι συζητήσιμα). Μεταξύ των βασικών ιδιοτήτων του Oracle DBMS, πρέπει να σημειωθούν τα ακόλουθα: Υψηλότερη αξιοπιστία. Η δυνατότητα διαχωρισμού μεγάλων βάσεων δεδομένων σε ενότητες (διαμέρισμα μεγάλης βάσης δεδομένων), που καθιστά δυνατή την αποτελεσματική διαχείριση γιγαντιαίων βάσεων δεδομένων gigabyte. Διαθεσιμότητα καθολικών μέσων προστασίας των πληροφοριών. Αποτελεσματικές Μέθοδοι μέγιστη αύξησηταχύτητα επεξεργασίας αιτήματος· Ευρετηρίαση bitmap. Δωρεάν πίνακες (σε άλλα DBMS όλοι οι πίνακες συμπληρώνονται αμέσως μετά τη δημιουργία). Παραλληλισμός πράξεων σε ένα ερώτημα. Διαθεσιμότητα ενός ευρέος φάσματος εργαλείων ανάπτυξης, παρακολούθησης και διαχείρισης. Εστίαση στις τεχνολογίες του Διαδικτύου Λύσεις που δεν είναι κατώτερες από την ανάπτυξη της Oracle μπορούν να βρεθούν μόνο στο DB2 της IBM. Ο προσανατολισμός στις τεχνολογίες του Διαδικτύου είναι το κύριο σύνθημα των σύγχρονων προϊόντων Oracle. Από αυτή την άποψη, μπορεί να σημειωθεί το πακέτο interMedia, το οποίο παρέχει επεξεργασία δεδομένων σε μορφές πολυμέσων, και το Jserver, ένα ενσωματωμένο εργαλείο για εργασία με τη γλώσσα Java, που συνδυάζει τις δυνατότητες της γλώσσας Java με τις δυνατότητες των σχεσιακών βάσεων δεδομένων. Τα Enterprise JavaBeans είναι τα δομικά στοιχεία που συνθέτουν τις εφαρμογές Java Internet. Η Oracle τηρεί την αρχή ότι όλες οι σημαντικές λειτουργίες πρέπει να διαχειρίζονται από ένα μόνο κέντρο, επομένως η προτεινόμενη μονάδα interMedia παρέχει στους χρήστες τις πιο προηγμένες δυνατότητες για εργασία με αντικείμενα πολυμέσων: Πολύ προηγμένα εργαλεία για την επεξεργασία κλιπ ήχου. Στατικές εικόνες. ΒΙΝΤΕΟ κλιπς; Γεωγραφικά δεδομένα (με ένα ολόκληρο σύνολο συναρτήσεων που σχετίζονται με τον προσδιορισμό της τοποθεσίας που περιλαμβάνεται στη μονάδα εντοπισμού). Το Oracle8i εφαρμόζει τα καλύτερα σημερινά εργαλεία για αντικειμενοστραφή σχεδιασμό βάσεων δεδομένων, συμπεριλαμβανομένων δομών πινάκων που επιτρέπουν κληρονομικότητα ιδιοτήτων και μεθόδων άλλων αντικειμένων βάσης δεδομένων πινάκων, τα οποία θα αποφεύγουν σφάλματα κατά τη δημιουργία μιας βάσης δεδομένων και θα διευκολύνουν τη συντήρησή τους. Θα πρέπει επίσης να σημειωθεί ότι το σύστημα βελτιστοποίησης ταυτόχρονης πολλαπλής έκδοσης που αναπτύχθηκε από την Oracle είναι ένα από τα πιο σημαντικά χαρακτηριστικά της αρχιτεκτονικής της Oracle (αυτή η λειτουργία είναι διαθέσιμη μόνο στο InterBase DBMS από την InterBase από την Inprise). Αυτή η λειτουργίασας επιτρέπει να εξαλείψετε την κατάσταση όταν ένας χρήστης πρέπει να περιμένει έως ότου ο άλλος ολοκληρώσει τις αλλαγές στα περιεχόμενα των βάσεων δεδομένων (δηλαδή, δεν υπάρχουν κλειδώματα ανάγνωσης στο Oracle). Αυτή η δυνατότητα επιτρέπει στο Oracle8i να εκτελεί περισσότερες συναλλαγές ανά δευτερόλεπτο ανά χρήστη από οποιαδήποτε άλλη βάση δεδομένων. Όσον αφορά τις επιδόσεις κατά την εργασία σε περιβάλλον WEB υπό LINUX, η Oracle καταλαμβάνει μια τιμητική δεύτερη θέση μετά DBMS MySQL, ενώ ξεπερνά σημαντικά όλα τα άλλα ΣΔΒΔ από άποψη αξιοπιστίας και ασφάλειας.

DBMS Microsoft SQL Server Τα πιο σημαντικά χαρακτηριστικά αυτού του DBMS είναι: η ευκολία διαχείρισης, η δυνατότητα σύνδεσης στο Web, η ταχύτητα και η λειτουργικότητα του μηχανισμού διακομιστή DBMS, η διαθεσιμότητα εργαλείων απομακρυσμένη πρόσβαση, Η εργαλειοθήκη διαχείρισης DBMS περιλαμβάνει ένα ολόκληρο σύνολο ειδικών οδηγών και εργαλείων για την αυτόματη ρύθμιση των παραμέτρων διαμόρφωσης. Επίσης, αυτή η βάση δεδομένων είναι εξοπλισμένη με εξαιρετικά εργαλεία αναπαραγωγής που σας επιτρέπουν να συγχρονίζετε δεδομένα υπολογιστή με πληροφορίες βάσης δεδομένων και αντίστροφα. Ο διακομιστής OLAP που περιλαμβάνεται στο πακέτο καθιστά δυνατή την αποθήκευση και ανάλυση όλων των δεδομένων που είναι διαθέσιμα στον χρήστη. Κατ 'αρχήν, αυτό το DBMS είναι μια σύγχρονη βάση δεδομένων με πλήρεις δυνατότητες που είναι ιδανική για μικρούς και μεσαίους οργανισμούς. Θα πρέπει να σημειωθεί ότι ο SQL Server είναι κατώτερος από άλλα υπό εξέταση DBMS σε δύο σημαντικούς δείκτες: προγραμματισμό και μέσα λειτουργίας. Κατά την ανάπτυξη εφαρμογών βάσης δεδομένων πελατών που βασίζονται σε Java, HTML, εμφανίζεται συχνά το πρόβλημα του ανεπαρκούς λογισμικού SQL Server και θα είναι πιο δύσκολο να χρησιμοποιηθεί αυτό το DBMS από τα συστήματα DB2, Informix, Oracle ή Sybase. Η παγκόσμια τάση στον 21ο αιώνα έχει γίνει η σχεδόν καθολική μετάβαση στην πλατφόρμα LINUX και ο SQL Server λειτουργεί μόνο σε περιβάλλον Windows. Επομένως, η χρήση του SQL Server συνιστάται μόνο εάν το πρότυπο ODBC χρησιμοποιείται αποκλειστικά για πρόσβαση στα περιεχόμενα της βάσης δεδομένων, διαφορετικά είναι προτιμότερο να χρησιμοποιείτε άλλα DBMS.

IBM DB2 Το IBM DB2 DBMS είναι το αποτέλεσμα σχεδόν 30 ετών ανάπτυξης και ερευνητικό έργοαπό την IBM. Η πιο πρόσφατη έκδοση αυτού του DBMS (6.x) διαθέτει ένα από τα πιο περίτεχνα σετ εργαλείων διαχείρισης και βελτιστοποίησης και μια μηχανή βάσης δεδομένων που μπορεί να αναπτυχθεί από φορητό υπολογιστή Windows 95 σε ένα ολόκληρο σύμπλεγμα κεντρικών υπολογιστών S/390 με OS/390. Το πακέτο DB2 είναι διαθέσιμο σε δύο εκδόσεις: DB2 Workgroup και DB2 Enterprise Edition. Αυτό το ΣΔΒΔ εφαρμόζει όλες τις καινοτόμες τεχνολογίες μηχανών βάσης δεδομένων που είναι γνωστές από προηγούμενες εκδόσεις του DB2, όπως η παράλληλη επεξεργασία ερωτημάτων, ένα πλήρες σύνολο εργαλείων αναπαραγωγής, οι πίνακες σύνοψης ερωτημάτων για τη βελτίωση της απόδοσης της βάσης δεδομένων, οι δυνατότητες σχεδίασης βάσης δεδομένων αντικειμενοστρεφούς και χαρακτηριστικά γλώσσας Java. Επιπλέον, το σύστημα DB2 είναι εξοπλισμένο με ένα πλήρες σύνολο επεκτάσεων πολυμέσων που σας επιτρέπουν να αποθηκεύετε και να χειρίζεστε κομμάτια κειμένου, ήχου και βίντεο, εικόνες και γεωγραφικά δεδομένα. Μπορούμε να πούμε ότι όσον αφορά την επεκτασιμότητα, η τεχνολογία ομαδοποίησης βάσεων δεδομένων που αναπτύχθηκε από ειδικούς της IBM δεν έχει ανάλογες. Αυτές οι επεκτάσεις διευκολύνουν σημαντικά τη διαδικασία ανάπτυξης εφαρμογών για το Web, καθώς και προγραμμάτων που περιέχουν φωτογραφικές εικόνες και ογκώδεις αναφορές κειμένου. Το σύστημα DB2 είναι επίσης αρκετά ανταγωνιστικό ως πλατφόρμα ανάπτυξης εφαρμογών, καθώς υπάρχει ένα εργαλείο Stored Procedure Builder που μετατρέπει αυτόματα τη δήλωση SQL στην κατάλληλη κλάση Java και την περιλαμβάνει στη δομή της βάσης δεδομένων. Στο DB2 6.1, η διαλειτουργικότητα με άλλα DBMS έχει βελτιωθεί σημαντικά, επιτρέποντας τη χρήση της προδιαγραφής OLE DB της Microsoft, ενός νέου προτύπου πρόσβασης στη βάση δεδομένων. DB2 διαχειριστικοί έλεγχοι που είναι νέα έκδοσηξαναγραφτεί σε Java και μπορεί να ληφθεί από τον Ιστό αξίζουν τον υψηλότερο έπαινο. Τα κύρια μειονεκτήματα αυτού του DBMS είναι η σχετική πολυπλοκότητα διαχείρισης και η έλλειψη (ακόμη) υλοποιήσεων για δημοφιλή λειτουργικά συστήματα διακομιστών, όπως το LINUX. Σε αυτό το DBMS, χάρη στον Index Smart-Guide, είναι δυνατό να πραγματοποιηθεί συντονισμός, διαμορφώνοντας βέλτιστα ευρετήρια για έναν δεδομένο αριθμό προσβάσεων, που χαρακτηρίζει το τυπικό φορτίο στη βάση δεδομένων. Το DB2 είναι το μόνο πακέτο που σας επιτρέπει να δημιουργείτε συγκεντρωτικούς πίνακες, γεγονός που βελτιώνει σημαντικά την αποτελεσματικότητα του DBMS ως αποθήκη δεδομένων. Ο Συγκεντρωτικός Πίνακας είναι ένας προσωρινός χώρος εργασίας που χρησιμοποιείται από τη βάση δεδομένων για την αποθήκευση απαντήσεων σε συχνά ερωτήματα. Το μοντέλο DB2 6.1 αναδεικνύεται ως το πιο οικονομικό σύστημα υψηλής απόδοσης. Τα εργαλεία διαχείρισης αυτού του DBMS είναι αρκετά κατάλληλα για το επίπεδο των εργασιών που επιλύονται, επιπλέον, παρέχει εξαιρετικά ευρείες ευκαιρίες για εργασία με δεδομένα πολυμέσων και για προγραμματισμό (που σαφώς λείπει από τον Microsoft SQL Server).

DBMS από την Informix. Πρόσφατα, υπήρξε μια μετάβαση από τα σχεσιακά DBMS σε αντικειμενοστραφή (κάτι που φαίνεται ξεκάθαρα στο παράδειγμα της Oracle). Η Informix, ακολουθώντας αυτή την ιδέα, ανακοίνωσε επίσης μια νέα λύση Centaur DBMS που βασίζεται στη σχεσιακή βάση δεδομένων Informix Dynamic Server 7.3 και στη βάση δεδομένων αντικειμένων Informix Universal Data Option και συνδυάζει την υψηλή απόδοση του Dynamic Server κατά την εργασία με δεδομένα με καθολικότητα και λειτουργίες πολυμέσων του Universal Επιλογή δεδομένων. Αυτή η υλοποίηση προορίζεται για την ανάπτυξη συστημάτων Διαδικτύου. Αναμένεται ότι αυτό το ΣΔΒΔ θα έχει ένα ευέλικτο περιβάλλον ανάπτυξης με επεκτασιμότητα ώστε να ταιριάζει με τους έντονο φόρτο εργασίας που χαρακτηρίζει το Διαδίκτυο και εργαλεία για εργασία με νέους τύπους δεδομένων που έχουν γίνει πανταχού παρόντα με την ανάπτυξη του Ιστού. Τα εργαλεία Java που εφαρμόζονται στο νέο σύστημα θα επιτρέψουν στους προγραμματιστές να δημιουργήσουν αποθηκευμένες διαδικασίες, προγράμματα χρήστη και στοιχεία DataBlades σε αυτήν τη γλώσσα, την οποία καλεί η Informix

προσαρμοσμένες επεκτάσεις βάσης δεδομένων. Από την άποψη των πελατών της Inforix, αυτό είναι ένα μεγάλο βήμα προς τα εμπρός, γιατί μέχρι τώρα, όταν εργάζονταν με το DataBlades, μπορούσαν να χρησιμοποιούν μόνο C και SPL, την εσωτερική γλώσσα της Informix για τη σύνταξη αποθηκευμένων διαδικασιών. Επιπλέον, το πακέτο Centaur θα είναι εξοπλισμένο με ενσωματωμένο χειρισμό αντικειμένων ActiveX. Αυτό θα καταστήσει δυνατή, για παράδειγμα, τη δημιουργία αποθηκευμένων διαδικασιών βάσης δεδομένων στη γλώσσα Visual Basic; Ωστόσο, αυτό απαιτεί την εκτέλεση του πακέτου Centaur σε περιβάλλον Windows NT. Το Centaur θα είναι ένα πρόσθετο στον Informix Dynamic Server και θα λειτουργεί με την παραδοσιακή μορφή βάσης δεδομένων για αυτό το πακέτο, έτσι ώστε οι χρήστες να έχουν όλες τις παλιές λειτουργίες στη διάθεσή τους και η αναβάθμιση του συστήματος στη νέα έκδοση δεν θα είναι πολύ δύσκολη. Επιπλέον, το πακέτο Centaur θα διατηρήσει όλες τις δυνατότητες σχεδιασμού και προγραμματισμού που έκαναν το σύστημα Informix Universal Server ένα εξαιρετικό επίτευγμα μηχανικής. Το νέο σύστημα θα είναι εξοπλισμένο με εγκαταστάσεις για αντικειμενοστραφή σχεδιασμό βάσεων δεδομένων, δημιουργία εξειδικευμένων πινάκων και προγραμμάτων ευρετηρίασης. θα επιτρέπει στους χρήστες να ενσωματώνουν τη δική τους λειτουργικότητα σε ερωτήματα και να μην βασίζονται αποκλειστικά σε αυτά τυπικά μέσα SQL. συμπεράσματα. Έχοντας εξετάσει τα κύρια χαρακτηριστικά των αρχιτεκτονικών για την κατασκευή AIS, λειτουργικών συστημάτων διακομιστών και DBMS, στο μέλλον, ως αρχιτεκτονική AIS, θα επιλέξουμε την αρχιτεκτονική Internet / Intranet, ως λειτουργικό διακομιστή Linux, ως Oracle 8i DBMS.

2) ρήτρα SQL SELECT. Ενσωματωμένες λειτουργίες.

ΕΠΙΛΟΓΗ στήλης από τον πίνακα WHERE στήλη LIKE μοτίβο

SELECT * FROM Store_Information WHERE store_name LIKE "%AN% ';

ΕΠΙΛΟΓΗ_όνομα_στήλης ΑΠΟ το όνομα_του πίνακα_ WHERE στήλη_όνομα ΜΕΤΑΞΥ τιμής 1 ΚΑΙ τιμή 2

ΕΠΙΛΟΓΗ * ΑΠΟ Πρόσωπα ΠΟΥ Επώνυμο ΜΕΣΑ "Hansen" ΚΑΙ "Pettersen"?

ΕΠΙΛΕΞΤΕ * ΑΠΟ Πρόσωπα ΠΟΥ Το Επώνυμο ΔΕΝ ΜΕΤΑΞΥ "Hansen" ΚΑΙ "Pettersen";

ΕΠΙΛΟΓΗ Εταιρείας, Αριθμός παραγγελίας ΑΠΟ Παραγγελίες ORDER BY(διαλογή ) Εταιρεία;

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber;

ΕΠΙΛΟΓΗ Εταιρείας, Αριθμός Παραγγελίας ΑΠΟ Παραγγελίες ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Εταιρεία DESC(αντίστροφη σειρά ) ;

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC , OrderNumber ASC(σωστά . Σειρά ) ;

SELECT * FROM Persons WHERE FirstName="Tove" AND LastName="Svendson";

SELECT * FROM Persons WHERE firstname="Tove" OR lastname="Svendson" ;

SELECT * FROM Persons WHERE (FirstName="Tove" OR FirstName="Stephen") AND LastName="Svendson" ;

SELECT store_name FROM Store_Information WHERE Πωλήσεις > 1000 Ή (Πωλήσεις< 500 AND Sales > 275);

ΛειτουργίεςΕΠΙΛΕΓΩλειτουργία( στήλη) ΑΠΟτραπέζι AVG - μέση τιμή στη στήλη.ΜΕΤΡΩ - αριθμός τιμών σε μια στήλη. MAX - το περισσότερο μεγάλης σημασίαςσε μια στήλη? MIN - η μικρότερη τιμή στη στήλη. SUM - άθροισμα τιμών ανά στήλη

Παραδείγματα: ΕΠΙΛΕΓΩ AVG(Ηλικία) ΑΠΟ Πρόσωπα; ΕΠΙΛΕΓΩ ΜΕΤΡΩ(όνομα_καταστήματος) ΑΠΟ Πληροφορίες καταστήματος; ΕΠΙΛΕΓΩ ΜΕΤΡΩ(ΔΙΑΚΡΙΤΗ store_name) FROM Store_Information; ΕΠΙΛΕΓΩ ΜΕΓΙΣΤΗ(Ηλικία) ΑΠΟ Πρόσωπα ΕΠΙΛΟΓΗ ΑΘΡΟΙΣΜΑ(Πωλήσεις) ΑΠΟ Κατάστημα_Πληροφορίες;

3) Σειρά συναλλαγών, συγκρούσεις πράξεων. Μέθοδοι σειριοποίησης συναλλαγών. Λαβές συγχρονισμού, λαβές συγχρονισμού κόκκων. Μέθοδοι σειριοποίησης συναλλαγών. Καταγράφει συγχρονισμός κατηγορήματος. Σειριοποίηση με βάση χρονικές σημάνσεις.

Για να επιτευχθεί η απομόνωση των συναλλαγών, το ΣΔΒΔ πρέπει να χρησιμοποιεί μεθόδους για τη ρύθμιση της από κοινού εκτέλεσης των συναλλαγών. Το σχέδιο (μέθοδος) για την εκτέλεση ενός συνόλου συναλλαγών ονομάζεται κατα συρροηεάν το αποτέλεσμα της από κοινού εκτέλεσης των συναλλαγών είναι ισοδύναμο με το αποτέλεσμα κάποιας διαδοχικής εκτέλεσης των ίδιων συναλλαγών. Σειρά συναλλαγών- αυτός είναι ένας μηχανισμός για την εφαρμογή τους σύμφωνα με κάποιο σειριακό σχέδιο. Η παροχή ενός τέτοιου μηχανισμού είναι η κύρια λειτουργία του στοιχείου DBMS που είναι υπεύθυνο για τη διαχείριση των συναλλαγών. Ένα σύστημα που υποστηρίζει τη σειριοποίηση συναλλαγών παρέχει πραγματική απομόνωση χρήστη. Το κύριο πρόβλημα υλοποίησης είναι η επιλογή μιας μεθόδου για τη σειριοποίηση ενός συνόλου συναλλαγών που δεν περιορίζει υπερβολικά τον παραλληλισμό τους. Μια ασήμαντη λύση που έρχεται στο μυαλό είναι πραγματικά η διαδοχική εκτέλεση των συναλλαγών. Υπάρχουν όμως περιπτώσεις στις οποίες είναι δυνατό να εκτελεστούν καταστάσεις διαφορετικών συναλλαγών με οποιαδήποτε σειρά, διατηρώντας παράλληλα τη σειριακή. Τα παραδείγματα περιλαμβάνουν συναλλαγές μόνο για ανάγνωση, καθώς και συναλλαγές που δεν έρχονται σε διένεξη σε αντικείμενα βάσης δεδομένων. Μεταξύ των συναλλαγών μπορούν να υπάρχουν οι ακόλουθοι τύποι διενέξεων: W-W - η συναλλαγή 2 προσπαθεί να τροποποιήσει ένα αντικείμενο που τροποποιήθηκε από τη συναλλαγή 1 που δεν έχει τελειώσει. R-W - η συναλλαγή 2 προσπαθεί να τροποποιήσει ένα αντικείμενο που διαβάζεται από τη συναλλαγή 1 που δεν έχει τελειώσει. W-R - Η συναλλαγή 2 προσπαθεί να διαβάσει ένα αντικείμενο τροποποιημένο από τη συναλλαγή 1 που δεν έχει ολοκληρωθεί. Οι πρακτικές σειριοποίησης συναλλαγών βασίζονται σε αυτές τις διενέξεις.

Υπάρχει δύο βασικές προσεγγίσειςστη σειριοποίηση των συναλλαγών - με βάση τις συλλήψεις συγχρονισμού των αντικειμένων της βάσης δεδομένων και τη χρήση χρονικών σφραγίδων. Η ουσία και των δύο προσεγγίσεων είναι ο εντοπισμός συγκρούσεων συναλλαγών και η εξάλειψή τους. Η πιο κοινή προσέγγιση σε κεντρικά DBMS (συμπεριλαμβανομένων συστημάτων που βασίζονται στην αρχιτεκτονική "πελάτης-διακομιστής") είναι η προσέγγιση που βασίζεται σε τήρηση του πρωτοκόλλου δύο φάσεων των συλλήψεων συγχρονισμούαντικείμενα βάσης δεδομένων. Σε γενικές γραμμές, το πρωτόκολλο είναι ότι πριν από την εκτέλεση οποιασδήποτε λειτουργίας στη συναλλαγή T στο αντικείμενο βάσης δεδομένων r, για λογαριασμό της συναλλαγής T, ζητείται μια σύλληψη συγχρονισμού του αντικειμένου r στον κατάλληλο τρόπο λειτουργίας (ανάλογα με τον τύπο της λειτουργίας). Οι κύριοι τρόποι συλλήψεων συγχρονισμού είναι: κοινή λειτουργία - S (Shared), που σημαίνει κοινή σύλληψη ενός αντικειμένου και απαιτείται για την εκτέλεση μιας λειτουργίας ανάγνωσης αντικειμένου. αποκλειστική λειτουργία - X (eXclusive), που σημαίνει αποκλειστική σύλληψη του αντικειμένου και απαιτείται για την εκτέλεση εργασιών εισαγωγής, διαγραφής και τροποποίησης. Κοκκώδης Λήψη συγχρονισμού - μια προσέγγιση πουμπορούν να ζητηθούν συλλήψεις συγχρονισμού σε αντικείμενα διαφορετικών επιπέδων: αρχεία, σχέσεις και πλειάδες. Το απαιτούμενο επίπεδο αντικειμένου καθορίζεται από τη λειτουργία που εκτελείται (για παράδειγμα, για να εκτελέσετε μια λειτουργία διαγραφής σε μια σχέση, ολόκληρη η σχέση πρέπει να είναι το αντικείμενο σύλληψης συγχρονισμού, αλλά για να εκτελέσετε μια λειτουργία πολλαπλής διαγραφής, αυτή η πλειάδα). Ένα αντικείμενο οποιουδήποτε επιπέδου μπορεί να αποτυπωθεί σε λειτουργία S ή X. Λήψη συγχρονισμού κατηγορήματος- αυτό δεν είναι η σύλληψη αντικειμένων, αλλά οι προϋποθέσεις (κατηγορίες) που πληρούν αυτά τα αντικείμενα Μια εναλλακτική μέθοδος σειριοποίησης συναλλαγών που λειτουργεί καλά σε συνθήκες σπάνιων συγκρούσεων συναλλαγών και δεν απαιτεί την κατασκευή γραφήματος αναμονής συναλλαγών. βασισμένο στο χρησιμοποιώντας χρονικές σημάνσεις.Η κύρια ιδέα της μεθόδου (της οποίας υπάρχουν πολλές ποικιλίες) είναι η εξής: εάν η συναλλαγή T1 ξεκίνησε πριν από τη συναλλαγή T2, τότε το σύστημα διασφαλίζει ότι ο τρόπος εκτέλεσης είναι σαν να είχε εκτελεστεί πλήρως το T1 πριν από την έναρξη του T2.

Για να γίνει αυτό, σε κάθε συναλλαγή T εκχωρείται μια χρονική σήμανση t που αντιστοιχεί στην ώρα έναρξης T. Όταν εκτελείτε μια λειτουργία σε ένα αντικείμενο r, η συναλλαγή T το επισημαίνει με τη χρονική της σήμανση και τον τύπο της λειτουργίας (ανάγνωση ή αλλαγή). Πριν από την εκτέλεση μιας λειτουργίας στο αντικείμενο r, η συναλλαγή T1 εκτελεί τις ακόλουθες ενέργειες: Ελέγχει εάν η συναλλαγή T, η οποία σημάδεψε αυτό το αντικείμενο, έχει τελειώσει. Εάν το T έχει τελειώσει, το T1 επισημαίνει το αντικείμενο r και εκτελεί τη λειτουργία του. Εάν η συναλλαγή Τ δεν έχει ολοκληρωθεί, τότε η Τ1 ελέγχει εάν οι πράξεις βρίσκονται σε σύγκρουση. Εάν οι λειτουργίες δεν είναι σε σύγκρουση, η χρονική σήμανση με χαμηλότερη τιμή παραμένει ή επικολλάται στο αντικείμενο r και η συναλλαγή T1 εκτελεί τη λειτουργία της. Εάν οι πράξεις T1 και T έρχονται σε σύγκρουση, τότε εάν t(T) > t(T1) (δηλαδή, η συναλλαγή T είναι νεότερη από το T), το T επαναφέρεται και το T1 συνεχίζει. Αν t(T)< t(T1) (T "старше" T1), то T1 получает новую временную метку и начинается заново. К недостаткам метода временных меток относятся потенциально более частые откаты транзакций, чем в случае использования синхронизационных захватов. Это связано с тем, что конфликтность транзакций определяется более грубо. Кроме того, в распределенных системах не очень просто вырабатывать глобальные временные метки с отношением полного порядка.