شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .

امتیاز موضوع:
  • 180 رأی - میانگین امتیازات: 2.86
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
کلمات کلیدی
آموزش اکسس access

آموزش اکسس Access
#12
ارتباط بين جداول يك بانك اطلاعاتي


يك بانك اطلاعاتي ميتواند شامل بيش از يك جدول باشد . بعضي از جداول موجود در بانكهاي اطلاعاتي با هم در ارتباط و برخي ديگر ارتباطي با يكديگر ندارند. براي مثال يك كتابخانه را
 
درنظر بگيريد. براي موجوديت كتاب , يك جدول براي نگهداري مشخصات كتاب مورد نياز است. همچنين براي نگهداري مشخصات اعضا كتابخانه جدول ديگري نياز داريم . تا اينجا اين دو جدول با هم ارتباطي ندارند .
 
ولي اگر بخواهيد كتابهاي به امانت رفته و اعضايي كه آنها را به امانت برده اند را شناسايي كنيدنياز به داشتن جدول سومي است كه در آن مشخص ميشود كه كدام عضو, كدام كتاب را به امانت برده است


[تصویر:  do.php?img=1602]

این جدول ها نشان ميدهد كه هر عضو كدام كتاب را به امانت برده است، ولي نام كتاب و نام عضوي كه كتاب را امانت گرفته در اين جدول مشخص نيست
اين جدول با جدول مشخصات  كتاب داراي فيلد مشترك "كدكتاب" و با جدول اعضا داراي فيلد مشترك "كد اعضا" است .
براي بدست  آوردن نام كتاب و نام عضوي كه آن را امانت گرفته, نياز به ايجاد ارتباط بين اين جدول با دو جدول ديگرآوردن نام كتاب و نام عضوي كه آن را امانت گرفته, نياز به ايجاد ارتباط بين اين جدول با دو جدول ديگر است. در جداول مشخصات كتاب , فيلد كد كتاب ودر جدول مشخصات اعضا فيلد كد اعضا  داراي مقادير منحصر بهفرد (غير تكراري) هستند, در حاليكه در جدول كتابهاي امانت داده شده  ,اين فيلدها ميتوانند مقادير تكراري داشته باشند. ارتباط بين دو جدول از طريق فيلد مشترك آنها ايجاد ميشود.

شرايط موردنياز براي ايجاد يك ارتباط عبارتند از:
1-دو جدول در يك بانك اطلاعاتي قرار داشته باشند.
2-دو جدول داراي فيلد مشتركيباشند كه از نظر نوع داده يكسانند
3-فيلد مشترك برقرار كننده ارتباط در جدول پدر بايد كليد اصلي باشد يا مشخصه Indexed  آن مقدار غيرتكراري و منحصر به فرد Yes- No duplicates  باشد


بعد از ايجاد ارتباط بين جداول و انجام تنظميات لازم يكپارچگي يا جامعيت ارجاعي Referential Integrity  در سطح بانك اطلاعاتي برقرارميشود.
به اين معني كه از ناسازگار شدن دادهها در جداول و از ورود داده های متناقض و حذف داده هاي ضروري مورد نياز در ساير جداول جلوگيري ميشود

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

ACCESS اجازه حذف ركوردي از جدول اصلي كه در جدول فرعي از آن استفاده شده است را به كاربر نميدهد. مثلا نميتوانيد عضوي را از جدول مشخصات اعضا حذف كنيد , در حاليكه كد آن عضو در جدول كتابهاي امانت داده شده موجود باشد.

ACCESS اجازه ويرايش مقدار فيلد مشترك در جدول اصلي(كليد اصلي) راكه در جدول فرعي از آن  استفاده شده است, به كاربر نميدهد. مثلا نميتوانيد كد عضوي را از جدول مشخصات اعضا تغييردهيد در حاليكه كد آن عضو در جدول كتابهاي امانت داده شده موجود باشد.

