तपाईंको डेटाबेस सामान्य: सामान्य सामान्य फारम

यी दुइटा साधारण नियमहरूले तपाईँको डाटाबेस सामान्य बनाउन मद्दत गर्नेछ

पहिलो सामान्य फारम (1 एनएफ) संगठित डाटाबेसको आधारभूत आधारभूत नियमहरू सेट गर्दछ:

डाटाबेस को व्यावहारिक डिजाइन को विचार गर्दा यी नियमहरु के मतलब छ? यो वास्तवमा धेरै सरल छ।

1. डुप्लिकेट हटाउनुहोस्

पहिलो नियमले बताउँछ कि हामीले तालिकाको उही पङ्क्ति भित्र डेटा डुप्लिकेट गर्नुपर्दैन। डेटाबेस समुदाय भित्र, यो अवधारणा एक तालिका को परमाणुत्व को रूप मा जाना जाता है। यो नियमसँग पालन गर्ने तालिकाहरू परमाणु हुन भनिएको छ। यो सिद्धान्त एक क्लासिक उदाहरणको साथ खोज्नुहोस्: एक म्यानुअल स्रोत डेटाबेस को भित्र एक तालिका जसले प्रबन्धक-अधीनस्थ सम्बन्ध राख्छ। हाम्रो उदाहरणको उद्देश्यका लागि, हामी व्यवसाय नियमलाई प्रत्येक स्थानमा मात्र एक प्रबन्धक हुन सक्छ प्रत्येक प्रबन्धकले एक वा बढी अधीनस्थ हुन सक्छ।

सावधानीपूर्वक, यो जानकारी ट्र्याक गर्न सूची वा स्प्रिेडसिट सिर्जना गर्दा, हामी निम्न क्षेत्रहरूसँग तालिका सिर्जना गर्न सक्छौं:

यद्यपि, 1 एनएफ द्वारा लागू गरिएको पहिलो नियम सम्झनुहोस्: नक्कल स्तम्भहरू एकै तालिकाबाट हटाउनुहोस्। स्पष्ट रूपमा, Subordinate1-Subordinate4 स्तम्भहरू नक्कली छन्। एक क्षण लिनुहोस् र यस परिदृश्य द्वारा उठाएका समस्याहरू विचार गर्नुहोस्। यदि एक प्रबन्धकसँग मात्र एक अधीनस्थ छ, subordinate2-subordinate4 स्तम्भहरू केवल भण्डारण ठाउँ (एक बहुमूल्य डेटाबेस वस्तु) बर्बाद गरिन्छन्। साथै, कल्पना गर्नुहोस् कि प्रबन्धकसँग पहिले नै 4 अधीनस्थ छ - के हुन्छ यदि उसले अर्को कर्मचारीमा लिन्छ भने? सम्पूर्ण तालिका ढाँचा परिमार्जन आवश्यक पर्दछ।

यस बिन्दुमा, एक दोस्रो उज्ज्वल विचार सामान्यतया डेटाबेस उपन्यासहरूमा हुन्छ: हामी एक भन्दा बढी स्तम्भहरू लिन चाहँदैनौं र हामी डेटा भण्डारणको लचीला मात्राको लागि अनुमति दिन चाहन्छौं। यसलाई केहि गर्न प्रयास गर्नुहोस्:

र अधीनस्थ क्षेत्र मा फारम "मरी, बिल, जोई" मा धेरै प्रविष्टिहरू हुनेछ।

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

यहाँ एउटा तालिका हो जुन 1 एनएफको पहिलो नियमलाई सन्तुष्ट पार्दछ:

यस अवस्थामा, प्रत्येक अधीनमा एक मात्र प्रविष्टि छ, तर प्रबन्धकहरूसँग धेरै प्रविष्टिहरू हुन सक्छन्।

2. प्राथमिक कुञ्जी पहिचान गर्नुहोस्

अब, दोस्रो नियमको बारेमा के: प्रत्येक पङ्क्तिमा एक अद्वितीय स्तम्भसँग पहिचान गर्नुहोस् वा स्तम्भहरू सेट गर्नुहोस् ( प्राथमिक कुञ्जी )? तपाईंले माथि तालिकामा हेर्न सक्नुहुनेछ र प्राथमिक कुञ्जीको रूपमा अधीनस्थ स्तम्भको प्रयोग सुझाव दिनुहोस्। वास्तवमा, अधीनस्थ स्तम्भ प्राथमिक कुञ्जीको लागि राम्रो उम्मेद्वार हो कि हाम्रो व्यापार नियमले प्रत्येक अधीनस्थ मात्र एक प्रबन्धक हुन सक्छ भन्ने तथ्यको कारण। तथापि, हामीले हाम्रा तालिकामा स्टोर गर्न रोजेका डेटा यो आदर्श समाधान भन्दा कम बनाउँछ। के हुन्छ यदि हामी जिम नामक अर्को कर्मचारी हो भने? हामी कसरी डाटाबेसमा आफ्नो प्रबन्धक-अधीनस्थ सम्बन्ध भण्डार गर्छौँ?

यो साँचो हो कि एक प्राथमिक कुञ्जीको रूपमा साँच्चै अद्वितीय पहिचानकर्ता (जस्तै कर्मचारी आईडी) प्रयोग गर्नुहोस्। हाम्रो अन्तिम तालिका यस्तो देखिन्छ:

अब, हाम्रो तालिका पहिलो सामान्य रूपमा छ! यदि तपाईं सामान्यीकरणको बारेमा सिक्न जारी राख्न चाहनुहुन्छ भने, यस श्रृंखलामा अन्य लेखहरू पढ्नुहोस्: