परिचय
डेटाबेस कई आधुनिक अनुप्रयोगों और उपकरणों के लिए आवश्यक घटक हैं। एक उपयोगकर्ता के रूप में, जब आप वेबसाइटों पर जाते हैं, अपने फोन पर एप्लिकेशन का उपयोग करते हैं, या किराने की दुकान पर आइटम खरीदते हैं, तो आप हर दिन दर्जनों या सैकड़ों डेटाबेस से बातचीत कर सकते हैं। एक डेवलपर के रूप में, डेटाबेस आपके एप्लिकेशन के जीवनकाल से परे डेटा को बनाए रखने के लिए उपयोग किए जाने वाले मुख्य घटक हैं। लेकिन वास्तव में डेटाबेस क्या हैं और वे इतने सामान्य क्यों हैं?
इस लेख में, हम जानेंगे:
- डेटाबेस क्या हैं
- विभिन्न प्रकार के डेटा पर नज़र रखने के लिए लोगों और एप्लिकेशन द्वारा उनका उपयोग कैसे किया जाता है
- डेटाबेस क्या सुविधाएँ प्रदान करता है
- वे किस प्रकार की गारंटी देते हैं
- डेटा संग्रहण के अन्य तरीकों की तुलना में वे कैसे हैं
अंत में, हम इस बात पर चर्चा करेंगे कि कैसे एप्लिकेशन जटिल कार्यक्षमता को सक्षम करने के लिए डेटा को संग्रहीत करने और पुनर्प्राप्त करने के लिए डेटाबेस पर निर्भर करते हैं।
डेटाबेस क्या हैं?
डेटाबेस तार्किक संरचनाएं हैं जिनका उपयोग भविष्य के प्रसंस्करण, पुनर्प्राप्ति या मूल्यांकन के लिए डेटा को व्यवस्थित और संग्रहीत करने के लिए किया जाता है। कंप्यूटर के संदर्भ में, इन संरचनाओं को लगभग हमेशा एक अनुप्रयोग द्वारा प्रबंधित किया जाता है जिसे डेटाबेस प्रबंधन प्रणाली . कहा जाता है या डीबीएमएस . DBMS कंप्यूटर की डिस्क पर समर्पित फ़ाइलों का प्रबंधन करता है और उपयोगकर्ताओं और अनुप्रयोगों के लिए एक तार्किक इंटरफ़ेस प्रस्तुत करता है।
डेटाबेस प्रबंधन प्रणाली को आमतौर पर एक विशिष्ट पैटर्न के अनुसार डेटा को व्यवस्थित करने के लिए डिज़ाइन किया गया है। ये पैटर्न, जिन्हें डेटाबेस प्रकार . कहा जाता है या डेटाबेस मॉडल, तार्किक और संरचनात्मक नींव हैं जो यह निर्धारित करते हैं कि डेटा के अलग-अलग टुकड़े कैसे संग्रहीत और प्रबंधित किए जाते हैं। कई अलग-अलग डेटाबेस प्रकार हैं, जिनमें से प्रत्येक के अपने फायदे और सीमाएं हैं। रिलेशनल मॉडल , जो डेटा को क्रॉस-संदर्भित तालिकाओं, पंक्तियों और स्तंभों में व्यवस्थित करता है, को अक्सर डिफ़ॉल्ट प्रतिमान माना जाता है।
डीबीएमएस डेटाबेस को कमांड लाइन क्लाइंट, एपीआई, प्रोग्रामिंग लाइब्रेरी और प्रशासनिक इंटरफेस सहित विभिन्न माध्यमों से सुलभ बना सकते हैं। इन चैनलों के माध्यम से, डेटा को सिस्टम में डाला जा सकता है, आवश्यकतानुसार व्यवस्थित किया जा सकता है, और अनुरोध के अनुसार वापस किया जा सकता है।
डेटा दृढ़ता बनाम अल्पकालिक संग्रहण
डेटाबेस डेटा को डिस्क या इन-मेमोरी पर स्टोर करते हैं।
डिस्क पर भंडारण को आमतौर पर स्थायी कहा जाता है , जिसका अर्थ है कि डेटा विश्वसनीय रूप से बाद के लिए सहेजा जाता है, भले ही डेटाबेस एप्लिकेशन या कंप्यूटर स्वयं पुनरारंभ हो।
इसके विपरीत, इन-मेमोरी स्टोरेज को अल्पकालिक . कहा जाता है या अस्थिर . अल्पकालिक भंडारण अनुप्रयोग या सिस्टम शटडाउन से नहीं बचता है। इन-मेमोरी डेटाबेस का लाभ यह है कि वे आम तौर पर बहुत तेज़ होते हैं।
व्यवहार में, कई वातावरण प्रत्येक प्रकार के लाभ प्राप्त करने के लिए इन दोनों प्रकार की प्रणालियों के मिश्रण का उपयोग करेंगे। उन प्रणालियों के लिए जो अल्पकालिक परत में नए लेखन को स्वीकार करते हैं, यह समय-समय पर अल्पकालिक डेटा को डिस्क पर सहेज कर पूरा किया जा सकता है। अन्य सिस्टम रीड एक्सेस को गति देने के लिए लगातार डेटा की रीड-ओनली इन-मेमोरी कॉपी का उपयोग करते हैं। ये सिस्टम अपने डेटा को रीफ़्रेश करने के लिए किसी भी समय बैकिंग स्टोरेज से डेटा को पुनः लोड कर सकते हैं।
बैकिंग स्टोरेज प्रकार | डेटा सर्वाइवल रीस्टार्ट होता है? | <थ>फायदेउदाहरण | |
---|---|---|---|
डिस्क पर | हां | डेटा दीर्घायु | MySQL |
इन-मेमोरी | नहीं | परिचालन गति | मेमकैश्ड |
अपने डेटा को प्रबंधित करने के लिए डेटाबेस के साथ सहभागिता करना
जबकि डेटाबेस सिस्टम इस बात का ध्यान रखता है कि डिस्क या इन-मेमोरी पर डेटा को कैसे स्टोर किया जाए, यह उपयोगकर्ताओं या एप्लिकेशन के लिए एक इंटरफ़ेस भी प्रदान करता है। डेटाबेस के लिए इंटरफेस उन संचालनों का प्रतिनिधित्व करने में सक्षम होना चाहिए जो बाहरी पक्ष प्रदर्शन कर सकते हैं और सिस्टम द्वारा समर्थित सभी डेटा प्रकारों का प्रतिनिधित्व करने में सक्षम होना चाहिए।
विकिपीडिया के अनुसार, डेटाबेस आमतौर पर निम्नलिखित चार प्रकार के इंटरैक्शन की अनुमति देते हैं:
- डेटा परिभाषा :डेटा की संरचना की परिभाषाएं बनाएं, संशोधित करें और निकालें। ये ऑपरेशन उन गुणों को बदलते हैं जो प्रभावित करते हैं कि डेटाबेस डेटा को कैसे स्वीकार और संग्रहीत करेगा। यह कुछ प्रकार के डेटाबेस में दूसरों की तुलना में अधिक महत्वपूर्ण है।
- अपडेट करें :डेटाबेस में डेटा डालें, संशोधित करें और हटाएं। ये ऑपरेशन प्रबंधित किए जा रहे वास्तविक डेटा को बदल देते हैं।
- पुनर्प्राप्ति :संग्रहीत डेटा तक पहुंच प्रदान करें। डेटा को इस रूप में पुनर्प्राप्त किया जा सकता है या इसे अधिक उपयोगी प्रारूप में मालिश करने के लिए अक्सर फ़िल्टर या परिवर्तित किया जा सकता है। कई डेटाबेस सिस्टम इसे प्राप्त करने के लिए समृद्ध क्वेरीिंग भाषाओं को समझते हैं।
- प्रशासन :अन्य कार्य जैसे उपयोगकर्ता प्रबंधन, सुरक्षा, प्रदर्शन निगरानी, आदि जो आवश्यक हैं लेकिन सीधे डेटा से संबंधित नहीं हैं।
आइए नीचे इन पर थोड़ा और विस्तार से विचार करें।
डेटा परिभाषाएं सिस्टम के भीतर डेटा के आकार और संरचना को नियंत्रित करती हैं
डेटाबेस के भीतर आपका डेटा जो संरचना लेगा उसे बनाना और नियंत्रित करना डेटाबेस प्रबंधन का एक महत्वपूर्ण हिस्सा है। इससे आपको अपने डेटा को सिस्टम में डालने से पहले उसके आकार या संरचना को नियंत्रित करने में मदद मिल सकती है। यह सुनिश्चित करने के लिए कि आपका डेटा कुछ मापदंडों का पालन करता है, आपको बाधाओं को स्थापित करने की भी अनुमति देता है।
डेटाबेस में जो अत्यधिक नियमित डेटा पर काम करते हैं, जैसे रिलेशनल डेटाबेस, इन परिभाषाओं को अक्सर डेटाबेस की स्कीमा के रूप में जाना जाता है। . एक डेटाबेस स्कीमा एक सख्त रूपरेखा है कि किसी विशेष डेटाबेस द्वारा स्वीकार किए जाने के लिए डेटा को कैसे स्वरूपित किया जाना चाहिए। इसमें विशिष्ट क्षेत्रों को शामिल किया गया है जो व्यक्तिगत रिकॉर्ड में मौजूद होना चाहिए और साथ ही डेटा प्रकार, फ़ील्ड लंबाई, न्यूनतम या अधिकतम मान आदि जैसे मूल्यों के लिए आवश्यकताएं शामिल हैं। डेटाबेस स्कीमा सबसे महत्वपूर्ण टूल में से एक है जिसे डेटाबेस मालिक को प्रभावित करना है और सिस्टम में संग्रहीत किए जाने वाले डेटा को नियंत्रित करें।
डेटाबेस प्रबंधन प्रणालियाँ जो नियमितता से अधिक लचीलेपन को महत्व देती हैं, उन्हें अक्सर स्कीमा-रहित डेटाबेस . के रूप में संदर्भित किया जाता है . हालांकि ऐसा लगता है कि इन डेटाबेस में संग्रहीत डेटा की कोई संरचना नहीं है, आमतौर पर ऐसा नहीं होता है। इसके बजाय, डेटाबेस की संरचना स्वयं डेटा और एप्लिकेशन के ज्ञान और डेटा के संबंध से निर्धारित होती है। डेटाबेस आमतौर पर अभी भी एक संरचना का पालन करता है, लेकिन डेटाबेस प्रबंधन प्रणाली बाधाओं को लागू करने में कम शामिल है। यह एक डिज़ाइन विकल्प है जिसमें स्थिति के आधार पर लाभ और नुकसान होते हैं।
सिस्टम से डेटा को निगलना, संशोधित करना और निकालने के लिए डेटा अपडेट h3>
डेटा अपडेट में कोई भी ऑपरेशन शामिल होता है:
- सिस्टम में नया डेटा दर्ज करता है
- मौजूदा प्रविष्टियों को संशोधित करता है
- डेटाबेस से प्रविष्टियां हटाता है
ये क्षमताएं किसी भी डेटाबेस के लिए आवश्यक हैं, और कई मामलों में, डेटाबेस सिस्टम द्वारा संसाधित की जाने वाली अधिकांश क्रियाओं का गठन करती हैं। इस प्रकार की गतिविधियाँ — संचालन जो सिस्टम में डेटा में परिवर्तन का कारण बनते हैं — सामूहिक रूप से लिखने के रूप में जाने जाते हैं संचालन।
समय के साथ बदलने वाले किसी भी डेटा स्रोत के लिए लेखन क्रियाएं महत्वपूर्ण हैं। यहां तक कि डेटा को हटाना, एक विनाशकारी कार्रवाई, एक लेखन ऑपरेशन माना जाता है क्योंकि यह सिस्टम के भीतर डेटा को संशोधित करता है।
चूंकि लेखन कार्य डेटा को बदल सकते हैं, इसलिए ये क्रियाएं संभावित रूप से खतरनाक हैं। अधिकांश डेटाबेस एडमिनिस्ट्रेटर आकस्मिक या दुर्भावनापूर्ण डेटा मैंगलिंग की संभावना को कम करने के लिए कुछ एप्लिकेशन प्रक्रियाओं में लिखने के संचालन को प्रतिबंधित करने के लिए अपने सिस्टम को कॉन्फ़िगर करते हैं। उदाहरण के लिए, डेटा विश्लेषण, जो किसी वेबसाइट के प्रदर्शन या विज़िटर के व्यवहार के बारे में सवालों के जवाब देने के लिए मौजूदा डेटा का उपयोग करता है, उसे केवल पढ़ने की अनुमति की आवश्यकता होती है। दूसरी ओर, उपयोगकर्ता के आदेशों को रिकॉर्ड करने वाले एप्लिकेशन के हिस्से को डेटाबेस में नया डेटा लिखने में सक्षम होना चाहिए।
जानकारी निकालने या विशिष्ट प्रश्नों के उत्तर देने के लिए डेटा पुनर्प्राप्त करना
डेटा संग्रहीत करना तब तक बहुत उपयोगी नहीं है जब तक आपके पास इसकी आवश्यकता होने पर इसे पुनर्प्राप्त करने का कोई तरीका न हो। चूंकि डेटा लौटाने से डेटाबेस में वर्तमान में संग्रहीत किसी भी जानकारी पर कोई प्रभाव नहीं पड़ता है, इन क्रियाओं को पढ़ें . कहा जाता है संचालन। डेटाबेस में पहले से संग्रहीत डेटा एकत्र करने का प्राथमिक तरीका रीड ऑपरेशंस हैं।
डेटाबेस प्रबंधन प्रणालियों में लगभग हमेशा एक विशिष्ट पहचानकर्ता द्वारा डेटा तक पहुँचने का एक सीधा तरीका होता है, जिसे अक्सर प्राथमिक कुंजी कहा जाता है। . यह कुंजी प्रदान करके किसी एक प्रविष्टि तक पहुंच की अनुमति देता है।
कई प्रणालियों में विशिष्ट मानदंडों से मेल खाने वाले डेटा सेट या प्रविष्टियों के बारे में आंशिक जानकारी वापस करने के लिए डेटाबेस को क्वेरी करने के परिष्कृत तरीके भी होते हैं। इस प्रकार की क्वेरी लचीलेपन से डेटाबेस प्रबंधन प्रणाली को इसकी बुनियादी डेटा भंडारण क्षमताओं के अलावा डेटा प्रोसेसर के रूप में संचालित करने में मदद मिलती है। विशिष्ट प्रश्नों को विकसित करके, उपयोगकर्ता डेटाबेस सिस्टम को केवल आवश्यक जानकारी वापस करने के लिए संकेत दे सकते हैं। इस विशेषता का उपयोग अक्सर लिखने के संचालन के साथ संयोजन के रूप में किया जाता है ताकि किसी विशिष्ट रिकॉर्ड को उसके गुणों द्वारा खोजा और संशोधित किया जा सके।
सब कुछ सुचारू रूप से चलने के लिए डेटाबेस सिस्टम का प्रशासन करना
कार्यों की अंतिम श्रेणी जिसका डेटाबेस अक्सर समर्थन करता है, वह है प्रशासनिक कार्य। यह क्रियाओं का एक व्यापक, सामान्य वर्ग है जो डेटा को सीधे प्रभावित किए बिना डेटाबेस वातावरण का समर्थन करने में मदद करता है। कुछ आइटम जो इस समूह में फिट हो सकते हैं उनमें शामिल हैं:
- उपयोगकर्ताओं, अनुमतियों, प्रमाणीकरण और प्राधिकरण को प्रबंधित करना
- बैकअप सेट करना और उनका रखरखाव करना
- भंडारण के लिए बैकिंग माध्यम को कॉन्फ़िगर करना
- प्रतिकृति और अन्य स्केलिंग विचारों को प्रबंधित करना
- ऑनलाइन और ऑफलाइन पुनर्प्राप्ति विकल्प प्रदान करना
कार्यों का यह सेट किसी भी आधुनिक अनुप्रयोग के लिए सामान्य बुनियादी प्रशासनिक चिंताओं के साथ संरेखित होता है।
प्रशासनिक संचालन कोर डेटा प्रबंधन कार्यक्षमता के लिए केंद्रीय नहीं हो सकता है, लेकिन ये क्षमताएं अक्सर समान डेटाबेस प्रबंधन प्रणालियों को अलग करती हैं। डेटा को आसानी से बैक अप लेने और पुनर्स्थापित करने में सक्षम होने के कारण, उपयोगकर्ता प्रबंधन को लागू करना जो मौजूदा सिस्टम में हुक करता है, या मांग को पूरा करने के लिए अपने डेटाबेस को स्केल करता है, उत्पादन में संचालन के लिए सभी आवश्यक विशेषताएं हैं। इन क्षेत्रों पर ध्यान देने में विफल रहने वाले डेटाबेस अक्सर वास्तविक दुनिया के वातावरण में अपनाने के लिए संघर्ष करते हैं।
डेटाबेस की क्या जिम्मेदारियां हैं?
उपरोक्त विवरण को देखते हुए, हम डेटाबेस की प्राथमिक जिम्मेदारियों को कैसे सामान्य कर सकते हैं? उत्तर उपयोग किए जा रहे डेटाबेस के प्रकार और आपके अनुप्रयोगों की आवश्यकताओं पर बहुत कुछ निर्भर करता है। फिर भी, जिम्मेदारियों का एक सामान्य समूह है जिसे सभी डेटाबेस प्रदान करना चाहते हैं।
विश्वसनीय रिकॉर्डिंग और पुनर्गठन के माध्यम से डेटा अखंडता की सुरक्षा करना
डेटा अखंडता एक डेटाबेस सिस्टम की एक मूलभूत आवश्यकता है, चाहे उसका उद्देश्य या डिज़ाइन कुछ भी हो। डेटाबेस में लोड किया गया डेटा अप्रत्याशित संशोधन, हेरफेर या मिटाए बिना भरोसेमंद रूप से पुनर्प्राप्त करने में सक्षम होना चाहिए। इसके लिए डेटा को लोड करने और पुनर्प्राप्त करने के विश्वसनीय तरीकों की आवश्यकता होती है, साथ ही डेटा को भौतिक मीडिया पर संग्रहीत करने के लिए आवश्यक रूप से क्रमबद्ध और deserializing की आवश्यकता होती है।
डेटाबेस अक्सर डेटा को सत्यापित करने के लिए सुविधाओं पर भरोसा करते हैं क्योंकि यह लिखा या पुनर्प्राप्त किया जाता है, जैसे चेकसमिंग, या अप्रत्याशित शटडाउन के कारण होने वाली समस्याओं से बचाने के लिए, उदाहरण के लिए राइट-फॉरवर्ड लॉग जैसी तकनीकों का उपयोग करना। डेटा अखंडता अधिक चुनौतीपूर्ण हो जाती है जितना अधिक डेटा स्टोर वितरित किया जाता है, क्योंकि सिस्टम के प्रत्येक भाग को प्रत्येक डेटा आइटम की वर्तमान वांछित स्थिति को प्रतिबिंबित करना चाहिए। जब भी सिस्टम में डेटा बदला जाता है, तो यह अक्सर अधिक मजबूत आवश्यकताओं और कई सदस्यों की प्रतिक्रियाओं के साथ प्राप्त किया जाता है।
ऐसे प्रदर्शन की पेशकश करना जो परिनियोजन परिवेश की आवश्यकताओं को पूरा करता हो
उपयोगी होने के लिए डेटाबेस को पर्याप्त रूप से प्रदर्शन करना चाहिए। आपको जिन प्रदर्शन विशेषताओं की आवश्यकता है, वे आपके अनुप्रयोगों की विशेष मांगों पर बहुत अधिक निर्भर करती हैं। प्रत्येक परिवेश में पढ़ने और लिखने के अनुरोधों का अद्वितीय संतुलन होता है और आपको यह तय करना होगा कि उन दोनों श्रेणियों के लिए स्वीकार्य प्रदर्शन का क्या अर्थ है।
डेटाबेस आम तौर पर दूसरों की तुलना में कुछ प्रकार के संचालन करने में बेहतर होते हैं। परिचालन प्रदर्शन विशेषताएँ अक्सर उपयोग किए गए डेटाबेस के प्रकार, डेटा स्कीमा या संरचना और स्वयं संचालन का प्रतिबिंब होती हैं। कुछ मामलों में, इंडेक्सिंग . जैसी सुविधाएं , जो आमतौर पर एक्सेस किए गए डेटा का एक वैकल्पिक प्रदर्शन-अनुकूलित स्टोर बनाता है, इन वस्तुओं के लिए तेजी से पुनर्प्राप्ति प्रदान कर सकता है। दूसरी बार, डेटाबेस अनुरोध किए जा रहे एक्सेस पैटर्न के लिए उपयुक्त नहीं हो सकता है। आपको किस प्रकार के डेटाबेस की आवश्यकता है, यह तय करते समय इस पर विचार करना चाहिए।
सुरक्षित समवर्ती पहुंच की अनुमति देने के लिए प्रक्रियाओं को सेट करना
हालांकि यह एक सख्त आवश्यकता नहीं है, व्यावहारिक रूप से बोलते हुए, डेटाबेस को समवर्ती पहुंच की अनुमति देनी चाहिए। इसका मतलब है कि कई पार्टियों को एक ही समय में डेटाबेस के साथ काम करने में सक्षम होना चाहिए। रिकॉर्ड एक ही समय में कितनी भी संख्या में उपयोगकर्ताओं द्वारा पठनीय और लिखने योग्य होने चाहिए जब वर्तमान में किसी अन्य उपयोगकर्ता द्वारा लॉक नहीं किया गया हो।
समवर्ती पहुंच का आमतौर पर मतलब है कि डेटाबेस को कुछ अन्य मूलभूत सुविधाओं जैसे उपयोगकर्ता खाते, एक अनुमति प्रणाली, और प्रमाणीकरण और प्राधिकरण तंत्र को लागू करना चाहिए। इसे कई उपयोगकर्ताओं को एक ही डेटा को एक साथ हेरफेर करने के प्रयास से रोकने के लिए रणनीति भी विकसित करनी चाहिए। इन चिंताओं को दूर करने के लिए अक्सर रिकॉर्ड लॉकिंग और लेनदेन लागू किए जाते हैं।
डेटा को अलग-अलग या समग्र रूप से पुनर्प्राप्त करना
डेटाबेस की मूलभूत जिम्मेदारियों में से एक अनुरोध पर डेटा पुनर्प्राप्त करने की क्षमता है। अनुरोध एकल रिकॉर्ड से जुड़े डेटा के अलग-अलग टुकड़ों के लिए हो सकते हैं, या उनमें कई अलग-अलग रिकॉर्ड में पाए गए डेटा को पुनर्प्राप्त करना शामिल हो सकता है। अधिकांश प्रणालियों में ये दोनों मामले संभव होने चाहिए।
अधिकांश डेटाबेस में, डेटा प्रोसेसिंग का कुछ स्तर डेटाबेस द्वारा ही पुनर्प्राप्ति के दौरान प्रदान किया जाता है। इनमें निम्नलिखित प्रकार के ऑपरेशन शामिल हो सकते हैं:
- मानदंड के आधार पर खोजना
- फ़िल्टर करना और बाधाओं का पालन करना
- विशिष्ट फ़ील्ड निकालना
- औसत, छँटाई, वगैरह.
ये विकल्प आपको इच्छित डेटा और सबसे उपयोगी प्रारूप को स्पष्ट करने में मदद करते हैं।
डेटाबेस के विकल्प
इससे पहले कि हम आगे बढ़ें, हमें संक्षेप में देखना चाहिए कि यदि आप डेटाबेस का उपयोग नहीं करते हैं तो आपके विकल्प क्या हैं।
डेटा स्टोर करने वाली अधिकांश विधियों को किसी प्रकार के डेटाबेस के रूप में वर्गीकृत किया जा सकता है। कुछ अपवादों में निम्नलिखित शामिल हैं।
स्थानीय मेमोरी या अस्थायी फाइल सिस्टम
कभी-कभी एप्लिकेशन ऐसे डेटा उत्पन्न करते हैं जो उपयोगी नहीं होते हैं या जो केवल एप्लिकेशन के जीवनकाल के लिए प्रासंगिक होते हैं। इन मामलों में, आप उस डेटा को मेमोरी में रखना चाहते हैं या इसे एक अस्थायी फाइल सिस्टम में लोड कर सकते हैं क्योंकि एप्लिकेशन के बाहर निकलने के बाद आपको इसकी आवश्यकता नहीं होगी। उन मामलों के लिए जहां डेटा कभी उपयोगी नहीं होता है, आप आउटपुट को पूरी तरह से अक्षम करना चाहते हैं या इसे /dev/null
पर लॉग इन कर सकते हैं। ।
एप्लिकेशन डेटा को सीधे स्थानीय फाइल सिस्टम में क्रमबद्ध करना
एक और उदाहरण जहां डेटाबेस की आवश्यकता नहीं हो सकती है, जहां डेटा की एक छोटी मात्रा को क्रमबद्ध और सीधे इसके बजाय deserialized किया जा सकता है। यह केवल अनुमानित उपयोग पैटर्न के साथ छोटी मात्रा में डेटा के लिए व्यावहारिक है जिसमें बहुत अधिक, यदि कोई हो, संगामिति शामिल नहीं है। यह अच्छी तरह से स्केल नहीं करता है लेकिन कुछ मामलों के लिए उपयोगी हो सकता है, जैसे स्थानीय लॉग जानकारी को आउटपुट करना।
फ़ाइल जैसी वस्तुओं को सीधे डिस्क या ऑब्जेक्ट-स्टोरेज में संग्रहित करना
कभी-कभी, एप्लिकेशन से डेटा डेटाबेस में संग्रहीत करने के बजाय सीधे डिस्क या वैकल्पिक स्टोर पर लिखा जा सकता है। उदाहरण के लिए, यदि डेटा पहले से ही एक फ़ाइल-उन्मुख प्रारूप में व्यवस्थित है, जैसे एक छवि या ऑडियो फ़ाइल, और इसके लिए अतिरिक्त मेटाडेटा की आवश्यकता नहीं है, तो इसे सीधे डिस्क या किसी समर्पित ऑब्जेक्ट स्टोर में संग्रहीत करना सबसे आसान हो सकता है।पी>
डेटाबेस का उपयोग किस लिए किया जाता है?
लगभग सभी एप्लिकेशन और वेबसाइटें जो पूरी तरह से स्थिर नहीं हैं, अपने वातावरण में कहीं न कहीं डेटाबेस पर निर्भर करती हैं। डेटाबेस का प्राथमिक उद्देश्य अक्सर उपयोग किए गए डेटाबेस के प्रकार, संग्रहीत डेटा और नियोजित एक्सेस पैटर्न को निर्धारित करता है। विभिन्न आवश्यकताओं के साथ विभिन्न प्रकार के डेटा को संभालने के लिए अक्सर कई डेटाबेस सिस्टम तैनात किए जाते हैं। कुछ डेटाबेस विभिन्न डेटा सेट की प्रकृति के आधार पर कई भूमिकाओं को पूरा करने के लिए पर्याप्त लचीले होते हैं।
आइए डेटाबेस के साथ एक विशिष्ट वेब एप्लिकेशन के टचपॉइंट पर चर्चा करने के लिए एक उदाहरण देखें। हम यह दिखावा करेंगे कि एप्लिकेशन में एक बुनियादी स्टोरफ्रंट है और यह उन आइटम्स को बेचता है जिन्हें वह एक इन्वेंट्री में ट्रैक करता है।
साइट डेटा का संग्रहण और संसाधन
डेटाबेस के लिए प्राथमिक उपयोगों में से एक साइट से संबंधित डेटा को संग्रहीत और संसाधित करना है। ये आइटम प्रभावित करते हैं कि साइट पर जानकारी कैसे व्यवस्थित होती है और, कई मामलों में, साइट की अधिकांश "सामग्री" का गठन करती है।
ऊपर उल्लिखित उदाहरण एप्लिकेशन में, डेटाबेस साइट के लिए उत्पाद जानकारी, इन्वेंट्री विवरण और उपयोगकर्ता प्रोफ़ाइल जानकारी सहित अधिकांश सामग्री को पॉप्युलेट करेगा। इसका मतलब यह है कि हर बार उत्पाद सूची, उत्पाद विवरण पृष्ठ, या उपयोगकर्ता प्रोफ़ाइल को प्रदर्शित करने की आवश्यकता होने पर डेटाबेस या कुछ मध्यस्थ कैश से परामर्श लिया जाएगा।
वर्तमान और पिछले आदेशों को प्रदर्शित करते समय, शिपिंग लागत की गणना करते समय, और डिस्काउंट कोड की जांच करके या लगातार ग्राहक पुरस्कारों की गणना करके छूट लागू करते समय एक डेटाबेस भी शामिल होगा। हमारी उदाहरण साइट उत्पाद जानकारी, इन्वेंट्री और उपयोगकर्ता जानकारी को मिलाकर ऑर्डर को सही ढंग से बनाने के लिए डेटाबेस सिस्टम का उपयोग करेगी। ऑर्डर में दर्ज की गई समग्र जानकारी ऑर्डर प्रोसेसिंग को ट्रैक करने, रिटर्न की अनुमति देने, ऑर्डर रद्द करने या संशोधित करने, या बेहतर ग्राहक सहायता सक्षम करने के लिए फिर से डेटाबेस में संग्रहीत की जाएगी।
बेहतर निर्णय लेने में सहायता के लिए जानकारी का विश्लेषण करना
अंतिम श्रेणी की कार्रवाइयाँ वेबसाइट की बुनियादी कार्यक्षमता से संबंधित थीं। हालांकि ये एप्लिकेशन परत की डेटा आवश्यकताओं को संभालने के लिए बहुत महत्वपूर्ण हैं, लेकिन ये पूरी तस्वीर का प्रतिनिधित्व नहीं करते हैं।
एक बार जब आपका वेब एप्लिकेशन उपयोगकर्ताओं को पंजीकृत करना और आदेशों को संसाधित करना शुरू कर देता है, तो आप शायद विस्तृत प्रश्नों के उत्तर देने में सक्षम होना चाहते हैं कि विभिन्न उत्पाद कैसे बिक रहे हैं, आपके सबसे अधिक लाभदायक उपयोगकर्ता कौन हैं, और कौन से कारक आपकी बिक्री को प्रभावित करते हैं। ये विश्लेषणात्मक प्रश्न हैं जिन्हें किसी भी समय आपके संगठन के रुझानों और प्रदर्शन के बारे में अप-टू-डेट इंटेलिजेंस इकट्ठा करने के लिए चलाया जा सकता है।
इस प्रकार के संचालन को अक्सर व्यावसायिक खुफिया . कहा जाता है या विश्लेषण . साथ में, वे संगठनों को यह समझने में मदद करते हैं कि अतीत में क्या हुआ था और सूचित परिवर्तन करने के लिए। डेटाबेस सिस्टम इन प्रक्रियाओं के दौरान उपयोग किए गए अधिकांश डेटा को संग्रहीत करता है और इसके बारे में सवालों के जवाब देने के लिए उपयुक्त टूलिंग या क्वेरी करने की क्षमता प्रदान करनी चाहिए।
हमारे उदाहरण एप्लिकेशन में, उत्पाद प्रवृत्तियों, उपयोगकर्ता पंजीकरण संख्याओं के बारे में सवालों के जवाब देने के लिए डेटाबेस से पूछताछ की जा सकती है, जो बताती है कि हम सबसे ज्यादा भेजते हैं, या हमारे सबसे वफादार उपयोगकर्ता कौन हैं। उत्पाद के प्रदर्शन को प्रभावित करने वाले कारकों को बेहतर ढंग से समझने और नियंत्रित करने के लिए इन अपेक्षाकृत बुनियादी प्रश्नों का उपयोग अधिक जटिल प्रश्नों को लिखने के लिए किया जा सकता है।
सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधित करना
नेटवर्क पर अन्य सॉफ़्टवेयर के लिए कॉन्फ़िगरेशन मानों के लिए कुछ प्रकार के डेटाबेस का उपयोग रिपॉजिटरी के रूप में किया जाता है। ये नेटवर्क पर कॉन्फ़िगरेशन मानों के लिए सच्चाई के केंद्रीय स्रोत के रूप में कार्य करते हैं। जैसे ही नई सेवाएं शुरू की जाती हैं, उन्हें कॉन्फ़िगरेशन डेटाबेस के नेटवर्क पते पर विशिष्ट कुंजी के मानों की जांच करने के लिए कॉन्फ़िगर किया गया है। यह आपको बूटस्ट्रैप सेवाओं के लिए आवश्यक सभी जानकारी एक स्थान पर संग्रहीत करने में सक्षम बनाता है।
बूटस्ट्रैपिंग के बाद, परिवर्तनों के लिए उनके कॉन्फ़िगरेशन से संबंधित कुंजियों को देखने के लिए एप्लिकेशन को कॉन्फ़िगर किया जा सकता है। यदि कोई परिवर्तन पाया जाता है, तो एप्लिकेशन नए कॉन्फ़िगरेशन का उपयोग करने के लिए स्वयं को पुन:कॉन्फ़िगर कर सकता है। इस प्रक्रिया को कभी-कभी एक प्रबंधन प्रक्रिया द्वारा व्यवस्थित किया जाता है जो समय के साथ नई सेवाओं के आने पर पुरानी सेवाओं को स्पिन करके नए मूल्यों को रोल आउट करती है, उपलब्धता बनाए रखने के लिए समय के साथ सक्रिय कॉन्फ़िगरेशन में बदलाव करती है।
हमारा एप्लिकेशन इस प्रकार के डेटाबेस का उपयोग हमारे संपूर्ण एप्लिकेशन वातावरण के लिए लगातार कॉन्फ़िगरेशन डेटा संग्रहीत करने के लिए कर सकता है। हमारे एप्लिकेशन सर्वर, वेब सर्वर, लोड बैलेंसर, मैसेजिंग क्यू, और बहुत कुछ को उनकी उत्पादन सेटिंग्स प्राप्त करने के लिए कॉन्फ़िगरेशन डेटाबेस को संदर्भित करने के लिए कॉन्फ़िगर किया जा सकता है। एप्लिकेशन के डेवलपर्स तब केंद्रीय स्थान में कॉन्फ़िगरेशन मानों को ट्वीव करके पर्यावरण के व्यवहार को संशोधित कर सकते हैं।
लॉग, ईवेंट और अन्य आउटपुट एकत्रित करना
सक्रिय रूप से अनुरोधों की सेवा करने वाले एप्लिकेशन चलाना बहुत अधिक आउटपुट उत्पन्न कर सकता है। इसमें लॉग फ़ाइलें, ईवेंट और अन्य आउटपुट शामिल हैं। इन्हें डिस्क या किसी अन्य अप्रबंधित स्थान पर लिखा जा सकता है, लेकिन यह उनकी उपयोगिता को सीमित करता है। डेटाबेस में इस प्रकार के डेटा को एकत्रित करने से कुछ अनपेक्षित होने पर या ऐतिहासिक प्रदर्शन के बारे में और जानने की आवश्यकता होने पर घटनाओं के साथ काम करना, स्पॉट पैटर्न और घटनाओं का विश्लेषण करना आसान हो जाता है।
हमारा उदाहरण एप्लिकेशन आसान विश्लेषण के लिए हमारे प्रत्येक सिस्टम से एक डेटाबेस में लॉग एकत्र कर सकता है। यदि हम समस्याओं के स्रोत का विश्लेषण करने का प्रयास करते हैं या समग्र रूप से अपने पर्यावरण के स्वास्थ्य को समझने की कोशिश करते हैं, तो इससे हमें घटनाओं के बीच संबंध खोजने में मदद मिल सकती है।
अलग से, हम एक समय श्रृंखला डेटाबेस . में अपने बुनियादी ढांचे और कोड द्वारा उत्पादित मीट्रिक एकत्र कर सकते हैं , एक डेटाबेस जिसे विशेष रूप से समय के साथ मूल्यों को ट्रैक करने के लिए डिज़ाइन किया गया है। इस डेटाबेस का उपयोग एप्लिकेशन के विकास और संचालन टीमों को प्रदर्शन, त्रुटि दर, आदि के बारे में जानकारी प्रदान करने के लिए वास्तविक समय की निगरानी और विज़ुअलाइज़ेशन टूल को शक्ति प्रदान करने के लिए किया जा सकता है।
डेटाबेस के साथ विभिन्न भूमिकाएं कैसे कार्य करती हैं?
डेटाबेस संगठनों के भीतर कई अलग-अलग भूमिकाओं के काम के लिए मौलिक हैं। छोटी टीमों में, एक या कुछ व्यक्ति विभिन्न भूमिकाओं के कर्तव्यों को पूरा करने के लिए जिम्मेदार हो सकते हैं। बड़ी कंपनियों में, इन जिम्मेदारियों को अक्सर समर्पित व्यक्तियों या टीमों द्वारा निष्पादित असतत भूमिकाओं में विभाजित किया जाता है।
डेटा आर्किटेक्ट
डेटा आर्किटेक्ट्स डेटाबेस सिस्टम की समग्र मैक्रो संरचना, अनुप्रयोगों और विकास टीमों के सामने आने वाले इंटरफेस, और संगठन की डेटा जरूरतों को पूरा करने के लिए आवश्यक अंतर्निहित प्रौद्योगिकियों और बुनियादी ढांचे के लिए जिम्मेदार हैं।
इस भूमिका में लोग आम तौर पर उपयुक्त डेटाबेस मॉडल और कार्यान्वयन पर निर्णय लेते हैं जिसका उपयोग विभिन्न अनुप्रयोगों के लिए किया जाएगा। वे विकल्पों की जांच, प्रौद्योगिकी पर निर्णय लेने, मौजूदा सिस्टम के साथ एकीकृत करने और संगठन के लिए एक व्यापक डेटा रणनीति विकसित करके डेटाबेस निर्णयों को लागू करने के लिए जिम्मेदार हैं। वे डेटा सिस्टम से समग्र रूप से निपटते हैं और विभिन्न परियोजनाओं के लिए डेटा मॉडल तय करने और उन्हें लागू करने में उनका हाथ होता है।
DBAs (डेटाबेस एडमिनिस्ट्रेटर)
डेटाबेस प्रशासक, या डीबीए, ऐसे व्यक्ति हैं जो डेटा सिस्टम को सुचारू रूप से चलाने के लिए जिम्मेदार हैं। वे नए डेटा सिस्टम की योजना बनाने, सॉफ़्टवेयर स्थापित करने और कॉन्फ़िगर करने, अन्य पार्टियों के लिए डेटाबेस सिस्टम स्थापित करने और प्रदर्शन के प्रबंधन के लिए जिम्मेदार हैं। वे अक्सर डेटाबेस को सुरक्षित रखने, समस्याओं के लिए इसकी निगरानी करने और उपयोग पैटर्न के लिए अनुकूलित करने के लिए सिस्टम में समायोजन करने के लिए भी जिम्मेदार होते हैं।
डेटाबेस प्रशासक व्यक्तिगत डेटाबेस सिस्टम के साथ-साथ प्रदर्शन को अधिकतम करने के लिए अंतर्निहित ऑपरेटिंग सिस्टम और हार्डवेयर के साथ उन्हें अच्छी तरह से कैसे एकीकृत करें, दोनों के विशेषज्ञ हैं। वे उन टीमों के साथ बड़े पैमाने पर काम करते हैं जो डेटाबेस का उपयोग क्षमता और प्रदर्शन को प्रबंधित करने और डेटाबेस सिस्टम के साथ समस्याओं का निवारण करने में टीमों की मदद करने के लिए करती हैं।
एप्लिकेशन डेवलपर
एप्लिकेशन डेवलपर कई अलग-अलग तरीकों से डेटाबेस के साथ इंटरैक्ट करते हैं। वे कई एप्लिकेशन विकसित करते हैं जो डेटाबेस के साथ बातचीत करते हैं। यह बहुत महत्वपूर्ण है क्योंकि ये लगभग हमेशा एकमात्र अनुप्रयोग होते हैं जो नियंत्रित करते हैं कि व्यक्तिगत उपयोगकर्ता या ग्राहक डेटाबेस सिस्टम द्वारा प्रबंधित डेटा के साथ कैसे इंटरैक्ट करते हैं। एप्लिकेशन डेवलपर्स के लिए प्रदर्शन, शुद्धता और विश्वसनीयता अविश्वसनीय रूप से महत्वपूर्ण हैं।
डेवलपर्स अपने डेटा को डिस्क पर बनाए रखने के लिए अपने अनुप्रयोगों से जुड़े डेटा संरचनाओं का प्रबंधन करते हैं। उन्हें ऐसे तंत्र का निर्माण या उपयोग करना चाहिए जो उनके प्रोग्रामिंग डेटा को डेटाबेस सिस्टम में मैप कर सकें ताकि घटक एक साथ सद्भाव में काम कर सकें। जैसे-जैसे एप्लिकेशन बदलते हैं, उन्हें डेटाबेस सिस्टम के भीतर डेटा और डेटा संरचनाओं को सिंक में रखना चाहिए। हम लेख में बाद में इस बारे में बात करेंगे कि डेवलपर डेटाबेस के साथ कैसे काम करते हैं।
SRE (साइट विश्वसनीयता इंजीनियर) और संचालन पेशेवर
एसआरई (साइट विश्वसनीयता इंजीनियर) और संचालन पेशेवर एक बुनियादी ढांचे और अनुप्रयोग विन्यास के नजरिए से डेटाबेस सिस्टम के साथ बातचीत करते हैं। वे अतिरिक्त क्षमता का प्रावधान करने, डेटाबेस सिस्टम को खड़ा करने, डेटाबेस कॉन्फ़िगरेशन को संगठनात्मक दिशानिर्देशों से मेल खाने, अपटाइम की निगरानी और बैक अप के प्रबंधन के लिए जिम्मेदार हो सकते हैं।
कई मायनों में, इन व्यक्तियों के पास डीबीए के साथ अतिव्यापी जिम्मेदारियां हैं, लेकिन केवल डेटाबेस पर केंद्रित नहीं हैं। संचालन स्टाफ यह सुनिश्चित करता है कि डेटाबेस सिस्टम सहित बाकी संगठन जिन अनुप्रयोगों पर भरोसा करते हैं, वे विश्वसनीय रूप से काम कर रहे हैं और कम से कम डाउनटाइम है।
बिजनेस इंटेलिजेंस और डेटा एनालिस्ट
व्यावसायिक खुफिया विभाग और डेटा विश्लेषक मुख्य रूप से उस डेटा में रुचि रखते हैं जो पहले से ही एकत्र किया गया है और डेटाबेस सिस्टम के भीतर उपलब्ध है। वे डेटा के भीतर रुझानों और पैटर्न के आधार पर अंतर्दृष्टि विकसित करने के लिए काम करते हैं ताकि वे भविष्य के प्रदर्शन की भविष्यवाणी कर सकें, संभावित परिवर्तनों पर संगठन को सलाह दे सकें, और मार्केटिंग और बिक्री जैसे अन्य विभागों के डेटा के बारे में सवालों के जवाब दे सकें।
डेटा विश्लेषक आम तौर पर डेटा सिस्टम के लिए केवल-पढ़ने के लिए उपयोग के साथ विशेष रूप से काम कर सकते हैं। उनके द्वारा चलाए जाने वाले प्रश्नों में अक्सर प्राथमिक अनुप्रयोगों द्वारा उपयोग किए जाने वाले की तुलना में नाटकीय रूप से भिन्न प्रदर्शन विशेषताएं होती हैं। इस वजह से, वे अक्सर डेटाबेस प्रतिकृतियों, या प्रतियों के साथ काम करते हैं, ताकि वे लंबे समय तक चलने वाली और प्रदर्शन गहन समग्र क्वेरी कर सकें जो अन्यथा प्राथमिक डेटाबेस सिस्टम के संसाधन उपयोग को प्रभावित कर सकती हैं।
मैं एक डेवलपर के रूप में डेटाबेस के साथ कैसे काम करूं?
तो आप वास्तव में एक एप्लिकेशन डेवलपर के रूप में डेटाबेस के साथ कैसे काम करते हैं? बुनियादी स्तर पर, यदि आपके एप्लिकेशन को स्थिति को प्रबंधित और जारी रखना है, तो डेटाबेस के साथ काम करना आपके कोड का एक महत्वपूर्ण हिस्सा होगा।
आपके एप्लिकेशन और डेटाबेस के बीच डेटा का अनुवाद
डेटाबेस के साथ संचार करने के लिए आपको मौजूदा इंटरफ़ेस बनाने या उपयोग करने की आवश्यकता होगी। आप नियमित नेटवर्किंग फ़ंक्शंस का उपयोग करके सीधे डेटाबेस से जुड़ सकते हैं, साधारण पुस्तकालयों का लाभ उठा सकते हैं, या उच्च-स्तरीय प्रोग्रामिंग लाइब्रेरी (जैसे क्वेरी बिल्डर्स या ओआरएम)।
ओआरएम , या ऑब्जेक्ट-रिलेशनल मैपर्स, मैपिंग लेयर्स हैं जो रिलेशनल डेटाबेस में पाए जाने वाले टेबल को ऑब्जेक्ट-ओरिएंटेड प्रोग्राम लैंग्वेज में उपयोग की जाने वाली कक्षाओं में अनुवाद करते हैं और इसके विपरीत। हालांकि यह अनुवाद अक्सर उपयोगी होता है, लेकिन यह कभी भी सही नहीं होता है। वस्तु-संबंधपरक प्रतिबाधा बेमेल संबंधपरक डेटाबेस और ऑब्जेक्ट-ओरिएंटेड प्रोग्राम डेटा की संरचना में अंतर के कारण होने वाले घर्षण का वर्णन करने के लिए इस्तेमाल किया जाने वाला शब्द है।
हालाँकि रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग दो विशिष्ट डिज़ाइन विकल्पों का वर्णन करते हैं, एप्लिकेशन और डेटाबेस लेयर के बीच अनुवाद की समस्या एक सामान्यीकृत है जो डेटाबेस प्रकार या प्रोग्रामिंग प्रतिमान की परवाह किए बिना मौजूद है। डेटाबेस अमूर्त परत इन दो संदर्भों के बीच अनुवाद करने की जिम्मेदारी वाले सॉफ़्टवेयर के लिए एक अधिक सामान्य शब्द है।
संरचनात्मक परिवर्तनों को डेटाबेस के साथ सिंक में रखना
एक महत्वपूर्ण तथ्य जो आप अपने अनुप्रयोगों को विकसित करते समय पाएंगे, वह यह है कि चूंकि डेटाबेस आपके कोडबेस के बाहर मौजूद है, इसलिए इसे आपके डेटा संरचना में परिवर्तनों से निपटने के लिए विशेष ध्यान देने की आवश्यकता है। यह समस्या कुछ डेटाबेस डिज़ाइनों में दूसरों की तुलना में अधिक प्रचलित है।
अपने डेटाबेस के साथ अपने एप्लिकेशन की डेटा संरचनाओं को सिंक्रोनाइज़ करने का सबसे आम तरीका एक प्रक्रिया है जिसे डेटाबेस माइग्रेशन कहा जाता है। या स्कीमा माइग्रेशन (दोनों को बोलचाल की भाषा में केवल प्रवास के रूप में जाना जाता है)। माइग्रेशन में आपके एप्लिकेशन के डेटा मॉडल के विकसित होने के साथ-साथ परिवर्तनों को प्रतिबिंबित करने के लिए आपके डेटाबेस की संरचना को अपडेट करना शामिल है। ये आमतौर पर फाइलों की एक श्रृंखला का रूप लेते हैं, प्रत्येक विकास के लिए एक, जिसमें डेटाबेस को नए प्रारूप में बदलने के लिए आवश्यक कथन होते हैं।
अपने डेटा तक पहुंच की रक्षा करना और इनपुट को सेनिटाइज करना
एक डेवलपर के रूप में डेटाबेस के साथ काम करते समय एक महत्वपूर्ण जिम्मेदारी यह सुनिश्चित करना है कि आपके एप्लिकेशन डेटा तक अनधिकृत पहुंच की अनुमति नहीं देते हैं। डेटा सुरक्षा कई हितधारकों के साथ एक व्यापक, बहुस्तरीय समस्या है। अंतत:, कुछ सुरक्षा कारणों की देखभाल करना आपका कर्तव्य होगा।
आपके एप्लिकेशन को नियमित कार्यों को करने के लिए आपके डेटाबेस तक विशेषाधिकार प्राप्त पहुंच की आवश्यकता होगी। For safety, the database's authorization framework can help restrict the type of operations your application can perform. However, you need to ensure that your application restricts those operations appropriately. For example, if your application manages user profile data, you have to prevent a user from manipulating that access to view or edit other users' information.
One specific challenge is sanitizing user input. Sanitizing input means taking special precautions when operating on any data provided by a user. There is a long history of malicious actors using normal user input mechanisms to trick applications into revealing sensitive data. Crafting your applications to protect against these scenarios is an important skill.
Conclusion
Databases are an indispensable component in modern application development. Storing and controlling the stateful information related to your application and its environment is an important responsibility that requires reliability, performance, and flexibility.
Fortunately, there are many different database options designed to fulfil the requirements of different types of applications. In our next article, we'll take an in-depth look at the different types of databases available and how they can be used to match different types of application requirements.