आंकड़ा मान्यीकरण

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

यह औपचारिक सत्यापन से भिन्न है, जो किसी विनिर्देश या संपत्ति को प्रयुक्त करने के लिए एल्गोरिदम की शुद्धता को सिद्ध करने या अस्वीकार करने का प्रयास करता है।

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

विभिन्न प्रकार
आंकड़े मान्यीकरण की मूल बातों का मूल्यांकन करने में, उनके दायरे, जटिलता और उद्देश्य के अनुसार विभिन्न प्रकार के मान्यीकरण के संबंध में सामान्यीकरण किया जा सकता है।

उदाहरण के लिए:
 * आंकड़ा प्रकार मान्यीकरण
 * सरल सीमा और बाधा मान्यीकरण
 * कोड और क्रॉस-रेफरेंस मान्यीकरण
 * संरचित मान्यीकरण
 * संगति मान्यीकरण

आंकड़ा प्रकार मान्यीकरण
आंकड़े के प्रकार का मान्यीकरण सामान्यतः अधिक सरल आंकड़े क्षेत्र पर किया जाता है।

यह सबसे सरल प्रकार का आंकड़े के प्रकार का मान्यीकरण सत्यापित करता है कि उपयोगकर्ता इनपुट के माध्यम से प्रदान किए गए भिन्न-भिन्न वर्ण अधिक ज्ञात आदिम आंकड़ो के प्रकारों के अपेक्षित वर्णों के अनुरूप होता हैं, जैसा कि प्रोग्रामिंग भाषा या आंकड़े भंडारण और पुनर्प्राप्ति की क्रियाविधि में परिभाषित किया गया है।

उदाहरण के लिए, पूर्णांक क्षेत्र को केवल 0 से 9 वर्णों का उपयोग करने के लिए इनपुट की आवश्यकता हो सकती है।

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

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

उदाहरण के लिए, वर्तमान भू-राजनीतिक क्षेत्र की पहचान करने के लिए उपयोगकर्ता द्वारा प्रदान किए गए देश कोड की आवश्यकता हो सकती है।

संरचित मान्यीकरण
संरचित मान्यीकरण अधिक जटिल प्रसंस्करण के साथ-साथ अन्य प्रकार के मान्यीकरण के संयोजन की अनुमति देता है। इस प्रकार के जटिल प्रसंस्करण में संपूर्ण जटिल आंकड़े ऑब्जेक्ट या सिस्टम के भीतर प्रक्रिया संचालन के सेट के लिए सशर्त बाधाओं का परीक्षण सम्मिलित हो सकता है।

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

उदाहरण
सन् 2007 से पूर्व के 10-अंकीय आईएसबीएनएस के लिए एकाधिक प्रकार के आंकड़े मान्यीकरण प्रासंगिक हैं (आईएसओ 2108 के 2005 संस्करण में 2007 के पश्चात् से 13 अंकों के आईएसबीएन की आवश्यकता होती है ).


 * आकार। सन् 2007 से पूर्व के आईएसबीएन में 10 अंक होने चाहिए जिसमें वैकल्पिक हाइफ़न या रिक्त स्थान इसके चार भागों को भिन्न करते है।
 * प्रारूप मान्यीकरण। पूर्व 9 अंकों में से प्रत्येक 0 से 9 तक होना चाहिए और 10वां 0 से 9 या एक्स होना चाहिए।
 * संख्या मान्यीकरणें। ट्रांसक्रिप्शन त्रुटियों का पता लगाने के लिए जिनमें अंकों को परिवर्तित या स्थानांतरित कर दिया गया है अतः सन् 2007 से पूर्व के आईएसबीएन के अंतिम अंक को गणितीय सूत्र के परिणाम से मेल खाना चाहिए। जिसमें अन्य 9 अंक सम्मिलित हैं। (अंतर्राष्ट्रीय मानक पुस्तक संख्या आईएसबीएन-10 मान्यीकरण अंक|आईएसबीएन-10 अंक मान्यीकरण)।

मान्यीकरण प्रकार
अनुमत चरित्र मान्यीकरण
 * यह सुनिश्चित करने के लिए मान्यीकरण करता है कि क्षेत्र में केवल अपेक्षित वर्ण उपस्तिथ हैं। उदाहरण के लिए संख्यात्मक क्षेत्र में केवल 0-9 अंक, दशमलव बिंदु और संभवतः ऋण चिह्न या अल्पविराम की अनुमति हो सकती है। टेक्स्ट क्षेत्र जैसे व्यक्तिगत नाम मार्कअप भाषा के लिए उपयोग किए जाने वाले वर्णों को अस्वीकार कर सकता है। ई-मेल पते के लिए कम से कम @ चिह्न और कई अन्य संरचनात्मक विवरणों की आवश्यकता हो सकती है। अतः नियमित अभिव्यक्ति ऐसे मान्यीकरणो को प्रयुक्त करने के प्रभावी उपाय हो सकते हैं।

