بخش 1 : مقدمه
1-1 مقدمه ای بر بانک اطلاعاتی
دادِگان (پایگاه دادهها یا بانک اطلاعاتی) به مجموعهای از اطلاعات با ساختار منظم و سامـانمند گـفته میشود. این پایگاههای اطلاعاتی معمولاً در قالبی که برای دستگاهها و رایانهها قابل خواندن و قابل دسترسـی باشند ذخیــــره میشوند. البته چنین شیوه ذخیرهسازی اطلاعات تنها روش موجود نیست و شیوههـای دیگری مانند ذخیرهســازی ساده در پروندهها نیز استفاده میگردد. مسئلهای که ذخیرهسازی دادههـا در دادگــان را موثر میســازد وجود یک ساختار مفهومی است برای ذخیرهسازی و روابط بین دادههااست.
پایگاه داده در اصل مجموعهای سازمان یافته از اطلاعات است.این واژه از دانش رایانه سرچشمه میگیرد ،اما کاربر وسیع و عمومی نیز دارد، این وسعت به اندازهای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانهای برای پایگاه داده ایجاد میکند) شامل تعاریف غیر الکترونیکـی برای پایگاه داده میباشـد. در این نوشـتار به کاربرد های تکنیکی برای این اصطلاح محدود میشود.
یک تعریف ممکـن این اسـت کـه: پایگـاه داده مجموعـهای از رکورد هـای ذخیره شـده در رایـانه بـا یک روش سیستماتیک (اصولی) مثل یک برنامه رایانهای است که میتواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولا به صـورت مجموعهای از اجـزای دادهای یا رویداد هـا سازماندهـی مـیگردد. بخش های بازیابی شده در هر پرسش به اطلاعاتی تبدیل میشود که برای اتخاذ یک تصمیـم کاربرد دارد. برنامـه رایانهای که برای مدیریت و پرسش و پاسخ بین پایگاههای دادهای استفاده میشود را مدیـر سیستم پایگاه دادهای یا به اختصار (DBMS) مینامیم. خصوصیات و طراحی سیستم های پایگاه دادهای در علم اطلاعات مطالعه میشود.
مفهوم اصلی پایگاه داده این است که پایگاه داده مجموعهای از رکورد ها یا تکه هایی از یک شناخت است.نوعا در یک پایگـاه داده توصیـف ساخـت یافتهای برای موجـودیت هـای نگـه داری شده در پایـگاه داده وجود دارد: این توصیف با یک الگو یا مدل شناخته میشود. مدل توصیفی، اشیا پایگاههای داده و ارتباط بین آنها را نشـان میدهد. روش های متفاوتی برای سازماندهی این مدل ها وجود دارد که به آنها مدل های پایگـاه داده گوییم. پرکاربردترین مدلی که امروزه بسیار استفاده میشود، مدل رابطهای است که به طـور عـام به صورت زیر تعریف میشود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط که هریک از سطـر ها و ستونـها تشکیـل شده است (تعریف حقیقی آن در علم ریاضیات برسی میشود). در این مدل وابستگی ها بـه کمـک مقادیر مشترک در بیش از یک جدول نشان داده میشود. مدل های دیگری مثل مدل سلسلـه مراتب و مدل شبکهای به طور صریح تری ارتباط ها را نشان میدهند.
در مباحث تخصصی تر اصتلاح دادگان یا پایگاه داده به صورت مجموعـهای از رکـورد هـای مرتبط با هم تعریف میشود. بسیاری از حرفهای ها مجموعهای از داده هایی با خصوصیات یکسان به منظـور ایجـاد یک پایگاه دادهای یکتا استفاده میکنند.
معمولا DBMS ها بر اساس مدل هایی که استفاده میکنند تقسیم بنـدی میشونـد: ارتباطی،شی گـرا، شبکـهای و امثال آن. مدل هـای دادهای به تعیین زبانهای دسترسـی بـه پایگاههای داده علاقه مند هستند. بخش قابل توجهی از مهندسـی DBMS مستقـل از مـدل های میباشد و به فـاکتور هایی همچون اجرا، همزمانی،جامعیت و بازیافت از خطاهای سخت افزاری وابسطه است.در این سطح تفاوت های بسیاری بین محصولات وجود دارد.
موارد زیر به صورت خلاصه شرح داده می شود:
2-1 تاریخچه پایگاه داده
3-1 انواع دادگان ها
4-1 مدل های پایگاه داده
1-4-1 مدل تخت
2-4-1 مدل شبکه ای(Network)
3-4-1 مدل رابطه ای
4-4-1 پایگاه دادههای چند بعدی
5-4-1 پایگاه دادههای شیء
5-1 ویژگیهای سیستم مدیریت پایگاه دادهها
6-1 فهرست سیستمهای متداول مدیریت دادگان
2-1 تاریخچه پایگاه داده
اولیـن کاربردهـای اصطـلاح پایـگـاه داده بـه 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) به وجـود آمد. هـدف ایـن مـدل از بین بردن تفاوت بین مستندات و داده هـا اسـت و کمـک میکند که منابع اطلاعاتی چه ساخت یافته باشند یا نه در کنار هم قرار گیرند
3-1 انواع دادگان ها
دادگانها از نظر ساختار مفهومی و شیوهای رفتار با دادهها بر دو نوع هستند :
1.دادگان رابطهای
2.دادگان شیگرا
4-1 مدل های پایگاه داده
شگـرد هـای مختلفـی برای مدل های دادهای وجود دارد. بیشتر سیستم های پایگاه دادهای هر چند که طور معمول بیشتر از یک مـدل را مورد حمایت قرار میدهند، حول یک مدل مشخص ایجاد شده اند. برای هر یک از الگوهای های منطقی (logical model) اجـراهای فیزیکی مختلفی قابل پیاده شدن است و سطوح کنترل مختلفی در انطباق فیزیکی برای کاربران محیا میکند. یک انتخـاب مـناسب تـاثیر مـثری بر اجرا دارد.مثـالی از موارد الگوی رابطهای (relational model) است: همـه رویـدادهای مهـم در مـدل رابطـهای امکان ایجاد نمایههایی که دسترسی سریع به سطرها در جدول را میدهد،فراهم میشود.
یک مـدل دادهای تنهـا شیـوه سـاختمان بـندی داده ها نیست بلکه معمولا به صورت مجموعهای از عملیات ها که میتوانـد روی داده هـا اجـرا شـود تعریـف مـیشوند. برای مثـال در مـدل رابطـهای عملیـاتی هـمچون گـزینش (selection)، طرح ریزی (projection) و اتصال (join) تعریف میگردد.
1-4-1 مدل تخت
مدل تخت یا جدولی (flat (or table) model ) تشـکیل شده اسـت از یـک آرایـه دو بعدی با عناصر دادهای که همه اجزای یک ستون به صورت دادههای مشابه فرض میشود و هـمه عناصـر یک سطـر با هم در ارتباط هستند. برای نمونه در ستون هایی که برای نام کـاربـری و رمـز عبور در جـزئی از سیستم های پایگاه دادهای امنیتی مورد استفاده قرار میگیرد هر سطر شـامل رمـز عبـوری اسـت که مخصوص یک کاربر خاص است. ستون های جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطـلاعات زمانـی، عـدد صـحیح یـا اعداد ممیز شناور تعریف میشوند. این مدل پایه برنامههای محاسباتی(spreadsheet) است.
پایـگاه داده هـا با فایـل هـای تـخت به سـادگی توسط فایل های متنی تعریف میشوند. هر رکورد یک خط است و فیلد ها به کمک جدا کننده هایی از هم مجزا میشوند. فرضا به مثال زیر دقت کنید:
id name team
1 Amy Blues
2 Bob Reds
3 Chuck Blues
4 Dick Blues
5 Ethel Reds
6 Fred Blues
7 Gilly Blues
8 Hank Reds
دادههای هر ستون مشابه هـم اسـت ما بـه این ستونهـا فیلـد ها (fields) گوییم. و هر خط را غیر از خط اول یک رکـورد(record) مـینامیم. خـط اول را که برخـی پـایگاههـای دادهای آنرا ندارند رکورد برچسب(field labels) گوییم. هر مقدار دادهای اندازه خاص خود را دارد که اگـر به آن اندازه نـرسـد مـیتوان از کاراکنر فاصله برای این منظور استفاده کرد اما این مسئله مخصوصا زمانی که بخواهیـم اطلاعـات را بـر روی کـارت های منگنه قرار دهیم مشکل ساز خواهد شد. امروزه معمولا از نویسه 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 این مدل را پیاده سازی میکند.
2-4-1 مدل شبکه ای(Network)
در سال 1969 و در کنفرانس زبانهای سیستم هـای دادهای (CODASYL) توسطCharles Bachman ارائه شد. در سال 1971 مجددا مطـرح شـد و اسـاس کار پایگاه دادهای قرار گرفت و در اوایل دهه 80 با ثبت آن درسازمان بین المللی استانداردهای جهانی یا ISO به اوج رسید.
مدل شبکهای (database model) بر پایه دو سازه مهم یعنی مجموعه ها و رکورد ها ساخته میشود و برخلاف روش سلسله مراتبی که از درخت استفاده میکند، گـراف را به کار میگیرد. مزیت این روش بر سلسله مراتبی این است که مدل های ارتباطی طبیعی بیشتری را بین موجـودیت هـا فراهـم میکند. الی رغم این مزیت ها به دو دلیل اساسی این مدل با شکست مواجه شد: اول اینکه شرکت IBM بـا تولید محصـولات IMS و DL/I که بر پایه مدل سلسله مراتبی است این مدل را نادیده گرفت. دوم اینکه سرانجام مدل رابطهای (relational model) جای آن را گرفت چون سطح بالاتر و واضح تر بود. تا اوایل دهـه 80 بـه علـت کـارایی رابـط هـای سطح پایین مدل سلسله مراتبی و شبکهای پیشنهاد میشد که بسیاری از نیاز های آن زمان را برطـرف میکـرد. اما با سـریعتر شـدن سخت افزار به علت قابلیت انعطاف و سودمندی بیشتر سیستم های رابطهای به پیروزی رسیدند.
رکورد ها در این مدل شامل فیلد هایی است (ممکـن اسـت همچـون زبـان کوبول (COBOL) به صورت سلسله مراتب اولویتی باشد). مجموعه ها با ارتباط یـک بـه چنـد بیـن رکورد ها تعریف میشود:یـک مالک و چند عضو عملیات های مدل شبکهای از نوع هدایت کننده است: یک برنامه در موقعیت جـاری خـود باقـی میماند و از یک رکورد به رکورد دیگر میرود هر گاه که ارتباطی بین آنها وجود داشته باشد. معمولا از اشارهگرها(pointers) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده میشود. با این تکنیـک کارایـی بـازیابی اضـافه مـیشـود هر چند در نمایش ظاهری این مدل ضروری نیست .
3-4-1 مدل رابطه ای
مدل رابطـه ای (relational model) در یـک مقـاله تحصیلـی توسـط E. F. Codd در سـال 1970 ارائه گشت. این مدل یک مدل ریاضیاتی است که با مفاهیمی چون مستندات منطقی (predicate logic) و تئوری مجموعه ها (set theory) در ارتباط اسـت. محصـولاتی همچون اینگرس،اراکل، DB2 وسرور اسکیوال (SQL Server) بر این پایه ایجاد شده است. ساختار داده ها در این محصولات به صورت جدول است با این تفاوت که میتواند چند سطر داشته باشد.به عبـارت دیگر دارای جداول چـند گانه است که به طور صریح ارتباطات بین آنها بیان نمیشود و در عوض کلید هایی به منظور تطبیق سطر ها در جداول مختلف استفاده میشود. به عنوان مثال جدول کارمندان ممکن است ستونی به نام "موقعیت" داشته باشد که کلید جدول موقعیت را با هم تطبیق میدهد.