ایک ڈیٹا بیس میں ایک ٹرانسمیشن انحصار ایک ہی میز میں اقدار کے درمیان غیر مستقیم تعلق ہے جو ایک فعال انضمام کا سبب بنتا ہے. تیسری عمومی شکل (3 این ایف) کی معمولی معیار کو حاصل کرنے کے لۓ، آپ کو کسی بھی ٹرانسمیشن انحصار کو ختم کرنا ہوگا.
اپنی نوعیت سے، ایک عدم تسلسل انحصار تین یا اس سے زیادہ صفات (یا ڈیٹا بیس کالم) کی ضرورت ہوتی ہے جو ان کے درمیان ایک فعال انحصار ہے، یعنی مطلب ہے کہ کالم اے میں ایک ٹیبل میں اے کالمیل بی کالم کے درمیان ایک انٹرمیڈیٹ کالم سی کے ذریعہ ہے.
آتے ہیں کہ یہ کیسے کام کر سکتا ہے.
ٹرانسمیشن تناسب مثال
AUTHORS
مصنف_ڈ | مصنف | کتاب | مصنف نیکی |
---|---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | اینڈر کا کھیل | ریاستہائے متحدہ امریکہ |
Auth_001 | آسنسن سکاٹ کارڈ | اینڈر کا کھیل | ریاستہائے متحدہ امریکہ |
مصنف_002 | مارگریٹ آٹروڈ | ہینڈیمڈ کی کہانی | کینیڈا |
AUTHORS مثال کے طور پر:
- کتاب → مصنف : یہاں، کتاب خاصیت کا تعین کرتا ہے مصنف وصف. اگر آپ کتاب کا نام جانتے ہیں، تو آپ مصنف کے نام سیکھ سکتے ہیں. البتہ، مصنف تعین نہیں کرتا کتاب ، کیونکہ مصنف ایک سے زیادہ کتابیں لکھ سکتا ہے. مثال کے طور پر، صرف اس وجہ سے کہ ہم مصنف کا نام Orson سکاٹ کارڈ جانتے ہیں، ہم اب بھی کتاب کا نام نہیں جانتے.
- مصنف → مصنف نیکی : اسی طرح، مصنف خاصیت کا تعین کرتا ہے مصنف نیکی ، لیکن ایک دوسرے کے ارد گرد نہیں ہے؛ صرف اس لئے کہ ہم جانتے ہیں کہ قومیت کا مطلب یہ نہیں ہے کہ ہم مصنف کا تعین کرسکتے ہیں.
لیکن یہ ٹیبل ایک ٹرانسمیشن انحصار متعارف کرایا ہے:
- کتاب → Author_Nationality: اگر ہم کتاب کا نام جانتے ہیں تو، ہم مصنف کالم کے ذریعہ قومیت کا تعین کرسکتے ہیں.
ٹرانسمیشن انحصار سے بچنے
تیسرے عمومی فارم کو یقینی بنانے کے لئے، چلو کو ٹرانسمیشن انحصار کو ہٹانا.
ہم مصنفین کی میز سے کتاب کے کالم کو ہٹانے اور علیحدہ کتابیں کی میز بنانے سے شروع کر سکتے ہیں:
کتابیں
Book_ID | کتاب | مصنف_ڈ |
---|---|---|
کتاب_001 | اینڈر کا کھیل | Auth_001 |
کتاب_001 | دماغ کے بچوں | Auth_001 |
کتاب_002 | ہینڈیمڈ کی کہانی | مصنف_002 |
AUTHORS
مصنف_ڈ | مصنف | مصنف نیکی |
---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | ریاستہائے متحدہ امریکہ |
مصنف_002 | مارگریٹ آٹروڈ | کینیڈا |
کیا یہ ٹھیک ہے؟ آئیے اب ہماری انحصار کی جانچ پڑتال کریں.
بک مارک:
- Book_ID → کتاب: The کتاب پر منحصر ہے Book_ID .
- اس ٹیبل میں کوئی اور انحصار موجود نہیں ہے، لہذا ہم ٹھیک ہیں. یاد رکھیں کہ غیر ملکی کلیدی مصنف_ڈ اس ٹیبل کو AUTHORS کی میز پر اپنی بنیادی کلید کے ذریعے روابط مصنف_ڈ . ہم نے ایک رشتہ دار انحصار سے بچنے کے لئے ایک تعلق پیدا کیا ہے، انحصار ڈیٹا بیس کا ایک اہم ڈیزائن.
AUTHORS میز:
- مصنف_ڈ → مصنف: The مصنف پر منحصر ہے مصنف_ڈ .
- مصنف → Author_Nationality: قومیت مصنف کی طرف سے مقرر کیا جا سکتا ہے.
- مصنف_ڈ → Author_Nationality: قومیت سے طے کیا جا سکتا ہے مصنف_ڈ کے ذریعے مصنف وصف. ہمارے پاس اب بھی ایک سنجیدہ انحصار ہے.
ہمیں اس اعداد و شمار کو معمولی کرنے کیلئے ایک تیسری میز شامل کرنے کی ضرورت ہے.
ممالک
Country_ID | ملک |
---|---|
Coun_001 | ریاستہائے متحدہ امریکہ |
Coun_002 | کینیڈا |
AUTHORS
مصنف_ڈ | مصنف | Country_ID |
---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | Coun_001 |
مصنف_002 | مارگریٹ آٹروڈ | Coun_002 |
اب ہمارے پاس تین میزیں ہیں، میزیں کے درمیان منسلک کرنے کیلئے غیر ملکی چابیاں استعمال کرتے ہیں:
- بک کی میز کی غیر ملکی کلیدی مصنف_ڈ AUTHORS ٹیبل میں ایک مصنف سے ایک کتاب.
- AUTHORS میز کی خارجی کلیدی Country_ID COUNTRIES ٹیبل میں ملک کے ایک مصنف.
- COUNTRIES ٹیبل میں کوئی غیر ملکی کلیدی نہیں ہے کیونکہ اس کو اس ڈیزائن میں کسی اور میز سے منسلک کرنے کی ضرورت نہیں ہے.
بدیہی ڈیٹا بیس خراب ڈیٹا بیس ڈیزائن کیوں ہیں
3 این ایف کو یقینی بنانے میں مدد کے لئے ٹرانسمیشن انحصار سے بچنے کا کیا قدر ہے؟ چلو اپنی پہلی میز پر دوبارہ دوبارہ غور کریں اور اس مسئلے کو دیکھیں جسے وہ تخلیق کرتا ہے:
AUTHORS
مصنف_ڈ | مصنف | کتاب | مصنف نیکی |
---|---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | اینڈر کا کھیل | ریاستہائے متحدہ امریکہ |
Auth_001 | آسنسن سکاٹ کارڈ | دماغ کے بچوں | ریاستہائے متحدہ امریکہ |
مصنف_002 | مارگریٹ آٹروڈ | ہینڈیمڈ کی کہانی | کینیڈا |
یہ قسم کا ڈیزائن اعداد و شمار کی بدنام اور متضاد اعداد و شمار میں حصہ لے سکتا ہے، مثال کے طور پر:
- اگر آپ نے دو کتابیں "دماغ کے بچوں" اور "اینڈر کے گیم" کو حذف کر دیا تو آپ مصنف "اوسن سکاٹ کارڈ" کو خارج کردیں گے اور ان کی قومیت کو ڈیٹا بیس سے مکمل طور پر ختم کردیں گے.
- آپ ڈیٹا بیس میں نئے مصنف کو شامل نہیں کر سکتے ہیں جب تک کہ آپ کسی کتاب کو بھی شامل نہ کریں؛ اگر مصنف ابھی تک شائع نہیں کیا گیا ہے یا آپ اس کتاب کا نام نہیں جانتے ہیں جس نے اس نے مصنف کیا ہے؟
- اگر "اوسن سکاٹ کارڈ" نے اپنی شہریت تبدیل کردی ہے، تو آپ کو اس کے تمام ریکارڈوں میں تبدیل کرنا ہوگا جس میں وہ ظاہر ہوتا ہے. اسی مصنف کے ساتھ ایک سے زیادہ ریکارڈ ہونے کے نتیجے میں غلط اعداد و شمار کا نتیجہ ہو سکتا ہے: اگر ڈیٹا اندراج شخص کو احساس نہیں ہوتا تو اس کے لئے کئی ریکارڈز ہیں اور اعداد و شمار میں صرف ایک ریکارڈ میں تبدیل ہوتے ہیں؟
- آپ کو "ہینڈمیمڈ کی کہانی" جیسے کتاب کو مکمل طور پر حذف نہیں کر سکتے ہیں.
یہ صرف چند وجوہات ہیں کہ معمولی، اور ٹرانسمیشن انحصار سے بچنے، ڈیٹا کی حفاظت اور استحکام کو یقینی بنانا.