தரவுத்தளம்
1. தரவுத்தளம் எதற்காக? (Why Databases?)
ஒரு பாடசாலையில் ஆயிரம் மாணவர்களின் விவரங்களைப் பேணுவதை எண்ணிப்பாருங்கள் — பெயர், அனுமதி இலக்கம், பிறந்த திகதி, வகுப்பு, பெற்றோர் தொடர்பு, விளையாட்டு, பரீட்சை மதிப்பெண்கள். இந்த விவரங்களை தாள்களில் அல்லது சிதறிய கோப்புகளில் வைக்கும்போது தேடுதல் கடினம், ஒரே தகவல் பல இடங்களில் மீள்நிகழ்தல் (data redundancy), ஒன்றை மாற்றினால் மற்றதை மாற்ற மறப்பது போன்ற சிக்கல்கள் ஏற்படும்.
தரவுத்தளம் (Database) என்பது தொடர்புடைய தரவுகளை (Related data) ஒழுங்கான முறையில், மீள்நிகழ்தல் குறைவாக, இலகுவாக மீட்கக்கூடிய வடிவத்தில் சேமிக்கும் ஓர் தொகுப்பாகும். இது ஒரு கோப்பு அல்ல; பல அட்டவணைகளின் (Tables) தொகுப்பாகும்.
தரவுத்தளம் பயன்படுத்தப்படும் இடங்கள்
- வங்கி கணக்கு பேணல் (Banking)
- பாடசாலை மாணவர் தகவல் முறைமை
- வைத்தியசாலை நோயாளர் பதிவுகள்
- விற்பனை நிலையம் (POS) — பொருட்கள், விற்பனை, இருப்பு
- நூலகம் — புத்தகங்கள், கடன் வாங்குனர்
- வலையமைப்புத் தளங்கள் — பயனர் கணக்குகள், செய்திகள்
2. தரவு, தகவல், அறிவு (Data, Information, Knowledge)
பின்வரும் சொற்கள் தினசரி உரையில் ஒரே பொருளாக கருதப்பட்டாலும், தரவுத்தளப் பாடத்தில் வேறுபாடு உண்டு.
தரவு (Data)
பதப்படுத்தப்படாத, தனிமையாக நிற்கும் உண்மைகள் அல்லது எண்கள். அவற்றுக்கு உடனடிப் பொருள் இல்லை.
உதாரணம்: 25, "கவிதா", 1426
தகவல் (Information)
தரவு பதப்படுத்தப்பட்டு, ஒழுங்கமைக்கப்பட்டு, புரியக்கூடிய பொருள் கொண்டவை.
உதாரணம்: "மாணவி கவிதா (அனு. இல. 1426) தனது வயது 25-இல் பட்டம் பெற்றார்."
அறிவு (Knowledge)
தகவல்களை அனுபவத்துடன் இணைத்து புதிய முடிவெடுப்புக்குப் பயன்படுத்தும் ஆற்றல்.
உதாரணம்: "எமது பாடசாலையில் கணினி வகுப்பு மாணவர் அதிகம் சித்தியடைகின்றனர்."
செய்து பாருங்கள் — தரவா? தகவலா?
பின்வருவன தரவா அல்லது தகவலா எனக் கூறுக:
- "38°C" → தரவு (தனியாக நின்றால்).
- "இன்றைய யாழ்ப்பாணத்தின் வெப்பநிலை 38°C" → தகவல்.
- "S001, S002, S003" → தரவு.
- "கிரிக்கெட் அணியில் 11 அங்கத்தவர்கள் உள்ளனர்" → தகவல்.
3. பாரம்பரிய கோப்பு முறைமை vs தரவுத்தளம்
தரவுத்தளம் தோன்றுவதற்கு முன், ஒவ்வொரு துறையும் தனித்தனிக் கோப்புகளை வைத்திருந்தது. பாடசாலையில் — அலுவலகம் ஒரு கோப்பு, ஆசிரியர் அறை ஒரு கோப்பு, விளையாட்டுத் துறை ஒரு கோப்பு. ஒரு மாணவியின் முகவரியை மாற்றினால், மூன்று கோப்புகளிலும் தனித்தனியே மாற்றப்பட்டது. இது தான் பாரம்பரிய கோப்பு முறைமை (Traditional File System).
| பாரம்பரிய கோப்பு முறைமை | தரவுத்தள முறைமை |
|---|---|
| தரவு பல இடங்களில் மீள்நிகழ்தல் (Data redundancy) அதிகம். | மீள்நிகழ்தல் குறைவு — ஒரே இடத்தில் சேமிப்பு. |
| தரவு முரண்பாடு (Data inconsistency) ஏற்படும். | ஒரு இடத்தில் மாற்றினால் எல்லாரும் காண்பர். |
| பல பயனர்கள் ஒரே நேரத்தில் அணுகுவது கடினம். | பல பயனர்கள் ஒரே நேரத்தில் அணுகலாம் (Multi-user). |
| பாதுகாப்புக் கட்டுப்பாடு குறைவு. | பயனர் அடிப்படை அணுகல் அதிகாரம் (Access control). |
| தரவு பகிர்ந்துகொள்ள கடினம். | தரவு பகிர்வு (Data sharing) எளிதானது. |
4. அட்டவணை, பதிவு, புலம் (Table, Record, Field)
தரவுத்தளத்தின் அடிப்படை அலகு அட்டவணை (Table) ஆகும். அட்டவணை வரிசைகளாகவும் (Rows) நெடுக்கைகளாகவும் (Columns) ஒழுங்கமைக்கப்பட்டுள்ளது.
- புலம் (Field) — ஒரு நெடுக்கை; ஒரு பண்பின் பெயரைக் குறிக்கும். உ-ம்: பெயர், அனுமதி இலக்கம், பிறந்த திகதி.
- பதிவு (Record) — ஒரு வரிசை; ஒரு உரு பற்றிய முழுத் தகவலைக் கொண்டது. உ-ம்: ஒரு மாணவியின் எல்லா விவரங்களும்.
- தரவுமூலம் / களம் (Data value) — ஒரு கட்டத்தில் உள்ள தனி மதிப்பு.
| அனுமதி இலக்கம் | மாணவர் பெயர் | வகுப்பு | பிறந்த திகதி |
|---|---|---|---|
| 1426 | கவிதா பிரபாஷ்வர் | 10A | 2005.05.23 |
| 1428 | முஹம்மட் மரிக்கார் | 10A | 2005.02.07 |
| 1429 | ஜனிற் அவேஷ்க | 10B | 2005.04.15 |
↑ ஒரு வரிசை = ஒரு பதிவு. ஒரு நெடுக்கை = ஒரு புலம். பச்சை = முதன்மை விசை.
5. தரவு வகைகள் (Data Types)
ஒவ்வொரு புலத்திற்கும் சேமிக்கப்படும் தரவின் வகையை முன்கூட்டியே தீர்மானிக்க வேண்டும். இதனால் தவறான தரவு உள்ளீடு தடுக்கப்படும்; சேமிப்பகம் சிக்கனமாகப் பயன்படுத்தப்படும்.
| தரவு வகை | விளக்கம் | உதாரணம் |
|---|---|---|
| பாடம் (Text / Character) | எழுத்துக்கள், சொற்கள், வசனங்கள். | "கவிதா", "10A" |
| எண் (Number / Numeric) | கணக்கீடு செய்யக்கூடிய எண்கள் — முழு எண், தசம எண். | 15, 87.5 |
| நாணயம் (Currency) | பணம் சார்ந்த எண்கள் — நாணய அடையாளத்துடன். | Rs. 1,250.00 |
| திகதி / நேரம் (Date / Time) | நாள், மாதம், வருடம், நேரம். | 2005.05.23, 7:35 a.m. |
| பூலியன் (Boolean) | இரு மதிப்புகள் மட்டும் — உண்மை (True) / பொய் (False). | ஆம் / இல்லை |
செய்து பாருங்கள் — பொருத்தமான தரவு வகை
பின்வரும் புலங்களுக்கு பொருத்தமான தரவு வகை யாது?
- மாணவர் பெயர் → பாடம் (Text)
- வயது → எண் (Number)
- பாடச் சீருடை வாங்கிய தொகை → நாணயம் (Currency)
- பாடசாலை சேர்ந்த திகதி → திகதி (Date)
- போக்குவரத்துத் தாங்கல் வழங்கப்படுகிறதா? → பூலியன் (Boolean)
6. முதன்மை விசை மற்றும் வெளி விசை (Primary Key & Foreign Key)
முதன்மை விசை (Primary Key) என்பது ஒரு அட்டவணையில் ஒவ்வொரு பதிவையும் தனித்துவமாக (Uniquely) அடையாளம் காட்டும் புலமாகும். இரு பதிவுகளுக்கு ஒரே முதன்மை விசை இருக்க முடியாது; அது வெற்று (NULL) ஆகவும் இருக்க முடியாது.
2. வெற்றில்லை (Not Null) — மதிப்பு கட்டாயம்.
உதாரணமாக, மாணவர் அட்டவணையில் அனுமதி இலக்கம் முதன்மை விசையாகப் பயன்படும். இரு மாணவருக்கு ஒரே அனுமதி இலக்கம் ஒதுக்கப்பட மாட்டாது. பெயர் முதன்மை விசையாக இருக்க முடியாது — ஏனெனில் இரு மாணவர்கள் ஒரே பெயர் கொண்டிருக்கலாம்.
வெளி விசை (Foreign Key) என்பது ஒரு அட்டவணையில் உள்ள ஒரு புலம், அது வேறொரு அட்டவணையின் முதன்மை விசையைச் சுட்டிக்காட்டும். இதன் மூலம் அட்டவணைகளுக்கிடையே தொடர்புநிலை (Relationship) உருவாக்கப்படுகிறது.
உதாரணம் — மாணவர் & விளையாட்டு
| அனுமதி இலக்கம் | பெயர் | பிறந்த திகதி | விளையாட்டு இலக்கம் |
|---|---|---|---|
| 1426 | கவிதா | 2005.05.23 | S002 |
| 1428 | முஹம்மட் | 2005.02.07 | S001 |
| 1429 | ஜனிற் | 2005.04.15 | S002 |
| விளையாட்டு இலக்கம் | விளையாட்டு | அங்கத்தவர் எண்ணிக்கை |
|---|---|---|
| S001 | கிரிக்கெட் | 11 |
| S002 | கால்பந்து | 16 |
| S003 | கூடைப்பந்து | 6 |
பச்சை = முதன்மை விசை. நீலம் = வெளி விசை (மற்றொரு அட்டவணையின் முதன்மை விசையைச் சுட்டுகிறது).
செய்து பாருங்கள் — விசை அடையாளம்
நூலகத் தரவுத்தளத்தில் இரு அட்டவணைகள்: புத்தகம் (புத்தக இல., தலைப்பு, ஆசிரியர்) மற்றும் கடன் (கடன் இல., புத்தக இல., அனுமதி இல., திகதி).
- புத்தகம் அட்டவணையின் முதன்மை விசை → புத்தக இல.
- கடன் அட்டவணையின் முதன்மை விசை → கடன் இல.
- கடன் அட்டவணையின் வெளி விசை → புத்தக இல. (புத்தகம் அட்டவணையைச் சுட்டுகிறது)
7. தொடர்புநிலைகள் (Relationships)
இரு அட்டவணைகளுக்கிடையே மூன்று வகையான தொடர்புநிலைகள் ஏற்படக்கூடும்.
(அ) ஒன்றுக்கு ஒன்று (One-to-One)
ஒரு அட்டவணையின் ஒரு பதிவு, மற்றொரு அட்டவணையின் ஒரே ஒரு பதிவுடன் தொடர்புபடும். உதாரணம்: ஒரு குடிமகனுக்கு ஒரே ஒரு தேசிய அடையாள அட்டை.
(ஆ) ஒன்றுக்குப் பல (One-to-Many)
ஒரு அட்டவணையின் ஒரு பதிவு, மற்றொரு அட்டவணையின் பல பதிவுகளுடன் தொடர்புபடும். உதாரணம்: ஒரு விளையாட்டுக்கு பல மாணவர்கள்; ஒரு மாணவருக்கு ஒரே ஒரு விளையாட்டு.
(இ) பலவிற்குப் பல (Many-to-Many)
இரண்டு அட்டவணைகளின் பல பதிவுகள் பல பதிவுகளுடன் தொடர்புபடும். உதாரணம்: ஒரு மாணவர் பல விளையாட்டுகளில் பங்கேற்கலாம்; ஒரு விளையாட்டில் பல மாணவர்கள் பங்கேற்கலாம்.
பலவிற்குப் பல தொடர்புநிலை நேரடியாகச் செயற்படுத்த முடியாது. இதனை இணைப்பு அட்டவணை (Junction / Linking Table) மூலம் இரண்டு ஒன்றுக்குப் பல தொடர்புகளாக மாற்றியமைக்கப்படுகின்றது.
செய்து பாருங்கள் — தொடர்புநிலை அடையாளம்
- ஒரு வகுப்பாசிரியர் ↔ ஒரு வகுப்பு → 1 : 1
- ஒரு வகுப்பு ↔ பல மாணவர்கள் → 1 : பல (1 : M)
- பல மாணவர்கள் ↔ பல பாடங்கள் → பல : பல (M : N) — இணைப்பு அட்டவணை தேவை.
8. தரவுத்தள முகாமைத்துவ மென்பொருள் (DBMS)
தரவுத்தளத்தை உருவாக்க, பேண, புதுப்பிக்க, தரவை மீட்க உதவும் சிறப்பு மென்பொருளே தரவுத்தள முகாமைத்துவ மென்பொருள் (Database Management System – DBMS) எனப்படுகின்றது. பயனர் நேரடியாக தரவுத்தளத்துடன் தொடர்புகொள்ளாமல், DBMS ஊடாகவே தொடர்புகொள்கிறார்.
இலவச / திறந்த மூல DBMS
- MySQL
- MariaDB
- LibreOffice Base
- SQLite
தனியுரிமை (Proprietary) DBMS
- Microsoft Access
- Microsoft SQL Server
- Oracle Database
- IBM DB2
DBMS-இன் பிரதான பணிகள்
- புதிய தரவுத்தளம் / அட்டவணை உருவாக்குதல்.
- தரவு உள்ளீடு, புதுப்பித்தல், அகற்றுதல்.
- வினவல்கள் (Queries) மூலம் தரவு மீட்டெடுத்தல்.
- பாதுகாப்பு — பயனர் அடிப்படை அணுகல் கட்டுப்பாடு.
- தரவு ஒருமைப்பாடு (Data integrity) பேணல்.
- காப்புப் பிரதி (Backup) மற்றும் மீட்பு (Recovery).
9. தரவுத்தள வடிவமைப்பு படிமுறை
தரவுத்தளம் உருவாக்க பின்பற்ற வேண்டிய படிகள்
- தேவையை இனங்காண்க — எந்தத் தகவல்களைச் சேமிக்க வேண்டும்?
- உருக்களை (Entities) அடையாளம் காண்க — மாணவர், விளையாட்டு, புத்தகம் போன்றவை.
- ஒவ்வொரு உருவுக்கும் புலங்களை (Fields) தீர்மானிக்க.
- ஒவ்வொரு புலத்துக்கும் பொருத்தமான தரவு வகையைத் தீர்மானிக்க.
- முதன்மை விசையை ஒவ்வொரு அட்டவணைக்கும் தேர்வுசெய்க.
- அட்டவணைகளுக்கிடையே தொடர்புநிலையை வரையறுக்க — வெளி விசை மூலம்.
- பலவிற்குப் பல தொடர்பு இருந்தால் இணைப்பு அட்டவணை சேர்க்க.
- DBMS-இல் அட்டவணைகளை உருவாக்கி, தரவை உள்ளிட்டு, வினவல்களைச் சோதிக்க.
உதாரண வடிவமைப்பு — பாடசாலை நூலகம்
| அட்டவணை | புலங்கள் | முதன்மை விசை |
|---|---|---|
| புத்தகம் | புத்தக இல., தலைப்பு, ஆசிரியர், பதிப்பகம் | புத்தக இல. |
| உறுப்பினர் | உறுப். இல., பெயர், வகுப்பு, தொடர்பு இலக்கம் | உறுப். இல. |
| கடன் | கடன் இல., புத்தக இல. (FK), உறுப். இல. (FK), திகதி | கடன் இல. |
↑ கடன் அட்டவணையில் இரண்டு வெளி விசைகள் உள்ளன — புத்தகம் மற்றும் உறுப்பினருடன் தொடர்புபடுத்துகின்றன.
செய்து பாருங்கள் — மருந்தகத் தரவுத்தளம் வடிவமைப்பு
ஒரு கிராமிய மருந்தகத்துக்கு தரவுத்தளம் வடிவமைக்க முதல் மூன்று படிகளை எழுதுங்கள்.
- உருக்கள்: மருந்து, வாடிக்கையாளர், விற்பனை.
- புலங்கள்:
- மருந்து — மருந்து இல. (PK), பெயர், விலை, காலாவதி திகதி.
- வாடிக்கையாளர் — வாடி. இல. (PK), பெயர், தொடர்பு இல.
- விற்பனை — விற்பனை இல. (PK), மருந்து இல. (FK), வாடி. இல. (FK), திகதி, அளவு.
- தொடர்புநிலை: மருந்து — விற்பனை (1:M); வாடிக்கையாளர் — விற்பனை (1:M).
10. தரவுத்தளத்தின் நன்மைகள் — சுருக்கம்
- மீள்நிகழ்தல் குறைவு — ஒரே தரவு பல இடங்களில் சேமிக்கப்படுவதில்லை.
- தரவு ஒருமைப்பாடு — ஒரே இடத்தில் புதுப்பித்தால் எல்லாம் சரியாகும்.
- பாதுகாப்பு — அதிகாரம் உள்ளவருக்கு மட்டுமே அணுகல்.
- பகிர்தல் — பல பயனர்கள் ஒரே நேரத்தில் வேலைசெய்யலாம்.
- தரவு சுயாதீனம் — பயன்பாடு (Application) மாறினாலும் தரவு பாதிக்கப்படாது.
- காப்பு மற்றும் மீட்பு — தரவு இழப்பிலிருந்து மீட்க வசதி.
📝 பரீட்சை வினாக்கள் (Past paper practice)
உண்மையான பரீட்சை வடிவம் — முதலில் உங்களே எழுதி, பின் மாதிரி விடை பார்க்க.
Databases தொடர்பான MCQ பயிற்சி — 2017.
-
(a) 35. தரவுத்தளத்தில் (database) ஒரு அட்டவணையில் (table) ஒவ்வொரு வரிசையும் எதை குறிக்கிறது?
(A) புலம் (Field)
(B) பதிவு (Record)
(C) நெடுவரிசை (Column)
(D) தரவுத்தளம் (Database) (1 புள்ளி)(B) பதிவு (Record).
விளக்கம்: தரவுத்தள அட்டவணையில் ஒவ்வொரு வரிசையும் ஒரு பதிவை (Record) குறிக்கிறது. நெடுவரிசை புலத்தை (Field) குறிக்கிறது. -
(b) 36. SQL இல் தரவுகளை தேர்வு செய்ய (select) பயன்படும் கட்டளை எது?
(A) FIND
(B) GET
(C) SELECT
(D) SEARCH (1 புள்ளி)(C) SELECT.
விளக்கம்: SQL இல் தரவுகளை தேர்வு செய்ய SELECT கட்டளை பயன்படுகிறது. SELECT * FROM table_name என்று எழுதப்படுகிறது.
Databases தொடர்பான MCQ பயிற்சி — 2018.
-
(a) 13. ஒரு தரவுத்தளத்தில் (database) கீழ்காணும் அட்டவணைகள் உள்ளன:
Books அட்டவணை:
ISBN | BookCode | BookName | PublisherID | Edition
புத்தக அட்டவணையில் ISBN என்பது முதன்மை விசை (primary key). இந்த அட்டவணை தொடர்பான சரியான கூற்று எது?
(A) BookID
(B) BookName
(C) ISBN
(D) PublisherID (1 புள்ளி)(C) ISBN.
விளக்கம்: ISBN என்பது ஒவ்வொரு புத்தகத்திற்கும் தனிப்பட்ட (unique) அடையாளம் ஆதலால் முதன்மை விசையாக செயல்படுகிறது. -
(b) 14. கீழ்காணும் Subject அட்டவணையில் Subject_Code என்பது முதன்மை விசை (Primary key).
Admission_No | Marks | Subject_Code | Subject_Name
குறிப்பிட்ட Marks ஐ கொண்டு Subject_Code பெறுவதற்கு உகந்த SQL வினவல் (query) எது?
(A) கொடுக்கப்பட்ட SQL statement
(B) SELECT Subject_Code FROM Subject WHERE Marks = [value];
(C) கொடுக்கப்பட்ட SQL statement
(D) கொடுக்கப்பட்ட SQL statement (1 புள்ளி)(B) SELECT Subject_Code FROM Subject WHERE Marks = [value];
விளக்கம்: Subject அட்டவணையில் Marks மூலம் Subject_Code எடுக்க SELECT, WHERE வாக்கியங்கள் பயன்படும்; சரியான SQL கட்டமைப்பு B விடையில் உள்ளது. -
(c) 15. ஒரு நிறுவனத்தின் தரவுத்தளத்தில் Emp_ID, Emp_Name, Designation, Div_ID உள்ளன. கீழ்காணும் Emp_ID மற்றும் Div_ID உள்ள அட்டவணையில்:
Saman Perera | E1 | Manager | Finance | 2 | Colombo
Raj Sritwan | E2 | Engineer | Finance | 2 | Colombo
Mano Samuel | E3 | ICT Manager | ICT | 3 | Colombo
Fasal Khan | E4 | Accountant | Finance | 2 | Colombo
இந்த அட்டவணையில் நேரடி சார்பு (functional dependency) தொடர்பான சரியான கூற்று எது?
(A) Emp_ID → Emp_Name, Designation, Div_ID
(B) Div_ID → Division_No, Division_Name
(C) Emp_ID → Division_Name
(D) A, B, C அனைத்தும் (1 புள்ளி)(D) A, B, C அனைத்தும்.
விளக்கம்: Emp_ID முழு பதிவையும் (Emp_Name, Designation, Div_ID) தீர்மானிக்கிறது; Div_ID தொகுதி பெயரை தீர்மானிக்கிறது; எனவே A, B, C அனைத்தும் சரி.
Databases தொடர்பான MCQ பயிற்சி — 2019.
-
(a) 24. தரவுத்தளத்தில் (Database) ஒவ்வொரு பதிவையும் (Record) தனித்துவமாக அடையாளம் காட்டும் புலம் (Field) எது?
(A) Foreign Key
(B) Primary Key
(C) Index Key
(D) Unique Key (1 புள்ளி)(B) Primary Key.
விளக்கம்: Primary Key ஒவ்வொரு பதிவையும் (record) தனித்துவமாக (uniquely) அடையாளம் காட்டுகிறது. -
(b) 25. SQL இல் தரவை வரிசைப்படுத்த (sort) பயன்படும் வாக்கியம் எது?
(A) SORT BY
(B) ORDER BY
(C) ARRANGE BY
(D) GROUP BY (1 புள்ளி)(B) ORDER BY.
விளக்கம்: SQL இல் ORDER BY வாக்கியம் தரவை ஏறு அல்லது இறங்கு வரிசையில் வரிசைப்படுத்த பயன்படுகிறது. -
(c) 26. தரவுத்தள அட்டவணையில் (மாணவர் அட்டவணை) Student ID, FirstName, LastName என்ற புலங்கள் உள்ளன. Student ID ஐ Primary Key ஆக அமைக்கும் காரணம் என்ன?
(A) அது அனைத்து மாணவர்களுக்கும் ஒரே மதிப்பு கொண்டிருக்கும்
(B) அது ஒவ்வொரு மாணவரையும் தனித்துவமாக அடையாளம் காட்டும்
(C) அது மாணவரின் பெயரை சேமிக்கும்
(D) அது எண்கள் மட்டும் கொண்டிருக்கும் (1 புள்ளி)(B) அது ஒவ்வொரு மாணவரையும் தனித்துவமாக அடையாளம் காட்டும்.
விளக்கம்: Primary Key ஒவ்வொரு பதிவையும் தனித்துவமாக (uniquely) அடையாளம் காட்டும். Student ID ஒவ்வொரு மாணவருக்கும் வேறுபட்டதாக இருக்கும்.
Databases தொடர்பான MCQ பயிற்சி — 2020.
-
(a) 19. தரவுத்தளம் (Author_Book) கட்டமைப்பில் முதன்மைகோல் என்ன (primary key)யாவது?
ஆசிரியர் அட்டவணை:
AuthorID | FirstName | LastName
101 | Nimal | Perera
102 | Viga | Solurian
103 | Chami | Khan
104 | Shanti | Rodrigo
நூல் அட்டவணை (Author_Book) கட்டமைப்பு:
AuthorID | BookID
101 | B01
101 | B02
102 | B01
103 | B03
(1) AuthorID
(2) BookID
(3) AuthorID + BookID
(4) faculty_Share (1 புள்ளி)(3) AuthorID + BookID.
விளக்கம்: Author_Book அட்டவணையில் AuthorID + BookID சேர்ந்து composite primary key ஆகும், ஏனெனில் இரண்டும் சேர்ந்தே தனித்துவமான தகவலை அடையாளம் காட்டுகின்றன. -
(b) 20. தரவுத்தளத்தில் கட்டமைப்பு (Author_Book) கட்டமைப்பில் உள்ள Author_Book அட்டவணையில் அயல்சாவி (foreign key) எது?
(1) AuthorID
(2) BookID
(3) AuthorID + BookID
(4) faculty_Share (1 புள்ளி)(1) AuthorID.
விளக்கம்: AuthorID என்பது Author_Book அட்டவணையில் உள்ள அயல்சாவி (foreign key) ஆகும், இது Author அட்டவணையின் முதன்மைகோலை (primary key) குறிக்கிறது.
Databases தொடர்பான பயிற்சி — 2021.
-
(a) 21. பின்வரும் அட்டவணையை கவனிக்கவும்:
வாங்குதல் (Purchase) அட்டவணை:
Item_ID | Item_Name | Selling_Price
1001 | Tea bag | 40
1002 | Milk | 60
1003 | Chicken oil | 120
1004 | Coconut | 25
கொள்முதல் அட்டவணை:
Item_ID | Supplier_ID | Purchasing_Price
3001 | 45
3002 | 11
3003 | 33
3004 | 55
வழங்குனர் (Supplier) அட்டவணை:
Supplier_ID | Supplier_Name | Supplier_Location
3001 | Supplier 1 | Matara
3002 | Supplier 2 | Colombo
3003 | Supplier 3 | Polonnaruwa
3004 | Supplier 4 | Hambantota
(i) Purchase அட்டவணையின் முதன்மை திறவுகோல் (Primary key) என்னென்னவை?
(ii) கொள்முதல் அட்டவணையில் வெளி திறவுகோல் (Foreign key) என்னவென்று அடையாளம் காணவும்.
(iii) SQL கட்டளையை பயன்படுத்தி Supplier_Location-ஆனது \'Matara\' என்று உள்ள வழங்குனர்களின் பெயர்களை பெறவும். (4 புள்ளி)(i) முதன்மை திறவுகோல் (Primary Key) = Item_ID
(ii) வெளி திறவுகோல் (Foreign Key) = Item_ID (Item அட்டவணையை குறிக்கிறது), Supplier_ID (Supplier அட்டவணையை குறிக்கிறது)
(iii) SELECT Supplier_Name FROM Supplier WHERE Supplier_Location = \'Matara\'; -
(b) 22. பின்வரும் \'Political Science\' என்னும் பாடப் பட்டியலை (Subject list) கவனிக்கவும்:
Student அட்டவணை:
Student_ID | Name | Subject_ID | Teacher_Name | Class
Enroll அட்டவணை:
Student_ID | Subject_ID | Date
(i) Student அட்டவணையில் முதன்மை திறவுகோல் (Primary Key) யாது?
(ii) விவரிக்கவும்: இந்த தரவுத்தளத்தில் தரவு செல்லாமை (Data Redundancy) எங்கு தோன்றுகிறது?
(iii) தரவு செல்லாமையை (Data Redundancy) நீக்க அட்டவணைகளை எவ்வாறு மறுவடிவமைப்பு செய்வீர்கள்?
(iv) Political Science-ஐ பயிலும் மாணவர்களின் பெயர்களை பெற SQL கட்டளை எழுதவும். (4 புள்ளி)(i) Student_ID முதன்மை திறவுகோல் (Primary Key)
(ii) Teacher_Name மற்றும் Subject போன்ற தகவல்கள் ஒவ்வொரு மாணவர் பதிவிலும் மீண்டும் மீண்டும் தோன்றுவதால் தரவு செல்லாமை ஏற்படுகிறது
(iii) Subject அட்டவணை (Subject_ID, Subject_Name, Teacher_Name) தனியே உருவாக்கி, மாணவர் அட்டவணையில் Subject_ID மட்டும் வைக்கலாம்
(iv) SELECT s.Name FROM Student s JOIN Enroll e ON s.Student_ID = e.Student_ID JOIN Subject sub ON e.Subject_ID = sub.Subject_ID WHERE sub.Subject_Name = \'Political Science\';
Databases தொடர்பான MCQ பயிற்சி — 2023.
-
(a) 12. பின்வரும் எந்த SQL கட்டளை Bus_station என்ற அட்டவணையிலிருந்து (table) Route_code, Name, Code என்ற தரவுகளை பெறும்?
(A) SELECT Route_code, Name, Code FROM Bus_station
(B) SELECT * FROM Bus_station WHERE Route_code, Name
(C) SELECT Route_code FROM Bus_station WHERE Name AND Code
(D) SELECT Route_code, Name, Code WHERE Bus_station (1 புள்ளி)(A) SELECT Route_code, Name, Code FROM Bus_station.
விளக்கம்: SQL இல் குறிப்பிட்ட நெடுவரிசைகளை (columns) தேர்ந்தெடுக்க SELECT column_names FROM table_name என்ற தொடரியல் (syntax) பயன்படுகிறது. -
(b) 13. ROUTE_INSTANCE என்ற அட்டவணையில் (table) Available_seats என்ற நெடுவரிசையில் 30 க்கும் அதிகமான இடங்கள் உள்ள வரிசைகளை (records) பெற SQL கட்டளை எது?
(A) SELECT * FROM ROUTE_INSTANCE WHERE Available_seats > 30
(B) SELECT * FROM ROUTE_INSTANCE WHERE Available_seats = 30
(C) SELECT * FROM ROUTE_INSTANCE WHERE Available_seats < 30
(D) SELECT Available_seats FROM ROUTE_INSTANCE WHERE seats > 30 (1 புள்ளி)(A) SELECT * FROM ROUTE_INSTANCE WHERE Available_seats > 30.
விளக்கம்: 30 க்கும் அதிகமான என்பதற்கு > 30 நிபந்தனை பயன்படுத்தப்படும். -
(c) 14. SEAT_RESERVATION என்ற அட்டவணையின் primary key எது?
[அட்டவணை: SEAT_RESERVATION — நெடுவரிசைகள்: Seat_number, Passenger_name, Passenger_phone]
(A) ROUTE_STATION
(B) ROUTE_INSTANCE
(C) Seat_number
(D) SEAT_RESERVATION (1 புள்ளி)(C) Seat_number.
விளக்கம்: Primary key என்பது ஒவ்வொரு record ஐயும் தனித்துவமாக அடையாளப்படுத்தும் field ஆகும். SEAT_RESERVATION அட்டவணையில் Seat_number தனித்துவமான அடையாளங்காட்டியாக (unique identifier) இருக்கும். -
(d) 15. ஒரு database இல் data redundancy (தரவு மீண்டும் மீண்டும் தோன்றுவது) ஏற்படுவதை தவிர்க்க எந்த நடவடிக்கை பயன்படுகிறது?
(A) tables அதிகமாக உருவாக்குவது
(B) Normalization (இயல்பாக்கம்) மேற்கொள்வது
(C) records ஐ delete செய்வது
(D) primary key இல்லாமல் tables உருவாக்குவது (1 புள்ளி)(B) Normalization (இயல்பாக்கம்) மேற்கொள்வது.
விளக்கம்: Normalization என்பது database design செய்யும்போது data redundancy ஐ குறைக்கவும், data integrity பேணவும் பயன்படும் முறையாகும்.
Databases தொடர்பான MCQ பயிற்சி — 2024.
-
(a) 9. தரவுத்தள மேலாண்மை அமைப்பில் (DBMS - Database Management System) PURCHASE அட்டவணையில் (table) பின்வரும் புலங்கள் (fields) உள்ளன:
Book_ID, Supplier_ID, Address, Purchasing_price
SUPPLIER அட்டவணையில்:
Supplier_ID, Supplier_name, Address
இந்த இரண்டு அட்டவணைகளுக்கும் இடையே உள்ள உறவு (relationship) எது?
(A) BOOK அட்டவணையின் Book_ID முதன்மை விசை (Primary Key)
(B) SUPPLIER அட்டவணையின் Supplier_ID முதன்மை விசை
(C) PURCHASE அட்டவணையின் Supplier_ID வெளிநாட்டு விசை (Foreign Key)
(D) PURCHASE அட்டவணையின் Book_ID வெளிநாட்டு விசை (1 புள்ளி)(C) PURCHASE அட்டவணையின் Supplier_ID வெளிநாட்டு விசை (Foreign Key).
விளக்கம்: PURCHASE அட்டவணையில் உள்ள Supplier_ID என்பது SUPPLIER அட்டவணையை குறிக்கும் வெளிநாட்டு விசை (Foreign Key) ஆகும். -
(b) 10. தரவுத்தளத்தில் (database) BOOK அட்டவணையின் (table) Book_ID முதன்மை விசையாக (Primary Key) இருக்கும்போது, அதே Book_ID PURCHASE அட்டவணையில் இருந்தால் அது என்ன அழைக்கப்படும்?
(A) முதன்மை விசை (Primary Key)
(B) வெளிநாட்டு விசை (Foreign Key)
(C) கூட்டு விசை (Composite Key)
(D) தனிப்பட்ட விசை (Unique Key) (1 புள்ளி)(B) வெளிநாட்டு விசை (Foreign Key).
விளக்கம்: ஒரு அட்டவணையின் முதன்மை விசை வேறொரு அட்டவணையில் காணப்படும்போது அது வெளிநாட்டு விசை (Foreign Key) என அழைக்கப்படும். -
(c) 11. தரவுத்தளத்தில் (database) உள்ள PURCHASE அட்டவணையில் இருந்து Purchasing_price ஐ அதிகரிக்கும் வரிசையில் (ascending order) காண்பிக்க SQL வினவல் (query) எது?
(A) SELECT * FROM PURCHASE ORDER BY Purchasing_price;
(B) SELECT * FROM PURCHASE WHERE Purchasing_price;
(C) SELECT Purchasing_price FROM PURCHASE;
(D) SELECT * FROM PURCHASE SORT BY Purchasing_price; (1 புள்ளி)(A) SELECT * FROM PURCHASE ORDER BY Purchasing_price;
விளக்கம்: ORDER BY என்ற SQL வார்த்தை ஒரு நெடுவரிசையின் மதிப்புகளை ஏறுவரிசையில் வரிசைப்படுத்த பயன்படுகிறது. -
(d) 16. LibreOffice Base இல் ஒரு புதிய படிவத்தை (Form) உருவாக்க (create) எந்த படிநிலை (step) பயன்படுத்தப்படுகிறது?
I - Wizard மூலம் Forms உருவாக்கலாம்
II - Design View மூலம் Forms உருவாக்கலாம்
LibreOffice Base இல் Forms உருவாக்க எந்த வழிகள் உள்ளன?
(A) I மட்டும்
(B) II மட்டும்
(C) I மற்றும் II இரண்டும்
(D) மேலே உள்ள எதுவும் இல்லை (1 புள்ளி)(C) I மற்றும் II இரண்டும்.
விளக்கம்: LibreOffice Base இல் Forms ஐ Wizard மூலம் அல்லது Design View மூலம் இரண்டு வழிகளிலும் உருவாக்கலாம்.
Databases பயிற்சி — 2018.
-
(a) 3. ஒரு நூலகத்தில் (library) பின்வரும் அட்டவணைகள் உள்ளன:
Books அட்டவணை: ISBN | BookCode | BookName | PublisherID | Edition
Publisher அட்டவணை: PublisherID | PublisherName | Address
கீழ்காணும் வினாக்களுக்கு விடை தருக:
(i) Books அட்டவணையில் முதன்மை விசை (Primary Key) எது? வெளி விசை (Foreign Key) எது? விளக்குக.
(ii) LibreOffice Base இல் இந்த இரண்டு அட்டவணைகளுக்கும் இடையே உறவை (relationship) உருவாக்க என்ன செய்வீர்கள்?
(iii) \'ICT for your life\' என்ற பெயருடைய புத்தகங்களின் விவரங்களை காட்ட SQL query எழுதுக.
(iv) நூலக அட்டவணையில் புத்தகங்களை (books) வரிசைப்படுத்த (sort) பயன்படும் SQL வாக்கியம் எழுதுக. (10 புள்ளி)(i) முதன்மை விசை (Primary Key): ISBN — ஒவ்வொரு புத்தகத்திற்கும் தனிப்பட்டது.
வெளி விசை (Foreign Key): PublisherID — Publisher அட்டவணையை குறிக்கிறது.
(ii) LibreOffice Base இல் Tools → Relationships → Books.PublisherID இணைப்பை Publisher.PublisherID உடன் இணைக்கவும். இது one-to-many உறவை நிறுவும்.
(iii) SQL query:
SELECT * FROM Books WHERE BookName = \'ICT for your life\';
(iv) வரிசைப்படுத்த:
SELECT * FROM Books ORDER BY BookName ASC; -
(b) 6. ஒரு நிறுவனத்தின் (company) விற்பனை (sales) தரவுத்தளம் கீழ்காணும் அட்டவணைகளைக் கொண்டுள்ளது:
Sales அட்டவணை:
Month | ShopID | Sales
January | 001 | 18700
February | 001 | 19000
March | 002 | 18200
April | 002 | 18860
March | 001 | 21000
Shop அட்டவணை:
ShopID | ShopName | Category
001 | PQR Central College | B
002 | | B
Employee அட்டவணை:
Emp_ID | Emp_Name | Designation | Div_ID | Division_No | Division_Name | City
E1 | Saman Perera | Manager | | 2 | Finance | Colombo
E2 | Raj Sritwan | Engineer | | 2 | Finance | Colombo
E3 | Mano Samuel | ICT Manager | | 3 | ICT | Colombo
E4 | Fasal Khan | Accountant | | 2 | Finance | Colombo
(i) Sales அட்டவணையில் ShopID என்பது வெளி விசை (Foreign Key) என்று கூறலாமா? விளக்குக.
(ii) Emp_ID = E4 ஆன பணியாளரின் நகரத்தை (city) கண்டறிய SQL query எழுதுக.
(iii) Employee அட்டவணையில் உள்ள தரவு மீட்பு சிக்கல் (data redundancy problem) என்ன? தீர்வு சொல்லுக.
(iv) ஒரு 1NF (First Normal Form) ஐ நிறைவேற்றும் (satisfy) அட்டவணையின் நிபந்தனைகளை (conditions) பட்டியலிடுக. (10 புள்ளி)(i) ஆம், Sales அட்டவணையில் ShopID என்பது வெளி விசை (Foreign Key) — ஏனெனில் Shop அட்டவணையின் ShopID (Primary Key) ஐ குறிக்கிறது; இது இரண்டு அட்டவணைகளுக்கும் இடையே உறவை (relationship) நிறுவுகிறது.
(ii) SQL query:
SELECT City FROM Employee WHERE Emp_ID = \'E4\';
(iii) தரவு மீட்பு சிக்கல்: Division_No மற்றும் Division_Name (Finance, ICT) மீண்டும் மீண்டும் பல வரிசைகளில் திரும்பத் திரும்ப உள்ளன (redundancy). தீர்வு: Division என்று தனி அட்டவணை உருவாக்கி (Div_ID, Division_No, Division_Name) Div_ID ஐ Employee அட்டவணையில் வெளி விசையாக வைக்கவும்.
(iv) 1NF நிபந்தனைகள்:
• ஒவ்வொரு கலமும் (cell) ஒரே மதிப்பை (atomic value) கொண்டிருக்க வேண்டும்
• ஒரு நெடுவரிசை (column) ஒரே வகை தரவை கொண்டிருக்க வேண்டும்
• ஒவ்வொரு வரிசையும் (row) தனித்துவமாக (unique) இருக்க வேண்டும்
• நெடுவரிசைகளுக்கு திரும்பத் திரும்ப குழுக்கள் (repeating groups) இருக்கக்கூடாது
Databases பயிற்சி — 2019.
-
(a) வினா 3 — (பகுதி II)
ஒரு நூலகத்தில் புத்தகங்களை நிர்வகிக்க தரவுத்தளம் பயன்படுத்தப்படுகிறது. கீழே மூன்று அட்டவணைகள் உள்ளன:
pusthakam (Book) அட்டவணை:
Book_ID | Title | Author | Reserved_Date
1001 | Science | Nimal | 2019-01-05
maanavar (Student) அட்டவணை:
Student_ID | Name | Grade | Library_Number
pathivu (Reservation) அட்டவணை:
Book_ID | Student_ID | Year_Joined | ApproxSal | CaptainID
(i) Book அட்டவணையில் Primary Key எது? ஏன்?
(ii) Student அட்டவணையில் Primary Key எது?
(iii) Reservation அட்டவணையில் Foreign Key கள் எவை?
(iv) Book_ID = 1001 ஆன புத்தக தகவலை தேடும் SQL கட்டளை எழுதுக.
(v) தரவுத்தளத்தின் நன்மைகள் இரண்டு குறிப்பிடுக. (10 புள்ளி)(i) Book_ID — Primary Key. ஒவ்வொரு புத்தகத்தையும் தனித்துவமாக (uniquely) அடையாளம் காட்டுகிறது.
(ii) Student_ID — Primary Key.
(iii) Foreign Keys: Book_ID (Book அட்டவணையை சுட்டும்), Student_ID (Student அட்டவணையை சுட்டும்).
(iv) SELECT * FROM pusthakam WHERE Book_ID = 1001;
(v) நன்மைகள்:
1. தரவு மறைமுகம் (Data Redundancy) குறைக்கப்படுகிறது.
2. தரவை விரைவாக தேட (search) மற்றும் வடிகட்ட (filter) முடியும். -
(b) வினா 6 — (பகுதி II)
ஒரு Cricket அமைப்பு வீரர்களின் தரவை நிர்வகிக்க தரவுத்தளம் பயன்படுத்துகிறது. கீழே அட்டவணைகள் கொடுக்கப்பட்டுள்ளன:
aL_amaippu (Team) அட்டவணை:
TeamID | TeamName | ApproxSal | CaptainID
aL_veerar (Player) அட்டவணை:
PlayerID | FirstName | LastName | YearJoined
pathivu (Record) அட்டவணை:
TeamID | PlayerID | Year_Joined | ApproxSal | CaptainID
(i) aL_veerar அட்டவணையில் Primary Key எது?
(ii) Book_ID என்ற Foreign Key எந்த அட்டவணையில் உள்ளது? அது எந்த அட்டவணையை சுட்டுகிறது?
(iii) 2019 ல் இணைந்த வீரர்களின் பெயர்களை காட்டும் SQL கட்டளை எழுதுக.
(iv) Reserved_Date இன் படி வரிசைப்படுத்திய Book_ID பட்டியலை காட்டும் SQL கட்டளை எழுதுக.
(v) தரவுத்தளத்தில் தரவு மறைமுகம் (Data Redundancy) என்றால் என்ன? அதை தடுக்க எவ்வாறு அமைப்பு உருவாக்கலாம்? (10 புள்ளி)(i) PlayerID — Primary Key.
(ii) Reservation அட்டவணையில் Book_ID என்ற Foreign Key உள்ளது. அது Book அட்டவணையின் Book_ID ஐ சுட்டுகிறது.
(iii) SELECT FirstName, LastName FROM aL_veerar WHERE YearJoined = 2019;
(iv) SELECT Book_ID FROM pusthakam ORDER BY Reserved_Date;
(v) Data Redundancy என்பது ஒரே தரவு பல இடங்களில் மீண்டும் மீண்டும் சேமிக்கப்படுவது. இதை தடுக்க, தரவை தனியான அட்டவணைகளில் (tables) சேமித்து, அட்டவணைகளை Foreign Key மூலம் இணைப்பதன் மூலம் normalisation செய்யலாம்.
Databases பயிற்சி — 2021.
-
(a) பின்வரும் தரவுத்தள அட்டவணைகளை (Database Tables) கவனிக்கவும்:
வாங்குதல் (Item) அட்டவணை:
Item_ID | Item_Name | Selling_Price
1001 | Tea bag | 40
1002 | Milk | 60
1003 | Chicken oil | 120
1004 | Coconut | 25
கொள்முதல் (Purchase) அட்டவணை:
Item_ID | Supplier_ID | Purchasing_Price
1001 | 3001 | 35
1002 | 3002 | 55
1003 | 3003 | 100
1004 | 3004 | 20
வழங்குனர் (Supplier) அட்டவணை:
Supplier_ID | Supplier_Name | Supplier_Location
3001 | Supplier 1 | Matara
3002 | Supplier 2 | Colombo
3003 | Supplier 3 | Polonnaruwa
3004 | Supplier 4 | Hambantota
(i) Item அட்டவணையின் முதன்மை திறவுகோல் (Primary Key) என்னது?
(ii) கொள்முதல் அட்டவணையில் வெளி திறவுகோல்கள் (Foreign Keys) யாவை?
(iii) Supplier_Location = \'Matara\' என்ற வழங்குனர்களின் பெயர்களை பெற SQL கட்டளை எழுதவும்.
(iv) Item_ID = 1001 க்கான Purchasing_Price மற்றும் Selling_Price இடையே உள்ள வித்தியாசத்தை (profit) கணக்கிட SQL கட்டளை எழுதவும். (8 புள்ளி)(i) முதன்மை திறவுகோல் = Item_ID
(ii) வெளி திறவுகோல்கள்:
- Item_ID → Item அட்டவணையின் Item_ID-ஐ குறிக்கிறது
- Supplier_ID → Supplier அட்டவணையின் Supplier_ID-ஐ குறிக்கிறது
(iii) SELECT Supplier_Name FROM Supplier WHERE Supplier_Location = \'Matara\';
(iv) SELECT (Selling_Price - Purchasing_Price) AS Profit
FROM Item i JOIN Purchase p ON i.Item_ID = p.Item_ID
WHERE i.Item_ID = 1001;
Databases பயிற்சி — 2022.
-
(a) 3. ஒரு நூலகத்தில் (Library) புத்தகங்கள் மற்றும் மாணவர்கள் தொடர்பான தரவுத்தளம் (database) பின்வரும் அட்டவணைகளை கொண்டுள்ளது:
Student அட்டவணை:
StudentID | StudentName | Grade
001 | Aruna | 10
002 | Bimala | 11
003 | Chaminda | 10
Borrowed_Items அட்டவணை:
BorrowID | StudentID | BookTitle | BorrowDate | Returned_Date | ReturnedDate
01 | 001 | ICT Book | 14/02/2021 | 13/02/2021 14:00:00 | 16/02/2021
02 | 003 | Atlas | 15/02/2021 | 14/02/2021 14:00:00 | 16/02/2021
(a) Borrowed_Items அட்டவணையில் Returned_Date மற்றும் ReturnedDate என்று இரண்டு நெடுவரிசைகள் உள்ளன. இவற்றுள் நிரந்தர நீக்கப்பட வேண்டிய நெடுவரிசை எது? காரணம் கூறுக.
(b) Student அட்டவணையில் உள்ள primary key எது?
(c) Borrowed_Items அட்டவணையில் உள்ள foreign key எது? இது Student அட்டவணையுடன் எவ்வாறு தொடர்பு கொள்கிறது என்று விளக்குக.
(d) 2010/2020 ஆண்டுகளுக்கிடையில் புத்தகங்களை கடன் பெற்ற மாணவர்களின் பெயரையும் புத்தக தலைப்பையும் தேர்வு செய்ய SQL வினவல் (query) எழுதுக. (10 புள்ளி)(a) Returned_Date என்ற நெடுவரிசை நீக்கப்படவேண்டும். காரணம்: ReturnedDate என்பது சரியான வடிவத்தில் (date format) உள்ளது மற்றும் நம்பகமான தரவை கொண்டுள்ளது. Returned_Date என்பது date மற்றும் time இரண்டும் கலந்த வடிவத்தில் உள்ளதால் நிலைத்தன்மையின்மை (inconsistency) உள்ளது. தரவு நகல் (redundancy) தவிர்க்க இந்த நெடுவரிசை நீக்கப்படவேண்டும்.
(b) Student அட்டவணையில் உள்ள primary key: StudentID — இது ஒவ்வொரு மாணவரையும் தனித்துவமாக அடையாளம் காண உதவும்.
(c) Borrowed_Items அட்டவணையில் foreign key: StudentID. இது Student அட்டவணையில் உள்ள StudentID-ஐ குறிக்கிறது. இதன் மூலம் எந்த மாணவர் எந்த புத்தகத்தை கடன் பெற்றார் என்ற one-to-many தொடர்பு (relationship) ஏற்படுகிறது.
(d) SQL வினவல்:
SELECT Student.StudentName, Borrowed_Items.BookTitle
FROM Student, Borrowed_Items
WHERE Student.StudentID = Borrowed_Items.StudentID
AND BorrowDate BETWEEN \'2010-01-01\' AND \'2020-12-31\';
Databases பயிற்சி — 2023.
-
(a) 1. ஒரு பேருந்து நிலையத்தின் (Bus Station) தரவுத்தள நிர்வாக அமைப்பு (Database Management System) பின்வரும் அட்டவணைகளை (tables) கொண்டுள்ளது:
Bus_station (Station_code, Name, Code)
ROUTE (Route_code, From_station_code, To_station_code, Duration)
ROUTE_INSTANCE (Route_code, Date, From_time, Available_seats)
SEAT_RESERVATION (Seat_number, Route_code, Date, From_time, Passenger_name, Passenger_phone)
(a) Bus_station என்ற அட்டவணையில் (table) உள்ள எல்லா தரவுகளையும் பெற SQL query எழுதுக.
(b) Route code \'R01\' ஐ உடைய ROUTE_INSTANCE அட்டவணையிலிருந்து Date மற்றும் Available_seats நெடுவரிசைகளை (columns) பெற SQL query எழுதுக.
(c) SEAT_RESERVATION அட்டவணையில் Route_code \'R01\', Date \'2023-01-15\' ஆக உள்ள Passenger_name மற்றும் Passenger_phone ஐ பெற SQL query எழுதுக.
(d) தரவுத்தளத்தில் (database) primary key மற்றும் foreign key இன் வேறுபாட்டை விளக்குக. (8 புள்ளி)(a) SELECT * FROM Bus_station;
(b) SELECT Date, Available_seats FROM ROUTE_INSTANCE WHERE Route_code = \'R01\';
(c) SELECT Passenger_name, Passenger_phone FROM SEAT_RESERVATION WHERE Route_code = \'R01\' AND Date = \'2023-01-15\';
(d) Primary key: ஒவ்வொரு record ஐயும் தனித்துவமாக அடையாளப்படுத்தும் field. NULL மதிப்பு இருக்க முடியாது. ஒரு அட்டவணையில் ஒரே ஒரு primary key மட்டுமே இருக்கும்.
Foreign key: ஒரு அட்டவணையில் உள்ள field ஆனது மற்றொரு அட்டவணையின் primary key ஐ குறிக்கும்போது அது foreign key எனப்படும். இது அட்டவணைகளுக்கிடையேயான தொடர்பை (relationship) நிலைநாட்டுகிறது. -
(b) 4. பின்வரும் database அட்டவணைகளை கவனிக்கவும்:
STUDENT (Student_id, First_name, Last_name, Course_id, Department)
COURSE (Course_id, Course_name, Department)
ENROLMENT (Student_id, Course_id, Enrolment_date)
(a) STUDENT அட்டவணையில் \'Computer Science\' துறையில் (Department) படிக்கும் மாணவர்களின் Student_id, First_name, Last_name ஐ பெற SQL query எழுதுக.
(b) Chemistry துறையில் (Department) உள்ள Courses ஐ பெற SQL query எழுதுக.
(c) Student_id \'S104\' உடைய மாணவர் எந்த courses இல் சேர்ந்துள்ளார் என்று அறிய ENROLMENT அட்டவணையிலிருந்து Course_id ஐ பெற SQL query எழுதுக.
(d) STUDENT மற்றும் COURSE அட்டவணைகளுக்கிடையே உள்ள relationship (தொடர்பு) வகையை விளக்குக. (8 புள்ளி)(a) SELECT Student_id, First_name, Last_name FROM STUDENT WHERE Department = \'Computer Science\';
(b) SELECT Course_id, Course_name FROM COURSE WHERE Department = \'Chemistry\';
(c) SELECT Course_id FROM ENROLMENT WHERE Student_id = \'S104\';
(d) STUDENT மற்றும் COURSE இடையே One-to-Many relationship உள்ளது: ஒரு Department பல Students ஐயும் பல Courses ஐயும் கொண்டிருக்கலாம். ENROLMENT அட்டவணை இவை இரண்டையும் இணைக்கும் junction table ஆக செயல்படுகிறது (Many-to-Many relationship ஐ இரண்டு One-to-Many ஆக உடைக்கிறது).
Databases பயிற்சி — 2024.
-
(a) 4. VEHICLE மற்றும் CUSTOMER மற்றும் RENTAL என்ற மூன்று அட்டவணைகள் (tables) கொண்ட ஒரு தரவுத்தள அமைப்பை (database system) கவனியுங்கள்.
VEHICLE அட்டவணை:
V_id | V_model | V_type | V_year | Rental_price
V001 | Toyota Corolla | Car | 2020 | 4000
V002 | Nissan Pickup | Pickup Truck | 2022 | 6000
V003 | Honda Civic | Car | 2019 | 4500
V004 | Ford Ranger | Pickup Truck | 2021 | 5000
CUSTOMER அட்டவணை:
C_id | C_name | C_type | ...
RENTAL அட்டவணை:
R_id | V_id | C_id | ...
(i) VEHICLE அட்டவணையில் முதன்மை விசை (Primary Key) எது?
(ii) RENTAL அட்டவணையில் வெளிநாட்டு விசைகள் (Foreign Keys) எவை?
(iii) Toyota Corolla மற்றும் Ford Ranger மட்டும் தேர்ந்தெடுக்கும் SQL வினவலை (SQL query) எழுதுங்கள்.
(iv) Rental_price இன் மிக அதிக (Maximum) மதிப்பை காட்டும் SQL வினவலை எழுதுங்கள்.
(v) 2 அட்டவணைகளை (VEHICLE மற்றும் RENTAL) இணைக்கும் (JOIN) SQL வினவலை எழுதுங்கள். (10 புள்ளி)(i) VEHICLE அட்டவணையில் முதன்மை விசை: V_id
(ii) RENTAL அட்டவணையில் வெளிநாட்டு விசைகள்: V_id (VEHICLE அட்டவணையை குறிக்கிறது) மற்றும் C_id (CUSTOMER அட்டவணையை குறிக்கிறது)
(iii) Toyota Corolla மற்றும் Ford Ranger தேர்ந்தெடுக்கும் SQL:
SELECT * FROM VEHICLE WHERE V_model = \'Toyota Corolla\' OR V_model = \'Ford Ranger\';
(iv) அதிகபட்ச Rental_price காட்டும் SQL:
SELECT MAX(Rental_price) FROM VEHICLE;
(v) VEHICLE மற்றும் RENTAL இணைக்கும் SQL:
SELECT * FROM VEHICLE JOIN RENTAL ON VEHICLE.V_id = RENTAL.V_id;
✅ விரைவுச் சோதனை (Quick Check)
முக்கிய புள்ளிகளை உறுதிப்படுத்த — தவறான விடைகள் உங்கள் தவறுப் புத்தகத்தில் சேமிக்கப்படும்.