একটি ডাটাবেস সম্পর্ক কি?

সুচিপত্র:

একটি ডাটাবেস সম্পর্ক কি?
একটি ডাটাবেস সম্পর্ক কি?
Anonim

একটি সম্পর্ক দুটি ডাটাবেস টেবিলের মধ্যে প্রতিষ্ঠিত হয় যখন একটি টেবিল একটি বিদেশী কী ব্যবহার করে যা অন্য টেবিলের প্রাথমিক কী উল্লেখ করে। এটি রিলেশনাল ডাটাবেস শব্দটির পিছনে মূল ধারণা৷

যেভাবে একটি বিদেশী কী একটি সম্পর্ক স্থাপনে কাজ করে

একটি প্রাথমিক কী টেবিলের প্রতিটি রেকর্ডকে স্বতন্ত্রভাবে সনাক্ত করে। এটি এক ধরণের প্রার্থী কী যা সাধারণত একটি টেবিলের প্রথম কলাম এবং এটি স্বয়ংক্রিয়ভাবে ডাটাবেস দ্বারা তৈরি করা যেতে পারে তা নিশ্চিত করতে এটি অনন্য। একটি বিদেশী কী হল অন্য একটি প্রার্থী কী (প্রাথমিক কী নয়) যা অন্য টেবিলের ডেটার সাথে একটি রেকর্ড লিঙ্ক করতে ব্যবহৃত হয়৷

উদাহরণস্বরূপ, এই দুটি টেবিল বিবেচনা করুন যা সনাক্ত করে যে কোন শিক্ষক কোন কোর্সটি শেখায়। এখানে, কোর্স টেবিলের প্রাথমিক কী হল Course_ID। এর বিদেশী কী হল শিক্ষক_আইডি:

কোর্স_আইডি কোর্সের_নাম শিক্ষক_আইডি
কোর্স_001 জীববিদ্যা শিক্ষক_001
কোর্স_002 গণিত শিক্ষক_002
কোর্স_003 ইংরেজি শিক্ষক_003

আপনি দেখতে পাচ্ছেন যে কোর্সের বিদেশী কী শিক্ষকদের প্রাথমিক কীর সাথে মিলে যায়:

শিক্ষক_আইডি শিক্ষকের_নাম
শিক্ষক_001 কারমেন
শিক্ষক_002 ভেরোনিকা
শিক্ষক_003 জর্জ

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

Image
Image

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

বিদেশী কী, বা অন্যান্য প্রার্থী কী ব্যবহার করে, আপনি টেবিলের মধ্যে তিন ধরনের সম্পর্ক বাস্তবায়ন করতে পারেন:

ওয়ান টু ওয়ান

এই ধরনের সম্পর্ক সম্পর্কের প্রতিটি দিকে শুধুমাত্র একটি রেকর্ডের অনুমতি দেয়। প্রাথমিক কী অন্য টেবিলে শুধুমাত্র একটি রেকর্ড (বা কোনোটিই নয়) সম্পর্কিত। উদাহরণস্বরূপ, একটি বিবাহে, প্রতিটি পত্নীর কেবল একজন অন্য পত্নী থাকে। এই ধরনের সম্পর্ক একটি একক টেবিলে প্রয়োগ করা যেতে পারে এবং তাই একটি বিদেশী কী ব্যবহার করে না।

এক থেকে বহু

এক থেকে একাধিক সম্পর্ক একটি টেবিলের একটি রেকর্ডকে অন্য টেবিলের একাধিক রেকর্ডের সাথে সম্পর্কিত হতে দেয়। একটি ডাটাবেস সহ একটি ব্যবসা বিবেচনা করুন যেখানে গ্রাহক এবং অর্ডার টেবিল রয়েছে৷

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

অনেক থেকে অনেক

এটি একটি জটিল সম্পর্ক যেখানে একটি টেবিলের অনেক রেকর্ড অন্য টেবিলের অনেক রেকর্ডের সাথে লিঙ্ক করতে পারে। উদাহরণস্বরূপ, আমাদের ব্যবসার সম্ভবত গ্রাহক এবং অর্ডার টেবিলের প্রয়োজন এবং সম্ভবত একটি পণ্য টেবিলেরও প্রয়োজন৷

আবার, গ্রাহক এবং অর্ডার টেবিলের মধ্যে সম্পর্ক এক-থেকে-অনেক, তবে অর্ডার এবং পণ্য টেবিলের মধ্যে সম্পর্ক বিবেচনা করুন। একটি অর্ডারে একাধিক পণ্য থাকতে পারে এবং একটি পণ্য একাধিক অর্ডারের সাথে লিঙ্ক করা যেতে পারে কারণ অনেক গ্রাহক একটি অর্ডার জমা দিতে পারে যাতে একই পণ্যগুলির কিছু রয়েছে। এই ধরনের সম্পর্কের জন্য ন্যূনতম তিনটি টেবিলের প্রয়োজন৷

ডাটাবেস সম্পর্ক কেন গুরুত্বপূর্ণ?

ডাটাবেস টেবিলের মধ্যে সামঞ্জস্যপূর্ণ সম্পর্ক স্থাপন করা ডেটা অখণ্ডতা নিশ্চিত করতে সাহায্য করে, ডাটাবেস স্বাভাবিককরণে অবদান রাখে। উদাহরণস্বরূপ, যদি আমরা একটি বিদেশী কী-এর মাধ্যমে কোনো টেবিল লিঙ্ক না করি এবং পরিবর্তে কোর্স এবং শিক্ষক টেবিলের ডেটা একত্রিত করি, যেমন:

শিক্ষক_আইডি শিক্ষকের_নাম কোর্স
শিক্ষক_001 কারমেন জীববিদ্যা, গণিত
শিক্ষক_002 ভেরোনিকা গণিত
শিক্ষক_003 জর্জ ইংরেজি

এই নকশাটি অনমনীয় এবং ডাটাবেস স্বাভাবিকীকরণের প্রথম নীতি লঙ্ঘন করে, প্রথম সাধারণ ফর্ম, যা বলে যে প্রতিটি টেবিল কক্ষে একটি একক, বিচ্ছিন্ন ডেটা থাকা উচিত।

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

শিক্ষক_আইডি শিক্ষকের_নাম কোর্স
শিক্ষক_001 কারমেন জীববিদ্যা
শিক্ষক_001 কারমেন গণিত
শিক্ষক_002 ভেরোনিকা গণিত
শিক্ষক_003 জর্জ ইংরেজি

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

এই সারণীটিকে দুটি টেবিলে বিভক্ত করা, শিক্ষক এবং পাঠ্যক্রম, ডেটার মধ্যে সঠিক সম্পর্ক তৈরি করে এবং তাই ডেটার সামঞ্জস্য এবং নির্ভুলতা নিশ্চিত করতে সাহায্য করে৷

প্রস্তাবিত: