रिलेशनल डेटाबेस
एक रिलेशनल डेटाबेस डेटा के संबंधपरक मॉडल पर आधारित एक (आमतौर पर डिजिटल) डेटाबेस है, जैसा कि 1970 में ई.एफ. कॉड द्वारा प्रस्तावित किया गया था।[1]रिलेशनल डेटाबेस को बनाए रखने के लिए उपयोग की जाने वाली प्रणाली एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। डेटाबेस को क्वेरी करने और अपडेट करने के लिए कई रिलेशनल डेटाबेस सिस्टम SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) का उपयोग करने के विकल्प से लैस हैं।[2]
इतिहास
रिलेशनल डेटाबेस शब्द को सबसे पहले एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। 1970 में IBM में F. Codd। Codd ने अपने शोध पत्र A Relational Model of Data for Big Shared Data Banks में इस शब्द की शुरुआत की।[3] इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल से उनका क्या मतलब है। रिलेशनल डेटाबेस सिस्टम का गठन करने वाली एक प्रसिद्ध परिभाषा कॉड के 12 नियमों से बनी है। हालाँकि, रिलेशनल मॉडल का कोई भी व्यावसायिक कार्यान्वयन कॉड के सभी नियमों के अनुरूप नहीं है,[4] इसलिए यह शब्द धीरे-धीरे डेटाबेस सिस्टम के एक व्यापक वर्ग का वर्णन करने लगा है, जो कम से कम:
- उपयोगकर्ता को संबंध (डेटाबेस) के रूप में डेटा प्रस्तुत करें (सारणीबद्ध रूप में एक प्रस्तुति, यानी तालिका (डेटाबेस) के संग्रह के रूप में प्रत्येक तालिका में पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) का एक सेट होता है);
- सारणीबद्ध रूप में डेटा में हेरफेर करने के लिए रिलेशनल ऑपरेटर्स प्रदान करें।
1974 में, IBM ने एक प्रोटोटाइप RDBMS विकसित करने के लिए एक शोध परियोजना IBM System R का विकास शुरू किया।[5][6] RDBMS के रूप में बेची जाने वाली पहली प्रणाली मल्टिक्स रिलेशनल डेटा स्टोर (जून 1976) थी।[citation needed] Oracle डेटाबेस को 1979 में Relational Software, जो अब Oracle Corporation है, द्वारा जारी किया गया था।[7] Ingres (डेटाबेस) और IBM BS12 ने अनुसरण किया। RDBMS के अन्य उदाहरणों में IBM Db2, अनुकूली सर्वर एंटरप्राइज़ और IBM Informix शामिल हैं। 1984 में, Macintosh के लिए पहला RDBMS विकसित होना शुरू हुआ, कोड-नाम सिल्वर सर्फर, और 1987 में 4th डाइमेंशन (सॉफ्टवेयर) के रूप में जारी किया गया और आज 4D के रूप में जाना जाता है।[8] पहली प्रणालियाँ जो संबंधपरक मॉडल के अपेक्षाकृत विश्वसनीय कार्यान्वयन थीं:
- मिशिगन विश्वविद्यालय - माइक्रो रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (1969)[9]
- मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी (1971)[10]
- पीटरली में IBM यूके साइंटिफिक सेंटर - IBM IS1 (1970-72) और इसके उत्तराधिकारी, PRTV (1973-79)
RDBMS की सबसे आम परिभाषा एक ऐसा उत्पाद है जो डेटा को पंक्तियों और स्तंभों के संग्रह के रूप में प्रस्तुत करता है, भले ही यह संबंधपरक मॉडल पर सख्ती से आधारित न हो। इस परिभाषा के अनुसार, RDBMS उत्पाद आमतौर पर Codd के सभी 12 नियमों को लागू करते हैं लेकिन सभी को नहीं।
विचार के एक दूसरे स्कूल का तर्क है कि यदि कोई डेटाबेस कॉड के सभी नियमों (या संबंधपरक मॉडल पर वर्तमान समझ, जैसा कि क्रिस्टोफर जे. डेट, ह्यूग डार्वेन और अन्य द्वारा व्यक्त किया गया है) को लागू नहीं करता है, तो यह संबंधपरक नहीं है। कई सिद्धांतकारों और Codd के सिद्धांतों के अन्य सख्त अनुयायियों द्वारा साझा किया गया यह दृश्य, अधिकांश DBMS को गैर-संबंधपरक के रूप में अयोग्य घोषित कर देगा। स्पष्टीकरण के लिए, वे अक्सर कुछ RDBMSs को ट्रूली-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (TRDBMS) के रूप में संदर्भित करते हैं, दूसरों को स्यूडो-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (PRDBMS) नाम देते हैं। 2009 तक, अधिकांश व्यावसायिक संबंधपरक DBMS SQL को अपनी क्वेरी भाषा के रूप में नियोजित करते हैं।[11] वैकल्पिक क्वेरी भाषाओं को प्रस्तावित और कार्यान्वित किया गया है, विशेष रूप से 1996 से पहले QUEL क्वेरी भाषाओं का कार्यान्वयन।
रिलेशनल मॉडल
एक रिलेशनल मॉडल डेटा को कॉलम (डेटाबेस) और पंक्ति (डेटाबेस) की एक या अधिक तालिका (डेटाबेस) (या संबंध) में व्यवस्थित करता है, जिसमें प्रत्येक पंक्ति की पहचान करने वाली एक अनूठी कुंजी होती है। Rows को Record (कंप्यूटर विज्ञान) या tuples भी कहा जाता है।[12] कॉलम को एट्रिब्यूट भी कहा जाता है। आम तौर पर, प्रत्येक तालिका/संबंध एक इकाई प्रकार (जैसे ग्राहक या उत्पाद) का प्रतिनिधित्व करता है। पंक्तियाँ उस प्रकार की इकाई (जैसे ली या कुर्सी) के उदाहरणों का प्रतिनिधित्व करती हैं और कॉलम उस उदाहरण (जैसे पता या मूल्य) के लिए जिम्मेदार मूल्यों का प्रतिनिधित्व करते हैं।
उदाहरण के लिए, कक्षा तालिका की प्रत्येक पंक्ति एक वर्ग से मेल खाती है, और एक कक्षा कई छात्रों से मेल खाती है, इसलिए कक्षा तालिका और छात्र तालिका के बीच का संबंध एक से कई है[13]
कुंजी
तालिका में प्रत्येक पंक्ति की अपनी अनूठी कुंजी होती है। लिंक की गई पंक्ति की अनूठी कुंजी के लिए एक कॉलम जोड़कर तालिका में पंक्तियों को अन्य तालिकाओं में पंक्तियों से जोड़ा जा सकता है (ऐसे कॉलम को विदेशी कुंजियों के रूप में जाना जाता है)। कॉड ने दिखाया कि मनमाना जटिलता के डेटा संबंधों को अवधारणाओं के एक सरल सेट द्वारा दर्शाया जा सकता है।[citation needed] इस प्रसंस्करण के भाग में तालिका में एक और केवल एक पंक्ति को लगातार चुनने या संशोधित करने में सक्षम होना शामिल है। इसलिए, अधिकांश भौतिक कार्यान्वयन में तालिका में प्रत्येक पंक्ति के लिए एक अद्वितीय प्राथमिक कुंजी (पीके) होती है। जब तालिका में एक नई पंक्ति लिखी जाती है, तो प्राथमिक कुंजी के लिए एक नया अनूठा मान उत्पन्न होता है; यह वह कुंजी है जिसका उपयोग सिस्टम मुख्य रूप से तालिका तक पहुँचने के लिए करता है। सिस्टम प्रदर्शन पीके के लिए अनुकूलित है। अन्य, अधिक प्राकृतिक कुंजियों को भी वैकल्पिक कुंजियों (AK) के रूप में पहचाना और परिभाषित किया जा सकता है। एके बनाने के लिए अक्सर कई स्तंभों की आवश्यकता होती है (यह एक कारण है कि एक पूर्णांक स्तंभ को आमतौर पर पीके बना दिया जाता है)। पीके और एके दोनों में एक तालिका के भीतर विशिष्ट रूप से एक पंक्ति की पहचान करने की क्षमता होती है। व्यापक सिस्टम आवश्यकताएँ होने पर, दुनिया भर में एक अद्वितीय आईडी, विश्व स्तर पर अद्वितीय पहचानकर्ता सुनिश्चित करने के लिए अतिरिक्त तकनीक लागू की जा सकती है।
डेटाबेस के भीतर प्राथमिक कुंजियों का उपयोग तालिकाओं के बीच संबंधों को परिभाषित करने के लिए किया जाता है। जब कोई पीके किसी अन्य टेबल पर माइग्रेट होता है, तो यह दूसरी टेबल में एक विदेशी कुंजी बन जाता है। जब प्रत्येक सेल में केवल एक मान हो सकता है और पीके नियमित इकाई तालिका में माइग्रेट हो जाता है, तो यह डिज़ाइन पैटर्न या तो एक-से-एक (डेटा मॉडल) | एक-से-एक या एक-से-अनेक (डेटा मॉडल) का प्रतिनिधित्व कर सकता है। |एक-से-अनेक संबंध. अधिकांश रिलेशनल डेटाबेस डिज़ाइन मैनी-टू-मैनी (डेटा मॉडल)|मैनी-टू-मैनी संबंधों को एक अतिरिक्त टेबल बनाकर हल करते हैं जिसमें दोनों अन्य एंटिटी टेबल से पीके होते हैं – रिश्ता एक इकाई बन जाता है; समाधान तालिका को उचित रूप से नाम दिया गया है और दो एफके को पीके बनाने के लिए जोड़ा गया है। पीके का अन्य तालिकाओं में स्थानांतरण दूसरा प्रमुख कारण है कि क्यों सिस्टम-असाइन किए गए पूर्णांक सामान्य रूप से पीके के रूप में उपयोग किए जाते हैं; आमतौर पर अन्य प्रकार के स्तंभों के एक समूह को स्थानांतरित करने में न तो दक्षता होती है और न ही स्पष्टता।
रिश्ते
संबंध इन तालिकाओं के बीच परस्पर क्रिया के आधार पर स्थापित विभिन्न तालिकाओं के बीच एक तार्किक संबंध है।
लेन-देन
एक डेटाबेस प्रबंधन प्रणाली (DBMS) को कुशलतापूर्वक और सटीक रूप से संचालित करने के लिए, इसे ACID लेनदेन का उपयोग करना चाहिए।[14][15][16]
संग्रहित प्रक्रियाएं
आरडीबीएमएस के भीतर प्रोग्रामिंग का एक हिस्सा संग्रहीत कार्यविधियों (एसपी) का उपयोग करके पूरा किया जाता है। सिस्टम के भीतर और बाहर स्थानांतरित जानकारी की मात्रा को कम करने के लिए अक्सर प्रक्रियाओं का उपयोग किया जा सकता है। बढ़ी हुई सुरक्षा के लिए, सिस्टम डिज़ाइन केवल संग्रहीत कार्यविधियों तक पहुँच प्रदान कर सकता है और सीधे तालिकाओं तक नहीं। मौलिक संग्रहीत कार्यविधियों में नया सम्मिलित करने और मौजूदा डेटा को अद्यतन करने के लिए आवश्यक तर्क शामिल हैं। डेटा के प्रसंस्करण या चयन से संबंधित अतिरिक्त नियमों और तर्क को लागू करने के लिए अधिक जटिल प्रक्रियाएं लिखी जा सकती हैं।
शब्दावली
रिलेशनल डेटाबेस को पहली बार जून 1970 में आईबीएम के आईबीएम अल्माडेन रिसर्च सेंटर के एडगर एफ. कॉड द्वारा परिभाषित किया गया था।[1] आरडीबीएमएस के रूप में अर्हता प्राप्त करने के बारे में कॉड के दृष्टिकोण को कॉड के 12 नियमों में संक्षेपित किया गया है। एक रिलेशनल डेटाबेस डेटाबेस का प्रमुख प्रकार बन गया है। रिलेशनल मॉडल के अलावा अन्य मॉडलों में पदानुक्रमित डेटाबेस मॉडल और नेटवर्क मॉडल शामिल हैं।
नीचे दी गई तालिका कुछ सबसे महत्वपूर्ण संबंधपरक डेटाबेस शर्तों और संबंधित SQL शब्द का सार प्रस्तुत करती है:
SQL term | Relational database term | Description |
---|---|---|
Row | Tuple or record | A data set representing a single item |
Column | Attribute or field | A labeled element of a tuple, e.g. "Address" or "Date of birth" |
Table | Relation or Base relvar | A set of tuples sharing the same attributes; a set of columns and rows |
View or result set | Derived relvar | Any set of tuples; a data report from the RDBMS in response to a query |
संबंध या टेबल
एक रिलेशनल डेटाबेस में, एक रिलेशन (डेटाबेस) टुपल्स का एक सेट होता है जिसमें समान विशेषता (कंप्यूटिंग) होती है। एक टपल आमतौर पर एक वस्तु और उस वस्तु के बारे में जानकारी का प्रतिनिधित्व करता है। वस्तुएं आमतौर पर भौतिक वस्तुएं या अवधारणाएं होती हैं। एक संबंध को आमतौर पर एक टेबल (डेटाबेस) के रूप में वर्णित किया जाता है, जो पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) में व्यवस्थित होता है। एक विशेषता द्वारा संदर्भित सभी डेटा एक ही डेटा डोमेन में हैं और समान बाधाओं के अनुरूप हैं।
रिलेशनल मॉडल निर्दिष्ट करता है कि किसी संबंध के ट्यूपल्स का कोई विशिष्ट क्रम नहीं होता है और ट्यूपल्स, बदले में, एट्रीब्यूट्स पर कोई ऑर्डर नहीं थोपते हैं। एप्लिकेशन प्रश्नों को निर्दिष्ट करके डेटा तक पहुंचते हैं, जो संचालन का उपयोग करते हैं जैसे कि टुपल्स की पहचान करने के लिए चयन करें, विशेषताओं की पहचान करने के लिए प्रोजेक्ट करें और संबंधों को संयोजित करने के लिए जुड़ें। इन्सर्ट, डिलीट और अपडेट ऑपरेटरों का उपयोग करके संबंधों को संशोधित किया जा सकता है। नए टपल स्पष्ट मान प्रदान कर सकते हैं या किसी क्वेरी से प्राप्त किए जा सकते हैं। इसी तरह, अद्यतन या हटाने के लिए प्रश्न टुपल्स की पहचान करते हैं।
Tuples परिभाषा के अनुसार अद्वितीय हैं। यदि टपल में एक उम्मीदवार कुंजी या प्राथमिक कुंजी है तो जाहिर है कि यह अद्वितीय है; हालाँकि, एक प्राथमिक कुंजी को एक पंक्ति या रिकॉर्ड के लिए टपल होने के लिए परिभाषित करने की आवश्यकता नहीं है। एक टपल की परिभाषा के लिए यह आवश्यक है कि यह अद्वितीय हो, लेकिन परिभाषित करने के लिए प्राथमिक कुंजी की आवश्यकता नहीं है। क्योंकि एक टपल अद्वितीय है, परिभाषा के अनुसार इसकी विशेषताएँ एक key का गठन करती हैं।
आधार और व्युत्पन्न संबंध
सभी डेटा को रिलेशन (डेटाबेस) के माध्यम से संग्रहीत और एक्सेस किया जाता है। डेटा स्टोर करने वाले संबंधों को आधार संबंध कहा जाता है, और कार्यान्वयन में तालिकाओं को कहा जाता है। अन्य संबंध डेटा को संग्रहीत नहीं करते हैं, लेकिन अन्य संबंधों के संबंधपरक संक्रियाओं को लागू करके गणना की जाती है। इन संबंधों को कभी-कभी व्युत्पन्न संबंध कहा जाता है। कार्यान्वयन में इन्हें देखें (डेटाबेस) या क्वेरी कहा जाता है। व्युत्पन्न संबंध इस मायने में सुविधाजनक हैं कि वे एक संबंध के रूप में कार्य करते हैं, भले ही वे कई संबंधों से जानकारी प्राप्त कर सकते हैं। साथ ही, व्युत्पन्न संबंधों को अमूर्त परत के रूप में उपयोग किया जा सकता है।
डोमेन
एक डोमेन किसी दिए गए एट्रिब्यूट के लिए संभावित मानों के सेट का वर्णन करता है, और एट्रिब्यूट के मान पर एक बाधा माना जा सकता है। गणितीय रूप से, एक डोमेन को एक विशेषता से जोड़ने का अर्थ है कि विशेषता के लिए कोई भी मान निर्दिष्ट सेट का एक तत्व होना चाहिए। उदाहरण के लिए, वर्ण स्ट्रिंग ABC पूर्णांक डोमेन में नहीं है, लेकिन पूर्णांक मान 123 है। डोमेन का एक अन्य उदाहरण फ़ील्ड कॉइनफेस के लिए संभावित मानों का वर्णन करता है (हेड्स, टेल्स)। इसलिए, फ़ील्ड कॉइनफेस (0,1) या (एच, टी) जैसे इनपुट मान स्वीकार नहीं करेगा।
बाधाएं
किसी विशेषता के डोमेन को और प्रतिबंधित करना संभव बनाने के लिए अक्सर बाधाओं का उपयोग किया जाता है। उदाहरण के लिए, एक बाधा किसी दिए गए पूर्णांक विशेषता को 1 और 10 के बीच के मानों तक सीमित कर सकती है। बाधाएं डेटाबेस में व्यावसायिक नियमों को लागू करने का एक तरीका प्रदान करती हैं और एप्लिकेशन परत के भीतर बाद के डेटा उपयोग का समर्थन करती हैं। एसक्यूएल चेक बाधाओं के रूप में बाधा कार्यक्षमता लागू करता है। प्रतिबंध उस डेटा को प्रतिबंधित करते हैं जिसे संबंध (डेटाबेस) में संग्रहीत किया जा सकता है। इन्हें आम तौर पर एक्सप्रेशन का उपयोग करके परिभाषित किया जाता है जिसके परिणामस्वरूप a बूलियन डेटा प्रकार मान, यह दर्शाता है कि डेटा बाधा को संतुष्ट करता है या नहीं। प्रतिबन्ध एकल विशेषताओं, टपल (विशेषताओं के संयोजन को प्रतिबंधित करना) या संपूर्ण संबंध पर लागू हो सकते हैं। चूँकि प्रत्येक विशेषता का एक संबद्ध डोमेन होता है, इसलिए बाधाएँ (डोमेन बाधाएँ) होती हैं। रिलेशनल मॉडल के लिए दो प्रमुख नियमों को इकाई अखंडता और संदर्भात्मक अखंडता के रूप में जाना जाता है।
प्राथमिक कुंजी
प्रत्येक संबंध (डेटाबेस)/टेबल की प्राथमिक कुंजी होती है, यह एक सेट (गणित) होने के संबंध का परिणाम है।[17] एक प्राथमिक कुंजी विशिष्ट रूप से एक तालिका के भीतर एक टपल निर्दिष्ट करती है। जबकि प्राकृतिक विशेषताएँ (प्रविष्ट किए जा रहे डेटा का वर्णन करने के लिए उपयोग की जाने वाली विशेषताएँ) कभी-कभी अच्छी प्राथमिक कुंजियाँ होती हैं, इसके बजाय अक्सर सरोगेट कुंजियों का उपयोग किया जाता है। एक सरोगेट कुंजी एक कृत्रिम विशेषता है जो किसी वस्तु को सौंपी जाती है जो इसे विशिष्ट रूप से पहचानती है (उदाहरण के लिए, एक स्कूल में छात्रों के बारे में जानकारी की एक तालिका में उन्हें अलग करने के लिए सभी को एक छात्र आईडी सौंपी जा सकती है)। सरोगेट कुंजी का कोई आंतरिक (अंतर्निहित) अर्थ नहीं है, बल्कि इसकी विशिष्ट रूप से एक टपल की पहचान करने की क्षमता के माध्यम से उपयोगी है। एक अन्य सामान्य घटना, विशेष रूप से N:M कार्डिनैलिटी के संबंध में यौगिक कुंजी है। एक समग्र कुंजी एक तालिका के भीतर दो या दो से अधिक विशेषताओं से बनी एक कुंजी है जो (एक साथ) विशिष्ट रूप से एक रिकॉर्ड की पहचान करती है।[citation needed]
विदेशी कुंजी
विदेशी कुंजी एक संबंधपरक तालिका में एक फ़ील्ड को संदर्भित करती है जो किसी अन्य तालिका के प्राथमिक कुंजी कॉलम से मेल खाती है। यह दो चाबियों से संबंधित है। संदर्भ संबंध में विदेशी कुंजी के अद्वितीय मान होने की आवश्यकता नहीं है। प्रति संदर्भ टेबल के लिए एक विदेशी कुंजी का उपयोग किया जा सकता है, और यह संदर्भित संबंध में एक या एक से अधिक विशेषताओं के डोमेन को प्रतिबंधित करने के लिए संदर्भित संबंध में विशेषताओं के मूल्यों का प्रभावी ढंग से उपयोग करता है। अवधारणा को औपचारिक रूप से वर्णित किया गया है: संदर्भित विशेषताओं पर प्रक्षेपित संदर्भित संबंध में सभी टुपल्स के लिए, संदर्भित संबंध में एक टपल मौजूद होना चाहिए जो समान विशेषताओं पर अनुमानित हो, जैसे कि प्रत्येक संदर्भित विशेषताओं में मान संबंधित मूल्यों से मेल खाते हों। संदर्भित गुण।
संग्रहीत कार्यविधियाँ
एक संग्रहीत कार्यविधि निष्पादन योग्य कोड है जो डेटाबेस से जुड़ा होता है और आमतौर पर इसमें संग्रहीत होता है। संग्रहीत कार्यविधियाँ आम तौर पर सामान्य संचालन को इकट्ठा और अनुकूलित करती हैं, जैसे एक संबंध (डेटाबेस) में एक टपल सम्मिलित करना, उपयोग पैटर्न के बारे में सांख्यिकीय जानकारी एकत्र करना, या जटिल व्यावसायिक तर्क और गणनाओं को समाहित करना। अक्सर वे सुरक्षा या सरलता के लिए अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) के रूप में उपयोग किए जाते हैं। एसक्यूएल आरडीबीएमएस पर संग्रहीत प्रक्रियाओं के कार्यान्वयन अक्सर डेवलपर्स को मानक घोषणात्मक प्रोग्रामिंग एसक्यूएल सिंटैक्स के लिए प्रक्रियात्मक प्रोग्रामिंग एक्सटेंशन (अक्सर विक्रेता-विशिष्ट) का लाभ लेने की अनुमति देते हैं। संग्रहीत कार्यविधियाँ संबंधपरक डेटाबेस मॉडल का हिस्सा नहीं हैं, लेकिन सभी व्यावसायिक कार्यान्वयन में वे शामिल हैं।
सूचकांक
इंडेक्स डेटा तक त्वरित पहुंच प्रदान करने का एक तरीका है। संबंध (डेटाबेस) पर विशेषताओं के किसी भी संयोजन पर सूचकांक बनाए जा सकते हैं। उन विशेषताओं का उपयोग करके फ़िल्टर करने वाली क्वेरीज़ इंडेक्स (हैश तालिका लुकअप के समान) का उपयोग करके सीधे मिलान वाले टुपल्स को पा सकती हैं, बदले में प्रत्येक टपल की जांच किए बिना। यह उस पृष्ठ पर सीधे जाने के लिए अनुक्रमणिका (प्रकाशन) का उपयोग करने के समान है, जिस पर आप जो जानकारी खोज रहे हैं, वह पाई जाती है, ताकि आप जो खोज रहे हैं उसे खोजने के लिए आपको पूरी किताब न पढ़नी पड़े। संबंधपरक डेटाबेस आमतौर पर कई अनुक्रमण तकनीकों की आपूर्ति करते हैं, जिनमें से प्रत्येक डेटा वितरण, संबंध आकार और विशिष्ट पहुंच पैटर्न के कुछ संयोजन के लिए इष्टतम है। इंडेक्स आमतौर पर बी + पेड़, आर-पेड़ और बिटमैप इंडेक्स के माध्यम से कार्यान्वित किए जाते हैं। सूचकांकों को आमतौर पर डेटाबेस का हिस्सा नहीं माना जाता है, क्योंकि उन्हें कार्यान्वयन विवरण माना जाता है, हालांकि सूचकांकों को आमतौर पर उसी समूह द्वारा बनाए रखा जाता है जो डेटाबेस के अन्य भागों को बनाए रखता है। प्राथमिक और विदेशी दोनों कुंजियों पर कुशल अनुक्रमणिका का उपयोग नाटकीय रूप से क्वेरी प्रदर्शन में सुधार कर सकता है। ऐसा इसलिए है क्योंकि आर-वृक्ष इंडेक्स का परिणाम लॉग (एन) के आनुपातिक क्वेरी समय में होता है, जहां एन तालिका में पंक्तियों की संख्या होती है और हैश इंडेक्स का परिणाम निरंतर समय के प्रश्नों में होता है (जब तक इंडेक्स का प्रासंगिक हिस्सा फिट नहीं होता तब तक कोई आकार निर्भरता नहीं होती है) याद)।
रिलेशनल ऑपरेशंस
रिलेशनल डेटाबेस के विरुद्ध की गई क्वेरीज़, और डेटाबेस में व्युत्पन्न अस्रकार संबंधपरक गणना या रिलेशनल बीजगणित में व्यक्त किए जाते हैं। अपने मूल संबंधपरक बीजगणित में, Codd ने आठ संबंधपरक ऑपरेटरों को चार ऑपरेटरों के दो समूहों में पेश किया। पहले चार ऑपरेटर पारंपरिक गणितीय सेट सिद्धांत पर आधारित थे:
- संघ (सेट सिद्धांत) ऑपरेटर (υ) दो संबंधों (डेटाबेस) के ट्यूपल्स को जोड़ता है और परिणाम से सभी डुप्लिकेट ट्यूपल्स को हटा देता है। रिलेशनल यूनियन ऑपरेटर संघ (एसक्यूएल) ऑपरेटर के बराबर है।
- इंटरसेक्शन (समुच्चय सिद्धान्त) ऑपरेटर (∩) टुपल्स के सेट का उत्पादन करता है जो दो संबंधों को साझा करता है। इंटरसेक्शन को SQL में इंटरसेक्ट (SQL) ऑपरेटर के रूप में कार्यान्वित किया जाता है।
- पूरक (सेट सिद्धांत) ऑपरेटर (-) दो संबंधों पर कार्य करता है और पहले संबंध से टुपल्स का सेट उत्पन्न करता है जो दूसरे संबंध में मौजूद नहीं होता है। अंतर को SQL में एक्सेप्ट (SQL) या MINUS ऑपरेटर के रूप में कार्यान्वित किया जाता है।
- दो संबंधों का कार्टेशियन उत्पाद (एक्स) एक ऐसा जुड़ाव है जो किसी भी मानदंड से प्रतिबंधित नहीं है, जिसके परिणामस्वरूप पहले संबंध का प्रत्येक ट्यूपल दूसरे संबंध के प्रत्येक ट्यूपल से मेल खाता है। कार्टेशियन उत्पाद SQL में क्रॉस जॉइन करें ऑपरेटर के रूप में लागू किया गया है।
Codd द्वारा प्रस्तावित शेष ऑपरेटरों में रिलेशनल डेटाबेस के लिए विशेष ऑपरेशन शामिल हैं:
- चयन, या प्रतिबंध, ऑपरेशन (σ) एक संबंध से टुपल्स को पुनः प्राप्त करता है, परिणामों को केवल उन तक सीमित करता है जो एक विशिष्ट मानदंड को पूरा करते हैं, चौराहा (सेट सिद्धांत) के संदर्भ में एक सबसेट। चयन का SQL समतुल्य चयन (SQL) क्वेरी स्टेटमेंट है जिसमें एक कहाँ (SQL) खंड है।
- प्रोजेक्शन (रिलेशनल बीजगणित) (π) टपल या टुपल्स के सेट से केवल निर्दिष्ट विशेषताओं को निकालता है।
- रिलेशनल डेटाबेस के लिए परिभाषित जॉइन ऑपरेशन को अक्सर प्राकृतिक जॉइन (⋈) के रूप में जाना जाता है। इस प्रकार के जुड़ाव में, दो संबंध उनके सामान्य गुणों से जुड़े होते हैं। MySQL का एक प्राकृतिक जुड़ाव का सन्निकटन आंतरिक रूप से जुड़ा ऑपरेटर है। SQL में, INNER JOIN एक कार्टेशियन उत्पाद को तब होने से रोकता है जब किसी क्वेरी में दो तालिकाएँ हों। SQL क्वेरी में जोड़ी गई प्रत्येक तालिका के लिए, कार्टेशियन उत्पाद को रोकने के लिए एक अतिरिक्त INNER JOIN जोड़ा जाता है। इस प्रकार, SQL क्वेरी में N तालिकाओं के लिए, कार्तीय उत्पाद को रोकने के लिए N−1 INNER JOINS होना चाहिए।
प्रक्षेपण (संबंधपरक बीजगणित)#डिवीजन (÷) ऑपरेशन थोड़ा अधिक जटिल ऑपरेशन है और अनिवार्य रूप से एक दूसरे संबंध (भाजक) को विभाजित करने के लिए एक संबंध (लाभांश) के टुपल्स का उपयोग करना शामिल है। रिलेशनल डिवीजन ऑपरेटर कार्तीय उत्पाद ऑपरेटर (इसलिए नाम) के प्रभावी रूप से विपरीत है। Codd के मूल आठ के परिचय के बाद से अन्य ऑपरेटरों को पेश या प्रस्तावित किया गया है, जिसमें रिलेशनल तुलना ऑपरेटर और एक्सटेंशन शामिल हैं जो दूसरों के बीच नेस्टिंग और पदानुक्रमित डेटा के लिए समर्थन प्रदान करते हैं।
सामान्यीकरण
सामान्यीकरण को सबसे पहले कॉड द्वारा संबंधपरक मॉडल के एक अभिन्न अंग के रूप में प्रस्तावित किया गया था। इसमें गैर-सरल डोमेन (गैर-परमाणु मान) और डेटा के अतिरेक (दोहराव) को खत्म करने के लिए डिज़ाइन की गई प्रक्रियाओं का एक सेट शामिल है, जो बदले में डेटा हेरफेर विसंगतियों और डेटा अखंडता के नुकसान को रोकता है। डेटाबेस पर लागू सामान्यीकरण के सबसे सामान्य रूपों को डेटाबेस सामान्यीकरण # सामान्य रूप कहा जाता है।
आरडीबीएमएस
कॉनॉली और बेग डेटाबेस मैनेजमेंट सिस्टम (DBMS) को एक सॉफ्टवेयर सिस्टम के रूप में परिभाषित करते हैं जो उपयोगकर्ताओं को डेटाबेस तक पहुंच को परिभाषित करने, बनाने, बनाए रखने और नियंत्रित करने में सक्षम बनाता है।[18] RDBMS उस परिवर्णी शब्द का विस्तार है जो कभी-कभी अंतर्निहित डेटाबेस के संबंधपरक होने पर उपयोग किया जाता है।
रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के लिए एक वैकल्पिक परिभाषा रिलेशनल मॉडल पर आधारित डेटाबेस मैनेजमेंट सिस्टम (DBMS) है। आज व्यापक रूप से उपयोग किए जाने वाले अधिकांश डेटाबेस इसी मॉडल पर आधारित हैं।[19] आरडीबीएमएस 1980 के दशक से वित्तीय रिकॉर्ड, निर्माण और रसद जानकारी, कर्मियों के डेटा और अन्य अनुप्रयोगों के लिए उपयोग किए जाने वाले डेटाबेस में सूचना के भंडारण के लिए एक सामान्य विकल्प रहा है। रिलेशनल डेटाबेस ने अक्सर लीगेसी पदानुक्रमित डेटाबेस और नेटवर्क डेटाबेस को बदल दिया है, क्योंकि RDBMS को लागू करना और प्रशासित करना आसान था। बहरहाल, 1980 और 1990 के दशक में वस्तु डेटाबेस मैनेजमेंट सिस्टम द्वारा रिलेशनल स्टोर्ड डेटा को निरंतर, असफल चुनौतियों का सामना करना पड़ा, (जो रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड एप्लिकेशन प्रोग्राम के बीच तथाकथित ऑब्जेक्ट-रिलेशनल इम्पीडेंस मिसमैच को संबोधित करने के प्रयास में पेश किए गए थे), साथ ही 1990 के दशक में XML डेटाबेस प्रबंधन प्रणालियों द्वारा।[citation needed] हालाँकि, प्रौद्योगिकियों के विस्तार के कारण, जैसे कि कंप्यूटर क्लस्टर की क्षैतिज स्केलिंग, NoSQL डेटाबेस हाल ही में RDBMS डेटाबेस के विकल्प के रूप में लोकप्रिय हुए हैं।[20]
वितरित संबंधपरक डेटाबेस
DRDA (DRDA) को 1988 से 1994 की अवधि में IBM के भीतर एक कार्यसमूह द्वारा डिज़ाइन किया गया था। DRDA नेटवर्क से जुड़े रिलेशनल डेटाबेस को SQL अनुरोधों को पूरा करने में सहयोग करने में सक्षम बनाता है।[21][22] डीआरडीए के संदेशों, प्रोटोकॉल और संरचनात्मक घटकों को वितरित डेटा प्रबंधन आर्किटेक्चर द्वारा परिभाषित किया गया है।
बाजार हिस्सेदारी
DB-Engines ranking|DB-Engines के अनुसार, जनवरी 2023 में db-engines.com वेब साइट पर सबसे लोकप्रिय सिस्टम थे:[23]
- ओरेकल डाटाबेस
- माई एसक्यूएल
- माइक्रोसॉफ्ट एसक्यूएल सर्वर
- पोस्टग्रेएसक्यूएल (मुफ्त सॉफ्टवेयर)
- आईबीएम डीबी2
- माइक्रोसॉफ्ट पहुंच
- SQLite (मुफ्त सॉफ्टवेयर)
- मारियाडीबी (मुफ्त सॉफ्टवेयर)
- स्नोफ्लेक इंक।
- Microsoft Azure SQL डेटाबेस
- अपाचे हाइव (मुफ्त सॉफ्टवेयर)
- टेराडाटा
अनुसंधान कंपनी गार्टनर के अनुसार, 2011 में, राजस्व के हिसाब से पांच प्रमुख मालिकाना सॉफ्टवेयर रिलेशनल डेटाबेस विक्रेता Oracle Corporation (48.8%), IBM (20.2%), Microsoft (17.0%), SAP AG सहित Sybase (4.6%), और Teradata थे। (3.7%)।[24]
यह भी देखें
- एसक्यूएल
- ऑब्जेक्ट डेटाबेस (OODBMS)
- ऑनलाइन विश्लेषणात्मक प्रसंस्करण (OLAP) और ROLAP (रिलेशनल ऑनलाइन विश्लेषणात्मक प्रसंस्करण)
- डेटा वेयरहाउस
- स्टार स्कीमा
- स्नोफ्लेक स्कीमा
संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना सूची
- रिलेशनल डेटाबेस मैनेजमेंट सिस्टम की तुलना
संदर्भ
- ↑ 1.0 1.1 Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. 13 (6): 377–387. doi:10.1145/362384.362685. S2CID 207549016.
- ↑ Ambler, Scott. "Relational Databases 101: Looking at the Whole Picture".[better source needed]
- ↑ "A Relational Model of Data for Large Shared Data Banks" (PDF).
- ↑ Date, Chris (5 May 2005). Database in depth: relational theory for practitioners. O'Reilly. ISBN 0-596-10012-4.
- ↑ Funding a Revolution: Government Support for Computing Research. National Academies Press. 8 Jan 1999. ISBN 0309062780.
- ↑ Sumathi, S.; Esakkirajan, S. (13 Feb 2008). Fundamentals of Relational Database Management Systems. Springer. ISBN 978-3540483977.
The product was called SQL/DS (Structured Query Language/Data Store) and ran under the DOS/VSE operating system environment
- ↑ "Oracle Timeline" (PDF). Profit Magazine. Oracle. 12 (2): 26. May 2007. Retrieved 2013-05-16.
- ↑ "New Database Software Program Moves Macintosh Into The Big Leagues". tribunedigital-chicagotribune. Retrieved 2016-03-17.
- ↑ "ASetTheoreticDataStructureAndRetrievalLanguage-1972.PDF".
- ↑ SIGFIDET '74 Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control
- ↑ Ramakrishnan, Raghu; Donjerkovic, Donko; Ranganathan, Arvind; Beyer, Kevin S.; Krishnaprasad, Muralidhar (1998). "SRQL: Sorted Relational Query Language" (PDF). E Proceedings of SSDBM.
- ↑ "A Relational Database Overview". oracle.com.
- ↑ "A universal relation model for a nested database", The Nested Universal Relation Database Model, Lecture Notes in Computer Science, Berlin, Heidelberg: Springer Berlin Heidelberg, vol. 595, pp. 109–135, 1992, doi:10.1007/3-540-55493-9_5, ISBN 978-3-540-55493-6, retrieved 2020-11-01
- ↑ "Gray to be Honored With A. M. Turing Award This Spring". Microsoft PressPass. 1998-11-23. Archived from the original on 6 February 2009. Retrieved 2009-01-16.
- ↑ Gray, Jim (September 1981). "The Transaction Concept: Virtues and Limitations" (PDF). Proceedings of the 7th International Conference on Very Large Databases. Cupertino, CA: Tandem Computers. pp. 144–154. Retrieved 2006-11-09.
- ↑ Gray, Jim, and Reuter, Andreas, Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. ISBN 1-55860-190-2.
- ↑ Date (1984), p. 268.
- ↑ Connolly, Thomas M.; Begg, Carolyn E. (2014). Database Systems – A Practical Approach to Design Implementation and Management (6th ed.). Pearson. p. 64. ISBN 978-1292061184.
- ↑ Pratt, Philip J.; Last, Mary Z. (2014-09-08). Concepts of Database Management (8 ed.). Course Technology. p. 29. ISBN 9781285427102.
- ↑ "NoSQL databases eat into the relational database market". 4 March 2015. Retrieved 2018-03-14.
- ↑ Reinsch, R. (1988). "Distributed database for SAA". IBM Systems Journal. 27 (3): 362–389. doi:10.1147/sj.273.0362.
- ↑ Distributed Relational Database Architecture Reference. IBM Corp. SC26-4651-0. 1990.
- ↑ "DB-Engines Ranking of Relational DBMS". DB-Engines. Retrieved 2022-04-29.
- ↑ "Oracle the clear leader in $24 billion RDBMS market". 2012-04-12. Retrieved 2013-03-01.
स्रोत
- Date, C. J. (1984). DB2 के लिए एक गाइड (student ed.). Addison-Wesley. ISBN 0201113171. OCLC 256383726. OL 2838595M.