بررسی تکنولوژی های ارائه شده توسط ماکروسافت بمنظور دستيابی به بانک های اطلاعاتی New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  7  فروردين  1396  2017  Mar.  27   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 دستيابی به داده ها در دات نت ( بخش اول )

 مديريت وب

17464

47

3.8

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

دستيابی به داده ها در دات نت ( بخش اول )

دستيابی به داده ها در دات نت ( بخش اول )

دستيابی به بانک های اطلاعاتی يکی از بخش های مهم در اغلب برنامه های کامپيوتری است . فريمورک دات نت، يک تکنولوژی جديد با نام ADO.NET را بمنظور مديريت بانک های اطلاعاتی ارائه نموده است . در طی ساليان اخير، ماکروسافت تکنولوژی های متعددی را بمنظور دستيابی به بانک های اطلاعاتی ارائه و در اختيار پياده کنندگان سيستم های نرم افزاری قرار داده است . برنامه نويسان همواره با اين سوال مهم روبرو هستند که از کدام تکنولوژی و در چه زمانی می بايست استفاده نمايند . تنوع تکنولوژی های ارائه شده بگونه ای است که در برخی موارد باعث  سردرگمی برنامه نويسان می شود . ADO.NET ، جديدترين تکنولوژی در اين زمينه است که افق جديدی را بمنظور دستيابی به منابع داده  ، ايجاد نموده است .
در مجموعه مقالاتی که در اين زمينه ارائه خواهد شد، اهداف زير را دنبال خواهيم کرد :

  • بررسی تکنولوژی های متعدد دستيابی به بانک های اطلاعاتی
  • نحوه تنظيم و پيکربندی يک بانک اطلاعاتی با استفاده از ويژوال استوديو دات نت
  • نحوه استفاده از ADO.NET در مدل دستيابی متصل و غير متصل
  • نحوه استفاده از بانک های اطلاعاتی SQL Server  و Access
  • نحوه استفاده از کلاس های ADO.NET بمنظور کار با داده ها ی XML

در اولين بخش از مجموعه مقالات فوق ، به بررسی تکنولوژی های متعدد ارائه شده توسط ماکروسافت بمنظور دستيابی به بانک های اطلاعاتی خواهيم پرداخت .

مروری بر تکنولوژی های ارائه شده توسط  ماکروسافت بمنظور دستيابی به بانک های اطلاعاتی
ماکروسافت طی ساليان اخير محموعه ای از تکنولوژی های لازم بمنظور دستيابی به بانک های اطلاعاتی را ارائه نموده است .ODBC,OLEDB,DAO,RDO,ADO ، نمونه هائی در اين زمينه می باشند. هدف اصلی تمامی تکنولوژی های فوق ، ارائه يک مجموعه از اينترفيس های برنامه نويسی ، بمنظور استفاده  در طيف گسترده ای از سرويس گيرندگان برای  ارتباط  با منابع داده متفاوت است . منابع داده، ممکن است از نوع رابطه ای و يا غير رابطه ای باشند . در ادامه به بررسی برخی از تکنولوژی های فوق پرداخته  تا از اين طريق ضرورت و جايگاه ADO.NET بدرستی تبين گردد .

