Class - XII: SEMESTER – IV: Unit – 1: Database Management System: Section 4: Integrity Constraints
Integrity Constraints
Domain Constraints, Referential Integrity and View | Class 12 Bangla Medium Students
১. Introduction বা পরিচিতি
Database Management System বা DBMS-এ data শুধু store করলেই যথেষ্ট নয়; data যেন সঠিক, বৈধ, consistent এবং reliable থাকে, সেটিও নিশ্চিত করতে হয়। Database-এ ভুল data ঢুকে গেলে ভুল report, ভুল decision এবং data inconsistency তৈরি হতে পারে। এই সমস্যা এড়ানোর জন্য DBMS-এ কিছু rules বা conditions ব্যবহার করা হয়, যেগুলোকে Integrity Constraints বলা হয়।
Integrity Constraints database-এর data quality বজায় রাখে। এগুলো data insert, update বা delete করার সময় check করে data নির্দিষ্ট rules follow করছে কি না। যদি কোনো data rule violate করে, তাহলে DBMS সেই operation reject করতে পারে।
Integrity Constraints হলো DBMS-এর কিছু rules বা restrictions, যা database-এর data-কে accurate, valid, consistent এবং reliable রাখতে সাহায্য করে।
Student table-এ Marks column-এর value 0 থেকে 100-এর মধ্যে হওয়া উচিত। যদি কেউ 150 marks enter করে, তাহলে সেটি invalid data। এই ধরনের ভুল data prevent করার জন্য constraint ব্যবহার করা হয়।
২. Integrity Constraints কেন দরকার?
একটি database অনেক user ব্যবহার করতে পারে। কেউ data insert করে, কেউ update করে, কেউ delete করে এবং কেউ report তৈরি করে। যদি database-এ কোনো control না থাকে, তাহলে wrong, duplicate, incomplete বা inconsistent data ঢুকে যেতে পারে। Integrity constraints এই ধরনের সমস্যা কমাতে সাহায্য করে।
- Invalid data entry prevent করে।
- Data accuracy বজায় রাখে।
- Data consistency বজায় রাখে।
- Duplicate record কমাতে সাহায্য করে।
- Tables-এর মধ্যে valid relationship maintain করে।
- Primary key এবং foreign key rules enforce করে।
- Database-এর reliability বাড়ায়।
- Application-level manual checking কমায়।
Integrity Constraint-এর main purpose হলো database-এ ভুল, invalid বা inconsistent data প্রবেশ করা বন্ধ করা।
৩. Types of Integrity Constraints
DBMS-এ বিভিন্ন ধরনের integrity constraints ব্যবহার করা হয়। এই chapter-এ syllabus অনুযায়ী আমরা বিশেষভাবে Domain Constraints, Referential Integrity এবং View নিয়ে আলোচনা করব। তবে overall understanding-এর জন্য অন্যান্য constraints-এর নামও জানা দরকার।
| Constraint Type | বাংলা ব্যাখ্যা | উদাহরণ |
|---|---|---|
| Domain Constraint | Column-এর value নির্দিষ্ট domain বা range-এর মধ্যে রাখে। | Age must be 5 to 100 |
| Entity Integrity | Primary key null বা duplicate হতে দেয় না। | Roll_No cannot be NULL |
| Key Constraint | Key attribute-এর value unique রাখে। | Email must be unique |
| Referential Integrity | Foreign key valid primary key refer করছে কি না check করে। | Order-এর Customer_ID valid customer হতে হবে |
| NOT NULL Constraint | Column blank বা null হতে দেয় না। | Name cannot be empty |
| CHECK Constraint | Specific condition satisfy করতে বাধ্য করে। | Marks BETWEEN 0 AND 100 |
৪. Domain Constraints
Domain Constraint হলো এমন একটি integrity constraint, যা কোনো attribute বা column-এর valid values নির্ধারণ করে। অর্থাৎ একটি column-এ কী ধরনের data, কোন range-এর data বা কোন format-এর data রাখা যাবে—তা domain constraint দ্বারা control করা হয়।
Domain Constraint এমন একটি rule, যা নিশ্চিত করে যে কোনো attribute-এর value তার predefined domain বা valid range-এর মধ্যে আছে।
এখানে domain বলতে বোঝায় কোনো attribute-এর allowed values-এর set। যেমন Age column-এ only positive integer থাকতে পারে, Marks column-এ 0 থেকে 100-এর মধ্যে value থাকতে পারে, Gender column-এ নির্দিষ্ট কিছু values থাকতে পারে।
৪.১ Domain Constraint-এর উদ্দেশ্য
- Wrong data type prevent করা।
- Invalid range-এর value prevent করা।
- Required field blank রাখা prevent করা।
- Business rule enforce করা।
- Data accuracy এবং consistency maintain করা।
৪.২ Domain Constraint-এর উদাহরণ
| Column | Domain Rule | Valid Value | Invalid Value |
|---|---|---|---|
| Age | Age must be between 5 and 100 | 18 | -3, 150, ABC |
| Marks | Marks must be between 0 and 100 | 85 | 120, -10 |
| Name | Name cannot be NULL | Riya | NULL |
| Gender | Only predefined values allowed | Male, Female, Other | UnknownCode |
| Must follow valid email format | student@gmail.com | studentgmail.com |
৪.৩ SQL-এ Domain Constraint-এর উদাহরণ
নিচের SQL example-এ Student table তৈরি করার সময় Age এবং Marks-এর উপর CHECK constraint দেওয়া হয়েছে, এবং Name column-এ NOT NULL constraint দেওয়া হয়েছে।
CREATE TABLE Student (
Roll_No INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Age INT CHECK (Age >= 5 AND Age = 0 AND Marks
এখানে:
Name VARCHAR(50) NOT NULL— Name blank রাখা যাবে না।Age INT CHECK (Age >= 5 AND Age <= 100)— Age 5 থেকে 100-এর মধ্যে হতে হবে।Marks INT CHECK (Marks >= 0 AND Marks <= 100)— Marks 0 থেকে 100-এর মধ্যে হতে হবে।
৪.৪ Domain Constraint Violation
যদি কেউ নিচের মতো invalid value insert করতে চায়:
INSERT INTO Student VALUES (101, 'Riya', 15, 120);
এখানে Marks = 120, কিন্তু Marks-এর domain 0 থেকে 100। তাই এটি domain constraint violate করবে এবং DBMS এই data reject করতে পারে।
Domain Constraint column-level data validation-এর জন্য খুব গুরুত্বপূর্ণ। এটি wrong data type, invalid range এবং blank values prevent করে।
৫. Referential Integrity
Referential Integrity হলো relational database-এর একটি গুরুত্বপূর্ণ constraint, যা দুইটি related table-এর মধ্যে valid relationship বজায় রাখে। এটি মূলত Primary Key এবং Foreign Key-এর relationship-এর উপর ভিত্তি করে কাজ করে।
Referential Integrity এমন একটি constraint, যা নিশ্চিত করে যে কোনো foreign key value অবশ্যই referenced table-এর valid primary key value হবে অথবা allowed হলে NULL হবে।
সহজ ভাষায়, যদি একটি table অন্য table-এর record refer করে, তাহলে সেই referenced record database-এ থাকা উচিত। না হলে orphan record তৈরি হয়। Orphan record মানে এমন record, যা এমন কোনো parent record-কে refer করছে যা database-এ নেই।
৫.১ Primary Key এবং Foreign Key ধারণা
Referential Integrity বোঝার জন্য Primary Key এবং Foreign Key জানা দরকার।
- Primary Key: একটি table-এর প্রতিটি row uniquely identify করে।
- Foreign Key: একটি table-এর attribute, যা অন্য table-এর primary key refer করে।
৫.২ Example: Customer এবং Orders Table
ধরো একটি database-এ দুটি table আছে: Customer এবং Orders।
| CUSTOMER Table | ||
|---|---|---|
| Customer_ID | Customer_Name | City |
| 1 | Riya | Kolkata |
| 2 | Arman | Howrah |
| ORDERS Table | |||
|---|---|---|---|
| Order_ID | Order_Date | Amount | Customer_ID |
| 101 | 2026-05-01 | 500 | 1 |
| 102 | 2026-05-02 | 750 | 2 |
এখানে Customer table-এর Customer_ID primary key। Orders table-এর Customer_ID foreign key, যা Customer table-এর Customer_ID refer করছে।
৫.৩ Referential Integrity Violation
যদি কেউ Orders table-এ এমন order insert করতে চায় যার Customer_ID = 5, কিন্তু Customer table-এ Customer_ID = 5 নেই, তাহলে referential integrity violation হবে।
INSERT INTO Orders VALUES (103, '2026-05-03', 900, 5);
এখানে Customer_ID 5 Customer table-এ নেই। তাই এই order orphan record হবে। Referential Integrity এই invalid insertion prevent করে।
৫.৪ SQL-এ Referential Integrity Example
CREATE TABLE Customer (
Customer_ID INT PRIMARY KEY,
Customer_Name VARCHAR(50),
City VARCHAR(50)
);
CREATE TABLE Orders (
Order_ID INT PRIMARY KEY,
Order_Date DATE,
Amount INT,
Customer_ID INT,
FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID)
);
এখানে Orders table-এর Customer_ID foreign key হিসেবে Customer table-এর Customer_ID refer করছে। ফলে Orders table-এ এমন Customer_ID insert করা যাবে না যা Customer table-এ নেই।
৬. Referential Actions
Referential Integrity-এর ক্ষেত্রে parent table-এর record update বা delete হলে child table-এর related records-এর কী হবে, তা referential actions দ্বারা control করা যায়। সাধারণ referential actions হলো CASCADE, SET NULL, RESTRICT বা NO ACTION।
| Referential Action | বাংলা ব্যাখ্যা | উদাহরণ |
|---|---|---|
| CASCADE | Parent record delete/update হলে child record-এও automatically effect পড়ে। | Customer delete হলে তার orders-ও delete হতে পারে। |
| SET NULL | Parent record delete হলে child table-এর foreign key value NULL হয়ে যায়। | Department delete হলে Employee-এর Dept_ID NULL হতে পারে। |
| RESTRICT | Child record থাকলে parent record delete/update করতে দেয় না। | Orders থাকলে Customer delete করা যাবে না। |
| NO ACTION | Constraint violation হলে operation reject হয়। | Invalid delete/update stop করে। |
৬.১ ON DELETE CASCADE Example
CREATE TABLE Orders (
Order_ID INT PRIMARY KEY,
Order_Date DATE,
Amount INT,
Customer_ID INT,
FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID)
ON DELETE CASCADE
);
এখানে যদি Customer table থেকে কোনো customer delete হয়, তাহলে সেই customer-এর related orders automatically delete হতে পারে। তবে real-life system-এ cascade delete carefully ব্যবহার করতে হয়, কারণ ভুল delete হলে অনেক related data হারিয়ে যেতে পারে।
Referential Integrity-এর মূল কথা: Foreign Key value অবশ্যই parent table-এর valid Primary Key value refer করবে।
৭. Domain Constraint এবং Referential Integrity-এর পার্থক্য
| বিষয় | Domain Constraint | Referential Integrity |
|---|---|---|
| কাজ | Column-এর valid values control করে। | Tables-এর relationship valid রাখে। |
| Level | Attribute বা column level। | Table relationship level। |
| Based on | Data type, range, format, condition। | Primary key এবং foreign key। |
| Example | Age 5 থেকে 100-এর মধ্যে। | Order-এর Customer_ID valid Customer_ID হতে হবে। |
| Violation | Marks = 150 দিলে violation। | Non-existing Customer_ID insert করলে violation। |
৮. View in DBMS
View হলো database-এর একটি virtual table। এটি actual physical table নয়; বরং এক বা একাধিক base table-এর উপর query-এর মাধ্যমে তৈরি একটি logical representation। View user-কে selected data দেখাতে সাহায্য করে।
View হলো একটি virtual table, যা এক বা একাধিক base table-এর data-এর উপর query-এর মাধ্যমে তৈরি হয়।
View নিজে সাধারণত data store করে না; এটি base table থেকে data দেখায়। যখন user view access করে, তখন DBMS view-এর definition অনুযায়ী data retrieve করে।
৮.১ View কেন দরকার?
- User-কে table-এর selected columns বা rows দেখানো যায়।
- Security বাড়ানো যায়, কারণ sensitive columns hide করা যায়।
- Complex query সহজভাবে represent করা যায়।
- Different users-কে different view দেওয়া যায়।
- Data abstraction প্রদান করে।
- Report generation সহজ করে।
Student table-এ Roll_No, Name, Address, Phone, Marks আছে। কিন্তু public result দেখানোর সময় শুধু Roll_No, Name এবং Marks দেখাতে চাইলে একটি view তৈরি করা যায়।
৯. SQL View Example
৯.১ Base Table: Student
| Roll_No | Name | Address | Phone | Marks |
|---|---|---|---|---|
| 101 | Riya | Kolkata | 9876543210 | 88 |
| 102 | Arman | Howrah | 9876500000 | 76 |
৯.২ Create View
CREATE VIEW Student_Result AS
SELECT Roll_No, Name, Marks
FROM Student;
এই view-তে শুধু Roll_No, Name এবং Marks দেখা যাবে। Address এবং Phone hide করা হয়েছে।
৯.৩ View Output
| Roll_No | Name | Marks |
|---|---|---|
| 101 | Riya | 88 |
| 102 | Arman | 76 |
১০. Types of Views
১০.১ Simple View
Simple view সাধারণত একটি base table থেকে তৈরি হয় এবং এতে complex functions, grouping বা multiple joins থাকে না। Simple view অনেক ক্ষেত্রে updateable হতে পারে।
Student table থেকে Roll_No, Name, Marks নিয়ে Student_Result view তৈরি করা।
১০.২ Complex View
Complex view একাধিক table, join, group by, aggregate functions বা complex query ব্যবহার করে তৈরি হয়। Complex view সাধারণত direct update করা কঠিন বা সব DBMS-এ allowed নাও হতে পারে।
CREATE VIEW Class_Average AS
SELECT Class, AVG(Marks) AS Average_Marks
FROM Student
GROUP BY Class;
এখানে Class অনুযায়ী average marks দেখানোর জন্য complex view তৈরি করা হয়েছে।
১১. View-এর Advantages
- Security: Sensitive columns hide করা যায়।
- Simplicity: Complex query সহজ নামে ব্যবহার করা যায়।
- Data Abstraction: User base table-এর full structure না জেনেও data দেখতে পারে।
- Customized Access: Different users-এর জন্য different views তৈরি করা যায়।
- Report Friendly: Report-এর জন্য selected data view হিসেবে রাখা যায়।
- Logical Independence: Base table-এর complex design user থেকে hide করা যায়।
১২. View-এর Limitations
- View সাধারণত physical data store করে না, তাই performance সব সময় fast নাও হতে পারে।
- Complex view update করা কঠিন হতে পারে।
- Base table delete বা structure change হলে view invalid হতে পারে।
- সব view insert, update বা delete operation support করে না।
- View dependency বেশি হলে database management complex হতে পারে।
১৩. View and Security
View database security-এর জন্য খুব useful। User-কে পুরো table access না দিয়ে শুধু required columns বা rows দেখানো যায়। এতে sensitive data hide করা যায়।
Employee table-এ Emp_ID, Name, Department, Salary, Address আছে। সাধারণ staff-দের salary দেখানো উচিত নয়। তাই একটি view তৈরি করা যায়:
CREATE VIEW Employee_Public AS
SELECT Emp_ID, Name, Department
FROM Employee;
এই view ব্যবহার করলে user শুধু Emp_ID, Name এবং Department দেখতে পাবে; Salary এবং Address দেখতে পাবে না।
১৪. View and Integrity Constraints
View নিজে virtual table হলেও base table-এর integrity constraints view-এর data validity-কে প্রভাবিত করে। যদি base table-এ domain constraint বা referential integrity থাকে, তাহলে view-এর মাধ্যমে data insert/update করার সময়ও সেই constraints অনেক ক্ষেত্রে apply হতে পারে।
Student table-এ Marks-এর CHECK constraint আছে: Marks between 0 and 100। যদি updateable view-এর মাধ্যমে Marks = 150 set করার চেষ্টা করা হয়, তাহলে base table-এর domain constraint violation হতে পারে।
১৫. View তৈরি, ব্যবহার এবং Delete করার SQL Commands
১৫.১ Create View
CREATE VIEW View_Name AS
SELECT column1, column2
FROM Table_Name
WHERE condition;
১৫.২ Use View
SELECT * FROM View_Name;
১৫.৩ Drop View
DROP VIEW View_Name;
১৫.৪ Example
CREATE VIEW High_Marks_Student AS
SELECT Roll_No, Name, Marks
FROM Student
WHERE Marks > 80;
SELECT * FROM High_Marks_Student;
DROP VIEW High_Marks_Student;
১৬. Practical Example Combining Domain Constraint, Referential Integrity and View
এখন একটি complete example দেখা যাক যেখানে Domain Constraint, Referential Integrity এবং View—তিনটি concept একসঙ্গে ব্যবহার হয়েছে।
CREATE TABLE Department (
Dept_ID INT PRIMARY KEY,
Dept_Name VARCHAR(50) NOT NULL
);
CREATE TABLE Student (
Roll_No INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Age INT CHECK (Age >= 5 AND Age = 0 AND Marks
এই example-এ:
AgeএবংMarks-এ domain constraint আছে।Dept_IDforeign key হিসেবে Department table-এর Dept_ID refer করছে।Student_Public_Resultview student-এর selected information দেখাচ্ছে।
১৭. Common Mistakes
- Domain constraint এবং referential integrity confuse করা।
- Foreign key value parent table-এ আছে কি না check না করা।
- Primary key null হতে পারে মনে করা।
- View-কে physical table মনে করা।
- Complex view সবসময় updateable মনে করা।
- CHECK constraint-এর condition ভুল লেখা।
- Foreign key reference table তৈরি করার আগে child table তৈরি করার চেষ্টা করা।
১৮. Important Differences
১৮.১ Table এবং View-এর পার্থক্য
| Table | View |
|---|---|
| Actual data store করে। | Virtual table; সাধারণত actual data store করে না। |
| Database-এর physical structure-এর অংশ। | Query-এর উপর ভিত্তি করে logical representation। |
| Insert, update, delete সাধারণত সরাসরি করা যায়। | সব view updateable নয়। |
| Full data থাকতে পারে। | Selected rows/columns দেখাতে পারে। |
| Example: Student table | Example: Student_Result view |
১৮.২ Primary Key এবং Foreign Key-এর পার্থক্য
| Primary Key | Foreign Key |
|---|---|
| Same table-এর row uniquely identify করে। | অন্য table-এর primary key refer করে। |
| Duplicate হতে পারে না। | Duplicate হতে পারে। |
| NULL হতে পারে না। | Allowed হলে NULL হতে পারে। |
| Entity integrity maintain করে। | Referential integrity maintain করে। |
১৯. Chapter Summary
Integrity Constraints DBMS-এর গুরুত্বপূর্ণ rules, যা database-এর data-কে accurate, valid, consistent এবং reliable রাখতে সাহায্য করে। Domain Constraint column-এর allowed values, data type, range বা format control করে। যেমন Age positive integer হতে হবে, Marks 0 থেকে 100-এর মধ্যে হতে হবে, Name blank হতে পারবে না।
Referential Integrity primary key এবং foreign key-এর relationship-এর মাধ্যমে দুইটি table-এর মধ্যে valid link বজায় রাখে। এটি orphan records prevent করে। যদি child table-এর foreign key value parent table-এর primary key value হিসেবে না থাকে, তাহলে referential integrity violation হয়।
View হলো একটি virtual table, যা base table-এর উপর query-এর মাধ্যমে তৈরি হয়। View security, simplicity, data abstraction এবং customized access প্রদান করে। View ব্যবহার করে user-কে selected rows বা columns দেখানো যায় এবং sensitive data hide করা যায়।
২০. Important Key Points for Class 12
- Integrity Constraints database-এর data quality বজায় রাখে।
- Domain Constraint attribute-এর valid values control করে।
- CHECK constraint condition apply করে।
- NOT NULL constraint blank value prevent করে।
- Referential Integrity foreign key-primary key relationship valid রাখে।
- Foreign key value parent table-এর primary key value match করতে হবে।
- Invalid foreign key record orphan record তৈরি করে।
- View হলো virtual table।
- View সাধারণত base table-এর data selected form-এ দেখায়।
- View security এবং data abstraction-এর জন্য useful।
- সব view updateable নয়।
- Table actual data store করে, view query-based logical table।
২১. Short Questions and Answers
প্রশ্ন ১: Integrity Constraint কী?
উত্তর: Integrity Constraint হলো DBMS-এর rule, যা database-এর data accurate, valid, consistent এবং reliable রাখতে সাহায্য করে।
প্রশ্ন ২: Domain Constraint কী?
উত্তর: Domain Constraint হলো এমন rule, যা কোনো attribute-এর value predefined domain বা valid range-এর মধ্যে আছে কি না নিশ্চিত করে।
প্রশ্ন ৩: Domain কী?
উত্তর: কোনো attribute যে allowed values গ্রহণ করতে পারে, সেই values-এর set-কে domain বলা হয়।
প্রশ্ন ৪: Referential Integrity কী?
উত্তর: Referential Integrity হলো এমন constraint, যা নিশ্চিত করে যে foreign key value referenced table-এর valid primary key value হবে।
প্রশ্ন ৫: Foreign Key কী?
উত্তর: Foreign Key হলো একটি table-এর attribute, যা অন্য table-এর primary key refer করে।
প্রশ্ন ৬: Orphan Record কী?
উত্তর: যে child record এমন parent record-কে refer করে যা database-এ নেই, তাকে orphan record বলা হয়।
প্রশ্ন ৭: View কী?
উত্তর: View হলো একটি virtual table, যা এক বা একাধিক base table-এর উপর query-এর মাধ্যমে তৈরি হয়।
প্রশ্ন ৮: View কি actual data store করে?
উত্তর: সাধারণত view actual data store করে না; এটি base table থেকে query অনুযায়ী data দেখায়।
প্রশ্ন ৯: View-এর একটি সুবিধা লেখো।
উত্তর: View sensitive data hide করে security বাড়াতে সাহায্য করে।
প্রশ্ন ১০: Table এবং View-এর প্রধান পার্থক্য কী?
উত্তর: Table actual data store করে, কিন্তু View হলো query-based virtual table।
২২. Long Answer Type Questions
প্রশ্ন ১: Integrity Constraints কী? এর প্রয়োজনীয়তা আলোচনা করো।
উত্তর: Integrity Constraints হলো database-এর উপর প্রয়োগ করা rules বা restrictions, যা database-এর data accurate, valid, consistent এবং reliable রাখতে সাহায্য করে। Database-এ অনেক user data insert, update বা delete করতে পারে। যদি data-এর উপর কোনো rule না থাকে, তাহলে invalid, duplicate বা inconsistent data database-এ ঢুকে যেতে পারে। Integrity constraints এই ধরনের ভুল data entry prevent করে।
Integrity constraints-এর মাধ্যমে attribute-এর value নির্দিষ্ট domain-এর মধ্যে রাখা যায়, primary key unique রাখা যায়, foreign key relationship valid রাখা যায় এবং required field blank রাখা prevent করা যায়। এর ফলে database-এর reliability বাড়ে, report সঠিক হয় এবং application-এর data processing সহজ হয়। তাই DBMS-এ integrity constraints অত্যন্ত গুরুত্বপূর্ণ।
প্রশ্ন ২: Domain Constraint উদাহরণসহ ব্যাখ্যা করো।
উত্তর: Domain Constraint হলো এমন একটি integrity constraint, যা কোনো attribute বা column-এর allowed values নির্ধারণ করে। প্রতিটি attribute-এর একটি domain থাকে, অর্থাৎ সেই attribute কী ধরনের value গ্রহণ করতে পারবে এবং কোন range-এর value valid হবে। Domain constraint সেই rule enforce করে।
উদাহরণস্বরূপ, Student table-এর Marks column-এর value 0 থেকে 100-এর মধ্যে হওয়া উচিত। যদি কেউ Marks = 150 insert করে, তাহলে সেটি invalid। একইভাবে Age column positive integer হওয়া উচিত। Name column blank হতে দেওয়া না হলে NOT NULL constraint ব্যবহার করা যায়। SQL-এ CHECK constraint ব্যবহার করে domain rule set করা হয়, যেমন CHECK (Marks >= 0 AND Marks <= 100)।
প্রশ্ন ৩: Referential Integrity ব্যাখ্যা করো।
উত্তর: Referential Integrity হলো relational database-এর একটি গুরুত্বপূর্ণ constraint, যা primary key এবং foreign key relationship-এর মাধ্যমে related tables-এর মধ্যে valid link বজায় রাখে। যদি একটি table অন্য table-এর record refer করে, তাহলে referenced record parent table-এ থাকা উচিত। না হলে orphan record তৈরি হবে।
উদাহরণস্বরূপ, Customer table-এর Customer_ID primary key এবং Orders table-এর Customer_ID foreign key। Orders table-এ এমন Customer_ID insert করা যাবে না যা Customer table-এ নেই। যদি Customer_ID = 5 Customer table-এ না থাকে, তাহলে Orders table-এ Customer_ID = 5 সহ order insert করলে referential integrity violation হবে। এই constraint database-এর relationship consistency বজায় রাখে।
প্রশ্ন ৪: View কী? View-এর সুবিধা ও অসুবিধা আলোচনা করো।
উত্তর: View হলো database-এর একটি virtual table, যা এক বা একাধিক base table-এর উপর query-এর মাধ্যমে তৈরি হয়। View সাধারণত actual data store করে না; এটি base table থেকে selected data দেখায়। View user-কে simplified এবং secure data access দেয়।
View-এর সুবিধা হলো এটি security বাড়ায়, কারণ sensitive columns hide করা যায়। Complex query-কে সহজ নামে ব্যবহার করা যায়। Different users-এর জন্য different views তৈরি করা যায়। View data abstraction দেয় এবং report generation সহজ করে। তবে view-এর কিছু limitations আছে। সব view updateable নয়, complex view update করা কঠিন হতে পারে, base table change হলে view invalid হতে পারে, এবং view dependency বেশি হলে database management complex হতে পারে।
প্রশ্ন ৫: Domain Constraint এবং Referential Integrity-এর মধ্যে পার্থক্য লেখো।
উত্তর: Domain Constraint এবং Referential Integrity দুটোই integrity constraint হলেও তাদের কাজ আলাদা। Domain Constraint attribute বা column level-এ কাজ করে। এটি column-এর data type, range, format বা valid values control করে। যেমন Marks 0 থেকে 100-এর মধ্যে হতে হবে।
Referential Integrity table relationship level-এ কাজ করে। এটি foreign key এবং primary key-এর relationship valid রাখে। যেমন Orders table-এর Customer_ID অবশ্যই Customer table-এর valid Customer_ID হতে হবে। Domain constraint invalid column value prevent করে, আর referential integrity invalid relationship বা orphan record prevent করে।
২৩. Conclusion বা উপসংহার
Integrity Constraints DBMS-এর একটি গুরুত্বপূর্ণ অংশ। এগুলো database-কে ভুল, invalid এবং inconsistent data থেকে রক্ষা করে। Domain Constraint attribute value-এর validity নিশ্চিত করে, Referential Integrity table relationship-এর correctness বজায় রাখে এবং View user-কে secure ও simplified data access প্রদান করে।
Class 12 students-এর জন্য এই chapter খুব গুরুত্বপূর্ণ, কারণ relational database design, SQL table creation, keys, foreign key এবং data security বোঝার জন্য integrity constraints এবং view-এর concept জানা দরকার। বাস্তব database system যেমন school database, banking database, hospital database বা e-commerce database—সব ক্ষেত্রেই data accuracy এবং relationship consistency বজায় রাখতে এই concepts ব্যবহার করা হয়।