ऍप्लिकेशन सर्व्हर आणि क्लायंटच्या जोड्या. क्लायंट-सर्व्हर अनुप्रयोग. क्लायंट-सर्व्हर आर्किटेक्चरचे फायदे

संगणकावर व्हायबर 22.03.2019
संगणकावर व्हायबर

P rimary Key हे टेबलमधील एक फील्ड आहे जे डेटाबेस टेबलमधील प्रत्येक पंक्ती/रेकॉर्डला अनन्यपणे ओळखते. प्राथमिक की मध्ये अद्वितीय मूल्ये असणे आवश्यक आहे. प्राथमिक की स्तंभामध्ये मूल्य असू शकत नाही.

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

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

नोंद- डेटाबेस टेबल तयार करताना तुम्ही या संकल्पना वापरू शकता.

प्राथमिक की तयार करणे

ग्राहक सारणीमध्ये आयडी विशेषता ही प्राथमिक की म्हणून परिभाषित करण्यासाठी येथे वाक्यरचना आहे.

टेबल ग्राहक तयार करा(आयडी इंट शून्य नाही, नाव वरचार (२०) शून्य नाही, वय पूर्ण शून्य नाही, पत्ता अक्षर (२५), पगार दशांश (१८, २), प्राथमिक की (आयडी));

CUSTOMERS टेबल आधीपासून अस्तित्वात असताना "ID" स्तंभावर प्राथमिक की मर्यादा तयार करण्यासाठी, खालील वापरा SQL वाक्यरचना:

टेबल बदला ग्राहक प्राथमिक की (आयडी) जोडतात;

नोंद

जर तुम्ही प्राथमिक की जोडण्यासाठी ALTER TABLE विधान वापरत असाल, तर प्राथमिक की स्तंभ(s) आधीपासून NULL मूल्ये (टेबल प्रथम तयार केले असल्यास) नसलेले म्हणून घोषित केले जाणे आवश्यक आहे.

एकाधिक स्तंभांवर प्राथमिक की परिभाषित करण्यासाठी, खालील SQL वाक्यरचना वापरा:

टेबल ग्राहक तयार करा(आयडी पूर्ण शून्य नाही, नाव वरचार (२०) शून्य नाही, वय पूर्ण शून्य नाही, पत्ता अक्षर (२५), पगार दशांश (१८, २), प्राथमिक की (आयडी, नाव));

जेव्हा ग्राहक सारणी आधीपासूनच अस्तित्वात असेल तेव्हा ID आणि NAME स्तंभांवर प्राथमिक की मर्यादा तयार करण्यासाठी, खालील SQL वाक्यरचना वापरा.

टेबल बदला ग्राहक निर्बंध जोडतात PK_CUSTID प्राथमिक की (आयडी, नाव);

प्राथमिक की हटवत आहे

खाली दिलेल्या वाक्यरचनेचा वापर करून तुम्ही टेबलमधून प्राथमिक की मर्यादा साफ करू शकता.

टेबल बदला ग्राहक प्राथमिक की टाकतात;

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

प्राथमिक कळ

डेटाबेस सामान्यीकरणावरील लेखातील प्राथमिक की संकल्पनेला आम्ही आधीच थोडक्यात स्पर्श केला आहे. प्राथमिक की म्हणजे स्तंभ किंवा स्तंभांचा समूह जो विशिष्टपणे रेकॉर्ड ओळखतो. प्राथमिक की व्याख्येनुसार अद्वितीय आहे: टेबलमध्ये दोन असू शकत नाहीत वेगवेगळ्या ओळीसह समान मूल्येप्राथमिक कळ. प्राथमिक की बनवणारे स्तंभ NULL असू शकत नाहीत. प्रत्येक टेबलमध्ये फक्त एक प्राथमिक की असू शकते.

अद्वितीय की

