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 |
| Deletion | delete કરવું અસંબંધિત data ખોવે છે | છેલ્લું item કાઢો, supplier ખોવો |
Quiz
Meera એક supplier નો phone number બદલે છે, પણ એ 30 item rows પર store છે. એ 29 update કરે છે અને એક ચૂકી જાય છે. કઈ anomaly એ હમણાં એને કરડ્યું?
- Update anomaly, redundant value હવે rows માં પોતાનું ખંડન કરે છે
- Insertion anomaly, એણે નવો data ઉમેર્યો
- Deletion anomaly, એણે data કાઢ્યો
- કોઈ 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 પર તમારું સરનામું ફરી ન લખો, દરેક તથ્ય એક વાર લખો.