معمول کو یقینی بنانے میں مدد کرنے کے لئے ٹرانسمیشن انحصار سے بچیں
ایک ڈیٹا بیس میں ایک ٹرانسمیشن انحصار ایک ہی میز میں اقدار کے درمیان غیر مستقیم تعلق ہے جو ایک فعال انضمام کا سبب بنتا ہے . تیسری عمومی شکل (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 | مارگریٹ آٹروڈ | کینیڈا |
کیا یہ ٹھیک ہے؟ آئیے اب ہماری انحصار کی جانچ پڑتال کریں.
کتابیں میز :
- کتاب_ڈ → کتاب: کتاب کتاب_ID پر منحصر ہے.
- اس ٹیبل میں کوئی اور انحصار موجود نہیں ہے، لہذا ہم ٹھیک ہیں. نوٹ کریں کہ غیر ملکی کلید مصنف_ID اس ٹیبل کو AUTHORS کی میز پر اس کی بنیادی کلید مصنف_ID کے ذریعے منسلک کرتا ہے . ہم نے ایک رشتہ دار انحصار سے بچنے کے لئے ایک تعلق پیدا کیا ہے، انحصار ڈیٹا بیس کا ایک اہم ڈیزائن.
AUTHORS میز :
- مصنف_ID → مصنف: مصنف مصنف_ID پر منحصر ہے.
- مصنف → مصنف نوٹیفیکیشن: قومیت مصنف کی طرف سے مقرر کیا جا سکتا ہے.
- مصنف_ID → مصنف نیکائٹیٹی: قومیت مصنف مصنف کی خاصیت کے ذریعہ مصنف_ID سے طے کیا جا سکتا ہے. ہمارے پاس اب بھی ایک سنجیدہ انحصار ہے.
ہمیں اس اعداد و شمار کو معمولی کرنے کیلئے ایک تیسری میز شامل کرنے کی ضرورت ہے.
ممالک
Country_ID | ملک |
---|---|
Coun_001 | ریاستہائے متحدہ امریکہ |
Coun_002 | کینیڈا |
AUTHORS
مصنف_ڈ | مصنف | Country_ID |
---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | Coun_001 |
مصنف_002 | مارگریٹ آٹروڈ | Coun_002 |
اب ہمارے پاس تین میزیں ہیں، میزیں کے درمیان منسلک کرنے کیلئے غیر ملکی چابیاں استعمال کرتے ہیں:
- BOOK میز کی غیر ملکی کلید مصنف_ID AUTHORS میز میں ایک مصنف سے ایک کتاب سے متعلق ہے.
- AUTHORS ٹیبل کی غیر ملکی کلید ملک_ID COUNTRIES ٹیبل میں کسی ملک میں ایک مصنف سے منسلک ہے.
- COUNTRIES ٹیبل میں کوئی غیر ملکی کلیدی نہیں ہے کیونکہ اس کو اس ڈیزائن میں کسی اور میز سے منسلک کرنے کی ضرورت نہیں ہے.
بدیہی ڈیٹا بیس خراب ڈیٹا بیس ڈیزائن کیوں ہیں
3 این ایف کو یقینی بنانے میں مدد کے لئے ٹرانسمیشن انحصار سے بچنے کا کیا قدر ہے؟ چلو اپنی پہلی میز پر دوبارہ دوبارہ غور کریں اور اس مسئلے کو دیکھیں جسے وہ تخلیق کرتا ہے:
AUTHORS
مصنف_ڈ | مصنف | کتاب | مصنف نیکی |
---|---|---|---|
Auth_001 | آسنسن سکاٹ کارڈ | اینڈر کا کھیل | ریاستہائے متحدہ امریکہ |
Auth_001 | آسنسن سکاٹ کارڈ | دماغ کے بچوں | ریاستہائے متحدہ امریکہ |
مصنف_002 | مارگریٹ آٹروڈ | ہینڈیمڈ کی کہانی | کینیڈا |
یہ قسم کا ڈیزائن اعداد و شمار کی بدنام اور متضاد اعداد و شمار میں حصہ لے سکتا ہے، مثال کے طور پر:
- اگر آپ نے دو کتابیں "دماغ کے بچوں" اور "اینڈر کے گیم" کو حذف کر دیا تو آپ مصنف "اوسن سکاٹ کارڈ" کو خارج کردیں گے اور ان کی قومیت کو ڈیٹا بیس سے مکمل طور پر ختم کردیں گے.
- آپ ڈیٹا بیس میں نئے مصنف کو شامل نہیں کر سکتے ہیں جب تک کہ آپ کسی کتاب کو بھی شامل نہ کریں؛ اگر مصنف ابھی تک شائع نہیں کیا گیا ہے یا آپ اس کتاب کا نام نہیں جانتے ہیں جس نے اس نے مصنف کیا ہے؟
- اگر "اوسن سکاٹ کارڈ" نے اپنی شہریت تبدیل کردی ہے، تو آپ کو اس کے تمام ریکارڈوں میں تبدیل کرنا ہوگا جس میں وہ ظاہر ہوتا ہے. اسی مصنف کے ساتھ ایک سے زیادہ ریکارڈ ہونے کے نتیجے میں غلط اعداد و شمار کا نتیجہ ہو سکتا ہے: اگر ڈیٹا انٹری شخص کو احساس نہیں ہے تو اس کے لئے کئی ریکارڈ ہیں اور صرف ایک ریکارڈ میں اعداد و شمار کو تبدیل کرتے ہیں؟
- آپ کو "ہینڈمیمڈ کی کہانی" جیسے کتاب کو مکمل طور پر حذف نہیں کر سکتے ہیں.
یہ صرف چند وجوہات ہیں کہ معمولی ، اور ٹرانسمیشن انحصار سے بچنے، ڈیٹا کی حفاظت اور استحکام کو یقینی بنانا.