एक अद्वितीय की म्हणजे स्तंभ किंवा स्तंभांचा समूह ज्याची मूल्ये (स्तंभांच्या गटासाठी मूल्यांचे संयोजन) पुनरावृत्ती केली जाऊ शकत नाही. युनिक की आणि प्राथमिक की मधील फरक हे आहेत:

  • एका टेबलसाठी अनेक अनन्य की असू शकतात (जे सामान्यीकरणाबद्दल लेख वाचतात त्यांच्यासाठी एक द्रुत प्रश्न: नियम काय आहेत? सामान्य आकारयाचे उल्लंघन होईल का? ;)
  • युनिक की मध्ये NULL व्हॅल्यू असू शकतात आणि जर NULL युनिक की व्हॅल्यू असलेल्या अनेक पंक्ती असतील, तर SQL 92 मानकानुसार अशा पंक्ती वेगळ्या (युनिक) मानल्या जातात.

बाह्य की

टेबलांमधील संबंध व्यवस्थित करण्यासाठी आणि डेटाबेसमधील माहितीची अखंडता आणि सातत्य राखण्यासाठी परदेशी की ही मुख्य यंत्रणा आहे.

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

आणि सर्वात महत्वाची गोष्ट. सर्व परदेशी की मूल्ये मूळ की मूल्यांपैकी एकाशी जुळली पाहिजेत. (जुळण्या/विसंगतीबद्दल कंसात नोंद: दुय्यम की स्तंभांच्या मूल्यांमध्ये NULL आढळल्यास बारकावे उद्भवतात. आता या बारकावे मध्ये जाऊ नका). संबंधित मूळ की मूल्ये नसलेल्या परदेशी की मूल्यांना अनुमती नाही. येथेच आपण संदर्भात्मक अखंडतेच्या संकल्पनेकडे सहजतेने पुढे जाऊ.

संदर्भात्मक अखंडता

संदर्भ अखंडतेचे पहिले नियम आधीच्या परिच्छेदामध्ये आधीच नमूद केले आहेत: पंक्तींना टेबलमध्ये दिसण्याची परवानगी नाही (जोडताना किंवा सुधारित करताना काही फरक पडत नाही) ज्याची परदेशी की सध्याच्या कोणत्याही मूल्यांशी जुळत नाही पालक की.

अधिक मनोरंजक मुद्देजेव्हा आम्ही पॅरेंट टेबलमधील पंक्ती हटवतो किंवा सुधारतो तेव्हा उद्भवते. मुलाच्या टेबलच्या पंक्ती \"हवेत लटकणे\" दिसणे कसे टाळायचे? या उद्देशासाठी, अद्यतन आणि हटविण्यावर संदर्भित अखंडता नियम आहेत, ज्यात, SQL 92 मानकानुसार, खालील विधाने असू शकतात:

  • कॅस्केड - हे सुनिश्चित करते की मूल की मध्ये केलेले बदल आपोआप चाइल्ड टेबलमध्ये केले जातात. जर मूळ की बदलली गेली असेल तर - ON UPDATE CASCADE चाइल्ड टेबलमध्ये तंतोतंत समान विदेशी की बदलांची खात्री करेल. जर मूळ सारणीतील एक पंक्ती हटविली गेली असेल तर, DELETE CASCADE वर हे सुनिश्चित करेल की चाइल्ड टेबलमधील सर्व संबंधित पंक्ती हटविल्या गेल्या आहेत.
  • SET NULL - पॅरेंट टेबलमधील एक पंक्ती हटवताना, ON DELETE SET NULL चाइल्ड टेबलमधील संबंधित पंक्तीमधील सर्व दुय्यम की कॉलम NULL वर सेट करेल. पॅरेंट की बदलताना, ON UPDATE SET NULL चाइल्ड टेबलच्या संबंधित पंक्तींचे (ओह कसे:) संबंधित कॉलम NULL वर सेट करेल.
  • SET DEFAULT - SET NULL प्रमाणेच कार्य करते, फक्त ते NULL ऐवजी संबंधित सेलवर डीफॉल्ट मूल्ये लिहिते.
  • कोणतीही क्रिया नाही (डिफॉल्टनुसार सेट) - जेव्हा पालक की बदलते, तेव्हा चाइल्ड टेबलमधील परदेशी कीवर कोणतीही कारवाई केली जात नाही. परंतु जर पालक कीची मूल्ये बदलण्यामुळे संदर्भाच्या अखंडतेचे उल्लंघन होते (म्हणजेच, "हवेत लटकलेल्या" चाइल्ड टेबलच्या पंक्ती दिसणे), तर डीबीएमएस असे बदल करण्यास परवानगी देणार नाही. पालक टेबलवर.

