|
در
حال حاضر دهها
نمونه از سيستمهای
پايگاه داده رابطهای
(RDBMS) به صورت سورس آزاد (Source Free) برای استفاده در محيط
لينوكس وجود دارند. علاوه بر اين، تعدادی ابزار متشكل از
Componeatهای لازم وجود دارند كه با استفاده از آنها هر كسی میتواندDBMS
مخصوص خود را ايجاد كند. اين سيستمها
محدوده وسيعی را دربر میگيرند؛
از سيستمهای
بسيار پرقدرت كه با محصولات تجاری از جنبه تنوع قابليتها
و كارايی رقابت میكنند،
تا پايگاههای
داده كوچك و خاص منظوره كه برای وظايف خاصی نظير استفاده در
كارگزارهای وب طراحی شدهاند.
برخی از اين سيستمها
حاصل سالها
كار مستمر توسط تيمهای
حرفهای
هستند كه اعضای آنها در سرتاسر جهان پخش هستند. برخی ديگر نيز
محصولات شركتهای
تجاری هستند كه علاقهمند
به ورود به دنيای نرمافزاری
سورس آزاد بودهاند.
با وجود اينكه وجود چنين نرمافزارهايی
جالب بهنظر
میرسد،
اما جای سؤال است كه آيا اين سيستمها
استفاده میشوند؟
و يا حتی اينكه اصلاً اين سيستمها
مفيدند؟
پاسخ هر دو سؤال مثبت
است، كه البته در مورد سؤال اول با تأكيد بيشتری است. در حالی كه
لينوكس و نرمافزارهای
سورس آزاد نظير Apache Web Server تأثيرات شگرفی در صنعت نرمافزار
جهان به جا گذاشتهاند،
پايگاههای
داده سورس آزاد در اين بين، از وضعيت خاصی برخوردار هستند؛ حتی
سازمانها
و مؤسساتی كه هيچ مشكلی در استفاده از لينوكس يا Apache نمیبينند،
وقتی پای پايگاه داده سورس آزاد به ميان میآيد،
به نوعی استفاده از آن دوری میكنند
و میتوان
گفت كه آن را موجب شرمندگی خود میدانند.
مشكل را میتوان
تركيبی از ترديد در مورد قابليتهای
محصولات سورس آزاد، و ترس از عدم وجود پشتيبانی مناسب برای آنها
دانست.
شايد بتوان گفت از اين جنبه، سيستمهای
پايگاه داده، با ديگر سيستمهای
سورس آزاد متفاوت هستند.
در واقع شايد اين حساسيت
خيلی هم بیمورد
نباشد. برای اكثر كاربران نرمافزارهای
بزرگ، قابل انتقال (Protable) بودن نرمافزارها
از اهميت زيادی برخوردار است. بسياری از DBMSهاي تجاری روی همه سيستمهای
عامل نسخههای
سيستم خود را عرضه میكنند؛
اما در مورد DBMSهای سورس آزاد اين چنين نيست. با توجه به اين كه
هزينههای
ناشی از تغيير DBMS مورد استفاده در يك نرمافزار
به طور چشمگيری
بيشتر از هزينه تغيير سيستم عامل است، اكثراً ترجيح میدهند
سيستمهای
خود را روي DBMSهای تجاری بنا كنند.
با همه اينها،
كار روی DBMSهای سورس آزاد همچنان ادامه دارد. يكی از اعضای اصلی تيم
توليد Postgre SQL (يكی از معروفترين
پايگاههای
داده سورس آزاد) میگويد:
«واقعيت اين است كه افراد و مؤسسات بسيار زيادی از محصول ما استفاده
میكنند.
هماكنون بسياری اوراكل را رها كرده، به PpstgreSQL رو آوردهاند.»
بنابر ادعای او، در نگارشهای
جديد PostgreSQL امكاناتی قرار داده شده است كه انتقال سيستمها
از اوراكل به اين DBMS را میتوان
به سادگی انجام داد.
البته لزومی ندارد
كه همه پايگاههای
داده آنقدر بزرگ و پيشرفته باشند كه بتوانند اطلاعات يك كشور را
مديريت كنند. بسياری از كاربردها نياز به پايگاههای
داده كوچكتر و سادهتر
دارند؛ بنابراين برخی پايگاههای
داده به صورت خاص منظوره طراحی و ايجاد میشوند.
مثلاً Hypersonec SQL يك پايگاه داده جاوايی است كه دستورات را با
فرمت SQL میگيرد
و يك واسط برای JDBC (Java Databude Connectivity) دراختيار كاربران
قرار میدهد.
اين نرمافزار
همچنين شامل قابليتهای
خاصی است كه آن را برای استفاده از appletها مناسب میكند.
برخی پايگاههای
داده سورس آزاد نيز برای استفاده در كارگزارهای وب ايجاد شدهاند.
SQL چيست؟
زبان استاندارد پرسوجو
(Standard Query Langrage) يا SQL يك زبان بينالمللی
برای پايگاههای
داده مدرن است. پايگاه دادهای
كه پشتيبانی SQL را داشته باشد، میتواند
توسط بسياری از نرمافزارها
مورد دسترسی قرار گيرد. SQL علاوه بر تأمين يك راه استاندارد براي
ارتباط با پايگاههای
داده، میتواند
به عنوان واسطی بين سيستمهای
پايگاه داده و ديگر برنامههای
كاربردی مورد استفاده قرار گيرد.
|
" " |
|
يكی از
اعضای اصلی تيم توليد Postgre SQL (يكی از معروفترين
پايگاههای
داده سورس آزاد) میگويد:
«واقعيت اين است كه افراد و مؤسسات بسيار زيادی از محصول ما
استفاده میكنند.هماكنون
بسياری اوراكل را رها كرده، به PpstgreSQL رو آوردهاند. ا
|
|
" " |
SQL بسيار گسترده است، به
طوری كه تقريباً در تمامی سيستمها،
تنها بخشی از آن پيادهسازی
میشود.
اين واقعيت، هم در مورد سيستمهای
تجاری و هم در مورد سيستمهای
سورس آزاد صدق میكند.
در اكثر محصولات سورس آزاد تنها زيرمجموعه بسيار كوچكی از اين
استاندارد پيادهسازی
میشود،
در حالی كه در برخی از آنها
(PostgreSQL) میتوان
ادعا كرد كه در مقايسه با محصولات تجاری نيز بخشهای
بيشتری از استاندارد قرار داده شده است.
شايد بتوان يكی از
اتفاقات مهم در عرصه پايگاههای
داده سورس آزاد را تصميم Insprise برای تبديل محصول تجاری خود يعنی
Interbase به يك محصول سورس آزاد دانست. اين سيستم از نگارش شماره 6
به صورت سورس آزاد موجود است.
در ادامه اين مطلب،
نگاهی خواهيم داشت بر پايگاههای
داده سورس آزاد تحت لينوكس، و در شماره آينده، پايگاههای
داده تجاری تحت لينوكس را معرفی خواهيم كرد.
پايگاههای
داده سورس آزاد تحت لينوكس
با وجودی كه
محصولات تقريباً تمامی توليدكنندگان پايگاههای
داده تجاری تحت لينوكس وجود دارد، اما پايگاههای
داده سورس آزاد همچنان در حال رشد و گسترش هستند. در ادامه، مروری
خواهيم داشت بر برخی از پايگاههای
داده سورس آزاد. البته علاوه بر محصولاتی كه در زير نام برده شدهاند،
بسياری از توليدكنندگان محصولات تجاری، يك نسخه Personal edition يا
تك كاربره نيز از محصول خود عرضه میكنند
كه برای كاربردهای غيرتجاری استفاده میشوند.
اين محصولات در طبقهبندی
محصولات سورس آزاد خارج هستند و در مطلب ما نمیگنجند.
SAPDB
يك نسخه مجانی و
تحت ليسانس GPL/LGPL از پايگاهداده
SAP AG است. اين پايگاه داده را میتوان
به عنوان يك پايگاه داده بزرگ و همه منظوره محسوب كرد. سايت اين
پايگاه داده در آدرس
www.sapdb.org
قرار دارد.
Hypersonic SQL
Hsql پروژهای
است برای ايجاد يك پايگاه داده رابطهای
كه تماماً با زبان جاوا نوشته شده است. اين پايگاه داده تحت ليسانس
BSD است و میتوان
سورس آزاد را از آدرس hsqldb.sourceforge.net تهيه كرد.
PostgreSQL
اين DBMS يك پيادهسازی
كامل و قدرتمند از استاندارد SQL است كه با محصولات تجاری نظير
اوراكل رقابت میكند.
اين پايگاه داده (به همراه My SQL ) شاخصترين
پايگاه داده سورس آزاد است كه در محيطهای
BSD, GNU/Linux اجرا میشود.
پشتيبانی اين محصول به صورت تجاری (غيرمجانی) توسط توليدكنندگان اصلی
آن ارائه میشود.
قابليتهای
اصلی اين پايگاه داده عبارتند از:
-كاملاً مبتنی بر تراكنش
(transactional) است و دارای چهار خصوصيت اصلی هر پايگاه داده است،
يعنی Durability, Isolation, Consistency, Atomicity كه به اختصار
ACID گفته میشود.
- اين پايگاه دارای هفت سطح مختلف قفلگذاری
است كه با استفاده از آنها پرسوجو
و بهنگامسازی
را به صورت سازگار انجام میدهد.
- كارايی اين پايگاه داده در نگارش 7
افزايش قابل توجهی يافته است.
- دارای پشتيبانی از Triggerها است.
- از گونههای
دادهای
تعريف شده توسط كاربر (user-defined data types) پشتيبانی میكند.
- از رويههای
ذخيرهشده
(Stored Procedures) پشتيبانی میكند.
اين رويهها
میتوانند
به طرق مختلفی تعريف شوند: با استفاده از يك زبان داخلی سيستم، به
شكل يك كتابخانه مشترك (shared Library) و يا با استفاده از هر زبان
ديگری كه به كارگزار Postgres متصل باشد.
- تهيه نسخه پشتيبان از اطلاعات به
صورت Online
- امكان ايجاد انديسهای
مختلف روی اطلاعات (hash, b-tree و ساير انواع).
- وجود درايورهای ODBC كه به صورت
تجاری توسط شركت Open Link عرضه میشوند.
- وجود درايورهای ODBC به صورت مجانی.
- وجود فايلهای
HOWTO كه به صورت يك راهنمای قدرتمند استفاده از Postgres را تسهيل
میكنند.
|
" " |
|
در سال
1378 و در دانشگاه صنعتی شريف، كنترل همروندی
نگارش 4/6 از Postgres در قالب يك پاياننامه
كارشناسی ارشد از حالت ساده به حالت چندگونه (multi-version)
تبديل شد كه تأثير بسيار زيادی در افزايش كارآيی آن داشت.
|
|
" " |
در واقع PostgreSQL
را هم میتوان
يك محصول تجاری و هم يك محصول سورس آزاد دانست. نسخه اوليه اين محصول
كه University Postgres نام داشت، در دانشگاه كاليفرنيا به عنوان يك
پروژه تحقيقاتی در زمينه پايگاههای
داده رابطهای
نوشته شد. به مرور با گسترش اين نرمافزار،
يك نسخه از آن به صورت تجاری درآمد كه در حال حاضر توسط شركت
Computer Associates و با نام Ingres فروخته میشود.
اما همزمان
يك نسخه هم به صورت سورس آزاد وجود دارد كه با نام Postgre SQL
شناخته میشود.
نكته جالب در
مورد Postgre SQL اين است كه در سال 1378 و در دانشگاه صنعتی شريف،
كنترل همروندی
نگارش 4/6 از Postgres در قالب يك پاياننامه
كارشناسی ارشد از حالت ساده به حالت چندگونه (multi-version) تبديل
شد كه تأثير بسيار زيادی در افزايش كارآيی آن داشت. اين امكان در
نسخههای
جديدتر Postgres عرضه شده است. سايت اين سيستم در آدرس
www.postgresql.org قرار
دارد.
MySQL
اين پايگاه داده كه
توسط MySQL AB ايجاد شده است،همراه با Postgres پركاربردترين پايگاههاي
داده سورس آزاد تحت لينوكس هستند. ويژگیهای
اصلی اين پايگاه داده عبارت است از:
نسخه تجاری آن توسط Nu Sphere فروخته،
پشتيبانی و آموزش داده میشود.
پشتيبانی تجاری آن همچنين توسط
AbriaSoft ارائه میشود.
اين پايگاه داده به شكل ابتدايی و ناقص
از قفلگذاری
روی جداول پشتيبانی میكند.
مكانيزمهای
كنترل درسترسی آن پيچيده و قدرتمند هستند.
دارای مكانيزمهای
multi-thread جهت پشتيبانی از پرسوجوهای
همزمان
است.
شامل APIهايی برای Python, Tci, Java,
C, Pert, ODBC است.
آدرس اينترنتی اين پايگاه داده در
www.mysql.com
قرار دارد.
InterBase
اين محصول يك
پايگاده داده معروف است كه تحت ليسانس MPL به صورت سورس آزاد عرضه
شده است.
آدرس سايت آن
www.interbase2000.com
است.
CQL++
پايگاه داده
CQL++DBMS توسط شركت Machina Independent Software عرضه شده است. اين
سيستم كه در ابتدا به صورت يك نرمافزار
تجاری عرضه شده بود، اكنون تحت ليسانسهای
مختلفی از جمله GNU GPL موجود است. قابليتهای
اصلی اين پايگاه داده عبارتند از:
- پشتيبانی تراكنشها
شامل rollback, commit، تراكنشهای
تودرتو، Logging و ترميم از خطا
- پشتيبانی ODBC Level 1 API, ANSI1989
Level 2 SQL
- دسترسی به اطلاعات به صورت ISAM يا
B-tree
- تعداد نامحدود Cursorها
- پشتيبانی از BLOB (Binary Large
Objects)
- كنترل همروندی
بهينه با قفلهای
خواندن مشترك (Shared rdad Locks)
- پيشپردازنده
برای پشتيبانی SQL در C++
اين پايگاه داده را میتوان
از آدرس
www.cql/.com
به دست آورد.
Gadfly
اين نرمافزار
يك سيستم پايگاه داده كوچك و قابل انتقال است كه تماماً با زبان
Python نوشته شده است. فايلهای
اين پايگاه داده، قابل انتقال از ويندوز 95 به لينوكس هستند. اين
پايگاه داده توسط chordate lystems به شكل تجاری پشتيبانی میشود.
آدرس سايت اين پايگاه داده
www.chordate.com/gadfly
است.
Beagle SQL
پروژهای
است برای ايجاد يك Object Relational SQL RDBMS كه آدرس آن
www.beaglesq/.org است.
GNU SQL
اين محصول در كشور روسيه ايجاد شده است
و به نظر میرسد
كه توليد آن در سال 1998 متوقف شده است. آدرس آن
www.ispras.ru/~kml/gss
است.
|