CodeGym/Java Course/All lectures for MR purposes/डेटाबेसचे प्रगत ज्ञान

डेटाबेसचे प्रगत ज्ञान

उपलब्ध

1.1 व्याख्याने बांधण्याचे तत्त्व

तुम्ही आणि मी आमची डेटाबेसशी ओळख खालील पासून सुरू केली . लोकांना शिकवण्याच्या माझ्या वैयक्तिक दृष्टिकोनाचे हे वैशिष्ट्य आहे. नवीन विषयांबद्दल बोलत असताना, मी नेहमी तुम्हाला काही साधने सरावात कशी वापरायची ते सांगतो. आणि जेव्हा मला माहित आहे की एखाद्या व्यक्तीला ते कसे वापरायचे हे माहित आहे, तेव्हा मी सर्वकाही कसे कार्य करते हे सांगू लागतो.

या दृष्टिकोनाची अनेक कारणे आहेत, परंतु मुख्य म्हणजे शिकण्याच्या प्रक्रियेतील सर्वात मौल्यवान आणि सर्वात गहाळ स्त्रोत म्हणजे विद्यार्थी प्रेरणा .

हा दृष्टीकोन शाळा आणि विद्यापीठांमध्ये वापरला जातो त्यापेक्षा थोडा वेगळा आहे. परंतु सर्व काही स्पष्ट आहे: जेव्हा तुम्ही शाळेत किंवा विद्यापीठात अभ्यास करता तेव्हा तुमच्याकडे योग्य प्राधान्ये असतात: या क्षणी अभ्यास करणे ही जीवनातील सर्वात महत्वाची गोष्ट आहे.

जर तुम्ही प्रौढावस्थेत स्वयं-शिक्षणात गुंतलेले असाल, तर बर्‍याचदा तुम्हाला आधीच तुमचा अभ्यास काम, घरातील कामे, मुलांची किंवा वृद्ध पालकांची काळजी घ्यावा लागतो. आणि इथे अनेकदा अभ्यासाला प्रथम प्राधान्य नसते.

हे सर्व प्राधान्यांबद्दल आहे. स्टार्टअप्सच्या जगात अशीही एक संकल्पना आहे - फेल फास्ट, शक्य तितक्या लवकर फेल . हे विचित्र वाटत आहे, परंतु खरं तर ते खूप अर्थपूर्ण आहे: स्टार्टअपचे कार्य त्वरीत त्याचे गृहितक योग्य आहे की नाही हे तपासणे आहे. आणि जर ते खरे नसेल, तर तुम्हाला तुमच्या आयुष्याची वर्षे त्यावर घालवण्याची गरज नाही, एखाद्या विशिष्ट सेवा किंवा उत्पादनाची मागणी नाही हे शक्य तितक्या लवकर समजून घेणे चांगले.

Java आणि SQL शिकवताना, मी समान दृष्टीकोन वापरतो: मी तुम्हाला शक्य तितक्या लवकर समजून घेण्याची संधी देतो की तुम्ही प्रोग्रामिंगसाठी घाई करत आहात की नाही . जर तुम्हाला प्रोग्रामिंग आवडत असेल आणि लूप आणि अ‍ॅरेसह कसे कार्य करावे हे तुम्ही स्वत: शोधण्यात सक्षम असाल, तर मार्गदर्शक आणि चांगल्या प्रकारे डिझाइन केलेल्या प्रोग्रामच्या मदतीने तुम्हाला तुमचा अभ्यास पूर्ण करण्याची आणि नोकरी शोधण्याची प्रत्येक संधी आहे.

परंतु आणखी एक तथ्य कमी महत्त्वाचे नाही: काही दिवसांच्या सुट्टीत, आपण समजू शकता की प्रोग्रामिंग आपल्यासाठी नाही. तुम्हाला कदाचित त्यात स्वारस्य नसेल, आणि ते ठीक आहे . त्यामुळे तुम्हाला तुमच्या आयुष्यातील काही महिने त्यावर घालवण्याची गरज नाही.

केवळ 40% पदवीधर विद्यापीठात मिळालेल्या विशेषतेमध्ये काम करतात. याचा विचार करा, लोकांनी 5-6 वर्षे अभ्यास केला आणि त्यापैकी 60% लोकांनी त्यांच्या विशेषतेमध्ये काम न करण्याचा निर्णय घेतला. होय, मिळवलेले काही ज्ञान अजूनही वापरले जाते, परंतु त्यातील अर्धे नाही.

हे फेल फास्ट संकल्पनेचे मूल्य आहे - एक विशिष्ट व्यवसाय, विशिष्ट व्यक्ती किंवा विशिष्ट छंद आपल्यासाठी योग्य नाही हे शक्य तितक्या लवकर समजून घेणे. आणि त्यांच्यावर तुमचा वेळ आणि शक्ती वाया घालवू नका. दीर्घकाळात, ही एक अतिशय चांगली रणनीती आहे.

