
Database Management System
Lesson – 12
Database Constraints: Equity Integrity Constraints, Domain Constraints, Referential Integrity Constraints, and Concept of Foreign Key.
ডেটাবেসসীমাবদ্ধতা (Database Constraints) কনসন্ট্রেসকী ? বিভিন্ন প্রকার ডেটাবেস সীমাবদ্ধতা সম্পর্কে আলোচনা কর
রিলেশনাল ডেটাবেসে ডেটার সঠিকতা (Accuracy), বিশ্বস্ততা(Reliability), সম্পূর্তা(Completeness) ইত্যাদি বজায় রাখার জন্য ডেটাবেস টেবিলে ডেটা প্রবেশের সময় যে নিয়মনীতি প্রয়োগ করা হয় তাকে ডেটাবেস সীমাবদ্ধতা বা কনসট্রেস বলে । অর্থাৎ ডেটাবেসে যাতে কোনো ভুল ডেটা প্রবেশ করতে না পারে তার ব্যাবস্থাকে ডেটাবেস সীমাবদ্ধতা বা কনসট্রেস বলে ।
মুলত ডেটাবেস কনস্ট্রেস এর মাধ্যমে ডেটার বৈধতা নির্ধারণ করা হয় ।
ডেটাবেস সীমাবদ্ধতা (Database Constraints) কনসন্ট্রেস এর বৈশিষ্ট্যঃ-
- টেবিলে সঠিক ডেটা প্রবেশের জন্য বিধিনিশেধ প্রয়োগ করে ।
- ডেটার সম্পূর্ণতা বজায় থাকে ।
- ডেটাকে সংরক্ষন যোগ্য করে তোলে ।
ইন্টিগ্রিটি কনসট্রেস(Integrity Constrains)কাকে বলে ? কত প্রকার ও কী কী ?
যে কনসট্রেসের সাহায্যে ডেটাবেসের ডেটার নিভূলতা এবং ধারাবাহিকতা বজায় রাখা হয় তাকে ইন্টিগ্রিটি কনসট্রেস বলে ।
ইন্টিগ্রিটি কনসট্রেসগুলি হলঃ-
- এনটিটি ইন্টিগ্রিটি কনসন্ট্রেস ।
- রেফারেন্সিয়াল ইন্টিগ্রিটি কনসন্ট্রেস ।
- ডোমেন ইন্টিগ্রিটি কনসন্ট্রেস ।
এনটিটি ইন্টিগ্রিটি কনসট্রেসঃ-
এই কনসট্রেস যুক্ত টেবিলে কোনো ডুপ্লিকেট রো বা টাপল থাকেনা । কী অ্যাট্রিবিউট এর সাপেক্ষে টাপল বা রেকর্ডগুলি স্বতন্ত্র থাকে । এখানে প্রইমারী কী এর ভ্যালু কখন নাল(Null) হবে না । তাই একে প্রাইমারি কী কনসট্রেস ও বলা হয় ।
যেমনঃ-
Reg_No | Name | Address | Marks |
1234 | Ram | Jiaganj | 450 |
Shyam | Berhampore | 455 |
ওপরের টেবিলে Reg_No হল প্রাইমারি কী তাই এনটিটি ইন্টিগ্রিটি কনসট্রেস অনুয়ায়ী এই অ্যাট্রিবিউটের মান কখন ফাঁকা থাকতে পারে না ।
রেফারেন্সিয়াল ইন্টিগ্রিটি কনসট্রেসঃ-
একে ফরেন কী কনসন্ট্রেস বলা হয় । এই কনসট্রেস এর সাহায্যে একটি টেবিলের রেফারেন্স অন্য টেবিলে ব্যাবহার করে উভয়ের মধ্যে সম্পর্ক স্থাপন করে । এই ধরনের কনসট্রেস দুটি টেবিলের মধ্যে ধারাবাহিকতা বজায় রাখতে সাহায্য করে । এর ফলে একটি টেবেলের রেকর্ডের কোনো পরিবর্তন অন্য টেবিলেও দেখা যায় । ফরেন কী গঠনের মাধ্যমে এই কনসট্রেস প্রয়োগ করা হয় ।
যেমনঃ-এখানে Student টেবিল/রিলেশনের প্রাইমারি কী হল Reg_No এবং Marks টেবিলের প্রাইমারি কী হল Roll_No কিন্তু এখানে Reg_No হল ফরেন কী । রেফারেন্সিয়াল ইন্টিগ্রিটি এর ফলে Reg_No অনুয়ায়ী রেকর্ডের কোনো পরিবর্তন হলে সব টেবিলে পরিলক্ষিত হবে ।
Student | ||
Reg_No | Name | Address |
123 | Ram | Jiaganj |
124 | Shyam | Lalbag |
Marks | |||
Roll_No | Reg_No | BNG | ENG |
441 | 123 | 85 | 75 |
442 | 124 | 78 | 87 |
ডোমেন ইন্টিগ্রিটি কনসট্রেসঃ-
ডোমেন বলতে কোনো রিলেশনের একটি অ্যাট্রিবিউটের/ফিল্ডের ভ্যালুকে বোঝায় । ডোমেন কনসট্রেসের সাহায্যে একটি রিলেশনের অ্যাট্রিবিউটে অবৈধ ডেটা প্রবেশে বাধা প্রদান করে । অর্থাৎ ডেটার বৈধতা যাচাই করে ডেটা টেবিলে প্রবেশ করান হয় । ডোমেন কনসট্রেসের উপাদান গুলি হল ডোমেন নেম, ডেটা টাইপ, সাইজ এবং অনুমোদনযোগ্য ভ্যালুরেঞ্জ ইত্যাদি ।
যেমনঃ- Student টেবিলের Age কলামের সাব ডেটার ডেটা টাইপ আছে Number তাই এই ফিল্ডে Text অর্থাৎ Fifteen ডেটার মান প্রবেশ করান যাবে না ।
Student | ||
Name | Roll | Age |
Ram | 1 | 16 |
Shyam | 2 | Fifteen |
