कम्प्युटर्समध्ये डेटाबेसेसचं काम चालतं कसं? शिवाय इंडेक्स, चेन्स, डेटास्ट्रक्चर्स यांच्या कामाचीही तोंडओळख.
आपण व्यवहारात अनेक त - हेची माहिती वापरतो. पण ती जर व्यवस्थितपणे रचली नाही, तर पुन्हा शोधायला कठीण जाते. पूर्वी बाहेरून आलेली बिलं, पत्रं, पावत्या आणि अनेक गोष्टी ठेवायला घरात एक तार टांगलेली असायची. कुठलाही जपून ठेवण्यासारखा कागद आला की तो त्या तारेत खुपसून ठेवायचा. आपल्या पूर्वजांचा हाच 'डेटाबेस' होता. एकाच तारेत मग डॉक्टर्सचं प्रिस्क्रिप्शन, पगारपत्रिका, बँकेच्या पावत्या आणि विजेची बिलं ही सगळी खोचून ठेवलेली असायची. त्यामुळे बाहेर काढतानाही जो सगळ्यात शेवटी आलेला आणि लावलेला असेल तोच प्रथम हाती लागायचा. म्हणूनच या पध्दतीला 'लास्ट इन र्फस्ट आऊट' (रुढ्ढस्नह्र) म्हणायचे.
पण या पध्दतीत बरेच गोंधळ होते. जर असे शेकडो कागद त्या तारेला लावले तर कुठलाही कागद शोधायला कठीण जाई. ओळीनं पहिल्यापासून सगळे कागद तपासून बघावे लागत. कालांतरानं टांगलेल्या तारा जाऊन फाइल्स आल्या. समजा आपण अशीच एक बॉक्स फाइल घेऊन त्यात सगळे कागद येतील तसतसे पूवीर्च्या गठ्ठ्यावर म्हणजेच (रुढ्ढस्नह्र) पध्दतीनं फाइल करून ठेवले तरी प्रश्न तोच रहातो.
हे समजण्यासाठी आपण एक उदाहरण घेऊया. समजा, एका वाचनालयात सगळ्या पुस्तकांविषयीची माहिती आपण एका बॉक्स फाइलमध्ये ठेवली. दर पुस्तकाला एक पान म्हणजेच एक 'रेकॉर्ड'. त्या पानावर आपण पुस्तकाचं नाव, खरेदीची तारीख, प्रकाशकाचं नाव, प्रकाशनाची तारीख, आवृत्ती नंबर, किंमत, विषय (प्रवास, चरित्र...) आणि ते वाचनालयात आहे की नाही, असल्यास ते कुठे असेल त्या कपाटाचा क्रमांक, नसल्यास ते कोणी नेलंय आणि ते परत घेण्याची 'ड्यू डेट' केव्हा आहे... वगैरे माहितीची नोंद करू. कुठलंही नवीन पुस्तक आलं की त्याविषयीची माहिती एका कागदावर लिहून वाचनालयाचा कर्मचारी ते रेकॉर्ड बॉक्स फाइल उघडून सर्वात वर (म्हणजेच रुढ्ढस्नह्र) लावेल.
आता समजा वाचनालयाचा एक सभासद एक पुस्तक निवडून ते घरी नेण्यासाठी तिथल्या काऊंटरवर आला. आता त्या कर्मचाऱ्याला ती बॉक्स फाइल उघडून त्या पुस्तकाचं पान (रेकॉर्ड) उघडून तिथे 'ते कोणी नेलंय' आणि 'परत करण्याची ड्यू डेट' या दोन गोष्टी नव्यानं लिहाव्या (अपडेट) कराव्या लागतील. प्रश्न आता हा की त्याला ते पुस्तकाचं पान सापडणार कसं? म्हणजे पुन्हा त्याला त्या बॉक्स फाइलमध्ये पहिल्या पानापासून (थुंकी लावत लावत) सगळी पानं उलटवणं आलं. जर त्या वाचनालयात १० हजार पुस्तकं असतील, तर ते पान सापडेपर्यंत उभ्या उभ्या कुणाचं ते पुस्तकही वाचून व्हायचं! आणि हाच प्रश्न पुस्तक परत करताना किंवा 'ओव्हर ड्यू' पुस्तकधारकांना नोटिसा पाठवताना येईल. एकूण या प्रकाराला वेळ खूप लागतो.
आणि म्हणूनच आपण आपल्याला परिचित असलेली इंडेक्स ही पध्दत वापरतो. कुठल्याही पुस्तकाच्या शेवटी जसा इंडेक्स असतो तसाच हा इंडेक्स असतो. हा इंडेक्स आद्याक्षराप्रमाणे म्हणजे 'ए' पासून 'झेड'पर्यंत मांडलेला असतो. याचा वापर करून आपण आपल्याला पाहिजे तो शब्द शोधतो, त्यापुढे लिहिलेलं पान नंबर वाचतो आणि थेट पुस्तकातल्या त्याच पानावर जातो. तसंच जर आपण आपल्या पुस्तकाच्या रेकॉर्डज्वर (पान) नंबर टाकले आणि लेखक आणि त्याच्या रेकॉर्डचं पान नंबर असा तक्ता (इंडेक्स) बनवला आणि तो बॉक्स फाइलच्या सुरूवातीला ठेवला तर काय होईल? जेव्हा तो वाचक काऊंटरवर एक पुस्तक घेऊन येतो तेव्हा तो वाचनालयातला कर्मचारी त्या पुस्तकाचा लेखक बघून त्या इंडेक्समधली त्या लेखकाची ती ओळ बघतो, त्यापुढचा पुस्तकाचा पान नंबर बघतो आणि मग बॉक्स फाइल उघडून थेट त्या पानाकडे जाऊन पाहिजे ती माहिती वाचतो किंवा बदलतो. पण यात एक प्रश्न रहातोच जर मला एखाद्या प्रकाशकाच्या सगळ्या पुस्तकांची यादी हवी असेल तर? यासाठी लेखकाला 'मुख्य शब्द' (की) धरून बनवलेला इंडेक्स चालणार नाही. आपल्याला प्रकाशक हा 'की' मानून आणखी एक इंडेक्स बनवावा लागेल. तसंच किंमत, विषय, खरेदीची तारीख अशा अनेक 'कीज'वर आपण वेगवेगळे इंडेक्सेस बनवू शकतो. एवढंच काय, एकाच इंडेक्सखाली दुसरा इंडेक्सही आपल्याला ठेवता येतो. याचमुळे जर आपल्याला एका ठराविक लेखकाच्या, ठराविक विषयावरच्या सगळ्या पुस्तकांविषयीची (उदा. असिमॉव्हची रसायनशास्त्रावरची) माहिती हवी असेल तरीही ती चटकन मिळू शकते.
पण यात एक गोष्ट लक्षात ठेवली पाहिजे. आपण दरवेळी आपल्याकडल्या पुस्तकांच्या यादीत कुठलाही बदल केला (उदाहरणार्थ नवं पुस्तकं आणलं किंवा जुनं पुस्तक हरवलं) की या साऱ्या इंडेक्समधली माहितीसुध्दा बदलून अद्ययावत करणं आपल्याला भाग आहे. त्यामुळे इंडेक्स ही गोष्ट आपल्याला हवीहवीशी वाटली तरी त्याचा अतिवापर करून चालत नाही. कारण त्यासाठी जागाही जास्त लागते आणि ते इंडेक्स सतत बदलत बसायला वेळही खूप जातो.
कम्प्युटरमध्ये डेटाबेसेसचं काम बऱ्यापैकी याच धतीर्वर चालतं. ओरॅकल, डीबीटू, माय एस्क्युएल, एस्क्युएल र्सव्हर, इत्यादि डेटाबेस सॉफ्टवेअर्स आपल्याला प्रचंड मोठ्या प्रमाणात माहिती साठवणं, शोधणं, बदलणं वगैरे गोष्टी सहजपणे करू देतात. शिवाय इंडेक्सप्रमाणेच साखळी (चेन्स) हाही प्रकार आपण वापरू शकतो. या सगळ्यांना 'डेटा स्ट्रक्चर्स' असं म्हणतात. कुठलाही डेटाबेस ठेवताना सगळी रेकॉर्डज् एके ठिकाणी ठेवल्यानंतर त्यातल्या रेकॉर्डज्मधले संबंध हे इंडेक्स, चेन्स असे डेटा स्ट्रक्चर्स राखतात. हे सगळं डेटाबेसच्या सॉफ्टवेअरमध्ये होतं. त्यामुळेच आपण रेल्वेचं तिकीट काही मिनिटात काढणं, हवं तेव्हा बदलणं, घरबसल्या आपल्या बॅंकेच्या खात्यात किती रक्कम बाकी आहे हे तपासणं अशा साऱ्या गोष्टी सहजपणे करू शकतो. ही माहिती अनेेक डेटाबेसेसमध्ये साठवून हवी तेव्हा वापरली जाते. पूवीर् डेटाबेसेस नसल्यानं सगळीकडे अनेक कारकून निरनिराळ्या फाइल्स आणि रजिस्टर्स यांच्या थप्प्या घेऊन बसत. आणि कुठल्याही कामाला भरपूर वेळ लागत असे.
कोणत्याही टिप्पण्या नाहीत:
टिप्पणी पोस्ट करा