1.2 SQL आणि सर्व, सर्व, सर्व

आम्ही तात्विक परिचय पूर्ण केला आहे, चला SQL शिकण्यासाठी परत जाऊया.

SQL भाषा आणि DBMS थोड्या वेगळ्या गोष्टी आहेत. SQL भाषा स्वतःच एक प्रकारची मानक आहे जी डेटाबेसमध्ये SQL क्वेरीमध्ये काय लिहिले जाऊ शकते याचे वर्णन करते. DBMS आधीच या मानकाची अंमलबजावणी करत आहेत. काही डीबीएमएस मानकांची काही फंक्शन्स लागू करतात, दुसरे - इतर इ.

DBMS जितके महाग असेल तितके ते लागू केलेल्या मानकाची अधिक वैशिष्ट्ये. तसेच, अनेक डीबीएमएस एसक्यूएल मानकांच्या बाहेर त्यांची स्वतःची अद्वितीय वैशिष्ट्ये लागू करतात. कधीकधी यामुळे पोर्टेबिलिटी समस्या उद्भवतात: एका DBMS साठी लिहिलेल्या SQL क्वेरी दुसर्‍यासाठी चांगले कार्य करू शकत नाहीत.

जावाचीही अशीच परिस्थिती आहे. जर जावा प्रोग्राम विंडोजच्या खाली लिहिलेला असेल तर तो लिनक्सवर सामान्यपणे कार्य करणार नाही. या समस्येचे निराकरण करण्यासाठी, जावा विविध ऑपरेटिंग सिस्टमसाठी भिन्न अंमलबजावणी असलेले विशेष वर्ग सादर करते. उदाहरण: पाथ क्लास ज्यामध्ये WindowsPath, LinuxPath इ.ची अंमलबजावणी आहे.

समस्येचा दुसरा भाग आवृत्तीच्या मदतीने सोडवला जातो. विविध भाषांमधील सर्व यशस्वी नवकल्पना किंवा DBMS नवीन JDK किंवा SQL मानकांमध्ये जोडल्या जातात. तुम्हाला आधीच माहित आहे की JDK च्या वेगवेगळ्या आवृत्त्या आहेत आणि आवृत्ती जितकी नवीन असेल तितकी अधिक वैशिष्ट्ये आहेत. एसक्यूएलच्या बाबतीतही असेच आहे.

एसक्यूएल भाषेत, त्याच्या मानकांच्या अनेक आवृत्त्या आहेत, ज्यांना वर्षानुसार नाव दिले जाते:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL: 2019

चांगली बातमी : आम्ही या मानकांचा अभ्यास करणार नाही. प्रथम, या सर्व गोष्टींचा अभ्यास आणि प्रभुत्व मिळविण्यासाठी वर्षे लागतील. आणि दुसरे म्हणजे, हे मानक Android च्या आवृत्त्यांसारखे आहेत: रिलीझ झाल्यानंतर केवळ 5-10 वर्षांनी, मानक मोठ्या प्रमाणावर व्यापक होते.

मोठ्या प्रमाणात डेटा असलेल्या डेटाबेसमध्ये, लोकांना विश्वासार्हता आणि स्थिरता आवश्यक आहे. "हे कार्य करते, त्याला स्पर्श करू नका" हे डेटाबेससह कार्य करणार्‍या प्रत्येकाचे ब्रीदवाक्य आहे. आणि डेटाबेसच्या नवीन आवृत्तीमध्ये संक्रमण दर 5 वर्षांनी केले जाते, जेव्हा अशा समाधानाचे सर्व फायदे आधीच स्पष्ट असतात.

1.3 कंसाच्या पलीकडे

मी वर म्हटल्याप्रमाणे, डेटाबेस व्यावसायिक होण्यासाठी अनेक वर्षे लागतात. एखाद्या व्यावसायिकाला बर्‍याच गोष्टी माहित असतात ज्यांचा आपण अभ्यास करणार नाही. परंतु डेटाबेसमध्ये आणखी काय आहे याबद्दल मी थोडेसे बोलेन.

जवळजवळ सर्व आधुनिक डेटाबेस समर्थन:

1 प्रक्रियात्मक भाषा (PL)

RDBMS SQL सर्व्हरवर चालणार्‍या कार्यपद्धती आणि कार्ये लिहिण्याच्या क्षमतेस समर्थन देते आणि क्वेरी दरम्यान डेटासह बरेच काही करू शकते. उदाहरणार्थ, एकदा मी ओरॅकल सर्व्हरवर PL SQL क्वेरी लिहिल्या, ज्याने व्युत्पन्न केलेल्या क्वेरीला प्रतिसाद म्हणून ... डेटासह एक HTML पृष्ठ. होय आपण हे करू शकता.

2 इव्हेंट (ट्रिगर्स)