बरं, आता - सामान्य पासून विशिष्ट पर्यंत.

MySQL आणि Oracle मधील की आणि संदर्भित अखंडता

ओरॅकल प्राथमिक, अनन्य, परदेशी की पूर्णपणे सपोर्ट करते. ओरॅकल खालील संदर्भात्मक अखंडतेच्या नियमांना समर्थन देते:

  • एसक्यूएल 92 मानकापेक्षा अधिक कठोर आवृत्तीमध्ये कोणतीही कारवाई (डिफॉल्टनुसार सेट) नाही: मूळ सारणीच्या पंक्ती बदलणे आणि हटवणे ज्यासाठी संबंधित तारमुलांच्या टेबलमध्ये.
  • DELETE CASCADE वर.

अधिक जटिल नियम Oracle मधील संदर्भ अखंडता ट्रिगर यंत्रणेद्वारे लागू केली जाऊ शकते.

MySQL आवृत्ती 4.1 (लेखनाच्या वेळी नवीनतम स्थिर आवृत्ती) साठी परवानगी देते आदेश तयार करा/ संदर्भ / विदेशी की वाक्ये सेट करण्यासाठी सारणी बदला, परंतु ते कोणत्याही प्रकारे विचारात घेत नाही आणि प्रत्यक्षात परदेशी की तयार करत नाही. त्यानुसार, विदेशी की द्वारे लागू केलेले संदर्भ अखंडतेचे नियम MySQL मध्ये समर्थित नाहीत. आणि माहितीची अखंडता आणि सुसंगतता सुनिश्चित करण्यासाठी सर्व चिंता MySQL डेटाबेसक्लायंट ऍप्लिकेशन डेव्हलपरच्या खांद्यावर पडणे.

MySQL डेव्हलपर फॉरेन की सह कार्य अंमलात आणण्याचे आणि आवृत्ती 5.0 मध्ये संदर्भात्मक अखंडता राखण्याचे वचन देतात. बरं, जेव्हा MySQL 5.0 आवृत्ती स्थिर होईल, तेव्हा शेवटी काय होते ते आपण पाहू. मला खरंच, MySQL ला सपोर्ट करायला आवडेल संदर्भात्मक अखंडता(कार्यक्षमतेचा त्याग न करता :).

काल्पनिक एंटरप्राइझच्या कर्मचाऱ्यांबद्दल काही माहिती असलेली टेबल (डिग्री 5 चे प्रमाण) दाखवते. सारणीच्या पंक्ती ट्यूपल्सशी संबंधित आहेत. प्रत्येक ओळ प्रत्यक्षात एका वस्तूचे वर्णन आहे खरं जग(व्ही या प्रकरणातकर्मचारी), ज्याची वैशिष्ट्ये स्तंभांमध्ये समाविष्ट आहेत. रिलेशनल रिलेशनशिप घटकांच्या संचाशी संबंधित असतात आणि ट्यूपल्स घटकांशी संबंधित असतात. सापेक्ष संबंध दर्शविणाऱ्या सारणीतील स्तंभांना म्हणतात विशेषता.

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

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

प्राथमिक कळ- व्ही रिलेशनल मॉडेलप्राथमिक की (किंवा डीफॉल्ट की) म्हणून निवडलेली उमेदवार संबंध की पैकी एक दिली.

नात्यात अनेक कळा असू शकतात. एक की नेहमी घोषित केली जाते प्राथमिक, त्याची मूल्ये अद्यतनित केली जाऊ शकत नाहीत. इतर सर्व संबंध कळा म्हणतात संभाव्य कळा.

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

तर प्राथमिक कळएकच विशेषता असते, त्याला म्हणतात साध्या की सह.

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



श्रेणीबद्ध आणि विपरीत नेटवर्क मॉडेल्सरिलेशनल डेटामध्ये समूह संबंधांची संकल्पना नाही. वेगवेगळ्या संबंधांच्या ट्युपल्समधील संबंध प्रतिबिंबित करण्यासाठी, त्यांच्या कीचे डुप्लिकेशन वापरले जाते.

इतर नातेसंबंधांच्या किल्लीच्या प्रती असलेल्या गुणधर्मांना म्हणतात परदेशी कळा.

