दिलचस्प पोस्ट
सी #: एक फाइल की शुरुआत करने के लिए तैयार जब कोई उपयोगकर्ता लिंक पर क्लिक करता है तो मैं PHP कोड कैसे चलाऊँ? ग्लोबल वैरिएबल में सी # .net मेटाडेटा फ़ाइल '.dll' नहीं मिल सका NumPy का उपयोग कर औसत चलने की गणना कैसे करें? सी # दो सामान्य मूल्यों की तुलना करें घुमाए गए आयताकार से बाउंडिंग बॉक्स निर्देशांक की गणना करें शिफ्ट को हटाने के लिए व्याकरण को सुधारना अगर-तब-दूसरे में संघर्ष कम हो जावा डिफ़ॉल्ट क्रिप्टो / एईएस व्यवहार जावा में System.out.println का क्या अर्थ है? सीएसएस में "कैस्केडिंग" का क्या अर्थ है? WPF प्रोग्रामिंग पद्धति रैखिक प्रतिगमन और समूह आर द्वारा आर मैपकिट आईओएस के साथ ग्रेडियंट पॉलीलाइन सूचियों की सूची का योग; रिटर्न की सूचि सूची

डीबीएमएस में परमाणुता क्या है

मैं डीबीएमएस के 1 एनएफ फॉर्म में नीचे की तरह कुछ पढ़ता हूं।

निम्नानुसार एक वाक्य था:

"प्रत्येक स्तंभ परमाणु होना चाहिए।"

क्या कोई मुझे एक उदाहरण के साथ अच्छी तरह से मुझे समझा सकता है?

वेब के समाधान से एकत्रित समाधान "डीबीएमएस में परमाणुता क्या है"

"प्रत्येक स्तंभ परमाणु होना चाहिए।"

क्रिस डेटी कहते हैं, " कृपया ध्यान से ध्यान रखें कि ये केवल वैध चीजें नहीं हैं जैसे कि पूर्णांक 3 जो वैध मान हैं। इसके विपरीत, मान मनमाने ढंग से जटिल हो सकते हैं; उदाहरण के लिए, मान एक ज्यामितीय बिंदु या बहुभुज हो सकता है, या एक एक्स रे, या एक XML दस्तावेज़, या एक फिंगरप्रिंट, या एक सरणी, या एक स्टैक, या एक सूची, या एक संबंध (और इसी तरह)। "[1]

वह यह भी कहते हैं, "एक रिलावर 1 एनएफ में है अगर और केवल अगर, उस relvar के हर कानूनी मूल्य में, हर ट्यूपल में प्रत्येक विशेषता के लिए एक मूल्य होता है।" [2]

वह आम तौर पर शब्द परमाणु के उपयोग को हतोत्साहित करता है, क्योंकि इसमें भ्रमशील अर्थ हैं। एकल मूल्य शायद उपयोग करने के लिए एक बेहतर शब्द है।

उदाहरण के लिए, '2014-01-01' जैसी कोई तिथि एक ही मूल्य है। यह अविभाज्य नहीं है; इसके विपरीत, यह काफी स्पष्ट रूप से विभाज्य है। लेकिन डीबीएम एक दो चीजों में से एक है जिसमें सिंगल वैल्यूज़ हैं जिनके पास भाग हैं। डीबीएम या तो एक पूरे के रूप में उन मानों को रिटर्न करता है, या डीबीएम भागों को हेरफेर करने के लिए कार्य प्रदान करता है। (क्लाइंट को भागों में हेरफेर करने के लिए कोड लिखना नहीं है।) [3]

तिथियों के मामले में, एसक्यूएल कर सकते हैं

  • वापसी की तारीखें पूरे ( SELECT CURRENT_DATE ) के रूप में,
  • एक तिथि के एक या अधिक भागों वापस लौटाएं ( EXTRACT(YEAR FROM CURRENT_DATE) ),
  • अंतराल जोड़ें और घटाना ( CURRENT_DATE + INTERVAL '1' DAY ),
  • दूसरे से एक तारीख घटाना ( CURRENT_DATE - DATE '2014-01-01' ),

और इसी तरह। इस (संकीर्ण) सम्मान में, एसक्यूएल काफी संबंधपरक है।


  1. डाटाबेस सिस्टम का परिचय , 8 वां, पी 113. मूल में जोर।
  2. आईबीआईडी , पी 358
  3. "उपयोगकर्ता-परिभाषित" प्रकार के मामले में, "उपयोगकर्ता" को डाटाबेस प्रोग्रामर माना जाता है, डाटाबेस के ग्राहक नहीं।

पुनः "परमाणु"

