ഒരു സാധാരണ ഫങ്ഷണൽ ഡിപൻഡൻസി, ഡാറ്റാബേസ് നോർമലൈസേഷന്റെ അവസ്ഥയാണ്, അത് സാധാരണ രീതിയിലുള്ള സാധാരണ രീതി (2NF) . ചുരുക്കത്തിൽ, ഇത് അർത്ഥമാക്കുന്നത് ആദ്യത്തെ സാധാരണ ഫോം (1NF) എന്നതിന്റെ ആവശ്യകതകളാണ് എന്നാണ്, കൂടാതെ എല്ലാ കീ ഇതര ആട്രിബ്യൂട്ടുകളും പ്രാഥമിക കീയിൽ പൂർണ്ണമായി പ്രവർത്തിക്കുന്നു.
ഇത് ശബ്ദമുണ്ടാക്കുന്നതുപോലെ സങ്കീർണമല്ല. കൂടുതൽ വിശദമായി ഇത് നോക്കാം.
ആദ്യത്തെ സാധാരണ ഫോമിന്റെ സംഗ്രഹം
ഒരു ഡാറ്റാബേസ് പൂർണ്ണമായി പ്രവർത്തിക്കാനാകുന്നതിനു മുൻപായി, ആദ്യം അത് ആദ്യത്തെ സാധാരണ ഫോമിൽ അനുശാസിക്കണം.
ഇതിനർത്ഥം ഓരോ ആട്രിബ്യൂട്ടിനും ഒരൊറ്റ ആറ്റോമിക മൂല്യം ഉണ്ടായിരിക്കണം.
ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന പട്ടിക 1NF മായി യോജിക്കുന്നില്ല, കാരണം ജോലിക്കാരൻ ടീന രണ്ട് സെന്ററുകളുമായി ബന്ധപ്പെടുത്തിയിരിക്കുന്നു, അവ രണ്ടും ഒരു സെല്ലിൽ:
ജീവനക്കാരൻ | സ്ഥലം |
---|---|
ജോൺ | ലോസ് ഏഞ്ചലസ് |
ടിന | ലോസ് ആഞ്ചലസ്, ഷിക്കാഗോ |
ഈ ഡിസൈൻ അനുവദിക്കുന്നത് ഡാറ്റ അപ്ഡേറ്റുകൾ അല്ലെങ്കിൽ എൻട്രികളെ പ്രതികൂലമായി ബാധിക്കും. 1NF അനുസരിക്കൽ ഉറപ്പാക്കാൻ, പട്ടികയെ പുനഃക്രമീകരിക്കുക, അതിലൂടെ എല്ലാ ആട്രിബ്യൂട്ടുകളും (അല്ലെങ്കിൽ നിര സെല്ലുകൾ) ഒരൊറ്റ മൂല്യം പിടിക്കുക:
ജീവനക്കാരൻ | സ്ഥലം |
---|---|
ജോൺ | ലോസ് ഏഞ്ചലസ് |
ടിന | ലോസ് ഏഞ്ചലസ് |
ടിന | ചിക്കാഗോ |
എന്നാൽ ഡാറ്റയുമായി ബന്ധപ്പെട്ട് പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ 1NF ഇപ്പോഴും പോരാ പാടില്ല.
പൂർണ്ണ ആശ്രയം ഉറപ്പാക്കാൻ 2 എൻഎഫുകൾ പ്രവർത്തിക്കുന്നു
പൂർണ്ണമായി ആശ്രയിച്ചുള്ള, എല്ലാ നോൺ-കാൻഡിഡേറ്റ് കീ ആട്രിബ്യൂട്ടുകൾ പ്രാഥമിക കീയെ ആശ്രയിച്ചിരിക്കും. (ഒരു കാൻഡിഡേറ്റ് കീ ആട്രിബ്യൂട്ട് ഒരു ഡാറ്റാ റിക്കോർഡ് തനതായി തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്ന കീ (ഉദാഹരണത്തിന്, ഒരു പ്രാഥമിക അല്ലെങ്കിൽ വിദേശ കീ) ഓർമ്മിക്കുക.
ആട്രിബ്യൂട്ടുകൾ തമ്മിലുള്ള ആശ്രിത ബന്ധങ്ങളെ വിവരിക്കാൻ ഒരു ഡാറ്റാബേസ് ഡിസൈനർമാർ ഒരു വിജ്ഞാനം ഉപയോഗിക്കുന്നു:
ആട്രിബ്യൂട്ട് എ യുടെ ബി യുടെ വില നിർണ്ണയിക്കുന്നു, നാം A -> B എഴുതുക - അതായത് B എന്നത് B യുടെ മൂല്യത്തെ ആശ്രയിച്ചാണ്. ഈ ബന്ധത്തിൽ A യുടെ മൂല്യം നിർണ്ണയിക്കുന്നു, B എന്നത് A യെ ആശ്രയിക്കുന്നു.
ഉദാഹരണത്തിന്, താഴെ പറയുന്ന എംപ്ലോയീസ് ഡിപ്പാർട്ട്മെൻറുകൾ പട്ടികയിൽ, EmployeeID, DeptID എന്നിവ രണ്ട് കാൻഡിഡേറ്റ് കീകളാണ്: EmployeeID എന്നത് ടേബിളിന്റെ പ്രാഥമിക കീ ആണ്, എന്നാൽ DeptID ഒരു വിദേശ കീ ആണ്.
മറ്റേതെങ്കിലും ആട്രിബ്യൂട്ട് - ഈ സാഹചര്യത്തിൽ, EmployeeName, DeptName - അതിന്റെ മൂല്യം നേടുന്നതിന് പ്രാഥമിക കീ അടിസ്ഥാനമാക്കിയിരിക്കണം.
തൊഴിലാളിയുടെ തിരിച്ചറിയല് രേഖ | ജീവനക്കാരന്റെ പേര് | DeptID | DeptName |
---|---|---|---|
Emp1 | ജോൺ | Dept001 | ധനകാര്യം |
Emp2 | ടിന | Dept003 | വിൽപ്പന |
Emp3 | കാർലോസ് | Dept001 | ധനകാര്യം |
ഈ സാഹചര്യത്തിൽ, പട്ടിക പൂർണമായും ആശ്രയിച്ചല്ല, കാരണം എംപ്ലോയീ നെയിം പ്രാഥമിക കീ എംപ്ലോയീസ് ഐഡി ആശ്രയിച്ചിരിക്കുമ്പോൾ, DeptName- ന് പകരം DeptID- ൽ ആശ്രയിച്ചിരിക്കുന്നു. ഇത് ഭാഗിക ആശ്രിതത്വത്തെ വിളിക്കുന്നു.
ഈ പട്ടിക 2 എൻഎഫിലേക്ക് പരിവർത്തനം ചെയ്യാൻ, ഡാറ്റ രണ്ടു പട്ടികകളായി വേർതിരിക്കേണ്ടതുണ്ട്:
തൊഴിലാളിയുടെ തിരിച്ചറിയല് രേഖ | ജീവനക്കാരന്റെ പേര് | DeptID |
---|---|---|
Emp1 | ജോൺ | Dept001 |
Emp2 | ടിന | Dept003 |
Emp3 | കാർലോസ് | Dept001 |
ഞങ്ങൾ ജീവനക്കാരന്റെ പട്ടികയിൽ നിന്നും ഡൻറ്റ്നെയിം ആട്രിബ്യൂട്ട് നീക്കംചെയ്യുകയും ഒരു പുതിയ ടേബിൾ ഡിപ്പാർട്ട്മെന്റ് ഉണ്ടാക്കുകയും ചെയ്യുന്നു :
DeptID | DeptName |
---|---|
Dept001 | ധനകാര്യം |
Dept2 | ഹ്യൂമൻ റിസോഴ്സസ് |
Dept003 | വിൽപ്പന |
ഇപ്പോൾ പട്ടികകൾ തമ്മിലുള്ള ബന്ധം പൂർണ്ണമായും ആശ്രയിച്ചാണ്, അല്ലെങ്കിൽ 2 എൻ.എഫ്.
പൂർണ്ണ സമ്പദ്ഘടന എന്താണ് പ്രധാനമായിരിക്കുന്നത്
ഡാറ്റാ മൂല്യങ്ങൾ തമ്മിലുള്ള പൂർണ്ണ ആശ്രിതത്വം ഡാറ്റ സമഗ്രത ഉറപ്പാക്കുകയും ഡാറ്റ അസ്വാഭാവികതകൾ ഒഴിവാക്കുകയും ചെയ്യുന്നു.
ഉദാഹരണത്തിന്, മുകളിൽ പറഞ്ഞിരിക്കുന്ന വിഭാഗത്തിൽ പട്ടിക 1NF ൽ മാത്രം ഒത്തുനോക്കുക. ഇതാ വീണ്ടും, ഇതാണ്:
ജീവനക്കാരൻ | സ്ഥലം |
---|---|
ജോൺ | ലോസ് ഏഞ്ചലസ് |
ടിന | ലോസ് ഏഞ്ചലസ് |
ടിന | ചിക്കാഗോ |
ടിനയ്ക്ക് രണ്ടു രേഖയുണ്ട്. രണ്ട് ആണെന്ന് തിരിച്ചറിയാതെ ഒന്ന് അപ്ഡേറ്റ് ചെയ്യുകയാണെങ്കിൽ, ഫലം പൊരുത്തപ്പെടാത്ത ഡാറ്റ ആയിരിക്കും.
അല്ലെങ്കിൽ, ഈ പട്ടികയിൽ ഒരു ജീവനക്കാരനെ ചേർക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിലോ, പക്ഷേ ഞങ്ങൾക്ക് ഇനിയും സ്ഥലം അറിയാൻ കഴിയുന്നില്ലേ? ലൊക്കേഷൻ ആട്രിബ്യൂട്ട് NULL മൂല്യങ്ങൾ അനുവദിക്കുന്നില്ലെങ്കിൽ ഒരു പുതിയ ജീവനക്കാരനെ ചേർക്കാൻ പോലും ഞങ്ങൾ അനുവദിക്കപ്പെടാൻ ഇടയില്ല.
എന്നാൽ, സാധാരണനിലയിൽ പൂർണമായ ആശ്രിതത്വം മുഴുവൻ ചിത്രമല്ല. നിങ്ങളുടെ ഡാറ്റാബേസ് മൂന്നാം സാധാരണ ഫോമിൽ (3NF) ഉള്ളതായി നിങ്ങൾ ഉറപ്പുവരുത്തണം.