DL/I (Data Language/I) হলো IMS DB-এ ডেটাবেস অ্যাক্সেস এবং ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত একটি ভাষা। এটি ডেটাবেস থেকে ডেটা রিড, ইনসার্ট, আপডেট, এবং ডিলিট করার জন্য বিভিন্ন কমান্ড সরবরাহ করে। DL/I Query মূলত ডেটার উপর অপারেশন সম্পাদনের জন্য ব্যবহৃত হয় এবং হায়ারার্কিকাল ডেটা মডেল অনুসারে কার্যকর।
DL/I Query এর কাজ
DL/I কমান্ডের মাধ্যমে IMS DB-তে ডেটা ম্যানিপুলেট করা হয়। এটি মূলত নিচের কাজগুলো সম্পন্ন করে:
- ডেটা রিড (Read): ডেটাবেস থেকে ডেটা রিড করা।
- ডেটা ইনসার্ট (Insert): নতুন ডেটা যোগ করা।
- ডেটা আপডেট (Update): বিদ্যমান ডেটা পরিবর্তন করা।
- ডেটা ডিলিট (Delete): ডেটাবেস থেকে ডেটা মুছে ফেলা।
DL/I এর প্রধান কমান্ড
১. GU (Get Unique)
- একটি নির্দিষ্ট রেকর্ড রিড করতে ব্যবহৃত হয়।
- ডেটাবেসে ইউনিক কী ব্যবহার করে ডেটা অনুসন্ধান করা হয়।
উদাহরণ:
EXEC DLI
GU CUSTOMER_PSB, CUST_ID, CUST_REC
END-EXEC.
CUSTOMER_PSB: প্রোগ্রামের জন্য সংজ্ঞায়িত PSB।CUST_ID: রেকর্ডের ইউনিক আইডি।CUST_REC: রেকর্ড সংরক্ষণের জন্য ভেরিয়েবল।
২. GN (Get Next)
- ডেটাবেসে পরবর্তী রেকর্ড রিড করতে ব্যবহৃত হয়।
- এটি Sequential Access এর জন্য কার্যকর।
উদাহরণ:
EXEC DLI
GN CUSTOMER_PSB, NEXT_CUST_ID, NEXT_CUST_REC
END-EXEC.
NEXT_CUST_ID: পরবর্তী গ্রাহকের আইডি।NEXT_CUST_REC: পরবর্তী রেকর্ড সংরক্ষণের জন্য ভেরিয়েবল।
৩. ISRT (Insert)
- নতুন ডেটা ইনসার্ট করার জন্য ব্যবহৃত হয়।
- এটি নতুন সেগমেন্ট তৈরি করে ডেটাবেসে যোগ করে।
উদাহরণ:
EXEC DLI
ISRT CUSTOMER_PSB, NEW_CUST_ID, NEW_CUST_REC
END-EXEC.
NEW_CUST_ID: নতুন গ্রাহকের ইউনিক আইডি।NEW_CUST_REC: নতুন রেকর্ডের তথ্য।
৪. REPL (Replace)
- বিদ্যমান ডেটা আপডেট করার জন্য ব্যবহৃত হয়।
- ডেটার মান পরিবর্তন করে নতুন মান প্রদান করে।
উদাহরণ:
EXEC DLI
REPL CUSTOMER_PSB, CUST_ID, UPDATED_CUST_REC
END-EXEC.
CUST_ID: আপডেট করা রেকর্ডের আইডি।UPDATED_CUST_REC: নতুন মান সহ আপডেট করা রেকর্ড।
৫. DLET (Delete)
- একটি রেকর্ড ডিলিট করার জন্য ব্যবহৃত হয়।
- ডেটাবেস থেকে রেকর্ড সরিয়ে দেয়।
উদাহরণ:
EXEC DLI
DLET CUSTOMER_PSB, CUST_ID
END-EXEC.
CUST_ID: ডিলিট করা রেকর্ডের ইউনিক আইডি।
DL/I Query এর কাজের ধারা
১. ডেটা রিড প্রক্রিয়া
- প্রথমে
GUকমান্ড ব্যবহার করে একটি নির্দিষ্ট রেকর্ড রিড করা হয়। - যদি নির্দিষ্ট রেকর্ড না থাকে, তবে
GNকমান্ড ব্যবহার করে পরবর্তী রেকর্ড রিড করা হয়।
২. ডেটা ইনসার্ট প্রক্রিয়া
ISRTকমান্ড ব্যবহার করে নতুন সেগমেন্ট ডেটাবেসে যোগ করা হয়।- প্যারেন্ট নোডের অধীনে চাইল্ড সেগমেন্ট যুক্ত করা হয়।
৩. ডেটা আপডেট প্রক্রিয়া
GUবাGNদিয়ে রেকর্ড রিড করার পর,REPLব্যবহার করে মান আপডেট করা হয়।
৪. ডেটা ডিলিট প্রক্রিয়া
GUবাGNদিয়ে রেকর্ড রিড করার পর,DLETকমান্ড ব্যবহার করে সেটি ডিলিট করা হয়।
উদাহরণ: ডেটা ম্যানিপুলেশন
ডেটাবেস স্ট্রাকচার:
Customer (Parent)
|
+-- Order (Child)
|
+-- Product (Child)
ডেটা রিড:
EXEC DLI
GU CUSTOMER_PSB, CUSTOMER_ID, CUSTOMER_REC
END-EXEC.
- কাজ: নির্দিষ্ট গ্রাহকের তথ্য রিড করা।
ডেটা ইনসার্ট:
EXEC DLI
ISRT CUSTOMER_PSB, NEW_ORDER_ID, NEW_ORDER_REC
END-EXEC.
- কাজ: নতুন অর্ডার তথ্য ইনসার্ট করা।
ডেটা আপডেট:
EXEC DLI
GU CUSTOMER_PSB, ORDER_ID, ORDER_REC
REPL CUSTOMER_PSB, ORDER_ID, UPDATED_ORDER_REC
END-EXEC.
- কাজ: একটি অর্ডারের তথ্য আপডেট করা।
ডেটা ডিলিট:
EXEC DLI
GU CUSTOMER_PSB, PRODUCT_ID, PRODUCT_REC
DLET CUSTOMER_PSB, PRODUCT_ID
END-EXEC.
- কাজ: নির্দিষ্ট প্রোডাক্ট তথ্য ডিলিট করা।
DL/I এর সুবিধা
- দ্রুত ডেটা অ্যাক্সেস:
Sequential এবং Unique Access উভয় পদ্ধতিতেই দ্রুত ডেটা রিড এবং ম্যানিপুলেশন করা যায়। - সহজ ডেটা ম্যানিপুলেশন:
DL/I এর মাধ্যমে ডেটা ইনসার্ট, আপডেট এবং ডিলিট করা সহজ। - বিশ্বস্ততা:
হায়ারার্কিকাল মডেলের কারণে ডেটার সঠিকতা এবং নিরাপত্তা বজায় থাকে।
DL/I এর সীমাবদ্ধতা
- নমনীয়তার অভাব:
হায়ারার্কিকাল মডেলের কারণে জটিল ডেটা সম্পর্ক পরিচালনা কঠিন। - Many-to-Many সম্পর্ক:
হায়ারার্কিকাল মডেল Many-to-Many সম্পর্ক সহজে পরিচালনা করতে পারে না। - কাস্টমাইজেশন কঠিন:
DL/I কোড কাস্টমাইজেশন তুলনামূলক জটিল।
সারাংশ
DL/I Query IMS DB-এর ডেটা রিড, ইনসার্ট, আপডেট এবং ডিলিট করার জন্য একটি শক্তিশালী মাধ্যম। এটি GU, GN, ISRT, REPL, এবং DLET কমান্ডের মাধ্যমে ডেটাবেস ম্যানিপুলেশনের কার্যকর সমাধান প্রদান করে। এটি বিভিন্ন ক্ষেত্রে, যেমন ব্যাংকিং, টেলিকম, এবং উৎপাদন ব্যবস্থাপনায়, দ্রুত এবং নির্ভুল ডেটা অ্যাক্সেস নিশ্চিত করে। DL/I ব্যবহার করে ডেটা ম্যানিপুলেশন সহজ, কার্যকর, এবং নির্ভরযোগ্য হলেও কিছু সীমাবদ্ধতা রয়েছে, বিশেষ করে জটিল ডেটা সম্পর্ক পরিচালনার ক্ষেত্রে।
Read more