Snowflake schema
कम्प्यूटिंग में, एक स्नोफ्लेक स्कीमा एक बहुआयामी डेटाबेस में तालिकाओं की एक तार्किक व्यवस्था है जैसे कि इकाई संबंध आरेख एक स्नोफ्लेक आकार जैसा दिखता है। स्नोफ्लेक योजना को केंद्रीकृत तथ्य तालिकाओं द्वारा दर्शाया जाता है जो कई आयामों से जुड़े होते हैं। "स्नोफ्लेकिंग" एक तारा योजना में आयाम तालिकाओं को सामान्य बनाने की एक विधि है। जब इसे सभी आयाम तालिकाओं के साथ पूरी तरह से सामान्य किया जाता है, तो परिणामी संरचना बीच में तथ्य तालिका के साथ एक बर्फ के टुकड़े जैसा दिखता है। स्नोफ्लेकिंग के पीछे का सिद्धांत कम कार्डिनलिटी विशेषताओं को हटाकर और अलग-अलग तालिकाओं का निर्माण करके आयाम तालिकाओं का सामान्यीकरण है। स्नोफ्लेक योजना तारा योजना के समान है। हालांकि, स्नोफ्लेक योजना में, आयामों को कई संबंधित तालिकाओं में सामान्यीकृत किया जाता है, जबकि स्टार योजना के आयामों को एक एकल तालिका द्वारा दर्शाए गए प्रत्येक आयाम के साथ सामान्यीकृत किया जाता है। एक जटिल स्नोफ्लेक आकार तब उभरता है जब एक स्नोफ्लेक योजना के आयाम विस्तृत होते हैं, जिनमें कई स्तर के संबंध होते हैं, और चाइल्ड टेबल में कई मूल टेबल होते हैं ("सड़क में कांटे")। सामान्य उपयोग स्टार और स्नोफ्लेक स्कीमा आमतौर पर आयामी डेटा गोदामों और डेटा मार्ट में पाए जाते हैं जहां डेटा पुनर्प्राप्ति की गति डेटा हेरफेर की दक्षता से अधिक महत्वपूर्ण है। इस प्रकार, इन योजना में तालिकाओं को बहुत अधिक सामान्यीकृत नहीं किया जाता है, और अक्सर तीसरे सामान्य रूप से कम सामान्यीकरण के स्तर पर डिज़ाइन किया जाता है। डेटा सामान्यीकरण और भंडारण सामान्यीकरण डेटा के सामान्य रूप से दोहराए जाने वाले समूहों को नई तालिकाओं में स्थानांतरित करके अतिरेक (दोहराव) से बचने के लिए डेटा को विभाजित करता है। इसलिए सामान्यीकरण उन तालिकाओं की संख्या को बढ़ाता है जिन्हें किसी दिए गए प्रश्न को करने के लिए जोड़ने की आवश्यकता होती है, लेकिन डेटा को रखने के लिए आवश्यक स्थान और उन स्थानों की संख्या को कम कर देता है जहां डेटा बदलने पर इसे अद्यतन करने की आवश्यकता होती है। अंतरिक्ष भंडारण के दृष्टिकोण से, आयामी तालिकाएं आमतौर पर तथ्य तालिकाओं की तुलना में छोटी होती हैं। यह अक्सर स्नोफ्लेक स्कीमा की तुलना में स्टार स्कीमा के संभावित भंडारण-स्थान लाभों को नकारता है। उदाहरण के लिएः 220 देशों में 300 दुकानों में दस लाख बिक्री लेनदेन के परिणामस्वरूप एक स्टार योजना में 1,000,300 रिकॉर्ड होंगे (तथ्य तालिका में 1,000,000 रिकॉर्ड और आयामी तालिका में 300 रिकॉर्ड जहां प्रत्येक देश को उस देश में प्रत्येक दुकान के लिए स्पष्ट रूप से सूचीबद्ध किया जाएगा)। कंट्री टेबल को संदर्भित करने वाली कंट्री कीज़ के साथ एक अधिक सामान्यीकृत स्नोफ्लेक स्कीमा में वही 1,000,000 रिकॉर्ड तथ्य तालिका, 220 रिकॉर्ड के साथ कंट्री टेबल के संदर्भ के साथ एक 300 रिकॉर्ड शॉप टेबल शामिल होगी। इस मामले में, स्टार स्कीमा, हालांकि आगे विकृत किया गया है, केवल संख्या या रिकॉर्ड को [1,000,000 + 300+220] के बजाय (नगण्य) ~0.02% (= [1,000,000 + 300] द्वारा कम कर देगा) कुछ डेटाबेस डेवलपर्स इसके ऊपर निर्मित दृश्यों के साथ एक अंतर्निहित स्नोफ्लेक स्कीमा बनाकर समझौता करते हैं जो एक स्टार स्कीमा का अनुकरण करने के लिए कई आवश्यक जोड़ों का प्रदर्शन करते हैं। यह स्टार स्कीमा द्वारा प्रदान की जाने वाली पूछताछ की आसानी के साथ आयामों के सामान्यीकरण के माध्यम से प्राप्त भंडारण लाभ प्रदान करता है। समझौता यह है कि सर्वर को अंतर्निहित जुड़ाव को स्वचालित रूप से करने की आवश्यकता के परिणामस्वरूप पूछताछ करते समय एक प्रदर्शन हिट हो सकता है और साथ ही तालिकाओं में अतिरिक्त जुड़ाव हो सकता है जो कुछ प्रश्नों को पूरा करने के लिए आवश्यक नहीं हो सकता है। लाभ स्नोफ्लेक स्कीमा स्टार स्कीमा लॉजिकल मॉडल के समान परिवार में है। वास्तव में, स्टार स्कीमा को स्नोफ्लेक स्कीमा का एक विशेष मामला माना जाता है। स्नोफ्लेक योजना कुछ स्थितियों में स्टार योजना पर कुछ लाभ प्रदान करती है, जिनमें शामिल हैंः कुछ ओ. एल. ए. पी. बहुआयामी डेटाबेस मॉडलिंग उपकरण स्नोफ्लेक योजना के लिए अनुकूलित हैं। विशेषताओं को सामान्य करने के परिणामस्वरूप भंडारण बचत होती है, स्रोत पूछताछ में अतिरिक्त जटिलता होने के कारण विनिमय जुड़ जाता है। नुकसान स्नोफ्लेक योजना का प्राथमिक नुकसान यह है कि स्टार योजना की तुलना में विशेषता सामान्यीकरण के अतिरिक्त स्तर स्रोत क्वेरी जॉइन में जटिलता जोड़ते हैं। सपाट एकल टेबल आयामों के विपरीत, स्नोफ्लेक योजना की भारी आलोचना की गई है। उनका लक्ष्य सामान्यीकृत डेटा का एक कुशल और संक्षिप्त भंडारण माना जाता है, लेकिन यह इस आयाम में आवश्यक जॉइन्स को ब्राउज़ करते समय खराब प्रदर्शन की महत्वपूर्ण कीमत पर है। ब्राउज़िंग उपकरणों के भीतर बेहतर क्वेरी प्रदर्शन के कारण यह नुकसान पहली बार पहचाने जाने के बाद के वर्षों में कम हो गया होगा। जब एक अत्यधिक सामान्यीकृत लेन-देन योजना की तुलना की जाती है, तो स्नोफ्लेक योजना का सामान्यीकरण सामान्यीकृत योजना द्वारा प्रदान किए गए डेटा अखंडता आश्वासनों को हटा देता है। स्नोफ्लेक स्कीमा में डेटा लोड को अत्यधिक नियंत्रित किया जाना चाहिए और अद्यतन से बचने और विसंगतियों को डालने के लिए प्रबंधित किया जाना चाहिए। उदाहरण दायीं ओर दिखाया गया उदाहरण योजना, स्टार योजना लेख में दिए गए स्टार योजना उदाहरण का एक बर्फ से ढका संस्करण है। निम्नलिखित उदाहरण क्वेरी स्टार स्कीमा उदाहरण कोड के समतुल्य स्नोफ्लेक स्कीमा है जो 1997 के लिए ब्रांड और देश द्वारा बेची गई टेलीविजन इकाइयों की कुल संख्या बताता है। ध्यान दें कि स्नोफ्लेक स्कीमा क्वेरी को एक साधारण क्वेरी को पूरा करने के लिए स्टार स्कीमा संस्करण की तुलना में कई अधिक जॉइन की आवश्यकता होती है। इस उदाहरण में स्नोफ्लेक योजना का उपयोग करने का लाभ यह है कि भंडारण आवश्यकताएँ कम हैं क्योंकि स्नोफ्लेक योजना आयामों से कई डुप्लिकेट मूल्यों को समाप्त कर देती है। सेलेक्ट B.Brand, G.Country, एसयूएम (F.Units_Sold) फैक्ट _ सेल्स एफ इनर जॉइन डिम _ डेट डी ऑन F.Date_Id = D. इडर इनर जॉइन डिम _ स्टोर S ऑन F.Store_Id = S. इडर इनर जॉइन डिम _ जियोग्राफी G ऑन S.Geography_Id = G. इडर इनर जॉइन डिम _ प्रोडक्ट P ऑन F.Product_Id = P. इडर इनर जॉइन डिम _ ब्रांड B ऑन P.Brand_Id = B. इडर इनर जॉइन डिम _ प्रोडक्ट _ कैटेगरी C ऑन P.Product_Category_Id = C. मार्क लेवेन और जॉर्ज लोइज़ौ द्वारा रिवर्स स्नोफ्लेक एसक्यूएल कोड ऑनलाइन विश्लेषणात्मक प्रसंस्करण के उदाहरण के साथ डेटा वेयरहाउसिंग लेखों में शामिल होता है