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 છે.
  • યાદ રાખવાની યુક્તિ: દરેક 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