දත්ත සමුදා (Databases) අවශ්ය වන්නේ ඇයි?
පෙර මොඩියුලයේදී, අපි වැඩසටහනක් ක්රියාත්මක වන විට පරිගණක මතකයේ (RAM) දත්ත කළමනාකරණය කරන ආකාරය ඉගෙන ගත්තෙමු. නමුත් RAM යනු වි अस्थिर (volatile) මතකයකි; එනම්, පරිගණකය ක්රියා විරහිත කළ විට එහි ඇති සියලු දත්ත මැකී යයි. පරිශීලක තොරතුරු, නිෂ්පාදන විස්තර වැනි දත්ත ස්ථිරවම ගබඩා කර තබා ගැනීමට අපට ක්රමයක් අවශ්ය වේ.
මේ සඳහා සරල text files භාවිතා කළ හැකි වුවත්, දත්ත ප්රමාණය වැඩි වන විට සහ එකම වේලාවේ පරිශීලකයන් කිහිප දෙනෙකු දත්ත භාවිතා කරන විට (concurrency) එය ඉතා අකාර්යක්ෂම සහ අනාරක්ෂිත වේ. මෙම ගැටළුවට විසඳුම තමයි දත්ත සමුදා කළමනාකරණ පද්ධතිය (Database Management System - DBMS). මෙය දත්ත විශාල ප්රමාණයක් කාර්යක්ෂමව, සුරක්ෂිතව සහ විශ්වාසනීයව ගබඩා කිරීම, කළමනාකරණය කිරීම සහ ලබා ගැනීම සඳහාම නිර්මාණය කරන ලද විශේෂිත මෘදුකාංගයකි.
මෙය හරියට ඔබගේ ව්යාපාරයේ සියලුම ලිපිගොනු, නෝට්බුක් ගොඩක තබා ගන්නවා වෙනුවට, විශාල, සුරක්ෂිත ෆයිල් කැබිනට් පද්ධතියක, දක්ෂ පුස්තකාලාධිපතිවරයෙකු යටතේ තබා ගන්නවා වැනිය. එම "පුස්තකාලාධිපති" තමයි DBMS එක.
SQL සහ සම්බන්ධතාත්මක දත්ත සමුදා (Relational Databases)
වඩාත්ම ප්රචලිත දත්ත සමුදා වර්ගය වන්නේ සම්බන්ධතාත්මක දත්ත සමුදා (Relational Database) වේ. මෙහිදී දත්ත, Excel spreadsheet එකක් මෙන්, වගු (Tables) වල ගබඩා කරනු ලැබේ.
- වගුව (Table): නිශ්චිත දෙයක් පිළිබඳ දත්ත එකතුවකි (උදා: `Users` table, `Products` table).
- තීරුව (Column): වගුවක ඇති දත්තයක ගුණාංගයකි (උදා: `UserID`, `FirstName`, `Email`).
- පේළිය (Row): එක් වාර්තාවකට අදාළ දත්ත සමූහයයි (උදා: එක් පරිශීලකයෙකුගේ ID, নাম, සහ email).
මෙම වගු එකිනෙක අතර සම්බන්ධතා (relationships) ගොඩනැගිය හැකි නිසා මේවා සම්බන්ධතාත්මක දත්ත සමුදා ලෙස හැඳින්වේ. ඉතින්, මෙම දත්ත සමුදා සමග "කතා කිරීමට", එනම් දත්ත ඉල්ලීමට, ඇතුලත් කිරීමට, හෝ වෙනස් කිරීමට අප භාවිතා කරන සම්මත භාෂාව තමයි Structured Query Language (SQL).
මූලික SQL විධාන (CRUD Operations)
ඕනෑම දත්ත සමුදායක මූලික ක්රියාවලි හතර (Create, Read, Update, Delete) SQL මගින් සිදුකරන ආකාරය බලමු.
1. දත්ත ලබා ගැනීම (Read - SELECT)
වගුවකින් දත්ත ලබා ගැනීමට `SELECT` විධානය භාවිතා කරයි.
-- 'Users' වගුවේ ඇති සියලුම දත්ත ලබා ගැනීම
SELECT * FROM Users;
-- 'Users' වගුවෙන් 'FirstName' සහ 'Email' තීරු පමණක් ලබා ගැනීම
SELECT FirstName, Email FROM Users;
-- ශ්රී ලංකාවේ සිටින පරිශීලකයන් පමණක් තෝරා ගැනීම
SELECT * FROM Users WHERE Country = 'Sri Lanka';
2. දත්ත ඇතුලත් කිරීම (Create - INSERT)
වගුවකට නව පේළියක් (record) එකතු කිරීමට `INSERT INTO` විධානය භාවිතා කරයි.
-- 'Users' වගුවට නව පරිශීලකයෙකු ඇතුලත් කිරීම
INSERT INTO Users (UserID, FirstName, LastName, Email, Country)
VALUES (101, 'Nimal', 'Silva', 'nimal.s@email.com', 'Sri Lanka');
3. දත්ත යාවත්කාලීන කිරීම (Update - UPDATE)
වගුවක පවතින දත්ත වෙනස් කිරීමට `UPDATE` විධානය භාවිතා කරයි.
-- UserID එක 101 වන පරිශීලකයාගේ Email ලිපිනය වෙනස් කිරීම
UPDATE Users
SET Email = 'nimal.silva.new@email.com'
WHERE UserID = 101;
4. දත්ත මැකීම (Delete - DELETE)
වගුවකින් පේළියක් ඉවත් කිරීමට `DELETE` විධානය භාවිතා කරයි.
-- UserID එක 101 වන පරිශීලකයා වගුවෙන් ඉවත් කිරීම
DELETE FROM Users WHERE UserID = 101;
අවසාන වශයෙන්
DBMS සහ SQL යනු ඕනෑම මෘදුකාංග යෙදුමක පදනමයි. Facebook හි ඔබගේ මිතුරන්ගේ තොරතුරු වල සිට, Amazon හි ඇති භාණ්ඩ දක්වා සෑම දෙයක්ම ගබඩා වී ඇත්තේ දත්ත සමුදා වලය. මෙම දැනුම ඕනෑම මෘදුකාංග සංවර්ධකයෙකුට අත්යවශ්ය වේ.
සම්බන්ධතාත්මක දත්ත සමුදා ඉතා ප්රබල වුවත්, සමහර නවීන යෙදුම් වලට (උදා: Big Data, social media feeds) ඒවා එතරම් නොගැලපේ. එම ගැටළු සඳහා බිහිවූ වෙනස්ම දත්ත සමුදා වර්ගයක් ඇත. අපගේ ඊළඟ මොඩියුලයෙන්, අපි එම "උසස් දත්ත සමුදා සංකල්ප (NoSQL)" පිළිබඳව ඉගෙන ගනිමු.