3.1 डेटाबेस सामान्यीकरण

नॉर्मल फॉर्म हा रिलेशनल डेटा मॉडेलमधील नातेसंबंधाचा गुणधर्म आहे जो रिडंडंसीच्या दृष्टीने वैशिष्ट्यीकृत करतो, ज्यामुळे डेटाचे सॅम्पलिंग किंवा बदलण्याचे तार्किकदृष्ट्या चुकीचे परिणाम होऊ शकतात. सामान्य फॉर्मची व्याख्या आवश्यकतेचा संच म्हणून केली जाते जी संबंध (डेटाबेसमधील सारण्या) पूर्ण करणे आवश्यक आहे.

डेटाबेस रिलेशनशिप्सचे सामान्य फॉर्म्सला अनुरूप असलेल्या फॉर्ममध्ये रूपांतरित करण्याच्या प्रक्रियेस सामान्यीकरण म्हणतात. सामान्यीकरणाचा उद्देश डेटाबेसच्या संरचनेला कमीतकमी तार्किक रिडंडंसी प्रदान करणार्‍या फॉर्ममध्ये आणण्याचा आहे आणि त्याचा हेतू डेटाबेसची कार्यक्षमता कमी करणे किंवा वाढवणे किंवा कमी करणे किंवा वाढवणे नाही .

डेटाबेसमध्ये साठवलेल्या माहितीची संभाव्य विसंगती कमी करणे हे सामान्यीकरणाचे अंतिम ध्येय आहे. सामान्यीकरण प्रक्रियेचा सामान्य हेतू खालीलप्रमाणे आहे:

  • विशिष्ट प्रकारच्या अनावश्यकता वगळणे;
  • काही अद्यतन विसंगती दुरुस्त करा;
  • डेटाबेस प्रकल्पाचा विकास जो वास्तविक जगाचे पुरेसे "उच्च दर्जाचे" प्रतिनिधित्व आहे, अंतर्ज्ञानी आहे आणि त्यानंतरच्या विस्तारासाठी एक चांगला आधार म्हणून काम करू शकतो;
  • आवश्यक अखंडता मर्यादा लागू करण्यासाठी प्रक्रिया सुलभ करणे.

रिडंडंसी सहसा अशा प्रकारे संबंध विघटित करून काढून टाकली जाते की प्रत्येक नातेसंबंधात फक्त प्राथमिक तथ्ये संग्रहित केली जातात (म्हणजे, इतर संग्रहित तथ्यांमधून प्राप्त केलेली तथ्ये नाहीत).

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

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

काहीवेळा सामान्यीकरणावर टीका केली जाते कारण "हे फक्त सामान्य ज्ञान आहे" आणि कोणताही सक्षम व्यावसायिक अवलंबित्व सिद्धांत लागू न करता "नैसर्गिकपणे" पूर्णपणे सामान्यीकृत डेटाबेस तयार करेल.

तथापि, प्रोफेसर क्रिस्टोफर डेट यांनी नमूद केल्याप्रमाणे, सामान्यीकरण ही सामान्य ज्ञानाची तंतोतंत तत्त्वे आहेत जी एखाद्या प्रौढ डिझायनरला त्याच्या मनात मार्गदर्शन करतात, म्हणजेच, सामान्यीकरणाची तत्त्वे सामान्य ज्ञानाची औपचारिकता आहेत . दरम्यान, सामान्य ज्ञानाची तत्त्वे ओळखणे आणि औपचारिक करणे हे खूप कठीण काम आहे आणि ते सोडवण्यात यश मिळणे ही एक महत्त्वपूर्ण उपलब्धी आहे.

3.2 प्रथम सामान्य फॉर्म

प्रथम सामान्य फॉर्म (1NF) हे रिलेशनल डेटा मॉडेलमधील संबंधाचे मूलभूत सामान्य स्वरूप आहे.

रिलेशन व्हेरिएबल प्रथम सामान्य स्वरूपात असते जर आणि फक्त जर, त्या व्हेरिएबलच्या कोणत्याही वैध मूल्यामध्ये, प्रत्येक रिलेशन ट्युपलमध्ये प्रत्येक विशेषतासाठी एकच मूल्य असते.