اگر كاربر بخواهداقدام به حذف يا ويرايش تعدادي ركورد در جداول اصلي كند ACCESS مانع میشود مگر اينكه ابتدا در جداول فرعي ركوردهاي مرتبط را حذف كرد. براي برداشتن محدوديت ACCESS  قابليتي را به نام حذف و بروز رساني آبشاري دارد


حذف و بروز رساني آبشاري فيلدها  Cascade Delete/Update Fields

هنگامي كه جامعيت ارجاعي فعال باشد ميتوانيد از بروز رساني و حذف آبشاري نيز استفاده كنيد. در بروزرساني آبشاري  وقتي كه كليد اوليه در جدول اصلي تغيير ميكند  در جدول مرتبط (جدول فرعي)نيزمقدار فيلد خارجي تغيير ميكند.
 همچنين در حذف آبشاري نيز هنگامي كه كليد اوليه در جدول اصلي حذف شود  در جدول مرتبط (جدول فرعي)نيز مقدارفيلد خارجي حذف ميشود

ايجاد ارتباط بين جداول در ACCESS
براي آشنايي با نحوي ايجاد ارتباط بين جداول در ACCESS ابتدا داده هایی که در بالا به صورت جدول آمده است را با عنوان هایی   براي    كتابهاي امانت داده HoldInTrust   براي مشخصات اعضا و Members     براي مشخصات كتاب BOOKS را در يك بانك اطلاعاتي به نام LIBRARY  ايجاد كنيد و فيلدهاي كدكتاب در جدول مشخصات كتاب و كد اعضا در جدول مشخصات اعضا را كليد اصلي قرار دهيد


ایجاد ارتباط
يكي از جداول را در نمای DataSheet   باز كنيد تا زبانه Datasheet  نمايان شود سپس از گروه Relationships  روي دكمه ي Relationship  كليك كنيد
 [تصویر:  do.php?img=1467]

به اين ترتيب يك زبانه با عنوان RelationShip  در قسمت زبانه هاي جداول اضافه ميشود و كادري با عنوان Show Table  نيز نمايش داده ميشود. (در صورت عدم نمايش كادر
Show Table روی دکمه  ShowTable  دیده میشود کلیک کنید)

[تصویر:  do.php?img=1603]


نام جداول موردنظر خود را در كادر ShowTable  را انتخاب و Add کنید تا در صفحه درج شود


[تصویر:  do.php?img=1604]

براي بستن كادر ShowTable  روی دکمه Close در این کادر کلیک کنید

براي ساخت يك رابطه فيلد كليد اصلي در جدول اصلي را به سمت فيلد مرتبط در جدول فرعي بكشيد و رها كنيد

به اين ترتيب يك كادر با عنوان  Edit Relationships  باز ميشود.و نام فيلدهاي شركت كننده درارتباط را نشان ميدهد.
 براي اينكه قوانين جامعيت ارجاعي اجرا شوند گزينه
  Enforce Referentioal Integrit      را انتخاب كنيد. به منظور اجراي حذف و بروز رساني آبشاري فيلدها نيز ميتوانيد دو گزينه ی Cascade Update Related Fields و
Cascade Delete Related Fields را در حالت انتخاب قرار دهید


[تصویر:  do.php?img=1605]

روی دکمه Create کلیک کنید
به اين ترتيب ارتباط بين جداول با خطوطي نمايان ميشود.ارتباطات ايجاد شده در اين مثال از نوع يك به چند است

[تصویر:  do.php?img=1606]


  انواع ارتباط بين جداول
بر اساس اينكه چه تعداد ركورد از طريق فيلد مشترك در دو جدول با هم مرتبط ميشوند , نوع ارتباطها متفاوت است از اين لحاظ ارتباط ها به چند دسته تقسيم ميشوند.

