Πίνακας περιεχομένων:
- Η ενεργοποίηση της ενεργοποίησης βάσεων δεδομένων
- Σάρωση με ταχύτητα
- Κρατώντας την πλευρά του διακομιστή κώδικα
Βίντεο: DDL, DML, DCL & TCL statements in SQL (Database basics) 2024
Το PL / SQL είναι η γλώσσα που πρέπει να χρησιμοποιήσετε κατά την εγγραφή κώδικα που βρίσκεται στη βάση δεδομένων. Στο ακόλουθο άρθρο, θα δείτε διαφορετικές καταστάσεις στις οποίες θα βρείτε χρήσιμο PL / SQL.
Η ενεργοποίηση της ενεργοποίησης βάσεων δεδομένων
Η ενεργοποίηση είναι ένα συμβάν εντός του ΣΔΒΔ που μπορεί να προκαλέσει την εκτέλεση κάποιου κώδικα αυτόματα. Υπάρχουν τέσσερις τύποι ενεργοποιήσεων βάσης δεδομένων:
- Οι ενεργοποιητές επιπέδου επιπέδου μπορούν να ενεργοποιήσουν τη δραστηριότητα πριν ή μετά από ένα συμβάν INSERT, UPDATE ή DELETE. Αυτά χρησιμοποιούνται συνηθέστερα για την παρακολούθηση των πληροφοριών ιστορικού και των αλλαγών της βάσης δεδομένων, για τη διατήρηση συγχρονισμένων δεδομένων ή για την ενίσχυση της ασφάλειας, εμποδίζοντας την εμφάνιση ορισμένων λειτουργιών.
- Τα επίπεδα ενεργοποίησης στο επίπεδο προβολής είναι πολύ χρήσιμα. Μια προβολή είναι μια αποθηκευμένη δήλωση SQL, στην οποία οι προγραμματιστές μπορούν να υποβάλουν ερώτημα σαν να ήταν ένας ίδιος πίνακας βάσης δεδομένων. Τοποθετώντας INSTEAD OF trigger σε μια προβολή, οι εντολές INSERT, MODIFY και DELETE μπορούν να εφαρμοστούν στην προβολή ανεξάρτητα από την πολυπλοκότητά τους, επειδή το INSTEAD OF trigger καθορίζει τι μπορεί να γίνει στην προβολή.
- Οι ενεργοποιήσεις επιπέδου βάσης δεδομένων μπορούν να ενεργοποιηθούν κατά την εκκίνηση και τον τερματισμό λειτουργίας. Για παράδειγμα, όταν ξεκινά η βάση δεδομένων, μπορεί να θέλετε να ελέγξετε τη διαθεσιμότητα άλλων βάσεων δεδομένων ή υπηρεσιών Web. Πριν από τη διακοπή μιας βάσης δεδομένων, ίσως θέλετε να ενημερώσετε άλλες βάσεις δεδομένων και υπηρεσίες Web ότι η βάση δεδομένων είναι εκτός σύνδεσης.
- Οι ενεργοποιήσεις επιπέδου περιόδου λειτουργίας μπορούν να χρησιμοποιηθούν για την αποθήκευση συγκεκριμένων πληροφοριών. Για παράδειγμα, όταν ένας χρήστης συνδεθεί ή απενεργοποιηθεί, μπορεί να θέλετε να εκτελέσετε κώδικα που περιέχει τις προτιμήσεις του χρήστη και να τα φορτώσετε στη μνήμη για γρήγορη πρόσβαση. Όταν κλείσει η περίοδος λειτουργίας, μια σκανδάλη μπορεί να αποθηκεύσει τις προτιμήσεις για μελλοντική χρήση.
Σάρωση με ταχύτητα
Όταν γράφετε κώδικα, είναι χρήσιμη η δυνατότητα να πληκτρολογείτε ένα τμήμα κώδικα και να το εκτελείτε χωρίς να τον αποθηκεύσετε στη βάση δεδομένων. Η Oracle παρέχει αυτή τη δυνατότητα, η οποία υποστηρίζεται από όλους τους IDE PL / SQL.
Κρατώντας την πλευρά του διακομιστή κώδικα
Η πλειοψηφία του κώδικα PL / SQL αποθηκεύεται ως μονάδες προγράμματος στο διακομιστή. Μια τυπική εφαρμογή έχει πολλές γραμμές κώδικα.
Ορισμένοι προγραμματιστές, ειδικά προγραμματιστές στο Web που εργάζονται στο J2EE ή. NET περιβάλλοντα, προσπαθήστε να γράψετε το μεγαλύτερο μέρος του κώδικα τους στον διακομιστή εφαρμογών στην Java (για προγραμματιστές J2EE) ή VB. NET (για προγραμματιστές.NET). Αυτό δεν είναι καλή πρακτική. Σε μια εφαρμογή βάσης δεδομένων, ένα μεγάλο μέρος της λογικής είναι αφιερωμένο στην ανάκτηση και την ενημέρωση των πληροφοριών. Εάν ο κώδικας για την εκτέλεση αυτής της εργασίας βρίσκεται σε έναν διακομιστή εφαρμογών, πρέπει να στείλει ένα αίτημα στη βάση δεδομένων μέσω ενός δικτύου. Στη συνέχεια, η βάση δεδομένων πρέπει να επεξεργαστεί το αίτημα και να στείλει τις πληροφορίες πίσω στο δίκτυο για την επεξεργασία της εφαρμογής.Επειδή τα δίκτυα και οι υπολογιστές είναι τώρα πολύ γρήγοροι, ίσως να πιστεύετε ότι αυτό θα πάρει μόνο κλάσματα του δευτερολέπτου. Αν και αυτό συμβαίνει για ένα μόνο αίτημα, αν μια πολύ περίπλοκη εφαρμογή απαιτεί εκατομμύρια ή ακόμα και εκατοντάδες εκατομμύρια αλληλεπιδράσεις με τη βάση δεδομένων, ο πολλαπλασιασμός του αριθμού των αλληλεπιδράσεων ανά κλάσματα του δευτερολέπτου μπορεί να οδηγήσει σε πολύ κακή απόδοση.
Ακόμα και σχετικά απλές λειτουργίες που απαιτούν μόνο λίγες αιτήσεις βάσης δεδομένων μπορεί να είναι προβληματικές εάν η εφαρμογή έχει πρόσβαση εκατοντάδες, χιλιάδες ή δεκάδες χιλιάδες χρήστες ταυτόχρονα. Είναι πολύ πιο δύσκολο να δημιουργηθεί μια εφαρμογή με μεγάλη ένταση βάσης δεδομένων χωρίς να χρησιμοποιηθεί κωδικοποίηση από την πλευρά του διακομιστή από ό, τι είναι να γράψετε όλο τον κώδικα για να τρέξετε σε ένα διακομιστή εφαρμογών.
Ένα από τα επιχειρήματα κατά της σύνταξης κώδικα από την πλευρά του διακομιστή είναι ότι η εφαρμογή δεν θα είναι φορητή (δεν μπορεί να μετακινηθεί από μια πλατφόρμα σε άλλη). Ωστόσο, οι περισσότεροι οργανισμοί που χρησιμοποιούν την Oracle την χρησιμοποιούν για πολύ μεγάλο χρονικό διάστημα (δέκα ή περισσότερα χρόνια) και δεν προτίθενται να στραφούν σε διαφορετική πλατφόρμα. Επίσης, η ανάπτυξη ιστού βρίσκεται σε κατάσταση ταχείας ροής. Οι οργανώσεις συχνά αλλάζουν μεταξύ τους. NET, J2EE και άλλα περιβάλλοντα για την ανάπτυξη εφαρμογών που βασίζονται στο Web.
Τόσο το. Τα περιβάλλοντα NET και J2EE βρίσκονται επίσης σε ροή. Στο περιβάλλον J2EE, το βιομηχανικό πρότυπο για ανάπτυξη στο Web πριν από περίπου ένα χρόνο ήταν η δημιουργία σελίδων JavaServer (JSPs). Επί του παρόντος, το βιομηχανικό πρότυπο πρόκειται να λειτουργήσει στο περιβάλλον JSP / Struts. Τον επόμενο χρόνο περίπου, το JavaServer Faces (JSFs) πιθανότατα θα γίνει το βιομηχανικό πρότυπο. Επομένως, ο κώδικας που έχει εγγραφεί στο μεσαίο επίπεδο διατρέχει υψηλό κίνδυνο να χρειάζεται να ξαναγραφεί στο μέλλον.
Ο κώδικας της πλευράς του διακομιστή εκτελείται γρηγορότερα, είναι ευκολότερος στη συντήρηση και δοκιμή και είναι λιγότερο επιρρεπής σε αλλαγή από τον κώδικα που τοποθετείται στη μεσαία βαθμίδα. Επομένως, η δημιουργία σημαντικών τμημάτων μιας εφαρμογής στη βάση δεδομένων είναι μια καλύτερη προσέγγιση.
Υπάρχουν ορισμένες θέσεις όπου μπορείτε να γράψετε κώδικα που μπορούν να χρησιμοποιήσουν οι εφαρμογές σας:
- Τμήματα εφαρμογών: Οι μονάδες PL / SQL μπορούν να επιστρέψουν ένα σύνολο τιμών (λειτουργίες) ή ρουτίνες PL / SQL μπορεί να εκτελέσει λειτουργίες βάσης δεδομένων (διαδικασίες). Αυτές οι λειτουργίες και οι διαδικασίες μπορούν να καλούνται από άλλες λειτουργίες και διαδικασίες ή (στην περίπτωση λειτουργιών) που χρησιμοποιούνται σε δηλώσεις SQL. Οι ρουτίνες PL / SQL μπορεί να είναι τόσο μεγάλες και περίπλοκες όσο χρειάζεστε. Ορισμένες σύνθετες ρουτίνες μπορεί να περιέχουν χιλιάδες γραμμές κώδικα. Ολόκληρα συστήματα μπορεί να περιέχουν εκατομμύρια γραμμές κώδικα.
- Κωδικός PL / SQL ενσωματωμένος στις προβολές: Η Oracle σάς επιτρέπει να ενσωματώσετε κώδικα σε προβολές βάσης δεδομένων. Ο κώδικας μπορεί να βρίσκεται στην πραγματικότητα σε ένα από τα δύο μέρη της προβολής. Κατ 'αρχάς, μπορείτε να τοποθετήσετε σωστά επεξεργασμένες λειτουργίες που επιστρέφουν μια τιμή στο τμήμα SELECT μιας εντολής SQL για να ανακτήσετε πρόσθετες πληροφορίες, οι οποίες μπορεί να είναι ή να μην αποτελούν μέρος των ερωτηθέντων πινάκων. Μπορείτε επίσης να ενσωματώσετε το PL / SQL στο INSTEAD OF trigger σε μια προβολή. Αυτές οι ενεργοποιήσεις σας επιτρέπουν να πραγματοποιείτε εργασίες INSERT, UPDATE και DELETE σε πολύπλοκες προβολές, με το PL / SQL να χειρίζεται προγραμματιστικά τον τρόπο χειρισμού αυτών των λειτουργιών.
- ρουτίνες παρτίδας: ρουτίνες παρτίδας τρέχουν κώδικα που επεξεργάζεται ταυτόχρονα έναν μεγάλο αριθμό εγγραφών. Η δημιουργία τιμολογίων για κάθε πελάτη σε ένα σύστημα ή η επεξεργασία μισθοδοτικών ελέγχων για ολόκληρο τον οργανισμό είναι παραδείγματα ρουτινών παρτίδας. Αυτές οι ρουτίνες είναι συνήθως μεγάλες, σύνθετες και βαριές στις βάσεις δεδομένων. Αυτός ο τύπος ρουτίνας θα πρέπει ασφαλώς να γράφεται σε PL / SQL.