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


தொடர்புசார் தரவுத்தள வடிவமைப்புத் துறையில் இயல்பாக்கம் என்பது தரவுத்தளக் கட்டமைப்பானது பொதுப் பயன்பாட்டு வினவலுக்குப் பொருத்தமாக இருத்தல் மற்றும் தரவு ஒருமைப்பாட்டின் இழப்பிற்கு வழிவகுக்கக் கூடிய உட்புகுத்தல், புதுப்பித்தல் மற்றும் நீக்குதல் ஆகியவற்றின் ஒழுங்கின்மைகளை உருவாக்கும் விரும்பத்தகாத சில பண்புருக்களை நீக்குதல் ஆகியவற்றுக்கு உறுதியளிக்கும் முறைப்படுத்தப்பட்ட வழிமுறை ஆகும். தொடர்புசார் மாதிரியை உருவாக்கியவரான எக்கர் எஃப். கோட் இயல்பாக்கத்தின் உத்தியை 1970 ஆம் ஆண்டில் அறிமுகப்படுத்தினார். மேலும் அதை நாம் தற்போது முதல் இயல்பு வடிவம் (1NF) என அறிகிறோம். கோட் 1971 ஆம் ஆண்டில் இரண்டாம் இயல்பு வடிவம் (2NF) மற்றும் மூன்றாம் இயல்பு வடிவம் (3NF) ஆகியவற்றை வரையறுத்தார். மேலும் 1974 ஆம் ஆண்டில் கோட் மற்றும் ரேமண்ட் எஃப். பாய்ஸ் இருவரும் பாய்சி-கோட் இயல்பு வடிவத்தை (BCNF) வரையறுத்தனர். அதற்கடுத்த ஆண்டுகளில் அடுத்த உயர் இயல்பு வடிவங்கள் மற்ற கருத்தியலாளர்களால் வரையறுக்கப்பட்டன. மிகவும் சமீபத்தியதாக இருக்கும் ஆறாவது இயல்பு வடிவம் (6NF) 2002 ஆம் ஆண்டில் கிரிஸ் டேட், ஹக் டார்வென் மற்றும் நிக்கோஸ் லோரண்ட்சோஸ் ஆகியோரால் அறிமுகப்படுத்தப்பட்டது.  

ஒழுங்குமுறை சாராத தொடர்புசார் தரவுத்தள அட்டவணை (தொடர்பின் கணினிமயமாக்கல் வெளிப்பாடு) மூன்றாம் இயல்பு வடிவத்தில் இருந்தால் "இயல்பாக்கப்பட்டதாக" வரையறுக்கப்படுகிறது. பெரும்பாலான 3NF அட்டவணைகள் உட்புகுத்தல், புதுப்பித்தல் மற்றும் நீக்குதல் ஆகிய ஒழுங்கின்மைகள் இல்லாமல் செய்கின்றன. அதாவது பெரும்பாலான நிகழ்வுகளில் 3NF அட்டவணைகள் BCNF, 4NF மற்றும் 5NF ஆகியவற்றால் கடைபிடிக்கப்படுகின்றன (ஆனால் பொதுவாக 6NF ஆல் அல்ல).  

தரவுத்தள வடிவமைப்பு வழிகாட்டியின் வழக்கமான பகுதி, வடிவமைப்பாளர் முழுமையாக இயல்பாக்கப்பட்ட வடிவமைப்பை உருவாக்குதல் வேண்டும் என்பதாகும்; செயல்திறன் காரணங்களுக்காக தேர்ந்தெடுக்கப்பட்ட இயல்பாக்கக் குறைப்பு தொடர்ந்து செயல்படுத்தப்படலாம். எனினும் டேட்டா வேர்ஹவுஸ் வடிவமைப்புக்கு பரிமாண மாதிரியமைத்தல் அணுகுமுறை போன்ற சில மாதிரியமைத்தல் நடவடிக்கைகளில் இயல்பாக்கப்படாத வடிவமைப்புகள் திட்டவட்டமாக பரிந்துரைக்கப்படுகின்றன. அதாவது வடிவமைப்புகளின் பெரும்பாலான பகுதிகள் 3NF பின்பற்றப்பட்டிருக்காது.  

## இயல்பாக்கத்தின் குறிக்கோள்கள்
1970 ஆம் ஆண்டில் கோடினால் வரையறுக்கப்பட்ட முதல் இயல்பு வடிவத்தின் அடிப்படைக் குறிக்கோள் முதல்-வரிசை தருக்கத்தை அடித்தளமாகக் கொண்டு "உலகளாவியத் தரவு உப-மொழியைப்" பயன்படுத்தி வினவல் மற்றும் கையாளுதல் ஆகியவற்றை தரவுக்கு அனுமதிப்பதாகும். (SQL அது போன்ற தரவு உப-மொழிக்கு எடுத்துக்காட்டு ஆகும். எனினும் கோட் தீவிரமாகக் குறைபாடுடையதாகக் கருதினார்.) பின்வரும் வாடிக்கையாளர்களின் கடன் அட்டைப் பரிமாற்றங்களின் 1NF சாராத குறிப்பிடுதல் போன்ற இயல்பாக்கப்பட்டிராத தரவுக் கட்டமைப்பினுள் வினவல் மற்றும் கையாளுதல், அதற்கு உண்மையில் தேவைப்படுவதைக் காட்டிலும் மிகவும் சிக்கலுடையதாக இருக்கிறது:  

|-  
| | ஜோன்ஸ்  
| 12904 | 15-அக்டோபர்-2003 | -50 | } |
| --- | --- | --- | --- |
|-  
| | வில்கின்ஸ்  
|-  
| | ஸ்டீவன்ஸ்  
| 14920 | 20-நவம்பர்-2003 | -70 |  |
| --- | --- | --- | --- |
| 15003 | 27-நவம்பர்-2003 | -60 | } |
|}  

ஒவ்வொரு வாடிக்கையாளருக்கும் அவர்களது பரிமாற்றங்களின் *மீண்டும்வரும் குழுக்கள்* . வாடிக்கையாளர்கள் பரிமாற்றங்கள் தொடர்புடைய ஏதேனும் ஒரு வினவலின் தானியங்கு மதிப்பீடு, பரவலாக பின்வரும் இரண்டு நிலைகள் தொடர்புடையவையாக இருக்கின்றன:  
1. ஒன்று அல்லது பல வாடிக்கையாளர்கள் குழுக்களின் பரிமாற்றங்களைக் கட்டவிழ்த்தல், குழுவில் தனிப்பட்ட பரிமாற்றங்களை ஆராய்வதற்கு அனுமதிக்கிறது மற்றும்
1. முதல் நிலையின் முடிவுகள் சார்ந்து வினவல் முடிவை வருவித்தல்

எடுத்துக்காட்டாக அனைத்து வாடிக்கையாளர்களுக்கும் 2003 ஆம் ஆண்டு அக்டோபர் மாதத்தில் நடைபெற்ற அனைத்து பரிமாற்றங்களின் செலவழித்த தொகையைக் கண்டறிவதற்காக அமைப்பானது முதலில் குழுவில் உள்ள அனைத்து வாடிக்கையாளர்களின் *பரிமாற்றங்களையும்* திறக்க வேண்டும். பின்னர் அவற்றில் 2003 ஆம் ஆண்டு அக்டோபர் என்ற தேதியில் கீழ் அடங்கும் அனைத்து பரிமாற்றங்களின் *தொகைகளையும்* கூட்ட வேண்டும்.  

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

| வாடிக்கையாளர் | Tr. ID | தேதி | தொகை |  |
| --- | --- | --- | --- | --- |
| ஜோன்ஸ் | 12890 | 14-அக்டோபர்-2003 | -87 |  |
| ஜோன்ஸ் | 12904 | 15-அக்டோபர்-2003 | -50 |  |
| வில்கின்ஸ் | 12898 | 14-அக்டோபர்-2003 | -21 |  |
| ஸ்டீவன்ஸ் | 12907 | 15-அக்டோபர்-2003 | -18 |  |
| ஸ்டீவன்ஸ் | 14920 | 20-நவம்பர்-2003 | -70 |  |
| ஸ்டீவன்ஸ் | 15003 | 27-நவம்பர்-2003 | -60 | } |

தற்போது ஒவ்வொரு பத்தியும் தனிப்பட்ட கடன் அட்டை பரிமாற்றத்தைக் குறிப்பிடுகிறது. மேலும் DBMS கேள்விக்கு பதிலளிக்கும் முயற்சியாக எளிமையாக அக்டோபரின் கீழ் வரும் அனைத்து தேதிகளின் அனைத்து பத்திகளையும் கண்டறிந்து பின்னர் அவற்றின் தொகைகளைக் கூட்டலாம். தரவுக் கட்டமைபின் அனைத்து மதிப்புகளுக்கும் சம மதிப்பே வழக்கப்படும்: அவை அனைத்தும் நேரடியாக DBMSக்கு வெளிப்படையானதாக இருக்கும். மேலும் வினவல்களில் நேரடியாக பங்கு பெறலாம். எனினும் முந்தைய சூழல்களில் சில மதிப்புகள் கீழ்-நிலைக் கட்டமைப்புகளில் பதிக்கப்பட்டவைகளாக இருக்கலாம். அவற்றைத் தனியாகக் கையாள வேண்டியிருந்தது. அதன் விளைவாக இயல்பாக்கப்பட்ட வடிவம் தனக்குள்ளேயே பொதுப் பயன்பாட்டு வினவல் செயல்பாட்டைக் கொண்டிருந்தது. அதேசமயம் இயல்பாக்கபடாத வடிவம் இதனைக் கொண்டிராது.  

1NF க்கு அப்பால் இயல்பாக்கத்தின் குறிக்கோள்கள் கோடினால் பின்வருமாறு குறிப்பிடப்பட்டது:  

கீழே கொடுக்கப்பட்டிருக்கும் பகுதிகள் இந்த நோக்கங்களை ஒவ்வொன்றையும் பற்றிய விளக்கங்களாகும்.  

### மாற்றப்படும் ஒழுங்கின்மையின் தரவுத்தளத்தை நீக்குதல்

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

- ஒரே தகவல் பல பத்திகளில் வெளிப்படுத்தப்பட்டிருக்கலாம்; அதனால் அட்டவனையில் புதுப்பித்தல்கள் தருக்க ரீதியான ஒத்திசைவின்மையை ஏற்படுத்தலாம். எடுத்துக்காட்டாக "பணியாளரின் திறன்கள்" அட்டவணையின் ஒவ்வொரு பதிவும் பணியாளர் ID, பணியாளர் முகவரி மற்றும் திறன் ஆகியவற்றைக் கொண்டிருக்கலாம்; ஆகையால் ஒரு குறிப்பிட்ட பணியாளரின் முகவரியை மாற்றுவதற்கு பல பதிவுகளில் (அவரது திறன்களின் அனைத்திற்குமான ஒன்று) மாற்றம் செய்ய வேண்டி இருக்கலாம். புதுப்பித்தல் வெற்றிகரமாக செயல்படுத்தப்படவில்லை எனில் அதாவது, பணியாளரின் முகவரி சில பதிவுகளில் புதுப்பிக்கப்படவில்லை எனில் அட்டவணையானது பின்னர் ஒத்திசைவில்லாத நிலையுடன் இருக்கலாம். குறிப்பாக அந்தக் குறிப்பிட்ட பணியாளரின் முகவரி பற்றி கேட்கப்படும் போது அட்டவணை முரணான பதிலை வழங்கும். இந்த நிகழ்வு **புதுப்பித்தல் ஒழுங்கின்மை** என அறியப்படுகிறது.
- சில உண்மைகளை எப்போதும் பதிவு செய்ய இயலாத சூழ்நிலைகள். எடுத்துக்காட்டாக "ஆசிரியர் மற்றும் அவர்களது பாடப்பிரிவுகள்" அட்டவணையில் ஒவ்வொரு பதிவும் ஆசிரியர் ID, ஆசிரியர் பெயர், ஆசிரியர் சேர்ந்த தேதி மற்றும் பாடப்பிரிவுக் குறியீடு ஆகியவற்றைக் கொண்டிருக்கலாம். ஆகையால் அந்த அட்டவணையில் ஏதேனும் ஒரு பாடப்பிரிவிலானது பணியாற்றும் ஆசிரியரின் விவரங்களைப் பதிய முடியும். ஆனால் புதிதாக சேர்ந்த ஆசிரியர் ஒருவருக்கு அவருக்கு எந்த பாடப்பிரிவும் ஒதுக்கப்படாமல் இருந்தால் அவரின் தகவல்களைப் பதிவு செய்ய முடியாது. இந்த நிகழ்வு **உட்செலுத்துதல் ஒழுங்கின்மை** என அறியப்படுகிறது.
- சில தரவுகளை அழிப்பதற்கு முயல்கையில் அதற்கு பதிலாக முழுமையாக மாறாக தவல்களை அழித்து விடும் சூழல்கள் முந்தைய எடுத்துக்காட்டில் குறிப்பிடப்பட்டிருக்கும் "ஆசிரிய மற்றும் அவர்களது பாடப்பிரிவுகள்" அட்டவணை இந்த வகை ஒழுங்கின்மையினால் பாதிக்கப்பட்டிருக்கும், ஒரு ஆசிரியரைத் தற்காலிகமாக ஏதேனும் ஒரு பாடப்பிரிவில் இருந்து நீக்கிவிட முடிவு செய்தால் நான் அந்த ஆசிரியர் பெயர் இருக்கும் இறுதிப் பதிவுகளை நீக்க வேண்டும். இந்த நிகழ்வு **நீக்கல் ஒழுங்கின்மை** என அறியப்படுகிறது.

### தரவுத்தள கட்டமைப்பை விரிவாக்கும் போது மறுவடிவமைப்பைக் குறைத்தல்
முழுமையாக இயல்பாக்கப்பட்ட தரவுத்தள கட்டமைப்பு தரவின் புதிய வகைகளுக்கு இடமளிப்பதற்கு அனுமதிக்கப்படுவதற்கு விரிவாக்கப்படும் போது தரவுத்தளக் கட்டமைப்பில் ஏற்கனவே உள்ள அம்சங்கள் நீண்டதாக நீடித்திருக்கலாம் அல்லது முழுமையாக மாற்றமுடியாததாக இருக்கலாம். அதன் விளைவாக தரவுத்தளத்துடன் தொடர்புகொள்ளும் பயன்பாடுகள் சிறிதளவு பாதிக்கப்படும்.  

### தரவு மாதிரியை பயனர்களுக்கு மிகவும் பயன்மிக்கதாக உருவாக்குதல்
இயல்பாக்கப்பட்ட அட்டவணைகள் மற்றும் ஒரு இயல்பாக்கப்பட்ட அட்டவணை மற்றும் மற்றொறு பிரதிபலிப்பு நிகழ் உலக உத்திகள் மற்றும் அவற்றின் உட்புறத் தொடர்புகள் ஆகியவற்றுக்கு இடையில் தொடர்பு.  

### ஒரு குறிப்பிட்ட வினவல் உருமாதிரியை நோக்கிய ஒரு சார்பைத் தவிர்த்தல்
இயல்பாக்கப்பட்ட அட்டவணைகள் பொதுப் பயன்பாட்டு வினவலுக்குப் பொருத்தமானவை. அதாவது அந்த அட்டவணைகள் எதிர்காலத்தில் எதிர்பார்க்க முடியாத வினவல்கள் உள்ளிட்ட வினவல்களை ஆதரிக்கின்றன. மாறாக இயல்பாக்கப்படாத அட்டவணைகள் அவற்றுக்குள் சில வகை வினவல்களைப் பெற்றுக்கொள்ளும் ஆனால் மற்றவையில் இருந்து அல்ல.  

## இயல்பாக்கத்துக்கான பின்னணி: வரையறைகள்
- **செயல்பாட்டுச் சார்புநிலை**: கற்பிதம் 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களின் அட்டவணைகளில் பல சாத்தியகூறுள்ள தனித்த கீகளைக் கொண்டிருக்க வேண்டும் என்பதற்கு மாறாக ஒற்றை தனித்த கீயைக் கொண்டிருக்க வேண்டும் என்பது தேவையாக இருக்கிறது. பிரைமரி கீ என்பது தரவுத்தள வடிவமைப்பாளர் அவரது தேவைக்காக நியமித்த ஒரு கீ ஆகும்.  

## இயல்பு வடிவங்கள்
தொடர்புசார் தரவுத்தளக் கோட்பாட்டின் **இயல்பு வடிவங்கள்** (**NF** என சுருக்கப்படுகிறது) அட்டவணையின் தருக்க ரீதியான முரண்பாடு மற்றும் ஒழுங்கின்மைகளுக்கு தாக்குதல் அடையக்கூடிய அளவைக் தீர்மானிப்பதற்கான விதிகளை வழங்குகின்றன. உயர்நிலை இயல்பு வடிவம் பயன்படுத்தப்படும் அட்டவணை, முரண்பாடு மற்றும் ஒழுங்கின்மைகளின் குறைவாக பாதிக்கப்படக்கூடியதாக இருக்கும். ஒவ்வொரு அட்டவணையும் "**உயர்நிலை இயல்பு வடிவத்தைக்** " (**HNF** ) கொண்டிருக்கும்: வரையறை ரீதீயாக, ஒரு அட்டவணை எப்போதும் அதன் HNF இன் தேவைகளை எதிர்கொள்ளும். மேலும் அனைத்து இயல்பு வடிவங்களும் அதன் HNF ஐக் காட்டிலும் குறைவானதாக இருக்கும்; மேலும் வரையறை ரீதியாக, ஒரு அட்டவணை அதன் HNF ஐக் காட்டிலும் அதிகமாக இயல்பு வடிவங்களின் தேவைகளை எதிர்கொள்வதில் தோல்வி அடைகிறது.  

இயல்பு வடிவங்கள் தனிப்பட்ட அட்டவணைகளில் பொருந்தக்கூடியதாக இருக்கின்றன; முழுத் தரவுத்தளமும் இயல்புவடிவம் *n* இல் இருப்பதாகக் கொண்டால் அதன் அனைத்து அட்டவணைகளும் இயல்பு வடிவம் *n* இல் இருப்பதாகக் கூறலாம்.  

தரவுத்தள வடிவமைப்பிற்கு புதிதாக வந்தவர்கள் சிலநேரங்களில் இயல்பாக்கம் மறுசெய்கை நடைமுறையில் தொடர்வதாகக் கருதலாம். அதாவது 1NF வடிமைப்பு முதலில் 2NF க்கு இயல்பாக்கப்பட்டு பின்னர் 3NF வது மற்றும் அதனைத் தொடர்ந்தவைகளைத் தொடரும் என்பது போல. இது இயல்பாக்கம் எப்படி பொதுவாக வேலை செய்கிறது என்பதற்கு சரியான விளக்கம் அல்ல. நடைமுறைக்கேற்ப வடிவமைக்கப்பட்ட அட்டவணை முதல் முயற்சியிலேயே 3NF ஐக் கொண்டிருப்பதற்கு வாய்ப்பு இருக்கிறது; மேலும் அது 3NF இல் இருந்தால் அது பேரளவில் 5NF இன் HNF ஐக் கொண்டிருப்பதற்குச் சாத்தியம் இருக்கிறது. "உயர்" இயல்பு வடிவங்களை (3NF க்கு மேல்) அடைவதற்கு பொதுவாக வடிவமைப்பாளரின் பகுதியின் மீதான முயற்சியில் கூடுதல் செலவு தேவையிருக்காது. ஏனெனில் 3NF அட்டவணைகளில் பொதுவாக உயர் இயல்பு வடிவங்களின் தேவைகளை எதிர்கொள்வதற்கு எந்த மாற்றங்களும் தேவை இருக்காது.  

முக்கிய இயல்பு வடிவங்களின் சுருக்கம் பின்வருமாறு.  

| முதல் இயல்பு வடிவம் (1NF) | இரண்டு பதிப்புகள்: ஈ.எஃப். கோட் (1970), சீ.ஜே. டேட் (2003) | அட்டவணையில் உண்மையில் தொடர்பில் குறிப்பிடப்படுகிறது, மேலும் *மீண்டும் வரும் குழுக்கள்* இருக்காது |  |
| --- | --- | --- | --- |
| இரண்டாம் இயல்பு வடிவம் (2NF) | ஈ.எஃப். கோட் (1971) | ஒவ்வொரு முதல்நிலை சாராக் கற்பிதம் அட்டவணையின் ஒவ்வொரு கீ மீதும் கடப்பு சாராமல் சார்ந்ததாக இருக்கிறது |  |
| பாய்சி-கோட் இயல்பு வடிவம் (BCNF) | ரேமண்ட் எஃப். பாய்சி மற்றும் ஈ.எஃப். கோட் (1974) | அட்டவணையில் ஒவ்வொரு சாரமற்றதல்லாத செயல்பாட்டுச் சார்புநிலை சூப்பர்கீ மீது சார்புநிலை கொண்டதாக இருக்கிறது |  |
| நான்காம் இயல்பு வடிவம் (4NF) | ரொனால்ட் ஃபாகின் (1977) | அட்டவணையில் ஒவ்வொரு சாரமற்றதல்லாத பலமதிப்புடையச் சார்புநிலை சூப்பர்கீ மீது சார்புநிலை கொண்டதாக இருக்கிறது |  |
| ஐந்தாம் இயல்பு வடிவம் (5NF) | ரொனால்ட் ஃபாகின் (1979) | அட்டவணையில் ஒவ்வொரு சாரமற்றதல்லாத இணைப்புச் சார்புநிலை அட்டவணையின் சூப்பர்கீகளினால் குறிப்பிடப்படுவதாக இருக்கிறது |  |
| டொமைன்/கீ இயல்பு வடிவம் (DKNF) | ரொனால்ட் ஃபாகின் (1981) | அட்டவணை மீது ஒவ்வொரு கட்டுப்பாடும் அட்டவணையின் டொமைன் கட்டுப்பாடுகள் மற்றும் கீ கட்டுப்பாடுகளின் தருக்க ரீதியான பின்விளைவாக இருக்கிறது |  |
| ஆறாம் இயல்பு வடிவம் (6NF) | சீ.ஜே. டேட், ஹக் டார்வன் மற்றும் நிக்கோஸ் லொரண்ட்சோஸ் (2002) | அட்டவணைச் சிறப்புக்கூறுகள் எப்போதும் (பொதுமைப்படுத்தப்பட்ட இணைப்பு இயக்கியைக் குறிப்பிடுவதுடன்) சாரமற்றதல்லாத இணைப்புச் சார்புநிலையைக் கொண்டிராது | } |

## இயல்பாக்கக் குறைப்பு

