સામાન્યીકરણની ખાતરી કરવા માટે ટ્રાન્ઝિટિવ ડિપેન્ડન્સીઝ ટાળો
ડેટાબેઝમાં સંક્રમણશીલ અવલંબન તે જ કોષ્ટકમાંના મૂલ્યો વચ્ચે પરોક્ષ સંબંધ છે જે કાર્યલક્ષી નિર્ભરતાને કારણ આપે છે. થર્ડ નોર્મલ ફોર્મ (3 એનએફ) ના નોર્મલાઇઝેશન સ્ટાન્ડર્ડને હાંસલ કરવા માટે, તમારે કોઈપણ સંક્રમણશીલ અવલંબનને દૂર કરવું આવશ્યક છે.
તેની પ્રકૃતિ દ્વારા, એક સંક્રમણશીલતાને ત્રણ અથવા વધુ વિશેષતાઓ (અથવા ડેટાબેસ સ્તંભો) ની જરૂર છે જેની તેમની વચ્ચે વિધેયાત્મક નિર્ભરતા હોય છે, જેનો અર્થ છે કે કોષ્ટકમાં કૉલમ એ મધ્યવર્તી કૉલમ સી દ્વારા કૉલમ બી પર આધાર રાખે છે.
ચાલો જોઈએ કે આ કેવી રીતે કાર્ય કરી શકે.
ટ્રાન્ઝિટિવ ડીપેન્ડન્સી ઉદાહરણ
લેખકો
લેખક_આઇડી | લેખક | પુસ્તક | લેખક- રાષ્ટ્રીયતા |
---|---|---|---|
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | Ender's ગેમ | યુનાઈટેડ સ્ટેટ્સ |
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | Ender's ગેમ | યુનાઈટેડ સ્ટેટ્સ |
Auth_002 | માર્ગારેટ એટવુડ | હેન્ડમાઈડ ટેલ | કેનેડા |
ઉપરોક્ત AUTHORS નાં ઉદાહરણમાં:
- ચોપડે → લેખક : અહીં, બુક એટ્રીબ્યુટ લેખક એટ્રીબ્યુટ નક્કી કરે છે. જો તમે પુસ્તકનું નામ જાણો છો, તો તમે લેખકનું નામ શીખી શકો છો. જો કે, લેખક ચોપડે નક્કી કરતું નથી, કારણ કે લેખક અનેક પુસ્તકો લખી શકે છે. ઉદાહરણ તરીકે, માત્ર કારણ કે આપણે લેખકનું નામ ઓર્સન સ્કોટ કાર્ડ જાણતા છીએ, અમને હજી પણ પુસ્તકનું નામ ખબર નથી.
- લેખક → લેખક_રાષ્ટ્રીયસંસ્થા : તેવી જ રીતે, લેખકની વિશેષતા લેખક- રાષ્ટ્રીયતા નક્કી કરે છે, પરંતુ બીજી કોઈ રીતે નહીં; માત્ર કારણ કે આપણે જાણીએ છીએ કે રાષ્ટ્રીયતા નો અર્થ એ નથી કે અમે લેખકને નિર્ધારિત કરી શકીએ.
પરંતુ આ કોષ્ટક સંક્રમણશીલતાને પરિચય આપે છે:
- Book → Author_Nationality: જો આપણે પુસ્તકનું નામ જાણીએ છીએ, તો આપણે લેખક સ્તંભ દ્વારા રાષ્ટ્રીયતા નક્કી કરી શકીએ છીએ.
ટ્રાન્ઝિટિવ ડિપેન્ડેન્સીઝથી દૂર રહેવું
થર્ડ નોર્મલ ફોર્મને સુનિશ્ચિત કરવા માટે, ચાલો સંક્રમણશીલતાને દૂર કરીએ.
અમે લેખકો ટેબલમાંથી બુક કૉલમને દૂર કરીને અને અલગ બુક્સ ટેબલ બનાવીને શરૂ કરી શકીએ છીએ:
પુસ્તકો
Book_ID | પુસ્તક | લેખક_આઇડી |
---|---|---|
Book_001 | Ender's ગેમ | Auth_001 |
Book_001 | મન બાળકો | Auth_001 |
Book_002 | હેન્ડમાઈડ ટેલ | Auth_002 |
લેખકો
લેખક_આઇડી | લેખક | લેખક- રાષ્ટ્રીયતા |
---|---|---|
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | યુનાઈટેડ સ્ટેટ્સ |
Auth_002 | માર્ગારેટ એટવુડ | કેનેડા |
શું આ તેને ઠીક કર્યું? ચાલો હવે અમારી આધારભૂતપણાઓનું પરીક્ષણ કરીએ:
પુસ્તકો કોષ્ટક :
- Book_ID → પુસ્તક: બુક બુક_આઇડી પર આધારિત છે
- આ કોષ્ટકમાં કોઈ અન્ય આધારભૂતતાઓ અસ્તિત્વમાં નથી, તેથી અમે ઠીક છીએ. નોંધ કરો કે વિદેશી કી લેખક_આઇડી આ કોષ્ટકને તેની પ્રાથમિક કી લેખક_આઇડી દ્વારા AUTHORS કોષ્ટકથી લિંક કરે છે . અમે સંકલનશીલ અવલંબન ટાળવા સંબંધ બાંધ્યો છે, સંબંધી ડેટાબેઝની મુખ્ય રચના.
ઑથર્સ કોષ્ટક :
- Author_ID → લેખક: લેખક લેખક_આઇડી પર આધારિત છે .
- લેખક → લેખક_સંસ્થા: રાષ્ટ્રીયતા લેખક દ્વારા નક્કી કરી શકાય છે.
- Author_ID → Author_Nationality: લેખકત્વ દ્વારા લેખકએડીઆઇડી દ્વારા રાષ્ટ્રીયતા નક્કી કરી શકાય છે. અમારી પાસે હજુ પણ સંક્રમણશીલતા છે.
આ ડેટાને સામાન્ય બનાવવા માટે અમને ત્રીજા કોષ્ટક ઉમેરવાની જરૂર છે:
દેશો
દેશ_આઇડી | દેશ |
---|---|
કાઉંજી -1001 | યુનાઈટેડ સ્ટેટ્સ |
કાઉન્ટ_002 | કેનેડા |
લેખકો
લેખક_આઇડી | લેખક | દેશ_આઇડી |
---|---|---|
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | કાઉંજી -1001 |
Auth_002 | માર્ગારેટ એટવુડ | કાઉન્ટ_002 |
હવે આપણી પાસે ત્રણ કોષ્ટકો છે, જે કોષ્ટકો વચ્ચે લિંક કરવા માટે વિદેશી કીનો ઉપયોગ કરે છે:
- બુક ટેબલની વિદેશી કી લેખક_ID એથિયર્સ ટેબલમાં લેખકને એક પુસ્તક સાથે જોડાય છે.
- AUTHORS કોષ્ટકની વિદેશી કી દેશ_ID COUNTRIES કોષ્ટકમાં એક દેશના લેખકને લિંક કરે છે.
- COUNTRIES કોષ્ટકમાં કોઈ વિદેશી કી નથી કારણ કે આ ડિઝાઇનમાં બીજા કોષ્ટકથી લિંક કરવાની જરૂર નથી.
શા માટે ટ્રાન્ઝિશનલ ડિપેન્ડન્સીસ ખરાબ ડેટાબેઝ ડિઝાઇન છે
3 એનએફની ખાતરી કરવા માટે ટ્રાન્ઝીટીવ ડિપેન્ડન્સી ટાળવાના મૂલ્ય શું છે? ચાલો ફરીથી અમારી પ્રથમ કોષ્ટકને ધ્યાનમાં લઈએ અને તે બનાવેલ મુદ્દાઓ જુઓ:
લેખકો
લેખક_આઇડી | લેખક | પુસ્તક | લેખક- રાષ્ટ્રીયતા |
---|---|---|---|
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | Ender's ગેમ | યુનાઈટેડ સ્ટેટ્સ |
Auth_001 | ઓર્સન સ્કોટ કાર્ડ | મન બાળકો | યુનાઈટેડ સ્ટેટ્સ |
Auth_002 | માર્ગારેટ એટવુડ | હેન્ડમાઈડ ટેલ | કેનેડા |
આ પ્રકારની ડિઝાઇન માહિતીના ફેરફારો અને અસાતત્યતામાં ફાળો આપી શકે છે, ઉદાહરણ તરીકે:
- જો તમે "ચિલ્ડ્રન ઓફ ધ માઇન્ડ" અને "એંડર્ન્સ ગેમ" ના બે પુસ્તકો કાઢી નાંખ્યા છો, તો તમે લેખક "ઓરોન સ્કોટ કાર્ડ" અને ડેટાબેઝમાંથી સંપૂર્ણપણે તેની રાષ્ટ્રીયતા કાઢી નાખો છો.
- જ્યાં સુધી તમે પુસ્તક ઉમેરશો નહીં ત્યાં સુધી તમે ડેટાબેસમાં નવો લેખક ઉમેરી શકતા નથી; તો શું લેખક હજી સુધી અપ્રકાશિત છે અથવા તમે તેને લખેલું પુસ્તકનું નામ જાણતા નથી?
- જો "ઑરોન સ્કોટ કાર્ડ" ના નાગરિકત્વ બદલ્યો હોય, તો તમારે તે બધા રેકોર્ડ્સમાં તેને બદલવું પડશે જેમાં તે દેખાય છે. એક જ લેખક સાથે બહુવિધ રેકોર્ડ્સ લેવાથી અચોક્કસ ડેટા બની શકે છે: ડેટા એન્ટ્રી વ્યક્તિને ખબર હોતી નથી કે તેના માટે બહુવિધ રેકોર્ડ છે અને ડેટાને ફક્ત એક રેકોર્ડમાં બદલે છે?
- તમે "હન્ડમાડ્સ ટેલ" જેવા પુસ્તકને સંપૂર્ણપણે હટાવી વગર પણ એક પુસ્તક કાઢી શકતા નથી.
આ માત્ર કેટલાક કારણો છે કે શા માટે સામાન્યીકરણ , અને સંક્રમણશીલતાને અવગણવાની, ડેટાને સુરક્ષિત કરવા અને સુસંગતતાને નિર્ધારિત કરવાનું છે.