प्रारंभिक
1971 में सामान्य रूप की परिभाषा ("डेटा बेस रिलेशनल मॉडल के आगे के सामान्यीकरण की प्रस्तुति से" को पहले सामान्य रूप के रूप में जाना जाता है ) और रिलेशनल प्रतिमान की परिभाषा को 1970 में वैज्ञानिक पत्र में प्रकाशित किया गया था जो एक मजबूत प्रदान करता है डेटाबेस प्रशासन के अभ्यास के लिए आधार, यानी, "बड़े साझा डेटा बैंकों के लिए डेटा का एक संबंधपरक मॉडल" (आरएम विचित्रता के लिए) डॉ। ईएफ कोडड द्वारा बनाया गया , जो एक ट्यूरिंग पुरस्कार प्राप्तकर्ता है और संबंधपरक ढांचे के संबंध में प्राधिकरण है।
हाँ, डॉ। कॉड के पाठ के बारे में बहुत सारी व्याख्याएँ, व्याख्याएँ, खुलासे, विचलन और राय हैं, लेकिन मैं व्यक्तिगत रूप से मूल स्रोत से चिपके रहना पसंद करता हूँ और मेरा सुझाव है कि आप इसका विश्लेषण स्वयं करें ताकि आप अपना निष्कर्ष निकाल सकें।
मैं निश्चित रूप से आरएम को उसकी संपूर्णता में नहीं समझता हूं, लेकिन जो मुझे समझ में आता है वह मुझे इसकी उत्कृष्टता, दूरदर्शिता, इरादे और कार्यक्षेत्र की सराहना करने की अनुमति देता है, और हालांकि दशकों बाद कोई भी यह नोट कर सकता है कि इसमें कुछ मामूली बाधाएं हैं, वे कम नहीं करते हैं। किसी भी तरह से, अपनी प्रतिभा और शान। अपने क्षेत्र में, आरएम ने समय की परीक्षा को एक अनोखे तरीके से खड़ा किया है, और यह बेजोड़ है।
पूर्वोक्त आवेगों पर बल देने का कार्य एक धर्मार्थ शब्द के लिए अनुचित होगा - अनुचित , क्योंकि इसे काफी दूर से देखने पर, इस मद सामग्री को कुछ शोधन और विस्तार की आवश्यकता होती है, हाँ, लेकिन कार्य का मुख्य शरीर से ठोस था। बहुत ही गर्भाधान (और, वास्तव में, डॉ। कोडड ने अधिकांश - सभी ऐसे परिशोधन और स्वयं विस्तार नहीं किए हैं)।
मैं ज्ञान के इस असाधारण स्रोत के बारे में मेरी समझ को मजबूत करने के लिए लगातार आरएम का पुनर्मिलन जारी रखता हूं (और मेरा यह सम्मान हर रेयर पर बढ़ता रहता है); इसका उद्देश्य दिग्गजों के कंधों पर खड़ा होना है।
संबंधों और तालिकाओं
यह ध्यान रखना महत्वपूर्ण है कि जैसा कि संबंध अमूर्त संसाधन हैं, डॉ। कोडड ने सारणीबद्ध रूप में उनका प्रतिनिधित्व करने की उपयोगिता की कल्पना की (उन्होंने शुरुआत में "सरणी प्रतिनिधित्व" शब्द का उपयोग किया था, लेकिन बाद में "तालिका" या "आर-टेबल") का उपयोग किया, ताकि एक रिलेशनल डेटाबेस (RDB) के उपयोगकर्ता, डिज़ाइनर और प्रशासक उनसे अधिक परिचित या ठोस तरीके से संपर्क कर सकते हैं । इसलिए, आरडीबी कार्यान्वयन के संदर्भ में, संबंध के लिए एक शॉर्टहैंड के रूप में तालिका का उपयोग करना मान्य है, जब तक उक्त तालिका वास्तविक संबंध के लिए है। यह विशेषता स्पष्ट रूप से स्पष्ट है - काफी महत्वपूर्ण है क्योंकि मूल्यांकन करने से पहले कि क्या तालिका किसी संबंध का प्रतिनिधित्व करती है या नहीं, जो पहले सामान्य रूप (1NF) का अनुपालन करती है, इसका प्रतिनिधित्व करना है, ठीक है, एक संबंध।
आरएम में स्वाभाविक रूप से ऐसे गुण होते हैं जो एक तालिका को यह निर्धारित करना होगा कि क्या यह वास्तव में किसी संबंध को चित्रित करता है, लेकिन मैं उनके बारे में एक अनौपचारिक और सरल व्याख्या की पेशकश करूंगा (एक और, हाँ!)।
- इसका एक नाम होना चाहिए (डेटाबेस संरचना में प्रत्येक विशेष संबंध बाकी से अलग होना चाहिए)।
- इसकी प्रत्येक पंक्तियों में प्रासंगिक संबंध के ठीक एक टपल को चित्रित किया जाना चाहिए ।
- आदेश इसकी पंक्तियों के सभी पर महत्वपूर्ण नहीं है।
- इसके प्रत्येक कॉलम में एक नाम होना चाहिए जो संबंधित संबंध के ठीक एक डोमेन के अर्थ के लिए खड़ा है , और कहा कि नाम तालिका के बाकी स्तंभों के नामों से अलग होना चाहिए (एक कॉलम विशिष्ट रूप से विभेदित होना चाहिए और ले जाना चाहिए एक विशिष्ट अर्थ और, हाँ, एक डेटाबेस मॉडलर और व्यवसाय विशेषज्ञों द्वारा निभाई जाने वाली भूमिका सटीकता के साथ महत्व के प्रत्येक डोमेन को परिभाषित करना सर्वोपरि है)
- आदेश अपने कॉलम का कोई महत्व है।
- इसकी सभी पंक्तियों में समान संख्या में कॉलम होने चाहिए।
- इसमें कम से कम एक स्तंभ या स्तंभों का एक संयोजन होना चाहिए , जो विशिष्ट रूप से पंक्तियों के माध्यम से दर्शाए गए प्रत्येक टुपल्स की पहचान करता है; इस तरह, सभी पंक्तियाँ अलग-अलग होनी चाहिए (हाँ, यह कम से कम एक कुंजी घोषित होने के महत्व पर बल देती है, और जब दो या दो से अधिक कुंजी हो तो एक को व्यावहारिक कारणों के आधार पर प्राथमिक के रूप में परिभाषित किया जाना चाहिए, जबकि बाकी हो सकता है के रूप में समझा जाता है; लेकिन हाँ, निर्णय लेने से पहले, प्रत्येक कुंजी एक "उम्मीदवार" के रूप में परिभाषा के लिए एक उम्मीदवार था)।
एक तालिका होने के नाते जो वास्तव में एक संबंध का प्रतिनिधित्व करता है, महत्वपूर्ण है, क्योंकि जब यह एक संबंधपरक प्रकार के हेरफेर संचालन से गुजरता है, तो परिणाम, फिर से, एक तालिका जो एक संबंध का प्रतिनिधित्व करती है। इस तरीके से, उक्त तालिका का व्यवहार अनुमानित है ।
परमाणु डोमेन (कॉलम)
आरएम के पहले खंडों में, डॉ। कोडड ने कुछ अवधारणाओं को पेश करने के लिए संबंधों के कई नमूने प्रस्तुत किए हैं; इसलिए, परमाणु डोमेन के अर्थ को समझने के लिए , हम आरएम से निम्नलिखित अंश के साथ शुरू करते हैं जो कुछ प्रासंगिक बिंदुओं का विवरण देता है:
अब तक, हमने उन संबंधों के उदाहरणों पर चर्चा की है जो सरल डोमेन पर परिभाषित किए गए हैं- ऐसे डोमेन जिनके तत्व परमाणु (नॉनडेकोमोज़ल) मान हैं। संबंधपरक ढांचे के भीतर गैर-परमाणु मूल्यों पर चर्चा की जा सकती है। इस प्रकार, कुछ डोमेन तत्वों के रूप में संबंध हो सकते हैं। बदले में, ये संबंध निरर्थक डोमेन और इसी तरह परिभाषित हो सकते हैं।
इस प्रकार, कोई यह कह सकता है कि उपरोक्त दोनों प्रकार के संबंध दो प्रकारों में से एक में फिट होते हैं, या तो कहें कि A या तरह B :
Kind A केवल समूह (तालिकाएँ), जो उन डोमेन (स्तंभों) के साथ संरचित होते हैं, जिनमें उनके प्रत्येक टुपल्स (पंक्तियों) में विशेष रूप से सरल मान होते हैं , अर्थात, ऐसे डोमेन (कॉलम) में संबंध (तालिकाएँ) मान के रूप में नहीं होते हैं, जिनमें इस संदर्भ का अर्थ है कि मूल्य परमाणु हैं क्योंकि उन्हें नए संबंधों (तालिकाओं) में क्रमिक रूप से विघटित नहीं किया जा सकता है । इसलिए, इस वर्ग के संबंध सामान्यीकृत हैं , अर्थात, वे 1NF का अनुपालन करते हैं, उनका फॉर्म वांछनीय है।
Kind B को विशेष रूप से उन संबंधों (तालिकाओं) द्वारा एकीकृत किया जाता है जिनमें एक या एक से अधिक डोमेन (कॉलम) होते हैं जो संबंध को प्रत्येक संबंधित टपल (पंक्ति) में मान के रूप में रखते हैं, और यह दर्शाता है कि कहा गया है कि मूल्य गैर - परमाणु हैं क्योंकि वे बाद में नए संबंधों में टूट सकते हैं (टेबल्स), यानी, वे डीकोमोज़ेबल हैं । इस प्रकार, इस प्रकार के संबंध असामान्य हैं, अर्थात, वे 1NF का उल्लंघन करते हैं, वे अवांछनीय रूप में हैं।
मानकीकरण
डॉ। कोडड निम्नलिखित पैराग्राफ के साथ आरएम में सामान्यीकरण के बारे में अनुभाग का परिचय देता है:
एक संबंध जिसका डोमेन सभी सरल हैं, ऊपर चर्चा की गई तरह के दो-आयामी कॉलम-सजातीय सरणी द्वारा भंडारण में प्रतिनिधित्व किया जा सकता है। कुछ अधिक जटिल डेटा संरचना एक या एक से अधिक निरर्थक डोमेन के साथ संबंध के लिए आवश्यक है। इस कारण से (और अन्य को नीचे उद्धृत किया गया है) निरर्थक डोमेन को समाप्त करने की संभावना जांच के लायक है! वास्तव में, एक बहुत ही सरल उन्मूलन प्रक्रिया है, जिसे हम सामान्यीकरण कहेंगे।
फिर वह दिखाने के लिए आगे बढ़ता है:
संबंधों का एक समूह जहां एक अप्राकृतिक होता है (इसमें ऐसे डोमेन होते हैं जिनमें संबंध होते हैं मान के रूप में, अर्थात, वे गैर-भौतिक हैं (यानी, वे गैर-सरल हैं)
संबंधों का एक समूह जो एक सामान्यीकृत है (यानी, एक जो विघटित हो गया था; अर्थात, जो संबंध मूल्यवान डोमेन को सरल लोगों में तोड़ दिया गया था जो दर्शाता है कि वे परमाणु हैं)
और फिर वह अप्राकृतिक से सामान्यीकृत संबंध प्राप्त करने की प्रक्रिया का वर्णन करता है।
इस संबंध में, एक सामान्य अभ्यास और चित्र वर्णन का वर्णन करने के लिए उन्होंने जो संबंध स्थापित किए हैं, वे स्वयं काफी स्पष्ट हैं, और मैं फिर से सलाह देता हूं कि आप स्वयं उनका विश्लेषण करें (और मुझे आशा है कि यह कुछ पाठकों को पाठ से जुड़ने के लिए प्रोत्साहित करता है)।
सच में, वह इंगित करता है:
आगे एक सामान्य प्रकार के संचालन संभव हैं। इस पत्र में इन पर चर्चा नहीं की गई है।
और कहा कि संचालन, अर्थात, दूसरा और तीसरा सामान्य रूप (2NF और 3NF) वास्तव में "डेटा बेस रिलेशनल मॉडल के आगे सामान्यीकरण" में विस्तृत है, और जैसा कि ऊपर वर्णित है, इस पेपर की प्रस्तुति (और बाद में मुद्रण और प्रकाशन) के बाद। , मूल सामान्य रूप पहले सामान्य रूप से जाना जाने लगा।
जैसा कि एक प्रैक्टिशनर देख सकता है, आरडीबी कार्यान्वयन में अप्राकृतिक संबंध (तालिकाओं) का परिचय (लगभग हमेशा अनावश्यक) दृढ़ संकल्प है ।
एक संबंध जो 1NF को संतुष्ट करता है, बाधाओं और डेटा हेरफेर के संचालन की परिभाषा को आसान बनाता है, जो डेटा सबलंगेज के माध्यम से लागू किया जा सकता है जो कि असामान्य संबंधों (तालिकाओं) के लिए आवश्यक से कम जटिल है, जैसा कि डॉ। कोडड निम्नलिखित पंक्तियों में बताते हैं:
डेटा के एक संबंधपरक मॉडल को अपनाने, जैसा कि ऊपर वर्णित है, एक लागू पेडीकैट पर आधारित एक सार्वभौमिक डेटा सबलंगेज के विकास की अनुमति देता है। यदि संबंधों का संग्रह सामान्य रूप में है, तो पहले-क्रम की गणना पथरी ग्रस्त होती है। ऐसी भाषा अन्य सभी प्रस्तावित डेटा भाषाओं के लिए भाषाई शक्ति प्रदान करती है, और कई प्रकार की होस्ट भाषाओं (प्रोग्रामिंग, कमांड- या समस्या उन्मुख) में एम्बेड करने के लिए एक मजबूत उम्मीदवार होगी (उपयुक्त वाक्यविन्यास संशोधन के साथ)। [...]
[...]
डेटा सबलंगेज की सार्वभौमिकता इसकी वर्णनात्मक क्षमता (इसकी कंप्यूटिंग क्षमता नहीं) में निहित है।
हतप्रभ
देखने की मेरी बात से, घबराहट उत्पन्न हो गई है, की वजह से व्याख्याओं, स्पष्टीकरण, आदि, 1NF और के बारे में (क) ऊपर उल्लिखित अतिरिक्त आरएम ही है, और की वजह से (ख) के लिए आगे प्रयास को फिर से परिभाषित 1NF कि राज्य कि संबंध हैं उन डोमेन के साथ, जो मान रखते हैं, बदले में, संबंध 1NF के साथ अनुपालन करते हैं जब तक कि वे प्रत्येक संगत टपल के लिए एक एकल मान हैं।
मेरे अपने अन्य बिंदुओं पर ले लो
पंक्तियों के बीच कोई संबंध नहीं होना चाहिए, इसके अलावा वे एक ही हेडर के अनुरूप हैं।
मुझे यकीन है कि अगर मैं सही ढंग से कि बयान के इरादे समझ में नहीं कर रहा हूँ, लेकिन, के अलावा एक ही हेडर के अनुरूप से, वहाँ एक होना चाहिए कनेक्शन (tuples) के बीच एक रिश्ता (टेबल) उनमें से प्रत्येक के रूप में की पंक्तियों एक के बारे में एक अभिकथन होना चाहिए विशिष्ट इकाई प्रकार की विशेष घटना (ब्याज के व्यावसायिक संदर्भ के रूप में परिभाषित) कि संबंध (तालिका) का प्रतिनिधित्व करना है।
स्तंभों के बीच भी कोई संबंध नहीं होना चाहिए, लेकिन मेरा मानना है कि यह उच्च सामान्य रूपों का विषय है।
मुझे नहीं पता कि मैं उस कथन के अर्थ की सही व्याख्या कर रहा हूं या नहीं, लेकिन वास्तव में, और पिछले पहलू पर मेरी प्रतिक्रिया के अनुसार, एक संबंध (तालिका) के डोमेन (कॉलम) के बीच भी संबंध होना चाहिए , जो ठीक यही कारण है कि यह एक संबंध है ( संबंधपरक मॉडल और एक ठोस आरडीबी कार्यान्वयन की आवश्यक संरचना )।
अनुकरणीय संबंध के संबंध में (तालिका)
Salary (PersonNumber, EffectiveDate, Amount)
टपल (पंक्ति)
अर्थ बताएगा
The Salary payed to the Person identified by PersonNumber x, on EffectiveDate y corresponds to the Amount of z
इसलिए, Salary
संबंध (तालिका) के प्रत्येक टुपल ( तालिका) को ऊपर दिखाए गए दावे की संरचना में फिट होना चाहिए, और अंतर प्रासंगिक डोमेन (स्तंभ) मानों के प्रतिस्थापन होगा, लेकिन (ए) के बीच एक संबंध होना चाहिए सभी Salary
डोमेन (कॉलम) और भी (बी) के बीच प्रत्येक ट्यूपल (पंक्ति) के संबंध में उनके सभी संबंधित मूल्य; ऐसा संबंध अपरिहार्य है।
उच्च सामान्य रूप (2NF और 3NF) एक संबंध (तालिका) के डोमेन (कॉलम) के बीच कार्यात्मक निर्भरता से छुटकारा पाने के लिए उपयोगी होते हैं, वे डोमेन (कॉलम) के बीच अवांछनीय कनेक्शन से बचने में सहायता करते हैं , जैसा कि कहा जाता है कि अवांछनीय कनेक्शन अपडेट विसंगतियों की शुरूआत की अनुमति देते हैं । 2NF और 3NF दोनों एक निश्चित RDB कार्यान्वयन में संबंधों (तालिकाओं) की संरचना की सुदृढ़ता का परीक्षण करने में सहायक होते हैं।