تکنولوژِی ODBC
تکنولوژی ODBC ) Open DataBase Connectivity )  ، اولين تلاش ماکروسافت در جهت ارائه امکانات لازم در خصوص دستيابی به منابع داده است. تکنولوژی فوق ، يک اينترفيس مبتنی بر C  ، در رابطه با بانک های اطلاعاتی رابطه ای را در اختيار پياده کنندگان برنامه های کامپيوتری قرار داد. شکل زير، معماری کلی ODBC را نشان می دهد . با استفاده از معماری فوق ، برنامه ها قادر به ارتباط با بانک های اطلاعاتی رابطه ای متفاوت با استفاده از يک اينترفيس  مشابه، می باشند . استاندارد ODBC ، با استقبال اکثر توليدکنندگان مواجه  و پس از گذشت مدت زمانی کوتاه ، اکثر بانک ها ی اطلاعاتی رابطه ای ، درايورهای ODBC  مربوط بخود را ارائه نمودند.در اين راستا  برخی از درايورهای ODBC ، نيز برای بانک های  اطلاعاتی غير رابطه ای  نوشته  گرديد. ( مثلا" صفحات گسترده Excel ) . تکنولوژی ODBC ، بعنوان يک API مبتنی بر ويندوز ، برنامه نويسی شده  است .

  ODBC عليرغم نيل به موفقيت هائی بزرگ ، دارای دو محدوديت اساسی است .

  • اولين مورد به محدوديت اين تکنولوژی بمنظور دستيابی به بانک های اطلاعاتی رابطه ای ، برمی گردد. همانگونه که اشاره گرديد ، برخی درايورهای ODBC بمنظور حمايت ODBC  جهت  ارتباط با داده های غير رابطه ای ، بازنويسی شده اند .رويکرد فوق، وظايف اضافه ای را به درايورمربوطه تحميل خواهد کرد . کدهای مورد نظر برای حمايت از بانک های اطلاعاتی غير رابطه ای می بايست در هر يک از درايورهای مربوطه ، تکرار گردند .

  • دومين محدوديت به ماهيت اينترفيس نوشته شده  برمی گردد( يک اينترفيس مبتنی بر C ) . برنامه نويسان که با توجه به علاقه و توانائی خود از يک زبان برنامه نويسی خاص استفاده می نمايند ،  لازم است در ابتدا با اينترفيس C  ، ارتباط برقرار نموده و در ادامه امکان فراخوانی و استفاده از ODBC  ، برای آنان فراهم خواهد شد.

تکنولوژی OLE DB
ماکروسافت در ادامه ، استراتژی خود را بهبود و آن را بر اساس COM) Component Object Model ) استوار نمود. بدين ترتيب امکان ايجاد اينترفيس های مستقل از زبان و بر اساس يک استاندارد باينری فراهم گرديد. مهمترين دستاورد تکنولوژی فوق ( راه حل های ارائه شده بر اساس تکنولوژی COM )  ، وجود انعطاف لازم از ديدگاه برنامه های سرويس گيرنده است . مجموعه اينترفيس های COM  ماکروسافت ، OLE DB ناميده گرديد ( نام استفاده شده به زمان معرفی OLE  برمی گردد) . يکی از ويژگی های مهم تکنولوژی فوق ، عدم طراحی آن بمنظور استفاده در بانک های اطلاعاتی رابطه ای است . هر منبع داده که تمايل به عرضه خود برای سرويس گيرنده از طريق OLE DB  را دارد، می بايست يک OLE DB Provider را پياده سازی نمايد . OLE DB  ، خود اکثر عمليات و پتانسيل های لازم نظير Cursor engine و Relational query engine ، را ارائه  و ضرورتی به تکرار کد آنان در  Provider های متعدد، وجود نخواهد داشت ( نظير درايورهای ODBC ) . سرويس گيرندگان OLE DB ، بعنوان مصرف کنندگان شناخته می گردند. اولين OLE DB Provider  نوشته شده به ODBC ،اختصاص داشت . بدين ترتيب مصرف کنندگان OLE DB ، قادر به دستيابی تمامی منابع داده مورد حمايت ODBC  گرديدند.  مهمترين دستاورد تکنولوژی فوق ،  ايجاد يک اينترفيس مبتنی بر COM برای سرويس گيرندگان است.رويکرد فوق، لايه ای اضافه بين سرويس گيرنده و بانک اطلاعاتی ايجاد می نمايد .
 تعداد زيادی از OLE DB Provider های ذاتی نظير  SQL server و Oracle  ، پياده سازی گرديد . در اين رابطه ، يک Provider ذاتی برای Jet Database engine ،  نيز ارائه که امکان دستيابی موثرتر به بانک های اطلاعاتی نظير اکسس و dBase را فراهم می نمايد . برخی از بانک های اطلاعاتی شی گراء ، نظير Object Store ، نيز حرکت خود را بسمت استفاده ذاتی از OLE DB provider ها ، آغاز نموده اند .

تفاوت های فنی OLE DB و ODBC

ODBC

OLE DB

Data access API Database component APIs
C-level API COM API
SQL-based tabular data All tabular and multidimensional data
SQL-based standard COM-based standard
Native providers provide all features Component architecture allows reusable components to provide common features

ADO) ActiveX Data Object)
با اينکه COM بر اساس يک استاندارد باينری شکل گرفته است ولی تمام زبان ها در رابطه با  نحوه برخورد با  ويژگی های  COM ، معادل آفريده نشده اند . عناصر COM  علاقه زيادی به ++C  دارند . OLE DB ، برای  ارائه حداکثر کارائی در ارتباط با  برنامه های ++C  ،  طراحی شده است . ماکروسافت ، ADO را با هدف ارائه يک اينترفيس ساده برای استفاده توسط ويژوال بيسيک طراحی و پياده سازی نموده است . شکل و برداشت اوليه ADO شبيه  DAO) Data Access Objects) است .DAO ، يک مدل  شی گراء بمنظور دستيابی آسان به داده ها  برای ارتباط با بانک های اطلاعاتی اکسس از طريق Jet engine است .  مدل ADO دارای دو مزيت مهم است :

  • ADO ، نسبت به مدل های پيشين مسطح تر بوده  و استفاده از آن آسان است .
  • ADO ، براساس OLE DB  طراحی شده  و به برنامه نويسان امکان دستيابی به منابع داده متنوعی را خواهد داد .

