COBOL এ ডেটাবেস অ্যাক্সেস (Database Access in COBOL)
COBOL একটি প্রাচীন কিন্তু শক্তিশালী ভাষা, এবং এটি প্রধানত ব্যবসায়িক অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। বর্তমানে COBOL ডেটাবেস অ্যাক্সেসের জন্য SQL (Structured Query Language) ব্যবহার করে ডেটাবেস পরিচালনা করা সম্ভব। COBOL এবং ডেটাবেসের মধ্যে যোগাযোগ স্থাপনের জন্য সাধারণত Embedded SQL বা ODBC (Open Database Connectivity) ব্যবহার করা হয়। COBOL প্রোগ্রামে SQL কমান্ড এম্বেড করার মাধ্যমে বিভিন্ন ডেটাবেস (যেমন, DB2, Oracle, MySQL, ইত্যাদি) থেকে ডেটা পড়া, আপডেট করা এবং ম্যানিপুলেট করা যায়।
COBOL ডেটাবেস অ্যাক্সেসে প্রধানত SQL DECLARE, OPEN, FETCH, UPDATE, INSERT, এবং CLOSE স্টেটমেন্ট ব্যবহার করা হয়।
COBOL এ SQL ব্যবহারের মূল উপাদান
COBOL এ SQL ব্যবহার করার জন্য আপনাকে ডেটাবেস অ্যাক্সেসের জন্য কিছু পদক্ষেপ অনুসরণ করতে হয়:
- Embedded SQL: COBOL প্রোগ্রামে SQL কোড এম্বেড করা।
- SQL Declaration: SQL কোয়েরি সংজ্ঞায়িত করা।
- SQL Operations: ডেটাবেসে অপারেশন করা (READ, INSERT, UPDATE, DELETE)।
- Cursor Management: সারি পেতে SQL কার্সর ব্যবহার করা।
১. SQL DECLARE স্টেটমেন্ট
COBOL প্রোগ্রামে ডেটাবেসে অ্যাক্সেস করার জন্য প্রথমে SQL স্টেটমেন্ট DECLARE করে SQL কুয়ারী তৈরি করতে হয়। এখানে কোয়েরি বা প্রশ্নের কাঠামো নির্ধারণ করা হয়।
সিনট্যাক্স:
EXEC SQL
DECLARE cursor-name CURSOR FOR query-name
END-EXEC.উদাহরণ:
EXEC SQL
DECLARE customer_cursor CURSOR FOR
SELECT customer_id, customer_name FROM customers
WHERE customer_age > 18
END-EXEC.এখানে customer_cursor নামক কার্সর তৈরি করা হয়েছে, যা customers টেবিল থেকে customer_id এবং customer_name নেবে, যেখানে customer_age ১৮ এর বেশি।
২. OPEN স্টেটমেন্ট
OPEN স্টেটমেন্টটি SQL কার্সরকে চালু করতে ব্যবহৃত হয়, যা SQL কোয়েরি রান করতে সাহায্য করে।
সিনট্যাক্স:
EXEC SQL
OPEN cursor-name
END-EXEC.উদাহরণ:
EXEC SQL
OPEN customer_cursor
END-EXEC.এখানে customer_cursor কার্সরটি ওপেন করা হয়েছে যাতে কোয়েরি চালানো যায়।
৩. FETCH স্টেটমেন্ট
FETCH স্টেটমেন্টটি ডেটাবেস থেকে রেকর্ডগুলো নিয়ে আসতে ব্যবহৃত হয়। এটি কার্সর ব্যবহার করে ডেটা পড়তে সাহায্য করে।
সিনট্যাক্স:
EXEC SQL
FETCH cursor-name INTO :host-variable1, :host-variable2
END-EXEC.উদাহরণ:
EXEC SQL
FETCH customer_cursor INTO :customer_id, :customer_name
END-EXEC.এখানে, customer_cursor থেকে ডেটা ফেচ করে customer_id এবং customer_name নামক COBOL ভেরিয়েবলে ডেটা লোড করা হয়েছে।
৪. INSERT স্টেটমেন্ট
INSERT স্টেটমেন্টটি ব্যবহার করা হয় নতুন রেকর্ড ডেটাবেসে সন্নিবেশ (insert) করতে।
সিনট্যাক্স:
EXEC SQL
INSERT INTO table-name (column1, column2, ...)
VALUES (value1, value2, ...)
END-EXEC.উদাহরণ:
EXEC SQL
INSERT INTO customers (customer_id, customer_name, customer_age)
VALUES (1001, 'John Doe', 30)
END-EXEC.এখানে customers টেবিলে একটি নতুন রেকর্ড customer_id, customer_name, এবং customer_age সহ ইনসার্ট করা হয়েছে।
৫. UPDATE স্টেটমেন্ট
UPDATE স্টেটমেন্টটি ব্যবহার করে ডেটাবেসের বিদ্যমান রেকর্ড আপডেট করা যায়।
সিনট্যাক্স:
EXEC SQL
UPDATE table-name
SET column1 = value1, column2 = value2
WHERE condition
END-EXEC.উদাহরণ:
EXEC SQL
UPDATE customers
SET customer_name = 'Jane Doe', customer_age = 32
WHERE customer_id = 1001
END-EXEC.এখানে, customer_id 1001 এর জন্য customer_name এবং customer_age আপডেট করা হয়েছে।
৬. DELETE স্টেটমেন্ট
DELETE স্টেটমেন্টটি ব্যবহার করে ডেটাবেস থেকে রেকর্ড মুছে ফেলতে হয়।
সিনট্যাক্স:
EXEC SQL
DELETE FROM table-name WHERE condition
END-EXEC.উদাহরণ:
EXEC SQL
DELETE FROM customers WHERE customer_id = 1001
END-EXEC.এখানে customer_id 1001 এর জন্য রেকর্ড মুছে ফেলা হয়েছে।
৭. CLOSE স্টেটমেন্ট
CLOSE স্টেটমেন্টটি SQL কার্সর বন্ধ করতে ব্যবহৃত হয়।
সিনট্যাক্স:
EXEC SQL
CLOSE cursor-name
END-EXEC.উদাহরণ:
EXEC SQL
CLOSE customer_cursor
END-EXEC.এখানে, customer_cursor কার্সরটি বন্ধ করা হয়েছে।
সারসংক্ষেপ
COBOL এ ডেটাবেস অ্যাক্সেস করতে Embedded SQL ব্যবহার করা হয়, যার মাধ্যমে ডেটাবেসের সাথে কোডের মধ্যে যোগাযোগ স্থাপন করা যায়। DECLARE, OPEN, FETCH, INSERT, UPDATE, DELETE, এবং CLOSE স্টেটমেন্টগুলি ব্যবহার করে COBOL প্রোগ্রাম ডেটাবেস থেকে ডেটা পড়তে, আপডেট করতে এবং নতুন রেকর্ড সন্নিবেশ করতে পারে। COBOL ডেটাবেস অ্যাক্সেস অনেক ডেটাবেস সিস্টেমে (যেমন DB2, Oracle, MySQL) কার্যকরীভাবে ব্যবহৃত হয়, যা ব্যবসায়িক সফটওয়্যার এবং ডেটা ম্যানিপুলেশন অ্যাপ্লিকেশনে অত্যন্ত গুরুত্বপূর্ণ।
COBOL এবং RDBMS এর সংযোগ
COBOL (Common Business-Oriented Language) একটি পুরনো এবং শক্তিশালী প্রোগ্রামিং ভাষা, যা প্রধানত ব্যবসায়িক অ্যাপ্লিকেশন এবং ডেটাবেস ব্যবস্থাপনার জন্য ব্যবহৃত হয়। অন্যদিকে, RDBMS (Relational Database Management System) একটি আধুনিক ডেটাবেস ম্যানেজমেন্ট সিস্টেম, যা ডেটাকে টেবিলের আকারে সংগঠিত করে এবং SQL (Structured Query Language) ব্যবহার করে ডেটার সাথে কাজ করে। তবে, COBOL এবং RDBMS একে অপরের সাথে সংযোগ স্থাপন করে কার্যকরভাবে কাজ করতে পারে, বিশেষ করে যখন বড় ব্যবসায়িক অ্যাপ্লিকেশনগুলোতে ডেটাবেস ম্যানেজমেন্ট এবং ডেটা প্রক্রিয়াকরণ করতে হয়।
COBOL এর সাথে RDBMS-এর সংযোগ প্রোগ্রামিং এর ক্ষেত্রে বেশ গুরুত্বপূর্ণ, কারণ এটি ব্যবহারকারীদের ডেটাবেসে সঞ্চিত তথ্যের সাথে কোডের মাধ্যমে যোগাযোগ করতে সহায়ক হয়। এখানে COBOL দিয়ে RDBMS-এর সাথে যোগাযোগ করার পদ্ধতি এবং প্রয়োজনীয়তার বিস্তারিত আলোচনা করা হলো।
COBOL এবং RDBMS এর সংযোগের প্রয়োজনীয়তা
- ডেটাবেস ম্যানেজমেন্ট: COBOL প্রোগ্রামিং ভাষা সাধারণত ব্যাঙ্কিং, আর্থিক সেবা এবং অন্যান্য বড় প্রতিষ্ঠানে ব্যবহৃত হয় যেখানে বিশাল পরিমাণ ডেটা পরিচালনা করতে হয়। RDBMS ডেটাবেস সিস্টেম ব্যবহারের মাধ্যমে ডেটার সংগঠন এবং প্রক্রিয়াকরণ দ্রুত করা সম্ভব।
- SQL ব্যবহারের মাধ্যমে ডেটাবেস অ্যাক্সেস: COBOL প্রোগ্রাম এবং RDBMS একসাথে কাজ করতে পারে যখন COBOL SQL কোয়েরি ব্যবহার করে ডেটাবেসে ডেটা পাঠায় বা গ্রহণ করে। SQL ব্যবহার করে ডেটার ইনসার্ট, আপডেট, ডিলিট এবং সিলেক্ট অপারেশন সহজে করা যায়।
- ডেটাবেসের সাথে সংযুক্ত অ্যাপ্লিকেশন: COBOL ব্যবহার করে তৈরি অ্যাপ্লিকেশনগুলিতে যখন রিলেশনাল ডেটাবেস ব্যবহৃত হয়, তখন ডেটাবেসের মধ্যে ডেটা সন্নিবেশ, মুছে ফেলা বা পরিবর্তন করা সহজ হয়ে ওঠে।
- ডেটার সাথে প্রক্রিয়াকরণ: COBOL অ্যাপ্লিকেশন RDBMS এর সাথে সংযুক্ত হলে, আপনি SQL ব্যবহার করে ডেটার উপর বিভিন্ন গাণিতিক বা প্রক্রিয়াকরণ কাজ করতে পারেন। এর মাধ্যমে বিশাল পরিমাণ ডেটা তাত্ক্ষণিকভাবে প্রক্রিয়া এবং বিশ্লেষণ করা যায়।
COBOL এবং RDBMS এর সংযোগের পদ্ধতি
COBOL এবং RDBMS এর সংযোগের জন্য বিভিন্ন পদ্ধতি ব্যবহার করা যায়, যার মধ্যে SQL-embedded COBOL, COBOL-DBMS Interface এবং ODBC (Open Database Connectivity) অন্যতম।
1. SQL-embedded COBOL:
COBOL-এ SQL কমান্ড সন্নিবেশ করা, যা ডেটাবেসে কার্যকরী কোয়েরি (queries) পাঠাতে সাহায্য করে। এটি RDBMS-এর সাথে যোগাযোগের জন্য COBOL-এর মধ্যে SQL স্টেটমেন্ট লিখতে সক্ষম হয়।
এটি কীভাবে কাজ করে:
- COBOL প্রোগ্রামে SQL স্টেটমেন্ট লিখে RDBMS-এর সাথে সংযোগ স্থাপন করা হয়।
- COBOL প্রোগ্রাম SQL কমান্ডের মাধ্যমে ডেটা সিলেক্ট, ইনসার্ট, আপডেট, বা ডিলিট করতে পারে।
- সাধারণত Embedded SQL ব্যবহৃত হয়।
উদাহরণ:
EXEC SQL
SELECT * FROM EMPLOYEE
WHERE EMPLOYEE_ID = :EMP_ID
END-EXEC.এখানে, EXEC SQL এর মাধ্যমে SQL কমান্ড কোডে সন্নিবেশ করা হয়েছে, যা EMPLOYEE টেবিল থেকে নির্দিষ্ট EMP_ID এর সাথে সম্পর্কিত ডেটা সিলেক্ট করবে।
2. COBOL-DBMS Interface:
COBOL অ্যাপ্লিকেশন ডেটাবেসের সাথে যোগাযোগ করতে COBOL-DBMS Interface বা লাইব্রেরি ব্যবহার করতে পারে, যা COBOL প্রোগ্রামকে ডেটাবেসের সাথে সংযুক্ত করতে সক্ষম করে। সাধারণত, ডেটাবেসের জন্য তৈরি API বা লাইব্রেরি ব্যবহৃত হয় যাতে SQL অপারেশনগুলি COBOL কোডে কার্যকরীভাবে চালানো যায়।
উদাহরণ:
- IBM DB2: DB2 হল একটি জনপ্রিয় RDBMS, যা COBOL এর সাথে সংযুক্ত করার জন্য API প্রদান করে। COBOL প্রোগ্রাম DB2-এর সাথে সংযোগ স্থাপন করতে সক্ষম।
- Oracle: COBOL প্রোগ্রামগুলি Oracle Database এর সাথে সংযুক্ত হতে পারে, যেখানে Oracle Pro COBOL* ব্যবহার করে SQL কমান্ডগুলির সাথে যোগাযোগ করা হয়।
3. ODBC (Open Database Connectivity):
ODBC একটি API, যা কোডে ডেটাবেস অ্যাক্সেসের জন্য ব্যবহৃত হয়। COBOL প্রোগ্রাম থেকে RDBMS (যেমন MySQL, SQL Server, বা Oracle) এর সাথে যোগাযোগ করতে ODBC ব্যবহার করা যেতে পারে।
এটি কীভাবে কাজ করে:
- COBOL প্রোগ্রামে ODBC ড্রাইভার ব্যবহার করে RDBMS-এ সংযোগ স্থাপন করা হয়।
- ODBC ড্রাইভার দ্বারা SQL কোয়েরি পাঠানো হয় এবং ডেটা প্রাপ্তি ঘটে।
উদাহরণ:
EXEC SQL
CONNECT TO 'DATABASE' USER 'USER' USING 'PASSWORD'
END-EXEC.এখানে, CONNECT TO SQL কমান্ডটি RDBMS-এর সাথে সংযোগ স্থাপন করবে।
COBOL এবং RDBMS এর সংযোগের সুবিধা
- ডেটার দ্রুত অ্যাক্সেস: COBOL প্রোগ্রাম এবং RDBMS একসাথে কাজ করলে দ্রুত ডেটা অ্যাক্সেস সম্ভব হয়। SQL স্টেটমেন্টের মাধ্যমে ডেটাবেসে সন্নিবেশ, আপডেট, ডিলিট, এবং সিলেক্ট অপারেশন দ্রুত করা যায়।
- ডেটা ম্যানিপুলেশন: COBOL প্রোগ্রাম RDBMS-এর সাথে যুক্ত হলে ডেটা ম্যানিপুলেশন (যেমন গাণিতিক কাজ, ফিল্টারিং, এবং ডেটা বিশ্লেষণ) সহজ হয়।
- বৃহৎ পরিমাণ ডেটা ম্যানেজমেন্ট: RDBMS ব্যবহার করে বিশাল পরিমাণ ডেটা খুব সহজে এবং কার্যকরভাবে ম্যানেজ করা যায়, যা COBOL প্রোগ্রামের জন্য অত্যন্ত উপকারী।
- বৃহৎ ডেটাবেস সিস্টেমে একীভূত করা: COBOL প্রোগ্রাম RDBMS-এর সঙ্গে সংযুক্ত হলে বড় ডেটাবেস সিস্টেমের মধ্যে ডেটা আদান প্রদান করা সহজ হয়ে ওঠে।
সারসংক্ষেপ
COBOL এবং RDBMS এর সংযোগ ব্যবসায়িক অ্যাপ্লিকেশন এবং ডেটাবেস ম্যানেজমেন্টের জন্য অপরিহার্য। SQL-embedded COBOL, COBOL-DBMS Interface, এবং ODBC এর মাধ্যমে COBOL প্রোগ্রাম রিলেশনাল ডেটাবেসের সাথে যোগাযোগ স্থাপন করতে পারে। এটি দ্রুত ডেটা অ্যাক্সেস, ডেটা ম্যানিপুলেশন এবং বৃহৎ পরিমাণ ডেটা পরিচালনা সহজ করে তোলে, যা আধুনিক ব্যবসায়িক অ্যাপ্লিকেশনগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ।
COBOL-এ Embedded SQL এর মাধ্যমে ডেটাবেস অ্যাক্সেস
COBOL-এ Embedded SQL (SQL statements embedded in COBOL) ব্যবহার করে ডেটাবেসে সংযুক্তি, ডেটা পড়া, আপডেট, যোগ এবং মুছতে সাহায্য করে। Embedded SQL একটি প্রোগ্রামিং পদ্ধতি যা SQL কোডকে COBOL প্রোগ্রামের মধ্যে একত্রিত করে, যার মাধ্যমে COBOL-এ ডেটাবেস ম্যানিপুলেশন করা সম্ভব হয়। এটি ডেটাবেসের সাথে যোগাযোগ করার জন্য SQL ব্যবহারের সুবিধা প্রদান করে, যেখানে আপনি কোডের মধ্যে SQL কোড লিখে ডেটাবেস অপারেশন করতে পারেন।
Embedded SQL এর মৌলিক কাঠামো:
COBOL প্রোগ্রামের মধ্যে SQL স্টেটমেন্টগুলো একটি নির্দিষ্ট ব্লকে লেখা হয়, যা EXEC SQL ব্লকের মধ্যে থাকে। COBOL প্রোগ্রামে SQL কমান্ড চালাতে EXEC SQL এবং END-EXEC এর মধ্যে SQL কোড লেখা হয়।
Syntax:
EXEC SQL
SQL-STATEMENT
END-EXEC.এখানে:
SQL-STATEMENT: এটি SQL এর কোন কমান্ড যেমনSELECT,INSERT,UPDATE,DELETEইত্যাদি হতে পারে।
১. COBOL-এ SQL ডেটাবেস অ্যাক্সেস করার জন্য প্রস্তুতি
- SQL কোডে কনফিগারেশন: COBOL প্রোগ্রামে SQL কোড চালানোর জন্য, ডেটাবেস কানেক্টিভিটি প্রয়োজন। ডেটাবেস কানেকশন সেটআপ করা এবং SQL কোড এক্সিকিউট করা একটি গুরুত্বপূর্ণ অংশ।
- SQLCA (SQL Communication Area): SQL স্টেটমেন্টগুলো কার্যকর করার জন্য, SQLCA ব্যবহার করা হয়। এটি একটি বিশেষ COBOL রেকর্ড যা ডেটাবেস অপারেশনগুলোর অবস্থা এবং ফলাফল ট্র্যাক করে।
২. COBOL-এ Embedded SQL এর মাধ্যমে ডেটাবেস অ্যাক্সেসের উদাহরণ
উদাহরণ ১: SELECT স্টেটমেন্ট দিয়ে ডেটা পড়া
EXEC SQL
SELECT CUSTOMER_NAME
INTO :CUSTOMER-NAME
FROM CUSTOMER
WHERE CUSTOMER_ID = :CUSTOMER-ID
END-EXEC.ব্যাখ্যা:
- এই কোডে
SELECTস্টেটমেন্টটি ব্যবহার করা হয়েছে, যাCUSTOMERটেবিল থেকেCUSTOMER_NAMEকলামটি সিলেক্ট করবে এবং তা COBOL প্রোগ্রামেরCUSTOMER-NAMEভেরিয়েবলে ধারণ করবে। :CUSTOMER-IDহল প্রোগ্রাম থেকে পাওয়া ইনপুট, যা WHERE ক্লজের মধ্যে ডেটা সিলেক্ট করতে ব্যবহার করা হয়েছে।
উদাহরণ ২: INSERT স্টেটমেন্ট দিয়ে ডেটা ইনসার্ট করা
EXEC SQL
INSERT INTO CUSTOMER (CUSTOMER_ID, CUSTOMER_NAME)
VALUES (:CUSTOMER-ID, :CUSTOMER-NAME)
END-EXEC.ব্যাখ্যা:
- এখানে
INSERT INTOSQL স্টেটমেন্ট ব্যবহার করা হয়েছে, যাCUSTOMERটেবিলের মধ্যেCUSTOMER_IDএবংCUSTOMER_NAMEইনসার্ট করবে। COBOL ভেরিয়েবলগুলি (:CUSTOMER-ID,:CUSTOMER-NAME) ডেটাবেস টেবিলে ইনপুট হিসাবে ব্যবহৃত হবে।
উদাহরণ ৩: UPDATE স্টেটমেন্ট দিয়ে ডেটা আপডেট করা
EXEC SQL
UPDATE CUSTOMER
SET CUSTOMER_NAME = :NEW-CUSTOMER-NAME
WHERE CUSTOMER_ID = :CUSTOMER-ID
END-EXEC.ব্যাখ্যা:
UPDATEস্টেটমেন্টটি ব্যবহার করে, এই কোডেCUSTOMERটেবিলের একটি রেকর্ড আপডেট করা হচ্ছে। যেখানCUSTOMER_IDএর মান:CUSTOMER-IDএর সমান হবে, সেখানেCUSTOMER_NAMEআপডেট হবে।
উদাহরণ ৪: DELETE স্টেটমেন্ট দিয়ে ডেটা মুছে ফেলা
EXEC SQL
DELETE FROM CUSTOMER
WHERE CUSTOMER_ID = :CUSTOMER-ID
END-EXEC.ব্যাখ্যা:
DELETEস্টেটমেন্টটি ব্যবহার করেCUSTOMERটেবিল থেকে একটি নির্দিষ্টCUSTOMER_IDএর রেকর্ড মুছে ফেলা হচ্ছে।
৩. SQLCA (SQL Communication Area) ব্যবহার
COBOL-এ SQL স্টেটমেন্ট কার্যকর করার পর, SQLCA (SQL Communication Area) ডেটাবেস অপারেশনের ফলাফল ধারণ করে। এটি COBOL রেকর্ড যা SQL অপারেশনের অবস্থা এবং ত্রুটি কোড সরবরাহ করে।
SQLCA রেকর্ডের একটি উদাহরণ:
01 SQLCA.
05 SQLCODE PIC S9(9) COMP.
05 SQLERRM PIC X(70).- SQLCODE: এটি SQL অপারেশনের ফলাফল কোড ধারণ করে। যদি এটি
0হয়, তবে অপারেশন সফলভাবে সম্পন্ন হয়েছে। অন্যথায়, এটি ত্রুটি কোড ধারণ করে। - SQLERRM: এটি ত্রুটির একটি বার্তা ধারণ করে (যদি কোনও ত্রুটি ঘটে)।
উদাহরণ: SQLCA ব্যবহার করে ফলাফল চেক করা
EXEC SQL
SELECT CUSTOMER_NAME
INTO :CUSTOMER-NAME
FROM CUSTOMER
WHERE CUSTOMER_ID = :CUSTOMER-ID
END-EXEC.
IF SQLCODE = 0
DISPLAY 'Record found: ' CUSTOMER-NAME
ELSE
DISPLAY 'Error: ' SQLERRM
END-IF.ব্যাখ্যা:
SQLCODEচেক করা হচ্ছে যদি এটি0হয়, তাহলে এটি সফল অপারেশন, অন্যথায় ত্রুটির বার্তাSQLERRMপ্রদর্শিত হবে।
৪. COBOL-এ SQL স্টেটমেন্টের কিছু গুরুত্বপূর্ণ পয়েন্ট
- SQL প্রসেসর:
- COBOL-এ SQL স্টেটমেন্ট কার্যকর করার জন্য একটি SQL প্রসেসর প্রয়োজন, যা ডেটাবেস সার্ভার বা সিস্টেমের সাথে সংযুক্ত থাকে।
- SQL স্টেটমেন্ট এর সাথে ডেটাবেস কানেক্টিভিটি:
- Embedded SQL কাজ করার জন্য ডেটাবেসের সাথে সঠিক কানেক্টিভিটি এবং কনফিগারেশন প্রয়োজন।
- COBOL প্রোগ্রাম এবং SQL কোডের বিভাজন:
- SQL স্টেটমেন্টগুলি সাধারণত
EXEC SQLএবংEND-EXECব্লকের মধ্যে লিখতে হয়, যাতে COBOL এবং SQL কোডের মধ্যে বিভাজন সঠিক থাকে।
- SQL স্টেটমেন্টগুলি সাধারণত
- SQLCA এবং ত্রুটি পরিচালনা:
- SQL অপারেশনগুলো সাধারণত SQLCA রেকর্ডের মাধ্যমে ফলাফল জানানো হয় এবং ত্রুটি হ্যান্ডলিং সঠিকভাবে করা হয়।
সারসংক্ষেপ
- Embedded SQL COBOL-এ ডেটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়।
EXEC SQLএবংEND-EXECস্টেটমেন্টের মধ্যে SQL কোড লিখে ডেটাবেসের উপর বিভিন্ন অপারেশন করা যায়।- SQLCA রেকর্ড ডেটাবেস অপারেশনের ফলাফল এবং ত্রুটি সনাক্ত করতে সহায়ক।
- SELECT, INSERT, UPDATE, এবং DELETE স্টেটমেন্টগুলি Embedded SQL-এ ডেটাবেস ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
Embedded SQL-এর মাধ্যমে COBOL প্রোগ্রামে ডেটাবেস অ্যাক্সেস করা প্রোগ্রামারদের জন্য দ্রুত এবং দক্ষ ডেটাবেস পরিচালনার সুবিধা প্রদান করে।
প্রাথমিক SQL স্টেটমেন্ট এবং তাদের প্রয়োগ
SQL (Structured Query Language) হলো একটি প্রোগ্রামিং ভাষা যা ডেটাবেসের মধ্যে ডেটা পরিচালনা, প্রক্রিয়া এবং নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়। SQL-এর প্রাথমিক স্টেটমেন্টগুলো ডেটা পরিচালনা করার জন্য ব্যবহৃত হয়, যেমন ডেটা সন্নিবেশ করা, আপডেট করা, মুছে ফেলা এবং তথ্য অনুসন্ধান করা। এখানে আমরা কিছু গুরুত্বপূর্ণ SQL স্টেটমেন্ট এবং তাদের প্রয়োগ আলোচনা করব।
১. SELECT স্টেটমেন্ট
SELECT স্টেটমেন্ট ব্যবহার করা হয় ডেটাবেস থেকে ডেটা নির্বাচন করার জন্য। এটি সবচেয়ে বেশি ব্যবহৃত SQL স্টেটমেন্ট এবং ডেটা অনুসন্ধান করতে সহায়ক।
১.১ SELECT স্টেটমেন্টের গঠন
SELECT column1, column2, ...
FROM table_name
WHERE condition;column1, column2, ...: যে কলামগুলো থেকে ডেটা চান।table_name: যেই টেবিল থেকে ডেটা নিতে হবে।condition: শর্ত যেটার ভিত্তিতে ডেটা নির্বাচন করা হবে।
১.২ SELECT উদাহরণ
SELECT first_name, last_name, age
FROM employees
WHERE age > 30;এখানে, employees টেবিল থেকে first_name, last_name, এবং age কলামগুলোর ডেটা নির্বাচন করা হচ্ছে যেখানে age ৩০ এর বেশি।
২. INSERT INTO স্টেটমেন্ট
INSERT INTO স্টেটমেন্ট ব্যবহার করা হয় ডেটাবেসে নতুন রেকর্ড যোগ করার জন্য।
২.১ INSERT INTO স্টেটমেন্টের গঠন
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);table_name: টেবিলের নাম যেখানে ডেটা ইনসার্ট করতে চান।column1, column2, ...: যেসব কলামে ডেটা ইনসার্ট করা হবে।value1, value2, ...: সেগুলোর জন্য ইনসার্ট করা মান।
২.২ INSERT INTO উদাহরণ
INSERT INTO employees (first_name, last_name, age)
VALUES ('John', 'Doe', 28);এখানে, employees টেবিলে নতুন একটি রেকর্ড ইনসার্ট করা হচ্ছে যেখানে first_name 'John', last_name 'Doe', এবং age 28 হবে।
৩. UPDATE স্টেটমেন্ট
UPDATE স্টেটমেন্ট ব্যবহৃত হয় একটি টেবিলের বিদ্যমান রেকর্ড আপডেট বা পরিবর্তন করার জন্য।
৩.১ UPDATE স্টেটমেন্টের গঠন
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;table_name: টেবিলের নাম যেখানে ডেটা আপডেট করতে চান।column1 = value1: যে কলামের মান আপডেট করতে চান।condition: কোন রেকর্ড আপডেট করা হবে তার শর্ত।
৩.২ UPDATE উদাহরণ
UPDATE employees
SET age = 29
WHERE first_name = 'John' AND last_name = 'Doe';এখানে, employees টেবিলে first_name 'John' এবং last_name 'Doe' এর রেকর্ডের age আপডেট করা হচ্ছে ২৯ এ।
৪. DELETE স্টেটমেন্ট
DELETE স্টেটমেন্ট ব্যবহার করা হয় টেবিল থেকে ডেটা মুছে ফেলার জন্য।
৪.১ DELETE স্টেটমেন্টের গঠন
DELETE FROM table_name
WHERE condition;table_name: টেবিলের নাম যেখানে ডেটা মুছে ফেলতে চান।condition: শর্ত যার ভিত্তিতে ডেটা মুছে ফেলা হবে।
৪.২ DELETE উদাহরণ
DELETE FROM employees
WHERE age < 20;এখানে, employees টেবিল থেকে এমন সব রেকর্ড মুছে ফেলা হবে যাদের age ২০ এর কম।
৫. CREATE TABLE স্টেটমেন্ট
CREATE TABLE স্টেটমেন্ট ব্যবহার করা হয় নতুন টেবিল তৈরি করার জন্য।
৫.১ CREATE TABLE স্টেটমেন্টের গঠন
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);table_name: নতুন টেবিলের নাম।column1, column2, ...: টেবিলের কলাম নাম এবং তাদের ডেটা টাইপ।
৫.২ CREATE TABLE উদাহরণ
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age INT
);এখানে, employees নামে একটি নতুন টেবিল তৈরি করা হচ্ছে যা employee_id, first_name, last_name, এবং age নামক কলাম নিয়ে তৈরি হবে।
৬. ALTER TABLE স্টেটমেন্ট
ALTER TABLE স্টেটমেন্ট ব্যবহার করা হয় একটি টেবিলের গঠন পরিবর্তন করতে, যেমন কলাম যোগ, পরিবর্তন বা মুছে ফেলা।
৬.১ ALTER TABLE স্টেটমেন্টের গঠন
ALTER TABLE table_name
ADD column_name datatype;table_name: যে টেবিলের গঠন পরিবর্তন করতে চান।column_name: নতুন কলামের নাম এবং তার ডেটা টাইপ।
৬.২ ALTER TABLE উদাহরণ
ALTER TABLE employees
ADD email VARCHAR(100);এখানে, employees টেবিলে নতুন email নামক একটি কলাম যোগ করা হচ্ছে, যার ডেটা টাইপ **VARCHAR(100)**।
৭. DROP TABLE স্টেটমেন্ট
DROP TABLE স্টেটমেন্ট ব্যবহার করা হয় একটি টেবিল মুছে ফেলার জন্য।
৭.১ DROP TABLE স্টেটমেন্টের গঠন
DROP TABLE table_name;table_name: যেই টেবিলটি মুছে ফেলতে চান।
৭.২ DROP TABLE উদাহরণ
DROP TABLE employees;এখানে, employees টেবিলটি পুরোপুরি মুছে ফেলা হবে।
সারসংক্ষেপ
SQL-এ READ, WRITE, UPDATE, DELETE, CREATE, ALTER, এবং DROP সহ বিভিন্ন প্রাথমিক স্টেটমেন্টগুলি ডেটাবেসের ডেটা ম্যানিপুলেশন এবং ব্যবস্থাপনা করতে ব্যবহৃত হয়। এগুলি ব্যবহার করে আপনি ডেটাবেসে ডেটা নির্বাচন, সন্নিবেশ, আপডেট, মুছতে এবং টেবিলের গঠন পরিবর্তন করতে পারবেন। SQL স্টেটমেন্টগুলো ডেটাবেসের কার্যক্ষমতা উন্নত করতে এবং ডেটার সঠিকতা বজায় রাখতে সহায়ক।
COBOL ডেটাবেস প্রোগ্রামিং এর উদাহরণ
COBOL-এ ডেটাবেস প্রোগ্রামিং সাধারণত Indexed Files, Relative Files, অথবা Sequential Files এর মাধ্যমে করা হয়। COBOL নিজেই কোনও রিলেশনাল ডেটাবেস পরিচালনা করতে সক্ষম নয়, তবে এটি ফাইল সিস্টেমের মাধ্যমে ডেটাবেস ম্যানেজমেন্ট কাজ করে। এখানে, আমরা একটি Indexed File ব্যবহার করে একটি সাধারণ ডেটাবেস প্রোগ্রাম তৈরি করব, যা গ্রাহকের তথ্য সংরক্ষণ করবে এবং সেই তথ্য অনুসন্ধান করতে সহায়ক হবে।
উদাহরণ: COBOL ডেটাবেস প্রোগ্রামিং
এখানে একটি COBOL প্রোগ্রাম দেখানো হচ্ছে যা Indexed File ব্যবহার করে একটি গ্রাহক ডেটাবেস তৈরি করবে। গ্রাহকের তথ্য যেমন গ্রাহক আইডি, নাম, এবং বয়স সংরক্ষণ করা হবে এবং গ্রাহক আইডি দিয়ে ডেটা অনুসন্ধান করা যাবে।
1. ফাইল ডেফিনিশন (Indexed File):
IDENTIFICATION DIVISION.
PROGRAM-ID. CustomerDatabaseExample.
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 CUSTOMER-ID PIC 9(4).
05 CUSTOMER-NAME PIC X(30).
05 CUSTOMER-AGE PIC 99.
WORKING-STORAGE SECTION.
01 END-FILE PIC X VALUE 'N'.
01 CUSTOMER-ID-KEY PIC 9(4).
PROCEDURE DIVISION.
OPEN I/O CUSTOMER-FILE
PERFORM MENU
CLOSE CUSTOMER-FILE
STOP RUN.
MENU.
DISPLAY "Choose an option:"
DISPLAY "1. Add new customer"
DISPLAY "2. Search customer by ID"
DISPLAY "3. Exit"
ACCEPT CUSTOMER-ID-KEY
IF CUSTOMER-ID-KEY = 1
PERFORM ADD-CUSTOMER
ELSE IF CUSTOMER-ID-KEY = 2
PERFORM SEARCH-CUSTOMER
ELSE
MOVE 'Y' TO END-FILE
END-IF.
ADD-CUSTOMER.
DISPLAY "Enter Customer ID: "
ACCEPT CUSTOMER-ID
DISPLAY "Enter Customer Name: "
ACCEPT CUSTOMER-NAME
DISPLAY "Enter Customer Age: "
ACCEPT CUSTOMER-AGE
WRITE CUSTOMER-RECORD
DISPLAY "Customer added successfully."
SEARCH-CUSTOMER.
DISPLAY "Enter Customer ID to search: "
ACCEPT CUSTOMER-ID
READ CUSTOMER-FILE
KEY IS CUSTOMER-ID
AT END
DISPLAY "Customer not found."
NOT AT END
DISPLAY "Customer Name: " CUSTOMER-NAME
DISPLAY "Customer Age: " CUSTOMER-AGE
END-READ.ব্যাখ্যা:
- FILE SECTION:
- CUSTOMER-FILE: এটি একটি Indexed File হিসেবে ডিফাইন করা হয়েছে।
- CUSTOMER-RECORD: এটি একটি রেকর্ড, যা CUSTOMER-ID, CUSTOMER-NAME, এবং CUSTOMER-AGE ধারণ করে।
- WORKING-STORAGE SECTION:
- END-FILE: ব্যবহারকারী যখন প্রোগ্রাম বন্ধ করতে চায়, তখন এটি চেক করা হবে।
- CUSTOMER-ID-KEY: এটি ব্যবহারকারী ইনপুটের জন্য একটি ভেরিয়েবল যা বিভিন্ন অপশন চিহ্নিত করবে (যেমন নতুন গ্রাহক যোগ করা বা গ্রাহক অনুসন্ধান করা)।
- PROCEDURE DIVISION:
- OPEN I/O CUSTOMER-FILE: ফাইলটি ইনপুট/আউটপুট মোডে খোলা হয়েছে, যাতে ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা যায়।
- ADD-CUSTOMER: নতুন গ্রাহক যোগ করার জন্য একটি প্রক্রিয়া তৈরি করা হয়েছে। গ্রাহক আইডি, নাম, এবং বয়স ইনপুট নেয়ার পর ফাইলে লেখা হবে।
- SEARCH-CUSTOMER: গ্রাহক অনুসন্ধানের জন্য একটি প্রক্রিয়া তৈরি করা হয়েছে। ইনপুট গ্রাহক আইডি দিয়ে ফাইল থেকে সেই গ্রাহকের তথ্য অনুসন্ধান করা হবে।
- Indexed File:
- CUSTOMER-ID: গ্রাহক আইডি এখানে মূল কী (key) হিসেবে ব্যবহৃত হচ্ছে, যার মাধ্যমে ডেটা অনুসন্ধান করা যাবে।
২. Indexed File তৈরি এবং পড়া
COBOL-এর Indexed File ব্যবহারের মাধ্যমে দ্রুত অনুসন্ধান এবং ডেটা আপডেট করা সম্ভব। এখানে, READ এবং WRITE স্টেটমেন্ট ব্যবহার করে ডেটা পড়া এবং লেখা হচ্ছে। ফাইলের মধ্যে গ্রাহক আইডি (Customer ID) একটি কী হিসেবে কাজ করে, যার মাধ্যমে নির্দিষ্ট রেকর্ড দ্রুত পাওয়া যায়।
৩. COBOL-এ Indexed File ব্যবহারের সুবিধা:
- দ্রুত অনুসন্ধান: Indexed File-এর মাধ্যমে কী ব্যবহার করে দ্রুত ডেটা অনুসন্ধান করা যায়, যা সাধারণ ফাইল ব্যবস্থাপনার চেয়ে অনেক দ্রুত।
- ডেটা অ্যাক্সেস: Indexed File-এ নির্দিষ্ট কী অনুসারে ডেটা এক্সেস করা সহজ।
- রেকর্ড আপডেট: Indexed File-এর মাধ্যমে ডেটার আপডেট (REWRITE) এবং ডিলিট (DELETE) করা সম্ভব।
সারসংক্ষেপ
COBOL-এ Indexed File ব্যবহার করে ডেটাবেস অ্যাপ্লিকেশন তৈরি একটি শক্তিশালী কৌশল, যা ডেটা স্টোরেজ, অনুসন্ধান এবং ম্যানিপুলেশনকে দ্রুত এবং কার্যকরী করে তোলে। Indexed File-এর মাধ্যমে KEY ব্যবহার করে দ্রুত ডেটা অ্যাক্সেস এবং আপডেট করা সম্ভব, যা বড় পরিমাণ ডেটার ব্যবস্থাপনায় বিশেষভাবে উপকারী। COBOL-এর Indexed File-এ ডেটাবেস অ্যাপ্লিকেশন তৈরি করা সহজ এবং কার্যকরী, বিশেষত ব্যবসায়িক সিস্টেমে ব্যবহারের জন্য।
Read more