रिलेशनल मॉडेलमध्ये, रिलेशनच्या संकल्पनेच्या व्याख्येनुसार, संबंध नेहमी प्रथम सामान्य स्वरूपात असतो.

विविध सारण्यांसाठी, ते संबंधांचे योग्य प्रतिनिधित्व नसू शकतात आणि त्यानुसार, 1NF मध्ये नसू शकतात. अशा प्रकरणासाठी ख्रिस्तोफर डेटच्या व्याख्येनुसार, सारणी सामान्यीकृत केली जाते (समतुल्यपणे, प्रथम सामान्य स्वरूपात असते) जर आणि फक्त जर ते काही संबंधांचे थेट आणि खरे प्रतिनिधित्व असेल. अधिक विशेषतः, विचाराधीन सारणीने खालील पाच अटी पूर्ण केल्या पाहिजेत:

  • वरपासून खालपर्यंत पंक्तींचा क्रम नाही (दुसर्‍या शब्दात, पंक्तींचा क्रम कोणतीही माहिती देत ​​नाही).
  • स्तंभांचा डावीकडून उजवीकडे क्रम नाही (दुसऱ्या शब्दात, स्तंभांच्या क्रमामध्ये कोणतीही माहिती नसते).
  • डुप्लिकेट ओळी नाहीत.
  • पंक्ती आणि स्तंभाच्या प्रत्येक छेदनबिंदूमध्ये संबंधित डोमेनमधील एक मूल्य असते (आणि दुसरे काहीही नाही).
  • सर्व स्तंभ "नियमित" आहेत.

सारणीच्या सर्व स्तंभांच्या "नियमितता" चा अर्थ असा आहे की टेबलमध्ये कोणतेही "लपलेले" घटक नाहीत ज्यात नियमित स्तंभ नावांचा संदर्भ न देता फक्त काही विशेष ऑपरेटरच्या आवाहनामध्ये प्रवेश केला जाऊ शकतो किंवा ज्यामुळे पंक्तींसाठी दुष्परिणाम होतात. किंवा मानक ऑपरेटर्सची विनंती करताना टेबल.

मूळ नॉन-सामान्यीकृत (म्हणजे काही संबंधांचे योग्य प्रतिनिधित्व नाही) सारणी:

कर्मचारी फोन नंबर
इव्हानोव्ह I.I.

283-56-82

390-57-34

पेट्रोव्ह पी.पी. ७०८-६२-३४
सिदोरोव एस.एस.

सारणी 1NF पर्यंत कमी केली आहे, जे काही संबंधांचे योग्य प्रतिनिधित्व आहे:

कर्मचारी फोन नंबर
इव्हानोव्ह I.I. 283-56-82
इव्हानोव्ह I.I. 390-57-34
पेट्रोव्ह पी.पी. ७०८-६२-३४

3.3 दुसरा सामान्य फॉर्म

रिलेशन व्हेरिएबल दुसऱ्या नॉर्मल फॉर्ममध्ये असते जर आणि फक्त जर ते पहिल्या सामान्य फॉर्ममध्ये असेल आणि प्रत्येक नॉन-की विशेषता त्याच्या उमेदवार की (प्रत्येक) वर अपूरणीयपणे अवलंबून असेल .

इरिड्यूसिबिलिटी म्हणजे संभाव्य कीमध्ये विशेषतांचा एक छोटा उपसंच नसतो ज्यावरून हे कार्यात्मक अवलंबित्व देखील प्राप्त केले जाऊ शकते. अपरिवर्तनीय कार्यात्मक अवलंबनासाठी, "पूर्ण कार्यात्मक अवलंबन" ची समतुल्य संकल्पना सहसा वापरली जाते.

जर उमेदवार की सोपी असेल, म्हणजे, त्यात एकच गुणधर्म असेल, तर त्यावर कोणतेही कार्यात्मक अवलंबन अपरिवर्तनीय (पूर्ण) आहे. उमेदवार की ही संमिश्र की असल्यास, दुसऱ्या सामान्य स्वरूपाच्या व्याख्येनुसार, संमिश्र उमेदवार कीच्या भागावर अवलंबून असलेल्या संबंधात कोणतेही गैर-की गुणधर्म नसावेत.

दुस-या सामान्य फॉर्ममध्ये संबंध रूपांतरित करण्याचे उदाहरण

विशेषतांच्या जोडीला {कंपनी शाखा, स्थान} खालील संबंधात प्राथमिक की बनवू द्या:

आर
कंपनी शाखा नोकरी शीर्षक पगार संगणकाची उपलब्धता
टॉमस्क मध्ये शाखा क्लिनर 20000 नाही
मॉस्को मध्ये शाखा प्रोग्रामर 40000 खा
टॉमस्क मध्ये शाखा प्रोग्रामर २५००० खा

समजा की पगार शाखा आणि पदावर अवलंबून असतो आणि संगणकाची उपलब्धता केवळ पदावर अवलंबून असते.

एक कार्यात्मक अवलंबन स्थिती आहे -> संगणक असणे, ज्यामध्ये डावी बाजू (निर्धारक) प्राथमिक कीचा फक्त एक भाग आहे, जी दुसऱ्या सामान्य स्वरूपाच्या स्थितीचे उल्लंघन करते.

2NF पर्यंत कमी करण्यासाठी, मूळ संबंध दोन संबंधांमध्ये विघटित केले पाहिजे:

R1
कंपनी शाखा नोकरी शीर्षक पगार
टॉमस्क मध्ये शाखा क्लिनर 20000
मॉस्को मध्ये शाखा प्रोग्रामर 40000
टॉमस्क मध्ये शाखा प्रोग्रामर २५०००
R2
नोकरी शीर्षक संगणकाची उपलब्धता
क्लिनर नाही
प्रोग्रामर खा
प्रोग्रामर खा

3.4 तिसरा सामान्य फॉर्म (3NF)

रिलेशन व्हेरिएबल R हे 3NF मध्‍ये आहे आणि जर खालील अटी सत्य असतील तरच:

  • आरदुसऱ्या सामान्य स्वरूपात आहे.
  • कोणतीही नॉन-की विशेषता नाहीआरउमेदवार की वर संक्रमणात्मक कार्यात्मक अवलंबित्व नाहीआर.

व्याख्या स्पष्टीकरण:

रिलेशन R ची नॉन-की विशेषता ही एक विशेषता आहे जी R च्या कोणत्याही उमेदवार कीशी संबंधित नाही.

विशेषतांच्या संचावर Z गुणांच्या संचाचे कार्यात्मक अवलंबित्व X (लिखीत X → Z, उच्चारले जाते “x निर्धारित करते z”) जर Y हा गुणविशेषांचा संच असेल तर X → Y आणि Y → Z. यामध्ये केस, X, Y आणि Z पैकी कोणताही संच दुसर्‍याचा उपसंच नाही, म्हणजे X → Z, X → Y, आणि Y → Z हे कार्यात्मक अवलंबित्व क्षुल्लक नाहीत आणि Y → X हे कार्यात्मक अवलंबित्व देखील नाही.

3NF ची व्याख्या, कॉडच्या समतुल्य परंतु वेगळ्या शब्दात, कार्लो झानिओलो यांनी 1982 मध्ये दिली होती. त्यानुसार, रिलेशन व्हेरिएबल 3NF मध्ये आहे जर आणि फक्त जर त्याचे प्रत्येक कार्यात्मक अवलंबन X → A खालीलपैकी किमान एक अटी पूर्ण करत असेल:

  • X मध्ये A आहे (म्हणजे X → A एक क्षुल्लक कार्यात्मक अवलंबित्व आहे)
  • एक्स - सुपर की
  • A ही एक प्रमुख विशेषता आहे (म्हणजे, A उमेदवार कीचा भाग आहे).

झानिओलोची व्याख्या 3NF आणि अधिक कठोर बॉइस-कॉड नॉर्मल फॉर्म (BCNF) मधील फरक स्पष्टपणे परिभाषित करते: BCNF तिसरी अट वगळते ("A एक मुख्य गुणधर्म आहे").

