بنام خدا
با سلام
يكي از مشكلات بزرگي كه در برنامه هاي كاربردي مشاهده مي شود باگها و يا غير قابل اطمينان و يا متناقض بودن نتايج عمليات و يا گزارشات سيستم مي باشد كه در بسياري موارد نتيجه طراحي غير اصولي بانك اطلاعاتي برنامه كاربردي بوده و هزينه هاي زماني و ريالي زيادي جهت پشتيباني اينگونه نرم افزارها مورد نياز است در اين سري مقالات سعي مي گردد با زباني ساده و روان روش طراحي بانك اطلاعاتي رابطه اي شرح داده شود و در اين مسير مثالها متعددي آورده شده است.
در اين بخش به مرحله چهارم ، تعيين و تشخيص فيلدهاي مورد نياز خواهيم پرداخت.
تعيين و تشخيص فيلدهايي كه نياز داريد :
براي تعيين فيلدهاي يك جدول ، بايد تشخيص دهيد كه چه چيزهايي را درباره اشخاص ، چيزها ، وقايع و رويدادها مي خواهيد بدانيد(در جدول ذخيره نماييد). شما مي توانيد فيلدها را به مثابه مشخصات يك جدول فرض نماييد.هر ركورد-Record- (يا سطر-Row) در جدول شامل همان مجموعه از فيلدها يا مشخصات مي باشد بطور مثال ، يك فيلد آدرس در جدول مشتري شامل آدرس كليه مشتريان خواهد بود. هر ركورد در جدول شامل داده هايي درباره يك مشتري و فيلد آدرس شامل آدرس براي آن مشتري خواهد بود.
نكاتي در خصوص تشخيص فيلدها : در اينجا نكاتي مفيد ، جهت تشخيص فيلدهاي مورد نياز آمده است :
- ارتباط هر فيلد را با موضوع جدول بررسي نماييد : هر فيلدي كه توصيف كننده موضوع جدول ديگري باشد به آن جدول تعلق دارد. بعدا ، هنگامي كه شما ارتباط بين جداول را تعريف نماييد خواهيد ديد كه شما قادريد اطلاعاتي كه شامل فيلدهايي از جداول مختلف مي باشد را از طريق تركيب بدست آوريد. اگر شما دريافتيد كه اطلاعاتي در چند جدول تكرار شده است اين موضوع نشانه آن است كه شما در تعدادي از جداول فيلدهايي غير ضروري داريد.
- داده هاي محاسباتي يا مشتق را لحاظ ننماييد : در بيشتر حالات ، شما نبايد نتايج محاسبات را در جداول ذخيره نماييد.در عوض ، شما مي توانيد رويه هايي را به بانك اطلاعاتي يا برنامه خود بيفزاييد كه در موارد نياز نتايج را براي شما محاسبه نمايند.براي مثال ، در فرم گزارش محصولات در سفارش(Products On Order) (در قسمت دوم آمده است) ، جمع جزيي (Subtotal) هر طبقه از محصولات (نظير طبقه نوشيدني ها Beverages) كه در بانك Northwind وارد شده ، چاپ گرديده است. در يك طراحي صحيح فيلدي جهت نگهداري اين گونه داده هاي محاسباتي لازم نبوده و كافيست رويه اي در بانك اطلاعاتي (مثلا يك رويه ذخيره شده(Stored Procedure) در بانك اطلاعاتي Sql Server) بنويسيد تا اين محاسبه را انجام دهد و يا اگر از يك گزارش ساز استفاده مي نماييد مي توانيد يك متغير محاسباتي در قسمت Footer مربوط به طبقه محصولات ايجاد و نوع آن را Sum بر روي فيلد قيمت كل قرار دهيد.
- همه اطلاعات مورد نياز خود را در طرح بگنجانيد : گاهي به آساني از اطلاعات مهم چشم پوشي مي شود. اطلاعاتي كه در مرحله اول جمع آوري نموده را بازبيني نموده و به فرمهاي كاغذي و گزارشات موجود بازگشته و مطمئن شويد كه همه اطلاعاتي كه لازم تشخيص داده بوديد در جداول لحاظ گرديده و يا قابل بدست آوردن(محاسبه) از اطلاعات موجود در جداول خواهد بود. به پرسشهايي كه قرار است از بانك اطلاعاتي استخراج نماييد فكر كنيد و ببينيد آيا بانك اطلاعاتي توانايي پاسخگويي به آنها را با توجه به اطلاعات موجود در جدول داراست.
- اطلاعات را به صورت كوچكترين قسمت هاي منطقي ذخيره نماييد : شايد شما وسوسه شويد كه براي ذخيره نمودن نام كامل اشخاص و يا نام محصولات و مشخصات آنها از يك فيلد تك استفاده نماييد. اگر شما اطلاعاتي از انواع مختلف را باهم تركيب نماييد عمليات بازيابي و استخراج حقايق جداگانه دشوار مي گردد. همواره سعي نماييد اطلاعات را به اجزا منطقي آن تقسيم نماييد. براي مثال ، دو فيلد جداگانه براي ذخيره سازي نام و نام خانوادگي ايجاد نماييد و يا سه فيلد جداگانه براي نام محصول ، طبقه و مشخصات در نظر بگيريد در اين حالت حتي اگر نياز به تركيب اين اطلاعات نياز داشته باشيد به راحتي با نوشتن پرس و جوي (Query) مورد نظر به خواسته خود خواهيد رسيد.
خوب دوستان اينم از اين قسمت – در قسمت بعد مثالي از معرفي فيلدها و همچنين توضيحات مرتبط با فيلدهاي كليد(Primary Keys) و مثال مربوطه را با هم مرور مي كنيم.
اميدوارم از اين مطالب استفاده كنيد و براتون مفيد باشه لطفا نظرات اصلاحي و تكميلي خودتون رو در قسمت نظرات بگيد
و من ا... التوفيق – مدير سايت
درباره من : من مهدی امینی متولد 1352 در حدود 15 سال در زمینه مختلف مرتبط با پروژه های نرم افزاری فعالیت دارم عمده فعالیتهای جاری اینجانب در خصوص مدیریت پروژه های نرم افزاری . طراحی سیستمی و فرایندی فعالیتها و مدیریت تیمهای طراحی و برنامه نویسی می باشد.