ஆன்லைன் பரிமாற்ற செயல்படுத்தலுக்காக (OLTP) பயன்படுத்தப்படும் தரவுத்தளங்கள் பொதுவாக ஆன்லைன் பகுமுறைச் செயல்படுத்தலுக்காக (OLAP) பயன்படுத்தப்படும் தரவுத்தளங்களைக் காட்டிலும் மிகவும் அதிகமாக இயல்பாக்கப்பட்டிருக்கும். OLTP பயன்பாடுகள் பல்பொருள் அங்காடி பணம் செலுத்தும் இடத்தில் விற்பனைப் பதிவைப் புதுப்பித்தல் போன்ற சிறிய பரிமாற்றங்களின் அதிக அளவுகளின் பண்புகளைக் கொண்டிருக்கின்றன. ஒவ்வொரு பரிமாற்றமும் தரவுத்தளத்தை உடன்பாடான நிலையில் வைத்திருக்க வேண்டும் என எதிர்பார்க்கப்படுகிறது. மாறாக OLAP செயல்பாடுகளுக்காக பயன்படுத்தப்படும் தரவுத்தளங்கள் முதன்மையாக "பெரும்பாலும் படிக்கப்படும்" தரவுத்தளங்களாக இருக்கின்றன. OLAP பயன்பாடுகள் நீண்ட காலத்திற்குச் சேர்க்கப்பட்டிருக்கும் நீண்டகாலத் தரவுகளை பிரித்தெடுப்பதற்குப் பயன்படுத்தப்படுகின்றன. அது போன்ற தரவுத் தளத்துக்காக மிகையான அல்லது "இயல்பு குறைக்கப்பட்ட" தரவு, வணிக நுண்ணறிவுப் பயன்பாடுகளுக்கு வசதியளிக்கலாம். குறிப்பாக ஸ்டார் ஸ்கீமாவின் பரிமாண அட்டவணைகள் பொதுவாக இயல்பு குறைக்கப்பட்ட தரவைக் கொண்டிருக்கின்றன. இயல்பு குறைக்கப்பட்ட அல்லது மிகையான தரவு, பிரித்தெடுத்தல், பரிமாற்றம், ஏற்றுதல் (ETL) செயல்பாடுகளின் போது கவனமாக கட்டுப்படுத்தப்பட வேண்டும். மேலும் பயனர்களை அது உடன்பாடான நிலையை அடையும் வரை தரவைப் பார்ப்பதற்கு அனுமதிக்கக் கூடாது. ஸ்டார் ஸ்கீமாவுக்கான இயல்பாக்கப்பட்ட மாற்று ஸ்னோஃபிளாக் ஸ்கீமா ஆகும். பல நிகழ்வுகளில், இயல்பு குறைப்பின் தேவை, கணினிகள் மற்றும் RDBMS மென்பொருள் மிகவும் ஆற்றல் நிறைந்ததாக இருப்பதற்காகக் குறைவாக இருக்கிறது. ஆனால் வன்பொருள் மற்றும் மென்பொருள் செயல்திறன்களுடன் இணைந்து தரவு அளவுகளும் பொதுவாக அதிகரித்த போதும் OLAP தரவுத்தளங்கள் இன்னும் இயல்பு குறைக்கப்பட்ட ஸ்கீமாக்களைப் பயன்படுத்திவருகின்றன.  

இயல்பாக்கக் குறைப்பானது கணினி மயமாக்கப்பட்ட தொகைப் பதிவேடுகள் மற்றும் செல்லிடக் கருவிகள் போன்ற சிறிய கணினிகளில் செயல்திறனை மேம்படுத்துவதற்காகவும் பயன்படுத்தப்படுகின்றன. இருந்த போது இந்தத் தரவுகள் பார்ப்பதற்காக பயன்படுத்தப்படும் தரவாக மட்டும் இருக்கலாம் (எ.கா. விலை பார்த்தல்). இயல்பாக்கக் குறைப்பு, இயங்குதளத்திற்கான (பாம் போன்ற) எந்த RDBMS ம் இல்லாத போது அல்லது தரவு எந்த மாற்றங்களும் தேவையிராத மற்றும் உடனடியான பதில் இன்றியமையாததாக இருக்கும் இடங்களிலும் பயன்படுத்தப்படுகிறது.  

### முதல் அல்லாத இயல்பு வடிவம் (NF² அல்லது N1NF)
இயல்பாக்கக் குறைப்பு வேண்டுமென்றே செய்யப்பட்டதாகவும் பயன் நிறைந்ததாகவும் இருக்கலாம் என்பதை ஏற்றுக்கொள்வதில், "தொகுப்புகள் மற்றும் தொகுப்புகளின் தொகுப்புகளைக் கற்பித டொமைன்களாக" (ஸ்செக் 1982) அனுமதிப்பதன் மூலமாக, முதல் அல்லாத இயல்பு வடிவம் முதல் இயல்பு வடிவத்துக்கு உறுதியளிக்க இயலாதத் தரவுத்தள வடிவமைப்பின் வரையறையாக இருக்கிறது. மாதிரியில் வினவல் மற்றும் தரவைக் கையாளுவதற்காக பயன்படுத்தப்படும் மொழிகள் அது போன்ற மதிப்புகளை ஆதரிப்பதைச் சார்ந்து விரிவாக்கப்பட வேண்டும்.  

இதனைப் பார்ப்பதின் ஒரு வழி அவற்றின் சொந்த டொமைன்-சார்ந்த மொழிகளுடன் மதிப்புகளின் (டொமைன்கள்) சிறப்பு வகைகளைக் கொண்டதாக கட்டமைக்கப்பட்ட மதிப்புகள் போன்று கருதப்படுவது ஆகும். எனினும் 1NF அல்லாத மாதிரிகள் பொதுவாக தொடர்புசார் மாதிரி மற்றும் அது போன்ற கட்டமைப்புக்காக பொது இயக்கமைப்புடன் விரிவாக்கப்படும் வினவலுக்குப் பயன்படுத்தப்படும் மொழிகள் ஆகியவை கொண்ட அணுகுமுறையாக இருக்கிறது; எடுத்துக்காட்டாக நெஸ்டட் தொடர்புசார் மாதிரி தொடர்புசார் அல்ஜீப்ராவுக்கு முறையே நெஸ்டட் தொடர்புகளை உருவாக்கவும் பயனற்றதாகவும் செய்யக்கூடிய இரண்டு கூடுதல் இயக்கிகளை (*நெஸ்ட்* மற்றும் அன்னெஸ்ட்) இணைப்பதன் மூலமாக டொமைன் மதிப்புகளாக தொடர்புகளின் பயன்பாட்டை ஆதரிக்கிறது.  

பின்வரும் அட்டவணையை எடுத்துக்கொண்டால்:  

**முதலாம் இயல்பு வடிவம்**

| நபர் | விருப்பமான நிறம் |  |
| --- | --- | --- |
| போப் | நீலம் |  |
| போப் | சிவப்பு |  |
| ஜேன் | பச்சை |  |
| ஜேன் | மஞ்சள் |  |
| ஜேன் | சிவப்பு | } |

ஒரு நபர் பல்வேறு விருப்பமான நிறங்களை உடையவராகக் கொண்டால். நிச்சயமாக, விருப்பமான நிறங்கள் கொடுக்கப்பட்ட அட்டவணையால் மாதிரியாக்கப்பட்ட நிறங்களின் தொகுப்பில் இடம்பெற்றிருக்கும். 1NF இல் இருந்து NF² ஆக அட்டவணையாக மாற்றுவதற்கு "நெஸ்ட்" இயக்கி தேவையாக இருக்கிறது. அது உயர் இயல்பு வடிவத்தில் தொடர்புசார் அல்ஜீப்ராவில் நீட்டிக்கப்பட்டிருக்கிறது. 1NF அட்டவனையில் "நெஸ்ட்" இயக்கியைப் பயன்படுத்துவது பின்வரும் NF² அட்டவணையை விளைவிக்கும்:  

**முதல் அல்லாத இயல்பு வடிவம்**

| நபர் | விருப்பமான நிறங்கள் |
| --- | --- |
| போப் | ! விருப்பமான நிறம் |
| நீலம் |  |
| சிவப்பு | } |
|-  
| ஜேன்  
**மஞ்சள்**

| சிவப்பு | } |
| --- | --- |
|}  

இந்த NF² அட்டவணையை மீண்டும் 1NF ஆக மாற்றுவதற்கு "அன்னெஸ்ட்" இயக்கி தேவையாக இருக்கிறது, அது உயர் இயல்பு வடிவத்தில் தொடர்புசார் அல்ஜீப்ராவில் நீட்டிக்கப்பட்டிருக்கிறது (அதன் சொந்த அட்டவணையில் "நிறங்களை" அனுமதிக்க வேண்டும்).  

"அன்னெஸ்ட்" ஆனது "நெஸ்டுக்கு" கணித நேர்மாறாக இருந்த போதும் "நெஸ்ட்" இயக்கி ஆனது எப்போதும் "அன்னெஸ்டுக்குக்" கணித நேர்மாறு அல்ல. இயக்கிகள் இருவழிக்கோப்பாக இருப்பதற்குத் தேவைப்படும் மற்றொரு கட்டுப்பாடு பகுதியளவு இயல்பு வடிவத்தில் (PNF) இடம்பெற்றிருக்கிறது.