ڈیٹا بیس میں سب سے اہم تصورات میں سے ایک ڈیٹا بیس میزوں کے درمیان تعلقات پیدا کر رہا ہے. یہ تعلقات متعدد جدولوں میں ذخیرہ کردہ ڈیٹا سے منسلک کرنے اور اسے موثر انداز میں حاصل کرنے کے لئے ایک میکانزم فراہم کرتی ہے. دو میزوں کے درمیان ایک لنک بنانے کے لئے، آپ کو ایک میز میں ایک غیر ملکی کی کلید کی وضاحت کرنا ضروری ہے جس میں کسی دوسرے میز کے ایک کالم کا حوالہ دیا جاتا ہے.
ڈیٹا بیس میزیں اور تعلقات
آپ پہلے سے ہی یہ معلوم کرسکتے ہیں کہ ڈیٹا بیس صرف ٹیبلز کی ایک سیریز ہے ، اسی طرح آپ سپریڈ شیٹ پروگرام میں پہلے ہی استعمال کرتے ہیں جیسے مائیکروسافٹ ایکسل. دراصل، آپ کسی بھی ڈیٹا بیس میں ایکسل اسپریڈ شیٹ کو بھی تبدیل کرسکتے ہیں. جہاں ڈیٹا بیسس اسپریڈ شیٹ سے الگ ہوتے ہیں، تاہم، جب یہ میزوں کے درمیان طاقتور تعلقات کی تعمیر کے لئے آتا ہے.
مثال کے طور پر، انسانی وسائل کی معلومات کو ٹریک کرنے کے لئے ایک کمپنی کی طرف سے استعمال کردہ ڈیٹا بیس پر غور کریں. اس ڈیٹا بیس میں ایک ملازم کا نام ملا ہے جس میں کمپنی کے عملے کے ہر رکن کے لئے مندرجہ ذیل معلومات ہوتی ہے:
- ملازم کی ID
- پہلا نام
- آخری نام
- دفتر فون
- گھر کا فون
- پوزیشنڈ
اس مثال میں، ملازم کی شناخت ایک منفرد پیدا شدہ انکٹر ہے جو ہر ملازم کو تفویض کیا جاتا ہے جب وہ ڈیٹا بیس میں شامل ہوتے ہیں. پوزیشن ID ایک نوکری کا کوڈ ہے جس میں کمپنی میں ملازم کی حیثیت کا حوالہ دیا جاتا ہے. اس اسکیم میں، ایک ملازم صرف ایک پوزیشن حاصل کرسکتا ہے، لیکن ایک سے زیادہ (یا نہیں) ملازمین ہر پوزیشن کو بھر سکتے ہیں. مثال کے طور پر، آپ کے پاس "کیشئر" پوزیشن کے ساتھ سینکڑوں ملازمین ہوسکتے ہیں.
ہر ڈیٹا بیس کے بارے میں مندرجہ ذیل اضافی معلومات کے ساتھ ڈیٹا بیس میں اسٹائل نامی ایک میز بھی شامل ہوسکتا ہے:
- پوزیشنڈ
- عنوان
- ملازمت
- مہارت زمرہ
- مقام
اس ٹیبل میں پوزیشن ID فیلڈ ملازمین کی میز میں ملازم ID فیلڈ کی طرح ہے - یہ ایک منفرد تخلیقی انوزر ہے جس کی تشکیل کسی ڈیٹا بیس میں شامل ہوجائے گی.
جب ہم ڈیٹا بیس سے ملازمتوں کی ایک لسٹنگ کھولنے کے لئے جاتے ہیں، تو یہ ہر شخص کے نام اور ان کے عنوان کی درخواست کرنے کیلئے قدرتی ہو گی. تاہم، یہ معلومات ایک سے زیادہ ڈیٹا بیس میزوں میں ذخیرہ کیا جاتا ہے، لہذا یہ صرف ایک جین سوال کا استعمال کرتے ہوئے حاصل کیا جاسکتا ہے جس کی میزوں کے درمیان موجودہ تعلقات کی ضرورت ہوتی ہے.
جب آپ میزوں کی ساخت کو دیکھتے ہیں تو، تعلقات کی وضاحت کا میدان شاید واضح ہے - پوزیشن ID فیلڈ. ہر ملازم کو صرف ایک پوزیشن حاصل ہوسکتی ہے اور پوزیشن کی میز کے متعلقہ داخلے سے پوزیشن کی شناخت بھی شامل ہوتی ہے. پوزیشن میز کے لئے بنیادی کلید ہونے کے علاوہ، اس مثال میں، پوزیشن ID فیلڈ ملازمت کی میز سے پوزیشن میز پر ایک غیر ملکی کلیدی ہے. اس ڈیٹا بیس کو اس فیلڈ کا استعمال اس طرح سے کر سکتا ہے کہ معلومات کو متعدد جدولوں سے مل کر اور اس بات کو یقینی بنائے کہ ڈیٹا بیس میں کسی بھی تبدیلی یا اضافے کو حوالہ دار سالمیت کو نافذ کرنا جاری ہے .
ایک بار جب آپ نے غیر ملکی کلیدی کی شناخت کی ہے، تو آپ آگے بڑھا سکتے ہیں اور مندرجہ ذیل سوال کا استعمال کرتے ہوئے ڈیٹا بیس سے مطلوب معلومات ھیںچو:
SQL سرور میں غیر ملکی کلید بنانا
تکنیکی طور پر، آپ کو اوپر سے ایک جیسے سوالات انجام دینے کے قابل ہونے کے لئے واضح طور پر تعلقات کی وضاحت کرنے کی ضرورت نہیں ہے. تاہم، اگر آپ غیر ملکی کلیدی رکاوٹ کے استعمال سے واضح طور پر تعارف کرتے ہیں، تو ڈیٹا بیس آپ کے لئے کچھ گھریلو کام انجام دینے میں کامیاب ہوسکتا ہے:
- جب آپ ملازمین کی میز میں ایک نیا ریکارڈ شامل کرتے ہیں، تو ڈیٹا بیس اس بات کا یقین کرے گا کہ آپ کو داخل ہونے والی پوزیشن ID پوزیشن میز میں ایک درست بنیادی کلید ہے.
- اگر آپ پوزیشنوں کی میز میں مقام کی شناخت کو تبدیل کرتے ہیں، تو ڈیٹا بیس مستقل استحکام کو برقرار رکھنے کے لئے ملازمت کی میز پر ضروری اپ ڈیٹس انجام دے سکتا ہے.
- اس ڈیٹا بیس کو پوزیشن کی میز سے کسی پوزیشن کے خاتمے کے اثرات کے خلاف تحفظ فراہم کرسکتی ہے یا پھر ملازمت کے اندراجوں کے ساتھ پوزیشن کو خارج کرنے یا تمام متعلقہ ملازمتوں کی سنجیدگی کو ختم کرنے سے انکار کر سکتے ہیں.
یہاں ہے کہ آپ کس طرح SQL سرور میں غیر ملکی کلید بنائے جائیں گے:
مندرجہ ذیل جدول ملازمین خارجی کلیدی (PositionID) شامل ہیں حوالہ جات کی حیثیت (PositionID)جب آپ اس شق کو شامل کرکے میز کی تخلیق کرتے ہیں تو آپ ایک غیر ملکی کلید تشکیل دے سکتے ہیں:
فاریکس کلیدی ریفریجریشن پوزیشن (پوزیشن آئی ڈی)غیر ملکی کلیدی کالم کے لئے کالم کی تعریف کے اختتام تک.