ডাটাবেস সম্পর্ক

ডাটাবেস সম্পর্ক সকল সম্পর্কীয় ডাটাবেসের ব্যাকবোন

একটি টেবিলের অন্য টেবিলের প্রাথমিক কী রেফারেন্স একটি বিদেশী কী আছে যখন দুটি ডাটাবেস টেবিলের মধ্যে একটি সম্পর্ক স্থাপন করা হয় এই রিলেশনাল ডাটাবেস শব্দ পিছনে মৌলিক ধারণা।

কিভাবে একটি বিদেশী কী একটি সম্পর্ক প্রতিষ্ঠার কাজ

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

একটি বিদেশী কী আরেকটি প্রার্থী কী (প্রাথমিক কী নয়) অন্য একটি টেবিলে তথ্য রেকর্ড করার জন্য ব্যবহার করা হয়।

উদাহরণস্বরূপ, এই দুটি টেবিলগুলি বিবেচনা করুন যা চিহ্নিত করে কোন কোর্সটি কোন কোর্সটি শিখবে।

এখানে, কোর্সের সারণির প্রাথমিক কী হল Course_ID। তার বিদেশী কী হল Teacher_ID:

গতিপথ
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_ID শিক্ষকের নাম পথ
Teacher_001 কারমেন জীববিজ্ঞান, গণিত
Teacher_002 পুষ্পলতাবিশেষ ম্যাথ
Teacher_003 হোর্হে ইংরেজি

এই নকশাটি অনমনীয় এবং ডাটাবেস স্বাভাবিকীকরণের প্রথম নীতি, প্রথম নরমাল ফর্ম (1 এনএফ), যা বলে যে প্রতিটি টেবিলের সেল একটি একক, আলাদা আলাদা তথ্য থাকা উচিত।

অথবা সম্ভবত আমরা কারমেনের জন্য একটি দ্বিতীয় রেকর্ড যোগ করার সিদ্ধান্ত নিয়েছে, 1NF প্রয়োগ করার জন্য:

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

এটি এখনও একটি দুর্বল ডিজাইন, অপ্রয়োজনীয় পুনরাবৃত্তি প্রবর্তন এবং যা ডেটা সন্নিবেশ ত্রুটিগুলি বলা হয়, যা কেবল অসঙ্গত ডেটাতে অবদান রাখতে পারে।

উদাহরণস্বরূপ, যদি কোনো শিক্ষকের একাধিক রেকর্ড থাকে, তবে কিছু তথ্য সম্পাদিত হওয়া দরকার কি না, তবে ডাটা সম্পাদনকারী ব্যক্তি কি উপলব্ধি করেন না যে একাধিক রেকর্ড বিদ্যমান? টেবিলটি তখন একই ব্যক্তির জন্য বিভিন্ন ডেটা ধারণ করবে, এটির সনাক্ত বা তার এড়াতে কোনও পরিষ্কার উপায় ছাড়াই।

এই টেবিলে দুটি টেবিলে বিভক্ত করা, শিক্ষক ও পাঠ্যক্রম (উপরের দৃশ্যমান), তথ্যগুলির মধ্যে সঠিক সম্পর্ক তৈরি করে এবং এগুলি যাতে ডেটা সামঞ্জস্য এবং নির্ভুলতা নিশ্চিত করতে সহায়তা করে।