همانطور كه میدانید بخش عمدهای از برنامههای كاربردی نوشته شده، به نوعی با دادههای ورودی از سوی كاربر در تعامل است، كه بعضی وقتها روند اصلی برنامه را تشكیل میدهد.
برای مثال در یك برنامه حسابداری، دادهها روند اصلی كار برنامه را مشخص میكند. دادههای مالی یك شركت، اسناد مالی، خرید و فروش و... خروجی مورد نظر كاربر هم با توجه به همین دادههاست.
اگر شما هم از این مدل برنامهها نوشته باشید میدانید كه نحوه ذخیرهسازی آنها مهمترین بخش این برنامههاست. اما این كه دادههای برنامه كجا و چگونه ذخیره شوند، بستگی به نیاز مشتری دارد. اگر قرار باشد دادهها به طور متمركز در یك سرور باشد و بقیه برنامهها ـ كه اصطلاحا به آنها خدمتگیرنده (Client) میگویند ـ باید به آنها دسترسی داشته باشند (تصور این كه این Clientها همان برنامههای رومیزی (Desktop) هستند، اشتباه است)، یا این كه دادههای هر برنامه مختص خود است و همیشه یك خدمت گیرنده دارد و در یك محیط بسته اجرا میشود، در هر دوی این حالتها شما به یك مدل پایگاه داده نیاز دارید. در حالت اول شما پایگاه دادهای میخواهید كه بتواند نیازهای به اشتراكگذاری دادهها و دسترسی به آنها را براحتی فراهم كند. در مورد دوم نیز میتوان از همان پایگاه دادهای كه در حالت اول ذكر شد استفاده كرد. اما آيا يك رايانه قادر است از تمام تواناييهاي پايگاههاي داده استفاده كند؟
قطعا جواب خیر است، اما چه باید كرد؟ در این حالت شما با توجه به شرایط كاربری كه قرار است با برنامه شما كار كند و بر اساس نیازمندیهای آن، باید تصمیم بگیرید.
در حال حاضر تعدادی پایگاه داده توسعه داده شدهاند كه قابلیتهای یك پایگاه داده رابطهای را دارند، و همین طور برای دسترسی به دادهها نیازی به نصب هیچ گونه نرمافزار اضافی ندارند و آنها را به صورت یك فایل ذخیره میكنند. شما میتوانید فایلهای دادهای خود را همراه خود ببرید و همیشه به آنها دسترسی داشته باشید. این پایگاه دادهها مزیتهایی دارند و معایبی؛ از مزیت آنها همانهایی بود كه در بالا ذكر شد، به علاوه سبك بودن و قابلیت انتقال دادهها بین هر سیستمعامل. در واقع به خاطر ساختار فایلی، آنها مستقل از سیستمعامل هستند و همیشه و همه جا میتوان از آنها استفاده كرد. از معایب آنها به حجم محدودشان میتوان اشاره كرد و این كه بسیاری از قابلیتهای به اشتراكگذاری را مانند پایگاه دادههای دیگر مانند SQL Server و MySql ندارند و...
یكی از این پایگاه دادهها SQLite است. در این مقاله قصد داریم مقدمهای از این پایگاه داده و نحوه كاركردن آن با برنامهها را توضیح دهیم.
این پایگاه داده سال ۲۰۰۰ توسط دی. ریچارد هیپ زمانی كه در نیروی دریایی آمریكا كار میكرد توسعه داده شد. SQLite برنامهای برای كار با دادهها ندارد، بلكه فقط یك dll است كه APIای برای دسترسی به دادهها ارائه میكند. این پایگاه داده مانند بقیه پایگاه دادههای رابطهای امكاناتی مانند Table و تعریف كلید اصلی و كلید خارجی و ارتباط بین آنها را دارد و از این بابت شما نگران هیچ كمبودی نباشید.
اما چگونه كار با SQLite را شروع كنیم؟ همانطور كه گفته شد این پایگاه داده، برنامهای برای دسترسی به دادهها ندارد و فقط یك كتابخانه برای آن ارائه میكند. همین موضوع باعث شده تا برنامهنویسان یكسری برنامه با استفاده از API ارائه شده توسط SQLite بنویسند كه امكان دسترسی به دادهها را فراهم میكند.
یكی از آنها یك AddOn (افزونه) نوشته شده برای Firefox است. خوشبختانه Firefox روی تمام سیستمهای عامل اجرا میشود و میتوانید فایلهای پایگاه داده خود را در سیستمعاملهای دیگر نیز مشاهده كنید.
برای دانلود كردن این افزونه میتوانید از لینك زیر استفاده كنید:
https://addons.mozilla.org/zh-cn/firefox/addon/sqlite-manager
بعد از نصب این افزونه از منوی Tools گزینه SQLite Manager را انتخاب كنید. سپس یك پنجره برای شما باز میشود كه در آن شما ابتدا با استفاده از منوی Database و گزینه New Database فایل پایگاه داده خود را میسازید و سپس با توجه به نوار ابزار میتوانید جداول خود را كه در واقع ساختار پایگاه داده شما را مشخص میكند، طراحی كنید.
و همین طور از منوي Database و گزینه Connect Database به دادههای پایگاه دادهای كه قبلا ایجاد كردید نیز دسترسی داشته باشید.
اما شما به عنوان یك برنامهنویس قرار است چگونه با این دیتابیس كار كنید؟
Provider (فراهمكننده)های زیادی برای دسترسی به این نوع دادهها نوشته شدهاند. برای هر زبان با توجه به امكانات آن زبان یك Provider مخصوص نوشته شده است، این نكته را هم باید در نظر گرفت كه API ارائه شده از طرف SQLite، به زبان C++ است، و شما در ++C براحتی میتوانید با آن كار كنید.
اما چند نمونه از Provider های توسعه داده شده برای SQLite
1ـ Php: این دیتابیس به صورت محلی در php پشتیبانی میشود و نیازی به استفاده از Provider نیست.
2ـ Java: برای دسترسی به این پایگاه داده میتوان از SQLiteJDBC استفاده كرد، برای دانلود آن میتوانید از نشانی زیر استفاده كنید:
http://www.zentus.com/sqlitejdbc
3ـ .NET: برای دات نت یك Provider متن باز توسط شركت phx software توسعه داده شده است، كه برای دانلود آن میتوانید به این نشانی بروید:
http://sqlite.phxsoftware.com