ડેટાબેઝમાં એક-થી-ઘણા સંબંધો

કોષ્ટક A માં દરેક રેકોર્ડ કોષ્ટક B માં ઘણા કડી થયેલ રેકોર્ડ હોઈ શકે છે, પરંતુ કોષ્ટક B માં દરેક રેકોર્ડ કોષ્ટક એ માં એક જ અનુરૂપ રેકોર્ડ હોઈ શકે છે જ્યારે ડેટાબેઝ એક થી ઘણા સંબંધો થાય છે. એક થી ઘણા સંબંધ ડેટાબેઝ એ સૌથી સામાન્ય રીલેશ્નલ ડેટાબેઝ ડિઝાઇન છે અને તે સારી ડિઝાઇનના હૃદય પર છે.

શિક્ષક અને તેઓ જે અભ્યાસક્રમો શીખવે છે તે વચ્ચેના સંબંધને ધ્યાનમાં લો. એક શિક્ષક બહુવિધ અભ્યાસક્રમો શીખવી શકે છે, પરંતુ કોર્સ સાથે શિક્ષક સાથે સમાન સંબંધ ન હોત.

તેથી, શિક્ષકોની ટેબલમાં પ્રત્યેક રેકોર્ડ માટે, અભ્યાસક્રમોના કોષ્ટકમાં ઘણાં રેકોર્ડ હોઈ શકે છે. આ એક-થી-ઘણા સંબંધ છે: બહુવિધ અભ્યાસક્રમો માટે એક શિક્ષક.

એક-થી-ઘણા સંબંધો શા માટે સ્થાપિત કરવો તે મહત્વનું છે

એક-થી-ઘણા સંબંધોનું પ્રતિનિધિત્વ કરવા માટે, તમારે ઓછામાં ઓછા બે કોષ્ટકોની જરૂર છે ચાલો જોઈએ શા માટે

કદાચ આપણે એક શિક્ષક ટેબલ બનાવ્યું જેમાં અમે નામ અને શીખવેલ અભ્યાસક્રમો રેકોર્ડ કરવા માગતા હતા. અમે તેને આ રીતે ડિઝાઇન કરી શકીએ છીએ:

શિક્ષકો અને અભ્યાસક્રમો
Teacher_ID Teacher_Name અભ્યાસક્રમ
શિક્ષક_001 કાર્મેન બાયોલોજી
શિક્ષક_002 વેરોનિકા મઠ
શિક્ષક_003 જોર્જ અંગ્રેજી

જો કાર્મેન બે અથવા વધુ અભ્યાસક્રમો શીખવે તો શું? આ ડિઝાઇન સાથે અમારી પાસે બે વિકલ્પો છે અમે તેને કાર્મેનના હાલના રેકોર્ડમાં ઉમેરી શકીએ, જેમ કે:

શિક્ષકો અને અભ્યાસક્રમો
Teacher_ID શિક્ષક _ નામ અભ્યાસક્રમ
શિક્ષક_001 કાર્મેન બાયોલોજી, મઠ
શિક્ષક_002 વેરોનિકા મઠ
શિક્ષક_003 જોર્જ અંગ્રેજી

ઉપરની ડિઝાઇન, જોકે, આગ્રહી છે અને ડેટાને સામેલ કરવા, સંપાદિત કરવા અથવા કાઢી નાખવાનો પ્રયાસ કરતી વખતે પછીથી સમસ્યાઓનો પરિણમે છે.

તે ડેટા શોધવાનું મુશ્કેલ બનાવે છે. આ ડિઝાઇન ડેટાબેસ નોર્મલાઇઝેશનના પ્રથમ સિદ્ધાંતનું ઉલ્લંઘન કરે છે, ફર્સ્ટ નોર્મલ ફોર્મ (1 એનએફ) , જે દર્શાવે છે કે દરેક કોષ્ટક કોષમાં એક, સ્વતંત્ર ડેટાનો ભાગ હોવો જોઈએ.

કાર્મેન માટે બીજો રેકોર્ડ ઉમેરવા માટે બીજો ડિઝાઇન વિકલ્પ કદાચ:

શિક્ષકો અને અભ્યાસક્રમો
શિક્ષક _ID શિક્ષક _ નામ અભ્યાસક્રમ
શિક્ષક_001 કાર્મેન બાયોલોજી
શિક્ષક_001 કાર્મેન મઠ
શિક્ષક_002 વેરોનિકા મઠ
શિક્ષક_003 જોર્જ અંગ્રેજી

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

એક-થી-ઘણા સંબંધો સાથે ડેટાબેઝ કેવી રીતે ડિઝાઇન કરવું

શિક્ષકો અને અભ્યાસક્રમોના કોષ્ટકમાં એક-થી-ઘણા સંબંધોનો અમલ કરવા માટે, અમે કોષ્ટકોને બે ભાગમાં ભંગ કરીએ છીએ અને તેમને વિદેશી કીનો ઉપયોગ કરીને લિંક કરીએ છીએ.

અહીં, અમે શિક્ષકો ટેબલમાં કોર્સ કૉલમ દૂર કર્યા છે:

શિક્ષકો
શિક્ષક _ID શિક્ષક _ નામ
શિક્ષક_001 કાર્મેન
શિક્ષક_002 વેરોનિકા
શિક્ષક_003 જોર્જ

અને અહીં અભ્યાસક્રમો કોષ્ટક છે. નોંધ કરો કે તેની વિદેશી કી, Teacher_ID, શિક્ષક ટેબલમાં શિક્ષકને કોર્સ કરે છે:

અભ્યાસક્રમો
Course_ID અભ્યાસક્રમનું નામ Teacher_ID
અભ્યાસક્રમ_001 બાયોલોજી શિક્ષક_001
કોર્સ_002 મઠ શિક્ષક_001
કોર્સ_003 અંગ્રેજી શિક્ષક_003

અમે વિદેશી કીનો ઉપયોગ કરીને શિક્ષકો અને અભ્યાસક્રમોના કોષ્ટક વચ્ચે સંબંધ વિકસાવી છે.

આ અમને કહે છે બાયોલોજી અને મઠ બંને કાર્મેન દ્વારા શીખવવામાં આવે છે અને તે જ્યોર્જ અંગ્રેજી શીખવે છે.

અમે જોઈ શકીએ છીએ કે કેવી રીતે આ ડિઝાઇન કોઈપણ સંભવિત બિનજરૂરી કર્મચારીઓ ટાળે છે, વ્યક્તિગત શિક્ષકોને બહુવિધ અભ્યાસક્રમો શીખવવાની મંજૂરી આપે છે અને એક-થી-ઘણા સંબંધો અમલમાં મૂકે છે

ડેટાબેસેસ એક-થી-એક સંબંધ અને ઘણી-થી-ઘણા સંબંધોનો અમલ પણ કરી શકે છે