PDA

نسخه کامل مشاهده نسخه کامل : آشنايي با مفاهيم اصولي و پايه اي بانكهاي اطلاعاتي



Saeid.Online
01-09-2006, 20:30
آشنايي با مفاهيم پايگــاه داده هـــا

مفاهيم مبنايي :
مفهوم پايگاه داده ها : پايگاه داده ها در ساده ترين وجه به مثابه مخزني ميماند که اطلاعات و داده ها به صورت منسجم و احتمالا ساخت يافته در آن نگهداري ميشود . اين مخزن ميتواند يک فايل متني يا باينري ساده باشد .
همزمان با پيدايش تکنولوژي ذخيره سازي اطلاعات و فايلها ، پايگاه داده ها نيز متولد شد و همزمان با رشد تکنولوژي ذخيره و بازيابي اطلاعات و سيستم فايلينگ ، پايگاه داده ها نيز به صورت موازي و با آن رشد کرد . پايگاه داده ها از زمان تولد تا کنون پنج نسل را سپري کرده است .
همزمان با گسترش نياز کاربران براي ذخيره سازي و بازيابي اطلاعات برنامه نويسان متعددي اقدام به ايجاد برنامه هايي با اهداف و کاربردهاي متفاوت کردند . صرف نظر از برنامه هايي که از نظر کاربرد کاملا متفاوت بودند برنامه هايي نيز وجود داشتند که ماهيت و کاربرد يکساني داشتند ولي توسط برنامه نويسان متعدد ايجاد شده بودند . بهترين مثال براي اين مطلب دفـتـــرچـــه تلـفــن ميباشد . چندين و چند نسخه متفاوت دفترچه تلفن موجود بود که همه آنها امکانات کاملا مشابهي داشتند ولي الگوريتمها و روشهاي برنامه نويسي آنها کاملا متفاوت بود . مهمترين وعمده ترين تفاوتهاي که بين اين برنامه ها وجود داشت در زير ذکر شده اند :
نوع و ماهيت فايلي که اطلاعات در آن ذخيره ميشد ( بعضيهااز نوع باينري و بعضي TXT و... بودند )
الگوريتم و روش ذخيره سازي داده ها در فايل
نام توابع ( فرضا تابع مربوط به جستجو در هر برنامه نامي مطابق با سليقه برنامه نويس داشت )
تمام اين برنامه ها در واقع نوعي بانک اطلاعاتي هستند که براي اهداف خاص ايجاد شده اند . لذا به منابع داده در هر برنامه به جز در همان برنامه در جاي ديگري کاربرد نداشت و به هيچ درد ديگري نميخورد حتي برنامه هايي که مشابه بودند ( مانند دفترچه تلفن ) نيز ( بنا به دلايل ذکر شده ) نميتوانستند با هم تبادل اطلاعات داشته باشند و اگر ميخواستيم از فايل حاوي داده هاي يک دفترچه تلفن در دفترچه تلفن ديگري استفاده کنيم هيچ راهي وجود نداشت . در ضمن در تمام اين برنامه ها به جز فايل و برنامه نوشته شده توسط برنامه نويس هيچ چيز ديگري وجود نداشت که بتواند امنيت داده ها را تضمين کند . و به طور کلي داده ها را کنترل و مديريت کند . مشکل ديگري که اين برنامه ها داشتند اين بود که اين برنامه ها تنها قابليت اين را داشتند که يک کاربر از آنها استفاده کند و استفاده به صورت اشتراکي از منابع داده ها امکان پذير نبود .
با گسترش روز افزون اطلاعات و نياز روز افزون کاربران براي ذخيره و بازيابي اطلاعات و دسترسي سريع به اطلاعات و لزوم تامين امنيت اطلاعات ، لازم بود برنامه هاي تخصصي و ويژه اي براي اين منظور ايجاد شوند . لذا چندين شرکت تصميم به طراحي و توليد چنين برنامه هايي را گرفتند که از شرکتهاي IBM و Microsoft و چند شرکت ديگر به عنوان پيشگامان اين امر ميتوان نام برد .
برنامه هاي مذکور پايگاه داده ها نام گرفتند . شرکتهاي مذکور بايد برنامه هايي را ايجاد ميکردند که قابليت استفاده براي مصارف گوناگون را داشته باشد . در ضمن اين برنامه ها بايد داراي قسمتي باشند که به عنوان واسط بين برنامه کاربردي و فايلها (منابع داده ) قرار بگيرد و عملياتهاي مربوط به ايجاد ، حذف و تغيير و ... را در منابع داده را کنترل و مديريت کند . اين برنامه واسط را DBMS ناميدند .
DBMS اختصار (DATABASE MANANGMENT SYSTEM ) ميباشد که معناي لغوي آن سيستم مديريت پايگاه داده يا سيستم مديريت داده ها ميباشد .
بايد خدمتتون عرض کنم که بزرگترين جهشي که پايگاه داده ها در راستاي رشد و تکامل داشت مربوط به همين قسمت يعني توليد و تکامل DBMS ميباشد . گفتيم که وظيفه DBMS اين است که بين برنامه کاربردي و منابع داده ها قرار بگيرد و کليه عملياتهاي مربوط به( ايجاد ، تغيير ، حذف و .... ) منابع داده ها را کنترل و مديريت کند . کنترل و مديريت منابع داده ها بسيار کلي و ميباشد و اگر بخواهيم منظور از کنترل و مديريت را کامل شرح دهيم بايد ساعتها وقت صرف کنيم و دهها صفحه مطلب بنويسيم که قطعا در اين مجموعه نخواهد گنجيد ضمن آنکه اين مطالب کاربردي نيط نيستند و تنها جنبه اطلاعاتي دارند لذا تنها چند نکته مهم را ذکر ميکنم و در صورتي که علاقمند بوديد بيشتر بدانيد ميتوانيد به کتابهاي موجود در اين زمينه مراجعه فرماييد .

