প্রথম সাধারণ ফর্ম (1NF) একটি সংগঠিত ডাটাবেসের জন্য মৌলিক নিয়ম সেট করে:
- একই টেবিল থেকে অনুরূপ কলাম মুছে ফেলুন।
- সম্পর্কিত তথ্য প্রতিটি দলের জন্য পৃথক টেবিল তৈরি করুন এবং একটি অনন্য কলাম (প্রাথমিক কী) সঙ্গে প্রতিটি সারি সনাক্ত করুন।
একটি ডাটাবেসের বাস্তব নকশা চিন্তা করার সময় এই নিয়ম মানে কি? এটা আসলে বেশ সহজ।
ডুপ্লিকেশন মুছে ফেলুন
প্রথম নিয়মটি একটি টেবিলের একই সারির মধ্যে আমাদের তথ্য অনুলিপি করতে হবে তা নির্দেশ করে। ডাটাবেস সম্প্রদায়ের মধ্যে, এই ধারণাকে একটি টেবিলের পরমাণু হিসাবে উল্লেখ করা হয়। এই নিয়ম মেনে চলার টেবিলগুলি পরমাণু বলে মনে করা হয়। আসুন আমরা একটি ক্লাসিক উদাহরণ দিয়ে এই নীতিটি অন্বেষণ করি: একজন মানব সম্পদ ডাটাবেসের মধ্যে একটি টেবিল যা পরিচালক-অধস্তন সম্পর্ক সঞ্চয় করে। আমাদের উদাহরণের উদ্দেশ্যে, আমরা প্রতিটি নিয়ন্ত্রককে শুধুমাত্র একজন পরিচালক থাকতে পারে এমন প্রতিটি ব্যবসা পরিচালকের এক বা একাধিক অধীনস্থ থাকতে পারে এমন ব্যবসায়িক নিয়ম প্রয়োগ করব।
অন্তর্নিহিতভাবে, এই তথ্য ট্র্যাক করতে একটি তালিকা বা স্প্রেডশীট তৈরি করার সময়, আমরা নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি টেবিল তৈরি করতে পারি:
- ম্যানেজার
- Subordinate1
- Subordinate2
- Subordinate3
- Subordinate4
যাইহোক, 1NF দ্বারা আরোপিত প্রথম নিয়মটি প্রত্যাহার করুন: একই টেবিল থেকে অনুরূপ কলামগুলি সরিয়ে দিন। স্পষ্টতই, Subordinate1-Subordinate4 কলাম সদৃশ। একটি মুহূর্ত নিন এবং এই দৃশ্যকল্প দ্বারা উত্থাপিত সমস্যা চিন্তা। যদি একজন ব্যবস্থাপকের শুধুমাত্র একটি অধস্তন থাকে তবে Subordinate2-Subordinate4 কলামগুলি কেবল সঞ্চয়স্থান স্থান (একটি মূল্যবান ডাটাবেস পণ্য) নষ্ট হয়ে যায়। অধিকন্তু, যেখানে ম্যানেজারের ইতিমধ্যে 4 অধস্তন আছে সে ক্ষেত্রে কল্পনা করুন - যদি সে অন্য কর্মচারীকে নিয়ে যায় তবে কী হবে? পুরো টেবিল গঠন সংশোধন প্রয়োজন হবে।
এই মুহুর্তে, দ্বিতীয় উজ্জ্বল ধারণাটি সাধারণত ডেটাবেসে নতুন উপায়ে ঘটে: আমরা একাধিক কলাম থাকতে চাই না এবং আমরা একটি স্থিতিস্থাপক পরিমাণে ডেটা স্টোরেজের জন্য অনুমতি দিতে চাই। এরকম কিছু চেষ্টা করি।
- ম্যানেজার
- অধস্তনদের
এবং Subordinates ক্ষেত্র "মেরি, বিল, জো।" আকারে একাধিক এন্ট্রি থাকবে।
এই সমাধান কাছাকাছি, কিন্তু এটি চিহ্ন ছোট পড়ে। অধস্তন কলাম এখনও অনুরূপ এবং অ পারমাণবিক। আমরা একটি subordinate যোগ বা অপসারণ করার প্রয়োজন হলে কি হবে? আমরা টেবিলের পুরো বিষয়বস্তু পড়তে এবং লিখতে হবে। এই পরিস্থিতিতে এতো বড় চুক্তি নয়, কিন্তু একজন ম্যানেজারের একশত কর্মচারী থাকলে কী হবে? এছাড়াও, এটি ভবিষ্যতে প্রশ্নের মধ্যে ডাটাবেস থেকে তথ্য নির্বাচন প্রক্রিয়ার জটিল।
এখানে একটি টেবিল যা 1NF এর প্রথম নিয়মটি পূরণ করে:
- ম্যানেজার
- অধীন
এই ক্ষেত্রে, প্রতিটি অধস্তন একটি একক এন্ট্রি আছে, কিন্তু পরিচালকদের একাধিক এন্ট্রি থাকতে পারে।
প্রাথমিক কী সনাক্ত করুন
এখন, দ্বিতীয় নিয়ম সম্পর্কে কী: প্রতিটি সারি একটি অনন্য কলাম বা কলামগুলির সেট (প্রাথমিক কী) সহ চিহ্নিত করুন। আপনি উপরের টেবিলের দিকে নজর দিতে পারেন এবং প্রাথমিক কী হিসাবে অধস্তন কলাম ব্যবহার করার পরামর্শ দিতে পারেন। প্রকৃতপক্ষে, অধীনস্থ কলাম প্রাথমিক চাবিটির জন্য একটি ভাল প্রার্থী কারণ আমাদের ব্যবসার নিয়মগুলি নির্দিষ্ট করে যে প্রত্যেক অধস্তনীর একমাত্র পরিচালক থাকতে পারে। যাইহোক, আমাদের টেবিলে সংরক্ষণ করার জন্য আমরা যে তথ্যটি চয়ন করেছি তা আদর্শ সমাধানটির চেয়েও কম। জিম নামক আরেকটি কর্মচারী নিয়োগ করলে কী হবে? কিভাবে আমরা তার ম্যানেজার-অধীন সম্পর্ক ডাটাবেস সংরক্ষণ করবেন?
প্রাথমিক কী হিসাবে সত্যিকারের অনন্য সনাক্তকারী (যেমন কর্মচারী আইডি) ব্যবহার করা ভাল। আমাদের চূড়ান্ত টেবিল এই মত দেখতে হবে:
- ম্যানেজার আইডি
- অধীন আইডি
এখন, আমাদের টেবিল প্রথম স্বাভাবিক ফর্ম! এর বাইরে, যদি আপনি আরও সংস্থান সম্পর্কে উত্তেজিত হন তবে দ্বিতীয় সাধারণ ফর্ম এবং তৃতীয় সাধারণ ফর্মটিতে আপনার ডাটাবেস স্থাপন করার বিকল্প রয়েছে।