कॉड के मूल 1 9 6 9 और 1 9 70 के कागजात में उन्होंने समझाया कि "परमाणु" का संबंध संबंध-मूल्य (यानी तालिका मूल्यवान) नहीं है:

अब तक, हमने उन संबंधों के उदाहरणों पर चर्चा की है जो साधारण डोमेन पर परिभाषित हैं – डोमेन जिनके तत्व परमाणु (nondecomposable) मान हैं संबंधपरक ढांचे के भीतर गैर-नैतिक मूल्यों पर चर्चा की जा सकती है इस प्रकार, कुछ डोमेन के तत्वों के रूप में संबंध हो सकते हैं

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

कोडड की 1 99 0 की किताब द रिलेशनल मॉडल फॉर डाटाबेस मैनेजमेंट: संस्करण 2 :

डेटाबेस के परिप्रेक्ष्य से, डेटा दो प्रकारों में वर्गीकृत किया जा सकता है: परमाणु और परिसर डीबीएमएस (कुछ विशेष कार्यों को छोड़कर) परमाणु डेटा छोटे टुकड़ों में विघटित नहीं किया जा सकता है। परमाणु डेटा के संरचित संयोजनों से मिलकर मिश्रित डेटा, डीबीएमएस द्वारा विघटित किया जा सकता है।

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

"रिलेशनल मॉडल में केवल एक प्रकार का यौगिक डेटा होता है: संबंध।"

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

(न तो "दोहराए जाने वाला समूह" "परमाणु" के रूप में उपयोगी नहीं है, इसे किसी ऐसी चीज के रूप में परिभाषित नहीं करना जो एक संबंधपरक धारणा भी नहीं है। और निश्चित रूप से 1 9 70 में कॉड कहते हैं, "वर्तमान डाटाबेस शब्दावली में शब्दों की विशेषता और दोहराए जाने वाले समूह साधारण रूप से सरल होते हैं डोमेन और अनुपम डोमेन, क्रमशः "। " मोटे तौर पर समान " ।)

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

उदाहरण: मौजूदा सामान्य विकिपीडिया आलेख पर वर्तमान विकिपीडिया लेख परमाणुत्व वास्तव में ऊपर के परिचयात्मक भागों से उद्धरण। और फिर सटीक अर्थ की उपेक्षा करता है। (तब यह कहता है कि जब गैर-कूटनी कछुओं को रोकना चाहिए, तब कुछ असंभव है।):

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

पुनः "सामान्यीकृत" और "1 एनएफ़"

जब कोोड ने 1 9 70 में "सामान्य" का इस्तेमाल किया, तो उन्होंने संबंधपरक डेटाबेस से संबंध-मूल्य ("गैर-सरल") डोमेन को समाप्त करने का अर्थ दिया:

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

बाद में "उच्च सामान्य रूपों" (शामिल होने पर निर्भरता को शामिल करने) का अनुमान उठे और "सामान्य" एक अलग अर्थ पर ले लिया। सामान्यीकरण सिद्धांत में 1 सामान्य रूप में होना हमेशा एक रिश्ता होने का मतलब होता है। इसलिए किसी रिश्ते से "सामान्यीकृत" रूप से संबंध मूल्यवान कॉलम्स के बिना जाने के मूल अर्थ में "सामान्य" हो सकता है और सामान्य संबंध में "सामान्य" हो सकता है-सिद्धांतों के उर्फ ​​"1 एनएफ़" से सिर्फ एक ऊँचा डोमेन का रिश्तों का संबंध है या नहीं, यह अनदेखा करते हुए सामान्य रूप है। और "सामान्यीकरण" का उपयोग गैर-रिलेशनल डेटाबेस (या तो 1 एनएफ या संबंध-डोमेन-फ्री-सामान्यीकृत) के एक रिलेशनल संस्करण को डिजाइन करने के लिए किया जाता है।

एक दूसरे आधार तालिका के पक्ष में दिलचस्प भागों के साथ एक ही अर्थ या डोमेन के साथ एकाधिक स्तंभों को छोड़ने के लिए संबंधपरक भावना है। लेकिन हमें हमेशा एक अनौपचारिक एर्गोनोमिक निर्णय के बारे में पता होना चाहिए कि किन भागों का प्रतिनिधित्व करना बंद करना है और सिर्फ एक स्तंभ को "परमाणु" (गैर-सम्बन्धी मूल्य) बनाम "नैनैटोमिक" (संबंध-मूल्य) बनाकर रखना चाहिए।

परमाणु और 1 एनएफ़ … जो परमाणु लेनदेन के बारे में नहीं है, बल्कि परिभाषा और स्तंभ सामग्री के बारे में है।