बिल केंटने कॉडच्या 3NF व्याख्येचा एक संस्मरणीय आणि पारंपारिकपणे वर्णनात्मक सारांश दिला होता: प्रत्येक नॉन-की विशेषता "की, संपूर्ण की, आणि किल्ली व्यतिरिक्त काहीही नाही याबद्दल माहिती प्रदान केली पाहिजे ".

नॉन-की विशेषतांच्या "पूर्ण की" वर अवलंबून राहण्याची स्थिती हे सुनिश्चित करते की संबंध दुसऱ्या सामान्य स्वरूपात आहे; आणि त्यांच्यासाठी "की शिवाय काहीही नाही" वर अवलंबून राहण्याची अट अशी आहे की ते तिसऱ्या सामान्य स्वरूपात आहेत.

ख्रिस डेट केंटच्या सारांशाविषयी 3NF चे "अंतर्ज्ञानी आकर्षक वैशिष्ट्य" म्हणून बोलतात आणि निरीक्षण करतात की, थोड्या बदलासह, ते कठोर बॉइस-कॉड सामान्य स्वरूपाची व्याख्या म्हणून देखील काम करू शकते: "प्रत्येक गुणधर्माने की बद्दल माहिती प्रदान करणे आवश्यक आहे. , एक पूर्ण की, आणि किल्लीशिवाय काहीही नाही.

3NF व्याख्येची केंटची आवृत्ती डेटाच्या फॉर्म्युलेशनच्या Boyce-Codd सामान्य स्वरूपाच्या आवृत्तीपेक्षा कमी कठोर आहे, कारण पूर्वीचे केवळ नॉन-की विशेषता कीजवर अवलंबून असतात.

प्राथमिक गुणधर्म (जे की किंवा त्यांचे भाग आहेत) कार्यात्मकपणे अवलंबून नसावेत; त्यातील प्रत्येक किल्ली स्वतः किंवा त्याचा काही भाग देऊन किल्लीबद्दल माहिती प्रदान करते. येथे हे लक्षात घेतले पाहिजे की हा नियम केवळ नॉन-की विशेषतांसाठी वैध आहे, कारण सर्व विशेषतांवर लागू केल्याने सर्व जटिल पर्यायी की पूर्णपणे अक्षम होतील, कारण अशा कीचा प्रत्येक घटक "पूर्ण की" स्थितीचे उल्लंघन करेल.

उदाहरण म्हणून रिलेशन व्हेरिएबल R1 विचारात घ्या:

R1
कर्मचारी विभाग दूरध्वनी
ग्रिशिन हिशेब 11-22-33
वासिलिव्ह हिशेब 11-22-33
पेट्रोव्ह पुरवठा ४४-५५-६६

प्रत्येक कर्मचारी केवळ एका विभागाशी संबंधित आहे; प्रत्येक विभागात एकच टेलिफोन आहे. कर्मचारी विशेषता ही प्राथमिक की आहे. कर्मचार्‍यांकडे वैयक्तिक फोन नसतात आणि कर्मचार्‍यांचा फोन नंबर पूर्णपणे विभागावर अवलंबून असतो.

उदाहरणामध्ये, खालील कार्यात्मक अवलंबन अस्तित्वात आहे: कर्मचारी → विभाग, विभाग → फोन, कर्मचारी → फोन.

रिलेशन व्हेरिएबल R1 दुस-या सामान्य स्वरूपात आहे कारण प्रत्येक विशेषतामध्ये संभाव्य की कर्मचाऱ्यावर अपरिवर्तनीय कार्यात्मक अवलंबित्व आहे.

कर्मचारी → फोन हा संबंध संक्रमणात्मक आहे, त्यामुळे संबंध तिसऱ्या सामान्य स्वरूपात नाही.

R1 विभाजित केल्याने दोन रिलेशन व्हेरिएबल्स 3NF मध्ये आहेत:

R2
विभाग दूरध्वनी
हिशेब 11-22-33
पुरवठा ४४-५५-६६

R3
कर्मचारी विभाग
ग्रिशिन हिशेब
वासिलिव्ह हिशेब
पेट्रोव्ह पुरवठा

प्रारंभिक संबंध R1, आवश्यक असल्यास, संबंध R2 आणि R3 मध्ये सामील होण्याच्या ऑपरेशनच्या परिणामी सहजपणे प्राप्त केले जाते.