Skip to main content

ஒரு தரவுத்தளத்தில் மாறக்கூடிய நம்பகத்தன்மை

Anonim

ஒரு தரவுத்தளத்தில் ஒரு இடைநிலை சார்பு என்பது செயல்பாட்டு சார்புநிலைக்கு காரணமாகும் அதே அட்டவணையில் மதிப்புகள் இடையேயான மறைமுக உறவு. மூன்றாம் இயல்பான படிவம் (3NF) சாதாரண தரத்தை அடைவதற்கு, நீங்கள் எந்தவிதமான இடைநிலை சார்புநிலையையும் அகற்ற வேண்டும்.

அதன் இயல்பு மூலம், ஒரு மாறக்கூடிய சார்புநிலைக்கு மூன்று அல்லது அதற்கு மேற்பட்ட பண்புக்கூறுகள் (அல்லது தரவுத்தள நெடுவரிசைகள்) அவற்றுக்கு இடையே செயல்பாட்டு சார்புடையதாக இருக்க வேண்டும், அதாவது ஒரு அட்டவணை நெடுவரிசை A ஆனது நெடுவரிசை B இல் ஒரு இடைநிலை நெடுவரிசை C.

இது எப்படி வேலை செய்யும் என்று பார்ப்போம்.

மாறா நம்பகத்தன்மை உதாரணம்

ஆசிரியர்கள்

Author_IDஆசிரியர்புத்தகAuthor_Nationality
Auth_001ஆர்சன் ஸ்காட் கார்ட்Ender விளையாட்டுஐக்கிய மாநிலங்கள்
Auth_001ஆர்சன் ஸ்காட் கார்ட்Ender விளையாட்டுஐக்கிய மாநிலங்கள்
Auth_002மார்கரெட் அட்வுட்தி ஹேன்மெய்டின் டேல்கனடா

மேலே உள்ள AUTHORS எடுத்துக்காட்டு:

  • புத்தக → ஆசிரியர் : இங்கே, அந்த புத்தக பண்பு நிர்ணயிக்கிறது ஆசிரியர் காரணம் காட்டுகிறார்கள். புத்தகத்தின் பெயரை நீங்கள் அறிந்திருந்தால், நீங்கள் ஆசிரியரின் பெயரைக் கற்றுக்கொள்ளலாம். எனினும், ஆசிரியர் தீர்மானிக்க முடியாது புத்தக ஏனெனில், ஒரு எழுத்தாளர் பல புத்தகங்களை எழுதுகிறார். உதாரணமாக, ஆசிரியரின் பெயர் ஆர்பன் ஸ்காட் கார்டை நாம் அறிந்திருப்பதால், புத்தகத்தின் பெயர் எங்களுக்குத் தெரியாது.
  • ஆசிரியர் → Author_Nationality : அதேபோல், ஆசிரியர் பண்பு நிர்ணயிக்கிறது Author_Nationality , ஆனால் வேறு வழியில்லை; நாம் தேசியத்தை அறிந்திருப்பதால், எழுத்தாளரைத் தீர்மானிப்போம்.

ஆனால் இந்த அட்டவணையை ஒரு தற்செயலான சார்பு அறிமுகப்படுத்துகிறது:

  • புத்தக → Author_Nationality: புத்தகம் பெயரை நாம் அறிந்தால், ஆசிரியர் பத்தியில் நாம் தேசியத்தை தீர்மானிக்கலாம்.

டிரான்சிட் நம்பகத்தன்மையைத் தவிர்ப்பது

மூன்றாம் இயல்பான படிவத்தை உறுதிப்படுத்த, இடைநிலை சார்புநிலையை அகற்றுவோம்.

நாம் ஆசிரியர்களின் அட்டவணையில் இருந்து புத்தக நிரலை நீக்கி, ஒரு தனிப்பட்ட புத்தக அட்டவணையை உருவாக்குவதன் மூலம் தொடங்கலாம்:

புத்தகங்கள்

Book_IDபுத்தகAuthor_ID
Book_001Ender விளையாட்டுAuth_001
Book_001மனதின் குழந்தைகள்Auth_001
Book_002தி ஹேன்மெய்டின் டேல்Auth_002

ஆசிரியர்கள்

Author_IDஆசிரியர்Author_Nationality
Auth_001ஆர்சன் ஸ்காட் கார்ட்ஐக்கிய மாநிலங்கள்
Auth_002மார்கரெட் அட்வுட்கனடா

இதை சரிசெய்தீர்களா? இப்போது நம் சார்புகளை ஆராய்வோம்:

புத்தகங்கள் அட்டவணை:

  • Book_ID → புத்தகம்: தி புத்தக பொறுத்தது Book_ID .
  • இந்த அட்டவணையில் வேறு எந்த சார்புகளும் இல்லை, எனவே நாம் நன்றாக இருக்கிறோம். வெளிநாட்டு விசையை கவனியுங்கள் Author_ID இந்த அட்டவணையை அதன் முதன்மை விசை மூலம் AUTHORS அட்டவணைக்கு இணைக்கிறது Author_ID . ஒரு தற்செயலான சார்புடைய, தொடர்புடைய தரவுத்தளங்களின் முக்கிய வடிவமைப்பை தவிர்க்க ஒரு தொடர்பை உருவாக்கியுள்ளோம்.

AUTHORS அட்டவணை:

  • Author_ID → ஆசிரியர்: தி ஆசிரியர் பொறுத்தது Author_ID .
  • ஆசிரியர் → Author_Nationality: தேசத்தை ஆசிரியரால் தீர்மானிக்க முடியும்.
  • Author_ID → Author_Nationality: தேசியத்தன்மையிலிருந்து தீர்மானிக்க முடியும் Author_ID மூலம் ஆசிரியர் காரணம் காட்டுகிறார்கள். நாம் இன்னமும் ஒரு தற்செயலான சார்புடன் இருக்கிறோம்.

இந்த தரவை சீராக்க ஒரு மூன்றாம் அட்டவணையை சேர்க்க வேண்டும்:

நாடுகள்

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" போன்ற புத்தகத்தை நீக்க முடியாது.

இவை சாதாரணமாக ஏன் சில காரணங்கள், மற்றும் தற்செயலான சார்புகளைத் தவிர்க்கின்றன, தரவுகளைப் பாதுகாத்து உறுதிப்படுத்துவதை உறுதிப்படுத்துகின்றன.