ડેટાબેસ સંબંધો

ડેટાબેઝ સંબંધો તમામ રીલેશ્નલ ડેટાબેઝનો મુખ્ય આધાર છે

એક ટેબલની વિદેશી કી છે જે બીજા કોષ્ટકની પ્રાથમિક કીનો સંદર્ભ આપે છે ત્યારે બે ડેટાબેઝ ટેબલો વચ્ચે સંબંધ સ્થાપિત થાય છે. આ રીલેશ્નલ ડેટાબેઝ શબ્દના મૂળભૂત ખ્યાલ છે.

સબંધની સ્થાપના માટે વિદેશી કી કેવી રીતે કામ કરે છે

ચાલો પ્રાથમિક અને વિદેશી કીઓની મૂળભૂતોની સમીક્ષા કરીએ. પ્રાથમિક કી ટેબલમાં દરેક રેકોર્ડને અનન્ય રીતે ઓળખે છે તે ઉમેદવાર કીનો એક પ્રકાર છે જે સામાન્ય રીતે કોષ્ટકમાં પ્રથમ કૉલમ છે અને તે અનન્ય છે તેની ખાતરી કરવા માટે ડેટાબેસ દ્વારા આપમેળે જનરેટ કરી શકાય છે.

વિદેશી ચાવી અન્ય ઉમેદવાર કી (પ્રાથમિક ચાવી નથી) નો ઉપયોગ બીજા કોષ્ટકમાં ડેટાને રેકોર્ડ કરવા માટે થાય છે.

ઉદાહરણ તરીકે, આ બે કોષ્ટકો ધ્યાનમાં લો કે કયા શિક્ષક શીખવે છે કે કયા કોર્સ

અહીં, અભ્યાસક્રમો કોષ્ટકની પ્રાથમિક કી છે Course_ID તેની વિદેશી કી Teacher_ID છે:

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

તમે જોઈ શકો છો કે અભ્યાસક્રમમાં વિદેશી કી શિક્ષકોમાં પ્રાથમિક કી સાથે મેળ ખાય છે:

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

આપણે કહી શકીએ કે Teacher_ID વિદેશી કીએ અભ્યાસક્રમો અને શિક્ષકોની કોષ્ટકો વચ્ચે સંબંધ સ્થાપિત કરવા માટે મદદ કરી છે.

ડેટાબેઝ સંબંધોના પ્રકારો

વિદેશી કીઓ, અથવા અન્ય ઉમેદવાર કીઓનો ઉપયોગ કરીને, તમે કોષ્ટકો વચ્ચે ત્રણ પ્રકારના સંબંધો અમલમાં મૂકી શકો છો:

એક-થી-એક : આ પ્રકારની સંબંધ સંબંધની દરેક બાજુ પર ફક્ત એક જ રેકોર્ડની પરવાનગી આપે છે.

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

એક-થી-ઘણા : એક-થી-ઘણા સંબંધો એક કોષ્ટકમાં એક રેકોર્ડને બીજા કોષ્ટકમાં બહુવિધ રેકોર્ડ સાથે સંબંધિત કરવાની પરવાનગી આપે છે.

ગ્રાહક અને ઓર્ડર્સ કોષ્ટકો ધરાવતા ડેટાબેસ સાથેના વ્યવસાયને ધ્યાનમાં લો

એક ગ્રાહક બહુવિધ ઑર્ડર્સ ખરીદી શકે છે, પરંતુ કોઈ એક ઑર્ડરને બહુવિધ ગ્રાહકો સાથે લિંક કરી શકાતું નથી. તેથી ઓર્ડર્સ કોષ્ટકમાં વિદેશી કી હશે જે ગ્રાહક કોષ્ટકની પ્રાથમિક કીથી મેળ ખાય છે, જ્યારે ગ્રાહક ટેબલમાં ઓર્ડર્સ ટેબલ પર કોઈ વિદેશી કી નિર્દેશ નથી.

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

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

ડેટાબેસ સંબંધો શું મહત્વનું છે?

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

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

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

અથવા કદાચ અમે 1NF અમલમાં મૂકવા માટે, ફક્ત કાર્મેન માટે બીજો રેકોર્ડ ઉમેરવાનું નક્કી કર્યું:

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

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

ઉદાહરણ તરીકે, જો કોઈ શિક્ષક પાસે ઘણા બધા રેકોર્ડ છે, તો શું થાય છે જો અમુક ડેટાને સંપાદિત કરવાની જરૂર હોય, પરંતુ ડેટા એડિટિંગ કરનારા વ્યક્તિને એવું નથી લાગતું કે બહુવિધ રેકોર્ડ અસ્તિત્વમાં છે? કોષ્ટકમાં પછી તે ઓળખવા માટે અથવા તેનાથી દૂર રહેવા માટે કોઈ સ્પષ્ટ રસ્તો વગર, તે જ વ્યક્તિ માટે અલગ ડેટા હશે.

આ કોષ્ટકને બે કોષ્ટકો, શિક્ષકો અને અભ્યાસક્રમમાં (ઉપર વિઝ્યુલાઇઝ્ડ) માં ભંગ કરીને, ડેટા વચ્ચે યોગ્ય સંબંધ બનાવે છે અને તેથી માહિતી સુસંગતતા અને સચોટતાની ખાતરી કરવામાં મદદ કરે છે.