रिलेशनल डेटाबेस: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Digital database whose organization is based on the relational model of data}}
{{Short description|Digital database whose organization is based on the relational model of data}}
एक रिलेशनल [[डेटाबेस]] डेटा के [[संबंधपरक मॉडल]] पर आधारित एक (आमतौर पर डिजिटल) डेटाबेस है, जैसा कि 1970 में ई.एफ. कॉड द्वारा प्रस्तावित किया गया था। <ref name=codd/> रिलेशनल डेटाबेस को बनाए रखने के लिए उपयोग की जाने वाली प्रणाली एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। डेटाबेस को क्वेरी करने और अपडेट करने के लिए कई रिलेशनल डेटाबेस सिस्टम [[SQL]] (स्ट्रक्चर्ड क्वेरी लैंग्वेज) का उपयोग करने के विकल्प से लैस हैं। <ref>{{cite web |last=Ambler |first=Scott |title=Relational Databases 101: Looking at the Whole Picture |url=http://www.agiledata.org/essays/relationalDatabases.html }}{{better source|date=June 2018}}</ref>
एक रिलेशनल [[डेटाबेस]] डेटा के [[संबंधपरक मॉडल]] पर आधारित एक (आमतौर पर डिजिटल) डेटाबेस है, जैसा कि 1970 में ई.एफ. कॉड द्वारा प्रस्तावित किया गया था। <ref name=codd/> रिलेशनल डेटाबेस को बनाए रखने के लिए उपयोग की जाने वाली प्रणाली एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (आरडीबीएमएस) है। डेटाबेस को क्वेरी करने और अपडेट करने के लिए कई रिलेशनल डेटाबेस सिस्टम [[SQL|एसक्यूएल]] (स्ट्रक्चर्ड क्वेरी लैंग्वेज) का उपयोग करने के विकल्प से लैस हैं। <ref>{{cite web |last=Ambler |first=Scott |title=Relational Databases 101: Looking at the Whole Picture |url=http://www.agiledata.org/essays/relationalDatabases.html }}{{better source|date=June 2018}}</ref>




'''रिलेशनल डेटाबेस शब्द को सबसे पहले एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। 1970 में [[IBM|आईबीएम]] में F. Codd। Codd ने अपने शोध पत्र A Relational Model of Data for Big Shared Data Banks में इस शब्द की शुरुआत की। इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल'''
'''रिलेशनल डेटाबेस शब्द को सबसे पहले एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। 1970 में [[IBM|आईबीएम]] में F. कॉड। कॉड ने अपने शोध पत्र A Relational Model of Data for Big Shared Data Banks में इस शब्द की शुरुआत की। इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल'''






== इतिहास ==
== इतिहास ==
रिलेशनल डेटाबेस शब्द को सबसे पहले 1970 में  [[IBM|आईबीएम]] में ई.एफ. कॉड द्वारा परिभाषित किया गया था। 1970 में में F. Codd। कॉड ने अपने शोध पत्र "बड़े साझा डेटा बैंकों के लिए डेटा का एक संबंधपरक मॉडल" में इस शब्द की शुरुआत की। <ref name="Codd">{{Cite web|url=http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf|title=A Relational Model of Data for Large Shared Data Banks}}</ref>  
रिलेशनल डेटाबेस शब्द को सबसे पहले 1970 में  [[IBM|आईबीएम]] में ई.एफ. कॉड द्वारा परिभाषित किया गया था। 1970 में में F. कॉड। कॉड ने अपने शोध पत्र "बड़े साझा डेटा बैंकों के लिए डेटा का एक संबंधपरक मॉडल" में इस शब्द की शुरुआत की। <ref name="Codd">{{Cite web|url=http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf|title=A Relational Model of Data for Large Shared Data Banks}}</ref>  


इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल से उनका क्या मतलब है। रिलेशनल डेटाबेस सिस्टम का गठन करने वाली एक प्रसिद्ध परिभाषा कॉड के 12 नियमों से बनी है। हालाँकि, रिलेशनल मॉडल का कोई भी व्यावसायिक कार्यान्वयन कॉड के सभी नियमों के अनुरूप नहीं है, <ref>{{cite book |last=Date |first=Chris |title=Database in depth: relational theory for practitioners |date=5 May 2005 |publisher=O'Reilly |isbn=0-596-10012-4}}</ref>  इसलिए यह शब्द धीरे-धीरे डेटाबेस सिस्टम के एक व्यापक वर्ग का वर्णन करने लगा है, जो कम से कम:
इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल से उनका क्या मतलब है। रिलेशनल डेटाबेस सिस्टम का गठन करने वाली एक प्रसिद्ध परिभाषा कॉड के 12 नियमों से बनी है। हालाँकि, रिलेशनल मॉडल का कोई भी व्यावसायिक कार्यान्वयन कॉड के सभी नियमों के अनुरूप नहीं है, <ref>{{cite book |last=Date |first=Chris |title=Database in depth: relational theory for practitioners |date=5 May 2005 |publisher=O'Reilly |isbn=0-596-10012-4}}</ref>  इसलिए यह शब्द धीरे-धीरे डेटाबेस सिस्टम के एक व्यापक वर्ग का वर्णन करने लगा है, जो कम से कम:
Line 15: Line 15:
# सारणीबद्ध रूप में डेटा में हेरफेर करने के लिए रिलेशनल ऑपरेटर्स प्रदान करें।
# सारणीबद्ध रूप में डेटा में हेरफेर करने के लिए रिलेशनल ऑपरेटर्स प्रदान करें।


1974 में, आईबीएम ने एक प्रोटोटाइप RDBMS विकसित करने के लिए एक शोध परियोजना [[IBM System R|आईबीएम System R]] का विकास शुरू किया।<ref>
1974 में, आईबीएम ने एक प्रोटोटाइप आरडीबीएमएस विकसित करने के लिए एक शोध परियोजना [[IBM System R|आईबीएम सिस्टम आर]] का विकास शुरू किया।<ref>
{{cite book
{{cite book
|date=8 Jan 1999
|date=8 Jan 1999
Line 22: Line 22:
|isbn=0309062780
|isbn=0309062780
|url={{google books |plainurl=y |id=wvCbAgAAQBAJ}}
|url={{google books |plainurl=y |id=wvCbAgAAQBAJ}}
}}</ref><ref>{{cite book
}}</ref> <ref>{{cite book
|last1=Sumathi |first1=S. |last2=Esakkirajan |first2=S.
|last1=Sumathi |first1=S. |last2=Esakkirajan |first2=S.
|date=13 Feb 2008
|date=13 Feb 2008
Line 29: Line 29:
|isbn=978-3540483977
|isbn=978-3540483977
|quote=The product was called SQL/DS (Structured Query Language/Data Store) and ran under the DOS/VSE operating system environment}}</ref>
|quote=The product was called SQL/DS (Structured Query Language/Data Store) and ran under the DOS/VSE operating system environment}}</ref>
RDBMS के रूप में बेची जाने वाली पहली प्रणाली [[मल्टिक्स रिलेशनल डेटा स्टोर]] (जून 1976) थी। {{cn|reason=Due to significance of nature of claim specific unambiguous cite is required at this point|date=August 2020}} Oracle डेटाबेस को 1979 में Relational Software, जो अब [[Oracle Corporation]] है, द्वारा जारी किया गया था। <ref>{{cite journal |date=May 2007 |title=Oracle Timeline |journal=Profit Magazine |publisher=Oracle |volume=12 |issue=2 |page=26 |url=http://www.oracle.com/us/corporate/profit/p27anniv-timeline-151918.pdf |access-date=2013-05-16}}</ref> Ingres (डेटाबेस) और [[IBM BS12|आईबीएम BS12]] ने अनुसरण किया। RDBMS के अन्य उदाहरणों में [[IBM Db2|आईबीएम Db2]], अनुकूली सर्वर एंटरप्राइज़ और [[IBM Informix|आईबीएम Informix]] शामिल हैं। 1984 में, [[Macintosh]] के लिए पहला RDBMS विकसित होना शुरू हुआ, कोड-नाम सिल्वर सर्फर, और 1987 में 4th डाइमेंशन (सॉफ्टवेयर) के रूप में जारी किया गया और आज 4D के रूप में जाना जाता है। <ref>{{cite web |title=New Database Software Program Moves Macintosh Into The Big Leagues |website=tribunedigital-chicagotribune |url=http://articles.chicagotribune.com/1987-06-28/business/8702170525_1_silver-surfer-software-developers-macintosh-products |access-date=2016-03-17}}</ref>
 
आरडीबीएमएस के रूप में बेची जाने वाली पहली प्रणाली [[मल्टिक्स रिलेशनल डेटा स्टोर]] (जून 1976) थी। {{cn|reason=Due to significance of nature of claim specific unambiguous cite is required at this point|date=August 2020}} ओरेकल डेटाबेस को 1979 में संबंधपरक सॉफ्टवेयर, जो अब [[Oracle Corporation|ओरेकल कॉर्पोरेशन]] है, द्वारा जारी किया गया था। <ref>{{cite journal |date=May 2007 |title=Oracle Timeline |journal=Profit Magazine |publisher=Oracle |volume=12 |issue=2 |page=26 |url=http://www.oracle.com/us/corporate/profit/p27anniv-timeline-151918.pdf |access-date=2013-05-16}}</ref> Ingres (डेटाबेस) और [[IBM BS12|आईबीएम बीएस12]] ने अनुसरण किया। आरडीबीएमएस के अन्य उदाहरणों में [[IBM Db2|आईबीएम डीबी2]], अनुकूली सर्वर एंटरप्राइज़ और [[IBM Informix|आईबीएम इन्फोर्मिक्स]] शामिल हैं। 1984 में, [[Macintosh|मैकिनटोश]] के लिए पहला आरडीबीएमएस विकसित होना शुरू हुआ, कोड-नाम सिल्वर सर्फर, और 1987 में 4th डाइमेंशन (सॉफ्टवेयर) के रूप में जारी किया गया और आज 4[[IBM Db2|डी]] के रूप में जाना जाता है। <ref>{{cite web |title=New Database Software Program Moves Macintosh Into The Big Leagues |website=tribunedigital-chicagotribune |url=http://articles.chicagotribune.com/1987-06-28/business/8702170525_1_silver-surfer-software-developers-macintosh-products |access-date=2016-03-17}}</ref>


पहली प्रणालियाँ जो संबंधपरक मॉडल के अपेक्षाकृत विश्वसनीय कार्यान्वयन थीं:
पहली प्रणालियाँ जो संबंधपरक मॉडल के अपेक्षाकृत विश्वसनीय कार्यान्वयन थीं:
Line 35: Line 36:
* मिशिगन विश्वविद्यालय - [[माइक्रो रिलेशनल डेटाबेस मैनेजमेंट सिस्टम]] (1969) <ref>{{Cite web |title= ASetTheoreticDataStructureAndRetrievalLanguage-1972.PDF|url=https://docs.google.com/open?id=0B4t_NX-QeWDYNmVhYjAwMWMtYzc3ZS00YjI0LWJhMjgtZTYyODZmNmFkNThh}}</ref>
* मिशिगन विश्वविद्यालय - [[माइक्रो रिलेशनल डेटाबेस मैनेजमेंट सिस्टम]] (1969) <ref>{{Cite web |title= ASetTheoreticDataStructureAndRetrievalLanguage-1972.PDF|url=https://docs.google.com/open?id=0B4t_NX-QeWDYNmVhYjAwMWMtYzc3ZS00YjI0LWJhMjgtZTYyODZmNmFkNThh}}</ref>
* मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी (1971) <ref>SIGFIDET '74 Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control</ref>
* मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी (1971) <ref>SIGFIDET '74 Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control</ref>
* पीटरली में आईबीएम यूके साइंटिफिक सेंटर - [[IBM IS1|आईबीएम IS1]] (1970-72) और इसके उत्तराधिकारी, [[PRTV]] (1973-79)
* पीटरली में आईबीएम यूके साइंटिफिक सेंटर - [[IBM IS1|आईबीएम आईएस1]] (1970-72) और इसके उत्तराधिकारी, [[PRTV|पीआरटीवी]] (1973-79)


RDBMS की सबसे आम परिभाषा एक ऐसा उत्पाद है जो डेटा को पंक्तियों और स्तंभों के संग्रह के रूप में प्रस्तुत करता है, भले ही यह संबंधपरक मॉडल पर सख्ती से आधारित न हो। इस परिभाषा के अनुसार, RDBMS उत्पाद आमतौर पर Codd के सभी 12 नियमों को लागू करते हैं लेकिन सभी को नहीं।
आरडीबीएमएस की सबसे आम परिभाषा एक ऐसा उत्पाद है जो डेटा को पंक्तियों और स्तंभों के संग्रह के रूप में प्रस्तुत करता है, भले ही यह संबंधपरक मॉडल पर सख्ती से आधारित न हो। इस परिभाषा के अनुसार, आरडीबीएमएस उत्पाद आमतौर पर कॉड के सभी 12 नियमों को लागू करते हैं लेकिन सभी को नहीं।


विचार के एक दूसरे स्कूल का तर्क है कि यदि कोई डेटाबेस कॉड के सभी नियमों (या संबंधपरक मॉडल पर वर्तमान समझ, जैसा कि क्रिस्टोफर जे. डेट, [[ह्यूग डार्वेन]] और अन्य द्वारा व्यक्त किया गया है) को लागू नहीं करता है, तो यह संबंधपरक नहीं है। कई सिद्धांतकारों और Codd के सिद्धांतों के अन्य सख्त अनुयायियों द्वारा साझा किया गया यह दृश्य, अधिकांश DBMS को गैर-संबंधपरक के रूप में अयोग्य घोषित कर देगा। स्पष्टीकरण के लिए, वे अक्सर कुछ RDBMSs को ट्रूली-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (TRDBMS) के रूप में संदर्भित करते हैं, दूसरों को स्यूडो-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (PRDBMS) नाम देते हैं।  
विचार के एक दूसरे स्कूल का तर्क है कि यदि कोई डेटाबेस कॉड के सभी नियमों (या संबंधपरक मॉडल पर वर्तमान समझ, जैसा कि क्रिस्टोफर जे. डेट, [[ह्यूग डार्वेन]] और अन्य द्वारा व्यक्त किया गया है) को लागू नहीं करता है, तो यह संबंधपरक नहीं है। कई सिद्धांतकारों और कॉड के सिद्धांतों के अन्य सख्त अनुयायियों द्वारा साझा किया गया यह दृश्य, अधिकांश डीबीएमएस को गैर-संबंधपरक के रूप में अयोग्य घोषित कर देगा। स्पष्टीकरण के लिए, वे अक्सर कुछ आरडीबीएमएसs को ट्रूली-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (टीआरडीबीएमएस) के रूप में संदर्भित करते हैं, दूसरों को स्यूडो-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (Pआरडीबीएमएस) नाम देते हैं।  


2009 तक, अधिकांश व्यावसायिक संबंधपरक DBMS SQL को अपनी क्वेरी भाषा के रूप में नियोजित करते हैं। <ref>{{cite journal |last1=Ramakrishnan |first1=Raghu |last2=Donjerkovic |first2=Donko |last3=Ranganathan |first3=Arvind |last4=Beyer |first4=Kevin S. |last5=Krishnaprasad |first5=Muralidhar |year=1998 |title=SRQL: Sorted Relational Query Language |journal=E Proceedings of SSDBM |url=http://pages.cs.wisc.edu/~beyer/papers/srql_ssdbm98.pdf}}</ref>  
2009 तक, अधिकांश व्यावसायिक संबंधपरक डीबीएमएस एसक्यूएल को अपनी क्वेरी भाषा के रूप में नियोजित करते हैं। <ref>{{cite journal |last1=Ramakrishnan |first1=Raghu |last2=Donjerkovic |first2=Donko |last3=Ranganathan |first3=Arvind |last4=Beyer |first4=Kevin S. |last5=Krishnaprasad |first5=Muralidhar |year=1998 |title=SRQL: Sorted Relational Query Language |journal=E Proceedings of SSDBM |url=http://pages.cs.wisc.edu/~beyer/papers/srql_ssdbm98.pdf}}</ref>  


वैकल्पिक क्वेरी भाषाओं को प्रस्तावित और कार्यान्वित किया गया है, विशेष रूप से 1996 से पहले QUEL क्वेरी भाषाओं का कार्यान्वयन।
वैकल्पिक क्वेरी भाषाओं को प्रस्तावित और कार्यान्वित किया गया है, विशेष रूप से 1996 से पहले क्यूयुईएल क्वेरी भाषाओं का कार्यान्वयन।


== रिलेशनल मॉडल ==
== रिलेशनल मॉडल ==
{{Main|Relational model}}
{{Main|संबंधपरक मॉडल}}
एक रिलेशनल मॉडल डेटा को कॉलम (डेटाबेस) और पंक्ति (डेटाबेस) की एक या अधिक तालिका (डेटाबेस) (या संबंध) में व्यवस्थित करता है, जिसमें प्रत्येक पंक्ति की पहचान करने वाली एक अनूठी कुंजी होती है। Rows को Record (कंप्यूटर विज्ञान) या [[tuple]]s भी कहा जाता है। <ref>{{cite web |title=A Relational Database Overview |website=oracle.com |url=https://docs.oracle.com/javase/tutorial/jdbc/overview/database.html}}</ref> कॉलम को एट्रिब्यूट भी कहा जाता है। आम तौर पर, प्रत्येक तालिका/संबंध एक इकाई प्रकार (जैसे ग्राहक या उत्पाद) का प्रतिनिधित्व करता है। पंक्तियाँ उस प्रकार की इकाई (जैसे ली या कुर्सी) के उदाहरणों का प्रतिनिधित्व करती हैं और कॉलम उस उदाहरण (जैसे पता या मूल्य) के लिए जिम्मेदार मूल्यों का प्रतिनिधित्व करते हैं।
 
एक रिलेशनल मॉडल डेटा को कॉलम (डेटाबेस) और पंक्ति (डेटाबेस) की एक या अधिक तालिका (डेटाबेस) (या संबंध) में व्यवस्थित करता है, जिसमें प्रत्येक पंक्ति की पहचान करने वाली एक अनूठी कुंजी होती है। पंक्तियों को रिकॉर्ड (कंप्यूटर विज्ञान) या [[tuple|टुपलेस]] भी कहा जाता है। <ref>{{cite web |title=A Relational Database Overview |website=oracle.com |url=https://docs.oracle.com/javase/tutorial/jdbc/overview/database.html}}</ref> कॉलम को एट्रिब्यूट भी कहा जाता है। आम तौर पर, प्रत्येक तालिका/संबंध एक इकाई प्रकार (जैसे ग्राहक या उत्पाद) का प्रतिनिधित्व करता है। पंक्तियाँ उस प्रकार की इकाई (जैसे ली या कुर्सी) के उदाहरणों का प्रतिनिधित्व करती हैं और कॉलम उस उदाहरण (जैसे पता या मूल्य) के लिए जिम्मेदार मूल्यों का प्रतिनिधित्व करते हैं।


उदाहरण के लिए, कक्षा तालिका की प्रत्येक पंक्ति एक वर्ग से मेल खाती है, और एक कक्षा कई छात्रों से मेल खाती है, इसलिए कक्षा तालिका और छात्र तालिका के बीच का संबंध एक से कई है। <ref>{{Citation |date=1992 |title=A universal relation model for a nested database |work=The Nested Universal Relation Database Model |series=Lecture Notes in Computer Science |volume=595 |pages=109–135 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/3-540-55493-9_5 |isbn=978-3-540-55493-6 |url=http://dx.doi.org/10.1007/3-540-55493-9_5 |access-date=2020-11-01}}</ref>
उदाहरण के लिए, कक्षा तालिका की प्रत्येक पंक्ति एक वर्ग से मेल खाती है, और एक कक्षा कई छात्रों से मेल खाती है, इसलिए कक्षा तालिका और छात्र तालिका के बीच का संबंध एक से कई है। <ref>{{Citation |date=1992 |title=A universal relation model for a nested database |work=The Nested Universal Relation Database Model |series=Lecture Notes in Computer Science |volume=595 |pages=109–135 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/3-540-55493-9_5 |isbn=978-3-540-55493-6 |url=http://dx.doi.org/10.1007/3-540-55493-9_5 |access-date=2020-11-01}}</ref>
Line 55: Line 57:
तालिका में प्रत्येक पंक्ति की अपनी अनूठी कुंजी होती है। लिंक की गई पंक्ति की अनूठी कुंजी के लिए एक कॉलम जोड़कर तालिका में पंक्तियों को अन्य तालिकाओं में पंक्तियों से जोड़ा जा सकता है (ऐसे कॉलम को विदेशी कुंजियों के रूप में जाना जाता है)। कॉड ने दिखाया कि मनमाना जटिलता के डेटा संबंधों को अवधारणाओं के एक सरल सेट द्वारा दर्शाया जा सकता है।{{Citation needed|date=November 2017}}
तालिका में प्रत्येक पंक्ति की अपनी अनूठी कुंजी होती है। लिंक की गई पंक्ति की अनूठी कुंजी के लिए एक कॉलम जोड़कर तालिका में पंक्तियों को अन्य तालिकाओं में पंक्तियों से जोड़ा जा सकता है (ऐसे कॉलम को विदेशी कुंजियों के रूप में जाना जाता है)। कॉड ने दिखाया कि मनमाना जटिलता के डेटा संबंधों को अवधारणाओं के एक सरल सेट द्वारा दर्शाया जा सकता है।{{Citation needed|date=November 2017}}


इस प्रसंस्करण के भाग में तालिका में एक और केवल एक पंक्ति को लगातार चुनने या संशोधित करने में सक्षम होना शामिल है। इसलिए, अधिकांश भौतिक कार्यान्वयन में तालिका में प्रत्येक पंक्ति के लिए एक अद्वितीय [[प्राथमिक कुंजी]] (पीके) होती है। जब तालिका में एक नई पंक्ति लिखी जाती है, तो प्राथमिक कुंजी के लिए एक नया अनूठा मान उत्पन्न होता है; यह वह कुंजी है जिसका उपयोग सिस्टम मुख्य रूप से तालिका तक पहुँचने के लिए करता है। सिस्टम प्रदर्शन पीके के लिए अनुकूलित है। अन्य, अधिक प्राकृतिक कुंजियों को भी वैकल्पिक कुंजियों (AK) के रूप में पहचाना और परिभाषित किया जा सकता है। एके बनाने के लिए अक्सर कई स्तंभों की आवश्यकता होती है (यह एक कारण है कि एक पूर्णांक स्तंभ को आमतौर पर पीके बना दिया जाता है)। पीके और एके दोनों में एक तालिका के भीतर विशिष्ट रूप से एक पंक्ति की पहचान करने की क्षमता होती है। व्यापक सिस्टम आवश्यकताएँ होने पर, दुनिया भर में एक अद्वितीय आईडी, [[विश्व स्तर पर अद्वितीय पहचानकर्ता]] सुनिश्चित करने के लिए अतिरिक्त तकनीक लागू की जा सकती है।
इस प्रसंस्करण के भाग में तालिका में एक और केवल एक पंक्ति को लगातार चुनने या संशोधित करने में सक्षम होना शामिल है। इसलिए, अधिकांश भौतिक कार्यान्वयन में तालिका में प्रत्येक पंक्ति के लिए एक अद्वितीय [[प्राथमिक कुंजी]] (पीके) होती है। जब तालिका में एक नई पंक्ति लिखी जाती है, तो प्राथमिक कुंजी के लिए एक नया अनूठा मान उत्पन्न होता है; यह वह कुंजी है जिसका उपयोग सिस्टम मुख्य रूप से तालिका तक पहुँचने के लिए करता है। सिस्टम प्रदर्शन पीके के लिए अनुकूलित है। अन्य, अधिक प्राकृतिक कुंजियों को भी वैकल्पिक कुंजियों (एके) के रूप में पहचाना और परिभाषित किया जा सकता है। एके बनाने के लिए अक्सर कई स्तंभों की आवश्यकता होती है (यह एक कारण है कि एक पूर्णांक स्तंभ को आमतौर पर पीके बना दिया जाता है)। पीके और एके दोनों में एक तालिका के भीतर विशिष्ट रूप से एक पंक्ति की पहचान करने की क्षमता होती है। व्यापक सिस्टम आवश्यकताएँ होने पर, दुनिया भर में एक अद्वितीय आईडी, [[विश्व स्तर पर अद्वितीय पहचानकर्ता]] सुनिश्चित करने के लिए अतिरिक्त तकनीक लागू की जा सकती है।


डेटाबेस के भीतर प्राथमिक कुंजियों का उपयोग तालिकाओं के बीच संबंधों को परिभाषित करने के लिए किया जाता है। जब कोई पीके किसी अन्य टेबल पर माइग्रेट होता है, तो यह दूसरी टेबल में एक विदेशी कुंजी बन जाता है। जब प्रत्येक सेल में केवल एक मान हो सकता है और पीके नियमित इकाई तालिका में माइग्रेट हो जाता है, तो यह डिज़ाइन पैटर्न या तो [[एक-से-एक (डेटा मॉडल)]] | एक-से-एक या एक-से-अनेक (डेटा मॉडल) का प्रतिनिधित्व कर सकता है। |एक-से-अनेक संबंध. अधिकांश रिलेशनल डेटाबेस डिज़ाइन [[मैनी-टू-मैनी (डेटा मॉडल)]]|मैनी-टू-मैनी संबंधों को एक अतिरिक्त टेबल बनाकर हल करते हैं जिसमें दोनों अन्य एंटिटी टेबल से पीके होते हैं{{snd}} रिश्ता एक इकाई बन जाता है; समाधान तालिका को उचित रूप से नाम दिया गया है और दो एफके को पीके बनाने के लिए जोड़ा गया है। पीके का अन्य तालिकाओं में स्थानांतरण दूसरा प्रमुख कारण है कि क्यों सिस्टम-असाइन किए गए पूर्णांक सामान्य रूप से पीके के रूप में उपयोग किए जाते हैं; आमतौर पर अन्य प्रकार के स्तंभों के एक समूह को स्थानांतरित करने में न तो दक्षता होती है और न ही स्पष्टता।
डेटाबेस के भीतर प्राथमिक कुंजियों का उपयोग तालिकाओं के बीच संबंधों को परिभाषित करने के लिए किया जाता है। जब कोई पीके किसी अन्य टेबल पर माइग्रेट होता है, तो यह दूसरी टेबल में एक विदेशी कुंजी बन जाता है। जब प्रत्येक सेल में केवल एक मान हो सकता है और पीके नियमित इकाई तालिका में माइग्रेट हो जाता है, तो यह डिज़ाइन पैटर्न या तो [[एक-से-एक (डेटा मॉडल)]] | एक-से-एक या एक-से-अनेक (डेटा मॉडल) का प्रतिनिधित्व कर सकता है। |एक-से-अनेक संबंध. अधिकांश रिलेशनल डेटाबेस डिज़ाइन [[मैनी-टू-मैनी (डेटा मॉडल)]]|मैनी-टू-मैनी संबंधों को एक अतिरिक्त टेबल बनाकर हल करते हैं जिसमें दोनों अन्य एंटिटी टेबल से पीके होते हैं{{snd}} रिश्ता एक इकाई बन जाता है; समाधान तालिका को उचित रूप से नाम दिया गया है और दो एफके को पीके बनाने के लिए जोड़ा गया है। पीके का अन्य तालिकाओं में स्थानांतरण दूसरा प्रमुख कारण है कि क्यों सिस्टम-असाइन किए गए पूर्णांक सामान्य रूप से पीके के रूप में उपयोग किए जाते हैं; आमतौर पर अन्य प्रकार के स्तंभों के एक समूह को स्थानांतरित करने में न तो दक्षता होती है और न ही स्पष्टता।
Line 63: Line 65:


== लेन-देन ==
== लेन-देन ==
एक डेटाबेस प्रबंधन प्रणाली (DBMS) को कुशलतापूर्वक और सटीक रूप से संचालित करने के लिए, इसे ACID लेनदेन का उपयोग करना चाहिए। <ref>{{
एक डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) को कुशलतापूर्वक और सटीक रूप से संचालित करने के लिए, इसे एसीआईडी लेनदेन का उपयोग करना चाहिए। <ref>{{
cite web
cite web
|date=1998-11-23
|date=1998-11-23
Line 76: Line 78:


== शब्दावली ==
== शब्दावली ==
[[Image:Relational database terms.svg|350px|thumb|right|संबंधपरक डेटाबेस शब्दावली]]रिलेशनल डेटाबेस को पहली बार जून 1970 में आईबीएम के [[आईबीएम अल्माडेन रिसर्च सेंटर]] के एडगर एफ. कॉड द्वारा परिभाषित किया गया था।<ref name=codd>{{cite journal |last=Codd |first=E. F. |author-link=Edgar F. Codd |year=1970 |title=A Relational Model of Data for Large Shared Data Banks |journal=[[Communications of the ACM]] |doi=10.1145/362384.362685 |volume=13 |number=6 |pages=377–387|s2cid=207549016 |doi-access=free }}</ref> आरडीबीएमएस के रूप में अर्हता प्राप्त करने के बारे में कॉड के दृष्टिकोण को कॉड के 12 नियमों में संक्षेपित किया गया है। एक रिलेशनल डेटाबेस डेटाबेस का प्रमुख प्रकार बन गया है। रिलेशनल मॉडल के अलावा अन्य मॉडलों में [[पदानुक्रमित डेटाबेस मॉडल]] और [[नेटवर्क मॉडल]] शामिल हैं।
[[Image:Relational database terms.svg|350px|thumb|right|संबंधपरक डेटाबेस शब्दावली]]रिलेशनल डेटाबेस को पहली बार जून 1970 में आईबीएम के [[आईबीएम अल्माडेन रिसर्च सेंटर]] के एडगर एफ. कॉड द्वारा परिभाषित किया गया था। <ref name=codd>{{cite journal |last=Codd |first=E. F. |author-link=Edgar F. Codd |year=1970 |title=A Relational Model of Data for Large Shared Data Banks |journal=[[Communications of the ACM]] |doi=10.1145/362384.362685 |volume=13 |number=6 |pages=377–387|s2cid=207549016 |doi-access=free }}</ref> आरडीबीएमएस के रूप में अर्हता प्राप्त करने के बारे में कॉड के दृष्टिकोण को कॉड के 12 नियमों में संक्षेपित किया गया है। एक रिलेशनल डेटाबेस डेटाबेस का प्रमुख प्रकार बन गया है। रिलेशनल मॉडल के अलावा अन्य मॉडलों में [[पदानुक्रमित डेटाबेस मॉडल]] और [[नेटवर्क मॉडल]] शामिल हैं।


नीचे दी गई तालिका कुछ सबसे महत्वपूर्ण संबंधपरक डेटाबेस शर्तों और संबंधित SQL शब्द का सार प्रस्तुत करती है:
नीचे दी गई तालिका कुछ सबसे महत्वपूर्ण संबंधपरक डेटाबेस शर्तों और संबंधित एसक्यूएल शब्द का सार प्रस्तुत करती है:


{| class="wikitable"
{| class="wikitable"
|-
|-
! SQL term
! एसक्यूएल अवधि
! Relational database term
! संबंधपरक डेटाबेस शब्द
! Description
! विवरण
|-
|-
| [[Row (database)|'''''Row''''']]
| [[Row (database)|'''''पंक्ति''''']]
| '''''[[Tuple]]''''' or [[Record (computer science)|'''''record''''']]
| '''''[[Tuple|टपल]]''''' या [[Record (computer science)|'''''अभिलेख''''']]
| A data set representing a single item
| एक आइटम का प्रतिनिधित्व करने वाला डेटा सेट
|-
|-
| [[Column (database)|'''''Column''''']]
| [[Column (database)|'''''कॉलम''''']]
| '''''Attribute''''' or '''''field'''''
| '''''गुण''''' या '''''मैदान'''''
| A labeled element of a tuple, e.g. "Address" or "Date of birth"
| टपल का एक लेबल वाला तत्व, उदा। "पता" या "जन्म तिथि"
|-
|-
| [[Table (database)|'''''Table''''']]
| [[Table (database)|'''''Table''''']]
| [[Relation (database)|'''''Relation''''']] or [[relvar|'''''Base relvar''''']]
| [[Relation (database)|'''''संबंध''''']] या [[relvar|'''''बेस रिल्वर''''']]
| A set of tuples sharing the same attributes; a set of columns and rows
| समान विशेषताओं को साझा करने वाले टुपल्स का एक सेट; स्तंभों और पंक्तियों का एक सेट
|-
|-
| [[View (SQL)|'''''View''''']] or '''''[[result set]]'''''
| [[View (SQL)|'''''देखें''''']] या '''''[[result set|परिणाम सेट]]'''''
| '''''Derived relvar'''''
| '''''व्युत्पन्न रिल्वर'''''
| Any set of tuples; a data report from the RDBMS in response to a [[query language|query]]
| टुपल्स का कोई सेट; एक [[query language|प्रश्न]] के जवाब में 12एम्स की ओर से एक डेटा रिपोर्ट
|}
|}




== संबंध या टेबल ==
== संबंध या टेबल ==
{{Main|Relation (database)|Table (database)}}
{{Main|संबंध (डेटाबेस)|तालिका (डेटाबेस)}}
एक रिलेशनल डेटाबेस में, एक रिलेशन (डेटाबेस) टुपल्स का एक सेट होता है जिसमें समान [[विशेषता (कंप्यूटिंग)]] होती है। एक टपल आमतौर पर एक वस्तु और उस वस्तु के बारे में जानकारी का प्रतिनिधित्व करता है। वस्तुएं आमतौर पर भौतिक वस्तुएं या अवधारणाएं होती हैं। एक संबंध को आमतौर पर एक टेबल (डेटाबेस) के रूप में वर्णित किया जाता है, जो पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) में व्यवस्थित होता है। एक विशेषता द्वारा संदर्भित सभी डेटा एक ही [[डेटा डोमेन]] में हैं और समान बाधाओं के अनुरूप हैं।
एक रिलेशनल डेटाबेस में, एक रिलेशन (डेटाबेस) टुपल्स का एक सेट होता है जिसमें समान [[विशेषता (कंप्यूटिंग)]] होती है। एक टपल आमतौर पर एक वस्तु और उस वस्तु के बारे में जानकारी का प्रतिनिधित्व करता है। वस्तुएं आमतौर पर भौतिक वस्तुएं या अवधारणाएं होती हैं। एक संबंध को आमतौर पर एक टेबल (डेटाबेस) के रूप में वर्णित किया जाता है, जो पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) में व्यवस्थित होता है। एक विशेषता द्वारा संदर्भित सभी डेटा एक ही [[डेटा डोमेन]] में हैं और समान बाधाओं के अनुरूप हैं।


रिलेशनल मॉडल निर्दिष्ट करता है कि किसी संबंध के ट्यूपल्स का कोई विशिष्ट क्रम नहीं होता है और ट्यूपल्स, बदले में, एट्रीब्यूट्स पर कोई ऑर्डर नहीं थोपते हैं। एप्लिकेशन प्रश्नों को निर्दिष्ट करके डेटा तक पहुंचते हैं, जो संचालन का उपयोग करते हैं जैसे कि टुपल्स की पहचान करने के लिए चयन करें, विशेषताओं की पहचान करने के लिए प्रोजेक्ट करें और संबंधों को संयोजित करने के लिए जुड़ें। इन्सर्ट, डिलीट और अपडेट ऑपरेटरों का उपयोग करके संबंधों को संशोधित किया जा सकता है। नए टपल स्पष्ट मान प्रदान कर सकते हैं या किसी क्वेरी से प्राप्त किए जा सकते हैं। इसी तरह, अद्यतन या हटाने के लिए प्रश्न टुपल्स की पहचान करते हैं।
रिलेशनल मॉडल निर्दिष्ट करता है कि किसी संबंध के ट्यूपल्स का कोई विशिष्ट क्रम नहीं होता है और ट्यूपल्स, बदले में, एट्रीब्यूट्स पर कोई ऑर्डर नहीं थोपते हैं। एप्लिकेशन प्रश्नों को निर्दिष्ट करके डेटा तक पहुंचते हैं, जो संचालन का उपयोग करते हैं जैसे कि टुपल्स की पहचान करने के लिए चयन करें, विशेषताओं की पहचान करने के लिए प्रोजेक्ट करें और संबंधों को संयोजित करने के लिए जुड़ें। इन्सर्ट, डिलीट और अपडेट ऑपरेटरों का उपयोग करके संबंधों को संशोधित किया जा सकता है। नए टपल स्पष्ट मान प्रदान कर सकते हैं या किसी क्वेरी से प्राप्त किए जा सकते हैं। इसी तरह, अद्यतन या हटाने के लिए प्रश्न टुपल्स की पहचान करते हैं।


Tuples परिभाषा के अनुसार अद्वितीय हैं। यदि टपल में एक [[उम्मीदवार कुंजी]] या प्राथमिक कुंजी है तो जाहिर है कि यह अद्वितीय है; हालाँकि, एक प्राथमिक कुंजी को एक पंक्ति या रिकॉर्ड के लिए टपल होने के लिए परिभाषित करने की आवश्यकता नहीं है। एक टपल की परिभाषा के लिए यह आवश्यक है कि यह अद्वितीय हो, लेकिन परिभाषित करने के लिए प्राथमिक कुंजी की आवश्यकता नहीं है। क्योंकि एक टपल अद्वितीय है, परिभाषा के अनुसार इसकी विशेषताएँ एक [[key]] का गठन करती हैं।
टुपल्स परिभाषा के अनुसार अद्वितीय हैं। यदि टपल में एक [[उम्मीदवार कुंजी]] या प्राथमिक कुंजी है तो जाहिर है कि यह अद्वितीय है; हालाँकि, एक प्राथमिक कुंजी को एक पंक्ति या रिकॉर्ड के लिए टपल होने के लिए परिभाषित करने की आवश्यकता नहीं है। एक टपल की परिभाषा के लिए यह आवश्यक है कि यह अद्वितीय हो, लेकिन परिभाषित करने के लिए प्राथमिक कुंजी की आवश्यकता नहीं है। क्योंकि एक टपल अद्वितीय है, परिभाषा के अनुसार इसकी विशेषताएँ एक [[key]] का गठन करती हैं।


== आधार और व्युत्पन्न संबंध ==
== आधार और व्युत्पन्न संबंध ==
{{Main|Relvar|View (database)}}
{{Main|रिल्वर|देखें (डेटाबेस)}}
सभी डेटा को रिलेशन (डेटाबेस) के माध्यम से संग्रहीत और एक्सेस किया जाता है। डेटा स्टोर करने वाले संबंधों को आधार संबंध कहा जाता है, और कार्यान्वयन में तालिकाओं को कहा जाता है। अन्य संबंध डेटा को संग्रहीत नहीं करते हैं, लेकिन अन्य संबंधों के संबंधपरक संक्रियाओं को लागू करके गणना की जाती है। इन संबंधों को कभी-कभी व्युत्पन्न संबंध कहा जाता है। कार्यान्वयन में इन्हें [[देखें (डेटाबेस)]] या क्वेरी कहा जाता है। व्युत्पन्न संबंध इस मायने में सुविधाजनक हैं कि वे एक संबंध के रूप में कार्य करते हैं, भले ही वे कई संबंधों से जानकारी प्राप्त कर सकते हैं। साथ ही, व्युत्पन्न संबंधों को [[अमूर्त परत]] के रूप में उपयोग किया जा सकता है।
सभी डेटा को रिलेशन (डेटाबेस) के माध्यम से संग्रहीत और एक्सेस किया जाता है। डेटा स्टोर करने वाले संबंधों को आधार संबंध कहा जाता है, और कार्यान्वयन में तालिकाओं को कहा जाता है। अन्य संबंध डेटा को संग्रहीत नहीं करते हैं, लेकिन अन्य संबंधों के संबंधपरक संक्रियाओं को लागू करके गणना की जाती है। इन संबंधों को कभी-कभी व्युत्पन्न संबंध कहा जाता है। कार्यान्वयन में इन्हें [[देखें (डेटाबेस)]] या क्वेरी कहा जाता है। व्युत्पन्न संबंध इस मायने में सुविधाजनक हैं कि वे एक संबंध के रूप में कार्य करते हैं, भले ही वे कई संबंधों से जानकारी प्राप्त कर सकते हैं। साथ ही, व्युत्पन्न संबंधों को [[अमूर्त परत]] के रूप में उपयोग किया जा सकता है।


=== डोमेन ===
=== डोमेन ===
{{Main|Data domain}}
{{Main|डेटा डोमेन}}
एक डोमेन किसी दिए गए एट्रिब्यूट के लिए संभावित मानों के सेट का वर्णन करता है, और एट्रिब्यूट के मान पर एक बाधा माना जा सकता है। गणितीय रूप से, एक डोमेन को एक विशेषता से जोड़ने का अर्थ है कि विशेषता के लिए कोई भी मान निर्दिष्ट सेट का एक तत्व होना चाहिए। उदाहरण के लिए, वर्ण स्ट्रिंग ABC पूर्णांक डोमेन में नहीं है, लेकिन पूर्णांक मान 123 है। डोमेन का एक अन्य उदाहरण फ़ील्ड कॉइनफेस के लिए संभावित मानों का वर्णन करता है (हेड्स, टेल्स)। इसलिए, फ़ील्ड कॉइनफेस (0,1) या (एच, टी) जैसे इनपुट मान स्वीकार नहीं करेगा।
 
एक डोमेन किसी दिए गए एट्रिब्यूट के लिए संभावित मानों के सेट का वर्णन करता है, और एट्रिब्यूट के मान पर एक बाधा माना जा सकता है। गणितीय रूप से, एक डोमेन को एक विशेषता से जोड़ने का अर्थ है कि विशेषता के लिए कोई भी मान निर्दिष्ट सेट का एक तत्व होना चाहिए। उदाहरण के लिए, वर्ण स्ट्रिंग एबीसी पूर्णांक डोमेन में नहीं है, लेकिन पूर्णांक मान 123 है। डोमेन का एक अन्य उदाहरण फ़ील्ड कॉइनफेस के लिए संभावित मानों का वर्णन करता है (हेड्स, टेल्स)। इसलिए, फ़ील्ड कॉइनफेस (0,1) या (एच, टी) जैसे इनपुट मान स्वीकार नहीं करेगा।


== बाधाएं ==
== बाधाएं ==
किसी विशेषता के डोमेन को और प्रतिबंधित करना संभव बनाने के लिए अक्सर बाधाओं का उपयोग किया जाता है। उदाहरण के लिए, एक बाधा किसी दिए गए पूर्णांक विशेषता को 1 और 10 के बीच के मानों तक सीमित कर सकती है। बाधाएं डेटाबेस में व्यावसायिक नियमों को लागू करने का एक तरीका प्रदान करती हैं और एप्लिकेशन परत के भीतर बाद के डेटा उपयोग का समर्थन करती हैं। एसक्यूएल चेक बाधाओं के रूप में बाधा कार्यक्षमता लागू करता है।
किसी विशेषता के डोमेन को और प्रतिबंधित करना संभव बनाने के लिए अक्सर बाधाओं का उपयोग किया जाता है। उदाहरण के लिए, एक बाधा किसी दिए गए पूर्णांक विशेषता को 1 और 10 के बीच के मानों तक सीमित कर सकती है। बाधाएं डेटाबेस में व्यावसायिक नियमों को लागू करने का एक तरीका प्रदान करती हैं और एप्लिकेशन परत के भीतर बाद के डेटा उपयोग का समर्थन करती हैं। एसक्यूएल चेक बाधाओं के रूप में बाधा कार्यक्षमता लागू करता है।


प्रतिबंध उस डेटा को प्रतिबंधित करते हैं जिसे संबंध (डेटाबेस) में संग्रहीत किया जा सकता है। इन्हें आम तौर पर एक्सप्रेशन का उपयोग करके परिभाषित किया जाता है जिसके परिणामस्वरूप a [[बूलियन डेटा प्रकार]] मान, यह दर्शाता है कि डेटा बाधा को संतुष्ट करता है या नहीं। प्रतिबन्ध एकल विशेषताओं, टपल (विशेषताओं के संयोजन को प्रतिबंधित करना) या संपूर्ण संबंध पर लागू हो सकते हैं।
प्रतिबंध उस डेटा को प्रतिबंधित करते हैं जिसे संबंध (डेटाबेस) में संग्रहीत किया जा सकता है। इन्हें आम तौर पर एक्सप्रेशन का उपयोग करके परिभाषित किया जाता है जिसके परिणामस्वरूप [[बूलियन डेटा प्रकार]] मान, यह दर्शाता है कि डेटा बाधा को संतुष्ट करता है या नहीं। प्रतिबन्ध एकल विशेषताओं, टपल (विशेषताओं के संयोजन को प्रतिबंधित करना) या संपूर्ण संबंध पर लागू हो सकते हैं।


चूँकि प्रत्येक विशेषता का एक संबद्ध डोमेन होता है, इसलिए बाधाएँ (डोमेन बाधाएँ) होती हैं। रिलेशनल मॉडल के लिए दो प्रमुख नियमों को इकाई अखंडता और संदर्भात्मक अखंडता के रूप में जाना जाता है।
चूँकि प्रत्येक विशेषता का एक संबद्ध डोमेन होता है, इसलिए बाधाएँ (डोमेन बाधाएँ) होती हैं। रिलेशनल मॉडल के लिए दो प्रमुख नियमों को इकाई अखंडता और संदर्भात्मक अखंडता के रूप में जाना जाता है।


=== प्राथमिक कुंजी ===
=== प्राथमिक कुंजी ===
{{Main|Unique key|Primary key}}
{{Main|अनूठी कुंजी|प्राथमिक कुंजी}}
प्रत्येक संबंध (डेटाबेस)/टेबल की प्राथमिक कुंजी होती है, यह एक [[सेट (गणित)]] होने के संबंध का परिणाम है। {{Sfnp|Date|1984|p=268}} एक प्राथमिक कुंजी विशिष्ट रूप से एक तालिका के भीतर एक टपल निर्दिष्ट करती है। जबकि प्राकृतिक विशेषताएँ (प्रविष्ट किए जा रहे डेटा का वर्णन करने के लिए उपयोग की जाने वाली विशेषताएँ) कभी-कभी अच्छी प्राथमिक कुंजियाँ होती हैं, इसके बजाय अक्सर सरोगेट कुंजियों का उपयोग किया जाता है। एक [[सरोगेट कुंजी]] एक कृत्रिम विशेषता है जो किसी वस्तु को सौंपी जाती है जो इसे विशिष्ट रूप से पहचानती है (उदाहरण के लिए, एक स्कूल में छात्रों के बारे में जानकारी की एक तालिका में उन्हें अलग करने के लिए सभी को एक छात्र आईडी सौंपी जा सकती है)। सरोगेट कुंजी का कोई आंतरिक (अंतर्निहित) अर्थ नहीं है, बल्कि इसकी विशिष्ट रूप से एक टपल की पहचान करने की क्षमता के माध्यम से उपयोगी है।
प्रत्येक संबंध (डेटाबेस)/टेबल की प्राथमिक कुंजी होती है, यह एक [[सेट (गणित)]] होने के संबंध का परिणाम है। {{Sfnp|Date|1984|p=268}} एक प्राथमिक कुंजी विशिष्ट रूप से एक तालिका के भीतर एक टपल निर्दिष्ट करती है। जबकि प्राकृतिक विशेषताएँ (प्रविष्ट किए जा रहे डेटा का वर्णन करने के लिए उपयोग की जाने वाली विशेषताएँ) कभी-कभी अच्छी प्राथमिक कुंजियाँ होती हैं, इसके बजाय अक्सर सरोगेट कुंजियों का उपयोग किया जाता है। एक [[सरोगेट कुंजी]] एक कृत्रिम विशेषता है जो किसी वस्तु को सौंपी जाती है जो इसे विशिष्ट रूप से पहचानती है (उदाहरण के लिए, एक स्कूल में छात्रों के बारे में जानकारी की एक तालिका में उन्हें अलग करने के लिए सभी को एक छात्र आईडी सौंपी जा सकती है)। सरोगेट कुंजी का कोई आंतरिक (अंतर्निहित) अर्थ नहीं है, बल्कि इसकी विशिष्ट रूप से एक टपल की पहचान करने की क्षमता के माध्यम से उपयोगी है।


Line 136: Line 139:


=== विदेशी कुंजी ===
=== विदेशी कुंजी ===
{{Main|Foreign key}}
{{Main|विदेशी कुंजी}}
विदेशी कुंजी एक संबंधपरक तालिका में एक फ़ील्ड को संदर्भित करती है जो किसी अन्य तालिका के प्राथमिक कुंजी कॉलम से मेल खाती है। यह दो चाबियों से संबंधित है। संदर्भ संबंध में विदेशी कुंजी के अद्वितीय मान होने की आवश्यकता नहीं है। [[प्रति संदर्भ]] टेबल के लिए एक विदेशी कुंजी का उपयोग किया जा सकता है, और यह संदर्भित संबंध में एक या एक से अधिक विशेषताओं के डोमेन को प्रतिबंधित करने के लिए संदर्भित संबंध में विशेषताओं के मूल्यों का प्रभावी ढंग से उपयोग करता है। अवधारणा को औपचारिक रूप से वर्णित किया गया है: संदर्भित विशेषताओं पर प्रक्षेपित संदर्भित संबंध में सभी टुपल्स के लिए, संदर्भित संबंध में एक टपल मौजूद होना चाहिए जो समान विशेषताओं पर अनुमानित हो, जैसे कि प्रत्येक संदर्भित विशेषताओं में मान संबंधित मूल्यों से मेल खाते हों। संदर्भित गुण।
विदेशी कुंजी एक संबंधपरक तालिका में एक फ़ील्ड को संदर्भित करती है जो किसी अन्य तालिका के प्राथमिक कुंजी कॉलम से मेल खाती है। यह दो चाबियों से संबंधित है। संदर्भ संबंध में विदेशी कुंजी के अद्वितीय मान होने की आवश्यकता नहीं है। [[प्रति संदर्भ]] टेबल के लिए एक विदेशी कुंजी का उपयोग किया जा सकता है, और यह संदर्भित संबंध में एक या एक से अधिक विशेषताओं के डोमेन को प्रतिबंधित करने के लिए संदर्भित संबंध में विशेषताओं के मूल्यों का प्रभावी ढंग से उपयोग करता है। अवधारणा को औपचारिक रूप से वर्णित किया गया है: संदर्भित विशेषताओं पर प्रक्षेपित संदर्भित संबंध में सभी टुपल्स के लिए, संदर्भित संबंध में एक टपल मौजूद होना चाहिए जो समान विशेषताओं पर अनुमानित हो, जैसे कि प्रत्येक संदर्भित विशेषताओं में मान संबंधित मूल्यों से मेल खाते हों। संदर्भित गुण।


=== संग्रहीत कार्यविधियाँ ===
=== संग्रहीत कार्यविधियाँ ===
{{Main|Stored procedure}}
{{Main|संग्रहीत प्रक्रिया}}
एक संग्रहीत कार्यविधि निष्पादन योग्य कोड है जो डेटाबेस से जुड़ा होता है और आमतौर पर इसमें संग्रहीत होता है। संग्रहीत कार्यविधियाँ आम तौर पर सामान्य संचालन को इकट्ठा और अनुकूलित करती हैं, जैसे एक संबंध (डेटाबेस) में एक टपल सम्मिलित करना, उपयोग पैटर्न के बारे में सांख्यिकीय जानकारी एकत्र करना, या जटिल व्यावसायिक तर्क और गणनाओं को समाहित करना। अक्सर वे सुरक्षा या सरलता के लिए [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] (एपीआई) के रूप में उपयोग किए जाते हैं। एसक्यूएल आरडीबीएमएस पर संग्रहीत प्रक्रियाओं के कार्यान्वयन अक्सर डेवलपर्स को मानक [[घोषणात्मक प्रोग्रामिंग]] एसक्यूएल सिंटैक्स के लिए [[प्रक्रियात्मक प्रोग्रामिंग]] एक्सटेंशन (अक्सर विक्रेता-विशिष्ट) का लाभ लेने की अनुमति देते हैं।
एक संग्रहीत कार्यविधि निष्पादन योग्य कोड है जो डेटाबेस से जुड़ा होता है और आमतौर पर इसमें संग्रहीत होता है। संग्रहीत कार्यविधियाँ आम तौर पर सामान्य संचालन को इकट्ठा और अनुकूलित करती हैं, जैसे एक संबंध (डेटाबेस) में एक टपल सम्मिलित करना, उपयोग पैटर्न के बारे में सांख्यिकीय जानकारी एकत्र करना, या जटिल व्यावसायिक तर्क और गणनाओं को समाहित करना। अक्सर वे सुरक्षा या सरलता के लिए [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] (एपीआई) के रूप में उपयोग किए जाते हैं। एसक्यूएल आरडीबीएमएस पर संग्रहीत प्रक्रियाओं के कार्यान्वयन अक्सर डेवलपर्स को मानक [[घोषणात्मक प्रोग्रामिंग]] एसक्यूएल सिंटैक्स के लिए [[प्रक्रियात्मक प्रोग्रामिंग]] एक्सटेंशन (अक्सर विक्रेता-विशिष्ट) का लाभ लेने की अनुमति देते हैं।
संग्रहीत कार्यविधियाँ संबंधपरक डेटाबेस मॉडल का हिस्सा नहीं हैं, लेकिन सभी व्यावसायिक कार्यान्वयन में वे शामिल हैं।
संग्रहीत कार्यविधियाँ संबंधपरक डेटाबेस मॉडल का हिस्सा नहीं हैं, लेकिन सभी व्यावसायिक कार्यान्वयन में वे शामिल हैं।


=== सूचकांक ===
=== सूचकांक ===
{{Main|Index (database)}}
{{Main|सूचकांक (डेटाबेस)}}
इंडेक्स डेटा तक त्वरित पहुंच प्रदान करने का एक तरीका है। संबंध (डेटाबेस) पर विशेषताओं के किसी भी संयोजन पर सूचकांक बनाए जा सकते हैं। उन विशेषताओं का उपयोग करके फ़िल्टर करने वाली क्वेरीज़ इंडेक्स ([[हैश तालिका]] लुकअप के समान) का उपयोग करके सीधे मिलान वाले टुपल्स को पा सकती हैं, बदले में प्रत्येक टपल की जांच किए बिना। यह उस पृष्ठ पर सीधे जाने के लिए [[अनुक्रमणिका (प्रकाशन)]] का उपयोग करने के समान है, जिस पर आप जो जानकारी खोज रहे हैं, वह पाई जाती है, ताकि आप जो खोज रहे हैं उसे खोजने के लिए आपको पूरी किताब न पढ़नी पड़े। संबंधपरक डेटाबेस आमतौर पर कई अनुक्रमण तकनीकों की आपूर्ति करते हैं, जिनमें से प्रत्येक डेटा वितरण, संबंध आकार और विशिष्ट पहुंच पैटर्न के कुछ संयोजन के लिए इष्टतम है। इंडेक्स आमतौर पर [[बी + पेड़]], आर-पेड़ और [[बिटमैप इंडेक्स]] के माध्यम से कार्यान्वित किए जाते हैं।  
इंडेक्स डेटा तक त्वरित पहुंच प्रदान करने का एक तरीका है। संबंध (डेटाबेस) पर विशेषताओं के किसी भी संयोजन पर सूचकांक बनाए जा सकते हैं। उन विशेषताओं का उपयोग करके फ़िल्टर करने वाली क्वेरीज़ इंडेक्स ([[हैश तालिका]] लुकअप के समान) का उपयोग करके सीधे मिलान वाले टुपल्स को पा सकती हैं, बदले में प्रत्येक टपल की जांच किए बिना। यह उस पृष्ठ पर सीधे जाने के लिए [[अनुक्रमणिका (प्रकाशन)]] का उपयोग करने के समान है, जिस पर आप जो जानकारी खोज रहे हैं, वह पाई जाती है, ताकि आप जो खोज रहे हैं उसे खोजने के लिए आपको पूरी किताब न पढ़नी पड़े। संबंधपरक डेटाबेस आमतौर पर कई अनुक्रमण तकनीकों की आपूर्ति करते हैं, जिनमें से प्रत्येक डेटा वितरण, संबंध आकार और विशिष्ट पहुंच पैटर्न के कुछ संयोजन के लिए इष्टतम है। इंडेक्स आमतौर पर [[बी + पेड़]], आर-पेड़ और [[बिटमैप इंडेक्स]] के माध्यम से कार्यान्वित किए जाते हैं।  


Line 151: Line 155:


== रिलेशनल ऑपरेशंस ==
== रिलेशनल ऑपरेशंस ==
{{Main|Relational algebra}}
{{Main|संबंधपरक बीजगणित}}
रिलेशनल डेटाबेस के विरुद्ध की गई क्वेरीज़, और डेटाबेस में व्युत्पन्न [[अस्रकार]] [[संबंधपरक गणना]] या रिलेशनल बीजगणित में व्यक्त किए जाते हैं। अपने मूल [[संबंधपरक बीजगणित]] में, Codd ने आठ संबंधपरक ऑपरेटरों को चार ऑपरेटरों के दो समूहों में पेश किया। पहले चार ऑपरेटर पारंपरिक गणितीय सेट सिद्धांत पर आधारित थे:
रिलेशनल डेटाबेस के विरुद्ध की गई क्वेरीज़, और डेटाबेस में व्युत्पन्न [[अस्रकार]] [[संबंधपरक गणना]] या रिलेशनल बीजगणित में व्यक्त किए जाते हैं। अपने मूल [[संबंधपरक बीजगणित]] में, कॉड ने आठ संबंधपरक ऑपरेटरों को चार ऑपरेटरों के दो समूहों में पेश किया। पहले चार ऑपरेटर पारंपरिक गणितीय सेट सिद्धांत पर आधारित थे:
* [[संघ (सेट सिद्धांत)]] ऑपरेटर (υ) दो संबंधों (डेटाबेस) के ट्यूपल्स को जोड़ता है और परिणाम से सभी डुप्लिकेट ट्यूपल्स को हटा देता है। रिलेशनल यूनियन ऑपरेटर [[संघ (एसक्यूएल)]] ऑपरेटर के बराबर है।
* [[संघ (सेट सिद्धांत)]] ऑपरेटर (υ) दो संबंधों (डेटाबेस) के ट्यूपल्स को जोड़ता है और परिणाम से सभी डुप्लिकेट ट्यूपल्स को हटा देता है। रिलेशनल यूनियन ऑपरेटर [[संघ (एसक्यूएल)]] ऑपरेटर के बराबर है।
* इंटरसेक्शन ([[समुच्चय सिद्धान्त]]) ऑपरेटर (∩) टुपल्स के सेट का उत्पादन करता है जो दो संबंधों को साझा करता है। इंटरसेक्शन को SQL में इंटरसेक्ट (SQL) ऑपरेटर के रूप में कार्यान्वित किया जाता है।
* इंटरसेक्शन ([[समुच्चय सिद्धान्त]]) ऑपरेटर (∩) टुपल्स के सेट का उत्पादन करता है जो दो संबंधों को साझा करता है। इंटरसेक्शन को एसक्यूएल में इंटरसेक्ट (एसक्यूएल) ऑपरेटर के रूप में कार्यान्वित किया जाता है।
* [[पूरक (सेट सिद्धांत)]] ऑपरेटर (-) दो संबंधों पर कार्य करता है और पहले संबंध से टुपल्स का सेट उत्पन्न करता है जो दूसरे संबंध में मौजूद नहीं होता है। अंतर को SQL में एक्सेप्ट (SQL) या MINUS ऑपरेटर के रूप में कार्यान्वित किया जाता है।
* [[पूरक (सेट सिद्धांत)]] ऑपरेटर (-) दो संबंधों पर कार्य करता है और पहले संबंध से टुपल्स का सेट उत्पन्न करता है जो दूसरे संबंध में मौजूद नहीं होता है। अंतर को एसक्यूएल में एक्सेप्ट (एसक्यूएल) या MINUS ऑपरेटर के रूप में कार्यान्वित किया जाता है।
* दो संबंधों का कार्टेशियन उत्पाद (एक्स) एक ऐसा जुड़ाव है जो किसी भी मानदंड से प्रतिबंधित नहीं है, जिसके परिणामस्वरूप पहले संबंध का प्रत्येक ट्यूपल दूसरे संबंध के प्रत्येक ट्यूपल से मेल खाता है। कार्टेशियन उत्पाद SQL में [[क्रॉस जॉइन करें]] ऑपरेटर के रूप में लागू किया गया है।
* दो संबंधों का कार्टेशियन उत्पाद (एक्स) एक ऐसा जुड़ाव है जो किसी भी मानदंड से प्रतिबंधित नहीं है, जिसके परिणामस्वरूप पहले संबंध का प्रत्येक ट्यूपल दूसरे संबंध के प्रत्येक ट्यूपल से मेल खाता है। कार्टेशियन उत्पाद एसक्यूएल में [[क्रॉस जॉइन करें]] ऑपरेटर के रूप में लागू किया गया है।
Codd द्वारा प्रस्तावित शेष ऑपरेटरों में रिलेशनल डेटाबेस के लिए विशेष ऑपरेशन शामिल हैं:
कॉड द्वारा प्रस्तावित शेष ऑपरेटरों में रिलेशनल डेटाबेस के लिए विशेष ऑपरेशन शामिल हैं:
* चयन, या प्रतिबंध, ऑपरेशन (σ) एक संबंध से टुपल्स को पुनः प्राप्त करता है, परिणामों को केवल उन तक सीमित करता है जो एक विशिष्ट मानदंड को पूरा करते हैं, [[चौराहा (सेट सिद्धांत)]] के संदर्भ में एक [[सबसेट]]। चयन का SQL समतुल्य चयन (SQL) क्वेरी स्टेटमेंट है जिसमें एक कहाँ (SQL) खंड है।
* चयन, या प्रतिबंध, ऑपरेशन (σ) एक संबंध से टुपल्स को पुनः प्राप्त करता है, परिणामों को केवल उन तक सीमित करता है जो एक विशिष्ट मानदंड को पूरा करते हैं, [[चौराहा (सेट सिद्धांत)]] के संदर्भ में एक [[सबसेट]]। चयन का एसक्यूएल समतुल्य चयन (एसक्यूएल) क्वेरी स्टेटमेंट है जिसमें एक कहाँ (एसक्यूएल) खंड है।
* प्रोजेक्शन (रिलेशनल बीजगणित) (π) टपल या टुपल्स के सेट से केवल निर्दिष्ट विशेषताओं को निकालता है।
* प्रोजेक्शन (रिलेशनल बीजगणित) (π) टपल या टुपल्स के सेट से केवल निर्दिष्ट विशेषताओं को निकालता है।
* रिलेशनल डेटाबेस के लिए परिभाषित जॉइन ऑपरेशन को अक्सर प्राकृतिक जॉइन (⋈) के रूप में जाना जाता है। इस प्रकार के जुड़ाव में, दो संबंध उनके सामान्य गुणों से जुड़े होते हैं। MySQL का एक प्राकृतिक जुड़ाव का सन्निकटन [[आंतरिक रूप से जुड़ा]] ऑपरेटर है। SQL में, INNER JOIN एक कार्टेशियन उत्पाद को तब होने से रोकता है जब किसी क्वेरी में दो तालिकाएँ हों। SQL क्वेरी में जोड़ी गई प्रत्येक तालिका के लिए, कार्टेशियन उत्पाद को रोकने के लिए एक अतिरिक्त INNER JOIN जोड़ा जाता है। इस प्रकार, SQL क्वेरी में N तालिकाओं के लिए, कार्तीय उत्पाद को रोकने के लिए N−1 INNER JOINS होना चाहिए।
* रिलेशनल डेटाबेस के लिए परिभाषित जॉइन ऑपरेशन को अक्सर प्राकृतिक जॉइन (⋈) के रूप में जाना जाता है। इस प्रकार के जुड़ाव में, दो संबंध उनके सामान्य गुणों से जुड़े होते हैं। Myएसक्यूएल का एक प्राकृतिक जुड़ाव का सन्निकटन [[आंतरिक रूप से जुड़ा]] ऑपरेटर है। एसक्यूएल में,आंतरिक रूप से जुड़ा एक कार्टेशियन उत्पाद को तब होने से रोकता है जब किसी क्वेरी में दो तालिकाएँ हों। एसक्यूएल क्वेरी में जोड़ी गई प्रत्येक तालिका के लिए, कार्टेशियन उत्पाद को रोकने के लिए एक अतिरिक्त आंतरिक रूप से  जोड़ा जाता है। इस प्रकार, एसक्यूएल क्वेरी में N तालिकाओं के लिए, कार्तीय उत्पाद को रोकने के लिए N−1 INNER JOINS होना चाहिए।
[[प्रक्षेपण (संबंधपरक बीजगणित)]]#डिवीजन (÷) ऑपरेशन थोड़ा अधिक जटिल ऑपरेशन है और अनिवार्य रूप से एक दूसरे संबंध (भाजक) को विभाजित करने के लिए एक संबंध (लाभांश) के टुपल्स का उपयोग करना शामिल है। रिलेशनल डिवीजन ऑपरेटर कार्तीय उत्पाद ऑपरेटर (इसलिए नाम) के प्रभावी रूप से विपरीत है।
[[प्रक्षेपण (संबंधपरक बीजगणित)]]#डिवीजन (÷) ऑपरेशन थोड़ा अधिक जटिल ऑपरेशन है और अनिवार्य रूप से एक दूसरे संबंध (भाजक) को विभाजित करने के लिए एक संबंध (लाभांश) के टुपल्स का उपयोग करना शामिल है। रिलेशनल डिवीजन ऑपरेटर कार्तीय उत्पाद ऑपरेटर (इसलिए नाम) के प्रभावी रूप से विपरीत है।


Codd के मूल आठ के परिचय के बाद से अन्य ऑपरेटरों को पेश या प्रस्तावित किया गया है, जिसमें रिलेशनल तुलना ऑपरेटर और एक्सटेंशन शामिल हैं जो दूसरों के बीच नेस्टिंग और पदानुक्रमित डेटा के लिए समर्थन प्रदान करते हैं।
कॉड के मूल आठ के परिचय के बाद से अन्य ऑपरेटरों को पेश या प्रस्तावित किया गया है, जिसमें रिलेशनल तुलना ऑपरेटर और एक्सटेंशन शामिल हैं जो दूसरों के बीच नेस्टिंग और पदानुक्रमित डेटा के लिए समर्थन प्रदान करते हैं।


== सामान्यीकरण ==
== सामान्यीकरण ==
Line 172: Line 176:
[[File:RDBMS structure.png|thumbnail|right|संबंधपरक डेटाबेस की सामान्य संरचना]]
[[File:RDBMS structure.png|thumbnail|right|संबंधपरक डेटाबेस की सामान्य संरचना]]
{{See also|Database#Database management system}}
{{See also|Database#Database management system}}
कॉनॉली और बेग डेटाबेस मैनेजमेंट सिस्टम (DBMS) को एक सॉफ्टवेयर सिस्टम के रूप में परिभाषित करते हैं जो उपयोगकर्ताओं को डेटाबेस तक पहुंच को परिभाषित करने, बनाने, बनाए रखने और नियंत्रित करने में सक्षम बनाता है। <ref name="Begg-p64">{{cite book |last1=Connolly |first1=Thomas M. |last2=Begg |first2=Carolyn E. |date=2014 |title=Database Systems – A Practical Approach to Design Implementation and Management |edition=6th |publisher=Pearson |isbn=978-1292061184 |page=64}}</ref> RDBMS उस परिवर्णी शब्द का विस्तार है जो कभी-कभी अंतर्निहित डेटाबेस के संबंधपरक होने पर उपयोग किया जाता है।
कॉनॉली और बेग डेटाबेस मैनेजमेंट सिस्टम (डीबीएमएस) को एक सॉफ्टवेयर सिस्टम के रूप में परिभाषित करते हैं जो उपयोगकर्ताओं को डेटाबेस तक पहुंच को परिभाषित करने, बनाने, बनाए रखने और नियंत्रित करने में सक्षम बनाता है। <ref name="Begg-p64">{{cite book |last1=Connolly |first1=Thomas M. |last2=Begg |first2=Carolyn E. |date=2014 |title=Database Systems – A Practical Approach to Design Implementation and Management |edition=6th |publisher=Pearson |isbn=978-1292061184 |page=64}}</ref> आरडीबीएमएस उस परिवर्णी शब्द का विस्तार है जो कभी-कभी अंतर्निहित डेटाबेस के संबंधपरक होने पर उपयोग किया जाता है।


रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के लिए एक वैकल्पिक परिभाषा रिलेशनल मॉडल पर आधारित डेटाबेस मैनेजमेंट सिस्टम (DBMS) है। आज व्यापक रूप से उपयोग किए जाने वाले अधिकांश डेटाबेस इसी मॉडल पर आधारित हैं।<ref>{{cite book |last1=Pratt |first1=Philip J. |last2=Last |first2=Mary Z. |date=2014-09-08 |title=Concepts of Database Management |edition=8 |publisher=Course Technology |isbn=9781285427102 |page=29 }}</ref>
रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के लिए एक वैकल्पिक परिभाषा रिलेशनल मॉडल पर आधारित डेटाबेस मैनेजमेंट सिस्टम (डीबीएमएस) है। आज व्यापक रूप से उपयोग किए जाने वाले अधिकांश डेटाबेस इसी मॉडल पर आधारित हैं।<ref>{{cite book |last1=Pratt |first1=Philip J. |last2=Last |first2=Mary Z. |date=2014-09-08 |title=Concepts of Database Management |edition=8 |publisher=Course Technology |isbn=9781285427102 |page=29 }}</ref>
आरडीबीएमएस 1980 के दशक से वित्तीय रिकॉर्ड, निर्माण और रसद जानकारी, कर्मियों के डेटा और अन्य अनुप्रयोगों के लिए उपयोग किए जाने वाले डेटाबेस में सूचना के भंडारण के लिए एक सामान्य विकल्प रहा है। रिलेशनल डेटाबेस ने अक्सर लीगेसी [[पदानुक्रमित डेटाबेस]] और [[नेटवर्क डेटाबेस]] को बदल दिया है, क्योंकि RDBMS को लागू करना और प्रशासित करना आसान था। बहरहाल, 1980 और 1990 के दशक में [[वस्तु डेटाबेस]] मैनेजमेंट सिस्टम द्वारा रिलेशनल स्टोर्ड डेटा को निरंतर, असफल चुनौतियों का सामना करना पड़ा, (जो रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड एप्लिकेशन प्रोग्राम के बीच तथाकथित ऑब्जेक्ट-रिलेशनल इम्पीडेंस मिसमैच को संबोधित करने के प्रयास में पेश किए गए थे), साथ ही 1990 के दशक में XML डेटाबेस प्रबंधन प्रणालियों द्वारा।{{citation needed|date=March 2013}} हालाँकि, प्रौद्योगिकियों के विस्तार के कारण, जैसे कि [[कंप्यूटर क्लस्टर]] की [[क्षैतिज स्केलिंग]], [[NoSQL]] डेटाबेस हाल ही में RDBMS डेटाबेस के विकल्प के रूप में लोकप्रिय हुए हैं। <ref>{{cite web |title=NoSQL databases eat into the relational database market |date=4 March 2015 |url=https://www.techrepublic.com/article/nosql-databases-eat-into-the-relational-database-market |access-date=2018-03-14}}</ref>
आरडीबीएमएस 1980 के दशक से वित्तीय रिकॉर्ड, निर्माण और रसद जानकारी, कर्मियों के डेटा और अन्य अनुप्रयोगों के लिए उपयोग किए जाने वाले डेटाबेस में सूचना के भंडारण के लिए एक सामान्य विकल्प रहा है। रिलेशनल डेटाबेस ने अक्सर लीगेसी [[पदानुक्रमित डेटाबेस]] और [[नेटवर्क डेटाबेस]] को बदल दिया है, क्योंकि आरडीबीएमएस को लागू करना और प्रशासित करना आसान था। बहरहाल, 1980 और 1990 के दशक में [[वस्तु डेटाबेस]] मैनेजमेंट सिस्टम द्वारा रिलेशनल स्टोर्ड डेटा को निरंतर, असफल चुनौतियों का सामना करना पड़ा, (जो रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड एप्लिकेशन प्रोग्राम के बीच तथाकथित ऑब्जेक्ट-रिलेशनल इम्पीडेंस मिसमैच को संबोधित करने के प्रयास में पेश किए गए थे), साथ ही 1990 के दशक में XML डेटाबेस प्रबंधन प्रणालियों द्वारा।{{citation needed|date=March 2013}} हालाँकि, प्रौद्योगिकियों के विस्तार के कारण, जैसे कि [[कंप्यूटर क्लस्टर]] की [[क्षैतिज स्केलिंग]], [[NoSQL|Noएसक्यूएल]] डेटाबेस हाल ही में आरडीबीएमएस डेटाबेस के विकल्प के रूप में लोकप्रिय हुए हैं। <ref>{{cite web |title=NoSQL databases eat into the relational database market |date=4 March 2015 |url=https://www.techrepublic.com/article/nosql-databases-eat-into-the-relational-database-market |access-date=2018-03-14}}</ref>




== वितरित संबंधपरक डेटाबेस ==
== वितरित संबंधपरक डेटाबेस ==
[[DRDA]] (DRDA) को 1988 से 1994 की अवधि में आईबीएम के भीतर एक कार्यसमूह द्वारा डिज़ाइन किया गया था। DRDA नेटवर्क से जुड़े रिलेशनल डेटाबेस को SQL अनुरोधों को पूरा करने में सहयोग करने में सक्षम बनाता है। <ref>{{cite journal |last1=Reinsch |first1=R. |date=1988 |title=Distributed database for SAA |journal=IBM Systems Journal |volume=27 |issue=3 |pages=362–389 |doi=10.1147/sj.273.0362}}</ref> <ref>{{cite book |date=1990 |title=Distributed Relational Database Architecture Reference |publisher=IBM Corp. SC26-4651-0}}</ref>  
[[DRDA]] (DRDA) को 1988 से 1994 की अवधि में आईबीएम के भीतर एक कार्यसमूह द्वारा डिज़ाइन किया गया था। DRDA नेटवर्क से जुड़े रिलेशनल डेटाबेस को एसक्यूएल अनुरोधों को पूरा करने में सहयोग करने में सक्षम बनाता है। <ref>{{cite journal |last1=Reinsch |first1=R. |date=1988 |title=Distributed database for SAA |journal=IBM Systems Journal |volume=27 |issue=3 |pages=362–389 |doi=10.1147/sj.273.0362}}</ref> <ref>{{cite book |date=1990 |title=Distributed Relational Database Architecture Reference |publisher=IBM Corp. SC26-4651-0}}</ref>  


डीआरडीए के संदेशों, प्रोटोकॉल और संरचनात्मक घटकों को वितरित डेटा प्रबंधन आर्किटेक्चर द्वारा परिभाषित किया गया है।
डीआरडीए के संदेशों, प्रोटोकॉल और संरचनात्मक घटकों को वितरित डेटा प्रबंधन आर्किटेक्चर द्वारा परिभाषित किया गया है।
Line 191: Line 195:
# आईबीएम डीबी2
# आईबीएम डीबी2
# [[माइक्रोसॉफ्ट पहुंच]]
# [[माइक्रोसॉफ्ट पहुंच]]
# [[SQLite]] (मुफ्त सॉफ्टवेयर)
# [[SQLite|एसक्यूएलite]] (मुफ्त सॉफ्टवेयर)
# [[मारियाडीबी]] (मुफ्त सॉफ्टवेयर)
# [[मारियाडीबी]] (मुफ्त सॉफ्टवेयर)
# स्नोफ्लेक इंक।
# स्नोफ्लेक इंक।
# [[Microsoft]] Azure SQL डेटाबेस
# [[Microsoft]] Azure एसक्यूएल डेटाबेस
# [[अपाचे हाइव]] (मुफ्त सॉफ्टवेयर)
# [[अपाचे हाइव]] (मुफ्त सॉफ्टवेयर)
# [[टेराडाटा]]
# [[टेराडाटा]]


अनुसंधान कंपनी [[गार्टनर]] के अनुसार, 2011 में, राजस्व के हिसाब से पांच प्रमुख [[मालिकाना सॉफ्टवेयर]] रिलेशनल डेटाबेस विक्रेता Oracle Corporation (48.8%), आईबीएम (20.2%), Microsoft (17.0%), [[SAP AG]] सहित [[Sybase]] (4.6%), और Teradata थे। (3.7%)। <ref>{{cite web |date=2012-04-12 |title=Oracle the clear leader in $24 billion RDBMS market |url=http://itknowledgeexchange.techtarget.com/eye-on-oracle/oracle-the-clear-leader-in-24-billion-rdbms-market/ |access-date=2013-03-01}}</ref>
अनुसंधान कंपनी [[गार्टनर]] के अनुसार, 2011 में, राजस्व के हिसाब से पांच प्रमुख [[मालिकाना सॉफ्टवेयर]] रिलेशनल डेटाबेस विक्रेता ओरेकल कॉर्पोरेशन (48.8%), आईबीएम (20.2%), Microsoft (17.0%), [[SAP AG]] सहित [[Sybase]] (4.6%), और Teradata थे। (3.7%)। <ref>{{cite web |date=2012-04-12 |title=Oracle the clear leader in $24 billion RDBMS market |url=http://itknowledgeexchange.techtarget.com/eye-on-oracle/oracle-the-clear-leader-in-24-billion-rdbms-market/ |access-date=2013-03-01}}</ref>




== यह भी देखें ==
== यह भी देखें ==
* एसक्यूएल
* एसक्यूएल
* ऑब्जेक्ट डेटाबेस (OODBMS)
* ऑब्जेक्ट डेटाबेस (OOडीबीएमएस)
* ऑनलाइन विश्लेषणात्मक प्रसंस्करण (OLAP) और [[ROLAP]] (रिलेशनल ऑनलाइन विश्लेषणात्मक प्रसंस्करण)
* ऑनलाइन विश्लेषणात्मक प्रसंस्करण (OLAP) और [[ROLAP]] (रिलेशनल ऑनलाइन विश्लेषणात्मक प्रसंस्करण)
* [[डेटा वेयरहाउस]]
* [[डेटा वेयरहाउस]]

Revision as of 19:18, 22 February 2023

एक रिलेशनल डेटाबेस डेटा के संबंधपरक मॉडल पर आधारित एक (आमतौर पर डिजिटल) डेटाबेस है, जैसा कि 1970 में ई.एफ. कॉड द्वारा प्रस्तावित किया गया था। [1] रिलेशनल डेटाबेस को बनाए रखने के लिए उपयोग की जाने वाली प्रणाली एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (आरडीबीएमएस) है। डेटाबेस को क्वेरी करने और अपडेट करने के लिए कई रिलेशनल डेटाबेस सिस्टम एसक्यूएल (स्ट्रक्चर्ड क्वेरी लैंग्वेज) का उपयोग करने के विकल्प से लैस हैं। [2]


रिलेशनल डेटाबेस शब्द को सबसे पहले एडगर एफ. कॉड|ई द्वारा परिभाषित किया गया था। 1970 में आईबीएम में F. कॉड। कॉड ने अपने शोध पत्र A Relational Model of Data for Big Shared Data Banks में इस शब्द की शुरुआत की। इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल


इतिहास

रिलेशनल डेटाबेस शब्द को सबसे पहले 1970 में आईबीएम में ई.एफ. कॉड द्वारा परिभाषित किया गया था। 1970 में में F. कॉड। कॉड ने अपने शोध पत्र "बड़े साझा डेटा बैंकों के लिए डेटा का एक संबंधपरक मॉडल" में इस शब्द की शुरुआत की। [3]

इस पेपर और बाद के पेपर्स में, उन्होंने परिभाषित किया कि रिलेशनल से उनका क्या मतलब है। रिलेशनल डेटाबेस सिस्टम का गठन करने वाली एक प्रसिद्ध परिभाषा कॉड के 12 नियमों से बनी है। हालाँकि, रिलेशनल मॉडल का कोई भी व्यावसायिक कार्यान्वयन कॉड के सभी नियमों के अनुरूप नहीं है, [4] इसलिए यह शब्द धीरे-धीरे डेटाबेस सिस्टम के एक व्यापक वर्ग का वर्णन करने लगा है, जो कम से कम:

  1. उपयोगकर्ता को संबंध (डेटाबेस) के रूप में डेटा प्रस्तुत करें (सारणीबद्ध रूप में एक प्रस्तुति, यानी तालिका (डेटाबेस) के संग्रह के रूप में प्रत्येक तालिका में पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) का एक सेट होता है);
  2. सारणीबद्ध रूप में डेटा में हेरफेर करने के लिए रिलेशनल ऑपरेटर्स प्रदान करें।

1974 में, आईबीएम ने एक प्रोटोटाइप आरडीबीएमएस विकसित करने के लिए एक शोध परियोजना आईबीएम सिस्टम आर का विकास शुरू किया।[5] [6]

आरडीबीएमएस के रूप में बेची जाने वाली पहली प्रणाली मल्टिक्स रिलेशनल डेटा स्टोर (जून 1976) थी।[citation needed] ओरेकल डेटाबेस को 1979 में संबंधपरक सॉफ्टवेयर, जो अब ओरेकल कॉर्पोरेशन है, द्वारा जारी किया गया था। [7] Ingres (डेटाबेस) और आईबीएम बीएस12 ने अनुसरण किया। आरडीबीएमएस के अन्य उदाहरणों में आईबीएम डीबी2, अनुकूली सर्वर एंटरप्राइज़ और आईबीएम इन्फोर्मिक्स शामिल हैं। 1984 में, मैकिनटोश के लिए पहला आरडीबीएमएस विकसित होना शुरू हुआ, कोड-नाम सिल्वर सर्फर, और 1987 में 4th डाइमेंशन (सॉफ्टवेयर) के रूप में जारी किया गया और आज 4डी के रूप में जाना जाता है। [8]

पहली प्रणालियाँ जो संबंधपरक मॉडल के अपेक्षाकृत विश्वसनीय कार्यान्वयन थीं:

आरडीबीएमएस की सबसे आम परिभाषा एक ऐसा उत्पाद है जो डेटा को पंक्तियों और स्तंभों के संग्रह के रूप में प्रस्तुत करता है, भले ही यह संबंधपरक मॉडल पर सख्ती से आधारित न हो। इस परिभाषा के अनुसार, आरडीबीएमएस उत्पाद आमतौर पर कॉड के सभी 12 नियमों को लागू करते हैं लेकिन सभी को नहीं।

विचार के एक दूसरे स्कूल का तर्क है कि यदि कोई डेटाबेस कॉड के सभी नियमों (या संबंधपरक मॉडल पर वर्तमान समझ, जैसा कि क्रिस्टोफर जे. डेट, ह्यूग डार्वेन और अन्य द्वारा व्यक्त किया गया है) को लागू नहीं करता है, तो यह संबंधपरक नहीं है। कई सिद्धांतकारों और कॉड के सिद्धांतों के अन्य सख्त अनुयायियों द्वारा साझा किया गया यह दृश्य, अधिकांश डीबीएमएस को गैर-संबंधपरक के रूप में अयोग्य घोषित कर देगा। स्पष्टीकरण के लिए, वे अक्सर कुछ आरडीबीएमएसs को ट्रूली-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (टीआरडीबीएमएस) के रूप में संदर्भित करते हैं, दूसरों को स्यूडो-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (Pआरडीबीएमएस) नाम देते हैं।

2009 तक, अधिकांश व्यावसायिक संबंधपरक डीबीएमएस एसक्यूएल को अपनी क्वेरी भाषा के रूप में नियोजित करते हैं। [11]

वैकल्पिक क्वेरी भाषाओं को प्रस्तावित और कार्यान्वित किया गया है, विशेष रूप से 1996 से पहले क्यूयुईएल क्वेरी भाषाओं का कार्यान्वयन।

रिलेशनल मॉडल

एक रिलेशनल मॉडल डेटा को कॉलम (डेटाबेस) और पंक्ति (डेटाबेस) की एक या अधिक तालिका (डेटाबेस) (या संबंध) में व्यवस्थित करता है, जिसमें प्रत्येक पंक्ति की पहचान करने वाली एक अनूठी कुंजी होती है। पंक्तियों को रिकॉर्ड (कंप्यूटर विज्ञान) या टुपलेस भी कहा जाता है। [12] कॉलम को एट्रिब्यूट भी कहा जाता है। आम तौर पर, प्रत्येक तालिका/संबंध एक इकाई प्रकार (जैसे ग्राहक या उत्पाद) का प्रतिनिधित्व करता है। पंक्तियाँ उस प्रकार की इकाई (जैसे ली या कुर्सी) के उदाहरणों का प्रतिनिधित्व करती हैं और कॉलम उस उदाहरण (जैसे पता या मूल्य) के लिए जिम्मेदार मूल्यों का प्रतिनिधित्व करते हैं।

उदाहरण के लिए, कक्षा तालिका की प्रत्येक पंक्ति एक वर्ग से मेल खाती है, और एक कक्षा कई छात्रों से मेल खाती है, इसलिए कक्षा तालिका और छात्र तालिका के बीच का संबंध एक से कई है। [13]


कुंजी

तालिका में प्रत्येक पंक्ति की अपनी अनूठी कुंजी होती है। लिंक की गई पंक्ति की अनूठी कुंजी के लिए एक कॉलम जोड़कर तालिका में पंक्तियों को अन्य तालिकाओं में पंक्तियों से जोड़ा जा सकता है (ऐसे कॉलम को विदेशी कुंजियों के रूप में जाना जाता है)। कॉड ने दिखाया कि मनमाना जटिलता के डेटा संबंधों को अवधारणाओं के एक सरल सेट द्वारा दर्शाया जा सकता है।[citation needed]

इस प्रसंस्करण के भाग में तालिका में एक और केवल एक पंक्ति को लगातार चुनने या संशोधित करने में सक्षम होना शामिल है। इसलिए, अधिकांश भौतिक कार्यान्वयन में तालिका में प्रत्येक पंक्ति के लिए एक अद्वितीय प्राथमिक कुंजी (पीके) होती है। जब तालिका में एक नई पंक्ति लिखी जाती है, तो प्राथमिक कुंजी के लिए एक नया अनूठा मान उत्पन्न होता है; यह वह कुंजी है जिसका उपयोग सिस्टम मुख्य रूप से तालिका तक पहुँचने के लिए करता है। सिस्टम प्रदर्शन पीके के लिए अनुकूलित है। अन्य, अधिक प्राकृतिक कुंजियों को भी वैकल्पिक कुंजियों (एके) के रूप में पहचाना और परिभाषित किया जा सकता है। एके बनाने के लिए अक्सर कई स्तंभों की आवश्यकता होती है (यह एक कारण है कि एक पूर्णांक स्तंभ को आमतौर पर पीके बना दिया जाता है)। पीके और एके दोनों में एक तालिका के भीतर विशिष्ट रूप से एक पंक्ति की पहचान करने की क्षमता होती है। व्यापक सिस्टम आवश्यकताएँ होने पर, दुनिया भर में एक अद्वितीय आईडी, विश्व स्तर पर अद्वितीय पहचानकर्ता सुनिश्चित करने के लिए अतिरिक्त तकनीक लागू की जा सकती है।

डेटाबेस के भीतर प्राथमिक कुंजियों का उपयोग तालिकाओं के बीच संबंधों को परिभाषित करने के लिए किया जाता है। जब कोई पीके किसी अन्य टेबल पर माइग्रेट होता है, तो यह दूसरी टेबल में एक विदेशी कुंजी बन जाता है। जब प्रत्येक सेल में केवल एक मान हो सकता है और पीके नियमित इकाई तालिका में माइग्रेट हो जाता है, तो यह डिज़ाइन पैटर्न या तो एक-से-एक (डेटा मॉडल) | एक-से-एक या एक-से-अनेक (डेटा मॉडल) का प्रतिनिधित्व कर सकता है। |एक-से-अनेक संबंध. अधिकांश रिलेशनल डेटाबेस डिज़ाइन मैनी-टू-मैनी (डेटा मॉडल)|मैनी-टू-मैनी संबंधों को एक अतिरिक्त टेबल बनाकर हल करते हैं जिसमें दोनों अन्य एंटिटी टेबल से पीके होते हैं – रिश्ता एक इकाई बन जाता है; समाधान तालिका को उचित रूप से नाम दिया गया है और दो एफके को पीके बनाने के लिए जोड़ा गया है। पीके का अन्य तालिकाओं में स्थानांतरण दूसरा प्रमुख कारण है कि क्यों सिस्टम-असाइन किए गए पूर्णांक सामान्य रूप से पीके के रूप में उपयोग किए जाते हैं; आमतौर पर अन्य प्रकार के स्तंभों के एक समूह को स्थानांतरित करने में न तो दक्षता होती है और न ही स्पष्टता।

रिश्ते

संबंध इन तालिकाओं के बीच परस्पर क्रिया के आधार पर स्थापित विभिन्न तालिकाओं के बीच एक तार्किक संबंध है।

लेन-देन

एक डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) को कुशलतापूर्वक और सटीक रूप से संचालित करने के लिए, इसे एसीआईडी लेनदेन का उपयोग करना चाहिए। [14] [15] [16]


संग्रहित प्रक्रियाएं

आरडीबीएमएस के भीतर प्रोग्रामिंग का एक हिस्सा संग्रहीत कार्यविधियों (एसपी) का उपयोग करके पूरा किया जाता है। सिस्टम के भीतर और बाहर स्थानांतरित जानकारी की मात्रा को कम करने के लिए अक्सर प्रक्रियाओं का उपयोग किया जा सकता है। बढ़ी हुई सुरक्षा के लिए, सिस्टम डिज़ाइन केवल संग्रहीत कार्यविधियों तक पहुँच प्रदान कर सकता है और सीधे तालिकाओं तक नहीं। मौलिक संग्रहीत कार्यविधियों में नया सम्मिलित करने और मौजूदा डेटा को अद्यतन करने के लिए आवश्यक तर्क शामिल हैं। डेटा के प्रसंस्करण या चयन से संबंधित अतिरिक्त नियमों और तर्क को लागू करने के लिए अधिक जटिल प्रक्रियाएं लिखी जा सकती हैं।

शब्दावली

संबंधपरक डेटाबेस शब्दावली

रिलेशनल डेटाबेस को पहली बार जून 1970 में आईबीएम के आईबीएम अल्माडेन रिसर्च सेंटर के एडगर एफ. कॉड द्वारा परिभाषित किया गया था। [1] आरडीबीएमएस के रूप में अर्हता प्राप्त करने के बारे में कॉड के दृष्टिकोण को कॉड के 12 नियमों में संक्षेपित किया गया है। एक रिलेशनल डेटाबेस डेटाबेस का प्रमुख प्रकार बन गया है। रिलेशनल मॉडल के अलावा अन्य मॉडलों में पदानुक्रमित डेटाबेस मॉडल और नेटवर्क मॉडल शामिल हैं।

नीचे दी गई तालिका कुछ सबसे महत्वपूर्ण संबंधपरक डेटाबेस शर्तों और संबंधित एसक्यूएल शब्द का सार प्रस्तुत करती है:

एसक्यूएल अवधि संबंधपरक डेटाबेस शब्द विवरण
पंक्ति टपल या अभिलेख एक आइटम का प्रतिनिधित्व करने वाला डेटा सेट
कॉलम गुण या मैदान टपल का एक लेबल वाला तत्व, उदा। "पता" या "जन्म तिथि"
Table संबंध या बेस रिल्वर समान विशेषताओं को साझा करने वाले टुपल्स का एक सेट; स्तंभों और पंक्तियों का एक सेट
देखें या परिणाम सेट व्युत्पन्न रिल्वर टुपल्स का कोई सेट; एक प्रश्न के जवाब में 12एम्स की ओर से एक डेटा रिपोर्ट


संबंध या टेबल

एक रिलेशनल डेटाबेस में, एक रिलेशन (डेटाबेस) टुपल्स का एक सेट होता है जिसमें समान विशेषता (कंप्यूटिंग) होती है। एक टपल आमतौर पर एक वस्तु और उस वस्तु के बारे में जानकारी का प्रतिनिधित्व करता है। वस्तुएं आमतौर पर भौतिक वस्तुएं या अवधारणाएं होती हैं। एक संबंध को आमतौर पर एक टेबल (डेटाबेस) के रूप में वर्णित किया जाता है, जो पंक्ति (डेटाबेस) और कॉलम (डेटाबेस) में व्यवस्थित होता है। एक विशेषता द्वारा संदर्भित सभी डेटा एक ही डेटा डोमेन में हैं और समान बाधाओं के अनुरूप हैं।

रिलेशनल मॉडल निर्दिष्ट करता है कि किसी संबंध के ट्यूपल्स का कोई विशिष्ट क्रम नहीं होता है और ट्यूपल्स, बदले में, एट्रीब्यूट्स पर कोई ऑर्डर नहीं थोपते हैं। एप्लिकेशन प्रश्नों को निर्दिष्ट करके डेटा तक पहुंचते हैं, जो संचालन का उपयोग करते हैं जैसे कि टुपल्स की पहचान करने के लिए चयन करें, विशेषताओं की पहचान करने के लिए प्रोजेक्ट करें और संबंधों को संयोजित करने के लिए जुड़ें। इन्सर्ट, डिलीट और अपडेट ऑपरेटरों का उपयोग करके संबंधों को संशोधित किया जा सकता है। नए टपल स्पष्ट मान प्रदान कर सकते हैं या किसी क्वेरी से प्राप्त किए जा सकते हैं। इसी तरह, अद्यतन या हटाने के लिए प्रश्न टुपल्स की पहचान करते हैं।

टुपल्स परिभाषा के अनुसार अद्वितीय हैं। यदि टपल में एक उम्मीदवार कुंजी या प्राथमिक कुंजी है तो जाहिर है कि यह अद्वितीय है; हालाँकि, एक प्राथमिक कुंजी को एक पंक्ति या रिकॉर्ड के लिए टपल होने के लिए परिभाषित करने की आवश्यकता नहीं है। एक टपल की परिभाषा के लिए यह आवश्यक है कि यह अद्वितीय हो, लेकिन परिभाषित करने के लिए प्राथमिक कुंजी की आवश्यकता नहीं है। क्योंकि एक टपल अद्वितीय है, परिभाषा के अनुसार इसकी विशेषताएँ एक key का गठन करती हैं।

आधार और व्युत्पन्न संबंध

सभी डेटा को रिलेशन (डेटाबेस) के माध्यम से संग्रहीत और एक्सेस किया जाता है। डेटा स्टोर करने वाले संबंधों को आधार संबंध कहा जाता है, और कार्यान्वयन में तालिकाओं को कहा जाता है। अन्य संबंध डेटा को संग्रहीत नहीं करते हैं, लेकिन अन्य संबंधों के संबंधपरक संक्रियाओं को लागू करके गणना की जाती है। इन संबंधों को कभी-कभी व्युत्पन्न संबंध कहा जाता है। कार्यान्वयन में इन्हें देखें (डेटाबेस) या क्वेरी कहा जाता है। व्युत्पन्न संबंध इस मायने में सुविधाजनक हैं कि वे एक संबंध के रूप में कार्य करते हैं, भले ही वे कई संबंधों से जानकारी प्राप्त कर सकते हैं। साथ ही, व्युत्पन्न संबंधों को अमूर्त परत के रूप में उपयोग किया जा सकता है।

डोमेन

एक डोमेन किसी दिए गए एट्रिब्यूट के लिए संभावित मानों के सेट का वर्णन करता है, और एट्रिब्यूट के मान पर एक बाधा माना जा सकता है। गणितीय रूप से, एक डोमेन को एक विशेषता से जोड़ने का अर्थ है कि विशेषता के लिए कोई भी मान निर्दिष्ट सेट का एक तत्व होना चाहिए। उदाहरण के लिए, वर्ण स्ट्रिंग एबीसी पूर्णांक डोमेन में नहीं है, लेकिन पूर्णांक मान 123 है। डोमेन का एक अन्य उदाहरण फ़ील्ड कॉइनफेस के लिए संभावित मानों का वर्णन करता है (हेड्स, टेल्स)। इसलिए, फ़ील्ड कॉइनफेस (0,1) या (एच, टी) जैसे इनपुट मान स्वीकार नहीं करेगा।

बाधाएं

किसी विशेषता के डोमेन को और प्रतिबंधित करना संभव बनाने के लिए अक्सर बाधाओं का उपयोग किया जाता है। उदाहरण के लिए, एक बाधा किसी दिए गए पूर्णांक विशेषता को 1 और 10 के बीच के मानों तक सीमित कर सकती है। बाधाएं डेटाबेस में व्यावसायिक नियमों को लागू करने का एक तरीका प्रदान करती हैं और एप्लिकेशन परत के भीतर बाद के डेटा उपयोग का समर्थन करती हैं। एसक्यूएल चेक बाधाओं के रूप में बाधा कार्यक्षमता लागू करता है।

प्रतिबंध उस डेटा को प्रतिबंधित करते हैं जिसे संबंध (डेटाबेस) में संग्रहीत किया जा सकता है। इन्हें आम तौर पर एक्सप्रेशन का उपयोग करके परिभाषित किया जाता है जिसके परिणामस्वरूप बूलियन डेटा प्रकार मान, यह दर्शाता है कि डेटा बाधा को संतुष्ट करता है या नहीं। प्रतिबन्ध एकल विशेषताओं, टपल (विशेषताओं के संयोजन को प्रतिबंधित करना) या संपूर्ण संबंध पर लागू हो सकते हैं।

चूँकि प्रत्येक विशेषता का एक संबद्ध डोमेन होता है, इसलिए बाधाएँ (डोमेन बाधाएँ) होती हैं। रिलेशनल मॉडल के लिए दो प्रमुख नियमों को इकाई अखंडता और संदर्भात्मक अखंडता के रूप में जाना जाता है।

प्राथमिक कुंजी

प्रत्येक संबंध (डेटाबेस)/टेबल की प्राथमिक कुंजी होती है, यह एक सेट (गणित) होने के संबंध का परिणाम है। [17] एक प्राथमिक कुंजी विशिष्ट रूप से एक तालिका के भीतर एक टपल निर्दिष्ट करती है। जबकि प्राकृतिक विशेषताएँ (प्रविष्ट किए जा रहे डेटा का वर्णन करने के लिए उपयोग की जाने वाली विशेषताएँ) कभी-कभी अच्छी प्राथमिक कुंजियाँ होती हैं, इसके बजाय अक्सर सरोगेट कुंजियों का उपयोग किया जाता है। एक सरोगेट कुंजी एक कृत्रिम विशेषता है जो किसी वस्तु को सौंपी जाती है जो इसे विशिष्ट रूप से पहचानती है (उदाहरण के लिए, एक स्कूल में छात्रों के बारे में जानकारी की एक तालिका में उन्हें अलग करने के लिए सभी को एक छात्र आईडी सौंपी जा सकती है)। सरोगेट कुंजी का कोई आंतरिक (अंतर्निहित) अर्थ नहीं है, बल्कि इसकी विशिष्ट रूप से एक टपल की पहचान करने की क्षमता के माध्यम से उपयोगी है।

एक अन्य सामान्य घटना, विशेष रूप से N:M कार्डिनैलिटी के संबंध में यौगिक कुंजी है। एक समग्र कुंजी एक तालिका के भीतर दो या दो से अधिक विशेषताओं से बनी एक कुंजी है जो (एक साथ) विशिष्ट रूप से एक रिकॉर्ड की पहचान करती है।[citation needed]


विदेशी कुंजी

विदेशी कुंजी एक संबंधपरक तालिका में एक फ़ील्ड को संदर्भित करती है जो किसी अन्य तालिका के प्राथमिक कुंजी कॉलम से मेल खाती है। यह दो चाबियों से संबंधित है। संदर्भ संबंध में विदेशी कुंजी के अद्वितीय मान होने की आवश्यकता नहीं है। प्रति संदर्भ टेबल के लिए एक विदेशी कुंजी का उपयोग किया जा सकता है, और यह संदर्भित संबंध में एक या एक से अधिक विशेषताओं के डोमेन को प्रतिबंधित करने के लिए संदर्भित संबंध में विशेषताओं के मूल्यों का प्रभावी ढंग से उपयोग करता है। अवधारणा को औपचारिक रूप से वर्णित किया गया है: संदर्भित विशेषताओं पर प्रक्षेपित संदर्भित संबंध में सभी टुपल्स के लिए, संदर्भित संबंध में एक टपल मौजूद होना चाहिए जो समान विशेषताओं पर अनुमानित हो, जैसे कि प्रत्येक संदर्भित विशेषताओं में मान संबंधित मूल्यों से मेल खाते हों। संदर्भित गुण।

संग्रहीत कार्यविधियाँ

एक संग्रहीत कार्यविधि निष्पादन योग्य कोड है जो डेटाबेस से जुड़ा होता है और आमतौर पर इसमें संग्रहीत होता है। संग्रहीत कार्यविधियाँ आम तौर पर सामान्य संचालन को इकट्ठा और अनुकूलित करती हैं, जैसे एक संबंध (डेटाबेस) में एक टपल सम्मिलित करना, उपयोग पैटर्न के बारे में सांख्यिकीय जानकारी एकत्र करना, या जटिल व्यावसायिक तर्क और गणनाओं को समाहित करना। अक्सर वे सुरक्षा या सरलता के लिए अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) के रूप में उपयोग किए जाते हैं। एसक्यूएल आरडीबीएमएस पर संग्रहीत प्रक्रियाओं के कार्यान्वयन अक्सर डेवलपर्स को मानक घोषणात्मक प्रोग्रामिंग एसक्यूएल सिंटैक्स के लिए प्रक्रियात्मक प्रोग्रामिंग एक्सटेंशन (अक्सर विक्रेता-विशिष्ट) का लाभ लेने की अनुमति देते हैं।

संग्रहीत कार्यविधियाँ संबंधपरक डेटाबेस मॉडल का हिस्सा नहीं हैं, लेकिन सभी व्यावसायिक कार्यान्वयन में वे शामिल हैं।

सूचकांक

इंडेक्स डेटा तक त्वरित पहुंच प्रदान करने का एक तरीका है। संबंध (डेटाबेस) पर विशेषताओं के किसी भी संयोजन पर सूचकांक बनाए जा सकते हैं। उन विशेषताओं का उपयोग करके फ़िल्टर करने वाली क्वेरीज़ इंडेक्स (हैश तालिका लुकअप के समान) का उपयोग करके सीधे मिलान वाले टुपल्स को पा सकती हैं, बदले में प्रत्येक टपल की जांच किए बिना। यह उस पृष्ठ पर सीधे जाने के लिए अनुक्रमणिका (प्रकाशन) का उपयोग करने के समान है, जिस पर आप जो जानकारी खोज रहे हैं, वह पाई जाती है, ताकि आप जो खोज रहे हैं उसे खोजने के लिए आपको पूरी किताब न पढ़नी पड़े। संबंधपरक डेटाबेस आमतौर पर कई अनुक्रमण तकनीकों की आपूर्ति करते हैं, जिनमें से प्रत्येक डेटा वितरण, संबंध आकार और विशिष्ट पहुंच पैटर्न के कुछ संयोजन के लिए इष्टतम है। इंडेक्स आमतौर पर बी + पेड़, आर-पेड़ और बिटमैप इंडेक्स के माध्यम से कार्यान्वित किए जाते हैं।

सूचकांकों को आमतौर पर डेटाबेस का हिस्सा नहीं माना जाता है, क्योंकि उन्हें कार्यान्वयन विवरण माना जाता है, हालांकि सूचकांकों को आमतौर पर उसी समूह द्वारा बनाए रखा जाता है जो डेटाबेस के अन्य भागों को बनाए रखता है। प्राथमिक और विदेशी दोनों कुंजियों पर कुशल अनुक्रमणिका का उपयोग नाटकीय रूप से क्वेरी प्रदर्शन में सुधार कर सकता है। ऐसा इसलिए है क्योंकि आर-वृक्ष इंडेक्स का परिणाम लॉग (एन) के आनुपातिक क्वेरी समय में होता है, जहां एन तालिका में पंक्तियों की संख्या होती है और हैश इंडेक्स का परिणाम निरंतर समय के प्रश्नों में होता है (जब तक इंडेक्स का प्रासंगिक हिस्सा फिट नहीं होता तब तक कोई आकार निर्भरता नहीं होती है) याद)।

रिलेशनल ऑपरेशंस

रिलेशनल डेटाबेस के विरुद्ध की गई क्वेरीज़, और डेटाबेस में व्युत्पन्न अस्रकार संबंधपरक गणना या रिलेशनल बीजगणित में व्यक्त किए जाते हैं। अपने मूल संबंधपरक बीजगणित में, कॉड ने आठ संबंधपरक ऑपरेटरों को चार ऑपरेटरों के दो समूहों में पेश किया। पहले चार ऑपरेटर पारंपरिक गणितीय सेट सिद्धांत पर आधारित थे:

  • संघ (सेट सिद्धांत) ऑपरेटर (υ) दो संबंधों (डेटाबेस) के ट्यूपल्स को जोड़ता है और परिणाम से सभी डुप्लिकेट ट्यूपल्स को हटा देता है। रिलेशनल यूनियन ऑपरेटर संघ (एसक्यूएल) ऑपरेटर के बराबर है।
  • इंटरसेक्शन (समुच्चय सिद्धान्त) ऑपरेटर (∩) टुपल्स के सेट का उत्पादन करता है जो दो संबंधों को साझा करता है। इंटरसेक्शन को एसक्यूएल में इंटरसेक्ट (एसक्यूएल) ऑपरेटर के रूप में कार्यान्वित किया जाता है।
  • पूरक (सेट सिद्धांत) ऑपरेटर (-) दो संबंधों पर कार्य करता है और पहले संबंध से टुपल्स का सेट उत्पन्न करता है जो दूसरे संबंध में मौजूद नहीं होता है। अंतर को एसक्यूएल में एक्सेप्ट (एसक्यूएल) या MINUS ऑपरेटर के रूप में कार्यान्वित किया जाता है।
  • दो संबंधों का कार्टेशियन उत्पाद (एक्स) एक ऐसा जुड़ाव है जो किसी भी मानदंड से प्रतिबंधित नहीं है, जिसके परिणामस्वरूप पहले संबंध का प्रत्येक ट्यूपल दूसरे संबंध के प्रत्येक ट्यूपल से मेल खाता है। कार्टेशियन उत्पाद एसक्यूएल में क्रॉस जॉइन करें ऑपरेटर के रूप में लागू किया गया है।

कॉड द्वारा प्रस्तावित शेष ऑपरेटरों में रिलेशनल डेटाबेस के लिए विशेष ऑपरेशन शामिल हैं:

  • चयन, या प्रतिबंध, ऑपरेशन (σ) एक संबंध से टुपल्स को पुनः प्राप्त करता है, परिणामों को केवल उन तक सीमित करता है जो एक विशिष्ट मानदंड को पूरा करते हैं, चौराहा (सेट सिद्धांत) के संदर्भ में एक सबसेट। चयन का एसक्यूएल समतुल्य चयन (एसक्यूएल) क्वेरी स्टेटमेंट है जिसमें एक कहाँ (एसक्यूएल) खंड है।
  • प्रोजेक्शन (रिलेशनल बीजगणित) (π) टपल या टुपल्स के सेट से केवल निर्दिष्ट विशेषताओं को निकालता है।
  • रिलेशनल डेटाबेस के लिए परिभाषित जॉइन ऑपरेशन को अक्सर प्राकृतिक जॉइन (⋈) के रूप में जाना जाता है। इस प्रकार के जुड़ाव में, दो संबंध उनके सामान्य गुणों से जुड़े होते हैं। Myएसक्यूएल का एक प्राकृतिक जुड़ाव का सन्निकटन आंतरिक रूप से जुड़ा ऑपरेटर है। एसक्यूएल में,आंतरिक रूप से जुड़ा एक कार्टेशियन उत्पाद को तब होने से रोकता है जब किसी क्वेरी में दो तालिकाएँ हों। एसक्यूएल क्वेरी में जोड़ी गई प्रत्येक तालिका के लिए, कार्टेशियन उत्पाद को रोकने के लिए एक अतिरिक्त आंतरिक रूप से जोड़ा जाता है। इस प्रकार, एसक्यूएल क्वेरी में N तालिकाओं के लिए, कार्तीय उत्पाद को रोकने के लिए N−1 INNER JOINS होना चाहिए।

प्रक्षेपण (संबंधपरक बीजगणित)#डिवीजन (÷) ऑपरेशन थोड़ा अधिक जटिल ऑपरेशन है और अनिवार्य रूप से एक दूसरे संबंध (भाजक) को विभाजित करने के लिए एक संबंध (लाभांश) के टुपल्स का उपयोग करना शामिल है। रिलेशनल डिवीजन ऑपरेटर कार्तीय उत्पाद ऑपरेटर (इसलिए नाम) के प्रभावी रूप से विपरीत है।

कॉड के मूल आठ के परिचय के बाद से अन्य ऑपरेटरों को पेश या प्रस्तावित किया गया है, जिसमें रिलेशनल तुलना ऑपरेटर और एक्सटेंशन शामिल हैं जो दूसरों के बीच नेस्टिंग और पदानुक्रमित डेटा के लिए समर्थन प्रदान करते हैं।

सामान्यीकरण

सामान्यीकरण को सबसे पहले कॉड द्वारा संबंधपरक मॉडल के एक अभिन्न अंग के रूप में प्रस्तावित किया गया था। इसमें गैर-सरल डोमेन (गैर-परमाणु मान) और डेटा के अतिरेक (दोहराव) को खत्म करने के लिए डिज़ाइन की गई प्रक्रियाओं का एक सेट शामिल है, जो बदले में डेटा हेरफेर विसंगतियों और डेटा अखंडता के नुकसान को रोकता है। डेटाबेस पर लागू सामान्यीकरण के सबसे सामान्य रूपों को डेटाबेस सामान्यीकरण # सामान्य रूप कहा जाता है।

आरडीबीएमएस

संबंधपरक डेटाबेस की सामान्य संरचना

कॉनॉली और बेग डेटाबेस मैनेजमेंट सिस्टम (डीबीएमएस) को एक सॉफ्टवेयर सिस्टम के रूप में परिभाषित करते हैं जो उपयोगकर्ताओं को डेटाबेस तक पहुंच को परिभाषित करने, बनाने, बनाए रखने और नियंत्रित करने में सक्षम बनाता है। [18] आरडीबीएमएस उस परिवर्णी शब्द का विस्तार है जो कभी-कभी अंतर्निहित डेटाबेस के संबंधपरक होने पर उपयोग किया जाता है।

रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के लिए एक वैकल्पिक परिभाषा रिलेशनल मॉडल पर आधारित डेटाबेस मैनेजमेंट सिस्टम (डीबीएमएस) है। आज व्यापक रूप से उपयोग किए जाने वाले अधिकांश डेटाबेस इसी मॉडल पर आधारित हैं।[19] आरडीबीएमएस 1980 के दशक से वित्तीय रिकॉर्ड, निर्माण और रसद जानकारी, कर्मियों के डेटा और अन्य अनुप्रयोगों के लिए उपयोग किए जाने वाले डेटाबेस में सूचना के भंडारण के लिए एक सामान्य विकल्प रहा है। रिलेशनल डेटाबेस ने अक्सर लीगेसी पदानुक्रमित डेटाबेस और नेटवर्क डेटाबेस को बदल दिया है, क्योंकि आरडीबीएमएस को लागू करना और प्रशासित करना आसान था। बहरहाल, 1980 और 1990 के दशक में वस्तु डेटाबेस मैनेजमेंट सिस्टम द्वारा रिलेशनल स्टोर्ड डेटा को निरंतर, असफल चुनौतियों का सामना करना पड़ा, (जो रिलेशनल डेटाबेस और ऑब्जेक्ट-ओरिएंटेड एप्लिकेशन प्रोग्राम के बीच तथाकथित ऑब्जेक्ट-रिलेशनल इम्पीडेंस मिसमैच को संबोधित करने के प्रयास में पेश किए गए थे), साथ ही 1990 के दशक में XML डेटाबेस प्रबंधन प्रणालियों द्वारा।[citation needed] हालाँकि, प्रौद्योगिकियों के विस्तार के कारण, जैसे कि कंप्यूटर क्लस्टर की क्षैतिज स्केलिंग, Noएसक्यूएल डेटाबेस हाल ही में आरडीबीएमएस डेटाबेस के विकल्प के रूप में लोकप्रिय हुए हैं। [20]


वितरित संबंधपरक डेटाबेस

DRDA (DRDA) को 1988 से 1994 की अवधि में आईबीएम के भीतर एक कार्यसमूह द्वारा डिज़ाइन किया गया था। DRDA नेटवर्क से जुड़े रिलेशनल डेटाबेस को एसक्यूएल अनुरोधों को पूरा करने में सहयोग करने में सक्षम बनाता है। [21] [22]

डीआरडीए के संदेशों, प्रोटोकॉल और संरचनात्मक घटकों को वितरित डेटा प्रबंधन आर्किटेक्चर द्वारा परिभाषित किया गया है।

बाजार हिस्सेदारी

DB-Engines ranking|DB-Engines के अनुसार, जनवरी 2023 में db-engines.com वेब साइट पर सबसे लोकप्रिय सिस्टम थे:[23]

  1. ओरेकल डाटाबेस
  2. माई एसक्यूएल
  3. माइक्रोसॉफ्ट एसक्यूएल सर्वर
  4. पोस्टग्रेएसक्यूएल (मुफ्त सॉफ्टवेयर)
  5. आईबीएम डीबी2
  6. माइक्रोसॉफ्ट पहुंच
  7. एसक्यूएलite (मुफ्त सॉफ्टवेयर)
  8. मारियाडीबी (मुफ्त सॉफ्टवेयर)
  9. स्नोफ्लेक इंक।
  10. Microsoft Azure एसक्यूएल डेटाबेस
  11. अपाचे हाइव (मुफ्त सॉफ्टवेयर)
  12. टेराडाटा

अनुसंधान कंपनी गार्टनर के अनुसार, 2011 में, राजस्व के हिसाब से पांच प्रमुख मालिकाना सॉफ्टवेयर रिलेशनल डेटाबेस विक्रेता ओरेकल कॉर्पोरेशन (48.8%), आईबीएम (20.2%), Microsoft (17.0%), SAP AG सहित Sybase (4.6%), और Teradata थे। (3.7%)। [24]


यह भी देखें

संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना सूची

  • रिलेशनल डेटाबेस मैनेजमेंट सिस्टम की तुलना

संदर्भ

  1. 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.
  2. Ambler, Scott. "Relational Databases 101: Looking at the Whole Picture".[better source needed]
  3. "A Relational Model of Data for Large Shared Data Banks" (PDF).
  4. Date, Chris (5 May 2005). Database in depth: relational theory for practitioners. O'Reilly. ISBN 0-596-10012-4.
  5. Funding a Revolution: Government Support for Computing Research. National Academies Press. 8 Jan 1999. ISBN 0309062780.
  6. 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
  7. "Oracle Timeline" (PDF). Profit Magazine. Oracle. 12 (2): 26. May 2007. Retrieved 2013-05-16.
  8. "New Database Software Program Moves Macintosh Into The Big Leagues". tribunedigital-chicagotribune. Retrieved 2016-03-17.
  9. "ASetTheoreticDataStructureAndRetrievalLanguage-1972.PDF".
  10. SIGFIDET '74 Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control
  11. Ramakrishnan, Raghu; Donjerkovic, Donko; Ranganathan, Arvind; Beyer, Kevin S.; Krishnaprasad, Muralidhar (1998). "SRQL: Sorted Relational Query Language" (PDF). E Proceedings of SSDBM.
  12. "A Relational Database Overview". oracle.com.
  13. "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
  14. "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.
  15. 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.
  16. Gray, Jim, and Reuter, Andreas, Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. ISBN 1-55860-190-2.
  17. Date (1984), p. 268.
  18. 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.
  19. Pratt, Philip J.; Last, Mary Z. (2014-09-08). Concepts of Database Management (8 ed.). Course Technology. p. 29. ISBN 9781285427102.
  20. "NoSQL databases eat into the relational database market". 4 March 2015. Retrieved 2018-03-14.
  21. Reinsch, R. (1988). "Distributed database for SAA". IBM Systems Journal. 27 (3): 362–389. doi:10.1147/sj.273.0362.
  22. Distributed Relational Database Architecture Reference. IBM Corp. SC26-4651-0. 1990.
  23. "DB-Engines Ranking of Relational DBMS". DB-Engines. Retrieved 2022-04-29.
  24. "Oracle the clear leader in $24 billion RDBMS market". 2012-04-12. Retrieved 2013-03-01.


स्रोत


बाहरी संबंध