# தரவுத்தள இயல்பாக்கம்

## இயல்பாக்கத்துக்கான பின்னணி: வரையறைகள்

- **செயல்பாட்டுச் சார்புநிலை**: கற்பிதம் B ஆனது கற்பிதம் A மீது செயல்பாட்டுச் சார்புநிலையைக் கொண்டிருக்கிறது (அதாவது **A → B** ) கற்பிதம் A வின் அனைத்து மதிப்புகளிலும் கற்பிதம் B இன் சரியான ஒரு மதிப்பு இருக்கும். A வின் மதிப்பு ட்யூபில்களில் மீண்டும் இடம்பெற்றால் பின்னர் B இன் மதிப்பும் மீண்டும் இடம்பெறும். நமது எடுத்துக்காட்டில் பணியாளர் முகவரி ஆனது பணியாளர் ID மீது செயல்பாட்டுச் சார்புநிலை கொண்டிருக்கிறது. ஏனெனில் குறிப்பிட்ட பணியாளர் ID மதிப்பு அது தொடர்புடைய ஒரே ஒரு பணியாளர் முகவரி மதிப்பை மட்டுமே கொண்டிருக்கும். (இதற்கு எதிர்ப்பதம் உண்மையாக இருக்க வேண்டியதில்லை: பல்வேறு பணியாளர்கள் ஒரே முகவரியில் வசிக்கலாம். மேலும் அதனால் ஒரு பணியாளர் முகவரி ஒன்றுக்கு மேற்பட்ட பணியாளர் IDயுடன் தொடர்புடையதாக இருக்கலாம். பணியாளர் ID ஆனது ஆகையால் பணியாளர் முகவரிக்கு செயல்பாட்டுச் சார்புநிலை கொண்டது **அல்ல**.) ஒரு கற்பிதம் செயல்பாட்டு சார்புநிலையை ஒற்றைக் கற்பிதத்திலோ அல்லது கற்பிதங்களின் தொகுப்பிலோ கொண்டிருக்கலாம். அட்டவனைகளுள் கற்பிதங்களுக்கு என்ன செயல்பாட்டுச் சார்புநிலை பயன்படுத்தப்பட்டிருக்கிறது என்பதைப் புரிந்து கொள்ளாமல் எந்த இயல்பாக்கப்பட்ட வடிவமைப்பு விரிவுபடுத்தப்பட்டிருக்கிறது என்பதைக் கண்டறிவதற்குச் சாத்தியம் இல்லை; இதைப் புரிந்து கொள்வதற்கு சிக்கல் டொமைனில் அறிவு இருக்கவேண்டியது அவசியம். எடுத்துக்காட்டாக ஒரு முதலாளி சில பணியாளர்களுக்கு நியூயார்க் நகரம் மற்றும் லண்டன் போன்று இரண்டு இடங்களில் அவர்களது நேரத்தைப் பிரித்துக் கொடுக்கும் தேவை உடையவராக இருக்கிறார். அதனால் அட்டவணையில் ஒரு பணியாளர்களுக்கு ஒன்றுக்கு மேற்பட்ட பணியாளர் முகவரி இருப்பதற்கு அனுமதி அளிக்கப்பட்டிருக்க வேண்டும். இந்த நிகழ்வில் பணியாளர் முகவரி நீண்டகாலத்திற்கு பணியாளர் IDக்குச் செயல்பாட்டுச் சார்புநிலை உடையதாக இருக்காது.  
மேற்கண்டவற்றைப் பார்ப்பதற்கான மற்றொரு வழி அடிப்படைக் கணிதச் செயல்பாடுகளைத் திறனாய்வு செய்தல் ஆகும்:  
**F(x)** என்பது ஒரு சார்பற்ற மாறியின் ஒற்றை-மதிப்புடைய செயல்பாடாக இருக்கிறது. சார்பற்ற மாறி கற்பிதம் A வுக்கு ஒத்ததாக இருக்கிறது. சார்பு மாறி (அல்லது மேற்கண்ட சொல்லைப் பயன்படுத்திச் சார்புக் கற்பிதம்) மற்றும் இப்போதிருந்து செயல்பாட்டுச் சார்புநிலை என்ற வார்த்தை F(A) இன் மதிப்பாக இருக்கிறது; A என்பது சார்பற்றக் கற்பிதம் ஆகும். வரையறை ரீதியாக ஒற்றை-மதிப்புடைய செயல்பாடுகள் ஒரே ஒரு வெளியீட்டை மட்டுமே கொண்டிருக்க முடியும். குறிப்பிட்டுச் சொல்லும்போது இந்தத் தொடர்பைக் கணிதத்தில் **F(A) = B** அல்லது **F : A → B** என்று குறிப்பிடுவது பொதுவான ஒன்றாகும்.  
பொதுவாக ஒன்றுக்கு மேற்பட்ட சார்பற்ற மாறிகளின் செயல்பாடுகளும் இருக்கின்றன. அவை பலமாறிச் செயல்பாடுகள் எனக் குறிப்பிடப்படுகின்றன. ஒரு கற்பிதம் ஆனது கற்பிதங்களின் தொகுப்புடன் செயல்பாட்டுச் சார்புநிலையை இந்த உத்தி கொண்டிருக்கலாம் என்பதைக் குறிப்பிடுகிறது. இதனால் ஒற்றை-மதிப்புடைய **F(x,y,z)** மூன்று சாரா மாறிகள் அல்லது சார்பற்ற கற்பிதங்கள் மற்றும் **F(x,y,z)** என்று அழைக்கப்படும் ஒரு சார்புக் கற்பிதத்தைக் கொண்டிருக்கிறது.  
;**சாரமற்ற செயல்பாட்டுச் சார்புநிலை**
: சாரமற்ற செயல்பாட்டுச் சார்புநிலை தன்னகத்தே கற்பிதத்தின் சூப்பர்செட்டைக் கொண்டிருக்கும் செயல்பாட்டுச் சார்புநிலை ஆகும். {பனியாளர் ID, பணியாளர் முகவரி} → {பணியாளர் முகவரி} என்பது {பணியாளர் முகவரி} → {பணியாளர் முகவரி} என்ற சாரமற்றதாக இருக்கிறது.  
; முழுச் செயல்பாட்டுச் சார்புநிலை
: ஒரு கற்பிதம் X கற்பிதங்களின் தொகுப்பின் மீது முழுச் செயல்பாட்டுச் சார்புநிலை உடையதாக இருக்கிறது. இதில்  
:
:* X மீது செயல்பாட்டுச் சார்புநிலை கொண்டிருத்தல், மற்றும்
:* X இன் துல்லியமான உபதொகுப்பின் மீது செயல்பாடு ரீதியாக சார்ந்திராமல் இருத்தல். {பனியாளர் முகவரி} ஆனது {பணியாளர் ID, திறன்} மீது செயல்பாட்டுச் சார்புநிலை கொண்டிருக்கிறது, ஆனால் *முழுச்* செயல்பாட்டுச் சார்புநிலை கொண்டிருக்காது, ஏனெனில் இது {பணியாளர் ID} ஐச் சார்ந்ததாகவும் இருக்கிறது.
; டிரான்சிடிவ் சார்சார்புநிலை
: டிரான்சிடிவ் சார்புநிலை என்பது நேரடியல்லாத செயபாட்டுச் சார்புநிலையாக இருக்கிறது, அவற்றில் ஒன்று *X* →*Z* *X* →*Y* மற்றும் *Y* →*Z* இன் தன்மையை மட்டுமே கொண்டதாக இருக்கிறது.  
; பல்மதிப்புடைய சார்புநிலை
: பல்மதிப்புடைய சார்புநிலை என்பது ஒரு அட்டவணையில் சில பத்திகளின் இருப்பு மற்ற சில பத்திகளின் இருப்பைச் சுட்டிக்காட்டுவதைப் பொறுத்துக் கட்டுப்படுத்துவதாக இருக்கிறது.  
; இணைப்புச் சார்புநிலை
: அட்டவணை *T* ஆனது *T* எப்போதும் இணைக்கப்பட்ட மற்ற பல அட்டவணைகளால் மறு உருவாக்கம் செய்யப்பட்டால் இணைப்புச் சார்புநிலை கொண்டதாக குறிப்பிடப்படுகிறது. மற்ற அட்டவணைகள் ஒவ்வொன்றும் *T* இன் உப தொகுப்பைக் கொண்டதாக இருக்கும்.  
; சூப்பர்கீ
: சூப்பர்கீ என்பது அட்டவணையில் தனித்துவமாக அடையாளம் காணப்படும் பத்திகளின் கற்பிதம் அல்லது கற்பிதங்களின் தொகுப்பு ஆகும்; இன்னொரு வகையில் இரண்டு மாறுபட்ட பத்திகள் கட்டாயமாக இரண்டு மாறுபட்ட சூப்பர்கீகளைக் கொண்டிருக்கும். {பணியாளர் ID, பணியாளர் முகவரி, திறன்} ஆகியவை "பணியாளர்கல் திறன்கள்" அட்டவணைக்கான சூப்பர்கீயாக இருக்கலாம்; {பணியாளர் ID, திறன்} ம் கூட சூப்பர்கீயாக இருக்கலாம்.  
; கேண்டிடேட் கீ
: கேண்டிடேட் கீ என்பது சுருக்கப்பட்ட சூப்பர்கீ ஆகும். அது ஒரு சூப்பர்கீயாகவும் இருப்பதின் சரியான உப தொகுப்பாக இல்லாமல் இருக்கிறது என்று கூற முடிகிற ஒரு சூப்பர்கீ ஆகும். {பணியாளர் Id, திறன்} என்பது "பணியாளர்கள் திறன்கள்" அட்டவனைக்கு கேண்டிடேட் கீயாக இருக்கலாம்.  
; முதல்நிலை சாராக் கற்பிதம்
: முதல்நிலை சாராக் கற்பிதம் எந்த கேண்டிடேட் கீயிலும் இல்லாத கற்பிதம் ஆகும். பணியாளர் முகவரி ஆனது "பணியாளர்கள் திறன்கள்" அட்டவணையில் ஒரு முதல்நிலை சாராக் கற்பிதமாக இருக்கிறது.  
; பிரைமரி கீ
: பெரும்பாலான DBMSகளின் அட்டவணைகளில் பல சாத்தியகூறுள்ள தனித்த கீகளைக் கொண்டிருக்க வேண்டும் என்பதற்கு மாறாக ஒற்றை தனித்த கீயைக் கொண்டிருக்க வேண்டும் என்பது தேவையாக இருக்கிறது. பிரைமரி கீ என்பது தரவுத்தள வடிவமைப்பாளர் அவரது தேவைக்காக நியமித்த ஒரு கீ ஆகும்.