আসসালামু আলাইকুম।
শিরোনামে টিউটোরিয়াল দেখে ভাববেন না আমি ওরাকল এক্সপার্ট। টেকটিউনসে এ বিষয়ে অভিজ্ঞ অনেক ভাই আছেন এবং তাদের অনেক টিউনও আছে। আসলে টাকার অভাবে কোথাও কোর্স করতে না পেরে বই পড়ে আর অনলাইনে ফ্রি কোর্স টিউটোরিয়াল দেখে আমি ওরাকল ডাটাবেস শেখার চেষ্টা করছি। কিন্তু এভাবে শিখতে নিজেকে একা একা লাগছে তাই আপনাদেরকেও শরিক করছি আমার শেখার প্রক্রিয়ার সাথে। আমি বিষয়টি সহজভাবে বোঝার চেষ্টা করছি আর সেভাবেই উপস্থাপন করছি। ভুল ত্রুটির জন্য ক্ষমা প্রার্থনীয়।
সহজ ভাষায় ডাটাবেজ হল এমন একটি জায়গা যেখানে ডাটা রাখা হয়! আর এই ডাটা রাখা হয় টেবল আকারে। তার মানে ডাটাবেজ হল অনেকগুলো টেবলের সমাবেশ।
একটি টেবলের একটি নির্দিষ্ট রো এর সকল ডাটাকে রেকর্ড বা টাপল (Tuple) বলা হয় এবং একটি কলামকে এট্রিবিউট অথবা ফিল্ড বলা হয়। সম্পূর্ণ টেবলকে একটি রিলেশন বলা হয়।
একটি ডাটাবেজকে একসেস, মডিফাই এবং কোয়েরি করার জন্য সাধারণত স্ট্রাকচারড কোয়েরি ল্যাংগুয়েজ (SQL) ব্যবহার করা হয়। জনপ্রিয় Relational Database Management System (RDBMS) সমূহের মধ্যে ওরাকল, SQL সার্ভার, ডিবি২ ইত্যাদি উল্লেখযোগ্য।
একটি সহজ প্রশ্ন।
একটি প্রতিষ্ঠানের সকল ডাটাকে টেবল আকারে সাজিয়ে গুজিয়ে না হয় রাখলেন ডাটাবেজে, এখন এই ডাটাবেজকে রাখবেন কোথায়?
উত্তরটাও সহজ।
ডাটাবেজ একটি সফটওয়্যার। অন্যান্য সফটওয়্যারের মত অবশ্যই কম্পিউটারের হার্ডডিস্কে থাকবে এটা।
কিন্তু কম্পিউটার বা হার্ডডিস্ক ক্রেশ করলে?
তাহলেও কম্পিউটারে। ডাটাবেজ থাকবে হার্ডডিস্কে। কোন সার্ভারে, যেখানে ডাটা হারানোর ঝুঁকি নেই বললেই চলে।
আমরা যখন ওরাকল SQL শিখছি, আমাদের নিশ্চয়ই টেবল বানাতে হবে, এডিট করতে হবে, ডিলিট করতে হবে। অর্থাৎ আমাদের কমান্ড টাইপ করতে হবে। এটা দুইভাবে করা যেতে পারে। হয় আপনি ওরাকল ডাটাবেজ সফটওয়্যার আপনার হার্ডডিস্কে ইনস্টল করে নিবেন অথবা যদি সম্ভব হয় অনলাইনেই কাজ চালাবেন।
কোন প্রকার ইনস্টলেশনের ঝক্কি ঝামেলা ছাড়াই এই প্রোগ্রাম শেখার আছে। কিন্তু বেশ কিছু প্রতিবন্ধকতা থাকায় অভিজ্ঞরা নিরুৎসাহিত করেন। তবে আমার মতে, নবীনদের জন্য অনলাইনেই কারবার সেরে নেয়াটা বেটার। এতে দুনিয়ার যেকোন জায়গা থেকেই আমরা আমাদের শিখার ধারাবাহিকতা ঠিক রাখতে পারব। কারণ আমাদের ডাটা জমা থাকবে ক্লাউড ড্রাইভে।
তাহলে আসুন শিখে ফেলি ঝটপট কিভাবে নিজের জন্য একটি ওয়ার্কস্পেস তৈরী করতে হয়।
ধাপ ১ঃ আপনার ওয়েব ব্রাউজার খুলুন। টাইপ করুনঃ https://apex.oracle.com/en/
আপনার ব্রাউজারে একটি পেইজ আসল। Get Started for Free এই বাটনে ক্লিক করুন।
ধাপ ২ঃ এবার যে নতুন পেইজ আসল তাতে সামান্য স্ক্রল করে নিচে নামলে দেখবেন Alternatively, get a free apex.oracle.com workspace এই হেড’এর একটি প্যারাগ্রাফ। এর Request a Free Workspace এই বাটনে ক্লিক করুন।
ধাপ ৩ঃ এবার কিছু লিখার পালা। চটপট টাইপ করে ফেলুন আপনার নাম, ইমেইল আর ওয়ার্কস্পেসের নাম। ওয়ার্কস্পেসের নাম হিসেবে দিতে পারেন LEARNORA_YOUR NAME. এরপর Next বাটনে ক্লিক করুন।
ধাপ ৪ঃ একটা Survey page আসবে। না না করে নেক্সটে চলে যান।
ধাপ ৫ঃ এবার লিখতে হবে আপনি ওয়ার্কস্পেস দিয়ে কি করবেন সেটা। আমি বলেছি, আমি ওরাকল ডাটাবেস শিখতে চাই। আপনারাও তা লিখতে পারেন। এরপর নেক্সট দিন। নতুন যে পেইজ আসবে তা কিছু টার্মস এন্ড কন্ডিশন। পড়ে বা না পড়ে I accept the terms এর রেডিও বাটনে ক্লিক করে চলে যান নেক্সট পেইেজে। এই পেইজে লেখালেখির কাজ নাই। শুধু Submit Request বাটনে ক্লিক করুন। এবং অপেক্ষা করুন।
আশা করি, ২৪ ঘন্টার মধ্যেই আপনার দেয়া ই-মেইল আইডিতে একটি মেইল পাবেন Action required: account request for. এই শিরোনামে। Create Workspace এ ক্লিক করুন এবং ধৈর্য্য ধরুন। কয়েক মিনিট সময় লাগবে ওয়ার্কস্পেস তৈরী হতে।
ধাপ ৬ঃ পাসওয়ার্ড দিন। এরপর একটু হাসুন। কারণ আপনার ওয়ার্কস্পেস তৈরী।
ধাপ ৭ঃ নতুন ওয়ার্কস্পেস-এর SQL Workshop এ ক্লিক করুন।
এরপর SQL Commands এ ক্লিক করুন। কাজ শেষ। এবার ডাটা দেয়ার পালা।
SQL Command লেখার জন্য একটি নতুন জায়গা পাওয়া গেল। এবার কোন কিছু বুঝাবুঝির ধার না ধরে নিচের ডাটাগুলো কপি পেস্ট করুন। কারণ আমাদের নতুন ওয়ার্কস্পেস ডাটা ছাড়া অথচ কাজ চালানোর জন্য ডাটা দরকার। এরপর ইনশাআল্লাহ আমরা ধাপে ধাপে শিখব কোনটা কি, কেন, কিভাবে।
১. Department Table তৈরী করাঃ
create table dept(deptno number(2, 0),
dname varchar2(14),
loc varchar2(13),
constraint pk_dept primary key (deptno));
কপি করে পেস্ট করুন SQL Command উইন্ডোতে। এরপর Run বাটনে ক্লিক করুন। dept নামে একটি Table তৈরী হয়ে গেল।
২. EmployeeTable তৈরী করাঃ
Clear Command বাটনে ক্লিক করে আগের কাজগুলো মুছে ফেলি। এবার নিচের ডাটাগুলো কপি-পেস্ট করুন SQL Command উইন্ডোতে। এরপর Run বাটনে ক্লিক করুন। emp নামে একটি Table তৈরী হয়ে গেল।
create table emp(empno number(4, 0),
ename varchar2(10),
job varchar2(9),
mgr number(4, 0),
hiredate date,
sal number(7, 2),
comm number(7, 2),
deptno number(2, 0),
constraint pk_emp primary key (empno),
constraint fk_deptno foreign key (deptno) references dept (deptno));
৩. dept ও emp table এ ডাটা ইনসার্ট করাঃ
পূর্বের মত Clear Command বাটনে ক্লিক করে আগের কাজগুলো মুছে ফেলি।
DECLARE
BEGIN
insert into dept values(10, 'ACCOUNTING', 'DHAKA');
insert into dept values(20, 'RESEARCH', 'CHITTAGONG');
insert into dept values(30, 'SALES', 'KHULNA');
insert into dept values(40, 'OPERATIONS', 'COMILLA');
insert into emp values(7839, 'ASHRAF', 'PRESIDENT', null, to_date('17-11-1991', 'dd-mm-yyyy'), 50000, null, 10);
insert into emp values(7698, 'ARFAN', 'MANAGER', 7839, to_date('1-5-1991', 'dd-mm-yyyy'), 28500, null, 30);
insert into emp values(7782, 'ATIQ', 'MANAGER', 7839, to_date('9-6-1991', 'dd-mm-yyyy'), 24500, null, 10);
insert into emp values(7566, 'DILRUBA', 'MANAGER', 7839, to_date('2-4-1991', 'dd-mm-yyyy'), 29750, null, 20);
insert into emp values(7788, 'SHOMPA', 'ANALYST', 7566, to_date('9-12-1991', 'dd-mm-yyyy'), 30000, null, 20);
insert into emp values(7902, 'SAIFAN', 'ANALYST', 7566, to_date('3-12-1991', 'dd-mm-yyyy'), 30000, null, 20);
insert into emp values(7369, 'SAIRA', 'CLERK', 7902, to_date('17-12-1990', 'dd-mm-yyyy'), 8000, null, 20);
insert into emp values(7499, 'ADIL', 'SALESMAN', 7698, to_date('20-2-1991', 'dd-mm-yyyy'), 16000, 300, 30);
insert into emp values(7521, 'WAZIR', 'SALESMAN', 7698, to_date('22-2-1991', 'dd-mm-yyyy'), 12500, 500, 30);
insert into emp values(7654, 'MIZAN', 'SALESMAN', 7698, to_date('28-9-1991', 'dd-mm-yyyy'), 1250, 14000, 30);
insert into emp values(7844, 'TANHA', 'SALESMAN', 7698, to_date('8-9-1991', 'dd-mm-yyyy'), 15000, 0, 30);
insert into emp values(7876, 'JOBAYER', 'CLERK', 7788, to_date('12-1-1993', 'dd-mm-yyyy'), 11000, null, 20);
insert into emp values(7900, 'RIHAM', 'CLERK', 7698, to_date('3-12-1991', 'dd-mm-yyyy'), 9500, null, 30);
insert into emp values(7934, 'MANIK', 'CLERK', 7782, to_date('23-1-1992', 'dd-mm-yyyy'), 13000, null, 10);
/*
insert into salgrade values (1, 7000, 12000);
insert into salgrade values (2, 12001, 14000);
insert into salgrade values (3, 14001, 20000);
insert into salgrade values (4, 20001, 30000);
insert into salgrade values (5, 30001, 99999);
*/
COMMIT;
END;
কপি করুন আর পেস্ট করুন SQL Command উইন্ডোতে। এরপর Run বাটনে ক্লিক করুন। কাজ শেষ। এবার দেখার পালা আমাদের তৈরী করা টেবিল দু’টার বাস্তব চিত্র।
প্রথমে টাইপ করুন select *from dept। এরপর Run বাটনে ক্লিক করুন। নিচের চিত্রের মত যদি ডাটা সমৃদ্ধ টেবিল দেখেন তাহলে বুঝা গেল আমাদের তৈরী করা টেবিলে ডাটা ইনসার্ট হয়েছে।
একইভাবে emp টেবিল দেখার জন্য টাইপ করুন select *from emp। এরপর Run বাটনে ক্লিক করুন।
প্রথম পর্বের এখানেই সমাপ্তি।
কিন্তু অভাক হয়ে হয়ত ভাবছেন কোন তত্ত্ব কথা নাই কেন। আছে। তবে একসাথে সব না কচলিয়ে ধীরে ধীরে শিখাটাই মনে হয় ভাল হয়। তাছাড়া শুরুতেই বলেছি আমি নিজেই ছাত্র এ বিষয়ে, যা জানছি তা জানাতে জানাতে শিখছি। ওরাকল ডাটাবেস এক্সপার্ট ভাইদের সাহায্য কামনা করি। তাদের সদোপদেশ আমার পথের পাথেয় হয়ে থাকবে।
সুবহা’নাকা আল্লা-হুম্মা ওয়া বিহা’মদিকা আশহাদু আল লা-ইলাহা ইল্লা আন্তা আস্তাগফিরুকা ওয়াআতূবু ইলাইকা।
(হে আল্লাহ! আপনার প্রশংসাসহ পবিত্রতা ও মহিমা ঘোষণা করছি। আমি সাক্ষ্য দেই যে, আপনি ছাড়া কোনো হক্ব ইলাহ নেই, আমি আপনার কাছে ক্ষমা প্রার্থনা করছি এবং আপনার নিকট তওবা করছি। )
আমি আশরাফুল আলম। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 6 টি টিউন ও 27 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 1 টিউনারকে ফলো করি।
আসসালামু আলাইকুম। আমি আশরাফ, বাড়ী চাটগাঁ। আমার তেমন কোন উচ্চাকাঙ্খা নাই, তাই চাকরি ছেড়ে মাস্টারি করি। জাতি গড়ার কারিগরের ভূমিকা (নামকাওয়াস্তে, শিক্ষকের মূল্য দপ্তরির চেয়েও কম)।