Normalization: why normalization (insertion, updating, deletion anomalies)

Normalization एक फूली हुई table को अच्छे-design वाली में बाँटना है ताकि तीन bugs मारे जाएँ: insertion anomalies (Y के बिना X नहीं जोड़ सकते), update anomalies (एक value को पचास जगह बदलो या ख़ुद का खंडन करो), और deletion anomalies (एक तथ्य हटाओ और दूसरा खो दो)।

11 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Meera की sheet आख़िरकार टूटती है

यह वह पल है जिसकी ओर पूरा unit बढ़ रहा था। Meera की एक विशाल sheet items, suppliers और customers को एक ही table में ठूँसती है, supplier का phone number उसके supply किए हर item row पर फिर से लिखा।

फिर एक ही दिन तीन चीज़ें गलत होती हैं: वह एक नया supplier नहीं जोड़ सकती, एक phone number बदलने में बीस edits लगते हैं, और एक पुराना item delete करने से एक supplier पूरी तरह मिट जाता है।

ये तीन anomalies हैं, और ये ठीक वह कारण हैं कि normalization मौजूद है। Meera का दर्द textbook का सबक है।

Theory

हर page पर अपना पता लिखना

एक diary की कल्पना कीजिए जहाँ, हर एक page पर, आप अपना पूरा घर का पता फिर से लिखते हैं। घर बदलिए, और आपको हर page ठीक करना होगा (एक छूटा और आपकी diary ख़ुद का खंडन करती है)। अपनी पहली entry से पहले अपना नया पता note करना चाहते हैं? आप नहीं कर सकते, अभी कोई page ही नहीं। अपना इकलौता page फाड़िए और आपका पता भी गायब। हर जगह एक ही तथ्य दोहराना जड़-बीमारी है। Normalization हर तथ्य को एक बार लिखना है।

Theory

तीन anomalies

तीनों redundancy से निकलती हैं, एक ही तथ्य को कई rows में store करना:

  • Insertion anomaly: आप कुछ data दूसरे, असंबंधित data के बिना नहीं जोड़ सकते। Meera एक नया supplier दर्ज नहीं कर सकती जब तक उसने एक item supply न किया हो, क्योंकि supplier के ब्योरे सिर्फ item rows पर रहते हैं।
  • Update anomaly: कई rows में store किया एक तथ्य सब में बदलना पड़ता है। Supplier का नया phone मतलब हर item row edit करना; एक छूटा और data ख़ुद का खंडन करता है।
  • Deletion anomaly: एक row delete करना असंबंधित तथ्य खो देता है। Supplier का आख़िरी item delete कीजिए और आप उस supplier के अस्तित्व का इकलौता record मिटा देते हैं।

At a glance

तीन anomalies

Anomalyसमस्याMeera का मामला
Insertionअसंबंधित Y के बिना X नहीं जोड़ सकतेनए supplier को पहले एक item चाहिए
Updateएक तथ्य कई rows में बदलो या खंडननया phone = हर item row edit
Deletiondelete करना असंबंधित data खोता हैआख़िरी item हटाओ, supplier खोओ

Quiz

Meera एक supplier का phone number बदलती है, पर यह 30 item rows पर store है। वह 29 update करती है और एक छूट जाती है। कौन सी anomaly ने अभी उसे काटा?

  1. Update anomaly, redundant value अब rows में ख़ुद का खंडन करती है
  2. Insertion anomaly, उसने नया data जोड़ा
  3. Deletion anomaly, उसने data हटाया
  4. कोई anomaly नहीं, यह सामान्य database बर्ताव है
Show the answer

Update anomaly, redundant value अब rows में ख़ुद का खंडन करती है

Phone number 30 rows पर redundantly store है, तो इसे update करना मतलब सारे 30 बदलना; एक छूटना database को एक supplier के लिए दो अलग phone numbers कहते छोड़ देता है, एक update anomaly। जड़ कारण redundancy है। Normalization phone को एक Supplier table में एक बार store करता, तो एक edit इसे हर जगह ठीक कर देता। यह क्लासिक update-anomaly परिदृश्य है।

