আপনার ডাটাবেস সাধারণকরণ: প্রথম সাধারণ ফর্ম

এই দুটি সাধারণ নিয়ম আপনার ডাটাবেস স্বাভাবিককরণে সাহায্য করবে

প্রথম নরমাল ফর্ম (1 এনএফ) একটি সংগঠিত ডাটাবেসের মৌলিক নিয়ম সেট করে:

একটি ডাটাবেসের বাস্তব নকশা চিন্তা করার সময় এই নিয়মগুলি কি বোঝায়? এটা আসলে বেশ সহজ।

1. অনুগ্রহপূর্বক অনুকরণ করুন

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

Intuitively, এই তথ্য ট্র্যাক একটি তালিকা বা স্প্রেডশীট তৈরি করার সময়, আমরা নিম্নলিখিত ক্ষেত্রের সঙ্গে একটি টেবিল তৈরি করতে পারে:

যাইহোক, 1 এনএফ দ্বারা আরোপিত প্রথম নিয়মটি প্রত্যাহার করুন: একই টেবিলের দ্বিখণ্ডিত কলাম দূর করুন। স্পষ্টতই, অধস্তন -1 - অধীনস্ত কলামগুলি দ্বিখণ্ডিত। একটি মুহূর্ত নিন এবং এই দৃশ্যকল্প দ্বারা উত্থাপিত সমস্যা চিন্তা। যদি একজন পরিচালকের কেবলমাত্র একটি অধস্তন হয়, তবে subordinate2-subordinate4 কলামগুলি কেবল সঞ্চয়স্থান (একটি মূল্যবান ডাটাবেস পণ্য) নষ্ট হয়ে যায়। উপরন্তু, মামলার কল্পনা করুন যেখানে একজন ম্যানেজার ইতিমধ্যে 4 টি অধঃস্তন করেছেন - যদি তিনি অন্য কর্মচারীকে নিয়ে যান তবে কী হবে? পুরো টেবিল কাঠামো সংশোধন প্রয়োজন হবে।

এই সময়ে, একটি দ্বিতীয় উজ্জ্বল ধারণা ডাটাবেস novices হয় সাধারণত: আমরা একটি একাধিক কলাম আছে চান না এবং আমরা একটি নমনীয় তথ্য স্টোরেজ জন্য অনুমতি দিতে চান এরকম কিছু চেষ্টা করা যাক:

এবং অধঃস্তন ক্ষেত্রের "মেরি, বিল, জো" আকারে একাধিক এন্ট্রি থাকবে।

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

এখানে একটি টেবিলের যে 1NF প্রথম নিয়ম সন্তুষ্ট:

এই ক্ষেত্রে, প্রতিটি অধস্তন একটি একক এন্ট্রি আছে, কিন্তু পরিচালকদের একাধিক এন্ট্রি থাকতে পারে।

2. প্রাথমিক কী সনাক্ত করা

এখন, দ্বিতীয় নিয়ম সম্পর্কে কি: একটি অনন্য কলাম বা কলামের সেট ( প্রাথমিক কী ) দিয়ে প্রতিটি সারি চিহ্নিত করুন? আপনি উপরে সারণির দিকে নজর দিতে এবং একটি প্রাথমিক কী হিসাবে অধস্তন কলামের ব্যবহার সুপারিশ করতে পারেন। প্রকৃতপক্ষে, অধস্তন কলাম একটি প্রাথমিক কী জন্য একটি ভাল প্রার্থী কারণ আমাদের ব্যবসা নিয়ম নির্দিষ্ট যে প্রতিটি অধস্তন শুধুমাত্র একটি ম্যানেজার থাকতে পারে। যাইহোক, আমরা আমাদের টেবিলের মধ্যে সংরক্ষণ করার জন্য নির্বাচন করা যে তথ্য এটি একটি আদর্শ সমাধান চেয়ে কম করে তোলে। আমরা জিম নামক অন্য কর্মচারী ভাড়া যদি কি হবে? কিভাবে আমরা ডাটাবেসে তার ম্যানেজার-অধস্তন সম্পর্ক সংরক্ষণ করতে পারি?

একটি প্রাথমিক কী হিসাবে একটি সত্যিকারের অনন্য শনাক্তকারী (যেমন একটি কর্মী আইডি হিসাবে) ব্যবহার করার সেরা। আমাদের চূড়ান্ত টেবিল এই মত দেখতে হবে:

এখন, আমাদের টেবিল প্রথম স্বাভাবিক আকারে! আপনি স্বাভাবিককরণ সম্পর্কে শিখতে অবিরত করতে চাইলে এই সিরিজের অন্যান্য নিবন্ধগুলি পড়ুন: