LINQ چیست؟

مایکروسافت پس از عرضه دات نت فریم ورک 2 کار بر روی نسخه 3 آن را شروع کرده بود.  هنگام معرفی دات نت فریم ورک 3، مایکروسافت فناوری جدیدی را به نام LINQ معرفی کرد تا یکی از بزرگترین مشکلات برنامه نویسان را حل نماید. این فناوری جدید با هدف تحول در نحوه دستیابی به داده ها و اطلاعات بدون در نظر گرفتن نوع منبع آن ها بوجود آمده است.

LINQ (تلفظ می شود «لینک») مخفف Language INtegrated Query یکی از اجزای پلتفرم برنامه نویسی دات نت شرکت مایکروسافت است که قدرت کار با داده های مختلف را به زبانی شبیه زبان SQL به توسعه دهندگان می دهد. LINQ در 19 نوامبر 2007 به عنوان قسمتی از دات نت فریم ورک 3.5 عرضه شد.

منطق و دستورات لینک شبیه به زبان SQL است با این تفاوت که به تنهایی کابردی ندارد. شما باید از زبان لینک در کنار یکی از زبان های دات نت استفاده کنید تا به مقصود خود برسید در صورتی که زبان SQL یک زبان مستقل برای کار با داده هاست. اگر برنامه نویس باشید می دانید که برای دستیابی به داده های موجود در یک بانک اطلاعاتی علاوه بر استفاده از فناوری های دستیابی به داده همچون ADO باید از زبان SQL نیز استفاده کنید. مشکلی که برنامه نویسان قبل از ارائه لینک با آن مواجه بودند این بود که لایه دسترسی به داده ها از روش و منظقی متفاوت از لایه های دیگر عمل می کند. مثلاً در نظر بگیرید در یک برنامه مبتنی بر بانک اطلاعاتی برنامه نویس باید داده ها را از یک بانک اطلاعاتی با استفاده از دستورات SQL بخواند و سپس با منطق زبان برنامه نویسی آن ها را به لایه نمایش بفرستد. این عدم سازگاری لایه های نرم افزاری مشکلات زیادی به همراه می آورد. امروزه برنامه نویسان بر اساس مدل «شیء گرا» کدهای خود را می نویسند. واژه هایی همچون کلاس، شیء، متد و وراثت برای برنامه نویسان آشناست و آن ها هر روز در پروژه هایشان از آن ها استفاده می کنند. در این میان یکی از مشکلات برنامه نویسان شیء گرا، عدم شیء گرایی پایگاه های داده و داده های XML است. پروژه LINQ برای اضافه کردن قابلیت شیء گرایی به زبان SQL و در نتیجه پایگاه های داده و داده های XML بوجود آمد.

LINQ Structure
LINQ Structure

شرکت مایکروسافت برای غلبه بر مشکلات ذکر شده زبانی را طراحی نمود که در حال حاضر در دات نت فریم ورک 3.5 از آن استفاده می شود و همراه با ویژوال استادیو 2008 عرضه شده است. تمام سعی مایکروسافت بر این بوده که قواعد (Syntax) زبان لینک شبیه به زبان SQL باشد تا برنامه نویسان مجبور نباشند برای یادگیری آن وقت بگذارند. اگر برنامه نویس باشید می دانید که کوئری های زبان SQL را در یک زبان برنامه نویسی باید به صورت رشته ای (String) بنویسید و این بدین معنی است که در این صورت کوئری ها قابلیت اشکال زدایی (Debugging) نخواهند داشت. در این روش اشکال زدایی دستورات SQL بسیار مشکل خواهد بود و بعضی وقت ها واقعاً دردسر ساز خواهد شد. این را هم می دانید که دستورات SQL که به صورت رشته نوشته می شوند به همراه دیگر دستورات برنامه کامپایل نمی شوند و فقط به صورت ریسورس های رشته ای ذخیره می شوند. حالا در نظر داشته باشید که با لینک می توانید مشکلات بالا را برطرف کنید و کوئری های SQL را اشکال زدایی کنید. بدین ترتیب برنامه نویسان دات نت می توانند در هر یک از زبان های مورد حمایت دات نت همچون ویژوال بیسیک و سی شارپ از فناوری LINQ استفاده کنند و از مزایایی مثل خطایابی، IntelliSense و قدرت ویژوال استادیو استفاده کنید. به یاد داشته باشید که LINQ فقط برای داده های موجود در بانک های اطلاعاتی مورد استفاده قرار نمی گیرد بلکه صرف نظر از منبع داده ها LINQ قادر است با داده های آرایه های مختلف، کلاس ها، اشیای مختلف و فایل های XML مورد استفاده قرار گیرد.

