TAHA
12-04-2009, 10:51 PM
سیستم مدیریت پایگاه دادهها (DBMS )، يك یا مجموعهای از چند برنامه كامپیوتری است كه برای مدیریت پایگاه دادهها، مجموعه عظیمی از دادههای ساخت یافته و عملیات اجرایی بر روی دادههای درخواستی كاربران، طراحی شده است. سیستمهای حسابداری، منابع انسانی و پشتیبان مشترك، نمونههایی از كاربرد سیستم مدیریت پایگاه دادهها هستند. این سیستمها كه پیشتر فقط در شركتهای بزرگ مطرح بودند، اخیرا بخش مهمی در شركت محسوب میشوند. تفاوت سیستمهای مدیریت پایگاه دادهها با برنامههای پایگاه دادهها در این است كه سیستمهای مذكور به عنوان موتور سیستم چندكاربره طراحی شدهاند. این سیستمها برای ایفای چنین نقشی، در كرنل مالتی تسكينگ خصوصی با پشتیبان شبكهای از پیش ساخته شده، قرار گرفتهاند. يك برنامه پایگاه داده نمونه، این گونهها را در درون خود ندارد، اما شاید بتواند با كمك سیستم عامل از عملكرد چنین گونههایی پشتیبانی كند.
تاریخچه
پایگاه دادهها در اولین روزهای پیدایش محاسبات الكترونيك به كار گرفته شدند. اما اكثر آنها برنامههای سفارشیای بودند كه برای دستیبابی به پایگاه دادههای سفارشی نوشته میشدند . این سیستمها بر خلاف سیستمهای مدرنی كه میتوانند در پایگاه دادههای مختلف به كار گرفته شوند، ارتباط تنگاتنگی با پایگاه دادهها دارند. انواع پایگاه دادهها عبارتند از:
پایگاه دادههای پیمایشی
رشد كاربری كامپیوتر، پیدایش سیستمهای پایگاه دادههای همه منظوره را موجب گردید. و در اواسط 1960 چنین سیستمهایی در بخش تجاری به كار گرفته شد. چارلز بچ من، نویسنده يكی از چنین محصولاتی با نام IDS، گروه Database Task Groupرا بنیان نهاد كه این گروه مسوول ایجاد و استاندارد سازی COBOL شد. آنها در سال 1971 استاندارد خود را عرضه نمودند. این استاندارد Codasyle approach نام داشت. این شیوه مبتنی بر پیمایش دستی مجموعه دادهها بود. هنگامی كه پایگاه دادهها برای اولین بار برنامه را باز میكرد، به اولین ركورد در پایگاه دادهها و به همین ترتیب نیز به سایر بخشهای داده نیز اشاره میشد. برنامه نویس برای دسترسی به يك ركورد خاص مجبور بود تا این اشارهگرها رابه ترتیب دنبال كند تا به ركورد موردنظر برسد. در query های ساده مانند " یافتن تمام افرادی كه در سوئد زندگی میكنند " باید برای جستجو در كل مجموعه دادهها برنامه نویسی میشد و دستوری به نام find وجود نداشت. شركت IBM سیستم مدیریت پایگاه دادههایی به نام IMS داشت. این سیستم از نظر مفهوم مشابه codasyle بود، اما برخلاف آن كه از مدل شبكهای استفاده مینمود، IMS مدل سلسله مراتبی را به كار میبرد.
پایگاه دادههای رابطهای
ادگار كاد كه در شركت آیبیام كار میكرد در سال 1970 مقالاتی در زمینه شیوه جدیدی برای ساخت پایگاه دادهها نوشت. يكی از مقالات وی كه Relational Model of Data for Shared Data Bank نام داشت، به بررسی سیستم جدیدی برای ذخیره سازی و كار با پایگاه دادههای بزرگ پرداخته بود. در این شیوه به جای اينكه ركورد به صورت ركوردهای free-form همانگونه كه در روش codasyle آمده بود، ذخیره شوند، از جدولی با ركوردهایی با طول ثابت استفاده میشد.
چنین سیستمی برای ذخیره سازی پایگاه دادههای پراكنده و در جاييكه بعضی از دادههای ركورد خالی هستند، كارآیی ندارد. مدل رابطهای این مشكل را حل كرده است. بدین صورت كه دادهها به يكسری جدول تقسیم میشوند و عناصر اختیاری از جدول اصلی خارج میگردند و در صورت نیاز در جدول قرار میگیرند. چنین سیستمی برای ردیابی اطلاعات كاربران، اسامی و نشانی آنان و غیره به كار میرود. دادهها در روش پیمایشی در يك ركورد جای میگیرند و آیتمهایی كه مورد استفاده قرار نگیرند، در پایگاه دادهها نیز نخواهند بود. دادهها در شیوه رابطهای در جداول جداگانهای، مثلا جدول اسامی، جدول نشانیها و غیره جای میگیرند. برقراری ارتباط بین اطلاعات نكته مهم در این سیستم است. درمدل رابطهای بعضی از بیتهای اطلاعات به عنوان كليد معرفی میشوند و منحصرا بیانگر ركورد خاصی هستند. هنگامی كه اطلاعات كاربر جمع آوری میشود، میتوان این اطلاعات را كه در جداول اختیاری ذخیره میشوند، با جستجوی كليد مربوطه یافت.
پایگاه دادههای چند بعدی
پایگاه دادههای رابطهای توانست به سرعت بازار را تسخیر كند، هرچند كارهایی نیز وجود داشت كه این پایگاه دادهها نمیتوانست به خوبی انجام دهد. به ویژه به كارگیری كليدها در چند ركورد مرتبط به هم و در چند پایگاه داده مشترك، كندی سیستم را موجب میشد. برای نمونه برای یافتن نشانی كاربری با نام دیوید، سیستم رابطهای باید نام وی را در جدول كاربر جستجو كند و كليد اصلی (primary key ) را بیابد و سپس در جدول نشانیها، دنبال آن كليد بگردد. اگر چه این وضعیت
از نظر كاربر، فقط يك عملیات محسوب، اما به جستجو درجداول نیازمند است كه این كار پیچیده و زمان بر خواهد بود. راه كار این مشكل این است كه پایگاه دادهها اطلاعات صریح درباره ارتباط بین دادهها را ذخیره نماید. میتوان به جای یافتن نشانی دیوید با جستجو ی كليد در جدول نشانی، اشارهگر به دادهها را ذخیره نمود. در واقع، اگر ركورد اصلی، مالك داده باشد، در همان مكان فیزيكی ذخیره خواهد شد و از سوی دیگر سرعت دسترسی افزایش خواهد یافت.
چنین سیستمی را پایگاه دادههای چند بعدی مینامند. این سیستم در هنگامی كه از مجموعه دادههای بزرگ استفاده میشود، بسیار سودمند خواهد بود. از آنجاييكه این سیستم برای مجموعه دادههای بزرگ به كار میرود، هیچگاه در بازار به طور مستقیم عمومیت نخواهد یافت.
پایگاه دادههای شیء
اگرچهسیستمهای چند بعدی نتوانستند بازار را تسخیر نمایند، اما به توسعه سیستمهای شیء منجر شدند. این سیستمها كه مبتنی بر ساختار و مفاهیم سیستمهای چند بعدی هستند، به كاربر امكان میدهند تا اشیاء را به طور مستقیم در پایگاه دادهها ذخیره نماید. بدین ترتیب ساختار برنامه نویسی شیء گرا (object oriented ) را میتوان به طور مستقیم و بدون تبدیل نمودن به سایر فرمتها، در پایگاه دادهها مورد استفاده قرار داد. این وضعیت به دلیل مفاهیم مالكيت (ownership) در سیستم چند بعدی، رخ میدهد. در برنامه شیء گرا (OO)، يك شیء خاص "مالك " سایر اشیاء در حافظه است، مثلا دیوید مالك نشانی خود میباشد. در صورتی كه مفهوم مالكيت در پایگاه دادههای رابطهای وجود ندارد.
ویژگیهای سیستم مدیریت پایگاه دادهها
پس از این مقدمه به توصیف سیستم مدیریت پایگاه دادهها میپردازیم. سیستم مدیریت پایگاه دادهها، مجموعهای پیچیده از برنامههای نرمافزاری است كه ذخیره سازی و بازیابی دادههای (فیلدها، ركوردها و فایلها) سازمان را در پایگاه دادهها، كنترل میكند. این سیستم، كنترل امنیت و صحت پایگاه دادهها را نیز بر عهده دارد. سیستم مدیریت پایگاه دادهها، درخواستهای داده را از برنامه میپذیرد و به سیستم عامل دستور میدهد تا دادهها ی مناسب را انتقال دهد. هنگامی كه چنین سیستمی مورد استفاده قرار میگیرد، اگر نیازمندیهای اطلاعاتی سازمانی تغییر یابد، سیستمهای اطلاعاتی نیز آسانتر تغییر خواهند یافت. سیستم مذكور از صحت پایگاه دادهها پشتیبانی میكند. بدین ترتیب كه اجازه نمیدهد بیش از يك كاربر در هر لحظه، يك ركورد را به روز رسانی كند. این سیستم ركوردهای تكراری را در خارج پایگاه دادهها نگاه میدارد. برای مثال، هیچ دو مشترك با يك شماره مشتری، نمیتوانند در پایگاه دادهها وارد شوند. این سیستم روشی برای ورود و به روز رسانی تعاملی پایگاه دادهها فراهم میآورد. يك سیستم اطلاعات كسب و كار از موضوعاتی نظیر (مشتریان، كارمندان، فروشندگان و غیره) و فعالیتهایی چون (سفارشات، پرداختها، خریدها و غیره) تشكيل شده است. طراحی پایگاه دادهها، فرایند تصمیم گیری درباره نحوه سازماندهی این دادهها در انواع ركوردها و برقراری ارتباط بین ركوردهاست.سیستم مدیریت پایگاه دادهها میتواند ساختار دادهها و ارتباط آنها را در سازمان به طور اثر بخش نشان دهد. سه نوع مدل متداول سازمانی عبارتند از: سلسله مراتبی، شبكهای و رابطهای. يك سیستم مدیریت پایگاه دادهها ممكن است يك، دو یا هر سه روش را فراهم آورد.
سرورهای پایگاه دادهها، كامپیوترهایی هستند كه پایگاه دادههای واقعی را نگاه میدارند و فقط سیستم مدیریت پایگاه دادهها و نرمافزار مربوطه را اجرا میكنند. معمولا این سرورها كامپیوترهای چند پردازندهای با آرایههای ديسك RAID برای ذخیره سازی میباشند.
فهرست سیستمهای متداول مدیریت پایگاه دادهها
Closed source :
IBM (DB2)
FileMaker, Inc (FileMaker Pro)
IBM (IMS)
Informix
Computer Associates (Ingres)
Borland (InterBase)
Micosoft (Microsoft SQL Server)
Microsoft (Microsoft Access)
Mimer AB (Mimer SQL)
Oracle
Sybase
NCR Corporation (Teradata)
Open Source :
Sleepycat software (Berkeley DB )
IBPhoenix (Firebird)
My SQL AB (My SQL)
PostgreSQL
MaxDB
SQLite
تاریخچه
پایگاه دادهها در اولین روزهای پیدایش محاسبات الكترونيك به كار گرفته شدند. اما اكثر آنها برنامههای سفارشیای بودند كه برای دستیبابی به پایگاه دادههای سفارشی نوشته میشدند . این سیستمها بر خلاف سیستمهای مدرنی كه میتوانند در پایگاه دادههای مختلف به كار گرفته شوند، ارتباط تنگاتنگی با پایگاه دادهها دارند. انواع پایگاه دادهها عبارتند از:
پایگاه دادههای پیمایشی
رشد كاربری كامپیوتر، پیدایش سیستمهای پایگاه دادههای همه منظوره را موجب گردید. و در اواسط 1960 چنین سیستمهایی در بخش تجاری به كار گرفته شد. چارلز بچ من، نویسنده يكی از چنین محصولاتی با نام IDS، گروه Database Task Groupرا بنیان نهاد كه این گروه مسوول ایجاد و استاندارد سازی COBOL شد. آنها در سال 1971 استاندارد خود را عرضه نمودند. این استاندارد Codasyle approach نام داشت. این شیوه مبتنی بر پیمایش دستی مجموعه دادهها بود. هنگامی كه پایگاه دادهها برای اولین بار برنامه را باز میكرد، به اولین ركورد در پایگاه دادهها و به همین ترتیب نیز به سایر بخشهای داده نیز اشاره میشد. برنامه نویس برای دسترسی به يك ركورد خاص مجبور بود تا این اشارهگرها رابه ترتیب دنبال كند تا به ركورد موردنظر برسد. در query های ساده مانند " یافتن تمام افرادی كه در سوئد زندگی میكنند " باید برای جستجو در كل مجموعه دادهها برنامه نویسی میشد و دستوری به نام find وجود نداشت. شركت IBM سیستم مدیریت پایگاه دادههایی به نام IMS داشت. این سیستم از نظر مفهوم مشابه codasyle بود، اما برخلاف آن كه از مدل شبكهای استفاده مینمود، IMS مدل سلسله مراتبی را به كار میبرد.
پایگاه دادههای رابطهای
ادگار كاد كه در شركت آیبیام كار میكرد در سال 1970 مقالاتی در زمینه شیوه جدیدی برای ساخت پایگاه دادهها نوشت. يكی از مقالات وی كه Relational Model of Data for Shared Data Bank نام داشت، به بررسی سیستم جدیدی برای ذخیره سازی و كار با پایگاه دادههای بزرگ پرداخته بود. در این شیوه به جای اينكه ركورد به صورت ركوردهای free-form همانگونه كه در روش codasyle آمده بود، ذخیره شوند، از جدولی با ركوردهایی با طول ثابت استفاده میشد.
چنین سیستمی برای ذخیره سازی پایگاه دادههای پراكنده و در جاييكه بعضی از دادههای ركورد خالی هستند، كارآیی ندارد. مدل رابطهای این مشكل را حل كرده است. بدین صورت كه دادهها به يكسری جدول تقسیم میشوند و عناصر اختیاری از جدول اصلی خارج میگردند و در صورت نیاز در جدول قرار میگیرند. چنین سیستمی برای ردیابی اطلاعات كاربران، اسامی و نشانی آنان و غیره به كار میرود. دادهها در روش پیمایشی در يك ركورد جای میگیرند و آیتمهایی كه مورد استفاده قرار نگیرند، در پایگاه دادهها نیز نخواهند بود. دادهها در شیوه رابطهای در جداول جداگانهای، مثلا جدول اسامی، جدول نشانیها و غیره جای میگیرند. برقراری ارتباط بین اطلاعات نكته مهم در این سیستم است. درمدل رابطهای بعضی از بیتهای اطلاعات به عنوان كليد معرفی میشوند و منحصرا بیانگر ركورد خاصی هستند. هنگامی كه اطلاعات كاربر جمع آوری میشود، میتوان این اطلاعات را كه در جداول اختیاری ذخیره میشوند، با جستجوی كليد مربوطه یافت.
پایگاه دادههای چند بعدی
پایگاه دادههای رابطهای توانست به سرعت بازار را تسخیر كند، هرچند كارهایی نیز وجود داشت كه این پایگاه دادهها نمیتوانست به خوبی انجام دهد. به ویژه به كارگیری كليدها در چند ركورد مرتبط به هم و در چند پایگاه داده مشترك، كندی سیستم را موجب میشد. برای نمونه برای یافتن نشانی كاربری با نام دیوید، سیستم رابطهای باید نام وی را در جدول كاربر جستجو كند و كليد اصلی (primary key ) را بیابد و سپس در جدول نشانیها، دنبال آن كليد بگردد. اگر چه این وضعیت
از نظر كاربر، فقط يك عملیات محسوب، اما به جستجو درجداول نیازمند است كه این كار پیچیده و زمان بر خواهد بود. راه كار این مشكل این است كه پایگاه دادهها اطلاعات صریح درباره ارتباط بین دادهها را ذخیره نماید. میتوان به جای یافتن نشانی دیوید با جستجو ی كليد در جدول نشانی، اشارهگر به دادهها را ذخیره نمود. در واقع، اگر ركورد اصلی، مالك داده باشد، در همان مكان فیزيكی ذخیره خواهد شد و از سوی دیگر سرعت دسترسی افزایش خواهد یافت.
چنین سیستمی را پایگاه دادههای چند بعدی مینامند. این سیستم در هنگامی كه از مجموعه دادههای بزرگ استفاده میشود، بسیار سودمند خواهد بود. از آنجاييكه این سیستم برای مجموعه دادههای بزرگ به كار میرود، هیچگاه در بازار به طور مستقیم عمومیت نخواهد یافت.
پایگاه دادههای شیء
اگرچهسیستمهای چند بعدی نتوانستند بازار را تسخیر نمایند، اما به توسعه سیستمهای شیء منجر شدند. این سیستمها كه مبتنی بر ساختار و مفاهیم سیستمهای چند بعدی هستند، به كاربر امكان میدهند تا اشیاء را به طور مستقیم در پایگاه دادهها ذخیره نماید. بدین ترتیب ساختار برنامه نویسی شیء گرا (object oriented ) را میتوان به طور مستقیم و بدون تبدیل نمودن به سایر فرمتها، در پایگاه دادهها مورد استفاده قرار داد. این وضعیت به دلیل مفاهیم مالكيت (ownership) در سیستم چند بعدی، رخ میدهد. در برنامه شیء گرا (OO)، يك شیء خاص "مالك " سایر اشیاء در حافظه است، مثلا دیوید مالك نشانی خود میباشد. در صورتی كه مفهوم مالكيت در پایگاه دادههای رابطهای وجود ندارد.
ویژگیهای سیستم مدیریت پایگاه دادهها
پس از این مقدمه به توصیف سیستم مدیریت پایگاه دادهها میپردازیم. سیستم مدیریت پایگاه دادهها، مجموعهای پیچیده از برنامههای نرمافزاری است كه ذخیره سازی و بازیابی دادههای (فیلدها، ركوردها و فایلها) سازمان را در پایگاه دادهها، كنترل میكند. این سیستم، كنترل امنیت و صحت پایگاه دادهها را نیز بر عهده دارد. سیستم مدیریت پایگاه دادهها، درخواستهای داده را از برنامه میپذیرد و به سیستم عامل دستور میدهد تا دادهها ی مناسب را انتقال دهد. هنگامی كه چنین سیستمی مورد استفاده قرار میگیرد، اگر نیازمندیهای اطلاعاتی سازمانی تغییر یابد، سیستمهای اطلاعاتی نیز آسانتر تغییر خواهند یافت. سیستم مذكور از صحت پایگاه دادهها پشتیبانی میكند. بدین ترتیب كه اجازه نمیدهد بیش از يك كاربر در هر لحظه، يك ركورد را به روز رسانی كند. این سیستم ركوردهای تكراری را در خارج پایگاه دادهها نگاه میدارد. برای مثال، هیچ دو مشترك با يك شماره مشتری، نمیتوانند در پایگاه دادهها وارد شوند. این سیستم روشی برای ورود و به روز رسانی تعاملی پایگاه دادهها فراهم میآورد. يك سیستم اطلاعات كسب و كار از موضوعاتی نظیر (مشتریان، كارمندان، فروشندگان و غیره) و فعالیتهایی چون (سفارشات، پرداختها، خریدها و غیره) تشكيل شده است. طراحی پایگاه دادهها، فرایند تصمیم گیری درباره نحوه سازماندهی این دادهها در انواع ركوردها و برقراری ارتباط بین ركوردهاست.سیستم مدیریت پایگاه دادهها میتواند ساختار دادهها و ارتباط آنها را در سازمان به طور اثر بخش نشان دهد. سه نوع مدل متداول سازمانی عبارتند از: سلسله مراتبی، شبكهای و رابطهای. يك سیستم مدیریت پایگاه دادهها ممكن است يك، دو یا هر سه روش را فراهم آورد.
سرورهای پایگاه دادهها، كامپیوترهایی هستند كه پایگاه دادههای واقعی را نگاه میدارند و فقط سیستم مدیریت پایگاه دادهها و نرمافزار مربوطه را اجرا میكنند. معمولا این سرورها كامپیوترهای چند پردازندهای با آرایههای ديسك RAID برای ذخیره سازی میباشند.
فهرست سیستمهای متداول مدیریت پایگاه دادهها
Closed source :
IBM (DB2)
FileMaker, Inc (FileMaker Pro)
IBM (IMS)
Informix
Computer Associates (Ingres)
Borland (InterBase)
Micosoft (Microsoft SQL Server)
Microsoft (Microsoft Access)
Mimer AB (Mimer SQL)
Oracle
Sybase
NCR Corporation (Teradata)
Open Source :
Sleepycat software (Berkeley DB )
IBPhoenix (Firebird)
My SQL AB (My SQL)
PostgreSQL
MaxDB
SQLite