ആദ്യത്തെ സാധാരണ ഫോം (1NF), രണ്ടാമത്തെ സാധാരണ ഫോം (2NF) നൽകുന്ന ഡാറ്റാബേസ് നോർമലൈസേഷൻ തത്ത്വങ്ങൾ അടിസ്ഥാനമാക്കി ഡാറ്റയുടെ സമഗ്രതയെ പിന്തുണയ്ക്കുന്ന ഒരു ഡാറ്റാബേസ് തത്വമാണ് മൂന്നാം സാധാരണ ഫോം (3NF).
മൂന്നാമത് സാധാരണ ഫോർമാറ്റ് ആവശ്യകതകൾ
ഒരു ഡേറ്റാബേസിൻറെ മൂന്നാം സാധാരണ രീതിയിലുള്ള രണ്ട് അടിസ്ഥാന ആവശ്യങ്ങൾ ഉണ്ട്:
- 1NF , 2NF എന്നിവ രണ്ടും ഡാറ്റാബേസിൽ ഉണ്ടായിരിക്കണം.
- എല്ലാ ഡാറ്റാബേസ് നിരകളും പ്രാഥമിക കീയെ ആശ്രയിച്ചിരിക്കണം, അതായത് ഏത് കോളം മൂല്യവും പ്രാഥമിക കീയിൽ നിന്നു മാത്രമേ ലഭ്യമാകുകയുള്ളൂ.
പ്രാഥമിക കീ ആശ്രിതത്വം സംബന്ധിച്ച്
എല്ലാ നിരകളും പ്രാഥമിക കീയെ ആശ്രയിക്കണം എന്ന വസ്തുതയിലൂടെ നമ്മൾ എന്തിനെയൊക്കെ അന്വേഷിക്കുകയേ വേണ്ടൂ.
ഒരു നിരയുടെ മൂല്യം രണ്ട് പ്രാഥമിക കീയിൽ നിന്നും പട്ടികയിലെ മറ്റൊരു നിരയിൽ നിന്നും ഉദ്ധരിക്കാം, അത് 3NF ലംഘിക്കുന്നു. ഈ കോളം ഉപയോഗിച്ച് ഒരു ജീവനക്കാരന്റെ പട്ടിക പരിഗണിക്കുക:
- തൊഴിലാളിയുടെ തിരിച്ചറിയല് രേഖ
- പേരിന്റെ ആദ്യഭാഗം
- പേരിന്റെ അവസാന ഭാഗം
LastName, FirstName എന്നിവ രണ്ട് തൊഴിലാളികളുടെ മൂല്യത്തെ മാത്രം ആശ്രയിക്കുന്നത് ആണോ? FirstName നെ ആദ്യനാമത്തെ ആശ്രയിക്കുന്നത്? ഇല്ല, അവസാന നാമം സഹിതമുള്ള ഒന്നും ആദ്യ നാമത്തിന്റെ മൂല്യം നിർദ്ദേശിക്കും. FirstName നെ മാത്രം ആശ്രയിച്ചിരിക്കാമോ? വീണ്ടും, കാരണം അത് ശരിയാണ്: ഒരു പേഴ്സണൽ പേര് ഉണ്ടെങ്കിൽ, അത് ആദ്യനാമത്തിന്റെ മൂല്യം സൂചന നൽകാനായില്ല. അതുകൊണ്ട് ഈ പട്ടിക 3NF അനുസൃതമാണ്.
ഈ വാഹനങ്ങൾക്കായുള്ള പട്ടിക പരിഗണിക്കുക:
- വാഹനഐഡിഡ്
- നിർമ്മാതാവ്
- മോഡൽ
വാഹനനിർമ്മാണത്തിനും മോഡലിനും വാഹനം ഉണ്ടാവാം. പക്ഷേ, ഒരു നിർമ്മാതാവിന് മാത്രമേ വാഹനം നിർമ്മിക്കാൻ കഴിയുകയുള്ളൂ. ഈ ടേബിൾ ഡിസൈൻ 3NF നോൺ-കൺസോൾട്ടാണ്, അതിനാൽ ഡാറ്റ അപ്രതിഫലങ്ങൾ ഉണ്ടാക്കാൻ കഴിയുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾ മോഡൽ അപ്ഡേറ്റ് ചെയ്യാതെ, തെറ്റുതിരുത്തൽ പരിചയപ്പെടുത്താതെ നിർമ്മാതാവിനെ അപ്ഡേറ്റ് ചെയ്തേക്കാം.
ഇത് അനുസരിച്ച്, മറ്റൊരു പട്ടികയിലേക്ക് അധിക ആശ്രിത പദം നീങ്ങുകയും ഒരു വിദേശ കീ ഉപയോഗിച്ച് അത് സൂചിപ്പിക്കുകയും വേണം. ഇത് രണ്ട് ടേബിളുകളായിരിക്കും:
വാഹനങ്ങൾ ടേബിൾ
താഴെയുള്ള പട്ടികയിൽ മോഡൽ ഐഡി മോഡുകളുടെ ഒരു വിദേശ കീയാണ്.
- വാഹനഐഡിഡ്
- നിർമ്മാതാവ്
- മോഡൽ ഐഡി
മോഡുകളുടെ പട്ടിക
നിർമ്മാതാക്കൾക്ക് ഈ പുതിയ പട്ടിക മാപ്പുകൾ മോഡലുകൾ. ഒരു മോഡലിന് പ്രത്യേകമായി എന്തെങ്കിലും വാഹനങ്ങൾ നിങ്ങൾക്ക് അപ്ഡേറ്റ് ചെയ്യണമെങ്കിൽ, വാഹനങ്ങൾക്കായുള്ള പട്ടികയിൽ അല്ലാതെ ഈ ടേബിളിൽ നിങ്ങൾ ഇത് ചെയ്യുമായിരുന്നു.
- മോഡൽ ഐഡി
- നിർമ്മാതാവ്
- മോഡൽ
3NF മോഡിലെ Derived ഫീൽഡുകൾ
ഒരു പട്ടികയിൽ ഉൾപ്പെട്ട ഒരു ഫീൽഡ് ഉൾപ്പെടാം - പട്ടികയിലെ മറ്റ് നിരകളുടെ അടിസ്ഥാനത്തിൽ കണക്കാക്കപ്പെടുന്ന ഒന്ന്. ഉദാഹരണത്തിന്, ഈ പട്ടികയുടെ വിഡ്ജറ്റ് ഓർഡറുകൾ പരിഗണിക്കുക:
- ഓർഡർ നമ്പർ
- ഉപഭോക്തൃ നമ്പർ
- യൂണിറ്റ് വില
- അളവ്
- ആകെ
പ്രാഥമിക കീയിൽ പൂർണ്ണമായി ആശ്രയിക്കുന്നതിനേക്കാൾ അളവ് യൂണിറ്റിന്റെ വിലയെ ഗുണിച്ചുകൊണ്ട് ഇത് 3NF പാലിക്കൽ അനുസരിക്കുന്നു. മൂന്നാമത്തെ സാധാരണ ഫോം അനുസരിച്ച് നമുക്ക് അത് പട്ടികയിൽ നിന്ന് നീക്കം ചെയ്യണം.
സത്യത്തിൽ, അത് ഡിറൈവ് ആയതിനാൽ, അത് ഡേറ്റാബേസിൽ സംഭരിക്കുന്നതിൽ നല്ലതാണ്.
ഡേറ്റാബേസ് അന്വേഷണങ്ങൾ നടത്തുമ്പോൾ നമുക്ക് അതിനെ "ഈച്ചയിൽ" കണക്കാക്കാം. ഉദാഹരണത്തിന്, ഓർഡർ നമ്പറുകളും സംഖ്യകളും വീണ്ടെടുക്കുന്നതിന് മുമ്പ് ഈ ചോദ്യം ഉപയോഗിച്ചേക്കാം:
SELECT OrderNumber, മൊത്തം വിഡ്ജറ്റ്ഓയർഡേഴ്സ്ഇനി നമുക്ക് ഇനി പറയുന്ന ചോദ്യം ഉപയോഗിക്കാം:
SELECT OrderNumber, UnitPrice * വിറ്റ്ജറ്റ്ഓർഡേർമാരിൽ നിന്നുള്ള മൊത്തം മൊത്തത്തിൽനോർമലൈസേഷൻ നിയമങ്ങൾ ലംഘിക്കാതെ അതേ ഫലങ്ങൾ കൈവരിക്കാൻ.