இன்றைய சிந்தனை

மகிழ்ச்சிக்கு வெற்றி திறவுகோலல்ல. மகிழ்ச்சியே வெற்றிக்குத் திறவுகோல். நீ செய்வதை நீ நேசித்தாயானால், நீ வெற்றியடைவாய்.

ஆல்பர்ட் ச்வெஇத்ழெர்


செம்மையாக்கல்/சாதாரணமாக்கல் (Normalization)
செவ்வையற்ற தரவு மாதிரியை (Un-normalized Data Model) செவ்வையான தரவு மாதிரியாக மாற்றும் செயற்பாட்டினை செம்மையாக்கல் எனலாம். செவ்வையான தரவு மாதிரியானது ஓர் குறிப்பிட்ட தொகுதி விதிகளுக்கு கீழ்படிந்து காணப்படும். செம்மையாக்கலானது பல கட்டங்களூடாக மேற்கொள்ள வேண்டும். ஒவ்வோர் கட்டச் செம்மையாக்கலையும் ஒவ்வோர் விசேடமான பெயர் கொண்டு அழைப்பார்கள். அவையாவன:
  1. முதலாம் செம்மையாக்கல் (First Normal Form - 1NF)
  2. இரண்டாம் செம்மையாக்கல் (Second Normal Form - 2NF)
  3. மூன்றாம் செம்மையாக்கல் (Third Normal Form - 3NF)
  4. பொய்ஸ்-கொட் செம்மையாக்கல் (Boyce-Codd Normal Form - BCNF)
  5. நான்காம் செம்மையாக்கல் (Fourth Normal Form - 4NF)
  6. ஐந்தாம் செம்மையாக்கல் (Fifth Normal Form - 5NF)
  7. டொமைன்/சாவி செம்மையாக்கல் (Domain/Key Normal Form - DKNF)
  8. ஆறாம் செம்மையாக்கல் (Sixth Normal Form - 2NF)
ஒவ்வொரு கட்டச்செம்மையாக்கலும் அதற்கு முன்னைய கட்டச் செம்மையாக்கலுக்கான விதிகளை தன்னகத்தே பூர்த்திசெய்தவாறு காணப்படும். உதாரணமாக ஓர் தரவு மாதிரி 2NF இல் இருக்குமாயின் அது ஏற்கனவே 1NF இலும் இருக்கும்.

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

முதலாம் செம்மையாக்கல் (INF)

உதாரணமாக கீழ்வரும் அட்டவணையை எடுத்துக்கொள்வோம்.

ID
Name
Address
Phone
233
Raman Sethu
243 Broadway New York, NY, 11234(111) 222-4645
234
Sothy Rangan
517 Jolly Jumper St. Trenton NJ, 11547(222) 334-2358

அட்டவணையின் Name மற்றும் Address நெடுவரிசைகளில்(Column) காணப்படும் தரவுகளை மேலும் சிறிய தனித்தனியான தரவுகளாக கீழ்வருமாறு பிரிக்க முடியும்.

IDFirst LastStreetCityStateZipPhone
233
Raman
Sethu
234 Broadway
New Yord
NY
11234
(111) 222-4645
234
Sothy
Rangan
517 Jolly Jumper St.
Trenton
NJ
11547
(222) 334-23

முதலாம் செம்மையாக்கலானது இவ்வாறு தரவுகளை மேலும் சிறிய அலகுகளாக பிரிக்க முடியாது என்பதை உறுதிப்படுத்தும். அத்தோடு இச்செம்மையாக்கலானது மீள மீள இருக்கும் தரவுகளை (repeative groups) முடிந்தளவு நீக்கியிருப்பதையும் உறுதிப்படுத்தும். உதாரணமாக மற்றுமொரு அட்டவணையை எடுத்துக்கொள்வோம்.
 
Rep IDRepresentativeClient 1Time 1Client 2Time 2Client 3Time 3
TS-89Gilroy GladstoneUS Corp.14 hrsTaggarts26 hrsKilroy Inc.9 hrs
RK-56Mary MayhemItaliana67 hrsLinkers2 hrs  
         
மேலுள்ள அட்டவணையில் பிரதிநிதி பல வாடிக்கையாளர்களைக் கொண்டிருக்கிறார். ஒவ்வொரு பிரதிநிதியினதும் வாடிக்கையாளர்களின் எண்ணிக்கையினை வரையறுக்க முடியாதென்பதால், மேலுள்ள அட்டவணையினைப் பயன்படுத்தி தரவுகளை செவ்வையாக சேமிக்க முடியாமல் போகும். குறைந்த வாடிக்கையாளரிருப்பின் அட்டவணைகளில் இடைவெளிகளும் கூடிய வாடிக்கையாளர்களிருப்பின் தரவுகளை சேமிக்க போதிய இடம் இல்லாமலும் இருக்கும். எனவே இவ்வாறான மீள மீள வரும் புலப்பெயரினை(Field name) அல்லது குழுப் புலப்பெயர்களினை(Group of Field names) நீக்குவதன் மூலம் இவ்வட்டவணையினை முதலாம் செம்மையாக்கலுக்கு உட்படுத்தலாம்.

Rep IDRep First Name Rep Last NameClient Name
Time With Client
TS-89GilroyGladstoneUS Corp14 hrs
TS-89Gilroy GladstoneTaggarts26 hrs
TS-89Gilroy GladstoneKilroy Inc.
9 hrs
RK-56MaryMayhemItaliana67 hrs
RK-56MaryMayhemLinkers
2 hrs

ஆனாலும் மேலுள்ள அட்டவணையினை நோக்கும்போது முதன்மைச்சாவியான(Primary Key) RepID இனது தரவுகள் திரும்பத்திரும்ப வந்துகொண்டிருக்கின்றன. ஆகவே இதனை நீக்கும் பொருட்டு ClientID எனும் ஒரு புலப்பெயரினை(Field name) சேர்ப்பதன் மூலம் இவ்வட்டவணையை மூன்றாம் கட்ட செம்மையாக்கல்களுக்கான விதிகள் அனைத்தையும் பூர்த்தி செய்யக்கூடிய அட்டவணையாக கீழுள்ளவாறு மாற்ற முடியும்.

Rep ID
Rep First Name
Rep Last Name
Client ID
Client Name
Time With Client
TS-89
Gilroy
Gladstone
978
US Corp
14 hrs
TS-89
Gilroy
Gladstone
665
Taggarts
26 hrs
TS-89
Gilroy
Gladstone
782
Kilroy Inc.
9 hrs
RK-56
Mary
Mayhem
221
Italiana
67 hrs
RK-56
Mary
Mayhem
982
Linkers
2 hrs

இவ்வட்டவணையில் Rep ID மற்றும் Client ID என்பன ஒன்றிணைந்த சாவியாக (Composite Key) தொழிற்படும்.

முதலாம் செம்மையாக்கல் பற்றிய மேலதிக விளக்கத்திற்காக கீழ்வரும் அட்டவணையையும் பார்ப்போம்.
 
Invoice No
Date
Customer No
Customer Name
Customer City
Item ID
Item Description
Item Qty
Item Price
125
13/09/2008
56
Ravi
Colombo
563
Sugar
4
60
     851
Rice
32
70
     652
Tea
5
100
126
14/09/2008
2
Rangan
Kandy
563
Sugar
500
60
     652
Tea
750
100

இவ் அட்டவணையின் 2ம், 3ம் பதிவுகளும் 125 எனும் Invoice No இற்கு உரியதே. ஆயினும் அதற்கான சில கலங்கள்(Cells) வெற்றிடமாகவே இங்கு காணப்படுகின்றன. அவ்வாறே அட்டவணையின் 5ம் பதிவின் சில கலங்களும்(Cells) வெற்றிடமாகவே காணப்படுகின்றன. இவ்வாறு காணப்படும் இடைவெளிகளை பொருத்தமான பெறுமதிகளைக் கொண்டு நிரப்புவதும் முதலாம் செம்மையாக்கலில் செய்ய வேண்டிய ஒன்றாகும். எனவே இடைவெளிகளை நிரப்புவதன் மூலம் கீழுள்ளவாறு இவ்வட்டவணையை முதலாம் செம்மையாக்கலுக்கு உட்படுத்தலாம்.

Invoice No
Date
Customer No
Customer Name
Customer City
Item ID
Item Description
Item Qty
Item Price
125
13/09/2008
56
Ravi
Colombo563
Sugar
4
60
125
13/09/200856
RaviColombo851
Rice
32
70
125
13/09/200856
RaviColombo
652
Tea
5
100
126
14/09/2008
2
Rangan
Kandy
563
Sugar
500
60
126
14/09/2008
2
Rangan
Kandy
652
Tea
750
100

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

இரண்டாம் செம்மையாக்கல் (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 செய்யப்பட்ட கீழ்வரும் அட்டவணையைப் பார்ப்போம்.


Rep ID
Rep First Name
Rep Last Name
Client ID
Client Name
Time With Client
TS-89
Gilroy
Gladstone
978
US Corp
14 hrs
TS-89
Gilroy
Gladstone
665
Taggarts
26 hrs
TS-89
Gilroy
Gladstone
782
Kilroy Inc.
9 hrs
RK-56
Mary
Mayhem
221
Italiana
67 hrs
RK-56
Mary
Mayhem
982
Linkers
2 hrs
RK-56
Mary
Mayhem
665
Taggarts
4 hrs

இவ்வட்டவணையின் ஒன்றிணைந்த சாவிகளான(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
Rep ID
Rep First Name
Rep Last Name
TS-89
Gilroy
Gladstone
TS-89
Gilroy
Gladstone
TS-89
Gilroy
Gladstone
RK-56
Mary
Mayhem
RK-56
Mary
Mayhem
RK-56
Mary
Mayhem
 
அட்டவணை:- Client
Client ID
Client Name
978
US Corp
665
Taggarts
782
Kilroy Inc.
221
Italiana
982
Linkers
665
Taggarts

அட்டவணை:- Time Card
Client ID
Rep ID
Time With Client
978
TS-89
14 hrs
665
TS-8926 hrs
782
TS-899 hrs
221
RK-5667 hrs
982
RK-562 hrs
665
RK-564 hrs

மூன்றாம் செம்மையாக்கல் (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

மேற்படி தரவுகளை கருத்தில்கொண்டு தரவு மாதிரியினை செம்மையாக்கல் செய்யவும்.

விடை:-

1NF
Relation( 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

மேற்படி தரவுகளை கருத்தில்கொண்டு தரவு மாதிரியினை செம்மையாக்கல் செய்யவும்.

விடை:-

1NF
Relation( 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


மேற்படி தரவுகளை கருத்தில்கொண்டு தரவு மாதிரியினை செம்மையாக்கல் செய்யவும்.

விடை:-

1NF
Relation( 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