Skip to main content

দ্বিতীয় সাধারণ ফর্ম (2NF) মধ্যে একটি ডাটাবেস নির্বাণ

বুঝুন ডেটা ইন্টিগ্রিটি (সম্পূর্ণ সেমিনার) (জুন 2025)

বুঝুন ডেটা ইন্টিগ্রিটি (সম্পূর্ণ সেমিনার) (জুন 2025)
Anonim

আমরা একটি ডাটাবেস টেবিল স্বাভাবিককরণের বিভিন্ন দিক তাকিয়ে আছে। প্রথম, আমরা ডাটাবেস স্বাভাবিকীকরণের মৌলিক নীতি আলোচনা। শেষ বার, আমরা প্রথম স্বাভাবিক ফর্ম (1NF) দ্বারা নির্ধারিত মৌলিক প্রয়োজনীয়তা অনুসন্ধান। এখন, আসুন আমাদের যাত্রা চালিয়ে যান এবং দ্বিতীয় সাধারণ ফর্ম (2NF) এর নীতিগুলি কভার করি।

2NF সাধারণ প্রয়োজন

  • একটি টেবিলের একাধিক সারিতে প্রযোজ্য ডেটা সাবসেটগুলি সরান এবং পৃথক টেবিলগুলিতে রাখুন।
  • বিদেশী কী ব্যবহার করে এই নতুন টেবিল এবং তাদের পূর্বসুরীদের মধ্যে সম্পর্ক তৈরি করুন।

এই নিয়মগুলি একটি সহজ বিবৃতিতে সংক্ষেপিত করা যেতে পারে: 2NF একটি সারণিতে অলঙ্কৃত ডেটা পরিমাণটি হ্রাস করার চেষ্টা করে, এটি নতুন সারণিতে স্থাপন করে এবং সেগুলির মধ্যে সম্পর্ক তৈরি করে।

আসুন একটি উদাহরণ তাকান। একটি অনলাইন দোকান কল্পনা করুন যে একটি ডাটাবেস গ্রাহক তথ্য বজায় রাখে। তারা নিম্নলিখিত উপাদানের সাথে গ্রাহক নামে একটি একক টেবিল থাকতে পারে:

  • CustNum
  • নামের প্রথম অংশ
  • নামের শেষাংশ
  • ঠিকানা
  • শহর
  • রাষ্ট্র
  • জিপ

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

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

  • জিপ
  • শহর
  • রাষ্ট্র

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

এখন আমরা গ্রাহক টেবিল থেকে অনুরূপ তথ্য মুছে ফেলেছি, আমরা দ্বিতীয় সাধারণ ফর্মের প্রথম নিয়মটি সন্তুষ্ট করেছি। আমরা এখনও দুটি টেবিল একসঙ্গে টাই করার জন্য একটি বিদেশী কী ব্যবহার করতে হবে। আমরা সম্পর্কটি তৈরি করতে জিপ কোড (ZIPs টেবিল থেকে প্রাথমিক কী) ব্যবহার করব। এখানে আমাদের নতুন গ্রাহক টেবিল আছে:

  • CustNum
  • নামের প্রথম অংশ
  • নামের শেষাংশ
  • ঠিকানা
  • জিপ

আমরা এখন ডেটাবেসে সংরক্ষিত অপ্রয়োজনীয় তথ্যের পরিমাণ কমিয়ে দিয়েছি এবং আমাদের কাঠামো দ্বিতীয় স্বাভাবিক ফর্মের মধ্যে রয়েছে।