(one to one) • ارتباط يك به يك
اين نوع ارتباط زماني ميتواند برقرار شود كه يك ركورد از يك جدول فقط با يك ركورد از جدول ديگر ازطريق فيلد مشترك دو جدول با هم در ارتباط باشند .
براي مثال فرض كنيد جدولي با فيلدهاي كد معلم , نام ,نام خانوادگي , شماره شناسنامه وآدرس براي نگهداري مشخصات فردي يك معلم و جدول ديگري با فيلدهاي كد معلم ,مدرك تحصيلي ,سال استخدام , كد درس و گروه براي نگهداري مشخصات شغلي معلم در نظرگرفته شود.
 اين دو جدول را ميتوان از طريق فيلد مشترك كد معلم به هم ارتباط داد. ارتباط اين دو جدول از نوع يك يه يك است زيرا يك ركورد از جدول اول با يك ركورد از جدول دوم در ارتباط است. در واقع مشخصات هر معلم به دو قسمت تقسيم شده و در دو جدول قرار گرفته است.


(one to many) • ارتباط يك به چند
در ارتباط يك به چند, يك ركورد از يك جدول با چند ركورد از جدول ديگر از طريق فيلد مشترك در ارتباطند.در بخش قبل مشاهده كرديد كه جدول مشخصات كتاب براي هر كتاب يك ركورد نگهداري ميكند اين جدول با جدول كتابهاي امانت داده شده از طريق كد كتاب در ارتباط است .

يك كتاب را در تاريخ هاي متفاوت افراد مختلفي به امانت ميبرند . بنابراين هر كد كتاب ميتواند در چند ركورد از كتابهاي امانت داده شده, ظاهر شود. بنابراين اين ارتباط يك يه چند است.


(many to many) • ارتباط چند به چند
در ارتباط چند به چند , يك ركورد از جدول اول با چند ركورد از جدول دوم و همچنين يك ركورد از جدول دوم با چند ركورد از جدول اول در ارتباط است .
اين نوع ارتباط در عمل به طور مستقيم بين دو جدول وجود ندارد و به يك جدول واسط نياز است كه كليد اصلي دو جدول ديگر به عنوان كليد خارجي در اين جدول واسط قرارداشته باشد.
آرامشت را به هیچ کس و هیچ چیز وابسته نکن  تا همواره در آرامش باشی... 
پاسخ
 سپاس شده توسط saberi ، neda ، saye.tanha ، نگار ، elshan ، mesterweb ، sahel ، hoboot ، shahram20 ، afshin21 ، bahram ، tak ، ساناز ، soraya ، araam ، shahab ، fatima


پیام‌های داخل این موضوع
آموزش اکسس Access - توسط ms.khassi - ۹۵/۳/۱۱، ۰۹:۲۷ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۱۲، ۰۸:۵۵ عصر
RE: آموزش Access - توسط mesterweb - ۹۵/۳/۱۲، ۱۱:۴۵ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۱۴، ۱۱:۵۵ صبح
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۱۶، ۰۳:۵۰ صبح
RE: آموزش Access - توسط hoboot - ۹۵/۳/۱۷، ۱۲:۴۶ صبح
RE: آموزش Access - توسط elshan - ۹۵/۳/۱۷، ۰۶:۱۵ صبح
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۱۸، ۰۶:۰۰ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۲۰، ۰۷:۴۶ عصر
RE: آموزش Access - توسط sara67 - ۹۵/۳/۲۲، ۰۷:۱۲ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۲۴، ۰۵:۴۶ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۳/۲۸، ۰۵:۳۷ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۴/۴، ۱۲:۵۷ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۴/۱۴، ۰۲:۳۰ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۴/۲۹، ۰۸:۲۸ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۵/۱۳، ۰۸:۴۰ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۶/۱۰، ۰۷:۵۱ عصر
RE: آموزش Access - توسط ms.khassi - ۹۵/۷/۷، ۱۰:۱۳ صبح
RE: آموزش Access - توسط ms.khassi - ۹۵/۸/۱، ۰۷:۳۸ عصر
RE: آموزش ACCESS - توسط ramin9000 - ۹۶/۸/۷، ۰۲:۰۵ عصر
RE: آموزش اکسس Access - توسط kood5k - ۹۷/۵/۲۳، ۱۲:۰۴ عصر

موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تاریخچه اکسس parva55 0 1,145 ۹۹/۶/۲۶، ۱۱:۲۰ صبح
آخرین ارسال: parva55

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان