در گذشته پایگاه دادهها به شکل سلسله مراتبی و یا شبکهای وجود داشتند. اما امروزه پایگاه دادههای رابطهای 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 یک پایگاه داده NoSQL است که برای پردازش Big Data کاربرد فراوانی داشته و میتواند حجم زیادی از دادهها را ذخیره کند. مونگو دیبی ذاتا از مقیاس پذیری افقی پشتیبانی میکند، به طوری که دادهها میتوانند در چند دیتابیس به صورت موازی توزیع پیدا کنند.
دیتابیسهای رابطهای دارای اسکیما (Schema) هستند. یعنی ساختار خاصی برای دادهها در نظر گرفته و مدلهای محدودی را ذخیره میکنند. اما مونگو دیبی و به طور کلی دیتابیسهای NoSQL در برابر پذیرش دادههایی با تنوع مختلف بسیار منعطف هستند و این مزیت مهمی برای برنامهنویسان محسوب میشود.
همانندسازی (Replication) یکی دیگر از خصوصیات مهم مونگو دیبی است. در این تکنیک از یک داده به عنوان داده اصلی کپیهایی تهیه شده و بخشهای دیگری از سیستم پایگاه داده ذخیره میشود. در صورت از بین رفتن و یا مخدوش شدن این داده، دادههای کپی شده به عنوان داده اصلی و جایگزین مورد استفاده قرار میگیرند.
دادهها با دو کلید اولیه و ثانویه قابل دسترسی هستند و هر فیلدی قابلیت کلید شدن را دارد. این امر زمان دسترسی و پردازش داده را بسیار سریع میکند.
برای این منظور ابتدا با دستور زیر دسترسی شل دیتابیس 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