پروژه LINQ در مایکروسافت | LINQ در ویکی پدیا

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مربتط :

MySQL انتخابی مناسب

اگر دنبال یک سیستم مدیریت بانک اطلاعاتی کم هزینه یا رایگان می گردید، چندین انتخاب مناسب پیش رو خواهید داشت : MySQL, PostgreSQL, SQLite و یا یک نسخه ی رایگان از نرم افزارهای تجاری همچون SQL Server Express.MySQL Logo هنگام انتخاب چنین نرم افزاری باید ببینید چه ویژگی ها و امکاناتی بیشتر از همه برای شما مهم است. کارایی، پشتیبانی، امکانات، مجوز استفاده (Licence) و قیمت، همه فاکتورهایی هستند که باید آن ها را در نظر بگیرید. بر همین اساس من بر اساس تجربه و نظر شخصی MySQL که دارای ویژگی های مناسبی است به شما پیشنهاد می کنم.

  • سرعت : MySQL بسیار سریع است. توسعه دهندگانی که با MySQL کار کرده اند به شما خواهند گفت که MySQL یکی از سریع ترین نرم افزارهای مدیریت بانک اطلاعاتی است که تا به حال تجربه کرده اید. برای تحقیق بیشتر در این زمینه به این صفحه از وب سایت رسمی MySQL مراجعه کنید.
  • سادگی در استفاده : MySQL بسیار قدرتمند و انعطاف پذیر است و کار کردن با آن از دیگر نرم افزارهای مدیریت بانک اطلاعاتی ساده تر خواهد بود. MySQL پیچیدگی های نصب و مدیریت سیستم های بزرگی همچون Oracle را ندارد و کاربری آن نسبتاً آسان است.
  • پشتیبانی از زبان پس و جو : MySQL از زبان استاندارد SQL که در تمام سیستم های مدیریت بانک اطلاعاتی مدرن استفاده می شود، پشتیبانی کامل می کند.
  • توانایی ها : سرویس دهنده ی MySQL دارای قابلیت Multi-thread است، که کلاینت های مختلف می توانند در یک زمان واحد به سرویس دهنده متصل شده و از آن سرویس بگیرند. شما قادر خواهید بود که با استفاده از رابط های مختلف به MySQL دسترسی پیدا کنید و از قابلیت های مختلف آن استفاده کنید. از طریق خط فرمان، مرورگر وب و یا برنامه های کاربردی مختلف می توانید به سرویس دهنده ی MySQL دسترسی پیدا کنید و پرس و جوهای مختلف را روی دیتابیس های موجود روی آن اجرا کنید و نتایج مورد نظر خود را بدست بیاورید. به علاوه، رابط های برنامه نویسی مختلفی برای زبان های متعددی از قبیل C, Perl, Java, PHP, Python و Ruby در دسترس است. حتی می توانید با استفاده از برنامه های کاربردی که از ODBC پشتیبانی می کنند، به سرویس دهنده MySQL دسترسی داشته باشید.
  • امنیت : MySQL کنترل دسترسی به داده ها را در پایگاه های داده به عهده می گیرد و اجازه ی دسترسی به داده ها را به افراد غیر مسئول نخواهد داد. برای فراهم نمودن امنیت بیشتر، MySQL از اتصالات کد گذاری شده با استفاده از پروتکل SSL پشتیبانی می کند.
  • پشتیانی از شبکه : MySQL برای کار در شبکه هی مختلف بهینه سازی شده است. بانک های اطلاعاتی MySQL در شبکه های محلی و اینترنت قابل دسترسی هستند و می توانید به داده های خود هر جا که هستید، دسترسی داشته باشید و با افراد مختلف به اشتراگ بگذارید.
  • عدم وابستگی به بستر اجرا (Cross-Platform) : این نرم افزار روی بسیاری از توزیع های لینوکس و همچنین سیستم عامل های غیر یونیکس، مانند ویندوز، NetWare, Mac و OS/2 به راحتی قابل نصب و اجراست. MySQL روی سخت افزارهای کامپیوترهای شخصی و همچنین سرورهای قدرتمند قابلیت اجرا دارد.
  • قیمت : MySQL یک پروژه اوپن سورس است و با دو مجوز GPL و تجاری قابل دسترس است. مجوز GPL برای کاربران خانگی که به پشتیبانی خاصی نیاز ندارند مناسب خواهد بود و مجوز تجاری برای شرکت هایی که نمی خواهند مواد مجوز GPL را رعایت کنند.
  • کد باز : دسترس بودن کد MySQL امکان اعمال تغییرات و سفارشی کردن آن را به شما می دهد. توسعه دهندگان می توانند نسخه ای کاملاً سفارشی از MySQL برای استفاده شخصی یا تجاری برای خود تهیه کنند.

