نگاهی کلی به اجزای اصلی
در درس پيش با مفهوم پايگاه داده آشنا شديم و تا حدودي به جزئيات پنجره Database پرداختيم و آشنايي لازم را با دكمه هاي اين پنجره پيدا كرديم در اين قسمت درس قصد داريم تا پنجره Database را بيشتر از قبل بررسي و تحليل كنيم. اين درس در واقع ادامه درس قبلي مي باشد پس اين درس نيز از نظر اهميت داراي درجه بالايي است.
نگاهي به جداول:
اگر پايگاه داده, هيچ شي ديگري نداشته باشد, همواره بايد حداقل يك جدول داشته باشد. داده هاي پايگاه داده را جدول نگهداري مي كند. همانطوري كه در درس قبل اشاره شد,جداول اغلب با مقادير داده مشترك به يكديگر مرتبط مي شوند, به ترتيبي كه دو يا چند جدول نبايد داده هاي زيادي يا تكراري داشته باشند. براي نمايش اسامي جداول موجود در پايگاه داده بر روي شاخص Tables در پنجره Database كليك كنيد. براي باز كردن و مشاهده محتويات هر جدول مي توانيد بر روي نام آن جدول دوبار كليك كنيد. كه در اين حالت Access جدول را در حالت نمايش Datasheet يا كاربرگ باز مي كند,كه در اين حالت شما مي توانيد داده هاي موجود در جدول را مشاهده كنيد. معمولا در حالت نمايشي كاربرگ تمامي داده هاي يك سطر جدول در صفحه نمايش جا نمي گيرد. براي مشاهده بقيه داده هاي هر سطر مي توانيد از ميله هاي گردش افقي پنجره در زير آن استفاده كنيد و به چپ و راست برويد. جدول براي مشاهده و كار با آن, به حالات ديگري هم براي نمايش نياز دارد. در حاليكه حالت نمايشي Datasheet يا كاربرگ امكان مشاهده, افزودن, حذف و اصلاح داده هاي جدول را مي دهد, حالت نمايشي طراحي كه در اكسس با عنوان Design view شناخته مي شود امكان تغيير شكل جدول و طراحي خود جدول را فراهم مي كند. البته وقتي كه بيشتر راجع به ساختار جدول صحبت كرديم شما تصوير بهتري از حالت طراحي خواهيد داشت. به طور كلي حالت Datasheet براي اضافه كردن و مشاهده داده ها و حالت طراحي براي طراحي و تغيير خود جدول نه داده ها به كار مي رود. براي ديدن جدول در حالت نمايشي طراحي يا Design مي توانيد جدول خود را انتخاب كرده و سپس بر روي دكمه design در بالاي پنجره Database كه قبلا معرفي شد كليك كنيد. بعد از باز كردن پنجره در حالت Design ملاحظه خواهيد كرد كه در اين حالت هيچ خبري از داده هاي موجود در جدول نيست و فقط شكل جدول در اين حالت در دسترس است. اگر جدول را در حالت Datasheet باز كرده ايد و قصد رفتن به حالت design را داريد اين كار را مي توانيد با استفاده از منو view و انتخاب دو حالت Datasheet view و Design view انجام دهيد و به راحتي بين دو حالت جدول حركت كنيد. جدول ساختاري مشخص و اكيد دارد. داده هاي جدول در داخل جدول درون سطرها و ستونها جدول قرارگرفته و سازماندهي مي شوند كه به اين سطرها و ستونها به ترتيب ركورد و فيلد گفته مي شود(حتما به خاطر بسپاريد سطر در معناي ركورد و ستون در معناي فيلد به كار مي رود.) هر ركورد جدول بيانگر يك داده مستقل است. مثلا: در جدول اقلام موجودي در انبار هر ركورد جدول نشان دهنده يكي از انواع قطعات موجود در انبار است.هر فيلد ركورد, نشانه دهنده جزيي از داده هاي مربوط به هر قطعه, مانند شماره قطعه, تعداد و شرح است. اگر قطعه اي 32 عدد موجود باشد, ركورد قطعه فقط يك بار در جدول تكرار مي شود اما ميزان موجودي در فيلد تعداد منعكس مي شود. با توجه كردن به شكل 51 زير بيشتر مفهوم اين بيان را خواهيد فهميد.
اين كه تمامي ركوردها, فيلدهاي مشابهي دارند, به اين معني نيست كه تمامي فيلدهاي هر ركورد بايد پر باشد. مثلا يك جدول موجودي, ممكن است فيلدي به نام قيمت خرده فروشي داشته باشد, ولي فقط تعداد اندكي از ركوردها, مقداري را در اين فيلد نگه داشته باشند. بنابراين برخي از ركوردها قيمت خرده فروشي ندارند عليرغم اينكه پاره اي از ركوردهاي جدول, قيمت خرده فروشي دارند. توجه به اين نكته ضروري است كه فيلد مشترك مانند شماره قطعه يا كد مشتري, مبناي ارتباط بين دو جدول مرتبط را تشكيل مي دهد و امكان خالي رد كردن اين فيلدها داده نمي شود. وجود فيلد مشتركي كه دو جدول را به يكديگر مرتبط مي كند, بدين معني است كه امكان رهائي كامل از داده هاي تكراري وجود ندارد. براي دو جدول مرتبط, داده ها بايد تكرار شوند زيرا هر دو جدول بايد فيلدهاي مشتركي براي ارتباط داشته باشند. شايد اگر براي تمامي داده ها يك جدول بزرگ ايجاد كنيد, مجبور به داشتن فيلدهاي تكراري نباشيد, اما با اينكار زمان زيادي را در ورود داده ها هدر خواهيد داد, چون در هر ركورد بايد تمامي فيلدهاي پايگاه داده وجود داشته باشد و از طرفي بعضي مواقع هم امكان ايجاد يك جدول بزرگ وجود ندارد پس ما مجبور به استفاده از چندين جدول هستيم كه بهترين راه براي جلوگيري از افزايش تعداد داده هاي مشترك استفاده از ارتباط فيلد مشترك است. بعد از كار با جدول مي توانيد جدول را با استفاده از منو File و گزينه Close ببنديد.
نگاهي به بازجست:
براي مشاهده بازجستهاي هر پايگاه داده بايد بر روي شاخص Queries در پنجره Database استفاده كنيد. براي باز كردن هر بازجست مي توانيد بر روي نام آن دوبار كليك كنيد يا بد از انتخاب آن به وسيله ماوس بر روي دكمه Open در بالاي پنجره Database كليك كنيد. هنگامي كه بازجستي را باز مي كنيد, اكسس آن بازجست را در حالت نمايش Datasheet مربوط به بازجست باز مي كند, كه كاملا مشابه حالت نمايشي Datasheet مربوط به جدول است. تنها تفوت در آن است كه حالت نمايشي Datasheet مربوط به بازجست معمولا به اندازه جدول, داده و اطلاعات ندارد. در واقع اين حالت نمايشي ميزان محدودي از داده ها را, كه مقصود اصلي از ايجاد بازجست است نمايش مي دهد. بازجست, داده ها را از يك يا چند جدول انتخاب مي كند و مي توانيد زيرمجموعه اي از داده ها را به عنوان جدول يا گزارش نمايش دهيد. در بيشتر مواقع مقدار داده هاي پايگاه داده بيشتر از آن است كه مايل به مشاهده هستيد. هدف از ايجاد بازجست, محدود كردن مقدار داده هاي به نمايش درآمده است. بازجست انتخابي از جمله متداولترين انواع بازجست ها است. بازجست انتخابي, داده ها را ميان دو يا چند جدول انتخاب كرده و نمايش مي دهد. علاوه بر حالت نمايشي Datasheet كه مانند حالت نمايشي جدول مي باشد بازجست را مي توان در حالت نمايشي Design نيز باز كرد كه مربوط به حالت طراحي بازجست است و براي رفتن به اين حالت مي توانيد درست مانند جدول رفتار كنيد و يا با انتخاب بازجست مورد نظر و كليك روي دكمه Design در بالاي پنجره Database اين حالت را نمايان كنيد. همانطور كه مشاهده مي كنيد حالت طراحي Design مربوط به بازجست, ظاهر پيچيده اي دارد. اما بعد از آشنايي كامل با بازجست ايجاد و اجراي آن براي شما بسيار ساده خواهد بود. ايجاد بازجست در حالت طراحي Design و نمايش آن در حالت نمايشي Datasheet صورت مي پذيرد. بعد از پايان كار خود با بازجست مي توانيد بوسيله منو File و گزينه Close بازجست را ببنديد.
نگاهي به فرم:
براي مشاهده فرمهاي يك پايگاه داده, از شاخص Form در پنجره Database استفاده مي كنيم. براي مشاهده محتواي هر فرم مي توانيد در روي نا آن دوبار كليك كنيد و يا پس از انتخاب فرم مورد نظر بر روي دكمه Open در بالاي پنجره Database كليك كنيد. بعد از باز كردن فرم مورد نظر اكسس آنرا در حالت نمايش Form يا Form View نشان خواهد داد. حالت نمايشي Form, فرم را در شكل نهايي آن نشان مي دهد و امكان ورود, اصلاح و نمايش داده ها را فراهم مي سازد. كليدهاي راهبري كه در زير اكثر حالات نمايشي وجود دارد, شماره ركورد و تعداد كل آنها را نمايش مي دهد. چهار كليد اطراف نشانگر ركورد, براي گرداندن فرم و نمايش ركوردهاي مختلف به كار مي رود. شما مي توانيد ركوردهاي اول, بعدي, قبلي و آخري را مشاهده كنيد. شماره بين كليدها, شماره ركورد جاري كه فعلا مشاهده مي كنيد است.اگر بر روي شماره ركورد جاري, شماره ركورد جديدي را وارد كنيد اكسس در صورت وجود آن ركورد آنرا در فرم نمايش مي دهد.كليدهاي راهبري كه در منتهي اليه سمت راست قرار دارد, امكان ايجاد ركورد جديدي را با يك فرم خالي فراهم مي سازد. همانطور كه مشاهده مي كنيد كليدهاي راهبري مشابه كليدهاي كنترلي پخش صوت طراحي شده اند. با توجه كردن به شكل 52 در زير مفهوم كليدهاي راهبري را بيشتر درك خواهيد كرد.
حالت نمايشي Design در مورد Form نيز شكل فرم را نشان مي دهد. براي دسترسي به اين حالت شما مي توانيد درست مانند جدول رفتار كنيد و يا با انتخاب فرم مورد نظر بر روي دكمه Design در بالاي پنجره Database كليك كنيد. شايد براي شما در اين لحظه شكل آن عجيب به نظر بيايد ولي وقتي در درسهاي آتي روش ايجاد فرم را فراگرفتيد, نحوه خواندن حالت نمايشي Form را نيز خواهيد فهميد. با دستكاري در حالت نمايشي Design, مي توانيد نحوه نمايش داده هاي درون فرم را تغيير دهيد. در درون فرم حالت نمايشي ديگري نيز وجود دارد و آن حالت نمايشي Datasheet است. كه براي دسترسي به آن بعد از باز كردن فرم مورد نظر مي توان از منو View گزينه Datasheet را انتخاب كرد.اين حالت كاملا شبيه حالت نمايشي Datasheet در جداول است. مزين حالت نمايشي Datasheet به حالت نمايشي معمولي فرم در اين است كه در اين حالت تعداد ركورد بيشتري نمايش داده مي شود در حالي كه در حالت نمايش معمولي فقط يك ركورد نمايش داده مي شود. البته در درسهاي آتي بيشتر در مورد اين حالت نمايشي صحبت خواهد شد. بعد از پايان كار با فرم مي توانيد به وسيله منوي File و گزينه Close از فرم مورد نظر خارج شويد.
نگاهي به گزارش:
براي نمايش گزارشهاي هر پايگاه داده مي توان از شاخص Reports در پنجره Database استفاده كرد. هرچند كه مي توان گزارشها را روي صفحه نمايش بازنگري كرد ولي وقتي كه آنها را بر روي كاغذ چاپ كنيم بسيار مفيدتر خواهند بود. اگر بخواهيم قبل از چاپ محتواي گزارش را مشاهده كنيم مي توانيم بر روي نام گزارش مورد نظر دوبار كليك كنيم يا با انتخاب گزارش موردنظر بر روي دكمه Preview در بالاي پنجره Database كليك كنيم. (البته بايد توجه كرد كه گزارش تنها مختص چاپ كردن نيستند و كاربردهاي ديگري نيز دارند) شما مي توانيد گزارشي بسازيد كه تمامي داده هاي يك جدول, چندين جدول, بازجست را نمايش دهد.با باز كردن گزارش شما آنرا در حالت Print Preview (بازنگري چاپ) به نمايش در خواهيد آورد.بازنگري چاپ گزارش را در شكل نهايي آن نشان مي دهد, اما بجاي چاپ گزارش, آنرا برروي صفحه مشاهده مي كنيد, تا قبل از چاپ گزارش از صحت آن مطمئن شويد. در حالت Print Preview در مورد گزارش, امكان تغيير, اضافه يا حذف داده ها از پايگاه داده وجود ندارد. ولي با استفاده از آن مي توانيد مقادير مختلفي از اطلاعات را مشاهده كنيد. دقت داشته باشيد كه در هنگام حركت ماوس بر روي پنجره Print Preview, مكان نماي ماوس به يك ذره بين تبديل مي شود. در اين حالت اگر با ماوس كليك بزنيد, تصوير بزرگ شده گزارش را مشاهده مي كنيد, بدين تزتين مي توانيد گزارش را از نزديك مرور كنيد. حالت نمايشي Design در مورد گزارش شكل آنرا نشان مي دهد.براي دسترسي به اين حالت مي توان درست مانند اجزا ديگر عمل كرد ويا با انتخاب گزارش مورد نظر بر روي دكمه Design در بالاي پنجره Database كليك كرد.بعدا با استفاده از حالت نمايشي Design شكل گزارش را تغيير خواهيم داد.
نگاهي به صفحه ها:
براي نمايش صفحه هاي وب موجود در يك پايگاه داده مي توانيد بر روي شاخص Pages در پنجره Database كليك كنيد. صفحه ها در يك پايگاه داده اكسس براي استخراج داده ها از جدول به يك صفحه وب مورد استفاده قرار مي گيرند درست مانند گزارش با اين اختلاف كه اين بار به جاي چاپ صفحه گزارش آنرا در يك مرورگر وب مانند IE مي تواند مشاهده كرد. من نمي خواهم زياد در مورد صفحه ها در اين قسمت توضيح دهم زيرا كاركرد آنها بسيار شبيه گزارشها مي باشند و هر كاري كه با گزارش انجام داديم مي توانيد با اين صفحه ها نيز انجام دهيد فقط به خاطر داشته باشيد كه اينها هر كدام يك صفحه وب مي باشند. در صفحه ها نيز مانند گزارش ها حالت نمايشي Design براي طراحي استفاده مي شود. مي توان بزرگترين تفاوت بين گزارشها و صفحه ها را پوياتر بودن صفحات بيان كردن بدين معني كه شما بهتر از گزارش مي توانيد اطلاعات موجود در پايگاه داده را مرور كنيد و بين آنها حركت كنيد.
نگاهي به ماكروها:
ماكروها فهرست فراميني است كه در آنها كارهايي كه معمولا از طريق صفحه كليد انجام مي دهيد, تعريف مي شود. مثلا مي توانيد ماكرويي ايجاد كنيد كه هنگام وقوع شرايطي خاص مثل هنگامي كه ميزا فروش چيزي از تعداد يا مقدار مشخصي كمتر شود, گزارش مشخصي را چاپ كند. البته با استفاده از منوها نيز مي توانيد گزارش مورد نظر را چاپ كنيد ولي ماكرو مراحل كار را خودكار مي كند, بدين ترتيب كي توانيد با فشار كليد فرمان روي فرم, گزارش را چاپ كنيد. به اين نكته توجه كنيد كه ماكروها اغلب به كليدهاي فرمان وصل مي شوند تا اجراي آنها براي كاربر ساده باشد چون به هرحال شما استفاده كننده هستيد و مايليد تا كارها تا حد امكان ساده انجام شود. توجه كنيد كه كليد Run در بالاي صفحه Database ماكرو را اجرا مي كند ولي تا زماني كه نحوه عملكرد آنرا در برنامه نمي دانيد به هيچ وجه اقدام به اجراي آن نكنيد. هرگاه بخواهيد محتويات ماكرو را از پنجره Database مشاهده كنيد بايد نام ماكرو مورد نظر را انتخاب كرده و بر روي دكمه Design در بالاي پنجره Database كليك كنيد كه در اين حالت حالت نمايش Design مربوط به ماكرو را مشاهده مي كنيد. فهرست اعمال ماكرو را در اين پنجره مشاهده مي كنيد به احتمال قوي اين اعمال مرموز به نظر مي رسندولي به مرور با آنها آشنا خواهيد شد. چون ماكرو فهرست كارهاي خودكار شده است و شما هنوز نمي دانيد اكسس چه كارهايي مي تواند انجام دهد پس در اين مقطع نمي توان كار زيادي براي افزايش درك نسبت به ماكرو كرد. پس از پايان كار با ماكرو آنرا به وسيله منو File . گزينه Close ببنديد.
نگاهي به مدول ها:
مدولها برنامه هاي كاملي هستند كه با Visual Basic for Applications نوشته مي شوند, و براي خودكار كردن كارها به كار مي روند.برخلاف ماكروها كه ساده هستند برنامه كاربردي را مي توان به نحوي ايجاد كرد كه به هر حركت استفاده كننده پاسخ داده و عكس العمل نشان دهد. ما در درسهاي آينده به چگونگي كار مدولها خواهيم پرداخت ولي به دلايل زير به طور كامل آنرا توضيح نخواهيم داد:
----------------
برنامه نويسي با مدولها به مهارت هاي كامپيوتري پيشرفته اي نياز دارد كه من فكر نمي كنم تمامي مطالعه كننده هاي اين دروس به مهارتها آشنا باشند. اكسس محل خوبي براي يادگيري نحوه برنامه نويسي نيست. بسياري از افراد ساليان متمادي بدون نياز به نوشتن مدول, بصورتي موثر و كارا از اكسس استفاده مي كنند. حتي اگر بخواهيم برنامه هاي كاربردي قوي در اكسس ايجاد كنيم مي توان حتي بدون يك نياز كوچك به مدول اين كارها را انجام داد. درک بهتر مفهوم ارتباط
در دروس پيشين به طور تدريجي آشنايي نسبتا كاملي با اجزاي يك پايگاه داده آشنا شديم و محيط پنجره Database را به خوبي شناختيم. حال نوبت آن رسيده است كه شروع به طراحي كنيم و با دستان قدرتمند خود پايگاه داده زيبايي را خلق كنيم ولي قبل از اينكار بايد مفهوم ارتباطات بين جداول را بهتر درك كنيم. در اين درس مفهوم ارتباط بين جدولهاي يك پايگاه داده را بهتر درك خواهيم كرد و روشهاي مختلف ارتباط را ياد خواهيم گرفت و بدين ترتيب براي ايجاد جداول پايگاه داده خود را آماده تر خواهيم كرد.گاهي دقيقا نمي دانيم كه چه نوع داده هايي وارد جدول خواهند شد پس براي رفع اين مشكل به تدريج با نظريه طراحي پايگاه داده آشنا مي شويم.
درك ارتباط بين جداول:
قبلا گفته شد كه جداول از طريق فيلدهاي مشترك به يكديگر مرتبط هستند. هرچند كه فيلدهاي مشترك مرتبط شده, سبب تكرار برخي داده ها ميشوند.(در هرجدولي كه به ديگري مرتبط است خود فيلد مشترك دوباره ظاهر مي شود), ولي خواهيد ديد كه وقتي قدام به ايجاد پايگاه داده مي كنيد, فيلد مشترك كمك مي كند تا بسياري از داده هاي تكراري, كه در صورت نبود فيلد مشترك ايجاد مي شود, از بين ببريد. ممكن است واژه شناسي پايگاه داده ها گيج كننده باشد اما خوشبختانه ساده ترين زبان زبان ارتباطي است, كه چگونگي ارتباط جداول به يكديگر را تعريف مي كند. در اين درس به سه روش ارتباط خواهيم پرداخت: 1-ارتباط يكي به يك 2-ارتباط يك به چند 3-ارتباط چند به چند
فيلدهاي كليدي منحصر به فرد ركوردها:
قبل از تشريح ارتباطات جداول, دقت داشته باشيد كه اغلب جداول پايگاه داده, فيلدي به نام فيلد كليد دارند, كه به ساير فيلدهاي جدول تقدم دارد. هرچند كه فيلد كليد لزوما مهمترين ارزش اطلاعاتي را ندارد, ولي دري هستند براي ورود به جدول كه نياز اصلي ما در ارتباط شمرده مي شود.فيلد كليد, فيلدي از جدول است كه بصورتي منحصر به فرد هر ركورد را تبيين مي كند.(يعني امكان اينكه فيلد كليد در دو ركورد مانند هم باشند وجود ندارد.) توجه: فيلد كليد اصلي جدول بايد مقداري منحصر به فرد داشته باشد. اكسس امكان تعيين چندين فيلد كليد را مي دهد. اگر كليد از چندين فيلد تشكيل شده باشد, يك يا چند تا از اين فيلدها ممكن است داده هاي تكراري داشته باشندولي وقتي تركيب شوند, فيلد ادغامي بايد مقدار منحصر به فردي را ايجاد كند. توجه بيشتر به اين مثال خالي از لطف نيست: جدول كارمندان معمولا شامل فيلدهايي از قبيل نام كارمند, نشاني, تاريخ تولد, ميزان حقوق مي شود. بعلاوه هميشه مانند كد ملي, يك شماره كارمندي دارند. كد ملي شما منحصر به فرد است يعني تنها به يك نفر اختصاص دارد بنابراين اين شماره كارمندي فيلد كليدي خوبي براي فايل كارمندان است. به شكل 61 در زير توجه كنيد:
براي دسترسي به نام, نشاني يا حقوق هر كارمند, صرفنظر از تعداد كارمندان جدول اكسس فقط به شماره كارمند احتياج دارد.هر كارمند شماره منحصر بفردي دارد لذا هنگامي كه اكسس يكبار شماره كارمندي را گرفت, مي تواند آنرا با ركوردي از جدول پيوند دهد, يكبار براي هر ركورد. به اين ترتيب اكسس مي تواند به بقيه داده هاي ركورد در ساير فيلدها دسترسي داشته باشد. توجه: اسامي فيلدها كليدهاي خوبي نيستند, چون افراد بسياري نام يكسان دارندو يا بسياري از افراد اسامي را به شكلهاي گوناگون مي نويسند. زماني كه يك شركت به مشتريان, كارمندان و اجناس خود عددي را تخصيص مي دهد, احتمالا آن شركت پروژه هايش را كامپيوتري كرده است. اين اعداد مي تواند كليد منحصر به فردي براي يافتن بقيه داده هاي مرتبط با آن باشند. همچنين بايد به نكته توجه داشته باشيد كه فيلد كليد همواره فيلد ارتباط دوجدول مرتبط نيست ولي براي اين كار بسيار مناسب است و غالبا براي همين منظور به كار مي رود. دو يا چند فيلد نيز مي توانند يك كليد منحصر به فرد را تشكيل دهند. اغلب به فيلد كليد, فيلد كليد اصلي گفته مي شود. اگر بخواهيد كه دو يا چند فيلد همراه با يكديگر به عنوان كليدي منحصر به فرد عمل كنند, بايد اكسس را واداريد تا فيلدهاي ادغام شده را به عنوان يك فيلد منحصر به فرد در نظر گيرد. مثلا ممكن است بخواهيد كه دو فيلد نام خانوادگي و كد پستي را يكديگر ادغام كنيد تا فيلد كليد نحصر به فردي ايجاد شود. حال كه با مفهوم فيلد كليد براي ارتباط آشنا شديد به انواع ارتباط موجود در اكسس مي پردازيم:
ارتباطات يك به يك(One to One):
شايد ارتباط يك به يك نادرترين ارتباط ممكن بين جداول باشد. هنگامي كه در دو جدول تعداد ركوردها يكسان باشد و هر ركورد يك جدول به ركورد ديگري در جدول ديگر مرتبط باشد, بك ارتباط يك به يك بوجود مي آيد. ارتباط يك به يك نادرست است چون معمولا مي توانيد آن دو جدول را در يك جدول ادغام كنيد. در شكل 62 در زير مثالي از ارتباط يك به يك بين دو جدول نشان داده شده است. فيلد كد كالا كليد و فيلد ارتباط را تشكيل مي دهد. نخستين ركورد در نخستين جدول به نخستين ركورد در دومين جدول مرتبط شده است.
خود شركت ماكروسافت توصيه مي كند كه از ارتباط يك به يك اجتناب كنيد. زيرا بهتر آن است كه دو جدول را در يك جدول بزرگتر ادغام كنيد, كه اين طريقه بسيار كارآتر است. در اكسس هر جدول مي تواند تا 256 فيلد داشته باشد ولي اگر وجود جدولي با بيش از 256 فيلد ضرورت داشته باشد,فقط با ايجاد دو يا چند جدول و برقراري ارتباط يك به يك بين آنها, قادر به برآوردن اين نياز خواهيد بود. كه براي اين منظور هم ماكروسافت امكانات بسياري را فراهم آورده است از ان جمله امكان دسترسي سريع به اطلاعات جدول دوم از طريق جدول اول بدون باز كردن آن جدول.
ارتباط يك به چند(One to Many):
ارتباط يك به چند شايد متداولترين نوع ارتباط بين جداول باشد. اين ارتباط زماني اتفاق مي افتد كه يك ركورد از جدول به يك يا چند ركورد از جدول ديگر مرتبط باشد. به عنوان مثال در جدول موجودي براي هر كالايي كه فروخته مي شود, يك ركورد وجود دارد. ولي در جدول سفارشات مشتريان ممكن است براي يك كالا, سفارشات متعددي وجود داشته باشد. در شكل 63 در زير نمونه اي از ارتباط يك به چند جداول مشاهده مي شود.
ارتباط يك به چند صرف جويي زيادي در فضاي ديسك را سبب مي شود. مثلا ارتباط يك به چندي كه در شكل 63 در بالا نشان داده شد, به شما امكان مي دهد تا گزارشي تهيه كنيد كه شامل مشتري همراه با شرح كالاي سفارشي باشد. ولي شرح در هر ركورد سفارش نمي آيد. شرح هركالا در جايي مستقل,در ركوردي منحصر بفرد در فايل موجودي قرار دارد. اكسس مي تواند در هنگام نياز, با استفاده از فيلد ارتباطي مشترك از جدول سفارش در جدول موجودي جستجو كند و شرح كالا را از آنجا بردارد. اكسس بدون فيلد كليد نمي تواند تعيين كند كه در برابر هر سفارش چه شرحي را بايد قرار دهد. توجه داشته باشيد كه اكسس جدولهاي مرتبط را مي شناسدو در موقع لزوم اطلاعات صحيح را از آنها استخراج مي كند. لذا بايد هنگام ايجاد پايگاه داده اكسس اين ارتباطات را به اكسس بفهمانيد تا در هنگام مشاهده و چاپ داده ها از جداول مرتبط اكسس تمام كارها را انجام دهد. همچنين قابل ذكر است كه ارتباط چند به يك و يك به چند مشابه هستند, لذا هر دو عبارت به يك معني به كار مي روند.
ارتباطات چند به چند(Many to Many):
اكسس ارتباطات چند به چند را مستقيما پشتيباني نمي كند ولي مي توانيد آن را شبيه سازي كنيد. ارتباط چند به چند هنگامي ايجاد مي شود كه ركوردهاي متعددي از يك جدول به يك يا چند ركورد از جدول ديگر مرتبط باشند. براساس تصاوير جداولي كه قبلا مشاهده كرده ايد, مي توان چنين تصور كرد كه خريداران متعددي, محصولات متعددي را سفارش دهند. بنابراين بين خريداران و محصولات يك ارتباط چند به چند وجود دارد. جدول خريداران و جدول موجودي محصولات از طريق جدول سفارش به هم متصل مي شوند.بنابراين براي ارتباط چند به چند بين خريداران و موجودي محصولات, جدول سفارشات بعنوان واسطه بين اين دو جدول عمل مي كند.جدول خريداران ارتباطي يك به چند با جدول سفارشات دارد و جدول محصولات نيز ارتباطي يك به چند با جدول سفارشات دارد.پس همانطور كه در شكل 64 در زير مي بينيد جدول سفارشات بطور غير مستقيم بين خريداران و محصولات ارتباط چند به چند ايجاد مي كند.
گاهي اوقات, جدول مركزي يا واسطه در ارتباط چند به چند جدول اتصال خوانده مي شود. فيلدهاي كليد اصلي هر دو جدولي كه قرار است به هم مرتبط شوند, بايد در اين جدول وجود داشته باشد. درس ارتباطات هم در اين قسمت تمام شد و اميدوارم ديگر جاي ابهامي در مورد انواع ارتباطات باقي نمانده باشد.
|