پایگاه داده Database چیست؟

 

پايگاه داده  یا Database يك وسيله الكترونيكي جهت ذخيره داده بصورت سازمان يافته است.

پس از اينكه داده ها  در پايگاه داده ذخيره شد اين داده ها قابل بازيابي ، پرادزش مي باشند و امكان توليد اطلاعات از داده ها وجود دارد.

 

Flat File فايل هاي تخت

ابتدايي ترين سطح پايگاه داده ها فايل ها تخت هستند كه داده ها تنها در يك فايل ذخيره مي شوند .

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

پایگاه داده

به قسمت هاي خاكستري رنگ توجه كنيد داده هاي تكراري در فايل به چشم مي خورند . اين فايلهاي تخت دو مشكل اساسي دارند :

۱- تكرر داده ها

۲- مشکلات نگهداري پايگاه داده

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

پایگاه داده

بنابراين اطلاعاتي نظير كد مشتري ، نام مشتري ، نام خانوادگي مشتري ، آدرس مشتري ، شهر مشتري ، ايالت مشتري و … در جدول مشتري قرار مي گيرد. شماره سفارش ، كد مشتري ، تاريخ سفارش در جدول سفارشات قرار مي گيرد.

شماره قلم سفارش ، شماره سفارش ، توضيح سفارش ، مقدار سفارش ، قيمت قلم و واحد آن در جدول اقلام سفارش قرار مي گيرد.

براي استفاده از اين جداول بايد بين آنها ارتباط برقرار شود كه اين موضوع در ادامه مورد بررسي قرار خواهيم داد.

تعيين نيازمنديهاي يك پايگاه داده

قبل از آنكه پايگاه داده طراحي شود بايد نيازمنديهاي آن را معين كنيم. براي تشخيص نيازهاي پايگاه داده يك سازمان رهنمودهاي زير را در نظر داشته باشيد :

رهنمود ۱ : پايگاه داده هاي موجود را به دقت بررسي كنيد.

رهنمود ۲ : با تك تك كاربران مصاحبه كنيد

رهنمود ۳ : از فرمهاي شركت كپي تهيه كنيد

رهنمود ۴ : به دقت گزارش هاي موجود را بررسي كرده اند نيازهاي گزارشي را نيز مد نظر قراردهيد. تعيين اطلاعاتي كه بايد رديابي شود

پس از مصاحبه با افراد سازمان شما بايد اطلاعاتي كه بايد رديابي شود را مشخص كنيد .فرض كنيد در يك سازمان به يك ليستي مانند ليست زير دست پيدا كرديد و باید مطابق رهنمود ها بررسی کنید.

پایگاه داده

تعيين طراحي منطقي پايگاه داده

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

تعريف جدول ها ( موجوديت ها) و فيلدها ( ويژگيها)

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

فيلدها كه ويژگي نيز ناميده مي شوند در واقع عنصر اساسي جدولها هستند . مانند فيلد نام مشتري يا آدرس مشتري در جدول مشتري .

هويت دادن به جدول ها و فيلدها

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

پایگاه داده

(Primary Key) تعيين كليد اصلي

كليد اصلي يك فيلد يا مجموعه اي از فيلدها است كه يك ركورد در جدول را يكتا مي كنند.

براي مثال در جدول مشتري شماره مشتري يك كليد اصلي مي باشد. هر مشتري يک شماره دارد و هر مشتري نشان دهنده يك هويت است و شماره سفارش كليد اصلي ميباشد. هيچ دو سفارشي يك شماره مشابه نخواهند داشت.

( Foreign Key) تعيين كليد خارجي يا كليد مرتبط كننده

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

تعريف روابط در پايگاه داده

به مثال مشتري ، كالا و سفارش كالا برميگرديم .ميتوان گزاره هاي زير را بيان كرد :

يك سفارش مي تواند شامل چند كالا باشد

يك سفارش تنها به يك مشتري مربوط است

هر مشتري مي تواند چندين سفارش داشته باشد

به زبان پايگاه داده، اين گزاره ها روابط ميان جدولها را بيان مي كنند. اين روابط را مي توان در نمودار موجودیت ها نمایش داد.

پایگاه داده

روابط ميان موجوديت ها مي توان به ۳ صورت باشد :

۱- يك به يك (One to One )

۲- يك به چند (One to Many )

۳- چند به چند (Many to Many)

در ادامه به تشريح هريك از اين روابط مي پردازيم

رابطه يك به يك

رابطه يك به يك مشابه تناظر يك به يك در رياضيات است . در اين نوع از رابطه، هر ركورد از جدول اول تنها و تنها با يك ركورد در جدول دوم رابطه دارد . براي مثال فرض كنيد اطلاعات هر مشتري ۱۰۰ فيلد دارد و پايگاه داده ما اين تعداد فيلد را پيشتيباني نمي كند بنابراين بخشي از اطلاعات مشتري را در جدولي بنام CustomerDetial قرار مي دهيم. اين جدول با جدول Customer رابطه يك به يك دارد. فيلدي كه اين دو جدول را بهم مرتبط مي سازد فيلد Customernumber میباشد.

رابطه يك به چند

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

رابطه چند به چند

اينجاست كه دنيا آشفته و پيچيده مي شود. در اين نوع از رابطه هر ركورد از جدول اول مي تواند با چند ركورد در جدول دوم رابطه داشته باشد و بالعكس. اما چگونه مي توان اين پيچيدگي و آشفتگي را حل كرد ؟

با استفاده از يك جدول سوم يا جدول واسط مي توان اين مشكل را برطرف نمود.

فرض کنید که یک سیستم کاربران زیادی دارد و هر کاربر میتواند نقش های متفاوتی داشته باشد به عبارت دیگر: هر كاربر مي تواند چند نقش داشته باشد و هر نقش مي تواند به چند كاربر مربوط باشد.

به زبان ديگر : One to Many + Many to Many = One to Many

به اطلاعات اين جداول دقت نماييد :

پایگاه داده

(Integrity Referential) يكپارچگي ارجاع

با ايجاد رابطه ميان جدوال از مزيتي بنام يكپارچگي ارجاعي استفاده مي كنيم . مزيت يكپارچگي بطور خلاصه به موارد زير اشاره دارد :

۱-به روز رساني آبشاري : يعني هر گاه فيلد كليدي در يگ جدول تغيير كرد اين تغيير بايد در جداول ديگر كه از طريق اين فيلد با جدول مربوطه در ارتباط اند نيز اعمال گردد.

۲- حذف آبشاري : يعني هر گاه قرار است فيلد كليدي از يگ جدول حذف شود بايد اطمينان حاصل شود كه در تمام جدوال مرتبط حذف صورت پذيرفته است.

توجه داشته باشيد كه يكپارچگي ارجاعي اگرچه معمولا يك مزيت بشمار مي رود ولي گاهي اوقات مساله ساز نيز مي شود.

(Normalization) نرمال سازي

ساختن يك پايگاه داده مانند ساختن يك خانه است . آيا براي ساختن يك خانه دانستن تعداد اتاق هاي مورد نياز كافي است و يا اينكه بايد به پارامترهاي ديگر نيز توجه داشت تا بتوان نقشه اي بهينه براي خانه تهيه كرد.

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

هرچه در مرحله بالاتري از نرمال سازي باشيد پايگاه داده شما طرح و ساختاري كاراتر خواهد داشت.