हे एवरिवन गुद मॉर्निंग माइ नेम इस विश्वधीप एंड आई वेलकम यू आल ऑन अन अकैडमी कंप्यूटर साइंस टैनल पर अनलिमिटेड लर्निंग इस सेशन में जो की नंबर टू है लेक्चर डी बी एमेस का आज हम बात करेंगे डी बी एमेस के आर्किटेक् आर्किटेक्चर होते हैं, टू टीयर, थ्री टीयर, वो क्या होते हैं? अगर एक डेटाबेस मैनेज्मेंट सिस्टम को देखा जाए, तो उसमें दो अलग-अलग पार्ट होते हैं, वो क्या है? क्यों हैं?
हर किसी का यूटिलिटी क्या है? ये सारी बेसिक चोटी-चोटी चीज़ें हाँच हम इस सेशन में कवर करने वाले हैं. मैं अपने आपको introduce कर दूँ उन लोगों के लिए जो मुझे नहीं जानते हैं, my name is Vishwadeep Gauthi, working as a channel leader for this channel, and as a plus educator on an academy platform, और ये रहा मेरा profile, ये रही मेरी ranks, gate, computer science में, masters in data science also, ताकि मैं trending technology सीख पाऊं, और current में जो हो रहा है, software world में उसे समझ पाऊं, मुझे 15 plus years का teaching experience है, ताकि, student community का भला हो पाए, आप लोगों का career बन पाए, जरूरी है, बहुत जरूरी है, सबसे important part है career क्योंकि बहुत सारे लोग अपने career को लेके, अपने hometown को छोड़के और दूसरी city में shift होते हैं, अपने college को लेके या फिर अपनी job को लेके, country छोड़ देते हैं, अपना घर का comfort छोड अमारे दिन का जितना भी thinking process है उसमें से काफी time उसमें जाना चाहिए तो याद रखिएगा career को लेके जितना भी जितना भी आप सोचते हैं थोड़ा intensity बढ़ाएं क्योंकि ये time ऐसा है जब अगर आप career बना पाएंगे अपना सही तरीके से start कर पाएंगे तो आप फिर वहां स ना करना पड़े इस करियर में अगर आप लोग चाहते हैं कि आपको गेट की तैयारी करनी है क्योंकि आपका करियर जो है वह मास्टर्स करने जाते हैं आईटी आईएसी में तो वहां उस पर्टिकलर चीज के लिए गेट के लिए आपका प्रेपरेशन जो है वह आपकी जॉब भी अगर जॉब है तो जॉब वो करना है, नए स्किल्स सीखना है, अपने परसनल टाइम भी देना है, प्लस साथ में गेट की प्रपेशन भी करना है, बारा तेरा सबजेक्स एक साथ वो भी इस लेबल पे पढ़ना, ताकि गेट के IIT लेबल के क्विश्चन स� प्लस सब्सक्रिप्शन ले सकते हैं जहां आपको लाइव क्लासेस मिलती हैं, इंटरेक्टिव होती हैं वो क्लासेस, डेली प्रैक्टिस प्रॉबलम्स मिलते हैं, वीकली टेस्ट मिलते हैं, स्ट्रक्चर्ड और ओर्गनाइस्ट कोर्सेस मिलते हैं, एकसिस मिलेगा आपको टॉप एजुकेटर्स के सारे लेक्चर्स का, सारी अलग-अलग बैचेस का, thinking tank का काम करें और हम सिर्फ और सिर्फ execution का काम करें तो फिर आप iconic subscription लीजिए यहां पे आपको plus के benefits मिलेंगे और मिलेगा एक personal coach personal coach वो expert हैं जो हम unacademy देंगी आपको जो की already gate crack कर चुके हैं बहुत अच्छी rank के साथ पे और वो आपको बताएंगे कि कैसे आप preparation करोगे आपके कम स्कोरिंग होगा, कहां से आप ज़्यादा मार्क एक्स्ट्रैक कर पाओगे, किस तरह ज़्यादा आपको मेहनत करनी है, आपका डेली टू डेली रूटीन के हिसाब से आपकी प्लानिंग कैसी होनी चाहिए, इसके अलावा आपका परफॉर्मेंस कैसे इंप्रूव हो सकता ह और सब्सक्रिप्शन ली लीजिए अगर आप थर्ड येर में अटेंट करना चाहते हैं गेट और आप सोच रहे हैं कि पहले हम सेल्फ पढ़ेंगे उसके बाद अगले साल सब्सक्रिप्शन लेंगे तो मैं उल्टा बोलता हूँ कि अगर आप रियली चाहते हो तो पहले सेल् लर्निंग हो जाएगी और उस डबल लर्निंग का अगले साल बहुत ज़्यादा फायदा होगा कम मेहनत में भी आपके पास अच्छी रैंक आ सकती है नेक्स्ट येर आप पहली बार उतनी मेहनत करोगे आधी अधूरी सीख चीज़े सीखोगे और सेकेंड टाइम वही सेम मेह मेरा personal guidance मिले, मेरी team के साथ connect होने का मुका मिले, ये code जो है, एक bridge का काम करेगा, आपकी मेहनत और मेरी team की मेहनत के बीच में, ताकि दोनों मिलके, और आपका career बना पाएं, आपको successful बना पाएं, कुछ batches भी हैं, जो top educator आप देख सकते हैं, ये top educators आपको पढ़ाएंगे, gate 23 के लिए laksh batch, और pragati batch for gate 24 batch, सारे students, जो हमारे unacademy plus के student रहे हैं, last year, अगर आप सिर्फ टेस्ट सीरीज लेना चाहते हैं तो अन अकेडमी लाइट सब्सक्रिप्षिन ले सकते हैं इसमें भी आपको 10% का डिसकाउंट मिल जाएगा अगर आप यूज करेंगे कोड वी दीप टेस्ट अगर आप यूज करेंगे कोड वी दीप टेस्ट रिजन की वजह से एक टेक्निकल इशू की वजह से में लाइव नहीं जा पा रहा था, I was trying my level best कि मैं आपको 5.30 क्लास स्टार्ट कर पाऊंग, पर नहीं हो पाया, इसलिए आपका नुकसान ना हो, इसलिए मैंने आज सुबह क्लास रखी, ताकि आपका कल का सेशन आज compensate हो जाए, और आज शाम में भी 5.30 सेशन में, आपको आज तक का जितना भी हमारा planned session है, तो 5.30 PM जो session है हमारा, हम start करेंगे designing DBMS के बारे में, कि DBMS की designing कैसे होती है, क्यों होती है, क्या-क्या steps लगती है और उस designing में हमें क्या-क्या सीखना पढ़ेगा ये सब आज 5.30 PM session में रहेगा और 12.30 PM पे एक छोटा सा session है जिसमें मैं announce करने वाला हूँ एक नया course by a legend educator जी हाँ, वो educator ने आज तक यहाँ पे कोई भी course नहीं लिया है बहुत legend educator है वो और वो आपको इस particular channel पे live lecture लेके आने वाले हैं, वो भी free में, कौन सा होगा course, हम बताएंगे, timing, etc, etc, मैं आप लोगों उसमें बताऊंगा, चलिए, तो last class में मैंने आपको start किया था, DBMS क्या होता है, क्यों use करते हैं, ठीक है, फिर हमने देखा था, why, DBMS क्यों, हम normal file system के through, या normal files में data store करके, और उन files पे program लिखके, और क्यों नहीं, ये database को manage कर सकते हैं, क्यों नहीं data को manage करके और उनसे हम information extract कर सकते हैं, जो desired information है वो, तो वो reason आज हम देखने वाले हैं, कि क्या ऐसी disadvantages हैं, किसमे file system में, कि ये problem हो जाता है, कि हम files को use ना करें data को store करने के लिए, rather we will use a particular complete tool, dedicated tool DBMS, तो पहला problem है data redundancy और inconsistency का, देखो एक छोटा सा example मैंने आपको last class में start करवाया था, कि अगर by chance आप जो हैं, आप जो हैं, आपने एक e-commerce website बनाने की सोची, आपके पास already, मैं वापस से repeat कर रहा हूँ ये example, अगर आपने last lecture देखा होगा तो आपको याद होगा, मैंने कहा था कि आपके पास already बहुत बड़ी inventory है, आपके पास धेर सारे clothing materials हैं, cloths हैं actually, है ना रेडी मेट क्लॉज है आपके पास ऑलरेडी धेर सारे अलग-अलग ब्रैंड्स के अलग-अलग टाइप के आपको बस चाहना है कि उसका एक इंवेंट्री है इसका डाटा तो हमें स्टोर करना पड़ेगा ना कहीं ताकि उस डाटा को फेच करके और हम वेबसाइट पर तो फिर उस data को store कराने के लिए आपने बोला, हाँ sir, excel sheet में हम entry करवा देते हैं, आप बताओ, 10 दिन में entry हो जाएंगे सारे items की.
अब excel sheets में या किसी file में अगर आपने entry करवाई, तो हो सकता है, later on जब आपके multiple sheets बनेंगे, तो एक type की information एक से ज़ादा जगे पे present हो, अगर एक type की information एक से ज़ादा जगे पे present हो, तो उसे बोलते हैं हम redundancy, redundancy की problem आ सकती है, किस में? Files में. क्यों क्यों कि हर एक file independent है और कोई top पे ऐसा कोई manager नहीं बैठा है program manager कि वो देख पाई कि ये दो information एक ही information दो अलग अलग जगे पे बैठी हुई है रखी हुई है आपने एज मैन्यूअली तो काम किया है अगर मैं अभी ऑपरेटर हूं मुझे पता है कि एक टाइप की इंफोर्मेशन मैंने यहां भी रखी इस फाइल में भी रखी ठीक है बट लेटर आउन अगर कोई दूसरा उस पर्टिकलर फाइल को मैनेज करने गया मैंने कहा कि चलो उसकी वज़े से पता है प्रॉब्लम क्या हैगी? Inconsistency की. अच्छा, अब आप बोल रहे हो कि सर ऐसा फाइल में हो सकता है?
जी हाँ. तो क्या DBMS में नहीं हो सकता? नहीं.
क्यों? क्योंकि Database Management System का सबसे बड़ा खासियत क्या है पता है? तो जब भी आप किसी एक information को update करने के लिए जाओगे, तो ये manager सारी जगे पर update करा देगा.
इफ इट इस प्रेजेंट ऑन मोर दिन वन लोकेशन से इफ तो रिडेंडेंसी वहां भी पॉसिबल है कि एक इंफोर्मेशन एक से ज्यादा जगह पर है पर रिडेंडेंसी जवरजस्ती नहीं होती ठीक है या मिस्टेक की वजह से नहीं होती वहां रिडेंडेंसी होती है किसी ना किसी अच्छे सॉल्यूशन एप्रोच के लिए तो अगर आपने एक जगह पर अपडेशन कराने की कोशिश की तो सारी जगह पर अपडेट हो जाता है अ सर क्लास टाइमिंग चेंज नहीं बेटा, क्लास टाइमिंग चेंज नहीं हुआ है, कल शाम की क्लास हो नहीं पाई थी, मुझे लगा कि आपका नुकसान ना हो ज्यादा, इसलिए मैंने एक क्लास उबर रख दी कल की रिशेडूल करके, 5.30 PM भी आज क्लास है, ठीक है? तो क्या बात क्या है, कि background में अगर आप कोई भी, कोई भी ऐसी file में data रखते हैं, जहांपे multiple जगे पे एकी information रखी है, multiple files में एक information रखी हुई है, तो उसे बोलेंगे कि information redundant है, कि एक जगह रखी हुए दूसरी जगह पर रखी हुए अगर कहीं अपडेशन में एक जगह आपने अपडेट कर दिया दूसरी जगह नहीं कर पाए आप तो यहां पर इनकंसिस्टेंसी आ जाएगी क्या आपने कस्टमर्स की इंफॉर्मेशन दो अलग-अलग फाइल्स में र problem of inconsistency, ये किसमें है? files में होती है, क्योंकि files में एक information अगर multiple जगे पर रखी हुई है, तो कोई ऐसा single manager नहीं होगा, जिसको पता है कि ये information यहां यहां रखी हुई है, second problem आईगी, difficulty in accessing the data, जैसे कि आपने अपने files में data रख दिया, उन data को access करने के लिए अलग अलग अलग अलग program लिख दिये, है न?
लिख दिये, ठीक है, अब एक lady जो है, उस website को access करती है और वो lady access करने की कोशिश करती है black shirt अब black shirt जो है अगर उसने female select किया हुआ है तो सिफ female की shirt दिखेंगी या फिर male select किया हुआ है तो male की shirt दिखेंगी दोनों एक साथ नहीं दिख सकती दोनों एक साथ by chance नहीं दिख पारी है अब कुछ ऐसी female candidates होती हैं जो male female जो दोनों के ही t-shirts पहन लेती है it's a regular thing उसके उस particular case में नहीं जाते हैं, I am just trying to understand a scenario कि एक particular file में धेर सारे shirts या t-shirts की information रखी हुई है, यहाँ पे male की, यहाँ पे female की और सारे shirts, t-shirts की information रखी हुई है, black t-shirt, t-shirt की information male, female की रखी हुई है, दो अलग-अलग file में, अब programmer ने यह सोचा कि अगर कोई बंदा आता है, उसको black t-shirt य अगर कोई female आती है तो अपनी female female की t-shirt access कर सकती है बट एक female ऐसा बोलती है कि मुझे t-shirt तो चाहिए पर दोनों की एक साथ चाहिए वो भी black color में चाहिए अब ऐसी requirement के लिए पहले programmer ने सोचा नहीं था कि ऐसी कोई requirement आ जाएगी अब इस requirement के लिए programmer को नया program लिखना पड़ेगा कि दोनों file को access किया जाए वहां से t-shirt की information ली जाए color filter किया जाए और दी जाए प्रोग्रामर ने नया प्रोग्राम बना दिया, बाद में एक नया कोई candidate या नया कोई customer आता है, और उसकी एक और नई requirement आती है कि मुझे male-female दोनों की combined black t-shirt चाहिए, इसी specific brand की चाहिए, और इस specific size में चाहिए. तो ये जो अलग-अलग type की specific requirements हैं, ये हर एक requirement के लिए अगर by chance एक user ने या एक particular programmer ने प्रोग्राम नहीं लिखे हैं, तो हर एक के लिए ऐसे प्रोग्राम लिखना बहुत difficult हो जाता है और कुछ specific information collectively दो अलग-अलग files से इखटा करना भी मुश्किल हो जाता है इसलिए difficulty in accessing the data happens in the files कोई बात नहीं बिटा, it's fine, totally fine. तो problem क्या है? कि files में से कोई specific type का data अगर access करना है, तो हर एक के लिए एक-एक program लिखना पड़ता है, बड़ा-बड़ा.
और वो program थोड़ा, of course, इतना आसान नहीं होता है program. Files में से अगर आपको कोई data extract करना है, आप programming कर सकते हैं, मैंने भी की है, C++ में की है, C में की है, मैंने in fact Python में भी किया है, it's not so easy initially. database में आसान होता है, एक छोटी सी query लिखनी होती है, काम खतम, अगर आप लोगों ने by chance कभी database पढ़ा है, तो उसमें आपको बस एक query लिखनी होती है, और आपको data जो भी extract हो जाता है, जिस type कभी चाहिए, तीसरा problem है data isolation, चलिए, data isolation का मतलब पता है किसी को, क्या होता है data isolation यहा तो हो सकता है कि अलग-अलग जो files बनी है background में वो software के, वो files के type अलग-अलग हो। पहले आपने excel sheet बनाई, वो excel type की थी, वापस से नई excel sheets बनाई, तो वो xlsx की हो गई। मतलब नए version of Microsoft Word की हो गई। हो सकता है एक और कुछ नई information आ रही है customer site से और वो information आपके word file में आ जाए। एक कोई फाइल जो है वो CSV फॉरमेट में आ जाए, कॉमा सेपरेटेड वैल्यूज का एक फाइल होता है, अगर आपने बाइचान सुना है CSV फाइल तो, तो हो सकता है कि फाइल सिस्टम में, जब अलग-अलग-अलग-अलग फाइल साप बनाते हैं, तो वहां से डेटा एक्स्ट्रैक करना, और कोई एक स्पेसिफिक टाइप का डेटा, यूजर तक पहुचाना मुश्किल हो जाता है, फाइल्स में ये प्रॉब्लम आ सकती है, तो हमें इंटेग्रिटी प्रॉब्लम है, इंटेग्रिटी प्रॉब्लम का मतलब है, कंस्ट्रेंट्स अप्लाई करना, अब ये कंस्ट्रेंट्स है क्या, देखो, आपने कभी बैंक में, बाई चांस, एटियम में, आप अपना कार्ड डालते हैं एडियम मशीन में, पिन एंटर करते हैं, आप विड्रॉल करने की कोशिश करते हैं, विड्रॉल करने की कोशिश करते हैं, लेट से 5000 रुपीज, अज्योमिंग कि आपके अकाउंट में सिर्फ 4000 रुपीज हैं, तो क्या वो विड्रॉल अलाउ हो amount की value अगर withdrawal के बाद में zero से कम हो जाती है, negative हो जाती है, तो ये withdrawal मुम्किन नहीं हो पाएगा.
अब ये क्या है? Constraint लगाया आपने. है न? ये constraint आप कहां लगाते हो? Value में.
Value कहां stored है आपके? Database में. अब अगर database जो है नहीं है, by chance data जो value है आपके account की, वो information रखी हुई है bank की background में, एक particular file में.
तो अगर file system में आपने ऐसी information रखी हुई है, तो ऐसे constraints लगाना आसान नहीं होता है, इतना आसान नहीं होता है, बहुत मुश्किल हो जाते हैं, ऐसे धेर सारे constraints है, like phone number, phone number जब आप store करने जाएंगे, तो वो number ही रहेगा, 10 digit का होगा, है न, और भी ऐसे constraints हो सकते हैं, like कि अगर आपके पास एक loan account है, उस loan account में, जब आप withdrawal करने के लिए जाएंगे, money, loan sanctioned है आपके पास already तो वहाँ से आप जब demand करेंगे तो demand जो है आपके sanctioned amount से ज़्यादा नहीं होना चाहिए कि bank ने बोला आप 2,00,000 का loan ले सकते हो आप बोलते मुझे नहीं 2,00,000 का ही मेरी requirement है मेरे को 2,00,000 दो वो नहीं हो सकता जैसे अभी मैंने एक example बताया वो नहीं हो सकता तो ऐसे जो constraints है ये constraints लगाना आसान नहीं है किसमे files में अगर data stored है तो multiple type की ऐसे constraints होंगे हम जब आगे बढ़ेंगे, जब DBMS को थोड़ा और explore करेंगे, SQL सीखेंगे, जब हम RDBMS जो relational database है वो सीखेंगे, तो वहाँ पे इन constraints के बारे में और देखेंगे, एक हमारे पास foreign की constraint आता है, अगर आपने by chance नाम सुना है तो नहीं सुना है, तो कोई बात नहीं है, वो भी constraint लगाना इतना आसान नहीं होता files में, database management system में बहुत बहुत आसान है, ये constraints लगाना, और उनको apply करें फिर आती है atomicity की problem atomicity क्या बोलता है atomicity बोलता है कि ये problem जो है किसी transaction में हो सकती है कोई भी transaction हुआ, कोई data value में changes हुए, और अगर वो permanent नहीं हो पाए, तो क्या हमारा system ने जो आधे अदूरे changes किये है, वो changes ऐसे ही रह जाएंगे, inconsistent रह जाएंगे, नहीं. एक example, जो आपको सबको बहुत अच्छे से पता है, एक example जो है, वो सबसे आसानी से समझ में आता है, देखो, क्या है atomicity का, कि suppose आपके पास एक bank account है A, जिसमें already 5000 rupees है, bank account B है, जिसमें 2000 रुपीज है और हम चाहते हैं एक transaction करना कि यहां से withdrawal करके, transfer करके यहां से debit करके 2000 रुपीज को हम यहां B में credit करना चाहते हैं transaction start हुआ database की value पे और वो जो value है वो value यहां से cut हो गई तो यहां पे debit करने के बाद बचा 3000 रुपीज बट suppose failure आ गया यह debit तो हो गया बट transaction fail हो गया देखो failure जो है computer science में बहुत नॉमल सी चीज़े जब software's use में आते हैं तब, जब software's आते हैं तब failure आ जाते हैं कहीं ने कहीं, अगर software's में failure आते हैं और by chance ये जो system था, fail हो गया, किसी ने किसी reason से transaction fail हो गया, तो transaction अगर fail हो गया, तो यहां से account में से पैसे कट गये, और यहां पे debit, debit तो यहां से हो गये, ब� नहीं होना चाहिए ना, नहीं, तो फिर क्या होना चाहिए, यहाँ पे एक ऐसा system होना चाहिए, जो ये कर सके, एक particular atomicity apply कर सके, atomicity का मतलब है कि अगर पूरा operation खतम हुआ है, तो जो खतम होने के बाद values होनी चाहिए, वो रहे, या फिर अगर बीच में कहीं अटक गया है, तो हम roll back करो इस value को वापस से किस particular value पे previous value पे पर ये इस चीज को बोलते हैं atomicity और ये atomicity file system में automatically नहीं आ पाईगी और नहीं इतने आसनी से आ पाईगी तो एक simple चीज है यहाँ पे वो ये है सीखने की कि atomicity सिफ इस चीज के लिए नहीं है actually भी आप कि कभी शायद ऑप्शन किए नहीं किया आज से 10-12 साल पहले तो बहुत प्रॉब्लम आया करती थी जब हम ईकॉमर्स वेबसाइट पर जाते थे एक दिन मेरे साथ हुआ कि मुझे एक शर्ट बहुत पसंद आया उस शर्ट की जो कीमत तो वह पेमेंट फेल हो गया किसी रीजन से अब मेरा पेमेंट फेल हो गया ठीक है पर इन्होंने क्या किया जैसे ही में अब थोड़ी देर बाद मैं वापस उस शर्ट को पर्चेस करने की कोशिश करता हूँ, तो मेरे को शर्ट की quantity 0 दिखती है, क्यों? क्योंकि मैंने जब update कर दिया यहाँ पे, कि मेरे शर्ट का जो payment failure हो गया मेरी bank की वज़े से, और इस शर्ट की जो number थी अब उनके पास availability 1 से लेके 0 हो गई, क्योंकि payment fail होने के बावजूद, उनका operation फूरा होने के नहीं होने के बावजूद भी ये value जो है वो वापस से restore नहीं हो पाई तो ये भी atomicity का problem है database में atomicity, transactions में atomicity जो है वो आसानी से implement हो जाती है बट यहाँ file system में नहीं हो पाई अगली problem है concurrent access anomalies concurrent access anomaly क्या होता है अगर आप लोग ने operating system पढ़ा है, तो operating system में इस चीज़ को बोलते हैं हम mutual exclusion. क्या बोलते हैं? Mutual exclusion कि अगर कोई एक data value पे, एक कोई process ने start कर दिया है operation perform करना, तो जब तक इसका operation perform नहीं होगा इस पे, तब तक दूसरा process इसको access नहीं करना चाहिए.
अगर दोनों ने एक साथ access कर लिया, तो फिर inconsistent result आएगा system के execution का, और यह होता है, यही होता है, कि concurrently अगर दो processes एक data value को एक साथ access कर पाए, तो problem हो जाती है, और वो problem क्या होती है, कि inconsistent result रहता है system का, ठीक है, तो यहां देखते हैं, concurrent access anomaly क्या होती है, suppose एक कोई shirt है, जो shirt की कीमत है 2000 रुपी, और उसकी एक ही quantity है है ना दो अलग-अलग city से एक person देहली से इस shirt को देखता है और उसे बड़ा अच्छा लगता है कि ये shirt तो लेनी ही पड़ेगी boss एक person बैंगलोर से है और उसने भी इस शर्ट को एक्सेस करने की कोशिश की बड़ा अच्छा लगा दोनों ने एक साथ में रीड किया एक एक क्वांटिटी अवेलेबल है ठीक है दोनों आगे बढ़ गए दोनों का पेमेंट सक्सेसफुल हो गया क्योंकि आपके सिस्टम ने इस शर्ट की सिंगल क्वांटिटी को दोनों जगह पर एक्सेस दे दी तो अगर दोनों आगे बढ़ गए और दोनों का पेमेंट जो है वह सक्सेसफुल हो गया अब बेग्राउंड में जब आपका स्टोर मैनेजर यहां पर आपकी इनवेंटरी रखी हुई है वहाँ पे बन्दा जाएगा यार, दो ओडर आए हैं इस शर्ट के देखें, शर्ट तो एक ही है, अब क्या करेंगे? अब क्या करेंगे? पता ही ये प्रॉब्लम क्यों आई? क्या आप एक बिजनस परसन हो?
आपके बैंक अकाउंट में अभी 20,000 रुपीज हैं. एक परसन है दिल्ली से. जो आपके bank account में 5000 रुपीज का deposit करना चाहता है, क्योंकि आपने उसको कुछ तो product बेचा है, दूसरा person है, वो भी 5000 रुपीज deposit करना चाहता है, दोनों अगर 5000-5000 देंगे, तो आपके पास 30,000 आ जाने चाहिए, बट होगा क्या, अगर दोनों ने एक साथ transaction start किया, values files में stored है files ने दोनों को concurrent access दे दिया अब दोनों ने 20,000, 20,000 read किया local machine पे और उसको add करने की कोशिश की 5000 तो यह हो जाएगा 25,000 यहाँ पे यह हो जाएगा 25,000 यहाँ पे और फिर यह 25,000 write करने की कोशिश करेंगे तो ultimately आपके पास 25,000 ही रहेंगे नुकसान हो गया सर नुकसान हो गया तो प्रॉबलम क्या है प्रॉबलम यह है कि अगर एक value पे concurrently दो अलग-अलग processes ने एक साथ access कर लिया आपके data system से तो हो सकता है कि उनके updations में inconsistency आ जाए, problem आ जाए ये file system में बड़ा ही problematic case है, बहुत बार होता है but database में इसके लिए हमारे पास solution होते हैं, तो file system में concurrent access की भी anomaly anomaly means problem हो सकती है, anomaly word का मतलब ही होता है problem, फिर आता है security problems, security problem मतलब जो file में data है वो उतना secured नहीं रहता क्यों, हो सकता है file का data visible हो जाए हो सकता है एक ऐसे person को वो file का data visible हो जाए जिसको वो नहीं देखना चाहिए है न, अब जैसे कि एक person है store manager, उसको क्या मतलब है कि store के owner को कितना income आया उसको क्या मतलब है कि ये जो owner है अलग-अलग employees को कितनी salary देता है वो तो सिफ एक store को manage कर रहा है inventory manage कर रहा है but file system में हो सकता है ऐसा कि एक particular file का access या सारी file का access सारी user को मिल जाए तो problem तो यही है न जैसे आप अपने bank account वो देखो जब आप login करते हो अपने bank account पे ATM machine के थूँ या फिर आप अपने ATM कार्ड पर ATM मशीन के थूँ लॉगिन करते हो या फिर नेट बंकी के थूँ लॉगिन करते हो तो आपको सिफ अपने ही अकाउंट की इंफॉर्मेशन मिलती है कि आपने अकाउंट में कितना अमाउंट ओफ मनी है आप लास्ट ट्रेंड ट्रांजेक्शन 20 ट्रां नहीं, ये security solution है, protection solution है, दूसरे लोगों का amount आपको नहीं दिखेगा, नहीं दिखना चाहिए, तो ये solution कैसे लगेगा, database में लग सकता है, files में मुश्किल है, एक और problem है, files, file system में store होती है, एक normal computer system में, अगर file system से किसी ने जाके, और उस file को ऐसी खोल लिया बिना application के तो, security breach हो जाएगी, कोई आपका friend आया, उसने देखा गेम खेलना है पापा का कंप्यूटर है आपके अंकल का कंप्यूटर है किसी का भी कंप्यूटर है उन आउन किया उसने देखा अरे यार हाट डिस्ट में जगी नहीं है नए गेम को स्टोर करने के लिए कुछ फाइल उड़ा दो सिस्टम बोलता है ये फाइल ब कि जहां पर डेटा स्टोर्ड होता है वह डेटाबेस का फाइल्स आपको दिखता ही नहीं आप उसको अपनी माइकंप्यूटर में जाकर और ऑपरेटिंग सिस्टम के फाइल सिस्टम की हेल्प से एक्सेस नहीं कर सकते तो सेक्योरिटी का सबसे बड़ा सोल्यूशन वहां पर मिल जाता है साइ यस रेस कंडीशन, बिल्कुल सही समझा था आपने, अब कुछ ऐसे चोटी-चोटी टर्म्स हैं, जो हम देखेंगे यहाँ पे, तो यह जो सारे प्रॉबलम्स मैंने समझा हैं, जो फाइल सिस्टम में थे, यह फाइल सिस्टम में प्रॉबलम की वज़से ही डेटाबेस पहला term आता है instance और दूसरा आता है schema.
schema क्या होता है? मैं बता देता हूँ. यहाँ पे definition आप पढ़ सकते हो, the overall design of database is called as database schema. definition पढ़के तो अमको अगर समझ में आ जाता तो, sir हम book क्यों नहीं पढ़ लेते? आपके पास क्यों पढ़ने आते?
definitely अगर तुमको समझ में आता तो मेरे को सुनने कौन आता? जब आप database बनाते हो ना, तो database में बनाते हो अलग अलग अलग अलग tables. मैं बात कर रहा हूँ RDBMS की. specific type का database design होता है relational database design तो जब उस particular database में आप बनाते हैं tables हर एक चोटी चोटी चीज की एक table तो एक table में कौन-कौन सी information होगी उसका overall design जो है उसको बोलते हैं database का schema एक चोटा सा example लेता हूँ मैं वही e-commerce website का ही example ले रहा हूँ e-commerce website पे आपने सोचा कि हम पहले एक शर्ट की टेबल बनाएंगे एक टेबल बनाएंगे शर्ट की जिसमें हम सिर्फ और सिर्फ शर्ट की इंफोर्मेशन रखेंगे अब इन शर्ट की इंफोर्मेशन में आपने क्या किया सबसे पहले तो उसका एक आईडी होगा जिसको आप QR कोड या किसी के थूँ एकसेस कर पाए फिर उस एक शर्ट का नाम होता है आप कभी भी ना एक काम करियेगा किसी e-commerce वेबसाइट पे ओपन करके देखेगा एक शर्ट को ब्लैक ब्लैक कलर चेक टीशर्ट और शर्ट ऐसा करके तो जो नाम रहता ना बड़ा सा वह नाम बता रहा हूं ब्लैक कलर चेक टीशर्ट और ब्लैक कलर सॉलिट शर्ट ऐसा करके नाम फिर उस शर्ट का ब्रांड आएगा कि किस ब्रांड की है वो शर्ट फिर उसका साइज आएगा क फिर आपके पास उसका प्राइस आएगा कि वो शर्ट का प्राइस कितना है जो आप जो बेचना चाहते हैं वो सकता है वो शर्ट का टाइप आ जाए मतलब टाइप मतलब वो स्लिम वो पर्टिकलर शर्ट जो है वो कॉलर्ड शर्ट है कि नहीं है कॉलर की इंफॉर्मेशन है फुल फुल स्लीव की शर्ट है या नहीं ऐसी धेर सारी इंफॉर्मेशन आप देंगे सिर्फ और सिर्फ शर कि वो राउन नेक है कि कॉलर है टीशर्ट पोलो टीशर्ट जिसको हम बोलते हैं ना कलर होगा उसका कलर भी आएगा यहां पर भी यह टाइप भी रहेगा चेक दबाले टाइप का तो ऐसे बहुत सारी चीजें आप एक टेबल में रखेंगे ऐसी और भी छोटे-छोटे छोटे-छोटे टेबल रहेंगे है ना इन टेबल में क्या लिखा हुआ है इस एक टेबल का नाम शर्ट इस टेबल में क्या क्या क्या क्या आपके पास वैल्यूज हैं, किस टाइप की चीज़े हैं, ID है, शर्ट का नाम है, ब्रैंड है, साइज है, यह है, वो है, यह जो मैंने डिजाइन डिसाइट की है, इसको बोलते हैं schema, क्या बोलते हैं schema, टेबल का डिजाइन, सारे पूरे डे शर्ट का नाम है black plain t-shirt और शर्ट ब्रांड है इसका xyz let's say size है small मैं small पेंदा हूँ इसलिए small लिख दिया अब मेरे को तुमारा नहीं पता quantity इसकी 3 quantity है हमारे पास price है इसका 1599 इसका type है plain shirt है solid and अलग यह value हो गई ऐसी थाउसेंट्स मिलियन्स ऑफ वैल्यूज होंगी इस शर्ट वाली टेबल में फिर टीशर्ट वाली टेबल में फिर जीन्स वाली टेबल में फिर ट्राउजर वाली टेबल में बस इतना ही खतम मेंस फैशन खतम इतना ही आता है लड़कों की फैशन में है ना है ना ठीक है बड यहाँ पे जो अंदर values लिखी हुई है यह values ना change होती रहती है जैसे किसी ने इस shirt की एक quantity की order place कर दी तो आपके पास बचेगी दो दूसरी शर्ट और उन सारी शर्ट या टीशर्ट के आर्डर आए हैं तो उनकी quantity कम हो जाएंगी हो सकता है एक शर्ट आपके पास खतम हो गया वो शर्ट बचा ही नहीं है तो उसका deletion हो जाएगा हो सकता है आपने नए कुछ आपके inventory में या आपके particular database में और entries की क्यों क्योंकि आपके पास नए शर्ट और टीशर्ट का स्टॉक आया तो उसमें insertion हाईंगे right हो सकता है कुछ particular product के आपने prices कम कर दिये तो वो prices जो आपने कम किये, उन prices को update करोगे यहाँ पे, तो tables में at a particular moment, जैसे कि right now, अभी के अभी, इस table में क्या-क्या values है, इन values को, यह सारी values को एक साथ बोलते हैं, database का instance, क्या बोलते है, instance, कि अभी, currently database का instance क्या है, तो यह सारी values जो यहाँ पे रखी हुई हैं, वो है इसका instance, कुछ insertion, deletion, यह instance बदले, अब कॉर्स बदलेगा तो यही देखो लिखा है कलेक्शन आफ इंफोर्मेशन स्टोर्ड इन देटाबेस एट पर्टिकुलर मोमेंट इस कॉल्ड लोगों को यह सारी चीजें एक्सप्लेन करने में बहुत एनर्जी लगती है और आप लोगों को इसको समझ के कंजिम करके याद रखने में उससे भी ज्यादा एनर्जी लगती है तो यह जो एनर्जी है दोनों एक दूसरे की हाई रखते हैं आप लोग बात मैं भी समझाते रहूंगा, दोनों एक दूसरे की high energy maintain करके रखेंगे, दोनों का फाइदा, मेरा फाइदा कि मेरे को खुशी मिल रही है आपको पढ़ा के, और दूसरा आपका फाइदा है आपको खुशी मिल रही है पढ़ के, सेशन को अगर like न चलो, basic-basic सी चीजे थी, अब बात करते हैं database languages. Database language का मतलब क्या है?
देखो, database को access करने के लिए अलग-अलग type की languages define की गई. ठीके, इन define की गई languages का motive उस database पे काम करने का अलग-अलग था. Motive का मतलब कि वो language क्या करना चाहती है database पे? अगर वो database की design में change करना चाहती है, design मतलब कि इस table में पहले column था, यहाँ पे discount का वो हटा दो, इस particular database की table में एक नया column लगा दो, तो अगर table की schema में कोई changes करने की कोशिश कर रहे हैं, तो उस table की schema पे या database की schema पे जो changes होंगे, वो एक specific language के थूँ होंगे, जिसे हम बोलते हैं DDL डेटा डेफिनेशन लैंग्वेज तो अगर टेबल में आपने कोई कॉलम नया ऐड कर दिया यह कॉलम रिमूव कर दिया है कोई भी स्कीमा से चेंजेस या स्कीमा से रिलेटिव चेंजेस करने हैं तो उसके लिए जो लैंग्वेज लगेगी उसको अपडेट करने के लिए जो लैंग्वेज लगेगी उसे हम बोलते हैं डीडी एल और अगर डेटाबेस के अंदर जो वैल्यूज रखी हुई है वैल्यूज मतलब यह सारी इंस्टेंस जो है उस instance पे काम करने के लिए अगर हमें कोई language चाहिए, तो उस language को हम बोलेंगे DML. Doing great job, completed your COA playlist, thank you so much.
Now I would like to have an expectation that you also do the great job. Using this knowledge, have a great career ahead. पर आपकी जो भी पहली salary आईगी, उसका 5% commission मेरा. ठीक है, चलो वापस आते हैं इदर, jokes apart. नहीं चाहिए पैसा मेरे को आप अजी अच्छा कुछ कर जाओ और कहीं ने कहीं मेरे को पर्सनल या फिर सोशल मीडिया पर टैक करके और मैसेज कर दो कि सर ऐसा हो गया है आई एम हैपी एंड यू हैव प्लेड गुड पार्ट इन थे पर्टिकलर थिंग आई एपी एंड सैडिस्फाइड ठीक है चलो तो डीडीएल क्या करता है डीडीएल उस लैंग्वेज का वह पार्ट है जो इसकी मां पर काम करता है और डीएमल वह पार्ट है जो कि मतलब टेबल्स या डेटाबेस के अंदर जो वैल्यूज रखी है उस पर काम करता है मतलब वैल्यूस को अगर insertion कराना है, नया value insert कराना है, तो DML लगेगा, अगर किसी value को update कराना है ये वाली को, तो DML लगेगा, अगर कोई delete कराना है, तो DML लगेगा, कोई भी value पे कोई आपको search करना है, या एक specific type की value extract करके लेके आनी है, तो DML लगेगा.
मतलब ultimately याद रखिए कि table की जो design है उस design पे, table का जो base design है उस design पे अगर आपको काम करना है तो आपको DDL language लगेंगी और अगर values पे काम करना है तो DML language लगेंगी. अब DML languages जो हैं वो दो type की होती है, एक होती है procedural और एक होती है non-procedural. procedural क्या होती है? procedural होती है कि ये procedural languages require a user to specify वाट डेटा नीडेड एंड हाउट गेट दो मतलब ये procedural language पहले तो बताएंगी कि इस table से मुझे एक particular type का data extract करना है और किस तरीके से करना है वो तरीका भी बताया जाएगा कि ये data इस तरीके से उठाके और यहां देखाओ मुझे लेट से इस particular पूरे shirts वाले पूरी table में से वो सारी shirts उठाके लाओ जो कि brand XYZ की है size small की है और जिनकी कीमत 5000 रुपे से कम की है या लेट से 2000 रुपे से कम हो अच्छा आपके budget में आते है 1000 रुपे से कम की है ठीक है ओके बजट ठीक है तो ऐसा अगर इनफॉरमेशन चाहिए तो मैंने रिक्वारमेंट बताइए कि मुझे इनफॉरमेशन चाहिए वह सारी शर्ट जो xyz ब्रांड की है साइज स्माल हो थाउजेंड के अंदर-अंदर उनकी कीमत मुझे एक डीएमल लैंग्वेज में कुछ तो बताना पड़ेगा फिर यह भी स्पेसिफाई करना पड़ेगा कि जो डेटा मुझे आया है वह कैसे आना है किस particular format में आना है अगर वो बताया कि किस format में आना है किस तरीके से मुझे extract करना है तो वो आएगा procedural non-procedural में बस difference इतना है कि क्या data extract करना है बस वो बताओ कैसे ये मत बताओ वो automatically आपकी DML language जो है वो decide करेगी कि कैसे उसको आपको देना पड़ेगा ठीके तो जो डिक्लेरेटिव या नॉन प्रोसीजरल डीएमल्स होती है यह डीएमल जो नॉन डिक्लेरेटिव या फिर नॉन प्रोसीजरल या डिक्लेरेटिव डीएमल्स होती है वो क्या बोलती है यह बोलती है कि यूजर सिर्फ स्पेसिफाई करेगा कि क्या डेटा चाहिए बट ये स्� non-procedural या declarative DML type का होता है क्योंकि उसमें आप सिर्फ और सिर्फ query लिखकर यह बताते हो कि कौन सा डाटा चाहिए किस तरीके से चाहिए यह नहीं बताते हो ऑटोमेटिकली जो आपका क्वेरी प्रोसेसर होता है वह एक्सट्रैक्ट करके और आपको उस अपने तरीके से फॉरमेट बनाकर और आपको डाटा डिस्प्ले करा देता है डाटा ग्रेट ग्रेट ग्रेट अंडरस्टूट चल अब डेटाबेस को यूज़ करने वाले यूज़र्स बहुत होते हैं आप लोग भी यूज़ कर रहे हो इन फेक्ट आप लोगों को पता भी नहीं होगा और यूज़ कर रहे हो और यूज़र्स बहुत होते हैं और मोबाइल फोन यूज़र्स बट उनको पता ही नहीं है क्योंकि एज कंप्यूटर साइंटिस्ट वी हैव डन अ ग्रेट जॉब वी मीन्स आर कम्यूनिटी हैड डन अ ग्रेट ग्रेट जॉब टू गिव देम ओनली डेट मच ऑफ एक्सेस जो उन्हें चाहिए उस तरीके से दे रखा है जिस तरीके से उन्हें चाहिए या समझ में आ जाए उनको कोई डेटा चाहिए दे दो काम खत्म उन्होंने तो बटन क्लिक कर दिया सब कुछ दिख जाना चाहिए देट इट अ तो ऐसे अलग-अलग टाइप की यूजर्स होते हैं जो डेटाबेस को यूज करते हैं सबसे पहले नाइव यूजर्स जो डेटाबेस के बारे में कुछ जानते ही नहीं है एप्लीकेशन प्रोग्राम चलाते हैं कोई वेबसाइट या कोई भी एक पर्टिकलर प्रोग्राम च ताकि उन्हें कहीं ने कहीं कोई information मिल पाए, let's say किसी e-commerce website की या किसी भी इस type की चीजों की, जैसे payment websites हैं, ऐसी धेर सारी websites हैं, जहांपे database background में use होता है, पर उनको कोई idea नहीं, they don't have any idea at all, they don't have any idea at all, ठीके, है न, चलो, तो क्या होगा, database user, naive users कौन हैं, जो ये बताते हैं, यह बताते हैं कि या जो वो होते हैं जिनको कोई आइडिया नहीं है कि डेटाबेस एक्चली है क्या वो बस यूज करते हैं एप्लीकेशन प्रोग्राम को और वो एप्लीकेशन प्रोग्राम के बैग्राउंड में डेटाबेस आक्सेस कर रहे हैं बिना कुछ जाने फिर आते हैं एप्लीकेशन प्रोग्रामर्स एप्लीकेशन प्रोग्रामर्स वो जो एप्लीकेशन लिखते हैं और ऐसे स्टेटमेंट लिखते हैं उस एप्लीकेशन प्रोग्राम में जिसके थूँ बैग्राउंड म तो प्रोग्रामर्स वह राइटिंग दिया एप्लीकेशन जो कि नाइव यूजर्स यूज कर रहे हैं वह प्रोग्रामर कुछ प्रोग्रामिंग अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने अपने ये users database को access जरूर करते हैं, but application program लिखके नहीं, queries लिखके.
क्या लिखके? Queries लिखके. तो अगर कोई ऐसा programmer या ऐसा एक database user है, जो queries लिखता है, ठीक है, sophisticated statement लिखता है, और उस statement को लिखके, और database को access करने की कोशिश कर रहा है, तो उसे बोलते हैं sophisticated user.
ये दोनों unsophisticated थे. फिर आते हैं Specialized User, Specialized User वो होते हैं जो की ये Database Tool डिजाइन करते हैं, मतलब की एक ऐसी Architects की Team जो Oracle में काम कर रही है और एक नए Database Version बना रही है, मतलब जो Database डिजाइन करता है, जो Database का Tool बनाता है, DBMS जो Tool है, वो Tool बनाना, अच्छा आप बताओ अभी आप कौन सा वाला DBMS Tool यूज़ कर रहे हो? अगर आप by chance use कर रहे हो कोई DBMS tool, Oracle का ही है, किसी और particular company का, IBM या किसी और का, तो कौन सा use कर रहे हो अभी, कोई तो tool use कर रहे हो न, अब वो database का tool बनाया किसने, ऐसे specialized users ने, तो specialized user वो है, जो database बनाते हैं, design करते हैं, ठीक है, फिर आते हैं database administrators, जहां जिस भी company में database use होता है, उस company में एक database का administrator होता है, जिसको हम बोलते है DBA, यह बहुत high class post होती है, जो बहुत-बहुत important है, database को maintain करना, फिर periodic maintenance चलाना, फिर clean up procedure चलाना, उस database में security methods define करना, है ना? protection और authentication डिफाइन करना, authorization डिफाइन करना, ये सारे काम होते हैं इस database administrator के, ये एक बहुत बड़ी post है, एक ऐसे particular organization में, जहांपे background में database use होता है, बहुत high level का, है न, जब मैं अपने college में था, तब जिन जिन लोगों को DBMS बहुत पसंद हुआ करता था, वो सारे के सारे लोग चाह क्योंकि ये बड़ा fascinating work होता था कि database management system में सबसे high level की job. फिर Oracle के कुछ architects आये और version 16 plus में उन्होंने क्या बोला कि DBA की job खतम.
मतलब हमने हमारा ऐसा database बनाया जो autonomous database है और इस database में DBA के लिए एक person की जरूरत नहीं पड़ेगी. हमने ऐसे programs लिख दिये हैं artificial intelligence को use करके. कि वो प्रोग्राम ऑटोमेटिकली डेटाबेस को मैनेज कर लेंगी खुद से ही, तो वो जॉब खतम हो गई, पर ये ओरिकल की 16 प्लस के जो वर्जन है उन्हीं में ही मिलेगा, I don't think so कि वो वर्जन आप तक पहुँचे भी होंगे अभी तक, तो ओरिकल या और भी दूसरी companies भी definitely, ओरिकल, sorry, डेटाबेस बनाने वाली companies जो हैं, वो इतना ज्यादा आगे बढ़ चुकी हैं कि इस DBA का काम ही खा गए वो, क्या करें साहब? ऐसा ही है.
चलो, आगे बढ़ते हैं और बात करते हैं डेटा का व्यू. ये डेटा का व्यू क्या होता है? डेटा का व्यू जो होता है, मैं एक्स्प्लेइन करूँगा आप लोगों को, कि ये एक पर्टिकलर डेटा जो डेटा बेस में रखा हुआ है, तीन अलग-अलग तरीके से.
ये क्या होते हैं? बताता हूँ. जिसे कि आप एक डेटा बेस डिजाइन करते हो.
आपने इस database का design करने में अलग-अलग data की tables बनाई, है न? बहुत सारी अलग-अलग-अलग-अलग tables बना ली, एक t-shirt की, एक shirt की, एक jeans की, एक trouser की, और इस तरीके से आपने बहुत सारी अलग-अलग tables बना ली. ये जब आप tables बनाते हो, किसी tool को use करके database के अंदर, तो ये जो tables हैं, ये है एक logical view, जिसने design की है, like अगर मैंने design की है, तो यह है मेरा logical view of data मुझे दिखेगा कि हाँ यह वाली tables मैंने बनाई है अब यह जब tables मैंने बना दी अब यह tables कहीं ने कहीं background में जाके store होगी और उनकी tables की बहुत सारी जो entries रहेंगी वो भी store होगी तो यह जो entries store रहेंगी database के अंदर वो कहीं ने कहीं कोई idea नहीं, मतलब जब आपने ये design बनाई, ये table की design बनाई, आपने tables बना दिये इतने सारे अलग अलग अलग अलग, इसको बोलते है logical view of data, or logical level of the data. लॉजिकल लेवल आफ डेटा मतलब जितनी भी टेबल्स की डिजाइन है वो सारी आपने बना दी और एक टेबल की अलग-अलग डिजाइन उसमें धेर सारा डेटा सब कुछ बना दिया और आपने इनको अगर स्टोर करने की कोशिश की तो कहीं ने कहीं डिस्क बे जाकर स्ट पर ये as it is table की table disk पे थोड़ी store होती है, ये कुछ अलग तरीके से store होती है, कैसे?
कोई idea, कोई idea नहीं है, तो पर कैसे store होगी? वो physical level of data रहेगा, physical level of data क्या है? कि ये disk पे ये वाली tables जो है, वो कैसे store होगी?
ये table, table के अंदर की इतनी सारी entries किस तरीके से store हो रही है, वो है physical level, as a logical level, आपको क्या दिखेगा बस ये सारी tables, क्या दिखेगी ये सारी tables, तो disk पे table store है, logical level को नहीं पता कि किस तरीके से, दोनों के बीच में कहीं ने कहीं database का connection है, जो इस logical level से physical level को connect करता है, बट इस logical level वाले को कोई idea नहीं है, कि physical level पे ये disk पे actual में data store कैसे हुआ, एक टेनिक एन प्लीज कंफर्म ना अमाई लाइव चलो वापस आते हैं तो मैं बता रहा था आप लोगों को कि यह जो है यह जो आपके पास क्या है लॉजिकल व्यू है इस लॉजिकल व्यू में या लॉजिकल लेवल पर आपको एजर इज इन ऑनर जो डाटाबेस बनाता है उसे सारी टेबल सारी इंफोर्मेशन दिखती है समझ में आते कि यह सारी इंफोर्मेशन है उससे फिजिकल लेवल जो है हिड़न है उसको नहीं पता कि स्टोर कहां हुआ है डिस्क पर store कहा हुआ है यह नहीं पता है ठीक है तो वो हो जाएगा physical level जहां पे storage है but storage कैसे है क्यों है किस तरीके से है उसे नहीं पता उसे सिफ tables पता है अब view level क्या होता है view level जो होता है एक छोटा सा part of database का logical level जो की user को दिखता है कि user को चाहिए इतना दिखाना इतना ही दिखाना है जै के एक particular database में धेय सारी information है कि किस-किस customer का क्या-क्या type का account है और उसमें क्या-क्या information या क्या-क्या amount है इस पूरी information को bank का manager देख सकता है पूरा जी हां bank manager can see कि किस particular customer का कितना-कितना account में कितना-कितना amount है बट एक user जो normal user है वो क्या देख सकता है कि वो अगर अपना bank account डालेगा तो हर एक user के लिए, type of user के लिए, अलग-अलग type की information extract करके मिलेगी, अब इस manager को सिफ इसी branch की information मिलेगी, दूसरे branch में क्या चल रहा है नहीं पता, उस branch के manager को इस branch की information मिलेगी, इसकी नहीं, और अगर ऐसा bank है, जो worldwide फैला हुआ है, तो worldwide इतने सारे, धेर सारे customer, धेर सारी branches हैं, सब customers का सारा data, जो database में रहेगा, वह हर एक यूजर को तो नहीं दिखेगा नहीं तो व्यू क्या होता है व्यू लेवल वह होता है जो किसी एक डेटाबेस यूजर को दिखता है एक्चॉल में जब वह यूज कर रहा है तब तो उसे यूज कैसे करेगा या जो से एक्सट्रैक्ट कर सकते हैं उस इंफॉर्मेशन को वह से व्यू में दिखेगा तो यह तीन लेवल ऑफ एक्ट्रैक्शन होता है डेटा का यह तीन लेवल ऑफ जो एक्सट्रैक्शन जिसे हम कहते हैं वह है सबसे पहले तो फिजिकल लेवल फिजिकल लेवल वह लेवल होता एक्चुअल में डिस्क पर स्टोर रहता है। उस फिजिकल लेवल के टॉप पर आता है लॉजिकल लेवल, जो टेबल की डिजाइन और ये लॉजिकल ही आपने बनाई थी, ओनर ने बनाई थी, डेटाबेस मैनेज करने वाले बनई थी, वो लॉजिकल लेवल। लॉजिकल लेवल वाले को नहीं पता है कि फिजिकल लेवल में क्या कैसे डेटा स्टोर हुआ है। फिर इस लॉजिकल लेवल से मल्टिपल चोटे-चोटे व्यूज बनते हैं, ताकि जो यूजर है इस डेटाबेस का, यूजर, एक्चुअल एंड य व्यू लेवल तो यह व्यू लेवल वाले को नहीं पता है कि डेटाबेस में और क्या है अगर आप साडी देख रहे हो तो साडी ही दिखेंगी आपको बैगराउंड में यह नहीं पता चलेगा कि जीन्स और कौन सी है या है भी के नहीं है नहीं पता चलेगा जब तक आप उस फिर बात आती है database system architecture की या system structure की, तो database का जो एक system बनता है, उस system में क्या होता है, आपने एक command दी कि मुझे ये type का data database से access करना है, ये command सबसे पहले query processor के पास जाती है, ये query processor process करता है, कि यह जो कमांड या क्वेरी आई है यह किस टाइप की है क्या क्या क्या क्या इसे इनफॉर्मेशन किस फॉर्मेट में चाहिए फिर यह प्रोसेसर जो है क्वेरी प्रोसेसर इस टाइप से कमांड को आगे भेजता है स्टोरेज मैनेजर के पास में कि स्टोरेज मैनेजर उस पर्टिकलर कमांड के अगेंड अगेंस्ट जितना कंटेंट है या जो भी कंटेंट एक्सेस करना है उस कंटेंट को स्टोरेज से एक्सेस कर पाए देखो यह दोनों का अ एक्चुली यूज क्या है बताता हूं मैं बताता हूं थोड़ी देर में एक मिनित में बताता हूं आपको इतना तो पता है कि डेटाबेस स्टोर रहेगा हाट डिस्क पे डिस्क पे और किसी एंटरप्राइस का अगर आप डेटाबेस देखो तो वो टेरा बाइट्स में होता मेन मेमेरी के अंदर, रैम के अंदर और वहाँ पे होती है process. अब क्या आप पूरा database उठा के लाओगे? नहीं.
क्या पूरा एक table उठा के लाओगे? नहीं. कुछ ही data जिस पे आपको काम करना है, वही लेके आओ.
पर इस तरीके से लेके आओ कि रैम में कम से कम space में आपका काम हो जाए और जल्दी से जल्दी processing हो जाए. रैम और disk के बीच में data transfer जो है वो कम से कम data का transfer हो. क्यों? क्योंकि आपको यह idea होना चाहिए कि disk के access में बहुत time लगता है, it is a very slow process of accessing the disk, और अगर disk और main memory के बीच में data transfer बहुत ज्यादा हुआ, ज्यादा लगा, तो उससे क्या होगा, उससे आपका जो query का processing time है, या आपकी command की जो processing time है, आपकी application की running time है, वो बढ़ जाएगी, performance low, performance low, मतलब user का experience खरा� तो होता क्या है सबसे पहले जब आपने कमांड लिखी तो ये query processor उस कमांड को इस तरीके से process कराता है ताकि storage manager के पास में वही कमांड जाए कि मुझे इतना ही data इस format में आप इस तरीके से दो ताकि storage manager क्या करे storage manager जितना required data है उतना ही required data main memory में भेजे और फिर उसको process करा जाए क्वेरी का या जो कमांड का मेरे पास में रिक्वेस्ट आया है उस कमांड के हिसाब से जो जो डेटा डेटा बेस से डिस्क से या स्टोरेज से मुझे एक्सेस करना है वो मैं कर पाऊं कौन करेगा स्टोरेज मैनेजर क्वेरी प्रोसेसर क्या करेगा जो कमांड आई है एक एप्लीकेशन से या यूजर से कि मुझे यह डेटा इस फॉरमेट में एक्सेस करना है उसको प्रोसेस करके और स्टोरेज मैनेजर तक इंफॉर्मेशन पहुंचाई जाए कि इस तरीके से यह यह यह कंटेंट मुझे एक्सेस करके दो यहाँ पे एक optimization करके एक चीज़ आती है जिसे हम बोलते है query optimization, अगर वो query optimization होती है तो storage manager के पास में command बड़ी specific तरीके से जाएंगी ताकि storage manager का काम आसान हो जाए और disk और main memory के बीच में data movement कम से कम हो, system का performance improve रहेगा, yes. Database अगर network पर use होता है, तो एक two-tier, three-tier architecture होता है, ये semester exam में कहीं-कहीं काम आ जाता है, बाकि gateway में उतना कहीं खास देखा नहीं गया, two-tier architecture होता है, यह user अपनी application के थूँ, application के थूँ क्या करता है, command data है, वो directly command database system के पास जाती है, through network, और वो two-tier architecture होता है, three-tier architecture क्या करता है, user जो है application की, एक client process अपने end पे चलाता है, network, के थूँ यह application की server process से connected रहता है और वह server process background में database system से connect करती है। तो आप चाहें तो server, client server architecture के थूँ इस तरीके से भी जा सकते हैं, इस तरीके से भी जा सकते हैं। चलो। अभी एक 10 मिनिट में 12.30 का सेशन था पर मैं 12.30 PM से स्टार्ट करूँगा इसको, एक 12.30 PM पे एक सेशन होने वाला है, इस सेशन में हम बात करने वाले हैं किस चीज के बारे में, एक नए educator, एक नया course सार्ट करने वाले हैं उसके launch के बारे में.
और आज 5.30 PM क्लास है, जी हाँ 5.30 PM DBMS की ही क्लास है और इस क्लास में हम देखेंगे कि कैसे DBMS डिजाइन होता है. तेरी जो basic part था वो खतम हो गया है, अब हम थोड़ा mainstream की तरफ जाएंगे, mainstream मतलब actual में database के designing की तरफ, तो एक एक एक करके topics को हम tick mark करते जाएंगे, तो यहां से start होगा हमारा designing database, designing database में हम सबसे पहले जाएंगे, ER diagram की तरफ, फिर वहां से जाएंगे RDBMS की तरफ, RDBMS में हमारे फिर नॉर्मलाइजेशन के आगे हमारे पास में और भी दूसरे ट्रांजेक्शन मैनेजमेंट आएगा फिर फाइन सो आप मेंसे कोई भी अगर चाहता है कि उसे आनिकेडमी प्लस या आइकॉनिक का सब्सक्रिप्शन चाहिए और subscription ले लीजिए thank you so much for joining here आप लोगों से मिलते हैं वापस से अगले session में 10 minute में तब तक अपना क्याल रखेगा keep learning, like नहीं किया session को तो like कर दीजिए share करिये अपने सारे friends के बीच ये sessions को and thank you so much, आप लोग notes बनाते रहिए आगे जाके notes की तभीर ना हो see you again in the next session, thank you