আমি যখন আরডিবিএমএসের জন্য ডাটাবেস মডেলগুলি পর্যালোচনা করি, তখন আমি সাধারণত অবাক হয়ে খুব কমই বাধা পাই না (পিকে / এফকে বাদ দিয়ে)। উদাহরণস্বরূপ, শতাংশ প্রায়শই টাইপের কলামে সংরক্ষণ করা হয় int
(যখন tinyint
এটি আরও উপযুক্ত হবে) এবং CHECK
মানটি ০.১০০ সীমাতে সীমাবদ্ধ করার কোনও বাধা নেই । একইভাবে এসইএসইতে, চেক সীমাবদ্ধতার প্রস্তাব দেওয়া উত্তরগুলি প্রায়শই মন্তব্যগুলি গ্রহণ করে যে ডেটাবেস সীমাবদ্ধতার জন্য ভুল জায়গা।
যখন আমি বাধাগুলি কার্যকর না করার সিদ্ধান্তের বিষয়ে জিজ্ঞাসা করি, তখন দলের সদস্যরা প্রতিক্রিয়া জানান:
হয় যে তারা এমনকি জানে না যে এই জাতীয় বৈশিষ্ট্যগুলি তাদের পছন্দসই ডাটাবেসে বিদ্যমান। এটি কেবল ওআরএম ব্যবহার করে প্রোগ্রামারদের থেকে বোধগম্য, তবে ডিবিএর থেকে যারা কম প্রদত্ত আরডিবিএমএসের সাথে 5+ বছরের অভিজ্ঞতা আছে বলে দাবি করে তাদের থেকে অনেক কম।
অথবা যে তারা প্রয়োগ স্তরে এ জাতীয় প্রতিবন্ধকতাগুলি প্রয়োগ করে এবং ডাটাবেসে সেই নিয়মগুলি সদৃশ করা এসএসওটি লঙ্ঘন করা ভাল ধারণা নয়।
সাম্প্রতিককালে, আমি আরও অনেক বেশি প্রকল্প দেখি যেখানে বিদেশী কীগুলিও ব্যবহৃত হয় না। একইভাবে, আমি এখানে এসইএসইতে কয়েকটি মন্তব্য দেখেছি যা দেখায় যে ব্যবহারকারীরা রেফারেন্সিয়াল অখণ্ডতা সম্পর্কে খুব বেশি যত্ন নেন না, অ্যাপ্লিকেশনটিকে পরিচালনা করতে দেয়।
দলগুলিকে এফকে ব্যবহার না করার পছন্দ সম্পর্কে জিজ্ঞাসা করার সময়, তারা তা বলে:
এটি পিটা, উদাহরণস্বরূপ, যখন অন্য উপাদানগুলিতে রেফারেন্সযুক্ত কোনও উপাদানটি সরিয়ে ফেলতে হয়।
NoSQL শিলা রয়েছে এবং সেখানে কোনও বিদেশী কী নেই। অতএব, আরডিবিএমএসে আমাদের তাদের দরকার নেই।
পারফরম্যান্সের ক্ষেত্রে এটি কোনও বড় বিষয় নয় (প্রসঙ্গটি সাধারণত ছোট ডেটা সেটগুলিতে কাজ করা ছোট ইন্ট্রানেট ওয়েব অ্যাপ্লিকেশনগুলি হয়, সুতরাং প্রকৃতপক্ষে সূচিকাগুলিও খুব বেশি গুরুত্ব পাবে না; যদি কোনও প্রদত্ত ক্যোয়ারীর পারফরম্যান্স 1.5 ডিগ্রি পেরিয়ে যায় তবে কেউ চিন্তা করবে না । থেকে 20 এমএস।)
আমি যখন অ্যাপ্লিকেশনটি নিজেই দেখি, তখন আমি পদ্ধতিগতভাবে দুটি নিদর্শন লক্ষ্য করি:
অ্যাপ্লিকেশনটি ডেটাবেজে প্রেরণের আগে ডেটাটিকে সঠিকভাবে সংশ্লেষ করে এবং এটি পরীক্ষা করে। উদাহরণস্বরূপ,
102
অ্যাপ্লিকেশনটির মাধ্যমে শতাংশ হিসাবে কোনও মান সংরক্ষণ করার উপায় নেই ।অ্যাপ্লিকেশন ধরে নিয়েছে যে ডাটাবেস থেকে আসা সমস্ত ডেটা পুরোপুরি বৈধ। এটি হ'ল, যদি
102
শতাংশ হিসাবে আসে, তবে কিছু না কিছু ক্রাশ হবে, বা এটি কেবল ব্যবহারকারীর মতো প্রদর্শিত হবে যা অদ্ভুত পরিস্থিতির দিকে পরিচালিত করবে।যদিও 99% এরও বেশি প্রশ্নের একক অ্যাপ্লিকেশন দ্বারা সম্পন্ন করা হয়, সময়ের সাথে সাথে স্ক্রিপ্টগুলি প্রদর্শিত শুরু হয় — হয় স্ক্রিপ্টগুলি যখন প্রয়োজন হয় তখন হাতে হাতে চালিত হয়, বা ক্রোন জবগুলি। কিছু ডেটা অপারেশন নিজে হাতে ডাটাবেসটিতে সঞ্চালিত হয়। উভয় স্ক্রিপ্ট এবং ম্যানুয়াল এসকিউএল ক্যোয়ারিতে অবৈধ মানগুলি প্রবর্তনের উচ্চ ঝুঁকি রয়েছে।
এবং এখানে আমার প্রশ্ন আসে:
চেক সীমাবদ্ধতা ছাড়াই এবং অবশেষে এমনকি বিদেশী কী ছাড়াও মডেল রিলেশনাল ডাটাবেসের কারণগুলি কী?
এটি মূল্যবান কিসের জন্য, এই প্রশ্ন এবং আমি যে উত্তর পেয়েছি (বিশেষত টমাস কিলিয়ানের সাথে আকর্ষণীয় আলোচনা) আমাকে ডাটাবেস সীমাবদ্ধতার বিষয়ে আমার সিদ্ধান্তে একটি নিবন্ধ লিখতে পরিচালিত করেছিল ।