आपले डेटाबेस सामान्य करणे: दुसरे सामान्य फॉर्ममध्ये संक्रमण (2 एनएफ़)

द्वितीय सामान्य फॉर्ममध्ये डेटाबेस टाकणे

गेल्या महिन्यात, आम्ही डेटाबेस टेबल सामान्य करण्याच्या अनेक पैलूंवर पाहिले आहे. प्रथम, आम्ही डेटाबेस सामान्यीकरण च्या मूलभूत तत्त्वांवर चर्चा केली. गेल्या वेळी, आम्ही प्रथम सामान्य फॉर्म (1 एनएफ) द्वारे निर्धारित मूलभूत गरजा शोधून काढल्या. आता, आमचे प्रवास चालू ठेवूया आणि दुसरा सामान्य स्वरूपाचे (2 एनएफ़) तत्त्वे झाकून द्या.

2NF ची सामान्य आवश्यकता आठवणे:

हे नियम एका साध्या विधानामध्ये सारांशित केले जाऊ शकतात: 2NF एका टेबलमध्ये अनावश्यक डेटाची रक्कम काढुन, ते नवीन टेबलमध्ये ठेवून आणि त्या सारण्यांमधील संबंध निर्माण करण्याच्या प्रयत्न करते.

चला एक उदाहरण बघूया. एका ऑनलाइन स्टोअरची कल्पना करा जी ग्राहक माहिती एका डेटाबेसमध्ये ठेवते. त्यांच्याकडे ग्राहकांना खालील घटकांसह एक सारणी असू शकते:

या सारणीवर थोडक्यात स्वरूप थोडक्यात निरर्थक डेटा दर्शविते. आम्ही "सी क्लिफ, NY 11579" आणि "Miami, FL 33157" प्रविष्ट्या प्रत्येकवेळी दोनदा संचयित करत आहोत. आता, हे आमच्या साध्या उदाहरणामध्ये खूप-जोडले स्टोरेजसारखे दिसत नाही, परंतु आपल्या टेबलमध्ये हजारो पंक्ती असल्यास ती वाया जागाची कल्पना करा. याव्यतिरिक्त, जर समुद्रातील क्लिफसाठीचे झिप कोड बदलायचे असतील, तर आम्हाला संपूर्ण डेटाबेसमध्ये अनेक ठिकाणी हे बदल करणे आवश्यक आहे.

2 एनएफ़-अनुरुप डेटाबेस संरचना मध्ये, हे रिडंडंट माहिती वेगळ्या तक्त्यात काढले आणि साठवले जाते. आमचे नवीन टेबल (आम्हाला पिन म्हणावे) खालील फील्ड असू शकतात:

जर आपल्याला सुपर-फिक्स्ड व्हायचे असेल, तर आपण हे टेबल आधीच भरवू शकतो - पोस्ट ऑफीस सर्व वैध झिप कोड आणि त्यांच्या शहर / राज्य संबंधांची निर्देशिका प्रदान करते. निश्चितपणे, आपल्याला अशी परिस्थिती आली आहे की या प्रकारचे डेटाबेस वापरला गेला. ऑर्डर घेतलेला कोणीतरी आपल्याला आधी आपल्या झिप कोडबद्दल विचारला असेल आणि नंतर आपण ज्याला कॉल करत होता तो शहर आणि राज्य माहित होता. या प्रकारची व्यवस्था ऑपरेटर त्रुटी कमी करते आणि कार्यक्षमता वाढवते.

आता आम्ही ग्राहक टेबलवरून दुप्पट डेटा काढला आहे, आम्ही दुसरे सामान्य फॉर्मचे प्रथम नियम पूर्ण केले आहे. आम्ही दोन टेबल एकत्र बांधण्यासाठी परदेशी की वापरण्याची आवश्यकता आहे. आम्ही त्या संबंध प्रस्थापित करण्यासाठी झिप कोड ( झिप टेबलमधून प्राथमिक की) वापरणार आहोत. येथे आमचे नवीन ग्राहक टेबल आहे:

आम्ही आता डेटाबेसमधील अनावश्यक माहितीची रक्कम कमी केली आहे आणि आपली संरचना दुसर्या स्वरूपात आहे!

आपला डेटाबेस सामान्यीकृत आहे हे सुनिश्चित करू इच्छित असल्यास, या मालिकेतील आमचे इतर लेख एक्सप्लोर करा: