باز ميگردد June 1963اولين كاربردهاي اصطلاح پايگاه داده به
System Development Corporation مسئوليت اجرايي يك طرح به نام «توسعه و مديريت محاسباتي يك پايگاه دادهاي مركزي» را بر عهده گرفت. پايگاه داده به عنوان يك واژهي واحد در اوايل دههي 70 در اروپا و در اواخر دههي 70 در خبرنامههاي معتبر امريكايي به كار رفت. (بانك دادهاي يا Databank در اوايل سال 1966 در روزنامهي واشنگتن به كار رفت) تصوير: اولين سيستم مديريت پايگاه داده در دههي 60 گسترش يافت. از پيشگامان اين شاخه چارلز باخمن ميباشد. مقالات باخمن اين را نشان داد كه فرضيات او كاربرد بسيار مؤثرتري براي دسترسي به وسايل ذخيرهسازي را مهيا ميكند. در آن زمانها پردازش داده بر پايهي كارتهاي منگنه و نوارهاي مغناطيسي بود كه پردازش سري اطلاعات را مهيا ميكند. دو نوع مدل دادهاي در آن زمانها ايجاد شد: CODASYL موجب توسعهي مدل شبكهاي شد كه ريشه در نظريات باخمن داشت و مدل سلسله مراتبي كه توسط North American Rockwell ايجاد شد و بعداً با اقتباس از آن شرك IBM محصول IMS را توليد نمود. مدل رابطهاي توسط E. F. Codd در سال 1970 ارايه شد. او مدلهاي موجود را مورد انتقاد قرار ميداد. براي مدتي نسبتاً طولاني اين مدل در مجامع علمي مورد تأييد بود. اولين محصول موفق براي ميكروكامپيوترها dBASE بود كه براي سيستمهاي عامل CP/M و
PC-DOS/MS-DOS ساخته شد. در جريان سال 1980 پژوهش بر روي مدل توزيع شده
(Distributed Database) و ماشينهاي دادگاني (Database Machines) متمركز شد، اما تأثير كمي بر بازار گذاشت. در سال 1990 توجهات به طرف مدل شيءگرا (Object-oriented (Databasesجلب شد. اين مدل جهت كنترل دادههاي مركب لازم بود و به سادگي بر روي پايگاه دادههاي خاص، مهندسي داده (شامل مهندسي نرمافزار منابع) و دادههاي چندرسانهاي كار ميكرد. در سال 2000 نوآوري تازهاي رخ داد و دادگان اكسامال (XML) به وجود آمد. هدف اين مدل از بين بردن تفاوت بين مستندات و دادهها است و كمك ميكند كه منابع اطلاعاتي چه ساختيافته باشند يا نه در كنار هم قرار گيرند. [6]
4-4-2- انواع دادگانها
دادگانها از نظر ساختار مفهومي و شيوهاي رفتار با دادهها بر دو نوع هستند
- دادگان رابطهاي
- دادگان شيءگرا
4-4-3- مدلهاي پايگاه داده
- مدل تخت
مدل تخت يا جدولي (Flat (or Table) Model) تشكيل شده است از يك آرايه دو بعدي با عناصر دادهاي كه همه اجزاي يك ستون به صورت دادههاي مشابه فرض ميشود و همهي عناصر يك سطر با هم در ارتباط هستند. براي نمونه در ستونهايي كه براي نام كاربري و رمز عبور در جزيي از سيستمهاي پايگاه دادهاي امنيتي مورد استفاده قرار ميگيرد هر سطر شامل رمز عبوري است كه مخصوص يك كاربر خاص است. ستونهاي جدول كه با آن در ارتباط هستند به صورت داده كاراكتري، اطلاعات زماني، عدد صحيح يا اعداد مميز شناور تعريف ميشوند. اين مدل پايه برنامههاي محاسباتي (Spreadsheet) است.
پايگاه دادهها با فايلهاي تخت به سادگي توسط فايلهاي متني تعريف ميشوند. هر ركورد يك خط است و فيلدها به كمك جداكنندههايي از هم مجزا ميشوند. فرضاً به مثال زير دقت كنيد:
Id name team
Amy Blues
Bob Reds
Chuck Blues
Dick Blues
Ethel Reds
Fred Blues
Gilly Blues
Hank Reds
دادههاي هر ستون مشابه هم است ما به اين ستونها فيلدها (Fields) گوييم. و هر خط را غير از خط اول يك ركورد (Record) ميناميم. خط اول را كه برخي پايگاههاي دادهاي آن را ندارند ركورد برچسب (Field Lables) گوييم. هر مقدار دادهاي اندازهي خاص خود را دارد كه اگر به آن اندازه نرسد ميتوان از كاراكتر فاصله براي اين منظور استفاده كرد اما اين مسئله مخصوصاً زماني كه بخواهيم اطلاعات را بر روي كارتهاي منگنه قرار دهيم مشكلساز خواهد شد. امروزه معمولاً از نويسهي TAB براي جداسازي فيلدها و كاراكتر خط بعد براي ركورد بعدي استفاده ميكنيم. البته شيوههاي ديگري هم وجود دارد مثلاً به مثال زير دقت كنيد:
“1”،”Amy”,”Blues”
“2”،”Bob”,”Reds”
“3”،”Chuck”,”Blues”
“4”،”Dick”,”Blues”
“5”،”Ethel”,”Reds”
“6”،”Fred”,”Blues”
“7”،”Gilly”,”Blues”
“8”،”Hank”,”Reds”
اين مثال از جداكننده كاما استفاده ميكند. در اين نوع مدل تنها قابليت حذف، اضافه، ديدن و ويرايش وجود دارد كه ممكن است كافي نباشد. Microsoft Excelاين مدل را پيادهسازي ميكند.
- مدل شبكهاي
در سال 1969 و در كنفرانس زبانهاي سيستمهاي دادهاي (CODASYL) توسط Charles Bachman ارايه شد. در سال 1971 مجدداً مطرح شد و اساس كار پايگاه دادهاي قرار گرفت و در اوايل دههي 80 با ثبت آن در سازمان بينالمللي استانداردهاي جهاني يا ISO به اوج رسيد. مدل شبكهاي (Database Model) بر پايهي دو سازهي مهم يعني مجموعهها و ركوردها ساخته ميشود و بر خلاف روش سلسله مراتبي كه از درخت استفاده ميكند، گراف را به كار ميگيرد. مزيت اين روش بر سلسله مراتبي اين است كه مدلهاي ارتباطي طبيعي بيشتري را بين موجوديتها فراهم ميكند. عليرغم اين مزيتها به دو دليل اساسي اين مدل با شكست مواجه شد: اول اين كه شركت IBM با توليد محصولات IMS و DL/I كه بر پايهي مدل سلسله مراتبي است اين مدل را ناديده گرفت. دوم اين كه سرانجام مدل رابطهاي (Relational Model) جاي آن را گرفت چون سطح بالاتر و واضحتر بود. تا اوايل دههي 80 به علت كارايي رابطهاي سطح پايين مدل سلسله مراتبي و شبكهاي پيشنهاد ميشد كه بسياري از نيازهاي آن زمان را برطرف ميكرد. اما با سريعتر شدن سختافزار به علت قابليت انعطاف و سودمندي بيشتر سيستمهاي رابطهاي به پيروزي رسيدند. ركوردها در اين مدل شامل فيلدهايي است (ممكن است همچون زبان كوبول (COBOL) به صورت سلسله مراتب اولويتي باشد). مجموعهها با ارتباط يك به چند بين ركوردها تعريف ميشود: يك مالك و چند عضو. عملياتهاي مدل شبكهاي از نوع هدايتكننده است: يك برنامه در موقعيت جاري خود باقي ميماند و از يك ركورد به ركورد ديگر ميرود هرگاه كه ارتباطي بين آنها وجود داشته باشد. معمولاً از اشارهگرها (Pointers) براي آدرسدهي مستقيم به يك ركورد در ديسك استفاده ميشود. با اين تكنيك كارايي بازيابي اضافه ميشود هر چند در نمايش ظاهري اين مدل ضروري نيست.
- مدل رابطهاي
مدل رابطهاي (Relational Model) در يك مقالهي تحصيلي توسط E. F. Codd در سال 1970 ارايه گشت. اين مدل يك مدل رياضياتي است كه با مفاهيمي چون مستندات منطقي (Logic Predicate) و تئوري مجموعهها (Set Theory) در ارتباط است. محصولاتي همچون اينگرس، اراكل، DB2 و سرور اسكيوال (SQL Server) بر اين پايه ايجاد شده است. ساختار دادهها در اين محصولات به صورت جدول است با اين تفاوت كه ميتواند چند سطر داشته باشد. به عبارت ديگر داراي جداول چندگانه است كه به طور صريح ارتباطات بين آنها بيان نميشود و در عوض كليدهايي به منظور تطبيق سطرها در جداول مختلف استفاده ميشود. به عنوان مثال جدول كارمندان ممكن است ستوني به نام «موقعيت» داشته باشد كه كليد جدول موقعيت را با هم تطبيق ميدهد.
- پايگاه دادههاي چند بعدي
پايگاه دادههاي رابطهاي توانست به سرعت بازار را تسخير كند، هر چند كارهايي نيز وجود داشت كه اين پايگاه دادهها نميتوانست به خوبي انجام دهد. به ويژه به كارگيري كليدها در چند ركورد مرتبط به هم و در چند پايگاه داده مشترك، كندي سيستم را موجب ميشد. براي نمونه براي يافتن نشاني كاربري با نام ديويد، سيستم رابطهاي بايد نام وي را در جدول كاربر جستجو كند و كليد اصلي (Primary Key) را بيابد و سپس در جدول نشانيها، دنبال آن كليد بگردد. اگر چه اين وضعيت از نظر كابر، فقط يك عمليات محسوب، اما به جستجو در جداول نيازمند است كه اين كار پيچيده و زمانبر خواهد بود. راهكار اين مشكل اين است كه پايگاه دادهها اطلاعات صريح دربارهي ارتباط بين دادهها را ذخيره نمايد. ميتوان به جاي يافتن نشاني ديويد با جستجوي كليد در جدول نشاني، اشارهگر به دادهها را ذخيره نمود. در واقع، اگر ركورد اصلي، مالك داده باشد، در همان مكان فيزيكي ذخيره هواهد شد و از سوي ديگر سرعت دسترسي افزايش خواهد يافت. چنين سيستمي را پايگاه دادههاي چند بعدي مينامند. اين سيستم در هنگامي كه از مجموعه دادههاي بزرگ استفاده ميشود، بسيار سودمند خواهد بود. از آن جايي كه اين سيستم براي مجموعه دادههاي بزرگ به كار ميرود، هيچگاه در بازار به طور مستقيم عموميت نخواهد يافت.
- پايگاه دادههاي شيء گرا
اگر چه سيستمهاي چند بعدي نتوانستند بازار را تسخير نمايند، اما به توسعهي سيستمهاي شيءاي منجر شدند. اين سيستمها كه مبتني بر ساختار و مفاهيم سيستمهاي چند بعدي هستند، به كاربر امكان ميدهند تا اشيا را به طور مستقيم در پايگاه دادهها ذخيره نمايد. بدين ترتيب ساختار برنامهنويسي شيءگرا (Object Oriented) را ميتوان به طور مستقيم و بدون تبديل نمودن به ساير فرمتها، در پايگاه دادهها مورد استفاده قرار داد. اين وضعيت به دليل مفاهيم مالكيت (Ownership) در سيستم چند بعدي، رخ ميدهد. در برنامهي شيءگرا (OO)، يك شيء خاص «مالك» ساير اشيا در حافظه است، مثلاً ديويد مالك نشاني خود ميباشد. در صورتي كه مفهوم مالكيت در پايگاه دادههاي رابطهاي وجود ندارد