تیسرا نارمل فارم

Tysra Narml Farm



یہ سیریز کا تیسرا حصہ ہے، فائیو نارمل فارم۔ پہلے دو حصوں (ٹیوٹوریلز) کے عنوانات فرسٹ نارمل فارم ہیں، اس کے بعد دوسرا نارمل فارم۔ سیریز کے اس حصے میں تیسری نارمل شکل کی وضاحت کی گئی ہے۔

وضاحت کہانی کی لائن کے بعد ہے: ایک باپ مر گیا ہے اور اس نے اپنے بیٹے کے لیے کچھ رقم چھوڑی ہے۔ بیٹے نے یہ رقم ایک سہولت اسٹور میں لگانے کا فیصلہ کیا۔ سہولت کی دکان، جسے سہولت کی دکان کے نام سے بھی جانا جاتا ہے، ایک چھوٹا خوردہ کاروبار ہے جو روزمرہ کی اشیاء سپلائی کرنے والوں سے وصول کرتا ہے اور انہیں محلے کے انفرادی گاہکوں کو فروخت کرتا ہے۔







اس مقام پر، دکان پہلے ہی ذخیرہ ہے، اور کچھ فروخت پہلے ہی ہو چکی ہے۔ بیٹا، جو کاروبار کا مالک ہے، اس کے کچھ ملازم ہیں، جنہیں اس ٹیوٹوریل میں کلرک کہا گیا ہے۔ پراپرائٹر اور کوئی بھی ملازم مصنوعات کی ریکارڈنگ کے بعد سپلائی حاصل کر سکتا ہے اور فروخت کر سکتا ہے۔



تاہم، دکان شروع ہونے سے پہلے، نہ ہی مالک اور نہ ہی ملازمین کو عام شکلوں کے بارے میں کچھ معلوم تھا۔ لہذا، وہ ایک میز اور ایک مشق کتاب میں ہر چیز کو لین دین کے طور پر ریکارڈ کر رہے تھے۔ ان کے پاس کمپیوٹر نہیں تھا۔



قارئین، آپ نے اس ٹیوٹوریل سیریز کے پانچ حصے مکمل کر لیے ہیں۔ اب آپ ڈیٹا بیس ڈویلپر ہیں۔ سہولت کی دکان کا مالک آپ کا دوست ہے۔ آپ نے دو دن پہلے دکان کا دورہ کیا اور مالک اور کلرک کو پہلی عام شکل میں میز تیار کرنے کی تربیت دی۔ آپ نے کل بھی دکان کا دورہ کیا اور انہیں پہلی نارمل شکل سے دوسری نارمل شکل میں ٹیبل بنانے کا طریقہ سکھایا۔





آج، آپ دکان پر وزٹ کے لیے پہنچے ہیں تاکہ انہیں تربیت دی جائے کہ دوسرے نارمل فارم سے تیسری نارمل شکل میں ٹیبل کیسے تیار کیا جائے۔ اس وقت ان کے پاس موجود تمام میزیں دوسری نارمل شکل میں ہیں۔ میزیں (نام اور کالم کے عنوانات کے لحاظ سے) یہ ہیں:

مصنوعات (پروڈکٹ آئی ڈی، زمرہ آئی ڈی، پروڈکٹ)
زمرہ جات (زمرہ ID، زمرہ)



سیلز (سیل آئی ڈی، کسٹمر، ملازم، تاریخ)
سیل کی تفصیلات (سیل آئی ڈی، پروڈکٹ آئی ڈی، نمبر سیلڈ، سیلنگ پرائس)

آرڈرز (آرڈر آئی ڈی، سپلائر، ملازم، تاریخ)
آرڈر کی تفصیلات (آرڈر آئی ڈی، پروڈکٹ آئی ڈی، نمبر خریدا، قیمت کی قیمت)

واحد یا جامع چابیاں انڈر لائن ہیں۔

پچھلے دو دنوں میں جو کچھ سکھایا گیا اس کا خلاصہ کرنے کے بعد اور اس سے پہلے کہ آپ کچھ کر سکیں، مالک پوچھتا ہے:

'گاہکوں اور ملازمین کے لیے فون نمبرز، پتے وغیرہ کا کیا ہوگا؟

