இயல்பாக்குதலை உறுதிப்படுத்துவதற்கு உதவுகின்ற நம்பகத் தன்மைகளைத் தவிர்க்கவும்
ஒரு தரவுத்தளத்தில் ஒரு இடைநிலை சார்பு என்பது செயல்பாட்டு சார்புநிலைக்கு காரணமாகும் அதே அட்டவணையில் மதிப்புகள் இடையேயான மறைமுக உறவு. மூன்றாம் இயல்பான படிவம் (3NF) சாதாரண தரத்தை அடைவதற்கு, நீங்கள் எந்தவிதமான இடைநிலை சார்புநிலையையும் அகற்ற வேண்டும்.
அதன் இயல்பு மூலம், ஒரு மாறக்கூடிய சார்புநிலைக்கு மூன்று அல்லது அதற்கு மேற்பட்ட பண்புக்கூறுகள் (அல்லது தரவுத்தள நெடுவரிசைகள்) அவற்றுக்கு இடையே செயல்பாட்டு சார்புடையதாக இருக்க வேண்டும், அதாவது ஒரு அட்டவணை நெடுவரிசை A ஆனது நெடுவரிசை B இல் ஒரு இடைநிலை நெடுவரிசை C.
இது எப்படி வேலை செய்யும் என்று பார்ப்போம்.
மாறா நம்பகத்தன்மை உதாரணம்
ஆசிரியர்கள்
Author_ID | ஆசிரியர் | புத்தக | Author_Nationality |
---|---|---|---|
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | Ender விளையாட்டு | ஐக்கிய மாநிலங்கள் |
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | Ender விளையாட்டு | ஐக்கிய மாநிலங்கள் |
Auth_002 | மார்கரெட் அட்வுட் | தி ஹேன்மெய்டின் டேல் | கனடா |
மேலே உள்ள AUTHORS எடுத்துக்காட்டு:
- புத்தகம் → ஆசிரியர் : இங்கே, புத்தகம் பண்புக்கூறு ஆசிரியர் பண்புகளை தீர்மானிக்கிறது. புத்தகத்தின் பெயரை நீங்கள் அறிந்திருந்தால், நீங்கள் ஆசிரியரின் பெயரைக் கற்றுக்கொள்ளலாம். இருப்பினும், எழுத்தாளர் பல புத்தகங்களை எழுத முடியும் என்பதால் புத்தகம் புத்தகத்தை தீர்மானிக்கவில்லை. உதாரணமாக, ஆசிரியரின் பெயர் ஆர்பன் ஸ்காட் கார்டை நாம் அறிந்திருப்பதால், புத்தகத்தின் பெயர் எங்களுக்குத் தெரியாது.
- ஆசிரியர் → Author_Nationality : அதேபோல், ஆசிரிய பண்புக்கூறு ஆசிரியரை நிர்ணயிக்கிறது, ஆனால் வேறு வழியில்லை; நாம் தேசியத்தை அறிந்திருப்பதால், எழுத்தாளரைத் தீர்மானிப்போம்.
ஆனால் இந்த அட்டவணையை ஒரு தற்செயலான சார்பு அறிமுகப்படுத்துகிறது:
- புத்தகம் → Author_Nationality: நாம் புத்தகத்தின் பெயர் தெரிந்தால், நாம் ஆசிரியர் நெடுவரிசை வழியாக தேசியத்தை தீர்மானிக்க முடியும்.
டிரான்சிட் நம்பகத்தன்மையைத் தவிர்ப்பது
மூன்றாம் இயல்பான படிவத்தை உறுதிப்படுத்த, இடைநிலை சார்புநிலையை அகற்றுவோம்.
நாம் ஆசிரியர்களின் அட்டவணையில் இருந்து புத்தக நிரலை நீக்கி, ஒரு தனிப்பட்ட புத்தக அட்டவணையை உருவாக்குவதன் மூலம் தொடங்கலாம்:
புத்தகங்கள்
Book_ID | புத்தக | Author_ID |
---|---|---|
Book_001 | Ender விளையாட்டு | Auth_001 |
Book_001 | மனதின் குழந்தைகள் | Auth_001 |
Book_002 | தி ஹேன்மெய்டின் டேல் | Auth_002 |
ஆசிரியர்கள்
Author_ID | ஆசிரியர் | Author_Nationality |
---|---|---|
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | ஐக்கிய மாநிலங்கள் |
Auth_002 | மார்கரெட் அட்வுட் | கனடா |
இதை சரிசெய்தீர்களா? இப்போது நம் சார்புகளை ஆராய்வோம்:
BOOKS அட்டவணை :
- Book_ID → புத்தகம்: புத்தகம் Book_ID சார்ந்திருக்கிறது .
- இந்த அட்டவணையில் வேறு எந்த சார்புகளும் இல்லை, எனவே நாம் நன்றாக இருக்கிறோம். வெளிநாட்டு விசை Author_ID இந்த அட்டவணையை AUTHORS அட்டவணையில் அதன் முதன்மை விசை Author_ID மூலம் இணைக்கிறது . ஒரு தற்செயலான சார்புடைய, தொடர்புடைய தரவுத்தளங்களின் முக்கிய வடிவமைப்பை தவிர்க்க ஒரு தொடர்பை உருவாக்கியுள்ளோம்.
AUTHORS அட்டவணை :
- Author_ID → ஆசிரியர்: ஆசிரியர் Author_ID சார்ந்திருக்கிறது .
- ஆசிரியர் → Author_Nationality: தேசத்தை ஆசிரியர் தீர்மானிக்க முடியும்.
- Author_ID → Author_Nationality: ஆசிரியர் ஆசிரியர் மூலம் ஆசிரியரை __ இருந்து தீர்மானிக்க முடியும். நாம் இன்னமும் ஒரு தற்செயலான சார்புடன் இருக்கிறோம்.
இந்த தரவை சீராக்க ஒரு மூன்றாம் அட்டவணையை சேர்க்க வேண்டும்:
நாடுகள்
Country_ID | நாடு |
---|---|
Coun_001 | ஐக்கிய மாநிலங்கள் |
Coun_002 | கனடா |
ஆசிரியர்கள்
Author_ID | ஆசிரியர் | Country_ID |
---|---|---|
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | Coun_001 |
Auth_002 | மார்கரெட் அட்வுட் | Coun_002 |
இப்போது அட்டவணையில் இடையில் இணைக்க வெளிநாட்டு விசைகளை பயன்படுத்துவதன்மூலம் மூன்று அட்டவணைகள் உள்ளன:
- BOOK அட்டவணை வெளிநாட்டு விசை Author_ID AUTHORS அட்டவணை ஒரு எழுத்தாளர் ஒரு புத்தகம் இணைக்கிறது.
- AUTHORS அட்டவணை வெளிநாட்டு முக்கிய Country_ID COUNTRIES அட்டவணையில் ஒரு நாட்டிற்கு ஒரு ஆசிரியரை இணைக்கிறது.
- இந்த வடிவமைப்பில் மற்றொரு அட்டவணையை இணைக்க வேண்டிய அவசியமில்லை என்பதால் COUNTRIES அட்டவணையில் வெளிநாட்டு விசை இல்லை.
ஏன் டிரான்சிடிவ் டிஃபெண்டென்ஸ் மோசமான டேட்டாபேஸ் டிசைன் ஆகும்
3NF ஐ உறுதி செய்ய உதவும் சார்பு சார்புகளை தவிர்க்கும் மதிப்பு என்ன? நமது முதல் அட்டவணையை மறுபரிசீலனை செய்து அதை உருவாக்கும் சிக்கல்களைக் காணலாம்:
ஆசிரியர்கள்
Author_ID | ஆசிரியர் | புத்தக | Author_Nationality |
---|---|---|---|
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | Ender விளையாட்டு | ஐக்கிய மாநிலங்கள் |
Auth_001 | ஆர்சன் ஸ்காட் கார்ட் | மனதின் குழந்தைகள் | ஐக்கிய மாநிலங்கள் |
Auth_002 | மார்கரெட் அட்வுட் | தி ஹேன்மெய்டின் டேல் | கனடா |
இந்த வகையான வடிவமைப்பு தரவு முரண்பாடுகள் மற்றும் முரண்பாடுகளுக்கு எடுத்துக்காட்டாக உதவுகிறது:
- நீங்கள் இரண்டு புத்தகங்கள் "மைண்ட் ஆப் சின்ட்" மற்றும் "எண்டர்ஸ் கேம்" ஆகியவற்றை நீக்கிவிட்டால், "Orson Scott Card" மற்றும் அவரின் தேசியத்தன்மையை முழுவதுமாக தரவுத்தளத்தில் இருந்து நீக்க வேண்டும்.
- ஒரு புத்தகம் ஒன்றை சேர்க்காவிட்டால், தரவுத்தளத்தில் ஒரு புதிய எழுத்தாளரை நீங்கள் சேர்க்க முடியாது; என்ன ஆசிரியர் இன்னும் வெளியிடப்படவில்லை என்றால் அல்லது அவர் எழுதிய ஒரு புத்தகம் பெயர் தெரியாது என்றால் என்ன?
- "Orson Scott Card" தனது குடியுரிமையை மாற்றினால், அவர் தோன்றும் அனைத்து பதிவுகளிலும் அதை மாற்ற வேண்டும். அதே எழுத்தாளர் பல பதிவுகள் தவறான தரவு விளைவிக்கலாம்: தரவு பதிவு நபர் அவரை பல பதிவுகள் உள்ளன மற்றும் ஒரு சாதனை மட்டுமே தரவு மாற்றும் உணரவில்லை என்றால் என்ன?
- ஆசிரியரை முழுவதுமாக நீக்காமல் "The Handmaid's Tale" போன்ற புத்தகத்தை நீக்க முடியாது.
இவை சாதாரணமாக ஏன் சில காரணங்கள், மற்றும் தற்செயலான சார்புகளைத் தவிர்க்கின்றன, தரவுகளைப் பாதுகாத்து உறுதிப்படுத்துவதை உறுதிப்படுத்துகின்றன.