ডাটাবেসে বাধা কেন প্রয়োগ করা হয়? কোডে রেখে দেওয়া কি আরও নমনীয় হবে না?
আমি ডেটাবেস বাস্তবায়নের বিষয়ে একটি প্রাথমিক বই পড়ছি, তাই আমি এটি একটি শিক্ষানবিশ হিসাবে জিজ্ঞাসা করছি। ধরা যাক আমি এই সত্তা মডেল সহ একটি ডেটাবেস ডিজাইন করেছি:
entity type | sub-types
----------------+--------------------------------------------
Person | Employee, Student, ...
Student | Graduate, Undergraduate, ...
Employee | Teacher, Administrator, ...
বর্তমান বাধা:
- সিস্টেমে নিবন্ধিত ব্যক্তি কেবল একজন ছাত্র বা কর্মচারী হতে পারে।
- ব্যক্তি সত্তার সামাজিক সংখ্যার স্বতন্ত্রতা প্রয়োজন, যা আমরা অনুমান করি যে প্রতিটি ব্যক্তি কেবলমাত্র একটি একক অনন্য (ওরফে, একটি ভাল যথেষ্ট প্রাথমিক কী) রাখে। (দেখুন # 1)
পরে আমরা 1 নম্বরটি সরিয়ে নেওয়ার সিদ্ধান্ত নিই: যদি একদিন কলেজ সিদ্ধান্ত নেয় যে Teacher
( Employee
উপ-প্রকার) এছাড়াও Student
তাদের ফ্রি সময়ে কোর্স করে নিতে পারে তবে ডাটাবেস ডিজাইনের পরিবর্তন করা আরও কঠিন যা হাজার, মিলিয়ন, বিলিয়ন হতে পারে, কোডটিতে যুক্তি পরিবর্তনের পরিবর্তে লক্ষাধিক এন্ট্রি: একটি অংশ যা কোনও ব্যক্তিকে শিক্ষার্থী এবং কর্মচারী উভয় হিসাবে নিবন্ধভুক্ত করতে দেয়নি।
(এটি খুব অসম্ভব তবে আমি এখনই অন্য কিছু ভাবতে পারি না। স্পষ্টতই এটি সম্ভব)।
আমরা কোডের পরিবর্তে ডাটাবেস ডিজাইনে ব্যবসায়ের নিয়ম কেন যত্ন করি ?
# 1: 7 বছর পরে একটি নোট, একটি বাস্তব জীবনের উদাহরণ:
আমি এমন একটি সরকার দেখেছি যেখানে ভুলের কারণে জারি করা এসএসএনগুলি নকল করা হয়েছিল: একাধিক লোক, একই এসএসএন। মূল ডিবি ডিজাইনকারীরা অবশ্যই ডেটাবেজে এই স্বতন্ত্রতা সীমাবদ্ধতা প্রয়োগ না করার ভুল করেছে। (এবং পরে মূল অ্যাপ্লিকেশনটিতে একটি বাগ? শেয়ার্ড ডাটাবেস ব্যবহার করে একাধিক অ্যাপ্লিকেশন এবং সীমাবদ্ধতা কোথায় রাখবেন, চেক করুন এবং প্রয়োগ করবেন? ...)।
এই বাগটি সিস্টেমে বাস করবে এবং সমস্ত সিস্টেম বিকাশিত হবে যার পরে আসল বহু বছরের জন্য সেই মূল সিস্টেমের ডাটাবেসের উপর নির্ভর করবে। এখানে উত্তরগুলি পড়তে আমি শিখেছি সমস্ত প্রতিবন্ধকতাগুলি যথাসম্ভব যথাযথভাবে প্রয়োগ করতে শিখেছি, বুদ্ধিমানের সাথে (অন্ধভাবে নয়) সত্যিকারের জগতকে যতটা সম্ভব উপস্থাপন করার জন্য ডাটাবেসে।