उदाहरणार्थ, विभाग आणि कर्मचारी यांच्यातील संबंध प्राथमिक की कॉपी करून तयार केले जातात "विभाग_क्रमांक" पहिल्या नात्यापासून दुसऱ्यापर्यंत. अशा प्रकारे, दिलेल्या विभागातील कर्मचाऱ्यांची यादी मिळविण्यासाठी, हे आवश्यक आहे: 1) विभाग सारणीमधून, विशेषता मूल्य सेट करा "विभाग_क्रमांक" , या “विभाग_नावा” शी संबंधित. 2) कर्मचारी टेबल, विशेषता मूल्य मधून सर्व रेकॉर्ड निवडा "विभाग_क्रमांक"जे मागील पायरीवर मिळालेल्या समान आहे. कर्मचारी कोणत्या विभागात काम करतो हे शोधण्यासाठी, आपल्याला हे करणे आवश्यक आहे उलट ऑपरेशन: 1) व्याख्या करा "विभाग_क्रमांक"कर्मचारी टेबलवरून. 2) प्राप्त मूल्य वापरून, आम्हाला विभाग तक्त्यामध्ये नोंद आढळते.


18. रिलेशनल डेटाबेसमध्ये सामान्यीकरण, डेटाबेस डिझाइनमध्ये सामान्य स्वरूपाची संकल्पना.

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

डेटाबेसला सामान्य स्वरूपात रूपांतरित करण्याच्या प्रक्रियेला म्हणतात सामान्यीकरण . नॉर्मलायझेशनचा उद्देश डेटाबेस स्ट्रक्चरला कमीतकमी रिडंडंसी प्रदान करणाऱ्या फॉर्ममध्ये आणणे आहे, म्हणजेच, सामान्यीकरण हे कामाची उत्पादकता कमी करणे किंवा वाढवणे किंवा डेटाबेसची मात्रा कमी करणे किंवा वाढवणे यासाठी नाही. डेटाबेसमध्ये संग्रहित माहितीची संभाव्य विसंगती कमी करणे हे सामान्यीकरणाचे अंतिम ध्येय आहे.



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

कार्यात्मक अवलंबित्व.

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

19. 1NF: मूलभूत व्याख्या आणि परिवर्तन नियम.

पहिल्या सामान्य स्वरूपावर चर्चा करण्यासाठी, दोन व्याख्या आवश्यक आहेत:

साधा गुणधर्म - एक विशेषता ज्याची मूल्ये अणु (अविभाज्य) आहेत.

जटिल गुणधर्म - अनेक अणू गुणधर्म एकत्र करून प्राप्त केले जाते जे एक किंवा वर परिभाषित केले जाऊ शकतात भिन्न डोमेन(याला वेक्टर किंवा डेटा एग्रीगेट देखील म्हणतात).

पहिल्या सामान्य स्वरूपाची व्याख्या:

एक संबंध 1NF मध्ये आहे जर त्याच्या सर्व गुणधर्मांची मूल्ये अणू असतील. . IN अन्यथाहे सारणी अजिबात नाही आणि अशा गुणधर्मांचे विघटन करणे आवश्यक आहे.

चला एक उदाहरण पाहू:

एंटरप्राइझच्या एचआर विभागाच्या डेटाबेसमध्ये, कर्मचाऱ्यांची माहिती संग्रहित करणे आवश्यक आहे ज्याच्या संबंधात सादर करण्याचा प्रयत्न केला जाऊ शकतो.

कर्मचारी(EMPLOYEE_NUMBER, NAME, जन्म तारीख, WORK_HISTORY, CHILDREN).

या नातेसंबंधाचा काळजीपूर्वक विचार केल्यावर ते खालील गुणधर्म आहेत "कामाचा इतिहास"आणि "मुले"जटिल आहेत, शिवाय, विशेषता "कामाचा इतिहास"आणखी एक जटिल गुणधर्म समाविष्ट आहे "पगार_इतिहास".
ही युनिट्स दिसतात खालील प्रकारे:

 JOB_HISTORY (RECEPTION_DATE, NAME, SALARY_HISTORY),

 SALARY_HISTORY (APPOINTMENT_DATE, PALARY),

 मुले (CHILD_NAME, BIRTH_YEAR).

