ডাটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) এ ব্যবহৃত নিয়মের একটি সেট হল ইন্টিগ্রিটি কনস্ট্রেইন্টস। এই নিয়মগুলি ডেটাবেসের তথ্য সঠিক, সামঞ্জস্যপূর্ণ এবং নির্ভরযোগ্য কিনা তা নিশ্চিত করার জন্য ডেটার মান বজায় রাখতে সাহায্য করে। তথ্য যোগ করা, আপডেট করা বা মুছে ফেলার মতো প্রক্রিয়াগুলি ডেটাবেসের অখণ্ডতার ক্ষতি না করে তা নিশ্চিত করে। সহজ ভাষায়, এগুলি ডাটাবেসকে সুরক্ষিত রাখার এবং ত্রুটিমুক্ত রাখার জন্য নির্দেশিকা হিসেবে কাজ করে।
ইন্টিগ্রিটি কনস্ট্রেইন্টস ডাটাবেসের বিভিন্ন অংশ কীভাবে সংযুক্ত তাও সংজ্ঞায়িত করে এবং নিশ্চিত করে যে এই সম্পর্কগুলি বৈধ থাকে। ডেটা অর্থপূর্ণ এবং ডাটাবেসের যৌক্তিক কাঠামো অনুসরণ করে তা নিশ্চিত করার ক্ষেত্রে এগুলি একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
অখণ্ডতার সীমাবদ্ধতা কী?
একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেমে (DBMS) অখণ্ডতার সীমাবদ্ধতা হল এমন নিয়ম যা একটি ডাটাবেসের ডেটা নির্ভুল, সামঞ্জস্যপূর্ণ এবং নির্ভরযোগ্য রাখতে সাহায্য করে। এগুলি নির্দেশিকাগুলির একটি সেটের মতো কাজ করে যা নিশ্চিত করে যে ডাটাবেসে সংরক্ষিত সমস্ত তথ্য নির্দিষ্ট মান অনুসরণ করে।
উদাহরণ:- প্রত্যেক গ্রাহকের একটি বৈধ ইমেল ঠিকানা আছে কিনা তা নিশ্চিত করা। ডাটাবেসের একটি অর্ডার সর্বদা বিদ্যমান গ্রাহকের সাথে সংযুক্ত থাকে তা নিশ্চিত করা। এই নিয়মগুলি অসম্পূর্ণ বা ভুল ডেটা যোগ করার মতো ভুলগুলি প্রতিরোধ করে এবং নিশ্চিত করে যে ডাটাবেসটি নিরাপদ এবং সুসংগঠিত। সহজ ভাষায়, অখণ্ডতার সীমাবদ্ধতা ডাটাবেসকে পরিষ্কার, সঠিক এবং বিশ্বাসযোগ্য রাখে!
সততার সীমাবদ্ধতার (Integrity Constraints) প্রকারভেদ
ডোমেন সীমাবদ্ধতা:-
ডোমেন সীমাবদ্ধতা হল এক ধরণের অখণ্ডতা সীমাবদ্ধতা যা নিশ্চিত করে যে একটি ডাটাবেসের একটি কলামে (অথবা অ্যাট্রিবিউট) সংরক্ষিত মানগুলি বৈধ এবং একটি নির্দিষ্ট পরিসর বা ডোমেনের মধ্যে রয়েছে। সহজ ভাষায়, তারা একটি কলামে কোন ধরণের ডেটা অনুমোদিত তা নির্ধারণ করে এবং অবৈধ ডেটা এন্ট্রি সীমাবদ্ধ করে। ডোমেনের ডেটা ধরণের মধ্যে স্ট্রিং, অক্ষর, সময়, পূর্ণসংখ্যা, তারিখ, মুদ্রা ইত্যাদি অন্তর্ভুক্ত থাকে। অ্যাট্রিবিউটের মান তুলনামূলক ডোমেনে উপলব্ধ থাকতে হবে।
উদাহরণ:
Student_Id | Name | Semester | Age |
CSE100 | Aniket Das | 6th | 20 |
CSE101 | Shashwat Pradhan | 7th | 21 |
CSE102 | Manas Maity | 8th | 22 |
CSE103 | Asim Bag | 5th | 20 |
এই টেবিলটি প্রতিটি কলামের জন্য নিয়ম প্রয়োগ করে ডোমেন সীমাবদ্ধতাগুলি কার্যকরভাবে প্রদর্শন করে:
ছাত্র_আইডি: অনন্য হতে হবে এবং CSE### এর মতো একটি নির্দিষ্ট ফর্ম্যাট অনুসরণ করতে হবে। কোনও সদৃশ বা অবৈধ ফর্ম্যাট অনুমোদিত নয়।
নাম: শুধুমাত্র বৈধ পাঠ্য গ্রহণ করে (কোন সংখ্যা নেই) এবং খালি রাখা যাবে না (NULL সীমাবদ্ধতা নয়)।
সেমিস্টার: 5ম, 6ষ্ঠ ইত্যাদির মতো নির্দিষ্ট মানগুলিকে অনুমতি দেয় এবং বৈধ ইনপুট নিশ্চিত করে (যেমন, অনুমোদিত না হলে 10ম নয়)।
বয়স: যুক্তিসঙ্গত পরিসরের মধ্যে একটি পূর্ণসংখ্যা হতে হবে (যেমন, 18-30) এবং ঋণাত্মক সংখ্যা বা পাঠ্যের মতো অবৈধ ডেটা থাকতে পারে না।
ডোমেন সীমাবদ্ধতার প্রকার
- নূন্য সীমাবদ্ধতা নয় (NOT NULL Constraint)
- সীমাবদ্ধতা পরীক্ষা করুন( CHECK Constraint)
ডোমেন সীমাবদ্ধতা কেন গুরুত্বপূর্ণ?
- এগুলি ডাটাবেসে অবৈধ বা অসঙ্গত ডেটা প্রবেশ করতে বাধা দেয়।
- এগুলি নিশ্চিত করে যে ডাটাবেস নির্ভরযোগ্য এবং পূর্বনির্ধারিত ব্যবসায়িক নিয়ম অনুসরণ করে।
- এগুলি ত্রুটি হ্রাস করে ডাটাবেস পরিচালনা এবং রক্ষণাবেক্ষণ করা সহজ করে তোলে।
উদাহরণ: ধরা যাক, নীচের রিলেশন/টেবিলে “সেমিস্টার” অ্যাট্রিবিউটে “নট-নাল” কনস্ট্রেইন্ট নির্দিষ্ট করা আছে, তাহলে চতুর্থ টুপলের ডেটা এন্ট্রি এই ইন্টিগ্রিটি কনস্ট্রেইন্ট লঙ্ঘন করবে, কারণ এই টুপলে “সেমিস্টার” অ্যাট্রিবিউটে নাল মান রয়েছে। এই ডাটাবেস ইনস্ট্যান্সকে একটি আইনি ইনস্ট্যান্স করার জন্য, ডাটাবেস ম্যানেজমেন্ট সিস্টেম দ্বারা এর এন্ট্রি অনুমোদিত হওয়া উচিত নয়।
Student_id | Name | Semester | Age |
CSE1001 | Sonali Roy | 5th | 20 |
CSE1012 | Anjali Maity | 5th | 21 |
CSE1023 | Aasha Singh | 5th | 22 |
সত্তার অখণ্ডতার সীমাবদ্ধতা:-
সত্তার অখণ্ডতার সীমাবদ্ধতা বলে যে প্রাথমিক কী কখনই নাল মান ধারণ করতে পারে না কারণ প্রাথমিক কী একটি সম্পর্কের মধ্যে পৃথক সারিগুলি অনন্যভাবে নির্ধারণ করতে ব্যবহৃত হয়, যদি প্রাথমিক কীতে নাল মান থাকে তবে আমরা সেই সারিগুলি সনাক্ত করতে পারি না। একটি টেবিলে প্রাথমিক কী ক্ষেত্র ছাড়া নাল মান থাকতে পারে।
সত্তার অখণ্ডতার সীমাবদ্ধতার মূল বৈশিষ্ট্য
স্বতন্ত্রতা
- টেবিলের প্রতিটি সারির জন্য প্রাথমিক কী মান অবশ্যই অনন্য হতে হবে।
- প্রাথমিক কী কলামে কোনও ডুপ্লিকেট এন্ট্রি অনুমোদিত নয়।
NULL নয়
- প্রাথমিক কী কলামে NULL মান থাকতে পারে না, কারণ প্রতিটি সারির একটি বৈধ শনাক্তকারী থাকতে হবে।
টেবিল ডিজাইনের জন্য অপরিহার্য অস্পষ্টতা রোধ করে টেবিলের প্রতিটি রেকর্ড অনন্যভাবে সনাক্ত করা যায় তা নিশ্চিত করে।
উদাহরণ: এটি অনুমোদিত নয় কারণ এতে প্রাথমিক কী (Student_id) NULL মান হিসেবে রয়েছে।
Student_id | Name | Semester | Age |
CSE101 | Ramesh | 5th | 20 |
CSE102 | Kamlesh | 5th | 21 |
CSE103 | Aakash | 5th | 22 |
NULL | Mukesh | 5th | 20 |
মূল সীমাবদ্ধতা: মূল সীমাবদ্ধতা নিশ্চিত করে যে একটি টেবিলের নির্দিষ্ট কলাম বা কলামের সংমিশ্রণ প্রতিটি সারিকে স্বতন্ত্রভাবে চিহ্নিত করে। ডেটা অখণ্ডতা বজায় রাখার জন্য এবং সদৃশ বা অস্পষ্ট রেকর্ড প্রতিরোধ করার জন্য এই নিয়মগুলি অপরিহার্য।
মূল সীমাবদ্ধতা কেন গুরুত্বপূর্ণ?
- সদৃশ প্রতিরোধ করুন: সারিগুলির অনন্য সনাক্তকরণ নিশ্চিত করুন।
- সম্পর্ক বজায় রাখুন: টেবিলগুলির মধ্যে সঠিক লিঙ্কিং সক্ষম করুন (বিদেশী কীগুলির মাধ্যমে)।
- ডেটা অখণ্ডতা প্রয়োগ করুন: অবৈধ বা অসঙ্গত ডেটা প্রতিরোধ করুন।
Student_id | Name | Semester | Age |
CSE101 | Ramesh | 5th | 20 |
CSE102 | Kamlesh | 5th | 21 |
CSE103 | Aakash | 5th | 22 |
CSE102 | Mukesh | 5th | 20 |
এটি এখন গ্রহণযোগ্য কারণ সকল সারি অবশ্যই অনন্য হতে হবে।
প্রাইমারি কী সীমাবদ্ধতা
এতে বলা হয়েছে যে প্রাথমিক কী বৈশিষ্ট্যগুলি অনন্য হতে হবে এবং নাল নয়। অর্থাৎ, একটি সম্পর্কের প্রাথমিক কী বৈশিষ্ট্যগুলির নাল মান থাকা উচিত নয় এবং দুটি টিপলের প্রাথমিক কী বৈশিষ্ট্যগুলি কখনই একই হওয়া উচিত নয়। এই সীমাবদ্ধতাটি ডাটাবেস স্কিমায় প্রাথমিক কী বৈশিষ্ট্যগুলিতে নির্দিষ্ট করা হয়েছে যাতে নিশ্চিত করা যায় যে কোনও দুটি টিপল একই নয়।
উদাহরণ: এখানে, নীচের উদাহরণে Student_id হল প্রাথমিক কী বৈশিষ্ট্য। চতুর্থ টিপলের ডেটা এন্ট্রি ডাটাবেস স্কিমায় নির্দিষ্ট করা প্রাথমিক কী সীমাবদ্ধতা লঙ্ঘন করে এবং তাই ডাটাবেসের এই উদাহরণটি কোনও আইনি উদাহরণ নয়।
Student_id | Name | Semester | Age |
101 | Ramesh | 5th | 20 |
102 | Kamlesh | 5th | 21 |
103 | Akash | 5th | 22 |
অনন্য কী সীমাবদ্ধতা
একটি অনন্য কী নিশ্চিত করে যে একটি কলামের মানগুলি অনন্য, কিন্তু একটি প্রাথমিক কী থেকে ভিন্ন, এটি একটি NULL মান অনুমোদন করে।