தரவுத்தள சார்புகள் என்பது மாணவர்கள் மற்றும் தரவுத்தள வல்லுநர்கள் இருவருமே ஒரே குழப்பத்தை ஏற்படுத்தும் ஒரு தலைப்பாகும். அதிர்ஷ்டவசமாக, அவை சிக்கலானவை அல்ல, பல உதாரணங்களைப் பயன்படுத்தி சிறந்த முறையில் விளக்கப்படலாம். இந்த கட்டுரையில், பொதுவான தரவுத்தள சார்பு வகைகளை நாம் ஆராய்வோம்.
தரவுத்தள சார்புகள் / செயல்பாட்டு சார்புகள்
அதே தரவுத்தள அட்டவணையில் சேமித்த தகவல் அதே அட்டவணையில் சேமிக்கப்பட்ட பிற தகவலை தனிப்பட்ட முறையில் தீர்மானிக்கும் போது தரவுத்தளத்தில் ஒரு சார்பு ஏற்படுகிறது. ஒரு கற்பனையின் மதிப்பு (அல்லது பண்புகளின் தொகுப்பை) அறிந்துகொள்வதற்கான ஒரு உறவாக நீங்கள் இதை விவரிக்கலாம், அதே அட்டவணையில் மற்றொரு பண்புக்கூறு (அல்லது பண்புக்கூறுகளின் தொகுப்பு) உங்களுக்குச் சொல்லும் போதுமானதாக இருக்கிறது.
ஒரு மேஜையில் பண்புகளை இடையில் ஒரு சார்பு இருப்பதாகக் கூறுவது, அந்த பண்புகளுக்கு இடையில் செயல்பாட்டு சார்பு இருப்பதாகக் கூறுகிறது. ஒரு தரவுத்தளத்தில் ஒரு சார்பு இருந்தால் பண்புக்கூறு A பண்புக்கூறு A ஐ சார்ந்து இருக்கிறது, நீங்கள் இதை "A -> B" என்று எழுதுவீர்கள்.
உதாரணமாக, சமூகப் பாதுகாப்பு எண் (SSN) மற்றும் பெயர் உட்பட ஒரு டேபிள் லிமிட்டெட்டின் பணியாளர் பண்புகளில், அந்த பெயர் SSN (அல்லது SSN -> பெயர்) மீது சார்ந்து இருப்பதால், ஒரு பணியாளர் பெயரை தனிப்பட்ட முறையில் SSN இலிருந்து நிர்ணயிக்க முடியும். இருப்பினும், தலைகீழ் அறிக்கை (பெயர் -> SSN) என்பது உண்மை அல்ல, ஏனென்றால் ஒரு பணியாளருக்கு மேற்பட்டவர் அதே பெயரைக் கொண்டிருப்பார், ஆனால் வேறு SSN கள் இருக்க முடியும்.
சிறிய செயல்பாட்டு சார்புகள்
அசல் கற்பிதம் உள்ளடக்கிய பண்புக்கூறுகளின் தொகுப்பிலுள்ள ஒரு கற்பனையின் செயல்பாட்டு சார்புமையை நீங்கள் விவரிக்கும் போது ஒரு சிறிய செயல்பாட்டு சார்பு ஏற்படுகிறது. உதாரணமாக, "{A, B} -> B" என்பது ஒரு சிறிய செயல்பாட்டு சார்பு, "{name, SSN} -> SSN". செயல்பாட்டு சார்புடைய இந்த வகை அற்பமானதாக அழைக்கப்படுவதால், இது பொதுவான அர்த்தத்திலிருந்து பெறப்படுகிறது. B இன் மதிப்பு உங்களுக்கு ஏற்கனவே தெரிந்தால் B இன் மதிப்பு, அந்த அறிவால் தனிப்பட்ட முறையில் தீர்மானிக்கப்படலாம் என்பது தெளிவாக உள்ளது.
முழு செயல்பாட்டு சார்புடையது
ஒரு செயல்பாட்டு சார்புநிலை மற்றும் செயல்பாட்டு சார்புடைய அறிக்கையின் இடது பக்கத்தில் பண்புக்கூறுகளின் தொகுப்பு ஆகியவற்றை ஏற்கனவே நீங்கள் பூர்த்தி செய்யும்போது முழு செயல்பாட்டு சார்பு ஏற்படுகிறது. உதாரணமாக, "{SSN, வயது} -> பெயர்" ஒரு செயல்பாட்டு சார்பாக உள்ளது, ஆனால் அது சார்பு சார்புடையதாக இல்லை, ஏனென்றால் சார்புடைய உறவை பாதிக்காமல், அறிக்கையின் இடது பக்கத்திலிருந்து வயதை அகற்றலாம்.
மாறா நம்பகத்தன்மைகள்
செயல்திறன் சார்ந்த சார்பை ஏற்படுத்தும் ஒரு மறைமுக உறவு இருக்கும்போது இடைநிலை சார்புகள் ஏற்படும். உதாரணமாக, "A -> B" மற்றும் "B -> C" ஆகிய இரண்டும் உண்மைதான்.
மல்டிவைடுண்ட் டிபெண்டன்ஸ்
ஒரு அட்டவணையில் ஒன்று அல்லது அதற்கு மேற்பட்ட வரிசைகள் இருப்பின், அதே அட்டவணையில் ஒன்று அல்லது அதற்கு மேற்பட்ட பிற வரிசைகளைக் கொண்டிருக்கும் போது பலவகைப்பட்ட சார்புகள் ஏற்படுகின்றன. உதாரணமாக, காரை பல மாதிரிகள் உற்பத்தி செய்யும் ஒரு கார் நிறுவனத்தை கற்பனை செய்து பாருங்கள், ஆனால் எப்போதும் ஒவ்வொரு மாதிரியின் சிவப்பு மற்றும் நீல வண்ணங்களை உருவாக்குகிறது. மாடல் பெயர், வண்ணம் மற்றும் ஒவ்வொரு காரியத்திற்கும் ஒரு நிறுவனம் தயாரிக்கும் அட்டவணையை நீங்கள் வைத்திருந்தால், அந்த அட்டவணையில் பலவகைப்பட்ட சார்புநிலை உள்ளது. நீல நிறத்தில் ஒரு குறிப்பிட்ட மாதிரி பெயர் மற்றும் ஆண்டுக்கு வரிசையில் இருந்தால், அதே காரில் சிவப்பு பதிப்பிற்கு ஒத்த ஒத்த வரிசையும் இருக்க வேண்டும்.
சார்ந்திருப்பதன் முக்கியத்துவம்
டேட்டாபேஸ் சார்புகள் புரிந்து கொள்ள முக்கியம் ஏனெனில் அவர்கள் தரவுத்தள இயல்பில் பயன்படுத்தப்படும் அடிப்படை கட்டுமான தொகுதிகள் வழங்கும். உதாரணத்திற்கு:
- ஒரு அட்டவணை இரண்டாம் இயல்பு வடிவத்தில் (2NF) இருக்க வேண்டும் என்பதற்காக, ஒரு வேட்பாளர் விசையின் துணைக்குழு சார்பாக செயல்படுகின்ற அட்டவணையில் ஒரு அல்லாத பிரதான பண்புக்கூறு ஏதும் இருக்காது.
- மூன்றாம் இயல்பு வடிவத்தில் (3NF) ஒரு அட்டவணை இருக்க வேண்டும், ஒவ்வொரு அல்லாத பிரதான பண்புக்கூறு ஒவ்வொரு வேட்பாளர் விசையில் ஒரு மாறாத செயல்பாட்டு சார்புடையதாக இருக்க வேண்டும்.
- பாய்ஸ்-கோட் இயல்பான படிவத்தில் (BCNF) இருக்கும் ஒரு அட்டவணைக்கு, ஒவ்வொரு செயல்பாட்டு சார்புடையது (அற்பமான சார்புகளைத் தவிர) ஒரு சூப்பர் கீமில் இருக்க வேண்டும்.
- நான்காவது சாதாரண வடிவத்தில் (4NF) ஒரு அட்டவணை இருக்க வேண்டும், அது பலவகைப்பட்ட சார்புகள் இருக்க வேண்டும்.