در مورد پشتیبانی چطور؟ سئوال خوبی است، استفاده از یک سیستم بانک اطلاعاتی بدون گرفتن کمک تقریباً غیر ممکن است. منابع و راهنماهای زیادی برای MySQL وجود دارد. یک راهنمای جامع و رسمی در کنار نرم افزار MySQL توزیع می شود که با استفاده از آن می توانید به یک حرفه ای در این زمینه تبدیل شوید. در ضمن در جامعه اوپن سورس هیچ وقت تنها نخواهید بود و سئوالات شما هیچ گاه بی پاسخ نخواهند ماند.

پ.ن : متاسفانه پس از پیوستن MySQL به شرکت Sun Microsystems طبق سیاست های این شرکت، دریافت نرم افزار MySQL برای آی پی های ایران مقدور نمی باشد.

معرفی بانک های اطلاعاتی رایگان و اوپن سورس

امروزه در عصر فناوری اطلاعات جنبش های فراوانی برای حذف «کاغذ» از جریان زندگی و کار انسان ها شکل گرفته و همچنان به صورت کاملاً جدی و سریع در کشورهای پیشرفته و کمی کندتر در کشورهای در حال توسعه ادامه دارد. در عصر امروز، فقط نگهداری اطلاعات مهم نیست بلکه بازیابی، ایمن سازی، جستجو، پشتیبان گیری، انتقال، انجام محساسبات، ایجاد گزارش های دلخواه و … معنی جدیدی پیدا کرده اند. از آنجا که امروزه اطلاعات با استفاده از کامپیوتر مورد پردازش قرار می گیرد، نرم افزارهای بانک اطلاعاتی یا Databaseها از اهمیت بسیار زیادی برخوردارند. رد پای بانک های اطلاعاتی را می توانید در نرم افزارهای مختلف و حتی وب سایت های معمولی و ساده نیز مشاهده کنید. استفاده از این نرم افزارها بسیار گشترش یافته و به همین میزان امکانات و ابزارهای ایجاد بانک های اطلاعاتی افزایش و پیشرفت چشمگیری داشته اند.

تعدد نرم افزارهای مدیریت بانک های اطلاعاتی از یکسو باعث پیشرفت این رشته شده است و از طرفی موجبات سردرگمی مشتریان و کاربران بانک های اطلاعاتی را فراهم نموده. شرکت های نرم افزاری بزرگی همچون Microsoft و Oracle سیستم های مدیریت بانک اطلاعاتی قدرتمند و بسیار گرانی عرضه کرده اند که هر کدام ویژگی ها و خصوصیات منحصر به فردی دارند.

همان طور که می دانید در ایران به علت فقدان قانون کپی رایت و امکان خرید قانونی نرم افزارهای بین المللی، استفاده از نرم افزارهای غیرقانونی رواج زیادی یافته است. در این مقاله قصد دارم نرم افزارهای رایگان و اوپن سورس برای ایجاد و مدیریت بانک های اطلاعاتی را معرفی کنم. توجه داشته باشید که در اینجا تعدادی از این نرم افزارها به نسبت معروفیت و کاربرد معرفی شده اند.

بانک های اطلاعاتی اوپن سورس

FlashFiler : موتور بانک اطلاعاتی Client/Server که با استفاده از دلفی توسعه یافته است.

H2 Database Engine : یک موتور بانک اطلاعاتی جاوا که SQL استاندارد و JDBC API را پشتیبانی می کند.

MySQL : سرویس دهنده بانک اطلاعاتی معروف و شناختhttps://i0.wp.com/www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2004/talks/rahtz/html/mysql.pngه شده، چند کاربره، انعطاف پذیر و قدرتمند که نسخه های مختلفی تحت سیستم عامل های ویندوز، سولاریس، لینوکس، FreeBSD، AIX، SunOS و … عرضه کرده است. بسیاری از سروس دهنده های وب هاستینگ این سیستم بانک اطلاعاتی را به شما پیشنهاد خواهند کرد. همچنین MySQL در ایران طرفداران و کاربران زیادی دارد.

HSQLDB : سیستم بانک اطلاعاتی رابطه ای بسیار سریع و کوچک که کاملاً با جاوا پیاده سازی شده است.

