ডাটাবেস শব্দ "রিলেশনাল" বা "সম্পর্ক" এমন ভাবে বর্ণনা করে যে টেবিলের ডেটা সংযুক্ত রয়েছে।
ডেটাবেস বিশ্বের নতুনদের প্রায়ই একটি কঠিন সময় একটি ডাটাবেস এবং একটি স্প্রেডশীট মধ্যে পার্থক্য দেখে। তারা তথ্য টেবিলের দেখতে এবং স্বীকার করে যে ডেটাবেসগুলি আপনাকে নতুন উপায়ে সংগঠিত এবং কোয়েরি করার অনুমতি দেয়, তবে রিলেশেশনাল ডেটাবেস প্রযুক্তিটি তার নাম দিয়ে দেয় এমন তথ্যগুলির মধ্যে সম্পর্কের তাত্পর্য বোঝা যায় না।
সম্পর্ক আপনাকে শক্তিশালী উপায়ে বিভিন্ন ডাটাবেস সারণির মধ্যে সংযোগ বর্ণনা করতে দেয়। এই সম্পর্কগুলি যোগদান হিসাবে পরিচিত শক্তিশালী ক্রস-টেবিল প্রশ্নগুলি সঞ্চালন করতে leveraged করা যাবে।
ডাটাবেসের সম্পর্কের প্রকার
তিনটি ভিন্ন ধরনের ডাটাবেস সম্পর্ক আছে, প্রতিটি টেবিলের সারির সংখ্যা অনুযায়ী যার নাম সম্পর্কযুক্ত হতে পারে। এই তিনটির দুটি প্রকারের দুটি টেবিলের মধ্যে বিদ্যমান।
- প্রথম টেবিলের প্রতিটি এন্ট্রি এক এবং অন্য এক টেবিলে সমান, এক এক থেকে এক সম্পর্ক ঘটতে যখন। এক-টু-এক সম্পর্ক খুব কমই ব্যবহার করা হয় কারণ এটি কেবলমাত্র একক টেবিলের সমস্ত তথ্যকে সহজ করে দেয়। কিছু ডাটাবেস ডিজাইনার এই টেবিলের তৈরি করে এই সম্পর্কের সুবিধা গ্রহণ করেন যা অন্য টেবিলের ডাটাগুলির উপসেট ধারণ করে।
- এক-থেকে-অনেকগুলি সম্পর্ক হল সবচেয়ে সাধারণ ধরনের ডাটাবেস সম্পর্ক সারণি A- র প্রতিটি রেকর্ড যখন সারণি B- তে এক বা একাধিক রেকর্ডের সাথে মিলিত হয়, তখন সারণি বি এর প্রতিটি রেকর্ড সারণি এএ একটি রেকর্ডের সাথে যুক্ত হয়। উদাহরণস্বরূপ, একটি প্রাথমিক স্কুলে শিক্ষক টেবিল এবং একটি ছাত্রছাত্রীর মধ্যে সম্পর্ক ডাটাবেস সম্ভবত এক থেকে অনেক সম্পর্ক হতে পারে, কারণ প্রতিটি ছাত্র শুধুমাত্র একটি শিক্ষক আছে, কিন্তু প্রতিটি শিক্ষক একাধিক ছাত্র আছে। এই এক-থেকে-অনেক নকশা ডুপ্লিকেটেড ডেটাগুলিকে পরিতৃপ্ত করতে সহায়তা করে।
- সারণি A- র প্রতিটি রেকর্ড সারণি B- এর এক বা একাধিক রেকর্ডের সাথে মিলিত হয় এবং সারণি B- এর প্রতিটি রেকর্ড সারণি A- এর এক বা একাধিক রেকর্ডের সাথে মিলিত হয়। উদাহরণস্বরূপ, একজন শিক্ষক এবং একটি কোর্সের মধ্যে সম্পর্ক টেবিল সম্ভবত অনেক হতে হবে কারণ প্রতিটি শিক্ষক একাধিক কোর্স নির্দেশ করতে পারে, এবং প্রতিটি কোর্সের একাধিক প্রশিক্ষক থাকতে পারে।
স্ব-রেফারেন্সিং সম্পর্ক: একটি বিশেষ কেস
স্বয়ং-রেফারেন্সিং সম্পর্কগুলি তখন ঘটে যখন শুধুমাত্র এক টেবিল জড়িত থাকে একটি সাধারণ উদাহরণ হল একটি কর্মচারী টেবিল যা প্রতিটি কর্মচারীর সুপারভাইজার সম্পর্কে তথ্য রয়েছে। প্রতিটি সুপারভাইজার একটি কর্মচারীও এবং তার নিজের সুপারভাইজারও রয়েছে। এই ক্ষেত্রে, এক-থেকে-অনেক স্ব-রেফারেন্সিং সম্পর্ক রয়েছে, যেহেতু প্রত্যেক কর্মচারীর এক সুপারভাইজার থাকে, কিন্তু প্রতিটি সুপারভাইজারের একাধিক কর্মচারী থাকতে পারে
বিদেশী কীগুলির সাথে সম্পর্ক তৈরি করা
আপনি একটি বিদেশী কী নির্দিষ্ট করে টেবিলগুলির মধ্যে সম্পর্ক তৈরি করেন। এই কী রিলেশনাল ডেটাবেসকে কীভাবে টেবিলের সাথে সম্পর্কযুক্ত বলে। অনেক ক্ষেত্রে, টেবিল A- তে একটি কলাম প্রাথমিক কীগুলি যা সারণি বি থেকে উল্লিখিত হয়।
আবার শিক্ষক ও ছাত্র টেবিলের উদাহরণ বিবেচনা করুন। শিক্ষক টেবিল কেবল একটি আইডি, একটি নাম, এবং একটি কোর্স কলাম রয়েছে:
InstructorID | শিক্ষকের নাম | পথ |
---|---|---|
২001 | জন ডো | ইংরেজি |
002 | জেন Schmoe | ম্যাথ |
ছাত্র টেবিলে একটি আইডি, নাম এবং একটি বিদেশী কী কলাম রয়েছে:
শিক্ষার্থী আইডি | শিক্ষার্থীর নাম | Teacher_FK |
---|---|---|
0200 | লোয়েল স্মিথ | ২001 |
0201 | ব্রায়ান সংক্ষিপ্ত | ২001 |
0202 | কর্কি মেন্ডেজ | 002 |
0203 | মনিকা জোন্স | ২001 |
শিক্ষার্থীদের টেবিলের কলাম Teacher_FK শিক্ষক টেবিলে একজন প্রশিক্ষকের প্রাথমিক কী মান উল্লেখ করে।
প্রাথমিকভাবে প্রাথমিক কী বা বিদেশী কী কলাম সনাক্ত করার জন্য ডাটাবেস ডিজাইনার কলাম নামের "PK" বা "FK" ব্যবহার করবে।
লক্ষ্য করুন যে এই দুটি টেবিলগুলি শিক্ষক এবং শিক্ষার্থীদের মধ্যে এক-থেকে-বহু সম্পর্ককে ব্যাখ্যা করে।
সম্পর্ক এবং অভিব্যক্তিগত সততা
আপনি একটি টেবিলের জন্য একটি বিদেশী কী যোগ করার পরে, আপনি তারপর দুটি টেবিলের মধ্যে referential অখণ্ডতা enforces একটি ডাটাবেস সীমা তৈরি করতে পারেন এটি নিশ্চিত করে যে সারণির মধ্যে সম্পর্কগুলি সামঞ্জস্যপূর্ণ। যখন একটি টেবিল অন্য টেবিলের জন্য একটি বিদেশী কী আছে, তখন referential অখণ্ডতা ধারণা টেবিল বি কোন বিদেশী কী মান সারণি এ একটি বিদ্যমান রেকর্ড পড়ুন আবশ্যক।
সম্পর্ক বাস্তবায়ন
আপনার ডাটাবেসের উপর নির্ভর করে, আপনি বিভিন্ন উপায়ে টেবিলগুলির মধ্যে সম্পর্কগুলি প্রয়োগ করেন। মাইক্রোসফট অ্যাক্সেস একটি উইজার্ড প্রদান করে যা আপনাকে সহজেই টেবিলের সাথে সংযুক্ত করতে এবং রেফারেন্সাল অখণ্ডতা প্রয়োগ করতে দেয়।
যদি আপনি এসকিউএল সরাসরি লিখিত থাকেন, তাহলে আপনি প্রথম টেবিলে শিক্ষক তৈরি করবেন, যা প্রাথমিক কী হতে একটি আইডি কলাম ঘোষণা করবে:
টেবিল শিক্ষক তৈরি করুন (
নির্দেশিকা INT AUTO_INCREMENT প্রাথমিক কী,
শিক্ষক_নাম VARCHAR (100),
কোর্স VARCHAR (100)
);
যখন আপনি শিক্ষার্থীদের টেবিলের তৈরি করেন, তখন আপনি Teacher_FK কলামকে শিক্ষকের টেবিলে প্রশিক্ষক নির্দেশক কলামের একটি বিদেশী কী বলে ঘোষণা করেন:
টেবিল ছাত্র তৈরি করুন (
StudentID INT AUTO_INCREMENT প্রাথমিক কী,
Student_Name VARCHAR (100), শিক্ষক_এক্সক্লুসিভ,
বিদেশী কী (Teacher_FK) রেফারেন্স শিক্ষক (নির্দেশক))
);
টেবিল যোগদান সম্পর্ক ব্যবহার
একবার আপনি আপনার ডাটাবেসে এক বা একাধিক সম্পর্ক তৈরি করেছেন, আপনি একাধিক টেবিলের তথ্য একত্রিত করতে এসকিউএল JOIN প্রশ্ন ব্যবহার করে তাদের ক্ষমতা উপভোগ করতে পারেন। যোগদানের সবচেয়ে সাধারণ প্রকার হল একটি এসকিউএল ইননার জোন, অথবা একটি সাধারণ যোগদান। এই ধরনের যোগদানটি সমস্ত রেকর্ড প্রদান করে যা একাধিক টেবিলের মধ্যে যোগদানের শর্ত পূরণ করে। উদাহরণস্বরূপ, এই JOIN শর্তটি Student_Name, Teacher_Name, এবং পাঠ্যক্রম পাঠাবে যেখানে শিক্ষার্থীদের টেবিলে বিদেশী কী শিক্ষকের টেবিলে প্রাথমিক কী মেলে:
ছাত্রছাত্রীরা নির্বাচন করুন। স্টুডেন্ট_নাম, শিক্ষক। টিচার_নাম, শিক্ষক
ছাত্রদের কাছ থেকে
অন্তর শিক্ষক যোগদান
ছাত্রদের উপর। Teacher_FK = শিক্ষক। পরিচালক;
এই বিবৃতিটি এমন একটি টেবিল তৈরি করে যেমনটি:
এসকিউএল যোগদান বিবৃতি থেকে ফিরে সারণী
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian শর্টহোজো ডোয়ানিযার্বেজেন্ডি মেন্ডেজেজেন শেময়ম্যাথমোনিকা জোন্সজোনে ডো ইংরেজী