نرمال کردن پایگاه داده شما: فرم اول Normal

این دو قاعده ساده کمک خواهد کرد که پایگاه داده شما را نرمال سازد

اولین فرم عادی (1NF) قوانین اساسی برای پایگاه داده سازمان یافته را تنظیم می کند:

این قوانین وقتی که در نظر طراحی عملی یک پایگاه داده هستند، چه معنایی دارد؟ این واقعا ساده است.

1. حذف تکثیر

قانون اول حکم می کند که ما نباید داده ها را در همان ردیف جدول تکرار کنیم. در جامعه پایگاه داده، این مفهوم به عنوان atomicity از یک جدول اشاره شده است. گفته می شود جداول که مطابق با این قاعده هستند اتمی است. بیایید این اصل را با یک مثال کلاسیک آشنا کنیم: یک جدول در یک پایگاه داده منابع انسانی که رابطه مدیر و وابسته را ذخیره می کند. برای اهداف نمونه ما، ما قاعده کسب و کار را که هر مدیر ممکن است یک یا چند زیردریایی داشته باشد در نظر بگیریم در حالی که هر زیرشینی ممکن است تنها یک مدیر داشته باشد.

به طور مستقیم، هنگام ایجاد یک لیست یا صفحه گسترده برای ردیابی این اطلاعات، ما ممکن است یک جدول با زمینه های زیر ایجاد کنیم:

با این حال، اولین قاعده اعمال شده توسط 1NF را یادآوری کنید: حذف ستون های تکراری از همان جدول. واضح است که ستون Subordinate1-Subordinate4 تکراری است. یک لحظه فکر کنید و مشکلی را که مطرح شده این سناریو را در نظر بگیرید. اگر یک مدیر تنها یک زیردسته داشته باشد، ستون Subordinate2-Subordinate4 به سادگی فضای ذخیره سازی هدر رفته (یک پایگاه داده گران قیمت) است. علاوه بر این تصور کنید که یک مدیر در حال حاضر دارای 4 زیردریایی است - چه اتفاقی می افتد اگر کارمند دیگری کار کند؟ ساختار تمام جدول نیاز به اصلاح دارد.

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

و زمینه زیردستان شامل چندین ورودی به شکل "Mary، Bill، Joe" می باشد.

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

در اینجا یک جدول است که اولین قاعده 1NF را رعایت می کند:

در این مورد، هر زیردسته یک ورودی واحد دارد، اما مدیران ممکن است چندین ورودی داشته باشند.

2. کلید اصلی را شناسایی کنید

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

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

در حال حاضر، جدول ما در فرم اول طبیعی است! اگر میخواهید درباره ی عادت دادن به ادامه ی تحصیل ادامه دهید، مقالات دیگر این سری را بخوانید: