Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

पहला सामान्य फॉर्म (1NF)

<घंटा/>

1NF क्या है

1NF DBMS में पहला नॉर्मल फॉर्म है, इसे सामान्य बनाने के लिए एक असामान्य टेबल पर लगाया जाता है। एक असामान्य तालिका में निम्नलिखित मुद्दे हैं जिनसे हमें एक संपूर्ण डेटाबेस डिज़ाइन प्राप्त करने से बचने की आवश्यकता है -

असामान्यीकृत तालिका में समस्याएं

डेटा अतिरेक

एक ही डेटा आइटम को कई बार स्टोर करना डेटा रिडंडेंसी के रूप में जाना जाता है।

आइए एक उदाहरण देखें -

हमारे पास एक <कर्मचारी> . है तालिका जिसमें कर्मचारियों के वर्तमान पते को संग्रहीत करने के लिए एक फ़ील्ड है। इनमें से कुछ कर्मचारियों को कंपनी ने रहने के लिए जगह दी; इसलिए, उनका एक ही पता है। पता डेटाबेस में दोहराया जाएगा -

तालिका 1.1

EmpID

EmpName
EmpAddress
001
Amit
11, VA Street, New York
002
Tom
11, VA Street, New York
003
डेविड
11, VA Street, New York
004
स्टीव
13, HG Block, फिलाडेल्फिया
005
Jeff
13, HG Block, फिलाडेल्फिया


इसे हल करने के लिए, कर्मचारी के पते को एक अलग तालिका में संग्रहीत करें और <कर्मचारी> तालिका में इंगित करें।

अद्यतन विसंगति

ऐसा तब होता है जब आप किसी तालिका को अपडेट करते समय समस्याओं का सामना करते हैं।

आइए एक उदाहरण देखें -

तालिका 1.2

EmpID

EmpName

EmpAddress

EmpDept

001
Amit
11, VA Street, New York

002
Tom
11, VA Street, New York
बी
003
Tom
11, VA Street, New York
सी
004
स्टीव
13, HG Block, फिलाडेल्फिया
डी
005
Jeff
27, ZR Block, वर्जीनिया


यदि हमें कर्मचारी टॉम का पता अपडेट करने की आवश्यकता है, जो दो विभागों से है, तो हमें दो पंक्तियों को अपडेट करने की आवश्यकता है। यदि हम केवल एक पंक्ति को अपडेट करते हैं, तो टॉम के पास दो अलग-अलग पते होंगे जो डेटा में विसंगतियों को जन्म देंगे।

विलोपन विसंगति

मान लें कि कंपनी विभाग डी को बंद करने का निर्णय लेती है, तो पंक्ति को हटाने से कर्मचारी स्टीव के डेटा को भी हटा दिया जाएगा।

सम्मिलन विसंगति

ऐसा तब होता है जब आप किसी ऐसे रिकॉर्ड में डेटा डालने का प्रयास करते हैं जो मौजूद नहीं है।

सामान्यीकरण उपरोक्त सभी मुद्दों/विसंगतियों को दूर करता है और आपको एक सामान्यीकृत संपूर्ण डेटाबेस डिज़ाइन देता है जो एक डेटाबेस व्यवस्थापक को पसंद आता है।

आइए देखें कि फर्स्ट नॉर्मल फॉर्म (1NF) का उपयोग करके डेटा को कैसे सामान्य किया जाए

जानकारी क्यों

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

इसलिए, तालिका के सामान्यीकृत रूप में होने के लिए सबसे महत्वपूर्ण नियम यह है कि इसमें केवल परमाणु मान होने चाहिए।

उदाहरण

नीचे दिए गए उदाहरण में DeptRole कॉलम को छोड़कर, परमाणु मूल्यों वाले प्रत्येक स्तंभ के साथ एक तालिका है। इसलिए, DeptRole कॉलम विभाग A, B और C के परमाणु मान नियम का उल्लंघन करता है।

तालिका 1.3

DeptId
DeptName
DeptRole
001
A
वित्त, HR
002
B
प्रोग्रामिंग, नेटवर्किंग
003
C
प्रबंधन, मार्केटिंग
004
D
संचालन


आइए अब इसे ठीक करें और 1NF में बदलें:

DeptId
विभाग का नाम
DeptRole
001
A
Finance
001
A
HR
002
B
Programming
002
B
नेटवर्किंग
003
C
प्रबंधन
003
C
मार्केटिंग
004
D
संचालन


अब उपरोक्त तालिका 1NF में है और हमारे पास प्रत्येक कॉलम में परमाणु मान हैं जैसा कि निम्नलिखित स्क्रीनशॉट में संक्षेप में दिया गया है -

पहला सामान्य फॉर्म (1NF)


  1. दूसरा सामान्य फॉर्म (2NF)

    2NF क्या है? सामान्यीकरण का दूसरा चरण 2NF है। एक तालिका 2NF में होती है, केवल अगर कोई संबंध 1NF में है और सभी नियमों को पूरा करता है, और प्रत्येक गैर-कुंजी विशेषता पूरी तरह से प्राथमिक कुंजी पर निर्भर है। दूसरा सामान्य प्रपत्र प्राथमिक कुंजियों पर आंशिक निर्भरता को समाप्त करता है। आइए एक उदाहरण

  1. तीसरा सामान्य फॉर्म (3NF)

    3NF क्या है? सामान्यीकरण में तीसरा चरण 3NF है। एक तालिका 3NF में होती है, केवल तभी जब कोई संबंध 2NF में हो और उसमें कोई ट्रांजिटिव फंक्शनल डिपेंडेंसी न हो आइए एक उदाहरण देखें - उदाहरण (तालिका 3NF का उल्लंघन करती है) Movie_ID Listing_ID Listing_Type DVD_Price ($) 0089 007 कॉमेडी

  1. विंडोज़ में MySQL टेबल डेटा कहाँ स्टोर किया जाता है?

    MySQL तालिका डेटा का स्थान जानने के लिए, आप नीचे दिए गए सिंटैक्स का उपयोग कर सकते हैं - @@datadir चुनें; इसके लिए आप SHOW VARIABLES कमांड का भी इस्तेमाल कर सकते हैं। निम्नलिखित वाक्य रचना है - वेरिएबल दिखाएं जहां Variable_name =datadir; आइए उपरोक्त सिंटैक्स को यह जानने के लिए लागू करें कि MySQL ता