| செம்மையாக்கல்/சாதாரணமாக்கல் (Normalization) |
|
செவ்வையற்ற தரவு மாதிரியை (Un-normalized Data Model) செவ்வையான தரவு மாதிரியாக மாற்றும் செயற்பாட்டினை செம்மையாக்கல் எனலாம். செவ்வையான தரவு மாதிரியானது ஓர் குறிப்பிட்ட தொகுதி விதிகளுக்கு கீழ்படிந்து காணப்படும். செம்மையாக்கலானது பல கட்டங்களூடாக மேற்கொள்ள வேண்டும். ஒவ்வோர் கட்டச் செம்மையாக்கலையும் ஒவ்வோர் விசேடமான பெயர் கொண்டு அழைப்பார்கள். அவையாவன:
பொதுவாக தொடர்புநிலைத் தரவுத்தளங்கள்(Relational Database) குறைந்த பட்சம் மூன்றாம் செம்மையாக்கல் வரையாவது செம்மையாக்கப்பட்டதாக இருக்கவேண்டும். இத்தனிக்கற்கையில், எளிய உதாரணங்கள் மூலமாக முதன் மூன்று செம்மையாக்கல்களைப் பற்றியே ஆராயவுள்ளோம். முதலாம் செம்மையாக்கல் (INF)உதாரணமாக கீழ்வரும் அட்டவணையை எடுத்துக்கொள்வோம்.
அட்டவணையின் Name மற்றும் Address நெடுவரிசைகளில்(Column) காணப்படும் தரவுகளை மேலும் சிறிய தனித்தனியான தரவுகளாக கீழ்வருமாறு பிரிக்க முடியும்.
முதலாம் செம்மையாக்கலானது இவ்வாறு தரவுகளை மேலும் சிறிய அலகுகளாக பிரிக்க முடியாது என்பதை உறுதிப்படுத்தும். அத்தோடு இச்செம்மையாக்கலானது மீள மீள இருக்கும் தரவுகளை (repeative groups) முடிந்தளவு நீக்கியிருப்பதையும் உறுதிப்படுத்தும். உதாரணமாக மற்றுமொரு அட்டவணையை எடுத்துக்கொள்வோம்.
மேலுள்ள அட்டவணையில் பிரதிநிதி பல வாடிக்கையாளர்களைக் கொண்டிருக்கிறார். ஒவ்வொரு பிரதிநிதியினதும் வாடிக்கையாளர்களின் எண்ணிக்கையினை வரையறுக்க முடியாதென்பதால், மேலுள்ள அட்டவணையினைப் பயன்படுத்தி தரவுகளை செவ்வையாக சேமிக்க முடியாமல் போகும். குறைந்த வாடிக்கையாளரிருப்பின் அட்டவணைகளில் இடைவெளிகளும் கூடிய வாடிக்கையாளர்களிருப்பின் தரவுகளை சேமிக்க போதிய இடம் இல்லாமலும் இருக்கும். எனவே இவ்வாறான மீள மீள வரும் புலப்பெயரினை(Field name) அல்லது குழுப் புலப்பெயர்களினை(Group of Field names) நீக்குவதன் மூலம் இவ்வட்டவணையினை முதலாம் செம்மையாக்கலுக்கு உட்படுத்தலாம்.
ஆனாலும் மேலுள்ள அட்டவணையினை நோக்கும்போது முதன்மைச்சாவியான(Primary Key) RepID இனது தரவுகள் திரும்பத்திரும்ப வந்துகொண்டிருக்கின்றன. ஆகவே இதனை நீக்கும் பொருட்டு ClientID எனும் ஒரு புலப்பெயரினை(Field name) சேர்ப்பதன் மூலம் இவ்வட்டவணையை மூன்றாம் கட்ட செம்மையாக்கல்களுக்கான விதிகள் அனைத்தையும் பூர்த்தி செய்யக்கூடிய அட்டவணையாக கீழுள்ளவாறு மாற்ற முடியும்.
இவ்வட்டவணையில் Rep ID மற்றும் Client ID என்பன ஒன்றிணைந்த சாவியாக (Composite Key) தொழிற்படும். முதலாம் செம்மையாக்கல் பற்றிய மேலதிக விளக்கத்திற்காக கீழ்வரும் அட்டவணையையும் பார்ப்போம்.
இவ் அட்டவணையின் 2ம், 3ம் பதிவுகளும் 125 எனும் Invoice No இற்கு உரியதே. ஆயினும் அதற்கான சில கலங்கள்(Cells) வெற்றிடமாகவே இங்கு காணப்படுகின்றன. அவ்வாறே அட்டவணையின் 5ம் பதிவின் சில கலங்களும்(Cells) வெற்றிடமாகவே காணப்படுகின்றன. இவ்வாறு காணப்படும் இடைவெளிகளை பொருத்தமான பெறுமதிகளைக் கொண்டு நிரப்புவதும் முதலாம் செம்மையாக்கலில் செய்ய வேண்டிய ஒன்றாகும். எனவே இடைவெளிகளை நிரப்புவதன் மூலம் கீழுள்ளவாறு இவ்வட்டவணையை முதலாம் செம்மையாக்கலுக்கு உட்படுத்தலாம்.
குறிப்பு:- முதலாம் செம்மையாக்கல் பற்றி, இருவேறுபட்ட முறையில் விளக்கங்கள் வேறுபட்ட அறிஞர்களினால் தரப்படுகின்றது. எளிய முறையில் இத்தனிக்கற்கையை தருவதன் பொருட்டு, ஒருசாராரினால் ஏற்றுக்கொள்ளப்பட்ட விளக்கமுறை மட்டுமே இத்தனிக்கற்கையில் தரப்படுகின்றது. ஆர்வமுள்ளவர்கள் மற்றைய வேறுபட்ட விளக்கத்திற்கு கீழ்வரும் இணைய முகவரிக்குச் செல்லவும்:- இரண்டாம் செம்மையாக்கல் (2NF)தரவு மாதிரி 1NF இலுள்ளதாகவும், சாவியற்ற(Non key) எல்லா பண்புகளும்(attributes) ஒன்றிணைந்த/முதன்மைச் சாவியில் முழுமையாக சார்புரீதியாக தங்கியிருக்கின்ற (Full Functional Dependency) நிலையிலும், ஒரு தரவு மாதிரியினை 2NF இலுள்ளதாகக் கூறமுடியும். {A relation R is in the second normal form if every nonprime attributes of R is fully functionally dependent on each relation key}உதாரணமாக 1NF செய்யப்பட்ட கீழ்வரும் அட்டவணையைப் பார்ப்போம்.
இவ்வட்டவணையின் ஒன்றிணைந்த சாவிகளான(Composite Keys) Rep ID மற்றும் Client ID என்பவற்றில் மற்றைய சாவியற்ற(non key) எல்லா புலங்களும்(Field) எவ்வாறு முழுமையாக சார்பு ரீதியாக தங்கியிருக்கின்றன என்பதனை முதலில் பரீட்சித்து பார்ப்போம். Rep ID -----> Rep First Name Rep ID -----> Rep Last Name Rep ID --/--> Client Name Rep ID --/--> Time With Client Client ID --/--> Rep First Name Client ID --/--> Rep Last Name Client ID -----> Client Name Client ID --/--> Time With Client Rep Id, Client ID -----> Time With Client இவற்றின் படி Rep First Name மற்றும் Rep Last Name ஆகிய புலங்கள்(Field) ஒன்றிணைந்த சாவிகளில்(Composite Key) ஒன்றான Rep ID யில் மட்டும் சார்புரீதியாக தங்கியிருக்கின்றன என்பதனையும், Client Name புலமானது ஒன்றிணைந்த சாவிகளில் ஒன்றான Client ID யில் மட்டும் சார்புரீதியாக தங்கியிருக்கின்றது என்பதனையும், Time With Client புலமானது ஒன்றினைந்த சாவிகள் இரண்டிலும் முழுமையாக சார்புரீதியாக தங்கியிருக்கின்றது (Full Functional Dependency) என்பதனையும் விளங்கிக்கொள்ளலாம். இதன்படி ஒன்றிணைந்த சாவிகளில் பகுதியளவில் சார்புரீதியாக தங்கியிருக்கும்(Partial Functional Dependency) மற்றைய சாவியற்ற எல்லா புலங்களினையும் புதிய அட்டவணைகளாக கீழுள்ளவாறு தனிமைப்படுத்துவதே 2NF இல் நாம் செய்ய வேண்டியதாகும். அட்டவணை:- Employee
அட்டவணை:- Client
அட்டவணை:- Time Card
மூன்றாம் செம்மையாக்கல் (3NF)தரவு மாதிரி 2NF இலுள்ளதாகவும், சாவியற்ற எல்லா பண்புகளும்(attributes) பிரதான சாவியில் நேரடியாக கடந்தேகலற்ற முறையில் தங்கியிருக்கின்ற நிலையிலும், ஒரு தரவு மாதிரியினை 3NF இலுள்ளதாகக் கூறமுடியும். Y என்பது X இலும் Z என்பது Y இலும் தங்கியிருப்பின் Z என்பது X இல் கடந்தேகல் முறையில் தங்கியிருக்கிறது (Transitive Dependency) எனலாம்.இதனை வேறு முறையில் கூறுவோமானால், தரவு மாதிரி 2NF இலுள்ளதாகவும், எந்தவொரு சாவியற்ற பண்புகளும்(Attributes) மற்றைய சாவியற்ற பண்புகளில்(Attributes) சார்புரீதியாக தங்கியிருக்காமலும் இருந்தால், அத்தரவு மாதிரியினை 3NF இலுள்ளதாகக் கூறமுடியும். {A relation is in the third normal form, if it is in the second normal form and no nonprime attribute is functionally dependent on other nonprime attributes.} மேலுள்ள 2NF உதாரணத்தில் 2NF இற்கு மாற்றப்பட்ட அட்டவணைகளான Employee, Client, Time Card இனை அவதானித்தோமானால், Client, Time Card ஆகிய அட்டவணைகளில் சாவியற்ற ஒரு புலம் மட்டுமே உள்ளது. எனவே இப்புலமானது, முதன்மைச் சாவியுடன் கடந்தேகலற்ற முறையில் நேரடியாக தங்கியுள்ளது என்பது வெளிப்படையானதாகும். அதேபோல Time Card அட்டவணையை அவதானித்தோமானால், முதன்மைச் சாவியான Rep ID இல் Rep First Name மற்றும் Rep Last Name என்பன நேரடியாகக் கடந்தேகலற்ற முறையில் தங்கியுள்ளதைக் காணலாம். எனவே இந்த உதாரணத்தைப் பொறுத்தவரையில், மூன்று அட்டவணைகளும் 3NF இன் விதிகளை திருப்தி செய்வதால், 2NF இலுள்ள அதே அட்டவணைகளே 3NF இற்கும் வரும் என்பது வெளிப்படை. உதாரணம் (1):வினா:-கீழ்வரும் தொடர்புநிலை தரவு மாதிரியை கருத்தில் கொள்க.Relation( A, B, C, D, E, F) இங்கு A மற்றும் B என்பன ஒன்றிணைந்த சாவிகளாகும். தரவுமாதிரியின் ஒவ்வொரு பண்புகளும் எவ்வாறு ஒன்றுடன் மற்றொன்று சார்புரீதியாக தங்கியிருக்கின்றது என்பதனை கீழே காணலாம். A, B -----> C A, B -----> D B -----> E A -----> F C -----> D மேற்படி தரவுகளை கருத்தில்கொண்டு தரவு மாதிரியினை செம்மையாக்கல் செய்யவும். விடை:-1NFRelation( A, B, C, D, E, F) 2NF Relation( A, B, C, D) Relation-1( B, E) Relation-2( A, F) 3NF Relation( A, B, C) Relation-1( B, E) Relation-2( A, F) Relation-3( C, D) உதாரணம் (2):வினா:-கீழ்வரும் தொடர்புநிலை தரவு மாதிரியை கருத்தில் கொள்க.Relation( A, B, C, D, E, F) இங்கு A, B மற்றும் C என்பன ஒன்றிணைந்த சாவிகளாகும். தரவுமாதிரியின் ஒவ்வொரு பண்புகளும் எவ்வாறு ஒன்றுடன் மற்றொன்று சார்புரீதியாக தங்கியிருக்கின்றது என்பதனை கீழே காணலாம். A, B, C -----> D A, B -----> E B, C -----> F விடை:-1NFRelation( A, B, C, D, E, F) 2NF Relation( A, B, C, D) Relation-1( A, B, E) Relation-2( B, C, F) 3NF Relation( A, B, C, D) Relation-1( A, B, E) Relation-2( B, C, F) உதாரணம் (3):வினா:-கீழ்வரும் தொடர்புநிலை தரவு மாதிரியை கருத்தில் கொள்க.Relation( A, B, C, D, E, F) இங்கு A மற்றும் B என்பன ஒன்றிணைந்த சாவிகளாகும். தரவுமாதிரியின் ஒவ்வொரு பண்புகளும் எவ்வாறு ஒன்றுடன் மற்றொன்று சார்புரீதியாக தங்கியிருக்கின்றது என்பதனை கீழே காணலாம். A, B -----> C A, B -----> D A, B -----> E A, B -----> F C -----> D E -----> F விடை:-1NFRelation( A, B, C, D, E, F) 2NF Relation( A, B, C, D, E, F) 3NF Relation( A, B, C, E) Relation-1( C, D) Relation-2( E, F) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Last Updated on Monday, 20 April 2009 12:41 |