त्यांचे कनेक्शन अंजीर मध्ये दर्शविले आहे. ३.३.

अंजीर.3.3. आरंभिक वृत्ती.

मूळ नातेसंबंध SERVANT ला पहिल्या सामान्य स्वरुपात आणण्यासाठी, त्याचे चार संबंधांमध्ये विघटन करणे आवश्यक आहे, हे खालील आकृतीत दाखवले आहे:

अंजीर.3.4. संबंधांचा सामान्यीकृत संच.

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

सामान्यीकरण अल्गोरिदमचे वर्णन E.F. Codd द्वारे खालीलप्रमाणे केले आहे:

  • झाडाच्या शीर्षस्थानी असलेल्या संबंधापासून सुरुवात करून (आकृती 3.3.), त्याची प्राथमिक की घेतली जाते आणि प्रत्येक तात्काळ गौण संबंध त्या प्राथमिक कीचे डोमेन किंवा डोमेन समाविष्ट करून विस्तारित केले जाते.
  • अशा प्रकारे विस्तारलेल्या प्रत्येक नातेसंबंधाच्या प्राथमिक कीमध्ये विस्तारापूर्वी संबंध असलेली प्राथमिक की आणि मूळ नातेसंबंधाची जोडलेली प्राथमिक की असते.
  • यानंतर, सर्व नॉन-सिंपल डोमेन्स पॅरेंट रिलेशनमधून हटवले जातात, झाडाचा वरचा नोड काढून टाकला जातो आणि प्रत्येक उर्वरित सबट्रीसाठी समान प्रक्रिया पुन्हा केली जाते.

20. 2NF: मूलभूत व्याख्याआणि परिवर्तन नियम.

बऱ्याचदा नातेसंबंधाच्या प्राथमिक किल्लीमध्ये अनेक गुणधर्म समाविष्ट असतात (ज्या बाबतीत त्याला म्हणतात संमिश्र) - उदाहरणार्थ, अंजीर मध्ये दर्शविलेले मुलांचे नाते पहा. 3.4 प्रश्न 19. त्याच वेळी, संकल्पना सादर केली आहे पूर्ण कार्यात्मक अवलंबित्व.

व्याख्या:

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

उदाहरण:

एक संबंध असू द्या पुरवठा (N_SUPPLIER, PRODUCT, PRICE).
एक पुरवठादार वेगवेगळ्या उत्पादनांचा पुरवठा करू शकतो आणि समान उत्पादन वेगवेगळ्या पुरवठादारांद्वारे पुरवले जाऊ शकते. मग रिलेशन की "N_पुरवठादार + उत्पादन". सर्व पुरवठादारांना समान किमतीत वस्तूंचा पुरवठा करू द्या. मग आमच्याकडे खालील कार्यात्मक अवलंबित्व आहेत:

  • N_पुरवठादार, उत्पादन -> किंमत
  • उत्पादन -> किंमत

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

  • वितरण (N_SUPPLIER, PRODUCT)
  • PRODUCT_PRICE (उत्पादन, PRICE)

त्यामुळे तुम्ही देऊ शकता

दुसऱ्या सामान्य स्वरूपाची व्याख्या: एक संबंध 2NF मध्ये आहे जर ते 1NF मध्ये असेल आणि प्रत्येक नॉन-की विशेषता की वर पूर्णपणे कार्यशीलपणे अवलंबून असेल.

21. 3NF: मूलभूत व्याख्याआणि परिवर्तन नियम.

तिसऱ्या सामान्य स्वरूपावर चर्चा करण्यापूर्वी, संकल्पना सादर करणे आवश्यक आहे: संक्रमणात्मक कार्यात्मक अवलंबित्व.

व्याख्या:

X, Y, Z हे काही नात्याचे तीन गुणधर्म असू द्या. या प्रकरणात, X --> Y आणि Y --> Z, परंतु कोणतेही उलट पत्रव्यवहार नाही, म्हणजे. Z-/-> Y आणि Y/-> X. नंतर Z हा X वर संक्रमणात्मकपणे अवलंबून असतो.
एक संबंध असू द्या STORAGE ( FIRM, WAREHOUSE, VOLUME), ज्यामध्ये गोदामांमधून माल प्राप्त करणाऱ्या कंपन्यांची आणि या गोदामांची मात्रा याबद्दल माहिती असते. मुख्य गुणधर्म - "पक्की". जर प्रत्येक कंपनीला फक्त एकाच वेअरहाऊसमधून माल मिळू शकतो, तर या संदर्भातखालील कार्यात्मक अवलंबित्व आहेत:

  • टणक -> साठा
  • साठा -> खंड

