એસીઆઇડી તમારા ડેટાબેઝ ડેટાને સુરક્ષિત કરે છે
ડેટાબેઝ ડિઝાઇનનું એસીઆઇડી મોડેલ ડેટાબેઝ થિયરીના સૌથી જૂના અને સૌથી મહત્વપૂર્ણ ખ્યાલોમાંનું એક છે. તે આગળ ચાર ગોલ કરે છે જે દરેક ડેટાબેઝ મેનેજમેન્ટ સિસ્ટમ હાંસલ કરવા માટે પ્રયત્ન કરે છે: અણુશક્તિ, સુસંગતતા, અલગતા અને ટકાઉપણું. એક સંબંધ ડેટાબેઝ કે જે આમાંના કોઈપણ ચાર ગોલને પહોંચી વળવામાં નિષ્ફળ જાય છે તે વિશ્વસનીય ગણાતા નથી. ડેટાબેઝ કે જે આ લાક્ષણિકતાઓ ધરાવે છે તે ACID- સુસંગત ગણવામાં આવે છે.
ACID નિર્ધારિત
ચાલો આ લાક્ષણિકતાઓનું વિગતવાર વર્ણન કરવા માટે થોડો સમય ફાળવો:
- અણુશક્તિ જણાવે છે કે ડેટાબેઝ ફેરફારોને "બધા અથવા કંઇ" નિયમનું પાલન કરવું આવશ્યક છે. દરેક વ્યવહાર "અણુ" તરીકે ઓળખાતો હોવાનું કહેવાય છે. જો ટ્રાન્ઝેક્શનનો એક ભાગ નિષ્ફળ જાય, તો સમગ્ર વ્યવહાર નિષ્ફળ જાય છે. તે જટિલ છે કે ડેટાબેઝ મેનેજમેન્ટ સિસ્ટમ કોઈપણ ડીબીએમએસ, ઓપરેટિંગ સિસ્ટમ અથવા હાર્ડવેર નિષ્ફળતા હોવા છતાં વ્યવહારો પર અણુ સ્વભાવ જાળવી રાખે છે.
- સુસંગતતા જણાવે છે કે માત્ર માન્ય ડેટા ડેટાબેઝમાં લખવામાં આવશે. જો, કોઈ કારણોસર, કોઈ સોદાનો અમલ કરવામાં આવે છે જે ડેટાબેસના સુસંગતતાના નિયમોનું ઉલ્લંઘન કરે છે, તો સમગ્ર વ્યવહાર પાછો ખેંચી લેવામાં આવશે, અને ડેટાબેઝ તે નિયમો સાથે સુસંગત સ્થિતિમાં પુનઃસ્થાપિત થશે. બીજી બાજુ, જો કોઈ ટ્રાન્ઝેક્શન સફળતાપૂર્વક ચલાવે છે, તો તે એક રાજ્યના ડેટાબેઝને લેશે જે નિયમોનાં સુસંગતતા સાથે સુસંગત હોય છે જે નિયમો સાથે સુસંગત છે.
- અલગતા માટે જરૂરી છે કે એક જ સમયે ઘણાં વ્યવહારો થવાથી એકબીજાના અમલ પર અસર નહીં થાય. ઉદાહરણ તરીકે, જો જૉ ડેટાબેઝ સામે એક જ સમયે વ્યવહાર કરે છે કે મેરી જુદી જુદી વ્યવહારનો મુદ્દો ઉભી કરે છે, તો બન્ને વ્યવહારો ડેટાબેઝ પર અલગ રીતે કામ કરે છે. ડેટાબેઝે મેરીને અમલમાં મુકવા પહેલાં જ કે જેનો સંપૂર્ણ વ્યવહાર કરવો જોઈએ, અથવા વાટાઘાટ. આ જૉના સોદાને મેરીના સોદાના ભાગની આડઅસર તરીકે ઉત્પાદિત વચગાળાના ડેટા વાંચવાથી રોકે છે, જે આખરે ડેટાબેઝ માટે પ્રતિબદ્ધ રહેશે નહીં. નોંધ લો કે અલગતા ગુણધર્મ તે સુનિશ્ચિત કરતું નથી કે કયા ટ્રાન્ઝેક્શન પહેલાં એક્ઝિક્યુટ કરશે - ફક્ત તે વ્યવહારો એકબીજા સાથે દખલ નહીં કરે
- ટકાઉપણું એ ખાતરી કરે છે કે ડેટાબેઝ માટે પ્રતિબદ્ધ કોઈ પણ વ્યવહાર ખોવાઇ જશે નહીં. ડેટાબેસ બેકઅપ અને ટ્રાન્ઝેક્શન લૉગ્સના ઉપયોગથી ટકાઉપણું સુનિશ્ચિત કરવામાં આવે છે જે કોઈપણ અનુગામી સૉફ્ટવેર અથવા હાર્ડવેર નિષ્ફળતાઓ હોવા છતાં પ્રતિબદ્ધ વ્યવહારોની પુનઃસ્થાપનની સુવિધા આપે છે.
કેવી રીતે પ્રેક્ટિસ માં એસીડ વર્ક્સ
ડેટાબેઝ એડમિનિસ્ટ્રેટર્સ એસીઆઇડી (ACID) અમલમાં મૂકવા માટે ઘણી વ્યૂહરચનાનો ઉપયોગ કરે
અણુશક્તિ અને ટકાઉપણું અમલમાં મૂકવા માટે ઉપયોગમાં લેવાતા એક લખવા-આગળ લોગિંગ (ડબલ્યુએએલ) છે, જેમાં કોઈ પણ લેવડદેવડની વિગત લોગમાં લખાયેલી છે જેમાં બન્ને રીડુ અને પૂર્વવત્ કરી શકાય તેવી માહિતીનો સમાવેશ થાય છે. આ ખાતરી કરે છે કે ડેટાબેઝની કોઈપણ પ્રકારની નિષ્ફળતાને કારણે, ડેટાબેઝ ચકાસી શકે છે લોગ અને તેના સમાવિષ્ટોને ડેટાબેઝની સ્થિતિની તુલના કરો.
અણુશક્તિ અને ટકાઉપણું સંબોધવા માટે ઉપયોગમાં લેવાતી અન્ય એક પદ્ધતિ શેડો-પેજિંગ છે જેમાં શેડો પેજ બનાવવામાં આવે છે જ્યારે ડેટામાં ફેરફાર થાય. ક્વેરીના અપડેટ્સ ડેટાબેઝમાં વાસ્તવિક ડેટાને બદલે શેડો પેજ પર લખવામાં આવે છે. ડેટાબેઝમાં જ ફેરફાર થાય ત્યારે જ ફેરફાર થાય છે.
બીજી વ્યૂહરચનાને બે-તબક્કાના પ્રોટોકોલ કહેવામાં આવે છે, ખાસ કરીને વિતરિત ડેટાબેઝ સિસ્ટમોમાં ઉપયોગી છે. આ પ્રોટોકોલ ડેટાને બે તબક્કે પરિવર્તિત કરવાની વિનંતીને અલગ કરે છે: એક કમિટી-વિનંતિના તબક્કા અને કમિટ ફોજ. વિનંતીના તબક્કામાં, ટ્રાન્ઝેક્શન દ્વારા અસરગ્રસ્ત નેટવર્ક પરના તમામ ડીબીએમએસને પુષ્ટિ આપવી જોઈએ કે તેઓ તેને પ્રાપ્ત કરે છે અને વ્યવહાર કરવાની ક્ષમતા ધરાવે છે. એકવાર બધા સંબંધિત ડીબીએમએસથી પુષ્ટિ મળે છે, કમિટ સ્ટેજ પૂર્ણ કરે છે જેમાં ડેટા વાસ્તવમાં સુધારેલ છે.