Identity Column என்றால் என்ன?
Primary key என்பது என்னவென்று இதற்கு முந்தைய பதிவில் பார்த்தோம்.
Foreign Key என்றால் என்ன?
ஒரு குறிப்பிட்ட Table ல் ஒவ்வொரு Rowவையும் பிரித்துத் தனிமைப்படுத்துவதற்கு,
அடையாளம் காண்பதற்கு Primary key உதவுகிறது.
இந்தக் கட்டுமானத்தை Master - Detail என்று கூறுவோம்.
Master
Tableல் ஒரு முறை மட்டும் வந்த Person# ஆனது, Detail Table ல் பலமுறை
திரும்பத்திரும்ப வரும். இந்த இரண்டு எண்ணும் ஒரே எண்ணாக இருக்கும்.
இரண்டின் Data Type ம் ஒன்றாகவே இருக்கும். இரண்டும் ஒன்றுக்கொன்று
தொடர்புடையதாக இருக்கும்.
இந்த Primary - Foreign key மூலம் இரண்டு Tableகளின் மதிப்புகளை
ஒரே திரையில் காணலாம்.
இதை join என்போம்.
இந்த இரண்டு keyகளின் Columnல் ஏற்றப்பட்ட மதிப்புகளை
அடையாளப்படுத்தியே Master-Detail Table மையப்படுத்தப்படுகிறது.
Unique என்றால் என்ன?
ஒரு குறிப்பிட்ட Columnல் உள்ள மதிப்பு ஒவ்வொரு Rowக்கும் வித்தியாசமானதாக
இருப்பதை Unique எனலாம்.
Person#எனப்படுவதை
Unique Column எனலாம். ஒவ்வொரு நபரின் பெயரும் வித்தியாசமானதாகஇருக்கத்
தேவையில்லை (காரணம் : பெயர்ப் பற்றாக்குறை). ஆனால் ஒவ்வொருநபருக்கும் நாம்
அளிக்கும் குறிப்பிட்ட எண் (Person#) ஆனது Unique ஆகும்.
ஆகவேPrimary
key ஆனது Unique தான். ஆனால் Primary keyஆனது NULL ஆக இருக்கவேமுடியாது.
Unique Column ஆனது ஒரே ஒருமுறை மட்டும், NULL மதிப்பைஏற்றுக்கொள்ளும்.
இதுவே இவை இரண்டுக்கும் உள்ள ஒரே வித்தியாசம்.
NULL என்பது எந்த மதிப்பும் இல்லாதது. அதன் மதிப்பு பூஜ்யமோ / எதோ
ஒரு எழுத்தோ / எழுத்துத் தொகுப்போ இல்லை. அது மதிப்பே இல்லாதது.
Primary key ஆனது NULL ஐ ஏற்றுக்கொள்ளாது. ஆனால் Unique Column ஆனது
ஒரே ஒருமுறை மட்டும் NULLஐ ஏற்றுக்கொள்ளூம்.
DataType களின் வகைகள் யாவை?
SQL Server 2005ல் நாம் பயன்படுத்தும் Data Typesகளின் வகைகள் கீழே:
user-defined data types (highest)
sql_variant
xml
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar
nchar
varchar
char
varbinary
binary (lowest)
DataTypes
என்பது, ஒவ்வொரு Columnலும் நாம் உள்ளீடு செய்யப்போகும் தகவலின்
வகையைக் குறிக்கிறது.எண், எழுத்து, தேதி - போன்ற Data Type ஐ நாம்
அதிகம்பயன்படுத்துவோம்.
Character க்கும் Variable Characterக்கும் என்ன வித்தியாசம்?
NAMECHARACTER(50)
---> இது ஒரு Column எனக் கொண்டால், இதில் Field nameஆனது NAME ஆகும்.
இதில் நாம் உள்ளீடு செய்யவிருக்கிற தகவலின் வகைcharacter எனப்படும்
DataType ஐச் சார்ந்தது. அதில் நாம் அதிகபட்சமாக 50தனித்தனி எழுத்துகளை
(இடைவெளி Space) ஐயும் சேர்த்து உள்ளிடலாம்.
உதாரணமாக
NAME=
"Raja" எனக் கொடுத்தால், இதில் 4 எழுத்துக்களை உள்ளிட்டு
இருக்கிறோம்.ஆனால் அதிகபட்சமாக நாம் 50 எழுத்துக்களை உள்ளிட
அனுமதிக்கிறது.அடைப்புக்குறிக்குள் இருக்கும் (50) என்பது இதைக்
குறிக்கிறது.
நாம்கொடுத்துள்ள
Rajaவில் 4 எழுத்துக்கள் மட்டுமே உள்ளன. ஆனால் மீதியுள்ள
46எழுத்துக்களின்
மதிப்பை நாம் உள்ளீடு செய்யாமல் விட்டுவிட்டோம். ஆனால்ஒட்டுமொத்த 50
எழுத்துக்களுமே வன்வட்டு (hard disk) ல்பதிவாகும்.மீதியுள்ள 46
எழுத்துக்களுக்கு Space மூலம் நிரப்பப்பட்டு அதன்ஒட்டுமொத்த 50
மதிப்புகளும் வீணாக்கப்பட்டுவிடும்.
ஆனால்
variablecharacter என்பதில், Babu என உள்ளிட்டால் 4 எழுத்துக்கள் மட்டுமே
கணக்கில்எடுத்துக்கொள்ளப்படும். மீதியுள்ள 46 எழுத்துக்களில் இருக்கும்
Spaceகணக்கில் எடுத்துக்கொள்ளப்படாமல் அவற்றின் Space
எல்லாம்நிராகரிக்கப்பட்டு 4 எழுத்துக்கள் மாத்திரமே hard disk ல்
எழுதப்படும்.இதனால் நம் நினைவகம் வீணாவது தவிர்க்கப்படும்.
UniCode எழுத்துக்களைப் பதிவு செய்வதற்கு எந்த Data Types ஐப்
பயன்படுத்துவது?
பெரும்பாலும் ஆங்கிலத்தில் உள்ள தகவல்களை character, varchar
முதலிய Data Type மூலம் உள்ளீடு செய்யலாம்.
ஆனால் ஆங்கிலம் அல்லாத பிற மொழிகளான தமிழ், மலையாள
மொழிகளை உள்ளீடு செய்ய நாம் nvarchar, nchar போன்ற Data Type ஐப்
பயன்படுத்தலாம்.
ஒருகுறிப்பிட்ட
Column ன் மதிப்பானது, அதற்குரிய மதிப்பை நாம் கொடுக்காமலேயே,அதுவாகவே
தானியங்கித்தனமாக உயர்ந்துகொண்டு வருவதை Auto Increment எனலாம்.இப்படி ஒரு
Column ன் மதிப்பை தானாக உயர்த்துவதால், இந்த Column க்குIdentity Column
என்போம்.
Column ன் மதிப்பானது, அதற்குரிய மதிப்பை நாம் கொடுக்காமலேயே,அதுவாகவே
தானியங்கித்தனமாக உயர்ந்துகொண்டு வருவதை Auto Increment எனலாம்.இப்படி ஒரு
Column ன் மதிப்பை தானாக உயர்த்துவதால், இந்த Column க்குIdentity Column
என்போம்.
இந்த
Column ன் Data Type ஆனது numericஆக இருத்தல் வேண்டும். இதன் உயர்வு
விகிதம் (Identity Increment), எந்தஎண்ணிக்கையில் இருந்து
ஆரம்பிக்கவேண்டும் (Identity Seed) போன்றவற்றை நாமேதீர்மாணிக்கலாம்.
Column ன் Data Type ஆனது numericஆக இருத்தல் வேண்டும். இதன் உயர்வு
விகிதம் (Identity Increment), எந்தஎண்ணிக்கையில் இருந்து
ஆரம்பிக்கவேண்டும் (Identity Seed) போன்றவற்றை நாமேதீர்மாணிக்கலாம்.
ஒவ்வொரு
Rowக்கும், இந்த குறிப்பிட்ட IdentityColumn ன் மதிப்பு அதுவாகவே
உயர்ந்துகொண்டிருக்கும். அடுத்தடுத்தRowக்களின் தகவல்களை உள்ளீடு
செய்யும்போது, இந்த Identity Columnன்மதிப்பை நாம் உள்ளீடு செய்யத்
தேவையில்லை.
Rowக்கும், இந்த குறிப்பிட்ட IdentityColumn ன் மதிப்பு அதுவாகவே
உயர்ந்துகொண்டிருக்கும். அடுத்தடுத்தRowக்களின் தகவல்களை உள்ளீடு
செய்யும்போது, இந்த Identity Columnன்மதிப்பை நாம் உள்ளீடு செய்யத்
தேவையில்லை.
Primary key என்பது என்னவென்று இதற்கு முந்தைய பதிவில் பார்த்தோம்.
Foreign Key என்றால் என்ன?
Tableஎன்றால்
என்னவென்று நமக்குத் தெரியும். அதில் பல தகவல்களை ஒவ்வொரு Rowவாகஉள்ளீடு
செய்து வைத்திருப்போம். ஒன்றுக்கு மேற்பட்ட Tableகளில் இருக்கும்தகவல்களை
ஒரே திரையில் காண்பதற்கு உதவுவதே Foreign key ஆகும்.
என்னவென்று நமக்குத் தெரியும். அதில் பல தகவல்களை ஒவ்வொரு Rowவாகஉள்ளீடு
செய்து வைத்திருப்போம். ஒன்றுக்கு மேற்பட்ட Tableகளில் இருக்கும்தகவல்களை
ஒரே திரையில் காண்பதற்கு உதவுவதே Foreign key ஆகும்.
ஒரு குறிப்பிட்ட Table ல் ஒவ்வொரு Rowவையும் பிரித்துத் தனிமைப்படுத்துவதற்கு,
அடையாளம் காண்பதற்கு Primary key உதவுகிறது.
இந்தக் கட்டுமானத்தை Master - Detail என்று கூறுவோம்.
MasterTableல்
ஒரு குறிப்பிட்ட Column ஆனது Primary key ஆக இருக்கும். (இதுமுதலாவது
Table). Primary key ன் மதிப்பு ஒவ்வொரு Rowக்கும் மாறிக்கொண்டேஇருக்கும்.
உதாரணமாக Person#. ஒவ்வொரு நபருக்கும் ஒரு தனிப்பட்ட எண்ணைக்கொண்டு
வித்தியாசப்படுத்துவதற்கு Primary key உதவும்.
ஒரு குறிப்பிட்ட Column ஆனது Primary key ஆக இருக்கும். (இதுமுதலாவது
Table). Primary key ன் மதிப்பு ஒவ்வொரு Rowக்கும் மாறிக்கொண்டேஇருக்கும்.
உதாரணமாக Person#. ஒவ்வொரு நபருக்கும் ஒரு தனிப்பட்ட எண்ணைக்கொண்டு
வித்தியாசப்படுத்துவதற்கு Primary key உதவும்.
Master
Tableல் ஒரு முறை மட்டும் வந்த Person# ஆனது, Detail Table ல் பலமுறை
திரும்பத்திரும்ப வரும். இந்த இரண்டு எண்ணும் ஒரே எண்ணாக இருக்கும்.
இரண்டின் Data Type ம் ஒன்றாகவே இருக்கும். இரண்டும் ஒன்றுக்கொன்று
தொடர்புடையதாக இருக்கும்.
இந்த Primary - Foreign key மூலம் இரண்டு Tableகளின் மதிப்புகளை
ஒரே திரையில் காணலாம்.
இதை join என்போம்.
இந்த இரண்டு keyகளின் Columnல் ஏற்றப்பட்ட மதிப்புகளை
அடையாளப்படுத்தியே Master-Detail Table மையப்படுத்தப்படுகிறது.
Unique என்றால் என்ன?
ஒரு குறிப்பிட்ட Columnல் உள்ள மதிப்பு ஒவ்வொரு Rowக்கும் வித்தியாசமானதாக
இருப்பதை Unique எனலாம்.
Person#எனப்படுவதை
Unique Column எனலாம். ஒவ்வொரு நபரின் பெயரும் வித்தியாசமானதாகஇருக்கத்
தேவையில்லை (காரணம் : பெயர்ப் பற்றாக்குறை). ஆனால் ஒவ்வொருநபருக்கும் நாம்
அளிக்கும் குறிப்பிட்ட எண் (Person#) ஆனது Unique ஆகும்.
ஆகவேPrimary
key ஆனது Unique தான். ஆனால் Primary keyஆனது NULL ஆக இருக்கவேமுடியாது.
Unique Column ஆனது ஒரே ஒருமுறை மட்டும், NULL மதிப்பைஏற்றுக்கொள்ளும்.
இதுவே இவை இரண்டுக்கும் உள்ள ஒரே வித்தியாசம்.
NULL என்பது எந்த மதிப்பும் இல்லாதது. அதன் மதிப்பு பூஜ்யமோ / எதோ
ஒரு எழுத்தோ / எழுத்துத் தொகுப்போ இல்லை. அது மதிப்பே இல்லாதது.
Primary key ஆனது NULL ஐ ஏற்றுக்கொள்ளாது. ஆனால் Unique Column ஆனது
ஒரே ஒருமுறை மட்டும் NULLஐ ஏற்றுக்கொள்ளூம்.
DataType களின் வகைகள் யாவை?
SQL Server 2005ல் நாம் பயன்படுத்தும் Data Typesகளின் வகைகள் கீழே:
user-defined data types (highest)
sql_variant
xml
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar
nchar
varchar
char
varbinary
binary (lowest)
DataTypes
என்பது, ஒவ்வொரு Columnலும் நாம் உள்ளீடு செய்யப்போகும் தகவலின்
வகையைக் குறிக்கிறது.எண், எழுத்து, தேதி - போன்ற Data Type ஐ நாம்
அதிகம்பயன்படுத்துவோம்.
Character க்கும் Variable Characterக்கும் என்ன வித்தியாசம்?
NAMECHARACTER(50)
---> இது ஒரு Column எனக் கொண்டால், இதில் Field nameஆனது NAME ஆகும்.
இதில் நாம் உள்ளீடு செய்யவிருக்கிற தகவலின் வகைcharacter எனப்படும்
DataType ஐச் சார்ந்தது. அதில் நாம் அதிகபட்சமாக 50தனித்தனி எழுத்துகளை
(இடைவெளி Space) ஐயும் சேர்த்து உள்ளிடலாம்.
உதாரணமாக
NAME=
"Raja" எனக் கொடுத்தால், இதில் 4 எழுத்துக்களை உள்ளிட்டு
இருக்கிறோம்.ஆனால் அதிகபட்சமாக நாம் 50 எழுத்துக்களை உள்ளிட
அனுமதிக்கிறது.அடைப்புக்குறிக்குள் இருக்கும் (50) என்பது இதைக்
குறிக்கிறது.
நாம்கொடுத்துள்ள
Rajaவில் 4 எழுத்துக்கள் மட்டுமே உள்ளன. ஆனால் மீதியுள்ள
46எழுத்துக்களின்
மதிப்பை நாம் உள்ளீடு செய்யாமல் விட்டுவிட்டோம். ஆனால்ஒட்டுமொத்த 50
எழுத்துக்களுமே வன்வட்டு (hard disk) ல்பதிவாகும்.மீதியுள்ள 46
எழுத்துக்களுக்கு Space மூலம் நிரப்பப்பட்டு அதன்ஒட்டுமொத்த 50
மதிப்புகளும் வீணாக்கப்பட்டுவிடும்.
ஆனால்
variablecharacter என்பதில், Babu என உள்ளிட்டால் 4 எழுத்துக்கள் மட்டுமே
கணக்கில்எடுத்துக்கொள்ளப்படும். மீதியுள்ள 46 எழுத்துக்களில் இருக்கும்
Spaceகணக்கில் எடுத்துக்கொள்ளப்படாமல் அவற்றின் Space
எல்லாம்நிராகரிக்கப்பட்டு 4 எழுத்துக்கள் மாத்திரமே hard disk ல்
எழுதப்படும்.இதனால் நம் நினைவகம் வீணாவது தவிர்க்கப்படும்.
UniCode எழுத்துக்களைப் பதிவு செய்வதற்கு எந்த Data Types ஐப்
பயன்படுத்துவது?
பெரும்பாலும் ஆங்கிலத்தில் உள்ள தகவல்களை character, varchar
முதலிய Data Type மூலம் உள்ளீடு செய்யலாம்.
ஆனால் ஆங்கிலம் அல்லாத பிற மொழிகளான தமிழ், மலையாள
மொழிகளை உள்ளீடு செய்ய நாம் nvarchar, nchar போன்ற Data Type ஐப்
பயன்படுத்தலாம்.
No comments:
Post a Comment