Perst : بانک اطلاعاتی شیء گرا برای استفاده در جاوا و دات نت.

DataReel : یک سیستم cross-platform برای ایجاد بانک های اطلاعاتی چند خطی و نرم افزارهای ارتباطی که برنامه های تحت این سیستم به راحتی در تمامی سیستم عامل های موجو قابل اجرا و پیاده سازی می باشند.

Apache Derby : یک سیستم بانک اطلاعاتی رابطه ای که کاملاً با جاوا ایجاد شده است.

PostgreSQL : یک سیستم مدیریت بانک اطلاعاتی رابطه ای کاملاً حرفه ای با پشتیبانی از تمامی قابلیت های زبان SQL، تراکنش ها، توابع تعریف شده توسط کاربر. قابلیت اجرا در سیستم عامل های بر مبنای یونیکس مثل انواع توزیع های لینوکس و FreeBSD.https://i1.wp.com/www.vitavoom.com/images/PostgreSQL_logo.png

IBM’s Cloudscape : سیستم بانک اطلاعاتی رایگان، اوپن سورس و بسیار کوچک IBM که کاملاً با استفاده از جاوا طراحی و پیاده سازی شده است. این یانک اطلاعاتی روی تمامی سیستم عامل هایی که Java Virtual Machine روی آن ها نصب می باشد، اجرا خواهد شد.

Firebrid : یک سیستم بانک اطلاعاتی رابطه ای برای لینوکس، ویندوز و توزیع های مختلف تحت یونیکس که بر مبنای Interbase طراحی و توسعه یافته است.

B-Tree Filer : یک سیستم بانک اطلاعاتی بر مبنای فایل (File-based) که با استفاده از محیط Borland Delphi طراحی و پیاده سازی شده است و قادر به ایجاد دیتابیس های نسبتاً سریع می باشد. دیتابیس هایی که با این نرم افزار ساخته می شوند به هیچ ابزار جانبی از قبیل BDE و یا DLLهای third-party وابسته نیستند و توزیع آن ها روی سیستم های کاربران به راحتی کپی کردن فایل های معمولی امکان پذیر خواهد بود.

Berkeley DB : این سیستم بانک اطلاعاتی شامل ابزارهای جهت ایجاد دیتابیس هایی توکار در نرم افزارهای دسکتاپ و سرور با کارائی بسیار بالاست. دارا بودن استانداردهای یک سیستم بانک اطلاعاتی رابطه ای، قابلیت Hashing رکوردها، رکوردhttps://i2.wp.com/www.oracle.com/technology/products/berkeley-db/images/berkeley-db-logo.gifهای ثابت و با طول متغیر، صف بندی ، مدیریت تراکنش ها و پشتیبان گیری از دیتابیس ها به صورت آنلاین از قابلیت های این سیستم به شمار می روند. پشتیبانی از API های زبان های برنامه نوبسی C, C++, JAVA, Tcl, Perl و Python و قابلیت اجرا روی ویندوزهای 95/98/NT/2000 ، لینوکس و بسیاری از توزیع های بر مبنای Unix. کاملاً رایگان برای استفاده های غیرتجاری یا استفاده در نرم افزارهای اوپن سورس.

SQLite* : یک Library کوچک، کم حجم و پرقدرت به زبان C که قادر به ایجاد بانک های اطلاعاتی توکار در نرم افزارهاست. بر خلاف سیستم های مدیریت بانک های اطلاعاتی Client\Server، موتور بانک اطلاعاتی SQLite تنها یک کتابخانه است که با اتصال به برنامه های مختلف، جزئی  از آن برنامه ها می شود. نرم افزارهای معروفی همچون Firefox, Google Gears, Ruby on Rails از SQLite به صورت توکار استفاده می کنند.

بانک های اطلاعاتی رایگان

Sybase ASE Express : ویرایش رایگان Sybase for Linux

Real Isam : یک کتابخانه (DLL) که از متدهای ISAM برای مدیرت و دستیابی به رکوردهای دیتابیس استفاده می کند. این کتابخانه می تواند در زبان های C++، Visual Basic، Delphi و غیره مورد استفاده قرار گیرد. (فقط برای ویندوز)https://i0.wp.com/www.techlog.org/images/sqlserver_express_logo.gif

Microsoft SQL Server Express Edition : نسخه رایگان و بدون محدودیت نرم افزار تجاری و پرقدرت SQL Server از شرکت مایکروسافت (فقط بری ویندوز)

منابع : Sourceforge.net , Freebyte.com, Oracle.com

* با تشکر از آقای مهرداد حاج ابوطالبی به خاطر یادآوری SQLite