DB2 ডেটাবেসে Data Validation এবং Integrity Enforcement ডেটার সঠিকতা, পূর্ণতা, এবং নির্ভরযোগ্যতা নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। DB2 অনেক ধরনের কনস্ট্রেইন্ট এবং ডেটা ভ্যালিডেশন ফিচার সরবরাহ করে, যা ডেটাবেসের মধ্যে সঠিক তথ্য সংরক্ষণে সহায়ক।
Data Validation
Data Validation হল একটি প্রক্রিয়া যা নিশ্চিত করে যে, ডেটা সঠিক, পূর্ণ, এবং নির্ভরযোগ্য। DB2 এ ডেটা ভ্যালিডেশন কনস্ট্রেইন্ট এবং বিভিন্ন বিধি ব্যবহার করে করা হয়।
DB2 এ Data Validation এর জন্য কিছু কনস্ট্রেইন্ট:
NOT NULL কনস্ট্রেইন্ট:
- এটি নিশ্চিত করে যে একটি নির্দিষ্ট কলামে কখনও
NULLমান থাকবে না। যদি আপনি চান যে একটি কলামে ডেটা থাকা বাধ্যতামূলক, তবেNOT NULLকনস্ট্রেইন্ট ব্যবহার করবেন।
CREATE TABLE employee ( id INT NOT NULL, name VARCHAR(100) NOT NULL, position VARCHAR(50) );- এটি নিশ্চিত করে যে একটি নির্দিষ্ট কলামে কখনও
CHECK কনস্ট্রেইন্ট:
CHECKকনস্ট্রেইন্টের মাধ্যমে আপনি কলামে যে ডেটা থাকবে তা একটি শর্ত পূরণ করতে হবে এমন একটি বিধি আরোপ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চান যেsalaryকলামে 0 বা তার কম মান থাকতে না পারে, তবে আপনি এই কনস্ট্রেইন্ট ব্যবহার করতে পারেন:
CREATE TABLE employee ( id INT, name VARCHAR(100), salary DECIMAL(10,2), CHECK (salary > 0) );UNIQUE কনস্ট্রেইন্ট:
- এটি নিশ্চিত করে যে একটি নির্দিষ্ট কলামে প্রতিটি মান অনন্য (unique) হবে। যদি আপনি চান যে
emailকলামে প্রতিটি মান অনন্য হতে হবে, তবেUNIQUEকনস্ট্রেইন্ট ব্যবহার করবেন:
CREATE TABLE employee ( id INT, name VARCHAR(100), email VARCHAR(100) UNIQUE );- এটি নিশ্চিত করে যে একটি নির্দিষ্ট কলামে প্রতিটি মান অনন্য (unique) হবে। যদি আপনি চান যে
PRIMARY KEY কনস্ট্রেইন্ট:
- একটি PRIMARY KEY কনস্ট্রেইন্ট ডেটাবেসের টেবিলে প্রতিটি রেকর্ডের জন্য একটি অনন্য শনাক্তকারী প্রদান করে। এটি একটি কলামে থাকা ডেটাকে সুনির্দিষ্টভাবে চিহ্নিত করতে সহায়ক:
CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(100) );FOREIGN KEY কনস্ট্রেইন্ট:
FOREIGN KEYকনস্ট্রেইন্ট দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে। এটি নিশ্চিত করে যে একটি টেবিলের কোনো কলামে ডেটা অন্য একটি টেবিলের কনট্রোলড কলাম (যেমনPRIMARY KEY) এর সাথে সঙ্গতিপূর্ণ হবে। এটি ডেটার সম্পর্ক বজায় রাখতে সহায়ক।
CREATE TABLE department ( dept_id INT PRIMARY KEY, dept_name VARCHAR(50) ); CREATE TABLE employee ( emp_id INT PRIMARY KEY, dept_id INT, FOREIGN KEY (dept_id) REFERENCES department(dept_id) );
Integrity Enforcement
Data Integrity হল ডেটার সঠিকতা, এক্সাক্টনেস, এবং পূর্ণতা নিশ্চিত করা। DB2 ডেটাবেসে Integrity Enforcement ডেটার সঠিকতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে ব্যবহৃত কনস্ট্রেইন্টস এবং অন্যান্য বিধি বাস্তবায়ন করে। Integrity Enforcement সাধারণত এই তিনটি প্রক্রিয়া অনুসরণ করে:
1. Entity Integrity
- Entity Integrity নিশ্চিত করে যে একটি টেবিলের প্রতিটি রেকর্ড (row) একটি ইউনিক (unique) শনাক্তকারী থাকবে, অর্থাৎ একটি
PRIMARY KEYথাকতে হবে। এটি ডেটাবেসের প্রতিটি রেকর্ডের অনন্যতা বজায় রাখে এবং ডুপ্লিকেট রেকর্ড তৈরি হতে বাধা দেয়।
2. Referential Integrity
- Referential Integrity নিশ্চিত করে যে একটি টেবিলের foreign key অন্য টেবিলের primary key এর সাথে সঠিকভাবে সম্পর্কযুক্ত। যদি একটি রেকর্ডকে মুছে ফেলা হয় বা আপডেট করা হয়, তবে cascade delete বা cascade update অপশন ব্যবহার করে তার সম্পর্কিত রেকর্ডগুলোকেও আপডেট বা মুছে ফেলা যেতে পারে।
- FOREIGN KEY কনস্ট্রেইন্ট দিয়ে রেফারেন্সিয়াল ইন্টিগ্রিটি প্রতিষ্ঠিত হয়:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
3. Domain Integrity
- Domain Integrity নিশ্চিত করে যে একটি কলামে ডেটার টাইপ সঠিক এবং একরূপ হবে, অর্থাৎ সেই কলামে যেসব ডেটা রাখা হবে, তা সঠিকভাবে নির্ধারিত ডেটা টাইপে থাকবে এবং সেই ডেটার মান নির্দিষ্ট সীমার মধ্যে থাকবে।
- যেমন, আপনি একটি
salaryকলামে শুধুমাত্র ধনাত্মক সংখ্যাগুলি রাখতে চাইলেCHECKকনস্ট্রেইন্ট ব্যবহার করা যেতে পারে:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL(10,2) CHECK (salary > 0)
);
DB2 এ Integrity Enforcement এর জন্য কিছু অতিরিক্ত টুল
Triggers:
- DB2 তে
Triggersব্যবহার করে আপনি বিশেষ কিছু ডেটা পরিবর্তনের উপর শর্ত আরোপ করতে পারেন। উদাহরণস্বরূপ, যখন একটি ডেটা ইনসার্ট, আপডেট বা ডিলিট হয়, তখন এটি অটোমেটিকভাবে একটি নির্দিষ্ট প্রক্রিয়া শুরু করতে পারে যা ডেটার ইন্টিগ্রিটি নিশ্চিত করবে।
CREATE TRIGGER salary_check BEFORE INSERT ON employee REFERENCING NEW AS new_row FOR EACH ROW BEGIN IF new_row.salary < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Salary must be greater than zero'; END IF; END;- DB2 তে
- Check Constraints:
- Check Constraints ব্যবহার করে আপনি আরও গভীরভাবে ডেটা ইন্টিগ্রিটি নিশ্চিত করতে পারেন। এটি একটি শর্ত প্রয়োগ করে, যা কোনও টেবিলের ডেটা একসাথে সঠিক হতে হবে তা নিশ্চিত করে।
সারসংক্ষেপ
DB2 ডেটাবেসে Data Validation এবং Integrity Enforcement হল ডেটার সঠিকতা, পূর্ণতা এবং নির্ভরযোগ্যতা নিশ্চিত করার জন্য ব্যবহৃত কৌশল এবং কনস্ট্রেইন্ট। NOT NULL, CHECK, UNIQUE, PRIMARY KEY, এবং FOREIGN KEY কনস্ট্রেইন্ট ব্যবহার করে আপনি ডেটা সঠিক এবং সুরক্ষিত রাখতে পারেন। Entity Integrity, Referential Integrity, এবং Domain Integrity নিশ্চিত করার মাধ্যমে DB2 ডেটাবেসে ডেটার সঠিকতা এবং সম্পর্ক বজায় রাখা হয়।