Primary key என்பது ஒரு Tableல் இருக்கும் அனைத்து Row களையும் தனித்தனியாகக் கண்டறிய உதவுகிறது. உதாரணமாக ஒரு எளிய Table. அதில் 2 Columns மட்டும். அவை DirectorID int, DirectorName varchar(50)
(மேலும் இது Primary keyஆகவும், Autoincrement ஆகவும் கொடுக்கப்படுகிறது. Auto increment என்பது int எனப்படும் எண்களுக்கு மட்டுமே சாத்தியப்படும்) , இந்த Tableக்கு DirectorInfo எனப் பெயரிடுவோம்.

இந்த DirectorID எனப்படும் Column ஐ Primary key ஆக மாற்ற என்ன செய்யவேண்டும்.
DirectorID எனப்படும் Column ஐத் தேர்வு செய்து Right Click செய்து, தோன்றக்கூடிய சிறு menuவில் Set Primary Key என்பதைச் சொடுக்கவும்.

மேலும் Identity Column ( Auto increment) ஆக மாற்றுவதற்கு என்ன செய்வது?
DirectorID எனப்படும் Column ஐத் தேர்வு செய்து F4 என்னும் Function keyஐ அழுத்தினால் Properties Windows ஐக் காணலாம். அதில் Table Designer என்னும் தலைப்பின் கீழே, Identity Column என்பதற்கு நேராக உள்ள Drop Downlist ல் DirectorID என்பதைத் தேர்வு செய்யவும்.


சரி ஒருவழியாக DirectorsInfo வின் Structure ஐ உருவாக்கிவிட்டோம். இப்போது இதை Close செய்துவிடவும்.


ஒவ்வொரு படத்தையும் வேறு வேறு இயக்குநர்கள் இயக்கியிருக்கலாம். ஒன்றுக்கு மேற்பட்ட திரைப்படங்களை ஒரே இயக்குநரே இயக்கியிருக்கலாம்.
1000 திரைப்படங்களின் தகவல்களைச் சேகரித்தோம் எனில், அதில் ஒரே இயக்குநரானவர் 10 அல்லது 25 அல்லது 100 படங்களைக்கூட எடுத்திருப்பார். 100 முறை அவரது பெயரை எழுதினால் நினைவகம் (memory) தேவையில்லாமல் ஆக்கிரமிக்கப்படும். அதனால் அவரது பெயரை ஒரே ஒருமுறை மட்டும் Master Table ல் (இங்கே DirectorsInfo - என்பதே Master table) கொடுத்து அவருக்காக ஒரு எண்ணை ஒதுக்கி விடுகிறோம்.
பலவித திரைப்படங்களின் தகவல்களை இரண்டாவது Table (FilmInfo என்பது இங்கே Detail Table)ல் பதிவுசெய்யப் போகிறோம். இங்கே ஒவ்வொரு Directorன் பெயரை முழுவதும் எழுதி நினைவகத்தை ஆக்கிரமிக்காமல் அவருக்குரிய எண்ணை மட்டும் கொடுப்போம்.
Master Table ல் ஒவ்வொரு Director க்கும் எண்களும், பெயர்களும் கொடுத்துவிட்டு, Detail Tableல் Directorக்கு உரிய எண்ணை மட்டும் கொடுப்பது வழக்கம்.
நினைவக இழப்பைக் குறைப்பதற்காகவும், ஒரே தகவலை திரும்பத்திரும்ப எழுதுவதைத் தவிர்க்கவும் - இந்த ஏற்பாடு.
ஒரு Director ஆனவர் பல படங்களை எடுத்துள்ளார் - எனில் இதை ONE TO MANY RELATIONSHIP என்போம்.
இந்த இரண்டாவது Tableன் Structureஐ ஏற்றிமுடித்ததும் கீழ்க்கண்ட செயல்முறையைச் செய்து இரண்டு Tableகளுக்கும் ஒரு உறவுமுறையை உண்டாக்கவும். உறவுமுறை (Table Relationship).
Test எனப்படும் Databaseல் Database Diagrams என்பதைத் தேர்வுசெய்து, Right Click செய்து, அதில் New Database Diagram ஐத் தேர்ந்தெடுக்கவும்.

உடன் தெரியும் உரையாடல் பெட்டியில் (dialog box) , DirectorsInfo மற்றும், FilmInfo ஆகிய இரண்டு Tableகளையும் தேர்வு செய்து , Add ஐ அழுத்தியபிறகு, Close அழுத்தவும்.


எளிதான Drag and Drop தான்.

இப்போது திரையில் மேற்கண்ட படம் தெரியும். Primary key Table (Director Info).
Foreign Key Table (FilmInfo). இரண்டுமே DirectorID என்னும் Column ஆகவும், ஒரே DataTypeஆகவும் இருக்கிறது. பிறகு இரண்டு முறை OK கொடுக்கவும்.
இப்போது திரையில் கீழ்க்கண்ட படத்தைக் காணலாம்.

DirectorsInfo வில் முதலில் உங்களுக்குத் தெரிந்த Directorsன் பெயர்களை மட்டும் கொடுத்தால் போதும். DirectorID என்பது அதுவாகவே உருவாகிக்கொள்ளும். அடுத்தடுத்த Directorகளுக்குரிய எண்கள் தானாகவே அமைந்துகொள்ளும். இதற்கு காரணம் அந்த குறிப்பிட்ட Column ஆனது IDENTITY Column என அமைக்கப்பட்டுள்ளதே.
பிறகு ஒவ்வொரு படங்களுக்கும் உரிய தகவல்களை Row by Row வாக FilmInfo என்னும் Tableல் ஏற்றவும். இங்கே DirectorIDஎன்னும் Columnல் ஏற்கனவே Master Tableல் என்ன எண்கள் அளிக்கப்பட்டிருக்கிறதோ அவற்றை மாத்திரமே கொடுக்கவேண்டும். Master Tableல் இல்லாத DirectorID ஐக் கொடுத்தால் பிழைச்செய்தி காண்பிக்கும்.
உதாரணத்திற்காக DirectorInfoவில் சில records உங்கள் பார்வைக்கு.


இரண்டு Tableஐயும் இணைத்து JOIN செய்வதற்கு உரிய செயல்முறை கீழே:
T-SQL Editorல் Right Click செய்து, Design Query in Editor என்பதைத் தேர்வு செய்யவும்.

பிறகு வரும் Dialog boxல் இரண்டு Tablesஐயும் தேர்வு செய்து Add கொடுத்தபின் Close செய்யவும்.



SELECT DirectorsInfo.DirectorName, FilmInfo.FilmName, FilmInfo.Actor, FilmInfo.Actress
FROM DirectorsInfo INNER JOIN
FilmInfo ON DirectorsInfo.DirectorID = FilmInfo.DirectorID
பின் OK அழுத்தினால் மேலேயுள்ள Query ஆனது T-SQL Editorக்கு வந்துவிடும்.
F5 அழுத்தின் இயக்கவும். இதன் மூலம் இரண்டு Tableன் தகவல்களும் ஒரே திரையில் காண்பிக்கப்படும்.

3 comments:
kalakkal
நன்றி : திரு.. செந்தழல் ரவி அவர்களே
நன்றாக புரிகிற மாதிரி சொல்லியுள்ளீர்கள்.
Post a Comment