डेटाबेस दृश्य अंतिम-उपयोगकर्ता अनुभव की जटिलता को कम करते हैं और डेटाबेस तालिकाओं में निहित डेटा तक उपयोगकर्ताओं की पहुंच को सीमित करते हैं। अनिवार्य रूप से, एक दृश्य a. के परिणामों का उपयोग करता है डेटाबेस क्वेरी वर्चुअल डेटाबेस तालिका की सामग्री को गतिशील रूप से पॉप्युलेट करने के लिए।
दृश्यों का उपयोग क्यों करें?
उपयोगकर्ताओं को डेटाबेस तालिकाओं तक सीधी पहुँच प्रदान करने के बजाय उन्हें विचारों के माध्यम से डेटा तक पहुँच प्रदान करने के दो प्राथमिक कारण हैं:
- दृश्य सरल, बारीक सुरक्षा प्रदान करते हैं. उस डेटा को सीमित करने के लिए दृश्य का उपयोग करें जिसे उपयोगकर्ता को तालिका में देखने की अनुमति है। उदाहरण के लिए, यदि आपके पास एक कर्मचारी तालिका है और आप कुछ उपयोगकर्ताओं को पूर्णकालिक कर्मचारियों के रिकॉर्ड तक पहुंच प्रदान करना चाहते हैं, तो आप एक ऐसा दृश्य बना सकते हैं जिसमें केवल वे रिकॉर्ड हों। यह विकल्प (छाया तालिका बनाना और बनाए रखना) की तुलना में बहुत आसान है और डेटा की अखंडता को सुनिश्चित करता है।
- दृश्य उपयोगकर्ता अनुभव को सरल बनाते हैं. दृश्य आपके डेटाबेस तालिकाओं के जटिल विवरण को अंतिम-उपयोगकर्ताओं से छिपाते हैं, जिन्हें उन्हें देखने की आवश्यकता नहीं होती है। यदि कोई उपयोगकर्ता किसी दृश्य की सामग्री को डंप करता है, तो उन्हें वे तालिका स्तंभ दिखाई नहीं देंगे जो दृश्य द्वारा चयनित नहीं हैं और हो सकता है कि वे समझ न सकें। यह उन्हें खराब नाम वाले कॉलम, विशिष्ट पहचानकर्ताओं और. के कारण होने वाले भ्रम से बचाता है टेबल कीज़.
एक दृश्य बनाना
एक दृश्य बनाना काफी सरल है: बस एक क्वेरी बनाएं जिसमें वे प्रतिबंध हों जिन्हें आप लागू करना चाहते हैं और इसे क्रिएट व्यू कमांड के अंदर रखें। यहाँ सामान्य सिंटैक्स है:
व्यू नाम AS. बनाएं
उदाहरण के लिए, पूर्णकालिक कर्मचारी का दृष्टिकोण बनाने के लिए, निम्न आदेश जारी करें:
क्रिएट व्यू फुलटाइम AS
प्रथम_नाम, अंतिम_नाम, कर्मचारी_आईडी चुनें
कर्मचारियों से
जहां स्थिति = 'एफटी';
एक दृश्य को संशोधित करना
किसी दृश्य की सामग्री को बदलना दृश्य के निर्माण के समान सटीक सिंटैक्स का उपयोग करता है, लेकिन दृश्य बनाएं कमांड के बजाय ALTER VIEW कमांड का उपयोग करें। उदाहरण के लिए, परिणामों में कर्मचारी के टेलीफोन नंबर को जोड़ने वाले पूर्णकालिक दृश्य पर प्रतिबंध जोड़ने के लिए, निम्न आदेश जारी करें:
ALTER देखें पूर्णकालिक AS
प्रथम_नाम, अंतिम_नाम, कर्मचारी_आईडी, टेलीफोन चुनें
कर्मचारियों से
जहां स्थिति = 'एफटी';
एक दृश्य हटाना
DROP VIEW कमांड का उपयोग करके डेटाबेस से किसी दृश्य को हटाना आसान है। उदाहरण के लिए, पूर्णकालिक कर्मचारी के विचार को हटाने के लिए, निम्न आदेश का उपयोग करें:
ड्रॉप व्यू फुलटाइम;
दृश्य बनाम. भौतिक दृश्य
एक दृश्य एक आभासी तालिका है। ए भौतिक दृश्य क्या वही दृश्य डिस्क पर लिखा जाता है और उस तक पहुँचा जाता है जैसे कि वह अपने आप में एक तालिका हो।
जब आप किसी दृश्य के विरुद्ध कोई क्वेरी चलाते हैं, तो दृश्य को स्रोत करने वाली द्वितीयक क्वेरी रीयल-टाइम निष्पादित होती है और फिर वे परिणाम मूल मुख्य क्वेरी में वापस फीड हो जाते हैं। यदि आपके विचार असाधारण रूप से जटिल हैं, या आपकी मुख्य क्वेरी के लिए कई तालिकाओं और दृश्यों के बीच बड़ी संख्या में हैश जॉइन की आवश्यकता है, तो आपकी मुख्य क्वेरी कछुए की गति से निष्पादित होगी।
एक भौतिक दृश्य क्वेरी निष्पादन को गति देता है क्योंकि यह डिस्क पर लिखी गई पूर्व-संकलित क्वेरी के रूप में कार्य करता है और इसलिए तालिका के रूप में जल्दी से निष्पादित होता है। हालाँकि, भौतिक विचार केवल उतने ही अच्छे होते हैं जितने कि ईवेंट प्रक्रियाएं जो उन्हें ताज़ा करती हैं। लंबे समय में, अच्छे रखरखाव के साथ, भौतिक दृश्य चीजों को गति देते हैं, लैग रिफ्रेश समय में एक छोटे से ट्रेड-ऑफ के साथ, बिना छाया तालिकाओं के एक समूह की आवश्यकता है जो निष्क्रिय हो सकते हैं और या तो डिस्क स्थान खा सकते हैं या किसी और के प्रश्नों को स्रोत कर सकते हैं अनुपयुक्त।