اینتربیس چیست ؟

اینتربیس یک RDBMS محصول شرکت بورلند است که بخاطر footprint کوچک ، هزینه پایین و نیازمندی به ادمینیستریشن !! در حد صفر ، از سایر DMMS ها مجزا میشود.و در دو نسخه سرور و دسکتاپ ، توسط بورلند عرضه میشود .

اینتربیس را کجاها میتوان اجرا کرد ؟

اینتربیس را میتوان بر روی سیستم عاملهای ویندوز( 2000، 2003 ، NT ، XP ) ، لینکس ( Redhat, SUSE‌( ، سولاریس ( 7و8و9) و پلتفرمهای جاوا و دات نت ، اجرا نمود.

چه IDE هایی از اینتربیس حمایت میکنند ؟

Delphi , Kylix, CPP Builder, C sharp Builder, J Builder بطور درون ساخت و مجتمع ، از اینتربیس حمایت میکنند . برای مثال ، تصویرهایی از کامپوننتهای کار با اینتربیس را در محیط دلفی میتوان مشاهده نمود :

علاوه بر آن ، حمایت اینتربیس از JDBC , ODBC باعث میشود که IDE های دیگری نیز از آن طریق بتوانند از آن استفاده کنند.



ویژگیها . مزایا :

اینتربیس دارای یک معماری MultiVersion است که توسعه دهندگان را از نگرانی درباره مسائل همزمانی ، بازیابی از برخورد و مدیریت حافظه ، رهایی میبخشد.

اینتربیس برای جایی طراحی شده که هیچ دیتابیس ادمینی حضور نداره ! crash recovery های اتوماتیک ، بک آپ های آنلاین ، مدیریت اتوماتیک کاربران از جمله این موارد است . بهینه سازی مبتنی بر هزینه ی کوئری ها ، garbage collection خودکار و rebalance کردن ایندکسها بصورت اتوماتیک ، از جمله مواردی ست که نیاز به حضور ادمین را تقلیل میدهد.

Cross Platform بودن ، از دیگر ویژگیهای اینتربیس هست که باعث میشود بتوان آنرا در ویندوز ، جاوا ، دات نت ، لینکس و سولاریس ، اجرا نمود.

Foot print پایین ، این امکان را فراهم میسازد که بتوان اینتربیس را حتی بر روی سیستمی با 32 مگابایت فضای RAM و 15 مگابایت فضای دیسک سخت هم نصب و استفاده نمود.

چه کسانی از اینتربیس استفاده میکنند ؟

شرکتهایی مانند متورولا ، نوکیا ، بوئینگ و بخشهایی از ارتش ایالات متحده و سازمان فضایی ناسا ، از جمله مشتریان اینتربیس هستند.

اینتربیس و رقبا :

اینتربیس و MySQL :

مزایای اینتربیس درمقابل MySQL را میتوان بصورت فهرست وار زیر ، لیست کرد که در ادامه ، توضیح مختصری نیز درباره برخی از آنها ارائه خواهد شد :
تریگرها
Stored Procedure ها
رخداد های سمت کلاینت
پشتیبان گیری آنلاین
Crash Recovery سریعتر
ارائه انواع داده ای جهت محاسبات دقیقتر اعشاری
کنترل دسترسی آسانتر توسط Role ها
View ها
ارائه انواع رشته ای ساده تر و سازگارتر با استانداردهای ANSI
Default Value های قدرتمندتر .
ابزارهای Performane Monitoring کاراتر
Configuration Option های بسیار کمتر و ساده تر
N-way Replication
پشتیبان گیری آنلاین :

InnoDB یک موتور دیتابیس MySQL است که امکان پشتیبان گیری آنلاین را فراهم میکند ( و فکر میکنم تنها گزینه ی موجود باشد ) ، برای استفاده از آن ، بایستی InnoDB Hot Backup را به قیمت سالانه ی 450 دلار و یا دائمی 1150 دلار خریداری نمایید . این درحالیست که چنین امکانی بصورت درون ساخت در اینتربیس موجود هست . IBConsole برای چنین روزهایی در اینتربیس بوجود آمده !

سرعت ریکاوری :

مدت زمان لازم برای ریکاور کردن یا ریستارت کردن یک MySQL ، به سایز لاگهای تراکنشهایی بستگی دارد که بایستی رولبک ! و .. شوند بستگی دارد که حتی آن هم به نحوه کانفیگ کردن دیتابیس توسط ادمین بستگی پیدا میکند.

در حالیکه ریکاوری یا ریستارت بر روی اینتربیس ، بصورت * آنی * صورت میگیرد ، به این دلیل که هیچ تغییری من جمله برگرداندن تراکنشها و ... لازم نیست که بر روی دیتابیس صورت بگیرد . بلکه بجای آن ، اینتربیس بسادگی یک بیت وضعیت را برای هر تراکنش ، ست میکند ! و versioning engine بطور اتوماتیک رکوردهای مزبور را درنظر نمیگیرد . این رکوردها هم در هنگام استفاده عادی از دیتابیس و بدون اینکه فشار جدیدی به سیستم تحمیل کنند ، بطور خودکار توسط Garbage Collector موجود در اینتربیس ، حذف میشوند .

Domain ها : موقعیتی را در نظر بگیرید که میخواهید یکی از انواع داده ای فیلدهای جداول را تغییر بدهیم . مثلا فیلدی برای شماره قطعات داشته ایم که اکنون نیاز به ذخیره اعداد بزرگتری داریم .... در هنگام استفاده از MySQL ، راه حل این هست که فیلد مزبور را در همه جدولهایی که در آنها وجود دارد ، تغییر دهیم !

ولی اینتربیس ، نوع داده ای بنام Domain تعریف کرده که آنرا میتوانیم بر حسب یکی از انواع داده ای موجود در اینتربیس ،‌تعریف کنیم . مثلا در موقعیت بالا ، فرض کنیم که فیلد اولیه ، 10 رقمی بوده باشد ، پس در اینتربیس ، چنین تعریف شده :



CREATE DOMAIN PART_NO_TYPE VARCHAR(1O) NOT NULL


و اکنون که میخواهیم برای مثال ، سایز آنرا به 14 کاراکتر تغییر دهیم ،‌کافیست که چنین عمل کنیم :


کد:
ALTER DOMAIN PART_NO_TYPE VARCHAR(14)


همین ! دیگه لازم نیست به سراغ تک تک جداول بروید و تغییرات را اعمال کنید !

سایر موارد :اینتربیس علاوه بر پروتکولهای TCP/IP و NetBEUI که توسط MySQL نیز پشتیبانی میشود ، از IPX/SPX نیز پشتیبانی میکند.

ماکزیمم سایز دیتابیس در MySQL 4.1 alpha ، به میزان 64000 گیگابایت میباشد و این سایز در اینتربیس ، * نامحدود * است

اینتربیس بر خلاف MySQL 4,1 alpha دارای انواع داده ای بولین ، نامریک ، دسیمال و کاراکتارهای استاندارد Ansi نیز میباشد .

اینتربیس بر خلاف MySQL 4.1 alpha ، از انواع Replication های N-way و سنکرون نیز حمایت میکند.

اینتربیس و Micro$oft SQL Server ‌:

مزایای اینتربیس نسبت به MsSQLServer عبارتند از :
Crash recovery سریعتر
مدیریت ایونت ساده تر
سایز کوچکتر
هزینه های مالکیت و آموزش کمتر
نیازمندیهای سیستمی کمتر
پشتبانی Cross Platform
گزینه های Deployment متنوع تر
همزمانی بیشتر در محیطهای read/write
هنگامی که سرویسهای data analysis به یک view یه با ثبات از دیتا در یک زمان خاص احتیاج دارند ، مکانیزم SQL Server این هست که با فراهم کردن قفلها ، سایر کاربران را از دسترسی به اطلاعاته مورد تحلیل باز میدارد تا کار تحلیل تمام شود . !!

در حالیکه در اینتربیس چنین امکانی را بدون نیاز به قفل کردن داده ها و مانع شدن از دسترسی کاربران به داده ها ، در اختیار داریم ، بدین صورت که اینتربیس از دیتاهای مورد نظر snap shot تهیه میکند ...( و اگر اشتباه نکنم ، این همان ایده ای است که ماکروسافت بالاخره در SQL Server 2005 از آن تقلید کرده ! ) .

نحوه رفتار با Lock ها :

موقعیتی را در نظر بگیرید که کاربر الف ، رکوردی را آپدیت میکند و سپس بدون کامیت کردن تراکنش مربوطه ، برای نماز و ناهار!! اتاقش را ترک میکند . در همین حال ، کاربر ب ، دستور select ی اجرا میکند که حاوی رکورد قفل شده ی کاربر الف باشد !

مواجه ی SQL Server : تراکنش کاربر ب ، تا هنگامی که تراکنش کاربر الف ، آزاد نشده ، بایستی که منتظر بماند !! راه حل ماکروسافت به این مشکل ، این بوده که time out در نظر بگیرد که توسط دستور SET LOCK_TIMEOUT اعمال میشود . ولی نقطه ضعف این راهکار در این هست که این دستور ،‌همه تراکنشهای کانکشن جاری را تحت تاثیر قرار میدهد .

مواجه ی اینتربیس : اینتربیس سطوح ایزولاسیون تراکنش snap shot را فراهم نموده که همیشه آخرین version از از سطری که در زمان آغاز تراکنش ، commit شده بوده را میخواند. که نتیجتا" اخیارات زیر را ممکن میسازد :

یک : میتوان علیرغم وجود یک نسخه commit نشده ، آخرین نسخه ی commit شده از سطر مزبور را خواند.

دو : میتوان صبر کرد تا تکلیف نسخه ی commit نشده ،‌معلوم شود !

سه : میتوان فورا یک وارنینگ! دریافت کرد که میگوید نسخه ای commit نشده از سطر مزبور ، موجود است .

تنظیمات بالا ، در *سطح تراکنش* قابل تنظیم هستند . بنابراین انتخابی که برای یک تزاکنش میکنیم ، سایر تزاکنشها و بدتر از آن ، کل کانکشن را تحت تاثیر قرار نمیدهد.

اینتربیس ، از تریگرهای Before هم پشتیبانی میکند ، در حالیکه Sql Server چنین امکانی ندارد . در عوض ماکروسافت تریگرهای Instead of را ارائه کرده که باز هم دچار مشکلاتی میشوند که در صورتی که علاقمند بودید ، در فرصته بعدی ، یک مطالعه موردی در این زمینه ، ارائه میشود !

سرعت ریکاوری بالاتر :


ریکاوری دیتابیسهای SQL Server ، بستگی به check point هایی داره که ادمین تعریف کرده و یا بطور اتوماتیک توسط خوده دیتابیس ، لحاظ میشه . در هرحال ، برای ریکاوری ، لاگهای تراکنشها توسط Sql Server پردازش میشه و هی اونقدر به عقب برمیگرده تا به آخرین check point برسد که امری ست زمان بر !

در حالیکه اینتربیس برای ریکاوری ، از مکانیزم خشنگی استفاده میکرد که در بحث مقایسه اش با Sql Server به آن اشاره شد .

هزینه ها :

با فراموش کردن این مطلب که در ایران میتوان نرم افزارها را به قیمت 350 تومان از حراجیهای حوالی میدان انقلاب و شاید داخل گاری ! تهیه کرد و با یادآوری این مطلب که * نرم افزار* در اون ور دنیا ، چیزی لوکس و تجملی نیست و حساب ، حسابه دودوتا چهار تا هست ! ، یک کم هم آمار و ارقام و هزینه های مالکیت را بررسی کنیم:

برای مثال ، هزینه مالکیت اینتربیس برای 20 کاربر و دوپردازنده ، 3300 دلار و برای Sql Server ، 4500 دلار هست و یا برای مثال ، هزینه اینتربیس 200 کاربره و چهارپردازنده ، معادل 7200 دلار و برای Sql Server معادل 20000 دلار میباشه .

Deploy کردن ::

مثلا در مورد MSDE :: معایب : در درون MSDE‌ ، توسط کارمندان بشر دوست ماکروسافت ، چیزی گذاشته شده بنام concurrency workload governor که لطف میکنه و باعث میشه که اگر تعداد concurrent batch workload های شما از پنج عدد بیشتر شد ، عمدا باعث کند تر عمل کردن سیستم بشه !! و هرچی از پنج تا بیشتر بشه ، سرعت سیستمتون را پایین تر میاره و کندتر میکنه تا اونقدر شاکی بشید و اشکتون دربیاد که * پول * بدهید و نسخه گرانقیمتی از ماکروسافت خریداری کنید !

حداکثر سایز دیتابیس در MSDE ، 2 گیگ است ! همین ! تاکید میکنیم که سایز کل دیتابیس ! نه فقط مثلا سایز جداول !

سایر موارد :

عدم وجود مشکل lock escalation در اینتربیس
عدم وجود مشکل conversion deadlock در اینتربیس
بهره مندی اینتربیس از تریگرهای before
توانایی اینتربیس در تعیین و کنترل نوبت اجرا شدن تریگرها
Crash recovery آنی در اینتربیس
15 مگابایت فضای دیسک سخت جهت نصب اینتربیس ،‌در مقابل حدودا 250 مگابایت فضای مورد نیاز Sql Server