.مهمترين دستاورد تکنولوژی فوق ، انعطاف مناسب آن  از ديدگاه برنامه نويسان برای انتخاب يک اينترفيس ، بمنظور ارتباط با يک منبع داده است .در صورتيکه قصد دستيابی به سرويس دهنده SQL وجود داشته باشد ،  می توان از پنج اينترفيس اصلی در اين زمينه استفاده نمود. اولين گزينه  embedded SQL بوده که توسط يک برنامه C پيش پردازش می گردد . چهار اينترفيس ديگر، اينترفيس های زمان اجراء می باشند .
شکل زير، دستيابی به يک سرويس دهنده SQL قبل از مطرح شدن  ADO.NET   را نشان می دهد.

DB-Library ، اولين کتابخانه زمان اجراء برای سرويس دهنده SQL ، است . اينترفيس فوق ، بعنوان يک لايه و در بالاترين بخش SQL Server engine  ، قرار گرفته و توسط يک برنامه می تواند استفاده گردد ( فراخوانی امکانات موجود در اينترفيس ) اينترفيس فوق ، مختص سرويس دهنده SQL بوده و بر روی ساير بانک های اطلاعاتی اجراء نخواهد شد.
 دومين اينترفيس ODBC است .همانگونه که توضيح داده شد ، ODBC نيز يک اينترفيس مبتنی برزبان C  بوده که  امکان ارتباط با  بانک های اطلاعاتی متفاوت  را فراهم می نمايد . در صورتيکه يک برنامه برای OLE DB  نوشته شده باشد ، امکان دستيابی به مجموعه ای از بانک های اطلاعاتی رابطه ای و غير رابطه ای ، برای آن وجود خواهد داشت . دامنه منابع داده ئی که می توان به آنها از طريق OLE DB  دستيابی پيدا کرد، زير مجموعه ای از منابع داده ئی است که می توان از طريق ODBC به آنها دست يافت ( چون از يک  OLE DB provider  برای ODBC استفاده می گردد) . سرويس دهنده SQL يک Provider ذاتی است ، بنابراين برنامه ها ئی که از  OLE DB   ، استفاده می نمايند ، دارای يک مسير مستقيم و سريع به سرويس دهنده SQL  ، خواهند بود. همانگونه که اشاره گرديد ، تعداد زيادی از OLE DB provider ذاتی برای ساير بانک های اطلاعاتی نظير اوراکل وجود دارد .
ADO ، بالاترين سطح اينترفيس بوده و  استفاده از آن ساده و بصورت گسترده ای در برنامه های ويژوال بيسيک، استفاده می گردد .در اين مقاله قصد نداريم درگير جزئيات فنی در ارتباط با ADO  شويم ، ولی آشنائی با  مدل مبتنی بر شی ADO  ،  بمنظور مطالعه ADO.NET  ، مفيد خواهد بود ( برخی از اشياء ADO ، با  ADO.NET  قابل مقايسه می باشند ) .

مدل اشياء ADO
ADO ، بعنوان يک خانواده از کلاس های مبتنی بر COM که اينترفيس دوگانه را حمايت می نمايند ، ارائه شده است .  امکان استفاده از تکنولوژی فوق ، از طريق زبانهای اسکريپت نيز وجود دارد . بدين ترتيب می توان از  ADO ،  در صفحات ASP نيز استفاده کرد .ADO ، در لايه ميانی يک برنامه مبتنی بر وب مستقر و بخوبی با لايه داده مرتبط  می گردد  . کلاس ها  در ADO ، بصورت سلسله مراتبی سازماندهی شده اند . بر خلاف  تکنولوژی هائی نظير  DAO ، که از يک ساختار سلسله مراتبی خاص استفاده می نمايد ، ساختار سلسله مراتبی استفاده شده  در ADO ، مسطح تر بوده و در اين رابطه سخت گيری خاصی اعمال نشده است . مهمترين دستاورد تکنولوژی فوق ، ارائه يک مدل برنامه نويسی ساده برای استفاده کنندگان  است . مدل اشياء ADO ،  شامل اشياء انفرادی و مجموعه ای از اشياء است . در شکل زير مجموعه ها (Collections ) بصورت کادرهای سايه دار نشان داده شده اند . بمنظور ارتباط با يک منبع داده به يک شی Connection  ، نياز خواهد بود . بدين منظور ممکن است با صراحت شی فوق ، ايجاد و يا از اشياء ديگر برای ايجاد آن ، استفاده گردد.مهمترين خصلت  شی فوق  ،  Connectionstring است . از خصلت فوق ، بمنظور مشخص نمودن OLE DB provider ،  برای ارتباط با منبع داده ، استفاده می گردد . پس از ايجاد Connection ، می توان آن را مستقيما" ( مثلا" متد Execute )  استفاده و يا آن را برای ساير اشياء نظير Recordset و يا  Command  ، ارسال کرد.