منظور از کنترل و مديريت :
مصون کردن برنامه هاي کاربردي در قبال تغييرات در سخت افزار ذخيره سازي .
مديريت رکوردهاي سرريز که پس از لود اوليه بايد در فايل وارد شوند .
ايجاد فايل با ساختارهاي گوناگون
فراهم کردن امکاناتي براي دستيابي مستقيم و ترتيبي به رکوردها و فيلدها .
جدا کردن ساختار فيزيکي و منطقي فايلها از يکديگر
تامين ايمني و حفاظت داده ها
جلوگيري از تکرار ذخيره سازي داده ها ( تاحدي )
فراهم کردن امکاناتي براي پردازش بلادرنگ (real time ) بسته به نوع سيستم عامل
تامين صحت داده هاي ذخيره شده ( تاحدي )
فراهم کردن امکاناتي براي بازيابي بکمک چند کليد
فراهم کردن امکاناتي براي استفاده چند کاربر به صورت همزمان از منبع داده و کنترل آن
کنترل و مديريت مسائل مربوط به همزماني و سطح دسترسي کاربران به منبع داده ها
و .....

با توجه به موارد ذکر شده شرکتها سيستمهاي گوناگوني را به اين منظور طراحي و توليد کردند که هر سيستم داراي يک رابط گرافيکي براي گرفتن و انجام فرامين کاربر و يک DBMS بود که تمام مطالب ذکر شده در بالا در اين سيستمها لحاظ شده بودند . علاوه بر اين دو دفترچه اي نيز به همراه سيستم ارائه ميشد که حاوي نام و کاربرد توابع موجود در سيستم بود . برنامه نويسان در صورت نياز ميتوانستند از اين توابع در برنامه هاي خود استفاده کنند و دستوري را به سيستم ارسال کنند . رابطه اين توابع با سيستم مورد نظر دقيقا مانند رابطه توابع API موجود در ويندوز و خود ويندوز ميباشد . اندک زماني پس از توليد اين سيستمها کنسرسيومي تشکيل شد که اقدام به تهيه استانداردهايي در زمينه توليد نرم افزارهاي بانک اطلاعاتي کرد و از آن پس تمام شرکتهاي توليد کننده ملزم به رعايت اين استانداردها بودند . يکي از اين تصميمات و استانداردها يکسان سازي نام توابع در تمام سيستمها بود . ديگر آنکه قرار بر آن شد که يکسري کلمات و عبارات ويژه درنظر گرفته شوند که هر يک معرف عملياتي ويژه باشند و برنامه اي به تمام سيستمها اضافه شود که وظيفه آن دريافت ، تفسير و اجراي اين عبارات (دستورات ) باشد . مجموعه اين کلمات و برنامه اي که وظيفه تفسير آنها را داشت ، منجر به توليد زبان مشترکي براي بانکهاي اطلاعاتي شد . اين زبان برنامه نويسي زبان پايه تمام بانکهاي اطلاعاتي ميباشد که آن را T-SQL مينامند که اختصار (Transact Structured Query Language ) ميباشد .
در واقع وظيفه اين کلمات و عبارات فراخواني توابع موجود در سيستم ميباشد . دستورات زبانSQL به دوبخش تقسيم ميشود :
دستورات مربوط به کار با داده ها ( DML)
دستورات مربوط به تعريف داده ها ( DDL )
تمامي سيستمهاي ارائه شده در DML دستورات کاملا مشابهي را دارا ميباشند اما در بخش DDL داراي تفاوتهاي جزئي ميباشند . در ضمن سيستمهاي مختلف ارائه شده علاوه بر دستوراتي که کار يکساني را انجام ميدهند ممکن است دستورات اضافه تري نيز داشته باشند که وظيفه اين دستورات اضافي انجام عملياتهاي ترکيبي ميباشد . جلوتر بيشتر با اين زبان برنامه نويسي و دستورات آن آشنا خواهيم شد و در مثالهاي مختلف از دستورات مختلف اين زبان استفاده خواهيم کرد .
خوب تا اينجا با تاريخچه پايگاه داده ها به صورت کلي و ساده آشنا شديم . در زير چکيده اي از مطالب بالا را به همراه مزيتهاي بوجود آمدن تکنولوژي بانک اطلاعاتي را ذکر خواهم کرد .و از اين پس ميرويم سراغ مفاهيم کاربردي پايگاه داده ها . دقت کنيد که مفاهيم و کلمات مهم را به صورت زير خط دار و زردرنگ نوشته ام .

از مجموعه مطالب ذکر شده در بالا فهميديم که :

با گسترش روز افزون اطلاعات و نياز کاربران به ذخيره و بازيابي اطلاعات سيستمهايي طراحي شدند که قابليت استفاده براي مصارف گوناگون را دارا ميباشند . همچنين اين برنامه ها امکان استفاده اشتراکي از منابع داده را نيز فراهم کردند . در اين سيستمها ما به هر فايلي که اطلاعاتي با ساختار معين در آن قرار گرفته است را منبع داده ميناميم. اين سيستمها به صورت تخصصي براي ذخيره و بازيابي اطلاعات طراحي و ساخته شده اند از اين رو به اين سيستمها پايگاه داده ها يا همان بانک اطلاعاتي ميگوييم . تمامي پايگاه داده هاي موجود داراي بخشي با عنوان DBMS يا سيستم مديريت داده ها ميباشند که به عنوان واسط مابين برنامه کاربردي و منبع داده قرار ميگيرد و کليه موارد مربوط به ذخيره و بازيابي لطلاعات را به صورت خودکار کنترل ميکند . اين سيستم همچنين مسئول تامين امنيت داده هاي ذخيره شده نيز ميباشد . سيستمهاي ارائه شده محصول هر شرکتي که باشند از استاندارد واحدي براي ذخيره و بازيابي اطلاعات تبعيت ميکنند . در ضمن تمامي پايگاه داده هاي موجود داراي يک زبان پايه و مشترک با نام T-SQL مبباشند که برنامه نويسان در اکثر موارد بدون آنکه نوع بانک مورد نظر مهم باشد ميتوانند از اين زبان براي انجام امور بانکي در برنامه هاي خود استفاده کنند . علاوه بر مطالب ذکر شده بايد خدمتتون عرض کنم که بانکهاي اطلاعاتي داراي مزيتهاي بينظيري ميباشند که اين مزيتها به تدريج به اين تکنولوژي اضافه شدند .از جمله اين مزيتها ميتوان کنترل متمرکز روي تمام داده هارا نام برد که يکي از مزاياي اين امر کاهش ميزان افزونگي در ذخيره سازي داده ها ميباشد .در واقع در تکنولوژي بانکهاي اطلاعاتي تکرار ذخيره سازي داده ها به حداقل ميرسد که اين امر خود داراي مزاياي فراواني ميباشد که صرفه جويي در فضاي ذخيره سازي و کاهش عمليات سيستم از جمله مهمترين آنها ميباشد . يکي ديگر از مزيتهاي مهم بانکهاي اطلاعاتي اين است که با گسترش اين تکنولوژي مفهوم چند سطحي بودن و معماري چند لايه به تدريج قوت يافت و بسط پيدا کرد . از ديگر مزاياي اين تکنولوژي اين است که مفاهيمي چون منطق صوري ، سيستمهاي خبره ، مفاهيم هوش مصنوعي و ... نيز در اين تکنولوژي رخنه کرده اند که اين امر موجب ميشود که سيستم قادر به استنتاج منطقي از داده هاي ذخيره شده باشد . و به عنوان آخرين مزيت نيز ميتوان اين مورد را ذکر کرد که در اين سيستمها کاربران در يک محيط انتزاعي (ABSTRACTIVE) و مبتني بر يک ساختار داده يي تجريدي کار ميکنند و بکمک احکام زباني خاص ، عمليات مورد نظر خود را انجام ميدهندو بدين ترتيب برنامه هاي کاربردي ازداده هاي محيط فيزيکي کاملا مستقل ميشوند .من گفتم آخرين مزيت اما اين آخرين مزيت نيست بلکه آخرين مزيتي است که من ذکر ميکنم و مزيتهاي استفاده از بانک اطلاعاتي نيز آنقدر زياد است که از حوصله اين مقاله خارج ميباشد .

