প্রাথমিক কী সম্পর্কে বিশেষ কী?
স্কিমাতে টেবিলের উদ্দেশ্য কী? টেবিলের চাবিটির উদ্দেশ্য কী? প্রাথমিক কী সম্পর্কে বিশেষ কী? প্রাথমিক কীগুলির চারপাশের আলোচনাগুলি মনে হচ্ছে বিন্দুটি হারাতে পারে না যে প্রাথমিক কীটি একটি টেবিলের অংশ, এবং সেই টেবিলটি স্কীমার অংশ। টেবিল এবং টেবিল সম্পর্কের জন্য সবচেয়ে ভাল কীটি ব্যবহার করা হবে তা চালনা করা উচিত।
টেবিলগুলি (এবং টেবিলের সম্পর্কগুলিতে) আপনি রেকর্ড করতে চান এমন তথ্য সম্পর্কিত তথ্য রয়েছে। এই তথ্যগুলি স্ব-অন্তর্ভুক্ত হওয়া উচিত, অর্থবহ, সহজেই বোঝা উচিত এবং অবিরোধী। ডিজাইনের দৃষ্টিকোণ থেকে, স্কিমা থেকে যুক্ত বা সরানো অন্যান্য টেবিলগুলি প্রশ্নযুক্ত টেবিলে প্রভাব ফেলবে না। কেবল তথ্যের সাথে সম্পর্কিত ডেটা সংরক্ষণ করার জন্য অবশ্যই একটি উদ্দেশ্য থাকতে হবে। টেবিলের মধ্যে কী রয়েছে তা বোঝার জন্য কোনও বৈজ্ঞানিক গবেষণা প্রকল্পের প্রয়োজন হবে না require একই উদ্দেশ্যে সংরক্ষণ করা কোনও তথ্য একাধিকবার সংরক্ষণ করা উচিত নয়। কীগুলি রেকর্ড করা তথ্যের সম্পূর্ণ বা অংশ যা অনন্য, এবং প্রাথমিক কীটি বিশেষভাবে মনোনীত কী যা টেবিলের প্রাথমিক অ্যাক্সেস পয়েন্ট হতে পারে (যেমন এটি কেবল সন্নিবেশ না করে ডেটা ধারাবাহিকতা এবং ব্যবহারের জন্য বেছে নেওয়া উচিত) কর্মক্ষমতা).
- ASIDE: দুর্ভাগ্যক্রমে অ্যাপ্লিকেশন প্রোগ্রামারদের দ্বারা তৈরি করা এবং বিকাশ করা বেশিরভাগ ডাটাবেসের পার্শ্ব প্রতিক্রিয়া (যা আমি মাঝে মাঝে থাকি) হ'ল অ্যাপ্লিকেশন বা অ্যাপ্লিকেশন কাঠামোর জন্য সবচেয়ে ভাল যা প্রায়শই টেবিলগুলির জন্য প্রাথমিক কী পছন্দকে চালিত করে। এটি পূর্ণসংখ্যার এবং জিইউডি কীগুলি (যেমন এপ্লিকেশন ফ্রেমওয়ার্কগুলির জন্য এগুলি ব্যবহার করা সহজ) এবং একক টেবিল ডিজাইনগুলি (এগুলি স্মৃতিতে ডেটা উপস্থাপন করার জন্য প্রয়োজনীয় অ্যাপ্লিকেশন ফ্রেমওয়ার্কের সংখ্যাকে হ্রাস করে) বাড়ে। এই অ্যাপ্লিকেশন চালিত ডাটাবেস ডিজাইনের সিদ্ধান্তগুলি যখন স্কেল ব্যবহার করা হয় তখন ডেটাগুলির ধারাবাহিকতার ক্ষেত্রে গুরুত্বপূর্ণ সমস্যাগুলির দিকে পরিচালিত করে। এই পদ্ধতিতে নকশাকৃত অ্যাপ্লিকেশন ফ্রেমওয়ার্কগুলি স্বাভাবিকভাবে একটি সময় ডিজাইনে টেবিলের দিকে নিয়ে যায়। "আংশিক রেকর্ডগুলি" সারণী এবং সময়ের সাথে পরিপূর্ণ ডেটা তৈরি করা হয়। মাল্টি-টেবিল ইন্টারঅ্যাকশন এড়ানো হয় বা যখন প্রয়োগটি ভুলভাবে কাজ করে তখন বেমানান ডেটার কারণ হয়। এই নকশাগুলি এমন ডেটা বাড়ে যা অর্থহীন (বা বুঝতে অসুবিধাজনক), টেবিলগুলিতে ছড়িয়ে পড়া ডেটা (বর্তমান টেবিলটি বোঝার জন্য আপনাকে অন্যান্য সারণীর দিকে নজর দিতে হবে) এবং নকল তথ্য।
বলা হয়েছিল যে প্রাথমিক কীগুলি প্রয়োজনীয় হিসাবে ছোট হওয়া উচিত। আমি বলব যে কীগুলি কেবল প্রয়োজনীয় হিসাবে বৃহত্তর হওয়া উচিত। এলোমেলোভাবে কোনও টেবিলে অর্থহীন ক্ষেত্র যুক্ত করা এড়ানো উচিত। এলোমেলোভাবে যুক্ত অর্থহীন ক্ষেত্রের চাবি তৈরি করা আরও খারাপ, বিশেষত যখন এটি অন্য টেবিল থেকে অ প্রাথমিক-প্রাথমিক কীতে যোগদানের নির্ভরতা নষ্ট করে। টেবিলটিতে ভাল প্রার্থী কী না থাকলে এটি কেবল যুক্তিসঙ্গত, তবে সমস্ত টেবিলের জন্য যদি ব্যবহার করা হয় তবে এই ঘটনাটি অবশ্যই একটি দুর্বল স্কিমা ডিজাইনের লক্ষণ।
এটিও বলা হয়েছিল যে প্রাথমিক কীগুলি কখনই পরিবর্তন করা উচিত নয় কারণ একটি প্রাথমিক কী আপডেট করা সর্বদা প্রশ্নের বাইরে থাকা উচিত। তবে আপডেটটি সন্নিবেশের পরে মুছার মত একই। এই যুক্তি দিয়ে, আপনার কখনই একটি কী দিয়ে কোনও টেবিল থেকে কোনও রেকর্ড মুছে ফেলা উচিত নয় এবং তারপরে দ্বিতীয় কী দিয়ে অন্য রেকর্ড যুক্ত করা উচিত। সরোগেট প্রাথমিক কী যুক্ত করা সারণীতে থাকা অন্য কীটি বিদ্যমান রয়েছে তা সরাবে না। কোনও সারণীর একটি অ-প্রাথমিক কী আপডেট করা যদি অন্য টেবিলগুলির একটি সারোগেট কী দ্বারা অর্থের উপর নির্ভরশীলতা থাকে (উদাহরণস্বরূপ একটি প্রসেস টেবিল সহ স্থিতির টেবিলের স্থিতির বিবরণ 'প্রসেসড' থেকে পরিবর্তিত হয়ে 'বাতিল করা' হয় তবে ডেটাটির অর্থটি নষ্ট হয়ে যায় a 'অবশ্যই ডেটা দূষিত করবে)। প্রশ্নটির বাইরে সর্বদা যা হওয়া উচিত তা হ'ল ডেটা অর্থ নষ্ট করে দেওয়া।
এটি বলার পরে, আমি আজ ব্যবসায়গুলিতে বিদ্যমান অনেকগুলি দুর্বল নকশাকৃত ডাটাবেসের জন্য কৃতজ্ঞ (অর্থহীন-সারোগেট-কীড-ডেটা-কলুষিত -1 এনএফ বেহেমথস), কারণ এর অর্থ যে সঠিক ডাটাবেস ডিজাইন বোঝে এমন লোকদের জন্য অবিরাম কাজ রয়েছে । তবে দুঃখের দিক থেকে, এটি আমাকে মাঝে মাঝে সিসিফাসের মতো মনে করে, তবে আমি বাজি ধরেছিলাম যে তার 401 ক (ট্র্যাশ হওয়ার আগে) একটি হেক ছিল। গুরুত্বপূর্ণ ডাটাবেস ডিজাইনের প্রশ্নগুলির জন্য ব্লগ এবং ওয়েবসাইটগুলি থেকে দূরে থাকুন। আপনি যদি ডাটাবেসগুলি ডিজাইন করেন তবে সিজে তারিখটি সন্ধান করুন। আপনি এসকিউএল সার্ভারের জন্য সেলকোও উল্লেখ করতে পারেন, তবে কেবল যদি আপনি প্রথমে আপনার নাক ধরে থাকেন। ওরাকল দিকে, টম কিট রেফারেন্স করুন।