எளிய தமிழில் SQL - பாகம் 2
RDBMS என்பது என்ன?
RDBMS என்பதன் விரிவு : Relational Database Management System.
SQL ஐப் பயன்படுத்தும் நவீன மென்பொருட்கள் சில :
MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.
Table என்பது என்ன?
Database ல் தகவல்களை எங்கே பதிவு செய்திருக்கிறோமோ அந்த அமைப்பு Table எனப்படும்.
ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்களின் தொகுப்பு Table.
Table ஆனது எந்தவிதமான கட்டமைப்பில் அமைந்திருக்கும்?.
ஒரு Table ல் பல Column / Field இருக்கும். பல Column களின் தொகுப்பே Table.
ஒவ்வொரு Column மும் ஒரு குறிப்பிட்ட வகையான தகவலைக் கையகப்படுத்தி இருக்கும். ஆகவே ஒவ்வொரு Columnம் அதற்குரிய Data Type ஐக் கொண்டே அனுசரிக்கப்படுகிறது.
ஒரு Databaseல் நிறைய Tableகள் இருக்கும். பல்வேறு Tableகளின் தொகுப்பை Database எனலாம்.
மேலே ஒரு Tableன் மாதிரி வடிவத்தைக் கொடுத்துள்ளேன். (படத்தின் மேல் சொடுக்கினால் பெரிதாகப் பார்க்கலாம்).
இதில் Person#,LastName,FirstName,Address,City ஆகியவற்றை Column/Field எனலாம்.
Person# என்பது எண்களால் குறிப்பிடப்படுகிறது. இதன் Data Type ஆனது numeric.
LastName,FirstName,City ஆகியவை எழுத்தால் குறிப்பிடப்படுவதால் இவற்றின் Data Type ஆனது character, variable character ஆகும்.
Address என்கிற Columnல் எண்ணாலும், எழுத்தாலும் குறிப்பிடப்பட்டாலும் இது character அல்லது variable character என்கிற வகைக்குள்ளேயே வைத்து விடலாம்.
PinCode என்று ஒரு column இருந்தால் அதையும் Character வகைக்குள்ளே வைத்துவிடலாம். PinCode பயன்படுத்தி நாம் எந்தவிதமான கூட்டல்,கழித்தல்,வகுத்தல்,பெருக்கல் முதலிய கணக்கீடுகளைச் செய்யப்போவதில்லை. அதனால் அதை numeric வகைக்குள் வைப்பதற்குப் பதிலாக character வகைக்குள்ளேயே வைத்துவிடலாம்.
ஒரு Table ல் Row அல்லது Tuple என்றால் என்ன?
மேலே உள்ள Table ல் மொத்தம் 3 row க்கள் இருக்கின்றன.
முதலில் இருப்பது தலைப்பாக இருப்பதால் அதை விடுத்து, அதன் கீழ் உள்ள 3 row மட்டுமே கருத்தில் எடுத்துக்கொள்ளப்படுகின்றன.
Row என்பது Columnகளின் தொகுப்பு. ஒன்றுக்கொன்று தொடர்புடைய தகவல்களை ஒரு Row ல் எழுதி வைப்பது வழக்கம்.
உதாரணமாக : 3,Karthik,The Hero,Space, Erode : இவை அனைத்தும் ஒரு குறிப்பிட்ட நபரின் தகவல்களே. ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்கள்.
3 என்பது நபரின் எண்
Karthik : First Name
The Hero : Last Name
Space : Address
Erode : City
இந்த Row ல் Address பகுதி மட்டும் Space விட்டுவிட்டோம். அதாவது ஏதேனும் Columnல் நிரப்பப்பட வேண்டிய தகவல் தற்சமயத்துக்குத் தெரியவில்லையெனில் அதை நிரப்பாமல் விட்டுவிடலாம். பிறகு நிரப்பிக்கொள்ளலாம்.
Karthik என்பவரின் Address தற்சமயம் நமக்குத்தெரிந்திருக்கவில்லை. அதனால் அதை அப்படியே நிரப்பாமல் விட்டுவிட்டு, அடுத்த Field ஆகிய City ல் Erode என எழுதிவிட்டோம்.
இவ்வாறு ஒரு குறிப்பிட்ட Columnல் நிரப்பப்பட வேண்டிய தகவலானது தற்சமயம் நிரப்பப்பட அவசியம் இல்லை என்பதை Allow Null என்பதே தீர்மாணிக்கும்.
A = 0, ----> இது எண் வகையைச் சேர்ந்தது (numeric)
B = "Karthik" ----> இது எழுத்து வகையைச் சேர்ந்தது (character)
C = NULL ----> தகவல் தற்சமயம் கைவசம் இல்லை (NULL)
NULL என்பதன் அர்த்தம் யாதெனில், தற்போது அந்தக் குறிப்பிட்ட தகவலின் மதிப்பு எதுவும் இல்லை. அது பூஜ்யமும் இல்லை. அதில் எந்த மதிப்பும் இல்லை. அது NULL - அவ்வளவுதான்.
Allow NULL - இதன் மதிப்பை ஆமாம் (true), இல்லை (false) என்கிற கட்டுக்குள் கொண்டு வரலாம். true / false.
ஒவ்வொரு நபருக்கும் தனித்தனிப் பெயர் இருப்பதுபோல, இங்கே அவரவர்க்கும் தனித்தனி எண்கள் தரப்படும்.
ஒன்றுக்கு மேற்பட்டவர்களுக்கு ஒரே பெயர்கள் இருக்கலாம் (பெயர்ப் பற்றாக்குறை!).
எனக்கு Karthik என்கிற பெயர்கள் உடைய 6 நண்பர்கள் இருக்கிறார்கள். அவர்களை வித்தியாசப்படுத்த ஒவ்வொருவருக்கும் ஒரு எண்கள் தரப்படுகின்றன. அதுவே Person#.
இதற்கு Primary Key என்று பெயர்.
அது என்ன Primary Key?
ஒன்றுக்கு மேற்பட்டவர்களின் பெயர்கள் ஒரே மாதிரியாக இருக்கும்போது, ஒவ்வொருவரையும் தனித்தனியாக அடையாளம் காண்பிப்பதற்கு உதவும் மாற்று உறுப்புதான் Primary Key ஆகும்.
ஒரு Tableல் பல Rowக்கள் இருக்கலாம். ஒரு Rowல் பல Column இருக்கலாம்.
ஒவ்வொரு Rowவையும் மற்ற Row க்களில் இருந்து பிரித்து தனித்து அடையாளம் காண்பதற்கு Primary key பயன்படுத்துகிறோம்.
சற்று முன்னர் NULL பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட தகவலின் மதிப்பு, தற்சமயம் கையில் இல்லாமல் இருந்தால் அதை NULL என்று தீர்மானித்து அப்படியே விட்டுவிடலாம்.
Primary key ஆனது NULL ஆக இருக்க வாய்ப்பு உள்ளதா?
கண்டிப்பாக இல்லை. Primary key ஆனது எந்த ஒரு சமயத்திலும் NULL ஆக இருக்கவே இருக்காது.
நன்றி தமிழ் நெஞ்சம்
RDBMS என்பதன் விரிவு : Relational Database Management System.
SQL ஐப் பயன்படுத்தும் நவீன மென்பொருட்கள் சில :
MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.
Table என்பது என்ன?
Database ல் தகவல்களை எங்கே பதிவு செய்திருக்கிறோமோ அந்த அமைப்பு Table எனப்படும்.
ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்களின் தொகுப்பு Table.
Table ஆனது எந்தவிதமான கட்டமைப்பில் அமைந்திருக்கும்?.
ஒரு Table ல் பல Column / Field இருக்கும். பல Column களின் தொகுப்பே Table.
ஒவ்வொரு Column மும் ஒரு குறிப்பிட்ட வகையான தகவலைக் கையகப்படுத்தி இருக்கும். ஆகவே ஒவ்வொரு Columnம் அதற்குரிய Data Type ஐக் கொண்டே அனுசரிக்கப்படுகிறது.
ஒரு Databaseல் நிறைய Tableகள் இருக்கும். பல்வேறு Tableகளின் தொகுப்பை Database எனலாம்.
மேலே ஒரு Tableன் மாதிரி வடிவத்தைக் கொடுத்துள்ளேன். (படத்தின் மேல் சொடுக்கினால் பெரிதாகப் பார்க்கலாம்).
இதில் Person#,LastName,FirstName,Address,City ஆகியவற்றை Column/Field எனலாம்.
Person# என்பது எண்களால் குறிப்பிடப்படுகிறது. இதன் Data Type ஆனது numeric.
LastName,FirstName,City ஆகியவை எழுத்தால் குறிப்பிடப்படுவதால் இவற்றின் Data Type ஆனது character, variable character ஆகும்.
Address என்கிற Columnல் எண்ணாலும், எழுத்தாலும் குறிப்பிடப்பட்டாலும் இது character அல்லது variable character என்கிற வகைக்குள்ளேயே வைத்து விடலாம்.
PinCode என்று ஒரு column இருந்தால் அதையும் Character வகைக்குள்ளே வைத்துவிடலாம். PinCode பயன்படுத்தி நாம் எந்தவிதமான கூட்டல்,கழித்தல்,வகுத்தல்,பெருக்கல் முதலிய கணக்கீடுகளைச் செய்யப்போவதில்லை. அதனால் அதை numeric வகைக்குள் வைப்பதற்குப் பதிலாக character வகைக்குள்ளேயே வைத்துவிடலாம்.
ஒரு Table ல் Row அல்லது Tuple என்றால் என்ன?
மேலே உள்ள Table ல் மொத்தம் 3 row க்கள் இருக்கின்றன.
முதலில் இருப்பது தலைப்பாக இருப்பதால் அதை விடுத்து, அதன் கீழ் உள்ள 3 row மட்டுமே கருத்தில் எடுத்துக்கொள்ளப்படுகின்றன.
Row என்பது Columnகளின் தொகுப்பு. ஒன்றுக்கொன்று தொடர்புடைய தகவல்களை ஒரு Row ல் எழுதி வைப்பது வழக்கம்.
உதாரணமாக : 3,Karthik,The Hero,Space, Erode : இவை அனைத்தும் ஒரு குறிப்பிட்ட நபரின் தகவல்களே. ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்கள்.
3 என்பது நபரின் எண்
Karthik : First Name
The Hero : Last Name
Space : Address
Erode : City
இந்த Row ல் Address பகுதி மட்டும் Space விட்டுவிட்டோம். அதாவது ஏதேனும் Columnல் நிரப்பப்பட வேண்டிய தகவல் தற்சமயத்துக்குத் தெரியவில்லையெனில் அதை நிரப்பாமல் விட்டுவிடலாம். பிறகு நிரப்பிக்கொள்ளலாம்.
Karthik என்பவரின் Address தற்சமயம் நமக்குத்தெரிந்திருக்கவில்லை. அதனால் அதை அப்படியே நிரப்பாமல் விட்டுவிட்டு, அடுத்த Field ஆகிய City ல் Erode என எழுதிவிட்டோம்.
இவ்வாறு ஒரு குறிப்பிட்ட Columnல் நிரப்பப்பட வேண்டிய தகவலானது தற்சமயம் நிரப்பப்பட அவசியம் இல்லை என்பதை Allow Null என்பதே தீர்மாணிக்கும்.
A = 0, ----> இது எண் வகையைச் சேர்ந்தது (numeric)
B = "Karthik" ----> இது எழுத்து வகையைச் சேர்ந்தது (character)
C = NULL ----> தகவல் தற்சமயம் கைவசம் இல்லை (NULL)
NULL என்பதன் அர்த்தம் யாதெனில், தற்போது அந்தக் குறிப்பிட்ட தகவலின் மதிப்பு எதுவும் இல்லை. அது பூஜ்யமும் இல்லை. அதில் எந்த மதிப்பும் இல்லை. அது NULL - அவ்வளவுதான்.
Allow NULL - இதன் மதிப்பை ஆமாம் (true), இல்லை (false) என்கிற கட்டுக்குள் கொண்டு வரலாம். true / false.
ஒவ்வொரு நபருக்கும் தனித்தனிப் பெயர் இருப்பதுபோல, இங்கே அவரவர்க்கும் தனித்தனி எண்கள் தரப்படும்.
ஒன்றுக்கு மேற்பட்டவர்களுக்கு ஒரே பெயர்கள் இருக்கலாம் (பெயர்ப் பற்றாக்குறை!).
எனக்கு Karthik என்கிற பெயர்கள் உடைய 6 நண்பர்கள் இருக்கிறார்கள். அவர்களை வித்தியாசப்படுத்த ஒவ்வொருவருக்கும் ஒரு எண்கள் தரப்படுகின்றன. அதுவே Person#.
இதற்கு Primary Key என்று பெயர்.
அது என்ன Primary Key?
ஒன்றுக்கு மேற்பட்டவர்களின் பெயர்கள் ஒரே மாதிரியாக இருக்கும்போது, ஒவ்வொருவரையும் தனித்தனியாக அடையாளம் காண்பிப்பதற்கு உதவும் மாற்று உறுப்புதான் Primary Key ஆகும்.
ஒரு Tableல் பல Rowக்கள் இருக்கலாம். ஒரு Rowல் பல Column இருக்கலாம்.
ஒவ்வொரு Rowவையும் மற்ற Row க்களில் இருந்து பிரித்து தனித்து அடையாளம் காண்பதற்கு Primary key பயன்படுத்துகிறோம்.
சற்று முன்னர் NULL பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட தகவலின் மதிப்பு, தற்சமயம் கையில் இல்லாமல் இருந்தால் அதை NULL என்று தீர்மானித்து அப்படியே விட்டுவிடலாம்.
Primary key ஆனது NULL ஆக இருக்க வாய்ப்பு உள்ளதா?
கண்டிப்பாக இல்லை. Primary key ஆனது எந்த ஒரு சமயத்திலும் NULL ஆக இருக்கவே இருக்காது.
நன்றி தமிழ் நெஞ்சம்