बाजार में इतने सारे डेटाबेस के साथ, दिमागी युद्ध शुरू हो गए हैं और बाजार में शीर्ष 3 रिलेशनल डेटाबेस - माइक्रोसॉफ्ट एसक्यूएल सर्वर, ओरेकल पीएल/एसक्यूएल, और माईएसक्यूएल के अंतर और महत्व को समझने का यह सही समय है। रिलेशनल डेटाबेस मैनेजमेंट सिस्टम वर्तमान में उद्योग की रीढ़ बन गया है और इतने सारे विकल्प उपलब्ध होने के कारण, यह पता लगाना मुश्किल है कि किसे चुनना है।
रिलेशनल डेटाबेस मैनेजमेंट सिस्टम 1980 में पेश किया गया था। यह लेख उद्योग में तीन लोकप्रिय RDBMS के इतिहास और विशेषताओं की खोज पर ध्यान केंद्रित कर रहा है:Microsoft SQL Server, Oracle, और MySQL। Microsoft SQL सर्वर और Oracle वाणिज्यिक सॉफ़्टवेयर होने के कारण, MySQL ओपन-सोर्स RDBMS है।
Oracle 1980 के दशक में व्यावसायिक उपयोग के लिए RDBMS लाने वाली पहली कंपनी थी। 1990 के दशक के मध्य में, Microsoft ने Oracle के लिए एक गंभीर प्रतियोगी के रूप में SQL सर्वर के साथ बाज़ार में प्रवेश किया। दूसरी ओर, MySQL को मूल रूप से एक ओपन-सोर्स सॉफ़्टवेयर के रूप में विकसित और वितरित किया गया था। MySQL पहली बार 1995 में जारी किया गया था, और विंडोज़ संस्करण 1998 में जारी किया गया था। 2008 में, इसे SUN द्वारा और उसके बाद Oracle द्वारा अधिग्रहित किया गया था।
भाषा - संचार का हृदय
किसी भी आरडीबीएमएस की रीढ़ की हड्डी प्रश्नों को निष्पादित करने के लिए उपयोग की जाने वाली भाषा है और इस तरह उनका प्रदर्शन और कार्यान्वयन प्रभावित होता है। हालाँकि सभी तीन डेटाबेस प्रबंधन प्रणालियाँ संरचित क्वेरी भाषा, या SQL के एक संस्करण का उपयोग करती हैं। Microsoft SQL सर्वर Transact-SQL, या T-SQL का उपयोग करता है, जो मूल रूप से Sybase द्वारा विकसित और Microsoft द्वारा उपयोग किए जाने वाले SQL का एक विस्तार है। जबकि, इस बीच, Oracle PL/SQL, या प्रक्रियात्मक भाषा/SQL का उपयोग करता है।
दोनों अलग-अलग "फ्लेवर" या SQL की बोलियाँ हैं और दोनों भाषाओं में थोड़ा अलग सिंटैक्स और क्षमताएँ हैं। दो भाषाओं के बीच मुख्य अंतर यह है कि वे चर, संग्रहीत प्रक्रियाओं और अंतर्निहित कार्यों को कैसे संभालते हैं। Oracle में PL/SQL प्रक्रियाओं को एक साथ संकुल में समूहित कर सकता है, जो MS SQL सर्वर में नहीं किया जा सकता है। पीएल/एसक्यूएल थोड़ा अधिक जटिल और संभावित रूप से अधिक शक्तिशाली हो सकता है, जबकि टी-एसक्यूएल अधिक सरल और लागू करने में आसान है।
दूसरी ओर, MySQL, T-SQL के हल्के संस्करण का उपयोग करता है और प्रक्रियात्मक भाषा को भी जोड़ता है जो SQL/PSM से निकटता से संबंधित है। हालाँकि MySQL के संग्रहीत कोड-ऑब्जेक्ट्स ANSI मानकों के करीब हैं, लेकिन फिर से, उनके पास T-SQL, Microsoft और Sybase के SQL के मालिकाना विस्तार की चौड़ाई और गहराई नहीं है।
लेन-देन नियंत्रण
एक लेन-देन को संचालन का एक समूह कहा जा सकता है जिसे एक इकाई के रूप में निष्पादित किया जाता है। उदाहरण के लिए, यदि उपयोगकर्ता कुछ SQL प्रश्नों को निष्पादित करने का प्रयास कर रहा है, तो या तो सभी निष्पादित होते हैं या कोई नहीं। लेन-देन नियंत्रण के संदर्भ में यह Oracle और MS SQL सर्वर के बीच प्रमुख अंतरों में से एक है।
डिफ़ॉल्ट रूप से, एमएस एसक्यूएल सर्वर प्रत्येक कमांड/कार्य को व्यक्तिगत रूप से निष्पादित और प्रतिबद्ध करेगा, और यदि कोई त्रुटि आती है तो परिवर्तनों को वापस रोल करना मुश्किल या असंभव होगा। "BEGIN TRANSACTION" कमांड का उपयोग कथनों को ठीक से समूहीकृत करने और लेन-देन की शुरुआत की घोषणा करने के लिए किया जाता है, और अंत में एक COMMIT स्टेटमेंट का उपयोग किया जा सकता है। यह COMMIT स्टेटमेंट बदले हुए डेटा को डिस्क पर लिखेगा, और लेनदेन को समाप्त करेगा। लेन-देन के भीतर, रोलबैक लेन-देन ब्लॉक के भीतर किए गए किसी भी परिवर्तन को त्याग देगा। COMMIT जारी होने के बाद, COMMIT कमांड की तुलना में आगे रोल बैक करना संभव नहीं है।
जबकि Oracle में, प्रत्येक नए डेटाबेस कनेक्शन को एक नए लेनदेन के रूप में लिया जाता है। जैसे ही प्रश्नों को निष्पादित किया जाता है और आदेश जारी किए जाते हैं, परिवर्तन केवल डेटाबेस की स्मृति में किए जाते हैं और कैश में रहते हैं। एक स्पष्ट COMMIT कथन दिए जाने तक कुछ भी प्रतिबद्ध नहीं है। COMMIT के बाद, जारी किया गया अगला आदेश अनिवार्य रूप से एक नया लेनदेन शुरू करता है, और प्रक्रिया फिर से शुरू होती है। यह अधिक लचीलापन प्रदान करता है और त्रुटि नियंत्रण में भी मदद करता है, क्योंकि COMMIT कमांड को स्पष्ट रूप से निष्पादित किए जाने तक डिस्क में कोई परिवर्तन नहीं किया जाता है।
MySQL के मामले में, लेनदेन का समर्थन आसानी से InnoDB के साथ संगत है। InnoDB MySQL के लिए एक स्टोरेज इंजन है और डिफ़ॉल्ट रूप से MySQL के साथ उपलब्ध है। यह विदेशी कुंजी समर्थन के साथ मानक ACID-संगत लेनदेन सुविधाएँ प्रदान करता है।
डेटाबेस ऑब्जेक्ट का संगठन
इन 3 डेटाबेस में डेटाबेस ऑब्जेक्ट्स का संगठन भी एक बड़ा अंतर है। MS SQL सर्वर सभी ऑब्जेक्ट्स, जैसे टेबल, व्यू और प्रक्रियाओं को डेटाबेस नामों से व्यवस्थित करता है। एमएस एसक्यूएल उपयोगकर्ताओं को एक लॉगिन के लिए असाइन किया जाता है, जिसे विशिष्ट डेटाबेस और इसकी वस्तुओं तक पहुंच प्रदान की जाती है। Microsoft SQL सर्वर में, प्रत्येक डेटाबेस में सर्वर पर एक निजी, साझा नहीं की गई डिस्क फ़ाइल होती है।
जबकि Oracle में, सभी डेटाबेस ऑब्जेक्ट को स्कीमा द्वारा समूहीकृत किया जाता है। स्कीमा कुछ और नहीं बल्कि डेटाबेस संरचनाएं हैं जो डेटाबेस ऑब्जेक्ट्स का सबसेट संग्रह हैं। सभी डेटाबेस ऑब्जेक्ट सभी स्कीमा और उपयोगकर्ताओं के बीच साझा किए जाते हैं। भले ही यह सब साझा किया गया हो, प्रत्येक उपयोगकर्ता के लिए भूमिकाएं और अनुमतियां परिभाषित की जाती हैं और इसे कुछ निश्चित स्कीमा और तालिकाओं तक सीमित किया जा सकता है।
<ब्लॉकक्वॉट>संक्षेप में, तीनों, MySQL, Oracle और SQL Server शक्तिशाली RDBMS विकल्प हैं। यद्यपि वे "हुड के नीचे" कैसे काम करते हैं और कार्यान्वित किए जाने में कई अन्य अंतर हैं, उनका उपयोग लगभग समान तरीके से किया जा सकता है। प्रत्येक का उपयोग अलग-अलग वातावरण में अलग-अलग उद्देश्य के साथ किया जा सकता है। उद्देश्य एक ही हो सकता है, लेकिन कार्यान्वयन भिन्न होता है।