Thursday, August 8, 2013

எளிய தமிழில் 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?

ஒன்றுக்குமேற்பட்டவர்களின்
பெயர்கள் ஒரே மாதிரியாக இருக்கும்போது, ஒவ்வொருவரையும்
தனித்தனியாக
அடையாளம் காண்பிப்பதற்கு உதவும் மாற்று உறுப்புதான் PrimaryKey ஆகும்.

ஒரு Tableல் பல Rowக்கள் இருக்கலாம். ஒரு Rowல் பல Column இருக்கலாம்.

ஒவ்வொரு Rowவையும் மற்ற Row க்களில் இருந்து பிரித்து தனித்து
அடையாளம் காண்பதற்கு Primary key பயன்படுத்துகிறோம்.

சற்றுமுன்னர்
NULL பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட தகவலின் மதிப்பு,தற்சமயம்
கையில் இல்லாமல் இருந்தால் அதை NULL என்று தீர்மானித்து
அப்படியேவிட்டுவிடலாம்.

Primary key ஆனது NULL ஆக இருக்க வாய்ப்பு உள்ளதா?
கண்டிப்பாக இல்லை. Primary key ஆனது எந்த ஒரு சமயத்திலும் NULL
ஆக இருக்கவே இருக்காது.

No comments:

Post a Comment