सर्व आधुनिक DBMS घटनांच्या यंत्रणेला समर्थन देतात, ज्याला SQL भाषेत ट्रिगर म्हणतात. काही क्रियेला प्रतिसाद म्हणून ट्रिगर होतो. उदाहरणार्थ, तुम्ही डेटाबेसवर लिहिण्याच्या सर्व प्रयत्नांना रोखू शकता आणि त्यांच्या बदलाची अचूक वेळ नवीन ओळींमध्ये जोडू शकता.

3 लॉगिंग

आधुनिक डेटाबेस अतिशय जलद होण्याचा प्रयत्न करतात, त्यामुळे बरेचदा सर्व बदल (नवीन पंक्ती, हटवलेल्या पंक्ती, बदललेल्या पंक्ती) प्रथम लॉग नावाच्या एका विशेष फाइलवर लिहिले जातात. आणि काही काळानंतर, SQL सर्व्हर हे रेकॉर्ड मुख्य डेटाबेसमध्ये विलीन करेल.

काही मार्गांनी, हे Java मधील गार्बेज कलेक्टरच्या वर्तनासारखेच आहे: ते प्रथम हटविलेल्या वस्तू देखील चिन्हांकित करते आणि निष्क्रिय काळात मेमरी क्लीनअप आणि ऑप्टिमायझेशन करते.

4 प्लगइन

डीबीएमएस, तसेच अनेक प्रोग्राम्ससाठी, तुम्ही तुमचे स्वतःचे प्लगइन लिहू शकता. असे प्लगइन तुम्हाला अद्वितीय डेटा प्रकार, त्यांच्यासह कार्य करण्यासाठी कार्ये जोडण्याची किंवा DBMS चे मानक वर्तन बदलण्याची परवानगी देतात. हे विशेषतः उपयोगी आहे जेव्हा तुम्ही ओपन सोर्स डेटाबेससह काम करता आणि त्यात काही बग असतात.

5 वितरित कार्य (क्लस्टर)

आधुनिक एसक्यूएल सर्व्हरसाठी एक विशिष्ट परिस्थिती म्हणजे अनेक सर्व्हरचे क्लस्टर. जेव्हा डेटा एका सर्व्हरवर लिहिला जातो आणि सर्व्हरच्या गटातून वाचला जातो तेव्हा सर्वात सोपा पर्याय आहे. या प्रकरणात, तुम्ही SQL सर्व्हर दरम्यान डेटाबेस सिंक्रोनाइझेशनसाठी विविध परिस्थिती कॉन्फिगर करू शकता.

6 शार्डिंग

जेव्हा भरपूर डेटा असतो तेव्हा ते वेगवेगळ्या डेटाबेसमध्ये विभागले जाऊ लागतात. एक टेबल वेगवेगळ्या डेटाबेसमध्ये भागांमध्ये संग्रहित केले जाऊ शकते या वस्तुस्थितीपर्यंत.

शार्डिंग अनुलंब आणि क्षैतिज असू शकते. उभ्या शार्डिंगचा अर्थ असा आहे की टेबल जसे होते तसे उभ्या रेषांनी कापले जाते, तर क्षैतिज शार्डिंग क्षैतिज मध्ये कापले जाते.

उदाहरणार्थ, आम्ही सारणीतील सर्व डेटा वर्षानुसार विभाजित करण्याचा निर्णय घेतला: 2019 साठी - एक टेबल, 2020 च्या डेटासाठी - दुसरा आणि असेच. हे क्षैतिज शार्डिंग असेल.

7 नॉन-शोव्ह हलवा

डेटाबेसच्या विकासाच्या एका विशिष्ट टप्प्यावर, त्यांच्यामध्ये अधिकाधिक व्यावसायिक तर्क जोडले जाऊ लागले. हे सर्व कार्यपद्धती, कार्ये, सर्व्हरद्वारे वेब पृष्ठे व्युत्पन्न करण्यापासून सुरू झाले आणि DBMS: Python, JavaScript आणि अगदी Java आणि C ++ मध्ये जवळजवळ सर्व लोकप्रिय भाषांसाठी समर्थन जोडण्यासह समाप्त झाले.

तुम्‍ही तपशील जाणून घेण्‍यास सुरुवात करेपर्यंत छान वाटतं: तुम्‍हाला तुमच्‍या वेब अॅप्लिकेशन बिझनेस लॉजिक जावामध्‍ये लिहायचे आहे का, जे SQL सर्व्हरमध्ये कार्यान्वित केले जाईल, जेथे JDK, जावा लायब्ररी, फ्रेमवर्क, छोटी मेमरी आणि बरेच काही नाही. इतर निर्बंध?

टिप्पण्या
  • लोकप्रिय
  • नवीन
  • जुने
टिप्पणी करण्यासाठी तुम्ही साईन इन केलेले असणे आवश्यक आहे
या पानावर अजून कोणत्याही टिप्पण्या नाहीत