150 likes | 294 Views
ODBC/ADO.NET/JDBC/OLEDB. بهار کیان. مقدمه.
E N D
ODBC/ADO.NET/JDBC/OLEDB بهار کیان
مقدمه دستيابی به بانک های اطلاعاتی يکی از بخش های مهم در اغلب برنامه های کامپيوتری است . فريمورک دات نت، يک تکنولوژی جديد با نام ADO.NET را بمنظور مديريت بانک های اطلاعاتی ارائه نموده است . در طی ساليان اخير، ماکروسافت تکنولوژی های متعددی را بمنظور دستيابی به بانک های اطلاعاتی ارائه و در اختيار پياده کنندگان سيستم های نرم افزاری قرار داده است . برنامه نويسان همواره با اين سوال مهم روبرو هستند که از کدام تکنولوژی و در چه زمانی می بايست استفاده نمايند . تنوع تکنولوژی های ارائه شده بگونه ای است که در برخی موارد باعث سردرگمی برنامه نويسان می شود . ADO.NET ، جديدترين تکنولوژی در اين زمينه است که افق جديدی را بمنظور دستيابی به منابع داده ، ايجاد نموده است .
تکنولوژی های ارائه شده توسط ماکروسافت بمنظور دستيابی به بانک های اطلاعاتی ماکروسافت طی ساليان اخير محموعه ای از تکنولوژی های لازم بمنظور دستيابی به بانک های اطلاعاتی را ارائه نموده است .ODBC,OLEDB,DAO,RDO,ADO ، نمونه هائی در اين زمينه می باشند. هدف اصلی تمامی تکنولوژی های فوق ، ارائه يک مجموعه از اينترفيس های برنامه نويسی ، بمنظور استفاده در طيف گسترده ای از سرويس گيرندگان برای ارتباط با منابع داده متفاوت است . منابع داده، ممکن است از نوع رابطه ای و يا غير رابطه ای باشند . در ادامه به بررسی برخی از تکنولوژی های فوق پرداخته تا از اين طريق ضرورت و جايگاه ADO.NET بدرستی تبين گردد .
تکنولوژِی ODBC تکنولوژی ODBC ) Open DataBase Connectivity ) ، اولين تلاش ماکروسافت در جهت ارائه امکانات لازم در خصوص دستيابی به منابع داده است. تکنولوژی فوق ، يک اينترفيس مبتنی بر C ، در رابطه با بانک های اطلاعاتی رابطه ای را در اختيار پياده کنندگان برنامه های کامپيوتری قرار داد.
دو محدوديت اساسیODBC ODBC عليرغم نيل به موفقيت هائی بزرگ ، دارای دو محدوديت اساسی است . اولين مورد به محدوديت اين تکنولوژی بمنظور دستيابی به بانک های اطلاعاتی رابطه ای ، برمی گردد. همانگونه که اشاره گرديد ، برخی درايورهای ODBC بمنظور حمايت ODBC جهت ارتباط با داده های غير رابطه ای ، بازنويسی شده اند .رويکرد فوق، وظايف اضافه ای را به درايورمربوطه تحميل خواهد کرد . کدهای مورد نظر برای حمايت از بانک های اطلاعاتی غير رابطه ای می بايست در هر يک از درايورهای مربوطه ، تکرار گردند . دومين محدوديت به ماهيت اينترفيس نوشته شده برمی گردد( يک اينترفيس مبتنی بر C ) . برنامه نويسان که با توجه به علاقه و توانائی خود از يک زبان برنامه نويسی خاص استفاده می نمايند ، لازم است در ابتدا با اينترفيس C ، ارتباط برقرار نموده و در ادامه امکان فراخوانی و استفاده از ODBC ، برای آنان فراهم خواهد شد.
ماکروسافت در ادامه ، استراتژی خود را بهبود و آن را بر اساس COMComponent) Object Model ) استوار نمود. بدين ترتيب امکان ايجاد اينترفيس های مستقل از زبان و بر اساس يک استاندارد باينری فراهم گرديد. مهمترين دستاورد تکنولوژی فوق ( راه حل های ارائه شده بر اساس تکنولوژی COM ) ، وجود انعطاف لازم از ديدگاه برنامه های سرويس گيرنده است . مجموعه اينترفيس های COM ماکروسافت ، OLE DB ناميده گرديد ( نام استفاده شده به زمان معرفی OLE برمی گردد) . تکنولوژی OLE DB
. يکی از ويژگی های مهمOLEDB عدم طراحی آن بمنظور استفاده در بانک های اطلاعاتی رابطه ای است . هر منبع داده که تمايل به عرضه خود برای سرويس گيرنده از طريق OLE DB را دارد، می بايست يک OLE DB Provider را پياده سازی نمايد . مهمترين دستاورد تکنولوژی فوق ، ايجاد يک اينترفيس مبتنی بر COM برای سرويس گيرندگان است
ADO.NET به همراه کتابخانه کلاس فريمورک دات نت ، ماکروسافت مجموعه ای از کلاس ها را بمنظور دستيابی به داده ها و با عنوان ADO.NET ، ارائه نموده است
شايد اين سوال مطرح گردد که چرا ماکروسافت يک تکنولوژی جديد بمنظور دستيابی به داده ها ارائه کرده است ؟ در پاسخ می بايست گفت که آنها مجبور به انجام اين کار بوده اند . OLE DB و ADO بر اساس عناصر COM می باشند . با توجه به اينکه دات نت يک زير ساخت جديد اشياء را ارائه کرده است، لازم است که در اين رابطه کلاس های دستيابی به داده ها ، نيز مبتنی بر دات نت باشند. ( لازم به يادآوری است که می توان در دات نت ، عناصر COM را فراخواند و از آنها استفاده کرد،بنابراين برنامه های دات نت قادر به فراخوانی ADO از طريق يک لايه ارتباطی خواهند بود) .
JDBC JDBC چيست؟ JDBC در حقيقت يک رابط برنامه سازي کاربردي (API) است که به برنامه هاي جاوا اجازه اتصال و تبادل اطلاعات با بانک اطلاعاتي را مي دهد، از آنجايي که با وجود JDBC، نيازي به نوشتن برنامه هاي جداگانه براي ارتباط با بانک هاي اطلاعاتي مختلف نيست، بنابراين نبايد نگران تفاوت Data Base ها و ساختار آنها بود. در واقع JDBC تفاوتي بين Oracle و MySQL وجود نداشته و تنها با يک روش مشخص به آنها متصل مي گردد. به همين جهت حتي در صورت تغيير نوع بانک اطلاعاتي يا حتي نوع برنامه (مثلاً از تحت ويندوز به تحت وب) در آينده، مشکلي در کدها به وجود نخواهد آمد.
کاربرد JDBC استفاده های معمول : برنامه های تحت وب که توسط سرورهای (Java (Enterprise Edition JEEمیزبانی می شوند. برنامه های رومیزی که با پایگاه داده های محلی یا راه دور کار می کنند. استفاده های کم-معمول : برنامه های آندرویدی : اندروید دارای API مخصوص خود مثل SqlLite برای ارتباط با پایگاه داده محلی می باشد ولی موقع کار با پایگاه داده های بزرگ از JDBC استفاده می کند.
تفاوت JDBCا با ODBC : 1- ODBC برای مایکروسافت است و JDBC برای برنامه های جاوا 2- ODBC نمی تواند بصورت مستقیم با جاوا کار کند چرا که از رابط C استفاده می کند. 3- ODBC از پوینترهایی استفاده می کند که بصورت کامل در جاوا حذف شده اند. 4- ODBC خصوصیات ساده و پیشرفته را باهم ترکیب کرده است و گزینه های پیچیده ای برای کوئیری های ساده دارد اما JDBC برای سادگی طراحی شده است درحالیکه به شما قابلیت های پیشرفته را در موقع نیاز می دهد. 5- ODBC نیاز به نصب دستی ODBC driver manager بر روی کلیه کامپیوترهای کلاینت دارد درحالیکه درایورهای JDBC نوشته شده در جاوا بصورت اتوماتیک قابل نصب، ایمن و قابل حمل (Portable) در همه پلتفرم ها است.
با تشکر سوال ؟؟؟