ഡാറ്റാബേസുകളിലെ ഏറ്റവും പ്രധാനപ്പെട്ട ആശയങ്ങളിൽ ഒന്നാണ് ഡാറ്റാബേസ് പട്ടികകൾ തമ്മിലുള്ള ബന്ധം. ഈ ടേബിളുകളിൽ ഒന്നിലധികം പട്ടികകളിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയുമായി ബന്ധിപ്പിച്ച് ഒരു കാര്യക്ഷമമായ രീതിയിൽ അത് വീണ്ടെടുക്കുന്നതിനുള്ള ഒരു സംവിധാനമാണ് ഇത്. രണ്ട് ടേബിളുകളിൽ ഒരു ലിങ്ക് സൃഷ്ടിക്കുന്നതിനായി, മറ്റൊരു പട്ടികയിൽ ഒരു നിരയെ സൂചിപ്പിക്കുന്ന ഒരു ടേബിളിൽ ഒരു വിദേശ കീ നിങ്ങൾ വ്യക്തമാക്കണം.
ഡാറ്റാബേസ് പട്ടികകളും ബന്ധങ്ങളും
മൈക്രോസോഫ്റ്റ് എക്സെൽ പോലുള്ള സ്പ്രെഡ്ഷീറ്റ് പ്രോഗ്രാമിൽ ഉപയോഗിച്ചിട്ടിരിക്കുന്നതിന് സമാനമായ ഒരു ടേബിളീസ് ഡാറ്റാബേസുകളാണെന്നു് നിങ്ങൾക്കു് അറിയാം. സത്യത്തിൽ, നിങ്ങൾക്ക് ഒരു Excel സ്പ്രെഡ്ഷീറ്റ് ഡാറ്റാബേസിലേക്ക് പരിവർത്തനം ചെയ്യാനും കഴിയും. സ്പ്രെഡ്ഷീറ്റുകളിൽ നിന്നും ഡേറ്റാബെയിസുകൾ വേർപിരിഞ്ഞാൽ, അത് ടേബിളുകൾക്കിടയിൽ ശക്തമായ ബന്ധം കെട്ടിപ്പടുക്കുമ്പോൾ.
ഉദാഹരണം, ഒരു മാനേജ്മെൻറ് കൈകാര്യം ചെയ്യുന്ന ഒരു ഡേറ്റാബേസ് മാനവ വിഭവ വിവരം അറിയാൻ. കമ്പനിയുടെ ജീവനക്കാരുടെ ഓരോ അംഗത്തിനും താഴെപറയുന്ന വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ജീവനക്കാരുടെ പട്ടികയിൽ ആ ഡാറ്റാബേസ് ഉണ്ടായിരിക്കാം:
- തൊഴിലാളിയുടെ തിരിച്ചറിയല് രേഖ
- പേരിന്റെ ആദ്യഭാഗം
- പേരിന്റെ അവസാന ഭാഗം
- ഓഫീസിലെ ഫോൺ
- വീട്ടിലെ ഫോണ്
- PositionID
ഈ ഉദാഹരണത്തിൽ, ജീവനക്കാരുടെ ഐഡി ഡാറ്റാബേസിലേക്ക് ചേർക്കപ്പെടുമ്പോൾ ഓരോ ജീവനക്കാരനും നിയോഗിച്ചിട്ടുള്ള ഒരു അദ്വിതീയ ജനിതക സംഖ്യയാണ്. കമ്പനിയുടെ ജീവനക്കാരന്റെ നിലയെ സൂചിപ്പിക്കുന്നതിനുള്ള ഒരു തൊഴിൽ കോഡാണ് പൊസിഷൻ ഐഡി. ഈ സ്കീമില് ഒരു ജീവനക്കാരന് ഒരു നില മാത്രമേ ഉള്ളൂ, പക്ഷേ ഒന്നിലധികം (അല്ല) ജീവനക്കാര് ഓരോ നിലയും പൂരിപ്പിക്കാം. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ഒരു "കാഷിയർ" സ്ഥാനമുള്ള നൂറുകണക്കിന് ജീവനക്കാർ ഉണ്ടായിരിക്കാം.
ഓരോ സ്ഥാനത്തേയും കുറിച്ചുള്ള താഴെക്കാണുന്ന വിവരങ്ങളടങ്ങിയ പട്ടികകളിലെ പട്ടികയും ഡാറ്റാബേസിൽ ഉണ്ടായിരിക്കാം:
- PositionID
- ശീർഷകം
- JobLevel
- SkillCategory
- സ്ഥലം
ഈ ടേബിളിൽ സ്ഥാന ഐഡി ഫീൽഡ് എംപ്ലോയീസ് പട്ടികയിലെ എംപ്ലോയീസ് ഐഡി ഫീൽഡിനു സമാനമാണ് - ഡാറ്റാബേസിലേക്ക് ഒരു സ്ഥാനം ചേർക്കുമ്പോൾ സൃഷ്ടിക്കുന്ന ഒരു അദ്വിതീയ ഉദ്ദ്യേശമാണ് ഇത്.
ജീവനക്കാരുടെ പട്ടികയിൽ നിന്നും ഡാറ്റാബേസിൽ നിന്നും പുറത്തെടുക്കുമ്പോൾ ഓരോ വ്യക്തിയുടെയും പേര്, പേര് എന്നിവ ആവശ്യപ്പെടാൻ സ്വാഭാവികമായിരിക്കും. എന്നിരുന്നാലും, ഈ വിവരങ്ങൾ ഒന്നിലധികം ഡാറ്റാബേസ് പട്ടികകളിൽ സംഭരിച്ചിരിക്കുന്നതിനാൽ, പട്ടികകൾക്കിടയിൽ നിലവിലുള്ള ബന്ധം ആവശ്യമുള്ള ഒരു JOIN അന്വേഷണം ഉപയോഗിച്ച് മാത്രമേ അത് വീണ്ടെടുക്കാൻ കഴിയൂ.
പട്ടികകളുടെ ഘടനയെ നോക്കുമ്പോൾ, ബന്ധം വ്യക്തമാക്കുന്നത് ഫീൽഡ് വ്യക്തമാക്കാം - സ്ഥാനം ഐഡി ഫീൽഡ്. ഓരോ ജീവനക്കാർക്കും ഒരു സ്ഥാനമേയുള്ളൂ, സ്ഥാനസൂചികയുടെ അനുബന്ധ എൻട്രിയിൽ നിന്ന് സ്ഥാന ഐഡി ഉൾപ്പെടെയുള്ള സ്ഥിതി ആ സ്ഥാനം തിരിച്ചറിയുന്നു. പോസിറ്റീസ് പട്ടികയ്ക്കുള്ള പ്രാഥമിക കീ ആയിരിക്കുന്നതിനു പുറമേ, ഈ ഉദാഹരണത്തിൽ, സ്ഥാന ഐഡി ഫീൽഡ് ജീവനക്കാരുടെ പട്ടികയിൽ നിന്നും സ്ഥാനങ്ങളുടെ പട്ടികയിലേക്ക് ഒരു വിദേശ കീ കൂടിയാണ്. ഒന്നിലധികം പട്ടികകളിൽ നിന്ന് വിവരങ്ങൾ പരസ്പരം സംവദിക്കാനും ഡാറ്റാബേസിൽ എന്തെങ്കിലും മാറ്റങ്ങളോ കൂട്ടിച്ചേർക്കലുകളോ റെഫറൻഷ്യൽ ഇൻറഗ്രിറ്റി നടപ്പിലാക്കാൻ കഴിയുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക.
വിദേശ കീ നിങ്ങൾക്ക് തിരിച്ചറിഞ്ഞുകഴിഞ്ഞാൽ, താഴെ കൊടുത്തിരിക്കുന്ന അന്വേഷണം ഉപയോഗിച്ച് നിങ്ങൾക്ക് മുന്നോട്ട് പോകാനും ഡാറ്റാബേസിൽ നിന്ന് ആവശ്യമുള്ള വിവരങ്ങൾ എടുക്കാനും കഴിയും:
SQL Server ൽ വിദേശ കീകൾ സൃഷ്ടിക്കുന്നു
സാങ്കേതികമായി, മുകളിലുള്ള അന്വേഷണങ്ങൾ നടത്താൻ നിങ്ങൾക്ക് സ്പഷ്ടമായ ബന്ധം നിർവ്വചിക്കേണ്ട ആവശ്യമില്ല. എന്നിരുന്നാലും, ഒരു വിദേശ കീ നിയന്ത്രണം ഉപയോഗിച്ചുളള ബന്ധം നിങ്ങൾ വ്യക്തമായി നിർവചിക്കുന്നെങ്കിൽ, ഡാറ്റാബേസ് നിങ്ങൾക്ക് ചില വീട്ടുപകരണങ്ങളെ നിർവഹിക്കാൻ കഴിയും:
- നിങ്ങൾ എംപ്ലോയീസ് ടേബിളിന് ഒരു പുതിയ റെക്കോർഡ് ചേർക്കുമ്പോൾ, നിങ്ങൾ എന്റർ ചെയ്യുന്ന സ്ഥാന ഐഡി പോസിഷീസ് പട്ടികയിൽ സാധുതയുള്ള ഒരു പ്രാഥമിക കീ ആണെന്ന് ഡാറ്റാബേസ് ഉറപ്പുവരുത്തും.
- പോസിഷൻ പട്ടികയിൽ നിങ്ങൾ ഒരു സ്ഥാനം ഐഡി മാറ്റുകയാണെങ്കിൽ, സ്ഥിരത നിലനിർത്താൻ ജീവനക്കാരുടെ പട്ടികയിൽ ആവശ്യമായ അപ്ഡേറ്റുകൾ ഡാറ്റാബേസിന് സാധിക്കും.
- ഡാറ്റാ പട്ടികയിൽ നിന്ന് ഒരു സ്ഥാനത്തിന്റെ നീക്കം ചെയ്തതിന്റെ ഫലമായി, ബന്ധപ്പെട്ട ജീവനക്കാർക്ക് ഒരു ജോലി ഇല്ലാതാക്കാൻ അല്ലെങ്കിൽ എല്ലാ ബന്ധപ്പെട്ട ജോലിക്കാരെ ഇല്ലാതാക്കുന്നതും ഇല്ലാതാക്കുന്നതിലൂടെയും ഡേറ്റാബേസ് സംരക്ഷിക്കാവുന്നതാണ്.
ഇവിടെ നിങ്ങൾ എങ്ങനെയാണ് SQL സെർവറിൽ വിദേശ കീ സൃഷ്ടിക്കപ്പെടുന്നത്:
ALTER TABLE ജീവനക്കാർ ഫോറിൻ കീയ് (സ്ഥാനംഐഡി) റഫറൻസ് പദങ്ങൾ (PositionID) ചേർക്കുകനിങ്ങൾ ഒരു പട്ടിക സൃഷ്ടിക്കുമ്പോൾ ഒരു വിദേശ കീ സൃഷ്ടിക്കാം:
വിദേശജോലി റഫറൻസസ് സ്ഥാനങ്ങൾ (PositionID)വിദേശ കീ കോളം നിരയുടെ നിർവചനം അവസാനം വരെ.