مصنوعات کے لیے اسٹاک میں مقدار، ری آرڈر لیول وغیرہ کے بارے میں کیا خیال ہے؟
کیا انہیں اپنی علیحدہ میزوں کی ضرورت ہے، یا انہیں موجودہ میزوں میں نصب کیا جانا چاہئے؟

آپ، ڈیٹا بیس ڈویلپر، جواب دیں:

'مبارک ہو، مالک! آپ نے بالواسطہ تھرڈ نارمل فارم کا مسئلہ پیش کیا ہے۔

آپ جاری رکھیں۔

دیگر ضروری کالم

دوسرے ضروری کالم پہلے پچھلے ٹیبلز میں شامل کیے جاتے ہیں، جو 1NF اور 2NF میں ہوتے ہیں۔ پچھلے کالم کے کچھ ناموں میں ترمیم کی گئی ہے۔

کم از کم، زمرہ جات کے جدول میں درج ذیل کالم ہونے چاہئیں:

زمرہ جات (زمرہ ID، زمرہ کا نام، تفصیل)

تفصیل ایک مختصر پیراگراف ہے جو زمرہ کی وضاحت کرتا ہے۔ یہ زمرہ جات ٹیبل پہلے ہی 1NF، 2NF، اور 3NF میں ہے۔ ذیل میں 3NF کی وضاحت کی گئی ہے۔

کم از کم، مصنوعات کی میز میں درج ذیل کالم ہونے چاہئیں:

پروڈکٹس (پروڈکٹ آئی ڈی، زمرہ آئی ڈی، سپلائر آئی ڈی، پروڈکٹ کا نام، یونٹ کی قیمت، مقدار ان اسٹاک، ری آرڈر لیول)

جیسا کہ ہر پروڈکٹ فروخت کی جا رہی ہے، جب پروڈکٹ کو دوبارہ ترتیب دینا ہو گا تو پروڈکٹس کی کم سطح (تعداد) تک پہنچ جائے گی، اس لیے صارفین کو دکان پر نہیں آنا چاہیے اور پروڈکٹ نہیں رکھنی چاہیے۔ ایسی غیر موجودگی کاروبار کے لیے اچھی نہیں ہے۔ quantityInStock اسٹاک میں کسی خاص مصنوعات کی تعداد ہے۔ اس میں وہ چیزیں شامل ہیں جو سٹور میں ہے اور کیا شیلف پر ہے۔

categoryID اور supplierID غیر ملکی کلیدیں ہیں۔ اسی لیے ان میں سنگل انڈر لائن کے بجائے ڈیش انڈر لائن ہے۔ غیر ملکی کلید ذیل میں بیان کی گئی ہے۔ سیریز کے پچھلے حصے میں (دوسرا نارمل فارم)، زمرہ آئی ڈی بنیادی کلید کا حصہ تھا جس میں ایک ہی انڈر لائن تھی کیونکہ یہ کیسے پہنچا تھا۔ تاہم، ذیل کی وضاحت سے، یہ واضح ہو جائے گا کہ کیٹیگری آئی ڈی ایک غیر ملکی کلید ہونی چاہیے (ایک ڈیش انڈر لائن کے ساتھ)۔

یہ پروڈکٹ ٹیبل پہلے سے ہی 1NF، 2NF، اور 3NF میں ہے۔ دیکھیں کہ یہ ذیل میں 3NF میں کیوں ہے:

کم از کم، SaleDetails ٹیبل میں درج ذیل کالم ہونے چاہئیں:

سیل کی تفصیلات (سیل آئی ڈی، پروڈکٹ آئی ڈی، یونٹ سیلنگ پرائس، مقدار، رعایت)

ڈسکاؤنٹ کی قیمت زیادہ تر وقت صفر ہونے کی امید ہے۔ ڈسکاؤنٹ وہ رعایت ہے جو دکان کسی صارف کو دیتی ہے۔

کم از کم، آرڈر ڈیٹیلز ٹیبل میں درج ذیل کالم ہونے چاہئیں:

آرڈر کی تفصیلات (آرڈر آئی ڈی، پروڈکٹ آئی ڈی، یونٹ قیمت، مقدار، رعایت)

ڈسکاؤنٹ کی قیمت زیادہ تر وقت صفر ہونے کی امید ہے۔ یہاں رعایت وہ رعایت ہے جو سپلائر دکان کو دیتا ہے۔

جیسا کہ ذیل میں دیکھا گیا ہے، مصنوعات کی میز کو 2NF یا 3NF میں سمجھا جا سکتا ہے۔ سیلز اینڈ آرڈر ٹیبلز میں 3NF کا مسئلہ ہے۔ مسئلہ اور حل کی وضاحت کے لیے صرف سیلز ٹیبل کا استعمال کیا جائے گا۔ آرڈر ٹیبل اور پروڈکٹس ٹیبل کے لیے 3NF اسی طرح کے استدلال کی پیروی کرتا ہے اور صرف اس کا حوالہ دیا جائے گا۔

کالم شامل کرتے وقت، سیلز ٹیبل یہ ہوگا:

سیلز (سیل آئی ڈی، تاریخ فروخت کی گئی گاہک کا نام، فون، پتہ، شہر، علاقہ، پوسٹل کوڈ، ملک، ملازم)

سات کالموں نے اصل جدول میں کسٹمر کالم کی جگہ لے لی ہے۔ چونکہ گاہک محلے کے لوگ ہیں، اس لیے شہر، خطہ (ریاست)، پوسٹل کوڈ، اور ملک کے کالموں کے سیلز کو خالی چھوڑا جا سکتا ہے، حالانکہ وہ اس مضمون میں خالی نہیں چھوڑے گئے ہیں۔

یہ سیلز ٹیبل اب بھی 2NF میں ہے کیونکہ 1NF اور 2NF دونوں قوانین کی خلاف ورزی نہیں کی گئی ہے۔ تاہم، یہ سمجھنا چاہیے کہ سیلز ٹیبل کی قطار میں، گاہک (نام) کی جگہ سات گاہک قطار کے خلیات نے لے لی ہے۔

نوٹ: ایک ایڈریس سیل میں گھر کا نمبر، گلی یا سڑک کا نام، اور قصبے کا نام، سبھی کوما سے الگ کیا گیا ہے۔ ایک شہر کو کئی شہروں پر مشتمل سمجھا جا سکتا ہے۔ اگرچہ کوما ان مخصوص سٹرنگ اجزاء کو الگ کرتے ہیں، وہ ایک سیل ویلیو بناتے ہیں نہ کہ تین سیل ویلیوز۔

ملازم کے کالم کو بھی سات ایسے کالموں سے بدلنا ہوگا۔ تاہم، یہ اس ٹیوٹوریل میں تدریس کے وقت اور جگہ کو بچانے کے لیے نہیں کیا گیا ہے۔ لہذا، ڈیٹا کے ساتھ سیلز ٹیبل ہو سکتا ہے:

سیلز ٹیبل - 2NF - کسٹمر آئی ڈی کے بغیر

ڈیٹا کی قسم SaleID کالم ایک انٹیجر یا، بہتر، آٹو انکریمنٹ ہے۔ ڈیٹ سیلڈ کالم کی ڈیٹا کی قسم ایک تاریخ ہے نہ کہ نمبر کیونکہ اس میں '/' حرف ہے، جو ہندسہ نہیں ہے۔ فون کالم سمیت باقی کالموں کے لیے ڈیٹا کی قسم سٹرنگ (یا متن) ہے۔ فون کی قدر میں حرف '-' ہے، جو کوئی ہندسہ نہیں ہے۔

نوٹ کریں کہ ہر قطار کے لیے، گاہک (نام)، جیسا کہ سیریز کے پچھلے حصے میں تھا، کو سات خلیات سے بدل دیا گیا ہے، جن میں سے ایک اب بھی گاہک کا نام ہے۔ اس کا مطلب یہ ہے کہ کسٹمر ڈیٹا ایک ہستی ہے۔ فی الحال، گاہک کا نام لگاتار اس کے دیگر چھ ڈیٹا کی شناخت کرتا ہے۔ اگر اس ٹیبل کو پروگرام کیا گیا ہے، تو یہ آسان ہو گا کہ ہر قطار میں ایک عدد کے ساتھ صارف کی ہستی کی شناخت کرنا آسان ہو گا (خودکار اضافہ نہیں)۔ اس صورت میں، ایک customerID کالم کو customerName سے پہلے ہونا چاہیے۔ پچھلا جدول بن جاتا ہے:

سیلز ٹیبل - 2NF - کسٹمر آئی ڈی کے ساتھ