Think first

आकस्मिक मिटाव

Meera एक ख़ास supplier द्वारा कभी supply किया आख़िरी item delete करती है, बस पुराने stock की सफ़ाई। अचानक उसके पास कोई record नहीं कि यह supplier मौजूद भी है। इस anomaly का नाम बताइए, और समझाइए कि tables बाँटना इसे क्यों रोकेगा।

Show the answer

यह एक deletion anomaly है: एक item row हटाना साथ ही उस supplier के ब्योरों की इकलौती store की copy भी हटाता है, असंबंधित जानकारी एक side effect के रूप में खोई। अगर suppliers अपनी ख़ुद की table में रहते (एक foreign key से items से जुड़े), तो एक item delete करना सिर्फ item को छूता, supplier record अछूता बच जाता। entities को उनकी ख़ुद की tables में अलग करना ठीक वही है जो normalization करता है, और यह तीनों anomalies को गायब कर देता है।

Watch out

Marks कहाँ कटते हैं

तीन anomalies (insertion, update, deletion) को सटीक रूप से हर एक के अलग उदाहरण के साथ नाम न देना, यह exam का पसंदीदा ढाँचा है। यह भूलना कि redundancy तीनों का जड़ कारण है। और यह कहना कि normalization 'बस tables बाँटना' है, क्यों कहिए: redundancy और उसके ज़रिए anomalies हटाने को। अस्पष्ट जवाब marks खोते हैं; ठोस anomaly उदाहरण (जैसे Meera का supplier phone) उन्हें कमाते हैं।

Formula

Exam recipe: 'हम normalize क्यों करते हैं?'

इसे एक आकार में कहिए: normalization redundancy हटाता है ताकि तीन anomalies ख़त्म हों, insertion (Y के बिना X नहीं जोड़ सकते), update (हर जगह एक तथ्य बदलो या खंडन), deletion (असंबंधित data खोओ)। हर anomaly का एक ठोस उदाहरण दीजिए। फिर जोड़िए: यह एक table को keys से जुड़ी कई में decompose करके हासिल होता है। परिभाषा + तीन anomalies + उदाहरण + तरीका = पूरे marks, हर बार।

Theory

इलाज के चरण हैं

अब आप बीमारी को अपनी हड्डियों में महसूस करते हैं (Meera की तीन आफ़तें)। इलाज, normalization, चरणों में लगाया जाता है जिन्हें normal forms कहते हैं: 1NF, 2NF, 3NF, BCNF, हर एक एक ख़ास तरह की redundancy हटाता। वह बिलकुल अगला lesson है। keys और attributes के बारे में आपने जो सीखा वह आपको इस fix के लिए तैयार कर रहा था। आगे: normal forms, और वे नियम जो उन्हें चलाते हैं।

Summary

Key takeaways

  • Normalization एक फूली table को अच्छे-design वाली में बाँटता है ताकि redundancy हटे।
  • Redundancy (एक तथ्य को कई rows में दोहराना) तीन anomalies पैदा करती है।
  • Insertion anomaly: दूसरे असंबंधित data के बिना data नहीं जोड़ सकते।
  • Update anomaly: एक redundant तथ्य हर row में बदलना पड़ता है, वरना ख़ुद का खंडन करता है।
  • Deletion anomaly: एक row delete करना असंबंधित जानकारी एक side effect के रूप में खोता है।
  • इलाज keys से जुड़ी अलग tables में decomposition है।
  • याद रखने का hook: हर diary page पर अपना पता फिर से मत लिखिए, हर तथ्य एक बार लिखिए।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Concepts of Database

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Normalization: why normalization (insertion, updating, deletion anomalies) · Data Processing and Analysis (DPA) · Gri-Learn