یکی از مهمترین بخشهای پیادهسازی یک اپلیکیشن یا وبسایت، انتخاب پایگاه داده است. پایگاه دادههای زیادی وجود دارند که برنامه نویسان طبق نیازها و اولویتهای سیستمی از آنها استفاده میکنند و ما در این مطلب قصد داریم دو پایگاه داده محبوب را بررسی کنیم. در این مطلب نگاهی به تفاوت MySQL و Mongo DB میاندازیم.
ابتدا بهتر است کمی درباره مفهوم پایگاه داده صحبت کنیم. تصور کنید که دفتر تلفن را بر اساس نام، شماره و سایر اطلاعات افراد پرکردهاید. این دفترچه تلفن یک پایگاه داده محسوب میشود که شامل اطلاعات واردشده است و شما در زمان نیاز، میتوانید بر اساس نامها و یا شمارهها از آن استفاده کنید.
در سیستمهای نرمافزاری حجم بالای اطلاعات نیاز به نگهداری و مرتبسازی دارد تا در صورت لزوم، با پردازش سریع و از راههای مختلف بتوان به آنها دسترسی پیدا کرد. یک پایگاه داده دارای جدولهایی (Table) است که اطلاعات را در سطر و ستونهای خود و منطبق با استانداردهای تعریفشده جای میدهد. ساختار نگهداری از دادهها، در دیتابیسها متفاوت است.
پایگاه دادهها انواع مختلفی دارند که معروفترین آنها پایگاه دادههای رابطهای (Relational) و پایگاه دادههای NoSQL هستند. دیتابیسهای رابطهای داده را در جدول ذخیره کرده و دادهها از طریق ارجاع به سطر و ستونهای جدول قابلدسترسی هستند.
زبان استاندارد SQL (structured query language) برای کنترل و دسترسی به دادهها، در دیتابیسهای رابطهای بهکار میرود. به همین دلیل به آنها پایگاه دادههای SQL نیز میگویند. در این پایگاه دادهها از جدول، سطر و ستون، کلید اصلی، کلید خارجی، فهرست و غیره برای کار با دادهها استفاده میشود.
NoSQL که مخفف عبارت Not Only SQL DataBase است، انواعی از پایگاه دادهها هستند که در سطحی وسیعتر از پایگاه دادههای SQL کار میکنند و با مدلهای مختلف دادهها مانند کلید – مقدار (Key-Value)، دادههای گرافی، مبتنی بر Document و غیره سروکار دارند. این پایگاه دادهها با مجموعههای عظیمی از دادههای توزیعشده کار میکنند.
مای اس کیو ال، یکی از محبوبترین سیستمهای مدیریت پایگاه داده های رابطه ای (Relational SQL Database Management System) است که متن باز بوده و در ساخت بسیاری از اپلیکیشنهای تحت وب به کار میرود. یک RDBMS به شما در موارد زیر کمک میکند:
MySQL قدرتمند و سریع است و در پروژههای بزرگ برای کار با مجموعههای عظیم داده، به کار میرود. این سیستم برای هر سیستم عاملی مناسب بوده و زبانهای زیادی مانند PHP و Java را پشتیبانی میکند.
مونگو دیبی (Mongo DB) یکی از معروفترین پایگاه داده های No SQL است که ساختار منعطفی دارد و بیشتر در پروژههایی با حجم بالای دادهها استفاده میشود. این پایگاه داده پلتفرمی متن باز و رایگان است و با مدل دادههای (Document – Oriented) کار میکند و در ویندوز، مکینتاش و لینوکس قابل استفاده است.
دادهها درداکیومنتهای مربوطه با فرمت BSON ذخیره میشوند که مانند JSON است اما دادههای بیشتری را حمایت میکند. این مقادیر با دو کلید اولیه (Primary Key) و ثانویه (Secondary Key) مورد استفاده قرار میگیرند. برای آشنایی بیشتر با این پایگاه داده میتوانید مقاله mongo db چیست را بخوانید.
حال که به یک دید کلی از هر دو پایگاه داده دست پیدا کردیم بهتر است تفاوت MySQL و Mongo DB را بررسی کنیم.
هر کدام از این پایگاه دادهها ویژگیها و کاربردهای خود را دارند. تفاوت MySQL و Mongo DB را بررسی کردیم و دانستیم که برای پشتیبانی از سیستمهای قدیمی و پردازشهای چند سطری، پایگاه دادههای رابطه ای مناسب به نظر میرسند. از طرفی ساختار منعطف Mongo DB نیز، به شما امکان ذخیره انواع دادهها را خواهد داد که ممکن است موردنیاز پیاده سازی پروژه باشد. اگر شما هم تجربه کار کردن با دیتابیسهای رابطه ای مانند MySQL و SQLServer یا Mongo DB را دارید نظر خود را با خوانندگان سون لرن در میان بگذارید.