Codd-এর ১২টি নিয়ম
Edgar F Codd একজন কম্পিউটার সায়েন্টিস্ট যিনি ডাটাবেস ম্যানেজমেন্টের জন্য রিলেশনাল মডেল আবিষ্কার করেন। তিনি সম্পর্কিক ডাটাবেস এবং RDBMS-এর ভিত্তি স্থাপনের জন্য খ্যাতিপ্রাপ্ত।
Codd-এর ১২টি নিয়ম সেই বৈশিষ্ট্যগুলো ডিফাইন করে যা একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেমকে সম্পর্কিক (RDBMS) হিসেবে বিবেচনা করার জন্য প্রয়োজন।
Rule 0: Foundation Rule (ভিত্তি নিয়ম)
যে কোনো সিস্টেম RDBMS হিসেবে যোগ্য হতে হলে, সেটি অবশ্যই তার রিলেশনাল ক্যাপাবিলিটি ব্যবহার করে ডেটা ম্যানেজ করতে হবে।
Rule 1: Information Rule (তথ্য নিয়ম)
সকল তথ্য (মেটাডেটা সহ) সারি এবং কলাম ব্যবহার করে টেবিলে রিপ্রেজেন্ট করা হবে। সারি ও কলাম কঠোরভাবে আনঅর্ডার্ড থাকবে।
Rule 2: Guaranteed Access Rule (গ্যারান্টিড অ্যাক্সেস নিয়ম)
ডাটাবেসের সকল ভ্যালু টেবিল নাম, প্রাইমারি কী এবং কলাম নামের কম্বিনেশন ব্যবহার করে অ্যাক্সেসযোগ্য হতে হবে। (পয়েন্টার ব্যবহার করে সরাসরি ডেটা অ্যাক্সেস এই নিয়ম অনুযায়ী অবৈধ)।
Rule 3: Systematic Treatment of Null Values (Null ভ্যালু সিস্টেম্যাটিক ট্রিটমেন্ট)
NULL ভ্যালু ডাটাবেসে পূর্ণভাবে সমর্থিত যা ডেটার অনুপস্থিতি বা অবৈধ ডেটা রিপ্রেজেন্ট করে। NULL ভ্যালু ডেটা টাইপ থেকে স্বতন্ত্র এবং সেটির ওপর যেকোনো অপারেশন NULL রিটার্ন করবে।
Rule 4: Dynamic Online Catalog (ডাইনামিক অনলাইন ক্যাটালগ)
ক্যাটালগ হলো ডাটাবেসের সম্পূর্ণ বর্ণনা। এটি অনলাইনে সংরক্ষিত থাকে এবং ডাটাবেস সম্পর্কে অতিরিক্ত তথ্য দেয়। ডাটাবেসে ব্যবহৃত কোয়েরি ল্যাঙ্গুয়েজ ক্যাটালগে ও ব্যবহার করা যায়।
Rule 5: Powerful and Well-Structured Language (শক্তিশালী এবং সুস্ট্রাকচারড ল্যাঙ্গুয়েজ)
একটি সম্পর্কিক ডাটাবেস একাধিক ল্যাঙ্গুয়েজ সাপোর্ট করতে পারে। তবে কমপক্ষে একটি ল্যাঙ্গুয়েজ থাকতে হবে যা সকল ধরণের ডেটা অ্যাক্সেস, ম্যানিপুলেশন ইত্যাদি প্রদান করে। SQL হলো এমন একটি ল্যাঙ্গুয়েজ।
Rule 6: View Updation Rule (ভিউ আপডেশন নিয়ম)
তার্কিকভাবে যা যা ভিউ আপডেটযোগ্য, সেগুলো সিস্টেমের দ্বারা ও আপডেটযোগ্য হওয়া উচিত।
Rule 7: Quality Insertion, Update, Deletion (গুণগত ইনসারশন, আপডেট, ডিলিশন)
সিঙ্গেল অপারেন্ডের মাধ্যমে ইনসারশন, ডিলিশন এবং আপডেশন সম্ভব হওয়া উচিত। এই সুবিধা সব রিলেশন লেভেলে উপলব্ধ থাকতে হবে।
Rule 8: Physical Data Independence (ফিজিক্যাল ডেটা إندিপেন্ডেন্স)
সিস্টেমে ফিজিক্যাল পরিবর্তন (স্টোরেজ স্পেস পরিবর্তন, অ্যাক্সেস মেথড পরিবর্তন ইত্যাদি) অ্যাপ্লিকেশন প্রোগ্রাম এবং সিস্টেমের অন্যান্য কার্যকলাপকে প্রভাবিত করা উচিত নয়।
Rule 9: Logical Data Independence (লজিক্যাল ডেটা إندিপেন্ডেন্স)
ব্যবহারকারীর রিলেশনাল ডাটাবেস ভিউ কনসিস্টেন্ট থাকা উচিত এমনকি লজিক্যাল স্ট্রাকচারে পরিবর্তন হলেও। এই নিয়ম পূরণ করা যথেষ্ট কঠিন।
Rule 10: Integrity Independence (ইন্টিগ্রিটি إندিপেন্ডেন্স)
রিলেশনাল ডাটাবেসের জন্য নির্দিষ্ট ইন্টিগ্রিটি কনস্ট্রেইন্ট সেই ডাটাবেসের ল্যাঙ্গুয়েজে ডিফাইন করা উচিত এবং ক্যাটালগে সংরক্ষিত। এই নিয়মের মানে রিলেশনাল DBMS ফ্রন্ট-এন্ডের ওপর নির্ভরশীল নয়।
Rule 11: Distribution Independence (ডিস্ট্রিবিউশন إندিপেন্ডেন্স)
যদি ডেটা একাধিক লোকেশনে বিতরণকৃত থাকে, তবুও এন্ড ইউজার ডাটাবেসকে একটি ইউনিফর্ম এন্টিটি হিসেবে দেখবে। এছাড়া ডাটাবেস নেটওয়ার্ক জুড়ে বিতরণকৃত থাকলেও ভালোভাবে কাজ করবে।
Rule 12: Nonsubversion Rule (নন-সাবভার্সন নিয়ম)
যদি রিলেশনাল ডাটাবেসের জন্য লো-লেভেল অ্যাক্সেস অনুমোদিত হয়, তবে সেটি ইন্টিগ্রিটি কনস্ট্রেইন্ট লঙ্ঘন করে এবং সিকিউরিটি বাইপাস করে ডেটা পরিবর্তন করতে পারবে না।