تا اينجا بحث بارها به کلمات داده ها و اطلاعات برخورد کرده ايم . اما مفهوم واقعي اين دو چيست ؟ در زير تعريف اين دو واژه را براي شما ذکر خواهم کرد و با تفاوتهاي اين دو آشنا خواهيم شد .

توجه : مطالبي که از اينجا به بعد ذکر خواهند شد بسيار بسيار مهم و حياتي ميباشند لذا خواهشمندم تا زماني که هر خط را کاملا متوجه نشده ايد هرگز سراغ خط بعدي نرويد . حتي اگر صد بار يک خط را تکرار کنيد .

مفهوم داده :
داده عبارت است از مقادير صفات خاصه (ATTRIBUTES) انواع موجوديت ها .
خوب با ارائه تعريفي براي داده با دو واژه ديگر نيز برخوردکرديم که احتمالا براي شما نامفهوم ميباشد لذا تعريفي براي اين دو نيز ارائه خواهم داد .

نوع موجوديت : مفهوم کلي يک پديده ، شي و يا فرد که در ورد آنها ميخواهيم اطلاع داشته باشيم .

صفت خاصه : ويژگي جداساز يک نوع موجوديت از نوع ديگر را گويند .

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

خوب اگر من يک موجوديت باشم قطعا يکي از صفات خاصه من نام من ميباشد و ديگري نام پدرم و ديگري شماره شناسنامه ام و .... درست ؟ حالا مقدار هريک از اين صفات خاصه من را داده ميگويند . به عنوان مثال نام من عليرضا است پس عريضا يک داده است . شماره شناسنامه من 1912 ميباشد پس عدد 1912 داده بعدي من ميباشد و ...

پس موجوديت ما يک انسان در نظر گرفته شد که اين انسان توسط يـکسري صفاتي دارد که مختص انـسـان اسـت ( صفات خاصه ) و هر يک از اين صفات خاصه داراي مقداري هستند که اين مقدار نيز همان داده است

