ڪنهن ڊيٽابيس ۾ هڪ کان گهڻا تعلقات

ڊيٽابيس ۾ هڪ کان وڌيڪ تعلق پيدا ٿئي ٿي جڏهن جدول ٽي ۾ هر رڪارڊ ٽيبل بي ۾ ڪيترا ئي رڪارڊ رڪارڊ هوندا هجن، پر جدول ب ۾ هر رڪارڊ ٽيبل ۾ صرف هڪ لکندڙ رڪارڊ هوندا. A ۾ هڪ کان وڌيڪ تعلقات هڪ ڊيٽابيس جو سڀ کان وڌيڪ عام رشتي واري ڊيٽابيس جي ڊيزائن ۽ سٺي نموني جي دل آهي.

استاد ۽ ڪورس جي وچ ۾ تعلق رکون ٿا اهي سکيا وڃن. هڪ استاد ڪيترن ئي ڪورسنگ سکيا ڪري سگھن ٿا، پر انهي سان گڏ هڪ استاد جو تعلق نه استاد وٽ هوندو.

تنهن ڪري، هر رڪارڊ جي استادن جي ميز ۾، ڪورسز جي جدول ۾ ڪيترا رڪارڊ ٿي سگهي ٿي. هي هڪ کان وڌيڪ تعلق آهي: هڪ استاد ڪيترن ئي ڪورسن ڏانهن.

هڪ هڪ کان گهڻائي رشتو قائم ڪرڻ ضروري آهي

هڪ کان وڌيڪ رشتي جي نمائندگي ڪرڻ لاء، توهان گهٽ ۾ گهٽ ٻه ٽيبل جي ضرورت آهي. اچو ته ڏسون ڇو.

شايد شايد اسان هڪ استادن جي ٽيبل تيار ڪيو جنهن ۾ اسان کي نالو ۽ ڪورس سيکارڻ جي رڪارڊ ڪرڻ چاهيندا هئاسين. اسان شايد اهو هن طرح ڊزائين ٿا:

استاد ۽ ڪورس
استاد_ID استادن جو نالو ڪورس
استاد_001 ڪيمن حياتيات
استاد_002 ويرونيڪا Math
استاد_003 جور انگريزي

ڇا ته کارين ٻه يا وڌيڪ ڪورس سيکاري ٿو؟ اسان وٽ هن ڊزائين سان ٻه اختيار آهن. اسان صرف اهو ڪريمين جي موجوده رڪارڊ تي شامل ڪري سگھو ٿا، جهڙوڪ:

استاد ۽ ڪورس
استاد_ID استاد _ نام ڪورس
استاد_001 ڪيمن حياتيات، رياضي
استاد_002 ويرونيڪا Math
استاد_003 جور انگريزي

جڏهن ته مٿين ڊزائن جو، انڪشاف آهي ۽ شايد مسئلن جي نتيجي ۾ بعد ۾ داخل ڪرڻ، تبديل ڪرڻ يا حذف ڪرڻ جي نتيجي ۾ ٿي سگهي ٿي.

اهو ڊيٽا کي ڳولڻ ۾ ڏکيو آهي. هي ڊزائينٽ ڊيٽابيس جي معمولي ٺاهڻ جي پهرين اصول کي ڀڃڪڙي ڪري ٿو، پهريون عام معمولي فارم (1NF) ، جنهن جو بيان آهي ته هر ميز تي سيل ڊيٽا جي هڪ واحد، ڊسڪ ٽڪر هجڻ گهرجي.

هڪ ٻيو ڊيزائن بدران صرف ڪارمن لاء هڪ ٻيو رڪارڊ شامل ٿي سگهي ٿو.

استاد ۽ ڪورس
استاد _ID استاد _ نام ڪورس
استاد_001 ڪيمن حياتيات
استاد_001 ڪيمن Math
استاد_002 ويرونيڪا Math
استاد_003 جور انگريزي

هي 1 اين ايف جي پيروي آهي پر اڃا به خراب ڊيٽابيس ڊيزائن آهي ڇاڪاڻ ته اها بيچيني جو تعارف ڪرائي ٿي ۽ شايد وڏي وڏي ڊيٽابيس کي غير ضروري طور تي بلا ڪري سگهي ٿو. وڌيڪ اھميت، ڊيٽا کي متضاد ٿي سگهي ٿو. مثال طور، ڇا ته ڪئرمين جو نالو ڇا بدلجي ويو آهي؟ جيڪو ڊيٽا سان گڏ ڪم ڪري سگهي ٿو پنهنجي نالي جي هڪ رڪارڊ ۾ تازه ڪاري ڪري ٿو ۽ ان کي ٻيو ريڪارڊ ۾ تازه ڪاري ڪرڻ ۾ ناڪام ٿيو. هي ڊزائن کي ٻيون عام فارم (2 اين ايف) جي خلاف ورزي آهي، جيڪو 1 اين ايف جي پيروي ڪري ٿو ۽ ڊيٽا جي سبسبل کي مختلف جدولن ۾ ورهائڻ ۽ انهن جي وچ ۾ رابطي پيدا ڪرڻ سان پڻ ڪيترن ئي رڪارڊز جي بيڪارين کان بچڻ گهرجي.

هڪ کان وڌيڪ تعلقات سان گڏ ڊيٽابيس ڪيئن ٺاهيو

استاد ۽ نصاب جي ٽيبل ۾ هڪ هڪ کان وڌيڪ تعلق لاڳو ڪرڻ لاء، اسان ٻن ۾ ٽيبل کي ٽوڙڻ ۽ ڌارين ڪيڪ استعمال ڪندي ان کي ڳنڍيندا آهيون.

هتي، اسان استادن جي ٽيبل ۾ ڪورس ڪورس ختم ڪيو آهي:

استاد
استاد _ID استاد _ نام
استاد_001 ڪيمن
استاد_002 ويرونيڪا
استاد_003 جور

۽ هتي ڪلاس ڪلاس آهي. نوٽ ڪيو ته ان جي پرڏيهي اهم، استاد_ID، استاد ٽيبل ۾ استاد ڏانهن هڪ ڪورس جوڙي:

ڪورس
کورس_ID ڪورس جو نالو استاد_ID
کورس_001 حياتيات استاد_001
کورس_002 Math استاد_001
کورس_003 انگريزي استاد_003

ھڪٻئي کي استعمال ڪندي اسان استاد ۽ ڪورسز جي جدول جي وچ ۾ ھڪڙي تعلق پيدا ڪيو آھي.

هي اسان کي ٻڌائي ٿو ته حياتيات ۽ رياضي کي ڪيممن پاران سيکاريا ويا آهن ۽ جوج انگريز سيکاريندو آهي.

اسان اهو ڏسي سگھون ٿا ته هي ڊزائن ڪي ممنوع بغاوت کان بچي سگھن ٿا، انفرادي استادن کي وڌيڪ ڪورسز سکڻ جي اجازت ڏئي ٿو، ۽ هڪ کان وڌيڪ تعلقات لاڳو ڪري ٿو.

ڊيسڪٽيسس پڻ هڪ هڪ تعلق ۽ هڪ کان گهڻا گهرا لاڳاپا لاڳو ڪري سگهن ٿا.