या प्रकरणात, विसंगती उद्भवतात:

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

या विसंगती दूर करण्यासाठी, मूळ संबंधाचे दोन भागांमध्ये विघटन करणे आवश्यक आहे:

  • स्टोरेज ( FIRM, स्टॉक)
  • STORAGE_VOLUME ( स्टॉक, व्हॉल्यूम)

तिसऱ्या सामान्य स्वरूपाची व्याख्या:

एक संबंध 3NF मध्ये आहे जर ते 2NF मध्ये असेल आणि प्रत्येक नॉन-की विशेषता प्राथमिक की वर संक्रमणात्मकपणे अवलंबून नसते.

तीन मुख्य घटक वर्ग परिभाषित केले आहेत:

1) रॉड- एक स्वतंत्र अस्तित्व. नावे आयतामध्ये ठेवली आहेत.

2) सहयोगी- दोन किंवा अधिक घटकांमधील अनेक-ते-अनेक संबंध. असोसिएशनना पूर्ण विकसित संस्था मानल्या जातात. ते इतर संघटनांमध्ये सहभागी होऊ शकतात आणि त्यांच्याकडे गुणधर्मांचा एक संच असू शकतो.

a पदनाम (एखाद्या घटकाला सूचित करणे) हे दोन घटकांमधील अनेक-ते-एक किंवा एक-ते-एक संबंध आहेत. हे वैशिष्ट्यापेक्षा वेगळे आहे कारण ते नियुक्त केलेल्या घटकावर अवलंबून नाही.

3) वैशिष्ट्ये(वैशिष्ट्यपूर्ण) - दोन घटकांमधील अनेक-ते-एक किंवा एक-ते-एक संबंध. हे सहवासाचे एक विशेष प्रकरण आहे. एखाद्या वैशिष्ट्याचा एकमेव उद्देश म्हणजे काही इतर घटकांचे वर्णन करणे किंवा स्पष्ट करणे. वैशिष्ट्याचे अस्तित्व पूर्णपणे वैशिष्ट्यीकृत घटकावर अवलंबून असते.

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

मिनिमॅलिटीचा अर्थ असा आहे की शब्दशः कोणत्याही गुणधर्माच्या संचावरून उर्वरित व्यक्तींद्वारे अस्तित्व ओळखण्याची परवानगी देत ​​नाही.

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

जर घटक C संस्था A आणि B ला जोडत असेल, तर त्यामध्ये A आणि B च्या प्राथमिक कीशी संबंधित परदेशी की समाविष्ट केल्या पाहिजेत.

प्रत्येक परदेशी कीसाठी, तीन प्रश्नांकडे लक्ष देणे आवश्यक आहे:

1) अतिरिक्त परदेशी की शून्य मूल्ये स्वीकारू शकते का, थोडक्यात, एखाद्या घटकाचे काही उदाहरण असू शकते ज्यासाठी परदेशी कीने निर्दिष्ट केलेली लक्ष्य संस्था ज्ञात आहे.

2) जेव्हा तुम्ही परदेशी की द्वारे संदर्भित लक्ष्य घटक हटविण्याचा प्रयत्न करता तेव्हा काय व्हायला हवे.

तीन संभाव्य उपाय आहेत हा मुद्दा:

· कॅस्केडिंग

· निर्बंध

विशिष्ट मूल्यावर सेट करणे

3) काही विदेशी की द्वारे संदर्भित असलेल्या लक्ष्य घटकाची प्राथमिक की अद्यतनित करण्याचा प्रयत्न करताना काय झाले पाहिजे.

अशाप्रकारे, डेटाबेस प्रकल्पातील प्रत्येक परदेशी कीसाठी, केवळ फील्ड किंवा ती परदेशी की बनविणाऱ्या फील्डचे संयोजनच नव्हे तर वरील प्रश्नांची उत्तरे देखील विशेष करणे आवश्यक आहे.

डेटा प्रकार आणि डोमेन.

रिलेशनल डेटा मॉडेल एक साधी डेटा संरचना आणि वापरकर्ता-अनुकूल सादरीकरणाद्वारे वैशिष्ट्यीकृत आहे.

रिलेशनल मॉडेल द्विमितीय सारण्यांच्या स्वरूपात डेटा आयोजित करण्यासाठी डिझाइन केलेले आहे. रिलेशनल टेबल आहे द्विमितीय ॲरेआणि खालील गुणधर्म आहेत:

1) प्रत्येक सारणी घटक एक डेटा घटक आहे

2) सारणीतील सर्व स्तंभ एकसंध आहेत - स्तंभातील सर्व घटकांचा डेटा प्रकार आणि लांबी समान आहे

3) प्रत्येक स्तंभात आहे अद्वितीय नाव

4) टेबलमध्ये एकसारख्या पंक्ती नाहीत

5) स्तंभांच्या पंक्तीचा क्रम अनियंत्रित असू शकतो

डेटा प्रकार

प्रोग्रामिंगमध्ये वापरल्या जाणाऱ्या कोणत्याही डेटाचा स्वतःचा डेटा प्रकार असतो. रिलेशनल मॉडेलसाठी वापरलेले डेटा प्रकार सोपे असणे आवश्यक आहे.

सामान्यतः, डेटा प्रकार तीन गटांमध्ये विभागले जातात:

1) साधे डेटा प्रकार

2) संरचित डेटा प्रकार

3) संदर्भ डेटा प्रकार

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

स्ट्रक्चरिंग डेटा प्रकारांचा उद्देश जटिल डेटा स्ट्रक्चर्स परिभाषित करणे आहे जे घटक घटकांपासून तयार केले जातात, ज्याची अंतर्गत रचना (ॲरे, रेकॉर्ड, संरचना) असू शकते.

संदर्भ डेटा प्रकार इतर डेटाकडे निर्देश करण्याची क्षमता प्रदान करण्यासाठी डिझाइन केले आहे. हा डेटा प्रकार प्रक्रियात्मक भाषांसाठी आहे ज्यात डेटा संचयित करण्यासाठी मेमरी क्षेत्रे आहेत.

रिलेशनल डेटा मॉडेलसाठी, वापरलेल्या डेटाचा प्रकार तितका महत्त्वाचा नाही. डेटा प्रकार सोपा असणे आवश्यक आहे याचा अर्थ असा समजला पाहिजे की तो रिलेशनल ऑपरेशन्समध्ये विचारात घेतला जाऊ नये अंतर्गत रचनाडेटा

डोमेन porno.ru

रिलेशनल डेटा मॉडेलमध्ये, डेटा प्रकारची संकल्पना डोमेनच्या संकल्पनेशी जवळून संबंधित आहे, जी डेटा प्रकाराचे स्पष्टीकरण मानले जाऊ शकते.

डोमेन -अर्थपूर्ण संकल्पना. काही डेटा प्रकाराच्या मूल्यांचा उपसंच म्हणून विचार केला जाऊ शकतो.

डोमेन गुणधर्म:

1) डोमेनचे डेटाबेसमध्ये एक अद्वितीय नाव आहे

2) डोमेन काहींवर परिभाषित केले आहे साधा प्रकारडेटा किंवा दुसर्या डोमेनवर

3) डोमेनमध्ये काही असू शकतात तार्किक स्थिती, जे तुम्हाला दिलेल्या डोमेनसाठी वैध असलेल्या डेटाच्या उपसंचाचे वर्णन करण्यास अनुमती देते.

4) डोमेनमध्ये काही अर्थपूर्ण अर्थ आहे

उदाहरणार्थ, काही डोमेन डी, म्हणजे "कर्मचाऱ्याचे वय", नैसर्गिक संख्यांच्या संचाचे काही उपसंच म्हणून वर्णन केले जाऊ शकते.

D=(nϵN: n ≥ 18 आणि n ≤ 60)

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

5. संबंध आणि त्यांचे गुणधर्म, गुणधर्म आणि ट्यूपल्स.
रिलेशनल डेटा मॉडेलमधील रिलेशनशिपची संकल्पना ही मूलभूत संकल्पना आहे. नातेसंबंध गुणधर्म:<Имя_атрибута: Имя_домена>. नातेसंबंधात विशेषता नावे अद्वितीय असणे आवश्यक आहे. अनेकदा विशेषता नावे संबंधित डोमेन नावांसारखीच असतात. D 1 , D 2 , ... D n या डोमेनच्या सेटवर परिभाषित केलेल्या काही संबंध R मध्ये दोन भाग असतात: एक शीर्षलेख आणि एक मुख्य भाग. संबंध शीर्षलेख समाविष्टीत आहे निश्चित प्रमाणनातेसंबंधाचे गुणधर्म.

(,,…)

नात्याच्या मुख्य भागामध्ये अनेक नातेसंबंधांचे नकाशे असतात. प्रत्येक संबंध नकाशा फॉर्मच्या जोड्यांचा संच दर्शवतो

<Имя_атрибута: Значение_атрибута>

(,,… ).

या प्रकरणात, Val i हे मूल्य A i D i विशेषताशी संबंधित आहे. मूल्य लिहिले आहे:

आर ( ,,…).

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

रिलेशनल डेटाबेस हा संबंधांचा संच असतो. रिलेशनल डेटाबेस स्कीमा डेटाबेसमध्ये समाविष्ट असलेल्या संबंध शीर्षलेखांचा संच आहे.

जरी कोणतेही नाते एक टेबल म्हणून प्रस्तुत केले जाऊ शकते, नातेसंबंध हे सारणी नाही. या जवळच्या पण अनुरूप संकल्पना नाहीत. रिलेशनल डेटा मॉडेल चालवणाऱ्या अटींमध्ये संबंधित "टेब्युलर" समानार्थी शब्द आहेत.

नातेसंबंधांचे गुणधर्म

संबंधांच्या गुणधर्मांमध्ये प्रामुख्याने संबंधांमधील फरक असतात

1) असमान कार्डांबाबत.

नातेसंबंधाचा मुख्य भाग हा कार्टेचा संच असतो आणि कोणत्याही संचाप्रमाणे त्यात वेगळे न करता येणारे घटक असू शकत नाहीत. टेबल्स, नातेसंबंधांच्या विपरीत, एकसारख्या पंक्ती असू शकतात.

२) नात्याचा मुख्य भाग हा संच असल्याने नकाशे (वरपासून खालपर्यंत) क्रमाने लावलेले नाहीत.

समान वृत्तीचे चित्रण करता येत नाही भिन्न टेबल, ज्यामध्ये ओळी वेगळ्या क्रमाने आहेत

3) गुणधर्म डावीकडून उजवीकडे क्रमाने दिलेले नाहीत. नातेसंबंधात प्रत्येक गुणधर्माचे एक वेगळे नाव असल्याने, गुणधर्मांचा क्रम काही फरक पडत नाही. समान संबंध वेगवेगळ्या सारण्यांद्वारे दर्शविले जाऊ शकतात ज्यामध्ये स्तंभ वेगवेगळ्या क्रमाने आहेत.

4) सर्व गुणधर्म मूल्ये अणू आहेत.

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

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

रिलेशनल डेटा मॉडेल दोन कॅप्चर करते मूलभूत आवश्यकताअखंडता जी कोणत्याही रिलेशनल डीबीएमएसमध्ये राखली जाणे आवश्यक आहे.

1) घटकांच्या अखंडतेची आवश्यकता, म्हणजे कोणत्याही नातेसंबंधाचा कोणताही नकाशा या नातेसंबंधाच्या इतर कोणत्याही नकाशापासून वेगळे करता येण्याजोगा असणे आवश्यक आहे, म्हणजेच कोणत्याही नातेसंबंधात प्राथमिक की असणे आवश्यक आहे.

2) संदर्भित अखंडता आवश्यकता (विदेशी की अखंडता आवश्यकता) ही संदर्भित संबंधातील प्रत्येक विदेशी की मूल्यासाठी आहे. समान प्राथमिक की मूल्यासह नकाशा असणे आवश्यक आहे किंवा परदेशी की मूल्य अपरिभाषित असणे आवश्यक आहे.



आम्ही वाचण्याची शिफारस करतो

वर