اطلاع : اطلاع از داده حاصل ميشود و در حل مسائل به کار ميرود .

ببينيد هر داده هنگامي که در يک موقعيت مشخص براي حل مساله اي به کار گرفته شود به اطلاع تبديل ميشود . در بالا موجوديت ما انسان بود که بنده بودم خوب من به جز نام و شماره شناسنامه و ... صفات خاصه ديگري نيز دارم که يک نمونه از آنها معدل ديپلم من است . فرض کنيد معدل ديپلم من 17 باشد . پس 17 نيز يک داده است . حال اگر بخواهيم بالاترين معدل را در بين دانش آموزان ديپلم گرفته تهران پيدا کنيم چون از داده هاي موجود در فرمول پيدا کردن ماکزيمم استفاده ميکنيم لذا عدد 17 که تاکنون داده بود به اطلاع تبديل ميشود

ميدانم که احتمالا درک اين مطالب احتمالا کمي مشکل به نظر ميآيد اما اگر کمي دقت کنيم ميبينيم که اتفاقا بسيار ساده هستند . از طرفي اگر کسي اين مفاهيم را نفهمد قطعا از اينجا به بعد هيچ چيز ديگري را نيز نخواهد فهميد چون از اين واژه ها و مفاهيم آنها بارها و بارها استفاده خواهيم کرد و پايه تمام مطالب جديذي که جلوتر ذکر خواهم کرد .

يک بار ديگر و براي آخرين بار اين مطالب را با مثال شرح ميدهم و سپس به سراغ مطالب بعدي خواهيم رفت .

در کل چهار تا واژه بسيار مهم و کاربردي داريم :

داده
موجيديت
صفت خاصه
اطلاع
در اين کره خاکي و اين جهان هستي ما سه تا دسته بيشتر نداريم . يعني هر چيزي که ما ميتوانيم نام ببريم يا يک شي (مانند قابلمه ) است يا يک فرد ( مانند شما ) است يا يک پديده ( مانند زلزله ) . ما به هريک از اجزاء اين سه دسته موجوديت ميگوييم . چرا چون وجود دارد . يعني قابلمه وجود دارد پس قابلمه يک موجوديت ميباشد . حالا ما چندين و چند مدل قابلمه داريم که اين قابلمه ها با هم فرقهايي دارند . خوب عامل اين تفاوتها چيست ؟ درسته هر قابلمه داراي يکسري خصوصيتها و صفاتي ميباشد که اين قابلمه را از قابلمه ديگر جدا ميکند و علاوه بر آن همان صفات باعث ميشنود تا بين من و قابلمه هم فرقي بوجود آيد جون قابلمه صفاتي دارد که من ندارم و اين صفات مخصوص قابلمه است نه انسان ! پس قابلمه داراي يکسري صفات است که مخصوص قابلمه است که ما به هر يک از اين صفات صفت خاصه ميگوييم . هر صفت خاصه اين قابلمه داراي يک مقدار است . مثلا اگر رنگ قابلمه را به عنوان يکي از صفات خاصه آن در نظر بگيريم قطعا اين صفت خاصه مقداري دارد که ما فرض ميکنيم نارنجي است . خوب نارنجي هم شد داده ما . حالا اگر ما در يک پردازش يا در حل يک مساله از نارنجي استفاده کنيم نارنجي از داده به اطلاع تبديل ميشود . اميدوارم ديگه همه اين مفاهيم را فهميده باشند .

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

محيط عملياتي هر چيزي که باشد موجوديتهاي آن با هم ارتباطاطي دارند . به عنوان مثال بين دانشجو و درس ارتباطاطي وجود دارد که دانستن اين ارتباطات در طراحي برنامه نقش حياتي دارند . ارتباط بين موجوديت ها انواع مختلفي دارد که در زير ذکر خواهم کرد :

ارتباط يک به يک
ارتباط يک به چند
ارتباط چند به يک
ارتباط چند به چند

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

منبع مقاله : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]