"परमाणु" का अर्थ है "छोटे भागों में विभाजित या विभाजित नहीं किया जा सकता" 1 एनएफ़ के लिए लागू है इसका मतलब है कि एक कॉलम में एक से अधिक मूल्य नहीं होना चाहिए। इसे उन मूल्यों को तैयार या संयोजन नहीं करना चाहिए जिनके पास स्वयं का अर्थ है।

यह तकनीकी रूप से डेटाबेस डिजाइनर द्वारा बनाई गई 2 बहुत ही सामान्य गलतियों का संबंध है:

1. एक स्तंभ में कई मान (सूची स्तंभ)

स्तंभों में मूल्यों की सूची, युक्तिगत स्थान या अल्पविराम से अलग, इस ब्लॉग पोस्ट तालिका की तरह:

 id title date_posted content tags 1 new idea 2014-05-23 ... tag1,tag2,tag3 2 why this? 2014-05-24 ... tag2,tag5 3 towel day 2014-05-26 ... tag42 

या इस संपर्क तालिका:

 id room phones 4 432 111-111-111 222-222-222 5 456 999-999-999 6 512 888-888-8888 333-3333-3333 

इस प्रकार की denormalization दुर्लभ है, क्योंकि अधिकांश डेटाबेस डिजाइनर यह देखते हैं कि यह एक अच्छी बात नहीं हो सकती लेकिन आप इस तरह से टेबल मिलते हैं वे आम तौर पर संशोधनों से डेटाबेस तक आते हैं, जबकि यह एक स्तंभ को चौड़ा करने और इसे सामान्यीकृत संबंधित तालिका (जो अक्सर मौजूदा अनुप्रयोगों को तोड़ता है) को जोड़ने के बजाय कई मूल्यों को भरने के लिए सरल लग सकता है।

2. जटिल बहु भाग कॉलम

इस मामले में एक कॉलम में जानकारी के विभिन्न टुकड़े होते हैं और संभवतः अलग कॉलम के एक सेट के रूप में डिज़ाइन किए जा सकते हैं।

सामान्य उदाहरण पूर्णनाम और पता स्तंभ हैं:

 id fullname address 1 Mark Tomers 56 Tomato Road 2 Fred Askalong 3277 Hadley Drive 3 May Anne Brice 225 Century Avenue - apartment 43/a 

इन प्रकार के denormalizations बहुत आम है, क्योंकि यह लाइन आकर्षित करने के लिए काफी मुश्किल है और परमाणु क्या है और क्या नहीं है। आवेदन के आधार पर, कुछ मामलों में एक बहु-भाग का स्तंभ सबसे अच्छा समाधान हो सकता है। यह कम संरचित है, लेकिन सरल है।

कई परमाणु स्तंभों में एक पता को संरचित करने का अर्थ है आउटपुट के परिणामों को संभाल करने के लिए अधिक जटिल कोड रखना। एक और जटिलता संरचना से आती है जो सभी प्रकार के पते को फिट करने के लिए अनुकूल नहीं होती है। एक ही VARCHAR कॉलम का उपयोग करके इस समस्या को उत्पन्न नहीं किया जा सकता है, लेकिन आमतौर पर खोज और सॉर्टिंग के बारे में अन्य …

बहु-भाग कॉलम का एक अति मामला दिनांक और समय है। अधिकांश RDBMS तिथि और समय डेटा प्रकार प्रदान करते हैं और तारीख और समय के बीजगणित और विभिन्न बिट्स (महीने, घंटा, आदि …) को निकालने के लिए कार्य प्रदान करते हैं। कुछ लोग रिलेशनल डेटाबेस में अलग साल, मॉंट, डे कॉलम के लिए सुविधाजनक मानेंगे। लेकिन मैंने इसे देखा है … और अच्छे कारणों से: उपयोग का मामला एक न्याय विभाग के डेटाबेस के जन्मदिन था। उन्हें कुछ या कुछ दस्तावेजों के साथ कई आप्रवासियों को संभालना पड़ा। कभी-कभी आप जानते हैं कि किसी व्यक्ति का जन्म एक निश्चित वर्ष में हुआ था, लेकिन आप दिन या महीना या जन्म को नहीं जानते। आप उस प्रकार की जानकारी को एक एकल दिनांक कॉलम के साथ नहीं संभाल सकते।

इसका मतलब है कि कॉलम में एकाधिक मान नहीं होना चाहिए (जैसे अल्पविराम से अलग मूल्य)

plz नीचे देखें लिंक

http://www.studytonight.com/dbms/database-normalization.php