একটি সম্পর্ক দুটি ডাটাবেস সারণীর মধ্যে স্থাপন করা হয় যখন একটি টেবিলে একটি বিদেশী কী থাকে যা অন্য টেবিলের প্রাথমিক কীকে উল্লেখ করে। এই সম্পর্কীয় ডাটাবেস শব্দ পিছনে মৌলিক ধারণা।
একটি সম্পর্ক প্রতিষ্ঠা কিভাবে একটি বিদেশী কী কাজ করে
এর প্রাথমিক এবং বিদেশী কী বুনিয়াদি পর্যালোচনা করা যাক। একটি প্রাথমিক কী টেবিলের প্রতিটি রেকর্ডকে স্বতন্ত্রভাবে চিহ্নিত করে। এটি একটি ধরনের প্রার্থী কী যা সাধারণত একটি টেবিলের প্রথম কলাম এবং এটি অদ্বিতীয় তা নিশ্চিত করতে ডাটাবেস দ্বারা স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে।
একটি বিদেশী কী অন্য প্রার্থী কী (প্রাথমিক কী নয়) অন্য টেবিলে ডেটাতে একটি রেকর্ড লিঙ্ক করার জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ, এই দুইটি টেবিল বিবেচনা করুন যা কোন শিক্ষককে কোন কোর্স শিক্ষা দেয় তা চিহ্নিত করে।
এখানে, কোর্স টেবিলের প্রাথমিক কী কোর্স_আইডি। তার বিদেশী কী শিক্ষক_আইডি:
Course_ID | কোর্সের নাম | Teacher_ID |
---|---|---|
Course_001 | জীববিদ্যা | Teacher_001 |
Course_002 | ম্যাথ | Teacher_001 |
Course_003 | ইংরেজি | Teacher_003 |
আপনি দেখতে পারেন যে পাঠ্যক্রমগুলিতে বিদেশী কী শিক্ষকদের একটি প্রাথমিক কী মিলছে:
Teacher_ID | শিক্ষকের নাম |
---|---|
Teacher_001 | কারমেন |
Teacher_002 | পুষ্পলতাবিশেষ |
Teacher_003 | হোর্হে |
আমরা বলতে পারি যে শিক্ষক_আইডি বিদেশি কীটি প্রতিষ্ঠা করতে সহায়তা করেছে সম্পর্ক কোর্স এবং শিক্ষক টেবিলের মধ্যে।
ডাটাবেস সম্পর্কের ধরন
বিদেশী কী, বা অন্যান্য প্রার্থী কী ব্যবহার করে, আপনি টেবিলের মধ্যে তিন ধরণের সম্পর্ক বাস্তবায়ন করতে পারেন:
একের পর এক: এই ধরনের সম্পর্ক সম্পর্কের প্রতিটি পাশে শুধুমাত্র একটি রেকর্ডের অনুমতি দেয়।
প্রাথমিক কীটি শুধুমাত্র একটি রেকর্ডের সাথে সম্পর্কিত - বা অন্য কোনও সারণিতে নয়। উদাহরণস্বরূপ, বিয়েতে, প্রতিটি পত্নীকে শুধুমাত্র এক অন্য স্ত্রী থাকে। এই ধরনের সম্পর্ক একটি একক টেবিলের মধ্যে প্রয়োগ করা যেতে পারে এবং তাই একটি বিদেশী কী ব্যবহার করে না।
এক থেকে অনেক: এক থেকে একাধিক সম্পর্ক অন্য টেবিলে একাধিক রেকর্ড সম্পর্কিত এক টেবিলে একক রেকর্ডকে অনুমোদন দেয়।
গ্রাহক এবং আদেশ টেবিল আছে এমন একটি ডাটাবেসের সাথে একটি ব্যবসা বিবেচনা করুন।
একটি একক গ্রাহক একাধিক আদেশ ক্রয় করতে পারেন, কিন্তু একটি একক ক্রম একাধিক গ্রাহকদের সাথে সংযুক্ত করা যাবে না। অতএব আদেশ টেবিলে একটি বিদেশী কী থাকবে যা গ্রাহকের টেবিলের প্রাথমিক কীটির সাথে মিলে যায়, যখন গ্রাহক টেবিলের অর্ডার টেবিলে কোনও বিদেশী কী থাকবে না।
অনেক সাথে অধিকের: এটি একটি জটিল সম্পর্ক যা একটি টেবিলের অনেক রেকর্ড অন্য টেবিলের অনেক রেকর্ডের সাথে লিঙ্ক করতে পারে। উদাহরণস্বরূপ, আমাদের ব্যবসার জন্য কেবল গ্রাহক এবং অর্ডার টেবিলের প্রয়োজন নেই, তবে সম্ভবত একটি পণ্য টেবিল প্রয়োজন।
আবার, গ্রাহক এবং আদেশ টেবিলের মধ্যে সম্পর্ক এক-একাধিক, তবে অর্ডার এবং পণ্য টেবিলের মধ্যে সম্পর্ক বিবেচনা করুন। একটি আদেশ একাধিক পণ্য থাকতে পারে, এবং একটি পণ্য একাধিক আদেশ লিঙ্ক করা যেতে পারে: অনেক গ্রাহক একই পণ্য কিছু ধারণকারী একটি আদেশ জমা দিতে পারে। এই ধরনের সম্পর্ক সর্বনিম্ন তিন টেবিল প্রয়োজন।
ডাটাবেস সম্পর্ক গুরুত্বপূর্ণ কি?
ডাটাবেস সারণির মধ্যে সামঞ্জস্যপূর্ণ সম্পর্ক স্থাপন করা ডেটা অখণ্ডতা নিশ্চিত করে, ডাটাবেস স্বাভাবিককরণে অবদান রাখে। উদাহরণস্বরূপ, যদি আমরা কোনো বিদেশী কী দ্বারা কোনও সারণীকে লিঙ্ক না করি এবং পরিবর্তে কোর্স এবং শিক্ষক টেবিলে কেবলমাত্র তথ্য সংযোজন করি, তাই যেমন:
Teacher_ID | শিক্ষকের নাম | পথ |
---|---|---|
Teacher_001 | কারমেন | জীববিজ্ঞান, গণিত |
Teacher_002 | পুষ্পলতাবিশেষ | ম্যাথ |
Teacher_003 | হোর্হে | ইংরেজি |
এই নকশাটি নমনীয় এবং ডাটাবেস স্বাভাবিককরণের প্রথম নীতি লঙ্ঘন করে, প্রথম সাধারণ ফর্ম (1NF), যা বলে যে প্রতিটি টেবিল কক্ষটিতে একক, একক বিচ্ছিন্ন তথ্য থাকা উচিত।
অথবা সম্ভবত আমরা 1NF প্রয়োগ করার জন্য কারমেনের জন্য কেবল দ্বিতীয় রেকর্ড যোগ করার সিদ্ধান্ত নিয়েছি:
Teacher_ID | শিক্ষকের নাম | পথ |
---|---|---|
Teacher_001 | কারমেন | জীববিদ্যা |
Teacher_001 | কারমেন | ম্যাথ |
Teacher_002 | পুষ্পলতাবিশেষ | ম্যাথ |
Teacher_003 | হোর্হে | ইংরেজি |
এটি এখনও একটি দুর্বল নকশা, অপ্রয়োজনীয় অনুলিপি এবং কি বলা হয় তথ্য সন্নিবেশ বিন্দু , যার মানে এটি অসঙ্গতিপূর্ণ তথ্য অবদান রাখতে পারে।
উদাহরণস্বরূপ, যদি শিক্ষকের একাধিক রেকর্ড থাকে, তাহলে কিছু ডেটা সম্পাদনা করা দরকার তবে ডেটা সম্পাদনা সম্পাদনকারী ব্যক্তিটি উপলব্ধি করে না যে একাধিক রেকর্ড বিদ্যমান? টেবিলটি একই ব্যক্তির জন্য ভিন্ন তথ্য ধারণ করবে, এটি সনাক্ত করার বা এটি এড়াতে কোনও পরিষ্কার উপায় ছাড়াই।
এই টেবিলে দুটি টেবিলে ভর্তি করা, শিক্ষক এবং কোর্সগুলি (উপরে দৃশ্যমান হিসাবে), তথ্যগুলির মধ্যে সঠিক সম্পর্ক তৈরি করে এবং তাই ডেটা সামঞ্জস্য এবং সঠিকতা নিশ্চিত করতে সহায়তা করে।