شی RecordSet
در ADO ، نظير سايراينترفيس های بانک اطلاعاتی ماکروسافت ، از يک Recordset بمنظور برگرداندن داده ها از يک بانک اطلاعاتی،  استفاده  بعمل می آيد. Recordset  ، می تواند شامل چندين سطر و يا ستون ( فيلد ) باشد . بنابراين يک شی Recordset ، شامل مجموعه ای از اشياء Field است . مجموعه فوق ، Fields نيز ناميده می شود. در برخی حالات به مجموعه Fields  ، مستقيما " مراجعه می گردد ( نظير موارديکه در رابطه با يک منبع داده سوالی مطرح می گردد که نسبت به اسامی فيلدها ، آگاهی لازم وجود نداشته باشد ). در صورتيکه قصد ايجاد Recordset اختصاصی خود برای ذخيره سازی داده ها  را داشته باشيم ، می توان از مجموعه Fields ، نيز استفاده بعمل آورد. در اغلب موارد ضرورتی  به استفاده از مجموعه Fields  نخواهد بود ( بصورت مستقيم ) و می توان برای مراجعه به يک فيلد خاص ، از نام آن بصورت يک کليد استفاده کرد . يک Recordset ، ممکن است شامل چندين سطر بوده و می توان با استفاده از متدهائی نظير MoveFirst و MoveNext بين آنها حرکت کرد. زمانيکه در يک Recordset  حرکت می نمائيم ، به يک  Cursor بانک اطلاعاتی  نياز خواهد بود .امکان فوق ، توسط OLE DB Provider مربوطه ارائه می گردد .

ADO.NET
بهمراه کتابخانه کلاس فريمورک دات نت ، ماکروسافت  مجموعه ای از کلاس ها  را بمنظور دستيابی به داده ها  و با عنوان ADO.NET ، ارائه نموده است . شايد اين سوال مطرح گردد که چرا ماکروسافت يک تکنولوژی جديد بمنظور دستيابی به داده ها ارائه کرده است ؟ در پاسخ می بايست گفت که  آنها مجبور به انجام اين کار بوده اند  . OLE DB و ADO بر اساس عناصر COM می باشند . با توجه به اينکه  دات نت يک زير ساخت جديد اشياء را ارائه کرده است، لازم است که در اين رابطه کلاس های دستيابی به داده ها ، نيز مبتنی بر دات نت  باشند. ( لازم به يادآوری  است که می توان در دات نت ، عناصر COM را فراخواند و از آنها  استفاده کرد،بنابراين برنامه های دات نت قادر به فراخوانی ADO از طريق يک لايه ارتباطی خواهند بود) . اکيدا" توصيه شده است که از اينترفيس های ذاتی دات نت، بمنظور دستيابی به بانک های اطلاعاتی، استفاده گردد . بهرحال از زمان عرضه ADO ، ما شاهد يک تحول بزرگ در زمينه دستيابی به منابع داده در محيط های برنامه نويسی بوده ايم . اغلب برنامه های نوشته شده در حال حاضر دارای رويکرد مبتنی بر وب بوده  و دارای ساختار خاص خود نسبت به برنامه های سنتی Desktop و يا سرويس گيرنده / سرويس دهنده می باشند. اغلب برنامه های مدرن  از XML  بمنظور رمز نمودن داده استفاده و آنان را در طول شبکه توزيع می نمايند. پس از بازيابی داده های مورد نياز از منابع داده و تبديل آنان به فرمت XML ، می توان ارتباط با منبع داده را غير فعال نمود.  بمنظور تسهيل در برنامه نويسی مدل غير متصل ، ADO.NET کلاس جديدی با نام DataSet را ارائه که قادر به نگهداری داده ها ی بازيابی شده از يک منبع داده در حافظه ، است. برخلاف RecordSet در مدل ADO ، که صرفا" قادر به نگهداری يک جدول است ، DataSet   قادر به نگهداری تعداد زيادی از جداول بهمراه  محدوديت ها و ارتباطات بين جداول، می باشد. بدين ترتيب Data Set ،تصويری مناسب از يک بانک اطلاعاتی ساکن در حافظه ، را ترسيم خواهد کرد. بمنظور اخذ داده از يک بانک اطلاعاتی در ADO.NET ،از کلاس Connection  ، استفاده بعمل می آيد. شی فوق ،  قادر به حمايت مدل متصل  در رابطه با يک بانک اطلاعاتی است . در برخی موارد ، می توان بکمک شی DataAdapter ، يک Data Set را با داده های خوانده شده  از يک منبع داده تکميل و  در ادامه ارتباط  با منبع داده را غير فعال کرد.
 در بخش دوم اين مقاله ، نحوه  استفاده از ويژوال استوديو دات نت  بمنظور دستيابی به بانک های اطلاعاتی تشريح می گردد .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382