ডেটাবেস শব্দ "সম্পর্কযুক্ত" বা "সম্পর্ক" টেবিলের তথ্য সংযুক্ত করা হয়েছে এমন ভাবে বর্ণনা করে।
ডেটাবেসের বিশ্বে নতুনদের কাছে প্রায়ই একটি ডাটাবেস এবং একটি স্প্রেডশীটের মধ্যে পার্থক্য দেখে কঠিন সময় থাকে। তারা তথ্যগুলির সারণী দেখে এবং ডেটাবেসগুলি আপনাকে নতুন উপায়ে ডেটা সংগঠিত এবং ক্যোয়ারী করার অনুমতি দেয় তা স্বীকার করে, তবে তা গুরুত্বের সাথে বুঝতে ব্যর্থ হয় তথ্য মধ্যে সম্পর্ক যে relational ডাটাবেস প্রযুক্তি তার নাম দিতে।
সম্পর্ক আপনাকে শক্তিশালী উপায়ে বিভিন্ন ডাটাবেস সারণির মধ্যে সংযোগ বর্ণনা করার অনুমতি দেয়। এই সম্পর্কগুলি তারপর যোগদান হিসাবে পরিচিত শক্তিশালী ক্রস-টেবিল প্রশ্নের সঞ্চালন করতে leveraged করা যেতে পারে।
ডাটাবেস সম্পর্কের ধরন
তিনটি ভিন্ন ধরনের ডাটাবেস সম্পর্ক রয়েছে, প্রতিটি নামগুলি সারণী সারির সংখ্যা অনুসারে সম্পর্কযুক্ত হতে পারে। এই তিনটি সম্পর্কের ধরন প্রতিটি দুটি টেবিলের মধ্যে বিদ্যমান।
- এক-এক সম্পর্ক যখন প্রথম টেবিলে প্রতিটি এন্ট্রিটি একটি থাকে, এবং কেবলমাত্র এক, দ্বিতীয় টেবিলের সমান। এক-থেকে-এক সম্পর্কগুলি খুব কমই ব্যবহৃত হয় কারণ এটি কেবলমাত্র একক টেবিলে সমস্ত তথ্য সরানোর জন্য আরও কার্যকর। কিছু ডাটাবেস ডিজাইনার এই টেবিলের তৈরি করে এই সম্পর্কের সদ্ব্যবহার করে যা অন্য টেবিলে ডেটা উপসেট ধারণ করে।
- এক থেকে অনেক সম্পর্ক ডাটাবেস সম্পর্ক সবচেয়ে সাধারণ ধরনের। টেবিলে প্রতিটি রেকর্ড টেবিল বিতে এক বা একাধিক রেকর্ডের সাথে মিলিত হয়, তবে টেবিল বি-তে প্রতিটি রেকর্ড টেবিলের একটিতে শুধুমাত্র একটি রেকর্ডের সাথে মিলিত হয়। উদাহরণস্বরূপ, শিক্ষক টেবিলে এবং প্রাথমিক বিদ্যালয়ের শিক্ষার্থীদের টেবিলে সম্পর্ক ডাটাবেস সম্ভবত এক থেকে একাধিক সম্পর্ক হতে পারে, কারণ প্রত্যেক শিক্ষার্থীর মধ্যে কেবল একজন শিক্ষক আছে, তবে প্রতিটি শিক্ষকের একাধিক শিক্ষার্থী রয়েছে। এই এক থেকে অনেক নকশা সদৃশ তথ্য নিষ্কাশন সাহায্য করে।
- অনেক থেকে অনেক সম্পর্ক টেবিলে প্রতিটি রেকর্ড টেবিল বিতে এক বা একাধিক রেকর্ডের সাথে মিলিত হয় এবং টেবিল বি-তে প্রতিটি রেকর্ড টেবিলে একটি বা একাধিক রেকর্ডের সাথে মিলিত হয়। উদাহরণস্বরূপ, শিক্ষক এবং একটি কোর্স টেবিলের মধ্যে সম্পর্ক সম্ভবত অনেক- অনেকে কারণ প্রতিটি শিক্ষক একাধিক কোর্সকে নির্দেশ দিতে পারে এবং প্রতিটি কোর্সে একাধিক প্রশিক্ষক থাকতে পারে।
স্ব-রেফারেন্সিং সম্পর্ক: একটি বিশেষ কেস
আত্ম রেফারেন্সিং সম্পর্ক জড়িত শুধুমাত্র একটি টেবিল আছে যখন ঘটবে। একটি সাধারণ উদাহরণ একটি কর্মচারী টেবিল যা প্রত্যেক কর্মচারীর সুপারভাইজার সম্পর্কে তথ্য ধারণ করে। প্রতিটি সুপারভাইজার এছাড়াও একটি কর্মচারী এবং তার নিজস্ব সুপারভাইজার আছে। এই ক্ষেত্রে, একাধিক স্ব-রেফারেন্সিং সম্পর্ক রয়েছে, কারন প্রত্যেক কর্মচারীর একজন সুপারভাইজার আছে, কিন্তু প্রতিটি সুপারভাইজারের একাধিক কর্মচারী থাকতে পারে।
বিদেশী কী সঙ্গে সম্পর্ক তৈরি করা
আপনি একটি বিদেশী কী নির্দিষ্ট করে টেবিলের মধ্যে সম্পর্ক তৈরি। এই কী সম্পর্কযুক্ত ডাটাবেস কিভাবে টেবিল সম্পর্কিত হয় বলে। অনেক ক্ষেত্রে, টেবিলের একটি কলামটিতে প্রাথমিক কী রয়েছে যা টেবিল বি থেকে উল্লেখ করা হয়।
আবার শিক্ষক ও শিক্ষার্থীদের টেবিলের উদাহরণ বিবেচনা করুন। শিক্ষক টেবিলে শুধু একটি আইডি, একটি নাম এবং একটি কোর্স কলাম রয়েছে:
InstructorID | শিক্ষকের নাম | পথ |
---|---|---|
001 | জন ডো | ইংরেজি |
002 | জেন শ্মো | ম্যাথ |
শিক্ষার্থীদের টেবিলের একটি আইডি, নাম, এবং একটি বিদেশী কী কলাম রয়েছে:
শিক্ষার্থী আইডি | শিক্ষার্থীর নাম | Teacher_FK |
---|---|---|
0200 | লোভেল স্মিথ | 001 |
0201 | ব্রায়ান সংক্ষিপ্ত | 001 |
0202 | Corky Mendez | 002 |
0203 | মনিকা জোন্স | 001 |
কলাম Teacher_FK ছাত্র টেবিলে শিক্ষক টেবিলে শিক্ষকের প্রাথমিক কী মূল্য উল্লেখ করে।
প্রায়শই, ডেটাবেস ডিজাইনার কলামের নামের মধ্যে "পিকে" বা "FK" ব্যবহার করে সহজেই কোন প্রাথমিক কী বা বিদেশী কী কলাম সনাক্ত করতে পারে।
উল্লেখ্য যে এই দুটি টেবিল শিক্ষক ও শিক্ষার্থীদের মধ্যে এক থেকে একাধিক সম্পর্ককে চিত্রিত করে।
সম্পর্ক এবং রেফারেন্সিয়াল সততা
একবার আপনি একটি টেবিলে একটি বিদেশী কী যুক্ত করলে, আপনি তারপরে একটি ডাটাবেস সীমাবদ্ধতা তৈরি করতে পারেন যা দুটি সারণির মধ্যে রেফারেন্সিয়াল অখণ্ডতা প্রয়োগ করে। এই টেবিলের মধ্যে সম্পর্ক সামঞ্জস্যপূর্ণ থাকা নিশ্চিত করে। যখন একটি টেবিলের অন্য টেবিলে একটি বিদেশী কী থাকে, রেফারেন্সিয়াল অখণ্ডতা ধারণাটি বলে যে টেবিল বিতে যেকোনও বিদেশী কী মান অবশ্যই টেবিলের একটি বিদ্যমান রেকর্ডটিকে বোঝায়।
সম্পর্ক বাস্তবায়ন
আপনার ডাটাবেসের উপর নির্ভর করে, আপনি বিভিন্ন উপায়ে সারণির মধ্যে সম্পর্ক বাস্তবায়ন। মাইক্রোসফ্ট অ্যাক্সেস একটি উইজার্ড সরবরাহ করে যা সহজেই আপনাকে সারণিগুলি লিঙ্ক করতে এবং রেফারেন্সিয়াল সততা প্রয়োগ করতেও সহায়তা করে।
আপনি যদি সরাসরি এসকিউএল লেখেন তবে আপনি প্রথমে টেবিল শিক্ষক তৈরি করবেন, আইডি কলামটি প্রাথমিক কী হতে ঘোষণা করবেন:
টেবিল শিক্ষক তৈরি করুন (
InstructorID int অটোমেশন প্রাথমিক কী, শিক্ষক_নাম VARCHAR (100) কোর্স VARCHAR (100));
আপনি যখন ছাত্র টেবিল তৈরি করেন, তখন আপনি শিক্ষকের টেবিলের প্রশিক্ষক কলামের উল্লেখকারী বিদেশী কী হিসাবে শিক্ষক_এফকে কলাম ঘোষণা করেন:
টেবিল ছাত্র তৈরি করুন ( StudentID int অটোকেশনের প্রাথমিক কী, ছাত্র_নাম ভার্চার (100), শিক্ষক_এফকে ইন্ট, বিদেশী কী (শিক্ষক_এফকে) রেফারেন্স শিক্ষক (প্রশিক্ষক)))
;
টেবিল যোগদান সম্পর্ক ব্যবহার করে
একবার আপনি আপনার ডেটাবেসে এক বা একাধিক সম্পর্ক তৈরি করলে, আপনি একাধিক সারণিতে তথ্য একত্রিত করতে এসকিউএল JOIN প্রশ্নগুলি ব্যবহার করে তাদের শক্তিটি উপভোগ করতে পারেন। যোগদান সবচেয়ে সাধারণ ধরনের একটি এসকিউএল ইনner JOIN, অথবা একটি সহজ যোগদান। যোগদান এই ধরনের একাধিক টেবিল থেকে যোগদান শর্ত পূরণ যে সব রেকর্ড ফেরত।উদাহরণস্বরূপ, এই JOIN শর্তটি Student_Name, Teacher_Name, এবং কোর্সটি পাঠাবে যেখানে শিক্ষার্থীদের টেবিলের বিদেশী কী শিক্ষক টেবিলে প্রাথমিক কী মিলছে:
শিক্ষার্থী নির্বাচন করুন। স্টুডেন্ট_নাম, শিক্ষক। শিক্ষকের নাম, শিক্ষক.কোর্সছাত্রদের কাছ থেকেইননার যোগদান শিক্ষকছাত্রদের উপর। TECHAR_FK = শিক্ষক। ইন্সট্রাক্টর আইডি;
এই বিবৃতিটি এরকম একটি টেবিল তৈরি করে:
এসকিউএল থেকে বিবৃতি যোগদান বিবৃতি যোগদান
ছাত্র_নাম টিচার_নাম CourseLowell স্মিথ জোহান ডো ইংরাজী ব্রিটেন শর্টজাহান ডয়ে ইংল্যাণ্ড কর্কী মেন্ডেজজেন SchmoeMathMonica জোন্স জন ডোইং