बैच योग
 * यह विलुप्त रिकॉर्ड के लिए जाँच करता है। चूँकि बैच में सभी रिकॉर्ड के लिए संख्यात्मक क्षेत्र साथ जोड़े जा सकते हैं। अतः कुल बैच अंकित किया जाता है और कंप्यूटर मान्यीकरणता है कि कुल सही है, उदाहरण के लिए, साथ कई लेन-देन की 'कुल लागत' क्षेत्र जोड़ें इत्यदि।

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

अंकों का मान्यीकरण
 * संख्यात्मक आंकड़े के लिए प्रयुक्त त्रुटि का पता लगाने का समर्थन करने के लिए, संख्या में अतिरिक्त अंक जोड़ा जाता है जिसकी गणना अन्य अंकों से की जाती है।

संगति मान्यीकरण
 * यह सुनिश्चित करने के लिए क्षेत्र की जाँच करता है कि इन क्षेत्र में आंकड़े अनुरूप है। उदाहरण के लिए, यदि समाप्ति तिथि अतीत में है तब स्थिति सक्रिय नहीं होती है।

क्रॉस-सिस्टम स्थिरता मान्यीकरण
 * यह सुनिश्चित करने के लिए विभिन्न प्रणालियों में आंकड़ो की तुलना करता है कि यह सुसंगत है। चूँकि सिस्टम ही आंकड़े को भिन्न प्रकार से प्रस्तुत कर सकते हैं, जिस स्थिति में तुलना के लिए परिवर्तन की आवश्यकता होती है (उदाहरण के लिए, सिस्टम ग्राहक नाम को 'Doe, John Q' के रूप में ही नाम क्षेत्र में संग्रहीत कर सकता है, जबकि दूसरा प्रथम नाम 'जॉन' औरअंतिम नाम 'डोए' और मध्य नाम का उपयोग करता है जो इसकी 'गुणवत्ता' को दर्शाता है)।

आंकड़ा प्रकार मान्यीकरण
 * टाइप किए गए आंकड़े के साथ इनपुट अनुरूपता की मान्यीकरण करता है। उदाहरण के लिए, संख्यात्मक आंकड़े को स्वीकार करने वाला इनपुट बॉक्स 'ओ' अक्षर को अस्वीकार कर सकता है।

फ़ाइल अस्तित्व का मान्यीकरण
 * जाँचता है कि निर्दिष्ट नाम वाली फ़ाइल उपस्तिथ है। फ़ाइल प्रबंधन का उपयोग करने वाले प्रोग्रामों के लिए यह मान्यीकरण आवश्यक है।

प्रारूप मान्यीकरण
 * जाँचता है कि आंकड़े निर्दिष्ट प्रारूप (टेम्प्लेट) में है, उदाहरण के लिए, दिनांक YYYY-MM-DD प्रारूप में होना चाहिए। इस प्रकार के मान्यीकरण के लिए नियमित अभिव्यक्ति का उपयोग किया जा सकता है।

उपस्थिति मान्यीकरण
 * जाँचता है कि आंकड़े उपस्तिथ है, उदाहरण के लिए, ग्राहकों के पास ईमेल पता होना आवश्यक हो सकता है।

रेंज मान्यीकरण
 * जाँचता है कि आंकड़े मानों की निर्दिष्ट सीमा के अंदर होते है, उदाहरण के लिए, प्रायिकता 0 और 1 के मध्य होनी चाहिए।


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

वर्तनी और व्याकरण की जाँच
 * वर्तनी और व्याकरण संबंधी त्रुटियों की खोज करता है।

विशिष्टता मान्यीकरण
 * मान्यीकरणता यह है कि प्रत्येक मान अद्वितीय है। इसे कई क्षेत्रों (अर्थात पता, प्रथम नाम, अंतिम नाम) पर प्रयुक्त किया जा सकता है।


 * टेबल लुक अप मान्यीकरण
 * टेबल लुकअप चेक आंकड़े की तुलना अनुमत मानों के संग्रह से करता है।

मान्यीकरण के पश्चात् की कार्रवाइयां

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

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

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

मान्यीकरण का लॉग
 * यहां तक ​​कि ऐसी स्थितियों में जहां आंकड़े मान्यीकरण में कोई समस्या नहीं मिलती है, वहा मान्यीकरण किए गए मान्यीकरण का लॉग प्रदान करना और उनके परिणाम महत्वपूर्ण हैं। यह आंकड़े विवादों के आलोक में और मान्यीकरण में सुधार करने के लिए किसी भी अनुपस्थित आंकड़े मान्यीकरण जाँच की पहचान करने में सहायक है।

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

यह भी देखें

 * आंकड़े मान्यीकरण
 * मान्यीकरण और मान्यीकरण

बाहरी संबंध

 * Data Validation, OWASP
 * Input Validation, OWASP Cheat Sheet Series, github.com