Skip to main content

একটি ডাটাবেসের মধ্যে এক থেকে অনেক সম্পর্ক

!প্র-উ 59!✔️ ইমাম মাহাদি, দাজ্জাল ও কেয়ামতের আলামত নিয়ে ভ্রান্ত ধারনার বিস্তারিত Abdullah Jahangir (জুন 2025)

!প্র-উ 59!✔️ ইমাম মাহাদি, দাজ্জাল ও কেয়ামতের আলামত নিয়ে ভ্রান্ত ধারনার বিস্তারিত Abdullah Jahangir (জুন 2025)
Anonim

ডেটাবেলে এক থেকে একাধিক সম্পর্ক ঘটে যখন সারণি এ প্রতিটি রেকর্ডের মধ্যে টেবিল বিতে অনেক সম্পর্কিত রেকর্ড থাকতে পারে, তবে সারণি বি-র প্রতিটি রেকর্ডটি কেবলমাত্র টেবিল এ-তে একমাত্র সংশ্লিষ্ট রেকর্ড থাকতে পারে। এক থেকে একাধিক সম্পর্ক একটি ডাটাবেস সবচেয়ে সাধারণ সম্পর্ক ডাটাবেস নকশা এবং ভাল নকশা হৃদয় হয়।

একটি শিক্ষক এবং তারা শেখান কোর্স মধ্যে সম্পর্ক বিবেচনা করুন। একজন শিক্ষক একাধিক কোর্স শিখতে পারে, কিন্তু অবশ্যই শিক্ষকের সাথে একই সম্পর্ক থাকবে না।

অতএব, শিক্ষক টেবিলে প্রতিটি রেকর্ডের জন্য, কোর্স টেবিলে অনেক রেকর্ড থাকতে পারে। এটি এক থেকে একাধিক সম্পর্ক: একাধিক পাঠ্যক্রমের একজন শিক্ষক।

কেন এক থেকে একাধিক সম্পর্ক প্রতিষ্ঠা গুরুত্বপূর্ণ

এক থেকে একাধিক সম্পর্কের প্রতিনিধিত্ব করার জন্য আপনাকে কমপক্ষে দুটি টেবিল প্রয়োজন। দেখা যাক কেন।

সম্ভবত আমরা একটি টেবিল তৈরি করেছি যাতে আমরা নাম এবং কোর্স শিখতে চাই। আমরা এটা ভালো ডিজাইন করতে পারে:

শিক্ষক এবং কোর্স
Teacher_IDশিক্ষকের নামপথ
Teacher_001কারমেনজীববিদ্যা
Teacher_002পুষ্পলতাবিশেষম্যাথ
Teacher_003হোর্হেইংরেজি

কারমেন দুই বা তার বেশি কোর্স শিখলে কী হবে? আমরা এই নকশা সঙ্গে দুটি অপশন আছে। আমরা শুধু কারমেনের বিদ্যমান রেকর্ডে এটি যোগ করতে পারতাম:

শিক্ষক এবং কোর্স
Teacher_IDশিক্ষক_Nameপথ
Teacher_001কারমেনজীববিজ্ঞান, গণিত
Teacher_002পুষ্পলতাবিশেষম্যাথ
Teacher_003হোর্হেইংরেজি

তবে, উপরে নকশাটি অসঙ্গতিপূর্ণ এবং পরে তথ্য সংলগ্ন, সম্পাদনা বা মুছে ফেলার সময় সমস্যা দেখা দিতে পারে।

এটা তথ্য অনুসন্ধান করা কঠিন করে তোলে। এই নকশাটি ডাটাবেসের স্বাভাবিকীকরণের প্রথম নীতি লঙ্ঘন করে, প্রথম সাধারণ ফর্ম (1NF), যা বলে যে প্রতিটি টেবিল কক্ষটিতে একক, একক বিচ্ছিন্ন তথ্য থাকা উচিত।

অন্য নকশা বিকল্পটি কেবল কারমেনের জন্য দ্বিতীয় রেকর্ড যুক্ত করতে পারে:

শিক্ষক এবং কোর্স
শিক্ষক_IDশিক্ষক_Nameপথ
Teacher_001কারমেনজীববিদ্যা
Teacher_001কারমেনম্যাথ
Teacher_002পুষ্পলতাবিশেষম্যাথ
Teacher_003হোর্হেইংরেজি

এটি 1NF এর মেনে চলে কিন্তু এখনও ডেটাবেস ডেটাবেস ডিজাইন করে কারণ এটি অবাঞ্ছিতভাবে উপস্থাপিত করে এবং অপ্রয়োজনীয়ভাবে একটি খুব বড় ডেটাবেস ফুটিয়ে তুলতে পারে। আরো গুরুত্বপূর্ণ, তথ্য অসঙ্গত হতে পারে। উদাহরণস্বরূপ, কারমেনের নাম পরিবর্তন হলে কী হবে? ডেটা দিয়ে যে কেউ কাজ করে তার নামটি একটি রেকর্ডে আপডেট করতে পারে এবং দ্বিতীয় রেকর্ডে আপডেট করতে ব্যর্থ হয়। এই নকশাটি দ্বিতীয় সাধারণ ফর্ম (2 এনএফ) লঙ্ঘন করে, যা 1NF অনুসরণ করে এবং একাধিক রেকর্ডগুলির অবাধ্যতাগুলিকে একাধিক সারণিতে পৃথক করে এবং তাদের মধ্যে সম্পর্ক তৈরি করে পৃথক রেকর্ডগুলি এড়ানো আবশ্যক।

কিভাবে একাধিক সম্পর্ক সঙ্গে একটি ডাটাবেস ডিজাইন করতে

শিক্ষক ও কোর্স টেবিলে এক থেকে একাধিক সম্পর্ক বাস্তবায়ন করার জন্য, আমরা টেবিলে দুইটি ভঙ্গ করি এবং একটি বিদেশী কী ব্যবহার করে তাদের লিঙ্ক করি।

এখানে, আমরা শিক্ষক টেবিলের কোর্স কলামটি সরিয়ে দিয়েছি:

শিক্ষক
শিক্ষক_IDশিক্ষক_Name
Teacher_001কারমেন
Teacher_002পুষ্পলতাবিশেষ
Teacher_003হোর্হে

এবং এখানে কোর্স টেবিল। নোট করুন যে তার বিদেশী কী, শিক্ষক_আইডি, শিক্ষক টেবিলে শিক্ষকের জন্য একটি কোর্স লিঙ্ক করে:

গতিপথ
Course_IDকোর্সের নামTeacher_ID
Course_001জীববিদ্যাTeacher_001
Course_002ম্যাথTeacher_001
Course_003ইংরেজিTeacher_003

আমরা একটি বিদেশী কী ব্যবহার করে শিক্ষক এবং কোর্স টেবিলের মধ্যে একটি সম্পর্ক উন্নত করেছি।

এটি আমাদের বলে যে জীববিজ্ঞান ও গণিত উভয়ই কারমেনের দ্বারা শেখানো হয় এবং জর্জ ইংরেজি শেখেন।

আমরা কীভাবে এই নকশাটি কোনও সম্ভাব্য অকার্যকরতাকে এড়িয়ে চলতে পারি তা দেখতে পারি, পৃথক শিক্ষকগুলিকে একাধিক কোর্স শেখানোর অনুমতি দেয় এবং এক থেকে একাধিক সম্পর্ক প্রয়োগ করে।

ডেটাবেসগুলি এক-থেকে-এক সম্পর্ক এবং অনেকগুলি থেকে অনেক সম্পর্ক বাস্তবায়ন করতে পারে।