Προβολή έναντι αποθηκευμένης διαδικασίας
Οι προβολές και οι αποθηκευμένες διαδικασίες είναι δύο τύποι αντικειμένων βάσης δεδομένων. Οι προβολές είναι ένα είδος αποθηκευμένων ερωτημάτων, τα οποία συλλέγουν δεδομένα από έναν ή περισσότερους πίνακες. Εδώ, είναι η σύνταξη για τη δημιουργία μιας προβολής
δημιουργία ή αντικατάσταση ονόματος προβολής
ως
select_statement;
Μια αποθηκευμένη διαδικασία είναι ένα προ-μεταγλωττισμένο σύνολο εντολών SQL, το οποίο αποθηκεύεται στον διακομιστή βάσης δεδομένων. Κάθε αποθηκευμένη διαδικασία έχει ένα όνομα κλήσης, το οποίο χρησιμοποιείται για την κλήση τους μέσα σε άλλα πακέτα, διαδικασίες και συναρτήσεις. Αυτή είναι η σύνταξη (στο ORACLE) για τη δημιουργία μιας αποθηκευμένης διαδικασίας, δημιουργία ή αντικατάσταση ονόματος διαδικασίας (παράμετροι)
είναι
αρχή
statements;
εξαίρεση
εξαίρεση_χειρισμός
τέλος;
Προβολή
Η προβολή λειτουργεί ως εικονικός πίνακας. Κρύβει μια επιλεγμένη δήλωση μέσα στο σώμα του. Αυτή η δήλωση επιλογής μπορεί να είναι πολύ περίπλοκη, η οποία λαμβάνει δεδομένα από πολλούς πίνακες και προβολές. Επομένως, με άλλα λόγια, μια προβολή είναι μια πρόταση επιλογής με όνομα, η οποία αποθηκεύεται στη βάση δεδομένων. Μια προβολή μπορεί να χρησιμοποιηθεί για να κρύψει τη λογική πίσω από τις σχέσεις του πίνακα από τους τελικούς χρήστες. Δεδομένου ότι μια προβολή είναι αποτέλεσμα ενός αποθηκευμένου ερωτήματος, δεν διατηρεί δεδομένα. Συλλέγει δεδομένα από τους πίνακες βάσης και δείχνει. Οι προβολές παίζουν επίσης σημαντικό ρόλο στην ασφάλεια των δεδομένων. Όταν ο κάτοχος του πίνακα χρειάζεται να εμφανίσει μόνο ένα σύνολο δεδομένων στους τελικούς χρήστες, η δημιουργία μιας προβολής είναι μια καλή λύση. Οι προβολές μπορούν να χωριστούν σε δύο κατηγορίες
- Προβολές με δυνατότητα ενημέρωσης (Προβολές που μπορούν να χρησιμοποιηθούν για INSERT, UPDATE και DELETE)
- Προβολές που δεν μπορούν να ενημερωθούν (Προβολές που δεν μπορούν να χρησιμοποιηθούν για INSERT, UPDATE και DELETE)
Οι ενημερωμένες προβολές δεν μπορούν να περιλαμβάνουν παρακάτω, Σετ τελεστών (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Συναρτήσεις συγκεντρωτικών ομάδων (AVG, COUNT, MAX, MIN, SUM, κ.λπ.)
GROUP BY Clauuse
ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ ρήτρα
ΣΥΝΔΕΣΗ ΜΕ ρήτρα
START ΜΕ ρήτρα
Έκφραση συλλογής σε λίστα επιλογής
Υπό ερώτημα σε Λίστα επιλογής
Ερώτημα συμμετοχής
Αποθηκευμένη διαδικασία
Οι αποθηκευμένες διαδικασίες ονομάζονται μπλοκ προγραμματισμού. Πρέπει να έχουν ένα όνομα. Οι αποθηκευμένες διαδικασίες δέχονται παραμέτρους ως είσοδο από τον χρήστη και επεξεργάζονται σύμφωνα με τη λογική πίσω από τη διαδικασία και δίνουν το αποτέλεσμα (ή εκτελούν μια συγκεκριμένη ενέργεια). Οι δηλώσεις μεταβλητών, οι εκχωρήσεις μεταβλητών, οι δηλώσεις ελέγχου, οι βρόχοι, τα ερωτήματα SQL και άλλες συναρτήσεις/διαδικασίες/κλήσεις πακέτων μπορούν να βρίσκονται μέσα στο σώμα των διαδικασιών.
Ποια είναι η διαφορά μεταξύ Προβολής και Αποθηκευμένης Διαδικασίας;
Ας δούμε τις διαφορές μεταξύ αυτών των δύο.
• Οι προβολές λειτουργούν ως εικονικοί πίνακες. Μπορούν να χρησιμοποιηθούν απευθείας από το κλείσιμο των ερωτημάτων SQL (επιλογή), αλλά οι διαδικασίες δεν μπορούν να χρησιμοποιηθούν από το κλείσιμο των ερωτημάτων.
• Οι προβολές έχουν ως σώμα μόνο μια εντολή επιλογής, αλλά οι διαδικασίες μπορούν να έχουν ως σώμα δηλώσεις μεταβλητών, εκχωρήσεις μεταβλητών, δηλώσεις ελέγχου, βρόχους, ερωτήματα SQL και άλλες συναρτήσεις/διαδικασίες/κλήσεις πακέτου.
• Η διαδικασία δέχεται παραμέτρους για εκτέλεση, αλλά οι προβολές δεν θέλουν να εκτελεστούν οι παράμετροι.
• Οι τύποι εγγραφών μπορούν να δημιουργηθούν από προβολές που χρησιμοποιούν % ROWTYPE, αλλά χρησιμοποιώντας διαδικασίες, δεν μπορούν να δημιουργηθούν τύποι εγγραφών.
• Οι υποδείξεις SQL μπορούν να χρησιμοποιηθούν μέσα στη δήλωση επιλογής προβολής, για τη βελτιστοποίηση του σχεδίου εκτέλεσης, αλλά οι υποδείξεις SQL δεν μπορούν να χρησιμοποιηθούν σε αποθηκευμένες διαδικασίες.
• ΔΙΑΓΡΑΦΗ, ΕΙΣΑΓΩΓΗ, ΕΝΗΜΕΡΩΣΗ, SELECT, FLASHBACK και DEBUG μπορούν να παραχωρηθούν σε προβολές, αλλά μόνο EXECUTE και DEBUG μπορούν να εκχωρηθούν στις διαδικασίες.