تین کسٹمر آئی ڈیز ہیں: 1، 2، اور 3، جان سمتھ کے لیے 1 پانچ بار، 2 جیمز ٹیلر کے لیے دو بار، اور 3 سوسن رائٹ کے لیے ایک بار۔

نوٹ کریں کہ کچھ کسٹمر آئی ڈیز اور ان کے انحصار دہرا رہے ہیں۔

تیسرے نارمل فارم کے قواعد

ایک میز تیسری عام شکل میں ہے اگر یہ درج ذیل اصولوں کی پابندی کرے:

  1. یہ پہلے سے ہی دوسری عام شکل میں ہونا چاہئے۔
  2. اور اس میں Transitive Dependency نہیں ہونی چاہیے۔

پھر کلرکوں میں سے ایک (ملازمین) پوچھتا ہے، 'عارضی انحصار کیا ہے؟'۔ اور آپ، ڈیٹا بیس ڈویلپر، جواب دیں، 'یہ ایک اچھا سوال ہے!'

عبوری انحصار

یہ سچ ہے کہ ایک قطار میں، SaleID قطار میں موجود تمام اقدار کی شناخت کرتا ہے۔ تاہم، کسٹمر آئی ڈی اپنی سات ڈیٹا ویلیوز کی نشاندہی کرتا ہے لیکن اس قطار میں SaleID کے ذریعے شناخت کردہ باقی اقدار کی شناخت نہیں کرتا ہے۔ دوسرے طریقے سے دیکھیں، SaleID ہر قطار میں دس سیل ویلیوز پر منحصر ہے۔ تاہم، کسٹمر آئی ڈی ایک ہی قطار میں سات سیل ویلیوز پر منحصر ہے، لیکن کسٹمر آئی ڈی SaleID اور دیگر اقدار پر منحصر نہیں ہے جن پر SaleID انحصار کرتا ہے۔

کسٹمر آئی ڈی کے لیے اس طرح کا انحصار عبوری انحصار ہے۔ اور کسٹمر آئی ڈی کو غیر ملکی کلید کہا جاتا ہے اور اس ٹیوٹوریل سیریز، فائیو نارمل فارمز میں ڈیش کو انڈر لائن کیا گیا ہے۔

فرض کریں کہ ایک نان پرائم انتساب (نان پرائمری سیل ویلیو) دیگر نان پرائم انتساب پر منحصر ہے، اور زیر بحث غیر پرائم انتساب (مثال کے طور پر، کسٹمر آئی ڈی اور اس کے منحصر افراد) پرائمری کلید اور باقی سیل پر منحصر نہیں ہے۔ قطار میں اقدار. پھر یہ عبوری انحصار ہے۔

غیر ملکی کلید کے ساتھ پچھلا سیلز ٹیبل اور اس پر منحصر ہے، اکاؤنٹنگ کے مسائل (بے ضابطگیوں) کا سبب بنے گا۔

سیلز ٹیبل 2NF سے 3NF تک

غیر ملکی کلید اور اس کے انحصار کرنے والوں کی طرف سے پیدا ہونے والے مسئلے کو حل کرنے کے لیے، غیر ملکی کلید اور اس کے انحصار کرنے والوں کو ہٹا دیں، بغیر تکرار کے ایک نیا ٹیبل بنائیں۔ تاہم، یہاں تک کہ اگر غیر ملکی کلید بنیادی کلید پر منحصر نہیں ہے، تو بنیادی کلید غیر ملکی کلید پر منحصر ہے۔ لہذا، غیر ملکی کلید کی ایک کاپی پیرنٹ ٹیبل میں موجود رہنا چاہیے۔ نیا سیلز ٹیبل، اس وقت، 1NF، 2NF، اور 3NF کے مطابق ہے۔ یہ ایک والدین کی میز ہے. پچھلی سیلز ٹیبل سے نیا چائلڈ ٹیبل بھی 1NF، 2NF، اور 3NF کے مطابق ہے۔ غیر ملکی کلید کے ساتھ چائلڈ ٹیبل کا نام اور اس پر انحصار کرنے والے صارفین ہیں۔ اگر کوئی مناسب نام نہیں مل سکا تو تجزیہ میں کچھ گڑبڑ ہو گئی ہے۔ 3NF میں نیا سیلز ٹیبل یہ ہے:

3NF میں حتمی سیلز ٹیبل

3NF میں موجود اس ٹیبل میں قطاروں کی اتنی ہی تعداد ہے جتنی 2NF میں لیکن کم کالموں کے ساتھ۔

3NF میں اس حتمی سیلز ٹیبل کے لیے ٹیبل نوٹیشن یہ ہے:

سیلز (سیل آئی ڈی، ڈیٹ سیلڈ، کسٹمر آئی ڈی، ملازم آئی ڈی)

سیل آئی ڈی ایک ہی انڈر لائن کے ساتھ بنیادی کلید ہے۔ customerID ایک غیر ملکی کلید ہے، جس میں ڈیش انڈر لائن ہے۔ ملازم آئی ڈی ڈیش انڈر لائن کے ساتھ ایک غیر ملکی کلید بھی ہے۔ نوٹ کریں کہ 2NF میں سیلز ٹیبل میں ملازم کی صورتحال وہی ہے جو گاہک کی صورتحال ہے۔ ملازم ID اور اس کے اپنے منحصر افراد کو ایک اور میز بنانے کے لیے نکالنا پڑتا ہے۔ ملازم ID کی ایک کاپی باقی ہے۔

نوٹ: سیل آئی ڈی، کسٹمر آئی ڈی، اور ملازم آئی ڈی ایک جامع کلید نہیں بناتے ہیں۔ سیل آئی ڈی کسٹمر آئی ڈی اور ملازم آئی ڈی پر منحصر ہے۔

سیل آئی ڈی اور کسٹمر آئی ڈی کے درمیان تعلق ایک سے زیادہ ہے۔

3NF میں کسٹمر ٹیبل

اس ٹیبل میں 2NF سیلز ٹیبل میں 9 قطاروں کی بجائے تین قطاریں ہیں۔ اس جدول میں کسٹمر آئی ڈی ایک بنیادی کلید ہے۔ یہ سیلز ٹیبل میں غیر ملکی کلید کی طرح ہے، لیکن تکرار کے بغیر۔ سیلز ٹیبل میں غیر ملکی کلید اور کسٹمر ٹیبل میں بنیادی کلید دونوں جدولوں کو جوڑتی ہے۔

1NF کی خلاف ورزی نہ کرنے کے لیے کسٹمر ٹیبل میں دہرائی گئی قطاروں کو ہٹا دیا گیا ہے۔

جیسا کہ قاری دیکھ سکتا ہے، 3NF میں ٹیبل لگانے سے بار بار قطاروں (فالتو پن) کا مسئلہ بھی حل ہو جائے گا۔

کسٹمرز ٹیبل کے لیے ٹیبل نوٹیشن یہ ہے:

صارفین (کسٹمر آئی ڈی، کسٹمر کا نام، فون، پتہ، شہر، علاقہ، پوسٹ کوڈ، ملک)

مصنوعات کی میز پر نظرثانی کی گئی۔

اشارے کی شکل میں اوپر دی گئی مصنوعات کی میز یہ ہے:

پروڈکٹس (پروڈکٹ آئی ڈی، زمرہ آئی ڈی، سپلائر آئی ڈی، پروڈکٹ کا نام، یونٹ کی قیمت، مقدار ان اسٹاک، ری آرڈر لیول)

یہاں بنیادی کلید پروڈکٹ آئی ڈی ہے۔ categoryID اور supplierID غیر ملکی کلیدیں ہیں۔ کسٹمر ٹیبل کی طرح، ایک زمرہ جات کا ٹیبل ہے، جہاں کیٹیگری آئی ڈی بنیادی کلید ہے، اور ایک سپلائر ٹیبل ہے، جہاں سپلائر آئی ڈی بنیادی کلید ہے۔

اگر یونٹ پرائس، quantityInStock، اور reorderLevel کے لیے سیلز کی قدریں مقرر رہیں گی، تو پروڈکٹ ٹیبل، جیسا کہ یہ ہے، واقعی 3NF میں ہے۔ اگر یہ قدریں بدل رہی ہوں گی، تو مصنوعات کی میز، جیسا کہ یہ ہے، 2NF میں ہے۔ ٹیوٹوریل سیریز کے اس حصے میں، یہ فرض کیا گیا ہے کہ وہ قدریں وقت کے ساتھ ساتھ مقرر رہیں۔

تمام میزیں۔

تمام میزیں اب 3NF میں ہیں۔ وہ اس طرح دکھائے گئے ہیں:

ملازمین (ملازم کی شناخت، نام، فون، پتہ، شہر، علاقہ، پوسٹ کوڈ، ملک، تاریخ پیدائش، کرایہ کی تاریخ، تاریخ جاری)

سپلائرز (سپلائر ID، نام، فون، پتہ، شہر، علاقہ، پوسٹ کوڈ، ملک)

پروڈکٹس (پروڈکٹ آئی ڈی، زمرہ آئی ڈی، سپلائر آئی ڈی، پروڈکٹ کا نام، یونٹ کی قیمت، مقدار ان اسٹاک، ری آرڈر لیول)
زمرہ جات (زمرہ ID، زمرہ کا نام، تفصیل)

سیلز (سیل آئی ڈی، ڈیٹ سیلڈ، کسٹمر آئی ڈی، ملازم آئی ڈی)
سیل کی تفصیلات (سیل آئی ڈی، پروڈکٹ آئی ڈی، نمبر سیلڈ، سیلنگ پرائس)
صارفین (کسٹمر آئی ڈی، کسٹمر کا نام، فون، پتہ، شہر، علاقہ، پوسٹ کوڈ، ملک)

آرڈرز (آرڈر آئی ڈی، ڈیٹ سیلڈ، سپلائر آئی ڈی، ملازم آئی ڈی)
آرڈر کی تفصیلات (آرڈر آئی ڈی، پروڈکٹ آئی ڈی، نمبر خریدا، قیمت کی قیمت)

فالتو پن اور اکاؤنٹنگ کے مسائل (داخل کرنے، حذف کرنے اور اپ ڈیٹ کرنے سے بے ضابطگیوں) کو روکنے کے لیے نوزائیدہوں کے ذریعہ تیار کردہ صرف ایک ٹیبل سے نو تک پیشہ ورانہ میزیں تیار کی گئی ہیں۔ اکیلے نوسکھئیے کی میز مالی نقصان کا باعث بنے گی۔

عملے کی جانچ

اس وقت، تمام ملازمین بشمول پروپرائٹر کو 1NF، 2NF، اور 3NF کو سمجھنا چاہیے تھا۔ تاہم، ان کا امتحان ہونا ضروری ہے. یہ تمام افراد بشمول پروپرائٹر مختلف جگہوں پر بیٹھ کر ٹیسٹ مکمل کریں گے۔ ایک سوال پر مشتمل ٹیسٹ میں ایک گھنٹہ لگے گا، اور یہ مندرجہ ذیل ہے:

سوال: 1NF، 2NF اور 3NF کے اصول استعمال کرتے ہوئے ثابت کریں کہ اوپر دی گئی تمام نو میزیں پہلے سے ہی پہلی نارمل شکل، دوسری نارمل شکل اور تیسری نارمل شکل میں ہیں۔ صارفین اور سپلائرز کو حقیقی ہستی ہونے کی ضرورت نہیں ہے۔ ٹیبل کے ڈیٹا کو ٹیبل نوٹیشنز کا بیک اپ لینا چاہیے۔

جب وہ ٹیسٹ مکمل کر رہے ہوتے ہیں، آپ، بطور ڈیٹا بیس ڈویلپر، ناشتہ اور بیئر لینے باہر جاتے ہیں، ایک گھنٹے کے بعد واپسی کے لیے۔

قریب اور بعید مستقبل

جب آپ، ڈیٹا بیس ڈویلپر، باہر ہیں، آپ اس بات پر بھی غور کریں کہ اگر وہ سب ٹیسٹ پاس کر لیتے ہیں تو انہیں کیا مشورہ دیا جائے۔

اس کے علاوہ، جب آپ انہیں تربیت دے رہے تھے، اور اب جب کہ وہ ٹیسٹ دے رہے ہیں، گاہک بغیر خدمت کیے آتے اور چلے جاتے ہیں۔ یہ کاروبار کے لیے اچھا نہیں ہے، اور آپ، ڈیٹا بیس ڈویلپر، جانتے ہیں۔ کچھ گاہک حریف کی دکانوں پر جا سکتے ہیں اور کبھی واپس نہیں آئیں گے۔

