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