بنام خدا

با سلام

يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالهاي متعددي آورده شده است.

منبع : این مطالب از سایت مایکروسافت بوده که در مواردی موضوعات را بیشتر شرح داده و یا مثالهایی را به آن اضافه نموده ام همچنین اصل مقاله مرتبط با بانک اطلاعاتی اكسس بوده كه سعي شده موضوعات كلي تر شده و در مثالها از بانك SQL Server استفاده شود.

در اين بخش به مرحله پنجم (تعيين و تشخيص ارتباطات مورد نياز) خواهيم پرداخت.

تعيين و تشخيص ارتباطات (Relationships) : تا مراحل قبل شما اطلاعات را به طبقات مختلف تقسيم بندي نموديد ( در قالب تعدادي جدول) حال لازم داريد بنحوي به بانك اطلاعاتي ، اطلاعات لازم را داده تا توانايي بازيابي اطلاعات مرتبط با هم را داشته باشد به اين عمل ايجاد و تعيين ارتباط گفته مي شود.

بطور مثال در فرم سفارش خريد شما اطلاعاتي از جدول مختلف مشاهده مي نماييد :

  • فيلد آدرس مشتري ، نام مشتري و ... از جدول مشتري (Customer Table)
  • نام فروشنده از جدول كارمندان (Employee Table)
  • شماره سفارش ، تاريخ سفارش ، تعداد كالا ، قيمت واحد و ... از جدول سفارش و جزييات سفاش (Order Table,OrderDetail Table)
  • نام كالا و .... از جدول كالاها (Products Table)

همانطور كه مي بينيد اين اطلاعات كه از لحاظ منطقي كاملا مرتبط مي باشند ولي با توجه به قوانين مديريت بانك هاي اطلاعاتي رابطه اي (Relational Database Management System-RDBMS)در قالب چندين جدول نگهداري مي گردند. اكنون لازم است شما ارتباطات بين اين جداول را تعريف نموده تا موتور بانك اطلاعاتي رابطه اي ، توانايي تشخيص اطلاعات مرتبط با هم را داشته باشد.

مثال : فرض كنيد شما مي خواهيد بصورت تلفني از يكي از كارمندان فروش ، سئوالاتي در خصوص يك سفارش نماييد. شماره تلفن كارمندان در جدول كارمندان (Employees) و اطلاعات فروش صورت گرفته در جدول  سفارشات (Orders Table) ثبت شده است هنگامي كه شما به بانك اطلاعاتي مي گوييد كه هدف شما كدام فروش مي باشد بانك اطلاعاتي قادر است شماره تلفن فروشنده را با توجه به ارتباط بين دو جدول بيابد و به شما نمايش دهد. امكان پذيري اين قضيه به اين خاطر است كه فيلد EmployeeID كه كليد اصلي در جدول كارمندان(Employees Table) مي باشد در جدول سفارش فروش(Table Orders) نيز تكرار گرديده است. در اصطلاحات بانك اطلاعاتي ، به فيلد EmployeeID در جدول سفارشات فروش (Orders Table) كليد خارجي (Foreign Key) گفته مي شود زيرا اين فيلد در جدول ديگري بعنوان كليد اصلي مي باشد.

شكل ذيل نشاندهنده اين رابطه مي باشد.

 

 

 

براي ايجاد يك ارتباط بين دو جدول – جدول A و جدول B- شما كليد اصلي يك جدول را به جدول ديگر نيز اضافه  مي نماييد لذا اين فيلد در هر دو جدول طاهر مي شود. اما در پاسخ به اين سئوال كه از كليد اصلي كدام جدول استفاد نماييد؟ براي تعيين ارتباط صحيح ، شما مي بايد ابتدا طبيعت ارتباط را تشخيص دهيد.اينجا ما سه نوع ارتباط بين جداول داريم :

  • ارتباط يك به چند (One-to-many relationships)
  • ارتباط چند به چند (Many-to-many relationships)
  • ارتباط يك به يك (One-to-one relationships)

خوب دوستان اينم از اين قسمت – در قسمت بعد در خصوص روش تشخيص نوع و ماهيت ارتباط به تفصيل صحبت خواهيم كرد و مثالهاي مورد نياز را خواهيم آورد.

 

اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد

و من ا... التوفيق – مدير سايت