ഡാറ്റാബേസ് ബന്ധങ്ങൾ എല്ലാ അനുബന്ധ ഡാറ്റാബേസുകളുടേയും നട്ടെല്ലാണ്
ഒരു പട്ടികയിൽ മറ്റൊരു പട്ടികയുടെ പ്രാഥമിക കീ പരാമർശിക്കുന്ന ഒരു വിദേശ കീ ഉള്ളപ്പോൾ രണ്ട് ഡാറ്റാബേസ് പട്ടികകൾക്കിടയിൽ ഒരു ബന്ധം സ്ഥാപിക്കപ്പെടുന്നു. ഇത് റിലേഷണൽ ഡേറ്റാഡേ എന്ന വാക്കിന്റെ പിന്നിലെ അടിസ്ഥാന ആശയമാണ്.
ബന്ധം സ്ഥാപിക്കാൻ ഒരു വിദേശ കീ പ്രവർത്തിക്കുന്നു
പ്രാഥമിക, വിദേശ കീകളുടെ അടിസ്ഥാനങ്ങളെ അവലോകനം ചെയ്യുക. ഒരു പ്രാഥമിക കീ പട്ടികയിലെ ഓരോ രേഖയും പ്രത്യേകമായി തിരിച്ചറിയുന്നു. സാധാരണയായി ഒരു പട്ടികയിലെ ആദ്യ കോളമാണ് ഇത്, അത് തനതായതാണെന്ന് ഉറപ്പുവരുത്തുന്നതിന് ഡാറ്റാബേസിൽ യാന്ത്രികമായി ജനറേറ്റുചെയ്യാൻ കഴിയുന്ന ഒരു തരം കാൻഡിഡേറ്റ് കീയാണ് .
മറ്റൊരു ടേബിളിൽ ഡാറ്റാ റിക്കോർഡ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന മറ്റൊരു കക്ഷി കീ (പ്രധാന കീ അല്ല) ആണ്.
ഉദാഹരണത്തിന്, ഏത് രണ്ടുമേശകൾ ഏതു ഗതിയിൽ പഠിപ്പിക്കുന്നുവെന്ന് വ്യക്തമാക്കുന്ന ഈ പട്ടികകൾ പരിചിന്തിക്കുക.
കോഴ്സ് ടേബിളിന്റെ പ്രാഥമിക കീ കോഴ്സ്_ഐഡാണ്. അതിന്റെ വിദേശ താക്കോൽ Teacher_ID ആണ്:
കോഴ്സ്_ഐഡി | കോഴ്സിന്റെ പേര് | Teacher_ID |
---|---|---|
കോഴ്സ്_001 | ജീവശാസ്ത്രം | Teacher_001 |
കോഴ്സ്_002 | മഠം | Teacher_001 |
കോഴ്സ്_003 | ഇംഗ്ലീഷ് | Teacher_003 |
കോഴ്സുകളിലെ വിദേശ കീ, അധ്യാപകരുടെ പ്രാഥമിക കീയുമായി സാമ്യമുള്ളതാണെന്ന് നിങ്ങൾക്ക് കാണാം.
Teacher_ID | Teacher_Name |
---|---|
Teacher_001 | കാർമെൻ |
Teacher_002 | വെറോണിക്കാ |
Teacher_003 | ജോർജ് |
ടീച്ചർ-ഐഡി വിദേശ കീ, കോഴ്സുകളും ടീച്ചർ പട്ടികകളും തമ്മിലുള്ള ബന്ധം സ്ഥാപിക്കാൻ സഹായിച്ചെന്ന് നമുക്ക് പറയാം.
ഡാറ്റാബേസ് ബന്ധങ്ങളുടെ തരങ്ങൾ
വിദേശ കീകൾ അല്ലെങ്കിൽ മറ്റ് കാൻഡിഡേറ്റ് കീകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ടേബിളുകൾക്കിടയിൽ മൂന്ന് തരത്തിലുള്ള ബന്ധം നടപ്പിലാക്കാം:
ഒന്ന് മുതൽ : ബന്ധം ഈ വശത്ത് ബന്ധം ഓരോ വശത്തുമുള്ള ഒരു റെക്കോർഡ് മാത്രമേ അനുവദിക്കുന്നുള്ളൂ.
പ്രാഥമിക കീ മറ്റൊരു ടേബിളിൽ ഒന്നുമാത്രം - അല്ലെങ്കിൽ ഒന്നുമില്ല. ഉദാഹരണത്തിന്, ഒരു ദാമ്പത്യത്തിൽ ഓരോ പങ്കാളിക്കും മാത്രമേ മറ്റൊരു പങ്കാളിയെ ഉള്ളൂ. ഇത്തരത്തിലുള്ള ബന്ധം ഒരൊറ്റ പട്ടികയിൽ നടപ്പിലാക്കാൻ കഴിയും, അതുകൊണ്ട് വിദേശ കീ ഉപയോഗിക്കില്ല.
ഒന്നിൽക്കൂടുതൽ: ഒന്നിലധികം റെക്കോർഡുകൾ ഒന്നിലധികം പട്ടികയിൽ ഒരു ടേബിളിൽ ഒരൊറ്റ റെക്കോർഡ് അനുവദിക്കപ്പെടുന്നു.
ഉപഭോക്താക്കൾക്കും ഓർഡർ പട്ടികകൾ ഉള്ള ഒരു ഡാറ്റാബേസ് ഉപയോഗിച്ച് ഒരു ബിസിനസ്സ് പരിഗണിക്കുക.
ഒറ്റ ഉപഭോക്താവിന് ഒന്നിലധികം ഓർഡറുകൾ വാങ്ങാൻ കഴിയും, എന്നാൽ ഒരു ഓർഡർ ഒന്നിലധികം ഉപഭോക്താക്കളുമായി ബന്ധിപ്പിക്കാൻ കഴിയുകയില്ല. അതുകൊണ്ട് കസ്റ്റമറുകൾ ടേബിളിന്റെ പ്രാഥമിക കീയുമായി പൊരുത്തപ്പെടുന്ന ഒരു വിദേശ കീ അടങ്ങിയിരിക്കുന്ന ഓർഡറുകൾ പട്ടികയിൽ ഉണ്ടായിരിക്കണം, എന്നാൽ കസ്റ്റമർമാരുടെ പട്ടികയ്ക്ക് ആജ്ഞാ ടേബിൾ ചൂണ്ടിക്കാണിക്കുന്ന വിദേശ കീ ഒന്നും തന്നെയില്ല.
പലതും പല : ഇത് ഒരു പട്ടികയിൽ പല റെക്കോർഡുകളും ഒരു ടേബിൾ പല റെക്കോർഡുകളിലേക്ക് ലിങ്ക് ചെയ്യാൻ കഴിയും സങ്കീർണ്ണമായ ബന്ധമാണ്. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ ബിസിനസ്സ് ഒരുപക്ഷേ കസ്റ്റമർമാർക്കും ഓർഡറുകൾ പട്ടികകൾക്കും ആവശ്യമായി വന്നേക്കാം, പക്ഷേ ഒരു ഉൽപ്പന്ന പട്ടികയും ആവശ്യമാണ്.
വീണ്ടും, ഉപഭോക്താവും ഉത്തരവുകളും പട്ടിക തമ്മിലുള്ള ബന്ധം പലർക്കും, എന്നാൽ ഓർഡറുകൾ ഉൽപ്പന്നങ്ങൾ പട്ടിക തമ്മിലുള്ള ബന്ധം പരിഗണിക്കുക. ഒരു ഓർഡറിൽ ഒന്നിലധികം ഉൽപ്പന്നങ്ങൾ അടങ്ങിയിരിക്കാം, ഒന്നിലധികം ഓർഡറുകളിലേക്ക് ഒരു ഉൽപ്പന്നം ബന്ധിപ്പിക്കാൻ കഴിയും: പല ഉപയോക്താക്കൾക്കും ഒരേ ഉൽപ്പന്നങ്ങളിൽ ചിലത് അടങ്ങിയ ഒരു ഓർഡർ സമർപ്പിക്കാനിടയുണ്ട്. ഈ തരത്തിലുള്ള ബന്ധത്തിന് കുറഞ്ഞത് മൂന്നു ടേബിളുകളെങ്കിലും ആവശ്യമാണ്.
ഡാറ്റാബേസ് ബന്ധം എന്താണ്?
ഡാറ്റാബേസ് ടേബിളുകളിൽ സ്ഥിരതയാർന്ന ബന്ധം സ്ഥാപിച്ചാൽ ഡേറ്റാ ഇന്റഗ്രിറ്റി ഉറപ്പാക്കാൻ സഹായിക്കും, ഡേറ്റാബേസ് നോർമലൈസേഷനു സംഭാവന ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഞങ്ങൾ ഒരു വിദേശ കീ ഉപയോഗിച്ച് ഏതെങ്കിലും പട്ടികകൾ ലിങ്ക് ചെയ്തില്ലെങ്കിൽ പകരം കോഴ്സിലോ ടീച്ചർമാരിലെ ടേബിളിലോ ഉള്ള ഡാറ്റാ കൂട്ടിച്ചേർക്കാം.
Teacher_ID | Teacher_Name | കോഴ്സ് |
---|---|---|
Teacher_001 | കാർമെൻ | ജീവശാസ്ത്രം, മഠം |
Teacher_002 | വെറോണിക്കാ | മഠം |
Teacher_003 | ജോർജ് | ഇംഗ്ലീഷ് |
ഈ ഡിസൈൻ വളച്ചൊടിക്കലും ഡാറ്റാബേസ് നോർമലൈസേഷന്റെ ആദ്യ തത്ത്വം, ആദ്യത്തെ സാധാരണ ഫോം (1NF) ലംഘിക്കുന്നു, ഓരോ പട്ടിക സെല്ലിലും ഒരു ഒറ്റ വിഭജന ഡാറ്റ അടങ്ങിയിരിക്കണം.
1NF പ്രാബല്യത്തിൽ വരുത്താനായി കാർമെൻറെ രണ്ടാമത്തെ റെക്കോർഡ് ഞങ്ങൾ ചേർക്കാം.
Teacher_ID | Teacher_Name | കോഴ്സ് |
---|---|---|
Teacher_001 | കാർമെൻ | ജീവശാസ്ത്രം |
Teacher_001 | കാർമെൻ | മഠം |
Teacher_002 | വെറോണിക്കാ | മഠം |
Teacher_003 | ജോർജ് | ഇംഗ്ലീഷ് |
ഇത് ഇപ്പോഴും ദുർബലമായ രൂപകൽപ്പനയാണ്, അനാവശ്യമായ തനിപ്പകർപ്പ് അവതരിപ്പിക്കുകയും ഡാറ്റ രേഖപ്പെടുത്തൽ ലംഘനങ്ങൾ എന്ന് വിളിക്കുകയും ചെയ്യുന്നു, ഇത് അസ്ഥിരമായ ഡാറ്റയ്ക്ക് സംഭാവന ചെയ്യാൻ കഴിയുമെന്നാണ്.
ഉദാഹരണത്തിന്, ഒരു അധ്യാപകരിൽ ഒന്നിലധികം രേഖകളുണ്ടെങ്കിൽ, ചില ഡാറ്റകൾ എഡിറ്റുചെയ്യേണ്ടതുണ്ടെങ്കിൽ, ഡാറ്റാ എഡിറ്റിങ് നടത്തുന്ന വ്യക്തിക്ക് ഒന്നിലധികം രേഖകൾ ഉണ്ടായിരിക്കില്ലേ? ആ പട്ടികയിൽ ഒരു വ്യക്തിക്ക് മറ്റൊരു വ്യക്തിയെ തിരിച്ചറിയാനും അല്ലെങ്കിൽ ഒഴിവാക്കാനും വ്യക്തമായ ഡാറ്റ ഇല്ല.
ഈ ടേബിളിൽ രണ്ട് ടേബിളുകളിൽ ബ്രെയിനിംഗ്, അധ്യാപകർ, കോഴ്സുകൾ (മുകളിൽ ദൃശ്യവൽക്കരിച്ചത് പോലെ), ഡാറ്റാ തമ്മിലുള്ള ശരിയായ ബന്ധം സൃഷ്ടിക്കുന്നു, അതിനാൽ ഡാറ്റ സ്ഥിരത ഉറപ്പുവരുത്താനും കൃത്യത ഉറപ്പുവരുത്താനും കഴിയും.