در گذشته پایگاه دادهها به شکل سلسله مراتبی و یا شبکهای وجود داشتند. اما امروزه پایگاه دادههای رابطهای SQL و NoSQL بیشتر مورد استفاده قرار میگیرند. شیوه دسترسی به اطلاعات موجود در این پایگاه دادهها براساس نوع آنها متفاوت است. در یک پایگاه داده رابطهای، دادهها در جداولی ذخیره میشوند که توسط مدلهای رابطهای باهم ارتباط دارند. از جمله دیتابیسهای رابطهای میتوان MySQL را نام برد.
NoSQL که مخفف عبارت Not Only SQL DataBase است، نوعی از پایگاه دادهها است که در سطحی وسیعتر از پایگاه دادههای SQL کار میکند و با مدلهای مختلف دادهها مانند کلید – مقدار (Key-Value) سر و کار دارد. این پایگاه دادهها با مجموعههای عظیمی از دادههای توزیع شده کار میکنند و جایگزینی برای دیتابیسهای رابطهای هستند که داده را در جدول ذخیره میکردند. مونگو دیبی (Mongo DB) یکی از معروفترین پایگاه دادههای No SQL است که ساختار منعطفی دارد و بیشتر در پروژههایی با حجم بالای داده استفاده میشود. این دیتابیس پلتفرمی رایگان و متن باز است و از اسناد JSON مانند schemata استفاده میکند. MongoDB توسط MongoDB Inc توسعه یافته است و تحت مجوز ترکیبی از گواهینامه GNU Affero General Public و مجوز آپاچی منتشر شده است. این پایگاه داده با زبانهای ++C و C و JavaScript نوشته شده است.
ویژگیهای MongoDB
در ادامه به بررسی ویژگیهای مهم این سرویس میپردازیم.
مقایسپذیری
MongoDB یک پایگاه داده NoSQL است که برای پردازش Big Data کاربرد فراوانی داشته و میتواند حجم زیادی از دادهها را ذخیره کند. مونگو دیبی ذاتا از مقیاس پذیری افقی پشتیبانی میکند، به طوری که دادهها میتوانند در چند دیتابیس به صورت موازی توزیع پیدا کنند.
انعطافپذیری
دیتابیسهای رابطهای دارای اسکیما (Schema) هستند. یعنی ساختار خاصی برای دادهها در نظر گرفته و مدلهای محدودی را ذخیره میکنند. اما مونگو دیبی و به طور کلی دیتابیسهای NoSQL در برابر پذیرش دادههایی با تنوع مختلف بسیار منعطف هستند و این مزیت مهمی برای برنامهنویسان محسوب میشود.
مقاوم در برابر خرابی
همانندسازی (Replication) یکی دیگر از خصوصیات مهم مونگو دیبی است. در این تکنیک از یک داده به عنوان داده اصلی کپیهایی تهیه شده و بخشهای دیگری از سیستم پایگاه داده ذخیره میشود. در صورت از بین رفتن و یا مخدوش شدن این داده، دادههای کپی شده به عنوان داده اصلی و جایگزین مورد استفاده قرار میگیرند.
عملکرد و سرعت بالا
دادهها با دو کلید اولیه و ثانویه قابل دسترسی هستند و هر فیلدی قابلیت کلید شدن را دارد. این امر زمان دسترسی و پردازش داده را بسیار سریع میکند.
ایجاد کاربر Administrative
برای این منظور ابتدا با دستور زیر دسترسی شل دیتابیس mongo را بگیرید:
mongo
هنگامی که داخل پوسته MongoDB هستید دستور زیر را برای اتصال به ادمین پایگاه داده تایپ کنید:
use admin
db.createUser(
{
user: “mongoAdmin”,
pwd: “changeMe”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)
mongo -u mongoAdmin -p –authenticationDatabase admin
use admin
show users
برنامه نویسان در توسعه وب و اپلیکیشن از پایگاه دادههای مختلفی استفاده میکنند. پایگاه دادههای مبتنی بر SQL و یا NoSQL طبق نیازمندیهای سیستم و اولویت برنامه نویسان کاربردهای مختلفی دارند. در این مطلب به توضیح پایگاه دادهها و انواع آنها میپردازیم. سپس یاد میگیریم که پایگاه داده mongo db چیست و چه کاربردهایی دارد.
پایگاه داده چیست؟
قبل از اینکه بدانیم mongo db چیست بهتر است با مفهوم پایگاه داده و انواع آن آشنا شویم. پایگاه داده به ذخیره و دسته بندی اطلاعات گفته میشود به نحوی که دسترسی، مدیریت و به روزرسانی این اطلاعات راحت باشد. تصور کنید که دفتر تلفن را بر اساس نام، شماره و سایر اطلاعات افراد پر کرده اید. این دفترچه تلفن یک پایگاه داده محسوب میشود که شامل اطلاعات وارد شده است و شما در زمان نیاز، میتوانید بر اساس نامها و یا شمارهها از آن استفاده کنید.
در سیستمهای نرم افزاری حجم بالای اطلاعات نیاز به نگهداری و مرتب سازی دارد تا در صورت لزوم، با پردازش سریع و از راههای مختلف بتوان به آنها دسترسی پیدا کرد. یک پایگاه داده دارای جدول هایی (Table) است که اطلاعات را در سطر و ستونهای خود و منطبق با استانداردهای تعریف شده جای میدهد. ساختار نگهداری از داده ها، در دیتابیسها متفاوت است.
انواع پایگاه داده ها
در گذشته پایگاه دادهها به شکل سلسله مراتبی و یا شبکه ای وجود داشتند. اما امروزه پایگاه دادههای رابطه ای (Relational)،SQL و NoSQL بیشتر مورد استفاده قرار میگیرند. شیوه دسترسی به اطلاعات موجود در این پایگاه دادهها بر اساس نوع آنها متفاوت است. در ادامه به معرفی پایگاه داده های NoSQL می پردازیم و با یکی از مهمترین انواع آن آشنا میشویم.
پایگاه داده NoSQL چیست؟
NoSQL که مخفف عبارت Not Only SQL DataBase است، انواعی از پایگاه دادهها هستند که در سطحی وسیعتر از پایگاه دادههای SQL کار میکنند و با مدلهای مختلف دادهها مانند کلید – مقدار (Key-Value)، دادههای گرافی، مبتنی بر مستند و غیره سر و کار دارند. این پایگاه دادهها با مجموعههای عظیمی از دادههای توزیع شده کار میکنند و جایگزینی برای دیتابیسهای رابطه ای هستند که داده را در جدول ذخیره میکردند.
mongo db چیست؟
مونگو دیبی (Mongo DB) یکی از معروفترین پایگاه دادههای No SQL است که ساختار منعطفی دارد و بیشتر در پروژه هایی با حجم بالای داده استفاده میشود. این پایگاه داده پلتفرمی متن باز و رایگان است و با مدل دادههای مستند گرا (Document – Oriented) کار میکند و در ویندوز، مکینتاش و لینوکس قابل استفاده است. مقادیر داده ای ذخیره شده در مونگو دیبی، با دو کلید اولیه (Primary Key) و ثانویه (Secondary Key) مورد استفاده قرار میگیرند.
مونگو دیبی شامل مجموعه ای از مقادیر است. این مقادیر به صورت سندهایی (Document) هستند که با اندازههای مختلف، انواع مختلفی از دادهها را در خود جای داده اند. این مسئله باعث شده که مونگو دیبی بتواند داده هایی با ساختار پیچیده مانند دادههای سلسله مراتبی و یا آرایه ای را در خود ذخیره کند.
ویژگیهای مونگو دیبی چیست؟
- مونگو دیبی به علت مستند گرا بودن مدل ذخیره دادهها در مقایسه با دیتابیسهای رابطه ای بسیار منعطفتر و مقیاس پذیرتر است و بسیاری از نیازمندیهای کسب و کارها را برطرف میکند.
- این پایگاه داده برای تقسیم دادهها و مدیریت بهتر سیستم از شاردینگ (Sharding) استفاده میکند. شاردینگ به معنی تکه تکه کردن است و در لود بالای شبکه انجام میشود. به گونه ای که دیتابیس به چند زیربخش تقسیم میشود تا روند پاسخ دهی به درخواست هایی که از سمت سرور میآید، راحتتر شود.
- دادهها با دو کلید اولیه و ثانویه قابل دسترسی هستند و هر فیلدی قابلیت کلید شدن را دارد. این امر زمان دسترسی و پردازش داده را بسیار سریع میکند.
- همانند سازی (Replication ) یکی دیگر از خصوصیات مهم مونگو دیبی است. در این تکنیک از یک داده به عنوان داده اصلی کپی هایی تهیه شده و بخشهای دیگری از سیستم پایگاه داده ذخیره میشود. در صورت از بین رفتن و یا مخدوش شدن این داده، دادههای کپی شده به عنوان داده اصلی و جایگزین مورد استفاده قرار میگیرند.
روش کار mongo db چیست؟
در دیتابیسهای رابطه ای دادهها به شکل رکورد (Record) نگهداری میشوند اما در مونگو دیبی، ساختار نگهداری دادهها به شکل سند است. هر سند از نوع Binary JSON یا BSON است و دارای فیلدهای کلید و مقدار میباشد.
برای اجرا کردن کدهایی که در مونگو دیبی نوشته شده است باید از طریق Mongo Shell اقدام کرد. مونگو شل رابط تعاملی دیتابیس و برنامه نویس محسوب میشود و به آنها اجازه ارسال کوئری (Query) و به روزرسانی دادهها را میدهد.
مزایا و معایب استفاده از mongo db چیست؟
دیتابیسهای رابطه ای دارای اسکیما (Schema) هستند. یعنی ساختار خاصی برای داده هادر نظر گرفته و مدلهای محدودی را ذخیره میکنند. اما مونگو دیبی و به طور کلی دیتابیسهای NoSQL در برابر پذیرش داده هایی با توع مختلف بسیار منعطف هستند و این مزیت مهمی برای برنامه نویسان محسوب میشود. مقیاس پذیری این پایگاه داده باعث استفاده از آن در پروژه هایی میشود که با کلان دادهها (Big Data) سروکار دارند.
علاوه بر مزایای گفته شده مشکلاتی نیز در مونگو دیبی وجود دارد که ممکن است دردسرساز شود. این دیتابیس در استفاده از کلید خارجی (Foreign Key) برای دادهها ضعف دارد و ممکن است پایداری دادهها و یکپارچگی سیستم را به هم بریزد. همچنین در خوشه بندی دادههای موجود در این پایگاه داده، تنها میتوان یک گره (Node) را به عنوان گره اصلی (Master) انتخاب کرد که اگر از بین برود، ممکن است مرتب سازی زیرگرههای آن از بین برود. این مشکل در پایگاه داده کاساندرا (Cassandra) برطرف شده است.
جمع بندی
معمولا مونگو دیبی در سطوح بالاتر توسعه نرم افزار و برنامه نویسی استفاده میشود. این پایگاه داده بسیار قدرتمند است و ساختار ذخیره داده آن، باعث تمایز آن از سایر پایگاه دادهها شده است. همچنین کوئریهای ساده ای دارد و کار با آن، برای کسانی که تجربه حرفه ای در انجام پروژههای مختلف برنامه نویسی دارند کار چندان سختی نیست. شما تجربه ای در کار با پایگاه داده mongo db دارید؟
جمع بندی مطالب : علی نژادمزارع
منابع : سون لرن، ایران سرور