نرمال کردن پایگاه داده شما: انتقال به فرم عادی دوم (2NF)

قرار دادن پایگاه داده در فرم عادی دوم

در طی ماه گذشته، ما چند جنبه از عادی سازی جدول پایگاه داده را مورد بررسی قرار دادیم. اولا ما درباره اصول اساسی عادی سازی پایگاه داده بحث کردیم. آخرین بار، ما نیازهای اساسی که توسط فرم اول طبیعی (1NF) تعیین شده است را مورد بررسی قرار دادیم. اکنون اجازه دهید سفر ما را ادامه دهیم و اصول فرم دوم عادی (2NF) را پوشش دهیم.

به یاد آوردن الزامات کلی 2NF:

این قوانین را می توان در یک عبارت ساده خلاصه کرد: 2NF تلاش می کند مقدار داده های انبوه را در یک جدول کاهش دهد، آن را با قرار دادن آن در جدول های جدید و ایجاد ارتباط بین آن جداول.

بیایید به مثال نگاه کنیم. تصور کنید یک فروشگاه آنلاین است که اطلاعات مشتری را در پایگاه داده نگه می دارد. آنها ممکن است یک جدول واحد به نام مشتری با عناصر زیر داشته باشند:

نگاهی کوتاه به این جدول مقدار کمی از داده های بیش از حد را نشان می دهد. ما در حال ذخیره "Sea Cliff، NY 11579" و "Miami، FL 33157" دو بار هر بار. در حال حاضر، ممکن است به عنوان مثال ساده به نظر نمی آید که ذخیره سازی اضافه شده بیشتر باشد، اما فضای هدر رفته را تصور کنید اگر هزاران ردیف در جدول ما وجود داشته باشد. علاوه بر این، اگر کد پستی برای Sea Cliff تغییر شود، ما باید تغییراتی را در بسیاری از نقاط در سراسر پایگاه داده انجام دهیم.

در یک ساختار پایگاه داده سازگار با 2NF، این اطلاعات بیش از حد استخراج و ذخیره می شود در جداول جداگانه. جدول جدید ما (بیایید نام آن را ZIP ها) ممکن است زمینه های زیر را داشته باشد:

اگر ما می خواهیم کارآیی فوق العاده ای داشته باشیم، ما حتی می توانیم این جدول را به صورت پیشفرض پر کنیم - اداره پست، فهرستی از تمام کد های پستی معتبر و روابط شهر / دولت را فراهم می کند. مطمئنا، شما با یک وضعیت که در آن نوع از پایگاه داده مورد استفاده قرار گرفت مواجه شد. کسی که سفارش می گیرد ابتدا از شما خواسته شما را برای کد پستی خود بپرسد و سپس می داند که شهر و ایالت شما از آن چه خواستید. این نوع ترتیب خطا اپراتور را کاهش می دهد و کارایی را افزایش می دهد.

اکنون که داده های تکراری را از جدول مشتری حذف کرده ایم، اولین قانون دوم فرم عادی را رضایت دادیم. ما هنوز هم باید از یک کلید خارجی استفاده کنیم تا دو جدول را با هم هماهنگ کنیم. ما از کد پستی (کلید اصلی از جدول ZIPs) برای ایجاد رابطه استفاده خواهیم کرد. جدول مشتریان جدید ما:

ما اکنون مقدار اطلاعات اضافی ذخیره شده در پایگاه داده را کمینه کردهایم و ساختار ما در شکل معمولی دوم است!

اگر می خواهید اطمینان حاصل کنید که پایگاه داده شما نرمال است، مقالات دیگر ما در این سری را بررسی کنید: