ஒரு முழு செயல்பாட்டு சார்புநிலை தரவுத்தள இயல்பாக்கத்தின் நிலை என்பது இரண்டாம் இயல்பான படிவம் (2NF) இன் இயல்புநிலை தரத்திற்கு சமமானதாகும். சுருக்கமாக, அதாவது, இது முதல் இயல்புநிலை படிவம் (1NF) இன் தேவைகளை பூர்த்தி செய்யும் என்பதோடு அனைத்து முக்கிய அல்லாத பண்புக்கூறுகளும் முதன்மை விசைக்கு முழுமையாக செயல்படுகின்றன.
இது ஒலி போல் சிக்கலாக இல்லை. இதை மேலும் விரிவாக பார்ப்போம்.
முதல் இயல்பான படிவத்தின் சுருக்கம்
தரவுத்தளமானது முழு செயல்பாட்டுக்குட்பட்டதாக இருக்கும் முன்பே, முதலில் முதல் இயல்பான படிவத்துடன் இணங்க வேண்டும்.
இவை ஒவ்வொன்றும் ஒரு ஒற்றை, அணு மதிப்பை வைத்திருக்க வேண்டும் என்பதாகும்.
உதாரணமாக, பின்வரும் அட்டவணையானது 1NF உடன் இணங்கவில்லை, ஏனென்றால் பணியாளர் டினா இரு இடங்களுடனும் இணைக்கப்பட்டுள்ளது, அவை இரண்டும் ஒரே ஒரு கலத்தில் உள்ளன:
பணியாளர் | இருப்பிடம் |
---|---|
ஜான் | லாஸ் ஏஞ்சல்ஸ் |
டினா | லாஸ் ஏஞ்சல்ஸ், சிகாகோ |
இந்த வடிவமைப்பு அனுமதிப்பது தரவு மேம்படுத்தல்கள் அல்லது உள்ளீடுகளை எதிர்மறையாக பாதிக்கும். 1NF இணக்கத்தை உறுதிப்படுத்துவதற்காக, அட்டவணையை மறுசீரமைக்கலாம், இதனால் அனைத்து பண்புக்கூறுகளும் (அல்லது நெடுவரிசை செல்கள்) ஒற்றை மதிப்பை வைத்திருக்கின்றன:
பணியாளர் | இருப்பிடம் |
---|---|
ஜான் | லாஸ் ஏஞ்சல்ஸ் |
டினா | லாஸ் ஏஞ்சல்ஸ் |
டினா | சிகாகோ |
ஆனால் 1NF தரவுடன் பிரச்சினையைத் தவிர்ப்பதற்கு இன்னமும் போதுமானதாக இல்லை.
முழு நம்பகத்தன்மையை உறுதி செய்ய 2NF எவ்வாறு செயல்படுகிறது
முழுமையாக சார்ந்து இருக்க வேண்டும், அனைத்து வேட்பாளர் அல்லாத முக்கிய பண்புக்கூறுகளும் முதன்மை விசை சார்ந்ததாக இருக்க வேண்டும். (நினைவில் வைத்து கொள்ளுங்கள், ஒரு வேட்பாளர் முக்கிய பண்பு ஒரு தரவுத்தள பதிவேடுகளை அடையாளம் காணுவதற்கு முக்கியமாக உள்ளது (உதாரணமாக, ஒரு முதன்மை அல்லது வெளிநாட்டு விசை).
தரவுத்தள வடிவமைப்பாளர்கள் பண்புருக்களுக்கு இடையே சார்ந்த உறவுகளை விவரிப்பதற்கு ஒரு குறியீட்டைப் பயன்படுத்துகின்றனர்:
B இன் மதிப்பை நிர்ணயிக்கும் பண்பு A என்றால் - நாம் A -> B ஐ எழுதுகிறோம் - A என்பது B இல் செயல்பாட்டு ரீதியாக சார்ந்து இருப்பதால், இந்த உறவில், A இன் மதிப்பை தீர்மானிக்கிறது, B என்பது A.
உதாரணமாக, பின்வரும் பணியாளர் துறைகள் அட்டவணையில், EmployeeID மற்றும் DeptID ஆகிய இரண்டு வேட்பாளர் விசைகளும் உள்ளன: EmployeeID என்பது மேஜையின் முதன்மை விசை ஆகும், DeptID என்பது ஒரு வெளிநாட்டு விசை ஆகும்.
வேறு எந்த பண்புக்கூறு - இந்த வழக்கில், EmployeeName மற்றும் DeptName - அதன் மதிப்பு பெறுவதற்கு முதன்மை விசை சார்ந்ததாக இருக்க வேண்டும்.
EmployeeID | பணியாளர் பெயர் | DeptID | DeptName |
---|---|---|---|
Emp1 | ஜான் | Dept001 | நிதி |
Emp2 | டினா | Dept003 | விற்பனை |
Emp3 | கார்லோஸ் | Dept001 | நிதி |
இந்த விஷயத்தில், அட்டவணை முழுமையாக சார்ந்து இருக்காது, ஏனென்றால் பணியாளர் பெயர் முதன்மை விசை EmployeeID ஐ சார்ந்து இருக்கும்போது, DeptNN பதிலாக DeptID இல் சார்ந்துள்ளது. இது பகுதி சார்ந்த சார்பு .
இந்த அட்டவணையை 2NF க்கு மாற்றுவதற்கு, தரவுகளை இரண்டு அட்டவணையில் பிரிக்க வேண்டும்:
EmployeeID | பணியாளர் பெயர் | DeptID |
---|---|---|
Emp1 | ஜான் | Dept001 |
Emp2 | டினா | Dept003 |
Emp3 | கார்லோஸ் | Dept001 |
ஊழியர்களின் அட்டவணையில் இருந்து DeptName பண்புகளை அகற்றுவோம் மற்றும் ஒரு புதிய அட்டவணையை உருவாக்குங்கள்:
DeptID | DeptName |
---|---|
Dept001 | நிதி |
Dept002 | மனித வளம் |
Dept003 | விற்பனை |
அட்டவணைகள் இடையிலான உறவுகள் முழுமையாக சார்ந்திருப்பது அல்லது 2NF இல் உள்ளன.
ஏன் முழு நம்பகத்தன்மையும் முக்கியம்
தரவுத்தள பண்புக்கூறுகளுக்கு இடையில் முழு சார்புநிலை தரவு நேர்மையை உறுதிசெய்து தரவு முரண்பாடுகளை தவிர்க்க உதவுகிறது.
உதாரணமாக, மேலே உள்ள பகுதியிலுள்ள அட்டவணையை 1NF க்கு மட்டுமே பின்பற்றுங்கள். இங்கே மீண்டும்,
பணியாளர் | இருப்பிடம் |
---|---|
ஜான் | லாஸ் ஏஞ்சல்ஸ் |
டினா | லாஸ் ஏஞ்சல்ஸ் |
டினா | சிகாகோ |
டினா இரண்டு பதிவுகள் உள்ளன. நாங்கள் இருவரும் இருப்பதை உணர்ந்து இல்லாமல் ஒருவரை புதுப்பித்தால், முடிவு சீரற்றதாக இருக்கும்.
அல்லது, இந்த அட்டவணையில் ஒரு பணியாளரை நாங்கள் சேர்க்க விரும்பினால், நாங்கள் இன்னும் இருப்பிடத்தை அறியவில்லை? இருப்பிடம் பண்புக்கூறு NULL மதிப்புகளை அனுமதிக்கவில்லை என்றால், ஒரு புதிய பணியாளரை சேர்க்க கூட அனுமதிக்கப்படக்கூடும்.
முழு சார்பானது முழுமையான படம் அல்ல, அது சாதாரணமயமாக்கல் வரும்போது. உங்கள் தரவுத்தளம் மூன்றாவது இயல்பான படிவத்தில் (3NF) உள்ளது என்பதை உறுதிப்படுத்த வேண்டும்.