درصورتیکه دست به توسعهٔ اپلیکیشنی زدهاید که قرار است حجم قابلتوجهی از دیتاهای مرتبط با یکدیگر را جمعآوری کند، بدون شک نیاز به دیتابیسی از نوع Relational (رابطهای) خواهید داشت. پیش از این، سیستمهای مدیریت دیتابیسهای رابطهای یا اصطلاحاً RDBMS (که مخفف واژگان Relational DataBase Management System است) برای دولوپرها هزینهبر بودند و از سوی دیگر نیز استفاده از آنها به سادگی آنچه امروزه میبینیم نبود.
اما خوشبختانه درحالحاضر RDBMSهایی اپنسورس و رایگان به بازار عرضه شدهاند که از جملهٔ مهمترین آنها میتوان به MySQL و PostgreSQL اشاره کرد؛ خبر بهتر اینکه دیتابیسهای بهاصطلاح Embedded را بهسادگی استفاده از یک لایبرری در داخل اپلیکیشنهای مختلف و تقریباً بدون نیاز به هرگونه ستاپ یا پیکربندی مورد استفاده قرار داد که از جملهٔ مهمترین آنها میتوان به SQLite و HSQLDB اشاره کرد.
درصورتیکه دیتای اپلیکیشن شما از توان پردازش میزان حافظهٔ RAM سرورتان بیشتر است، سیستمهای RDBMS این امکان را در اختیار دلوپرها قرار دادهاند تا با Index (ایندکس یا اندیس) کردن جداول، بهسادگی بر این مشکل فائق آیند.
مسلماً کار با سیستمهای RDBMS نیازمند آشنایی با زبان SQL است؛ جالب است بدانید سینتکس زبان SQL بسیار قابلفهم بوده و پس از یادگیری این زبان پس از کمی تکرار و تمرین، بهسادگی قادر خواهید بود دست به عملیات CRUD بزنید (منظور از اصطلاح CRUD، انجام بهاصطلاح Update، Read، Create و Delete بهترتیب بهمعنی ایجاد، فراخوانی، بهروزرسانی و حذف است).
نکته |
SQL که بهصورت «اسکیوال» تلفظ میشود، مخفف واژگان Structured Query Language است که بهمنزلهٔ زبان استانداری برای ارتباط با دیتابیسهای مختلف مورد استفاده قرار میگیرد. |
یکی دیگر از مزایای آموختن کار با دیتابیسهای RDBMS این است که ایننوع سیستمهای مدیریت دیتابیس همانطور که از نامشان پیدا است، اصطلاحاً Relational (رابطهای) هستند؛ بهعبارت دیگر، میتوان بین جداول مختلف، ستونهای یک جدول با سایر ستونهای جداول دیگر و بهطورکلی مابین دیتای ذخیره شده نوعی از ارتباط را برقرار ساخت.
وجود چنین ارتباطی چندین مزیت دارا است؛ اولین مزیت این که درحین فراخوانی یک داده، میتوان پی به ارتباطش با سایر دادههای ذخیرهسازی شده برد (مثلاً میشود مشخص کرد که اگر یک کاربر از جدول مخصوص ذخیرهسازی اطلاعات کاربران پاک شد، کلیهٔ کامنتهای ثبت شده توسط آن کاربر هم در جدول مخصوص اینکار بهصورت خودکار پاک شود).
علاوهبر این، وجود چنین ارتباطی میتواند این تضمین را ایجاد کند که بهصورت ناخواسته، تحت هیچ عنوان نمیشود دیتایی را از دیتابیس حذف کرد؛ بهعبارت دیگر، اگر مابین ستونهای ۲ جدول مختلف نوعی ارتباط محدودکننده درنظر گرفته شده باشد، مادامیکه دیتای یکی از جداول در جایی مورد استفاده قرار گرفته باشد، دیگر امکان حذف آن داده وجود ندارد و همین مسأله این تضمین را ایجاد میکنند که یکپارچگی مابین کلیهٔ دادههای ذخیرهشده حفظ میگردد.
یکی دیگر از نکاتی که در مورد RDBMSها میبایست مدنظر قرار داد این است که این سیستمهای مدیریت دیتابیس با زبانهای برنامهنویسی مختلفی سازگار هستند و امکان استفادهٔ همزمان توسط چندین زبان مختلف را به دولوپر میدهند.
بهطور مثال، فرض کنیم وب اپلیکیشنی داریم که برای کدنویسی بخش صفحات دینامیک آن از زبان PHP استفاده کردهایم اما درعینحال باتوجه به این که برای تحلیل دادهها به زبان و لایبرریهایی نیاز داریم که این فرایند را برایمان سادهتر کنند، برای اینکار بهسادگی بااستفاده از زبان Python میتوان به تعامل با دیتابیس پرداخت.