ডাটাবেসের সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলির মধ্যে একটি হল ডাটাবেস টেবিলের মধ্যে সম্পর্ক তৈরি করা। এই সম্পর্কগুলি একাধিক সারণিতে সংরক্ষিত ডেটা লিঙ্ক করার একটি পদ্ধতি প্রদান করে এবং এটি একটি কার্যকরী ফ্যাশন এ পুনরুদ্ধার করে। দুটি সারণির মধ্যে একটি লিঙ্ক তৈরি করার জন্য, আপনি একটি টেবিলে একটি বিদেশী কী নির্দিষ্ট করতে হবে যা অন্য কলামের একটি কলাম উল্লেখ করে।
ডাটাবেস টেবিল এবং সম্পর্ক
আপনি ইতিমধ্যেই জানতে পারেন যে ডেটাবেস কেবলমাত্র একটি সারণির ধারাবাহিকতা, আপনি স্প্রেডশীট প্রোগ্রামে যেমন মাইক্রোসফ্ট এক্সেল যেমন ব্যবহার করছেন তেমন একই রকম। আসলে, আপনি একটি এক্সেল স্প্রেডশীট একটি ডাটাবেস রূপান্তর করতে পারেন। যেখানে ডাটাবেসগুলি স্প্রেডশীট থেকে বিচ্ছিন্ন হয়, তা হল, যখন টেবিলগুলির মধ্যে শক্তিশালী সম্পর্ক গড়ে তুলতে আসে
উদাহরণস্বরূপ বিবেচনা করুন, একটি ডাটাবেস একটি কোম্পানী দ্বারা ব্যবহৃত মানব সম্পদ তথ্য ট্র্যাক। এই ডাটাবেসের কর্মচারী নামক একটি টেবিলে কোম্পানীর কর্মীদের প্রতিটি সদস্যের জন্য নিম্নোক্ত তথ্য রয়েছে:
- কর্মচারী আইডি
- নামের প্রথম অংশ
- নামের শেষাংশ
- অফিসে ফোন
- বাসার ফোন
- PositionID
এই উদাহরণে, কর্মচারী আইডি একটি অনন্য উত্পন্ন পূর্ণসংখ্যা যা প্রতিটি কর্মচারীর জন্য নির্ধারিত হয় যখন তারা ডাটাবেসে যুক্ত হয়। অবস্থান আইডি হল একটি চাকরি কোড যা কোম্পানির কর্মচারীর অবস্থানকে উল্লেখ করার জন্য ব্যবহৃত হয়। এই প্রকল্পে, একজন কর্মীর শুধুমাত্র একটি অবস্থান হতে পারে, কিন্তু একাধিক (বা না) কর্মচারী প্রতিটি অবস্থান পূরণ করতে পারে উদাহরণস্বরূপ, আপনার কাছে শত শত কর্মচারী "ক্যাশিয়ার" অবস্থানের সাথে থাকতে পারে।
ডাটাবেসটি প্রতিটি অবস্থান সম্পর্কে নিম্নলিখিত অতিরিক্ত তথ্য দিয়ে প্যাশনস নামে একটি টেবিলও থাকতে পারে:
- PositionID
- খেতাব
- কাজের স্তর
- SkillCategory
- অবস্থান
এই টেবিলে অবস্থান আইডি ক্ষেত্র কর্মচারীর টেবিলে কর্মচারী আইডি ক্ষেত্রের অনুরূপ - এটি একটি অনন্য উত্পন্ন পূর্ণসংখ্যা যা ডাটাবেসের সাথে একটি অবস্থান যুক্ত করা হলে তৈরি করা হয়।
যখন আমরা ডাটাবেস থেকে কর্মীদের তালিকা টানতে যাচ্ছি, তখন প্রত্যেক ব্যক্তির নাম এবং তাদের শিরোনামকে অনুরোধ করা স্বাভাবিক হবে। যাইহোক, এই তথ্য একাধিক ডাটাবেস সারণিতে সংরক্ষণ করা হয়, সুতরাং এটি কেবল একটি JOIN ক্যোয়ারীর মাধ্যমে পুনরুদ্ধার করা যাবে যা সারণির মধ্যে বিদ্যমান সম্পর্কের প্রয়োজন।
যখন আপনি টেবিলের কাঠামোর দিকে তাকান, সম্পর্ক নির্ধারণের ক্ষেত্রটি সম্ভবত স্পষ্ট - অবস্থান আইডি ক্ষেত্রটি। প্রতিটি কর্মচারীর একমাত্র অবস্থান থাকতে পারে এবং অবস্থানের অবস্থানের অবস্থানের অবস্থান থেকে অবস্থান আইডি অন্তর্ভুক্ত করে সেই অবস্থানটি সনাক্ত করা যায়। অবস্থান টেবিলের জন্য প্রাথমিক কী হওয়ার পাশাপাশি, এই উদাহরণে, অবস্থান আইডি ক্ষেত্রটি কর্মচারী সারণি থেকে পজিশন টেবিলে একটি বিদেশী কী। ডাটাবেস তারপর এই ক্ষেত্রটি একাধিক সারণি থেকে তথ্য সম্পর্কিত করতে ব্যবহার করতে পারে এবং এটি নিশ্চিত করে যে ডাটাবেসের কোনও পরিবর্তন বা সংযোজনগুলি referential integrity প্রয়োগ করা চালিয়ে যেতে থাকে।
একবার আপনি বিদেশী কীটি সনাক্ত করেছেন, আপনি এগিয়ে যেতে পারেন এবং নিম্নোক্ত জিজ্ঞাস্যটি ব্যবহার করে আপনার প্রয়োজনীয় তথ্যটি ডাটাবেস থেকে টেনে আনতে পারেন:
এসকিউএল সার্ভারে বিদেশী কী তৈরি করা
টেকনিক্যালি, আপনার উপরোক্ত মতানুযায়ী ক্যোয়ারীগুলি সঞ্চালন করতে স্পষ্টভাবে সম্পর্ক নির্ধারণ করতে হবে না। যাইহোক, যদি আপনি একটি বিদেশী কী সীমাবদ্ধতা ব্যবহার করে স্পষ্টভাবে সম্পর্ক সংজ্ঞায়িত করেন, ডাটাবেস আপনার জন্য কিছু হাউসকিপিং কাজ সম্পাদন করতে সক্ষম হবে:
- আপনি যখন কর্মচারীদের টেবিলে একটি নতুন রেকর্ড যোগ করেন, তখন ডাটাবেস নিশ্চিত করবে যে আপনি যে অবস্থান আইডিটি লিখছেন সেটি পজিশন টেবিলে একটি বৈধ প্রাথমিক কী ।
- যদি আপনি পজিশন টেবিলের একটি অবস্থান আইডি পরিবর্তন করেন, তাহলে ডাটাবেস প্রয়োজনীয়তাগুলি কর্মচারীদের টেবিলে সামঞ্জস্য বজায় রাখতে পারে।
- ডাটাবেজটি অবস্থানকারী টেবিলে অবস্থানের একটি অপসারণের প্রভাবের সাথে সংশ্লিষ্ট কর্মচারী নথিগুলির সাথে একটি স্থিতি মুছে ফেলার বা সমস্ত সংশ্লিষ্ট কর্মীদের একটি ক্যাসকেডিং ডিল সম্পাদন করা থেকে রক্ষা করতে পারে।
এখানে আপনি এসকিউএল সার্ভারে বিদেশী কী তৈরি হবে কিভাবে:
পরিবর্তনের টেবিল কর্মচারী বিদেশী কী যোগ করুন (PositionID) রেফারেন্স পজিশন (অবস্থানআইডি)আপনি একটি ধারা যোগ করে একটি টেবিল তৈরি করার সময় আপনি একটি বিদেশী কীও তৈরি করতে পারেন:
বিদেশী মূল উল্লেখ অবস্থান (অবস্থানআইডি)বিদেশী কী কলাম জন্য কলাম সংজ্ঞা শেষে।