آپ، ڈیٹا بیس ڈویلپر، 30 سال کے ہیں۔ مالک، آپ کے دوست کے طور پر، بھی 30 سال کا ہے۔ کلرک (ملازمین) کی عمریں 18 سے 24 سال کے درمیان ہیں۔ مالک کے لیے کام کرنے کے لیے ان کی تمام خصوصیات کی ضرورت تھی: صحت مند ہونا، لکھنے پڑھنے کے قابل ہونا، جوڑنے، گھٹانے، ضرب اور تقسیم کرنے کے قابل ہونا۔ ، اور کمپیوٹر اور انٹرنیٹ استعمال کرنے کے قابل ہونا۔

جب ایک ٹیبل 3NF میں ہوتا ہے، تو ڈیٹا بیس سے زیادہ تر خطرات کو ہٹا دیا جاتا ہے۔ بہت سے تجارتی ڈیٹا بیس 3NF سے آگے نہیں بڑھتے ہیں، اور فرم یا کمپنیاں آرام دہ ہیں۔

لہذا، اگر یہ سب امتحان پاس کر لیتے ہیں، تو آپ کلرکوں سے کہیں گے کہ جا کر کام جاری رکھیں۔ آپ انہیں اپنی تنخواہوں کے کچھ حصے بچانے کا مشورہ بھی دیں گے تاکہ وہ اپنی سہولت کی دکانوں کے مالک بن سکیں۔ آپ کل صرف 4NF اور 5NF میں مالک کو تربیت دینا جاری رکھیں گے۔ 4NF اور 5NF کے علم کے ساتھ، تمام معلوم خطرات کو ہٹا دیا جاتا ہے۔

تشخیص

ایک گھنٹے کے بعد، آپ، ڈیٹا بیس ڈویلپر، واپس آجائیں گے۔ آپ ان کے اسکرپٹ کو نشان زد کرتے ہیں۔ شاندار خبر کا ایک ٹکڑا! ان سب کے پاس، بشمول پروپرائٹر، ہر ایک کے پاس 100% ہے۔ ہیرے! یہ بہترین ہے!

لہذا آپ سب کو مبارک ہو: استاد اور طلباء۔

اس ٹیوٹوریل میں نتیجہ اخذ کرنے کے علاوہ کچھ نہیں بچا ہے۔

نتیجہ

ایک میز پہلی عام شکل میں ہے، اگر یہ مندرجہ ذیل قواعد میں سے کسی کی خلاف ورزی نہیں کرتا ہے:

  1. ٹیبل میں موجود تمام کالموں کے منفرد ہیڈر نام ہونے چاہئیں۔
  2. ہر سیل کی صرف ایک قدر ہونی چاہیے۔
  3. کالم میں ذخیرہ شدہ قدریں ایک ہی قسم کی ہونی چاہئیں۔
  4. قطاریں الگ الگ ہونی چاہئیں۔
  5. کالموں یا قطاروں کی ترتیب سے کوئی فرق نہیں پڑتا۔

ایک میز دوسری عام شکل میں ہے، اگر یہ درج ذیل میں سے کسی اصول کی خلاف ورزی نہیں کرتا ہے:

  1. ٹیبل پہلے سے ہی پہلی عام شکل میں ہونی چاہیے۔
  2. کوئی جزوی انحصار نہیں ہونا چاہیے۔

ایک میز تیسری عام شکل میں ہے، اگر یہ مندرجہ ذیل قواعد میں سے کسی کی خلاف ورزی نہیں کرتا ہے:

  1. یہ پہلے سے ہی دوسری نارمل شکل میں ہونا چاہیے۔
  2. اور اس میں عبوری انحصار نہیں ہونا چاہیے۔

آپ، ڈیٹا بیس ڈویلپر، کلرکوں کو بتائیں کہ وہ کافی سیکھ چکے ہیں۔ آپ مشورہ دیتے ہیں اور ان سے کام پر واپس آنے اور پہلے سے طے شدہ طور پر اپنے اسٹیشنوں پر رہنے کو کہتے ہیں۔

آپ نے 4NF اور 5NF پر ٹریننگ کے لیے کل اس کے دفتر میں ملاقات کے لیے صرف مالک کے ساتھ ملاقات کا وقت مقرر کیا۔