معرفی دیتابیسهای Document-Oriented + مزایا و معایب
در این مقاله میخوانید
- دیتابیس Document-Oriented؛ از انواع پایگاه داده NoSQL
- تفاوت SQL و NoSQL؛ براساس نحوه ساخت و ذخیره اطلاعات
- چهار مزیت مهم دیتابیسهای Document-Oriented
- معایب دیتابیسهای Document-Oriented؛ نیاز به تسلط در مدلسازی
- معرفی سه نمونه دیتابیس Document-Oriented
- بررسی مهمترین ویژگی دیتابیس Document-Oriented با سه مثال ساده
- جمعبندی
- سؤالات متداول
دیتابیسهای Document-Oriented جزو دیتابیسهای نوظهور و قدرتمند موجودند. برای سالهای متمادی، دیتابیسهای رابطهای (Database Landscape) برای توسعه وب و اپلیکیشن استفاده میشدند؛ دیتابیسهایی که دادهها را در ردیفهای مختلف جدول دستهبندی میکردند. باوجوداین، ساختار پیچیده و انعطافناپذیر این دیتابیسها باعث شد شکل جدیدی از پایگاههای داده بهوجود بیایند. در این مقاله از بلاگ پارس پک، قصد داریم شما را با نحوه عملکرد و مزیت دیتابیس Document-Oriented آشنا کنیم.
دیتابیس Document-Oriented؛ از انواع پایگاه داده NoSQL
دیتابیسهای Document-Oriented را بهعنوان پایگاه داده NoSQL میشناسند؛ زیرا در آن معمولاً از زبان SQL استفاده نمیشود. این زبان اغلب در دیتابیسهای ارتباطی برای جستوجو و مدیریت کاربرد دارد. پایگاه داده NoSQL با انعطافپذیری و مقیاسپذیری درخورتوجهش، سطح پیشرفتهای از ساختار دادهها را دراختیار کاربر قرار میدهد؛ بههمیندلیل، برای دادههای بسیار زیاد عملکرد سریعتری خواهد داشت. ناگفته نماند پایگاه داده سندگرا یکی از انواع پایگاه داده NoSQL بهشمار میرود.
تفاوت SQL و NoSQL؛ براساس نحوه ساخت و ذخیره اطلاعات
تفاوت اصلی این دو بانک اطلاعاتی به نحوه ساخت و نوع ذخیره اطلاعات در آنها بستگی دارد. دیتابیسهای SQL از نوع پایگاههای داده رابطهای هستند؛ پایگاههای دادهای مشابه دفترچه تلفن که تا اسم فرد را ندانید، شمارهتلفن او را نمیتوانید پیدا کنید.
پایگاههای داده NoSQL از نوع سندگرا هستند. این یعنی پایگاههای گفتهشده براساس سند تعریف و توزیع میشوند؛ درست مانند پوشههایی که در آن اطلاعات کلی یک شخص قرار میگیرند. برای استفاده از پایگاه داده سندگرا، به دانستن SQL نیازی ندارید؛ زیرا میتوانید ازطریق API به دادهها دسترسی داشته باشید.
برخلاف دیتابیسهای رابطهای که اطلاعات را بهصورت ردیف و ستون جدول ذخیره میکنند، در دیتابیسهای سندگرا اطلاعات بهصورت سند ذخیره میشوند. از این طریق دادههای بدون ساختار مثل تصویرها یا ویدئوها یا مقالهها در یک سند ذخیره میشوند.
پایگاه داده چیست و چه تفاوتی با صفحات گسترده دارد؟ پایگاههای داده چطور تکامل پیدا کردند؟ در مقاله زیر بخوانید.
چهار مزیت مهم دیتابیسهای Document-Oriented
دیتابیس Document-Oriented بهدلیل قابلیت ذخیره دادههای بدون ساختاریافته یا نیمهساختاریافته ممکن است برای برخی از سازمانها مفید نباشد؛ اما مزایای مهمی دارد. ازجمله مزایای این بانک اطلاعاتی پرکاربرد میتوان به اینها اشاره کرد:
۱. انعطافپذیری و سازگاری فراوان؛ مزیت مهم دیتابیسهای Document-Oriented
با وجود برخورداری از ساختاری مشخص، این پایگاه داده امکان انطباق با ساختارهای مختلف را فراهم میکند. در این بانک اطلاعاتی، شما میتوانید براساس تشخیص خودتان فیلدهای جدیدی را بلافاصله اضافه کنید یا فیلدهایی را تغییر دهید.
۲. امکان مدیریت اطلاعات ساختاریافته یا بدون ساختار؛ دومین مزیت کاربردی دیتابیسهای Document-Oriented
با اینکه امکان ذخیره اطلاعات بدون ساختار در بانک اطلاعاتی سندگرا وجود دارد، این پایگاه داده برای مدیریت اطلاعات ساختاریافته نیز مفید است. منظور از دادههای ساختاریافته اطلاعاتی است که بهراحتی میتوان آن را در ردیف و ستون نمایش داد. این در حالی است که دادههای بدون ساختار مانند پستهای تصویری یا ویدئویی موجود در شبکههای اجتماعی بهصورت ساختاریافته ظاهر نمیشوند.
۳. امکان مقیاسپذیری براساس طراحی؛ افزایش عملکرد دیتابیس با مقیاس افقی
در دیتابیسهای رابطهای، برای عملکرد بهتر نیاز است که دادهها را به سرورهای پایگاه داده قدرتمندتر و کارآمدتر منتقل کنید. این یعنی افزایش عملکرد دیتابیسهای رابطهای بهاصطلاح بهصورت عمودی است. درمقابل در دیتابیسهای سندگرا، برای عملکرد بهتر میتوانید یک پایگاه داده را بین چند سرور تقسیم کنید. این یعنی افزایش عملکرد دیتابیسهای سندگرا بهصورت افقی است. همین امر کمک میکند تا حجم زیادی از دادهها بدون عملیات پیچیده ذخیره شوند.
۴. امکان گروهبندی اسناد بهکمک مجموعهها
اگر پایگاه داده سندگرا را کابینت یک واحد ساختمانی در نظر بگیریم، چندین مجموعه در این پایگاه داده مانند کشوهای کابینت هستند. بهعبارتدیگر، مجموعهها اسنادی را درکنارهم قرار میدهند که عملکردشان مشابه یکدیگر است. ناگفته نماند ازنظر فنی، امکان قراردادن هر دو نوع سند مختلف درکنارهم وجود دارد؛ بااینحال، پایگاه داده سندگرا بهکمک مجموعهها این دستهبندی را منظمتر میکند تا دسترسی به دیتابیس راحتتر شود.
پایگاه سندگرا چیست؟
معایب دیتابیسهای Document-Oriented؛ نیاز به تسلط در مدلسازی
در پایگاه داده سندگرا ساختار (Schema) متفاوتی وجود دارد؛ ساختاری که تعیین میکند چه دادههایی را میتوان در آن قرار داد. اسکیما در پایگاه داده سندگرا براساس نوع و ارزش هر فیلد تعریف میشود. هنگام ایجاد مجموعه یا افزودن سند، Schema بهطورخودکار ایجاد نخواهد شد؛ بنابراین درصورت پیادهسازینکردن آن، اسنادی با مقادیر کلیدمقدار خواهید داشت و موقع بازیابی یا بهروزرسانی داده ممکن است به مشکل بخورید.
علاوهبراین، مدلسازی پایگاه داده سندگرا کاملاً به شما بستگی دارد؛ پس اگر برنامهنویسی تازهکار هستید، ممکن است انتخاب مدلسازی چندان برایتان راحت نباشد. درضمن برای ایجاد ارتباط بین پایگاههای داده سندگرا، باید بر تکنیکهای مدلسازی داده مسلط باشید.
معرفی سه نمونه دیتابیس Document-Oriented
بانکهای اطلاعاتی مختلفی همچون MongoDB ،CouchBase ،CouchDB و Cassandra در پایگاه داده سندگرا وجود دارند. درادامه، سه نمونه از پایگاههای داده مهم و پرکاربرد را معرفی خواهیم کرد.
۱. پایگاه داده Firestore؛ راحتترین پایگاه داده سندگرا
Firestore نوعی پایگاه داده سندگرا بهشمار میآید که گوگل ارائه داده است. از این پایگاه داده میتوانید برای ساخت برنامههای تحتوب استفاده کنید. شایان ذکر است که کار با Firestore بسیار ساده است.
۲. پایگاه داده MongoDB؛ کاربردیترین پایگاه داده سندگرا
پرکاربردترین پایگاه داده سندگرا در فضای ابری MongoDB محسوب میشود که سازمانی با همین نام آن را طراحی کرده است. این پایگاه داده بهعنوان قدرتمندترین و کاملترین دیتابیس کاربرد فراوانی دارد.
۳. پایگاه داده FaunaDB؛ جدیدترین پایگاه داده سندگرا
پایگاه داده جدیدی است که دادههای رابطهای، نموداری و… را نیز میتوانید در آن مدلسازی کنید. اگر تا این توضیحات موجب سردرگمیتان شده است، نگران نباشید؛ چراکه درادامه با ذکر مثالی ساده کمک میکنیم تا به ویژگی اصلی پایگاه داده سندگرا پی ببرید.
مقایسه کامل سیستمهای مدیریت دیتابیس نسبی SQLite و MySQL و PostgreSQL را در مقاله زیر بخوانید.
بررسی مهمترین ویژگی دیتابیس Document-Oriented با سه مثال ساده
دیتابیس Document-Oriented باتوجهبه ویژگیهایش برای سازمانهایی مناسب است که قصد دارند دادههای بدون ساختار یا نیمهساختاریافته را ذخیره کنند. در این صورت، بهراحتی میتوانند بانک اطلاعاتی را تغییر دهند یا تغییراتی روی آن اِعمال کنند. درادامه، سه مثال را در پایگاه داده MongoDB بررسی خواهیم کرد.
مثال اول: ذخیره کارت تماس در پایگاه داده MongoDB
MongoDB نوعی پایگاه داده سندگراست. در مثال زیر، کارت تماس کارمندی به اسم «سامی» را در این پایگاه داده بهنمایش درخواهیم آورد:
{ "_id": "sammyshark", "firstName": "Sammy", "lastName": "Shark", "email": "[email protected]", "department": "Finance" }
سندی که در MongoDB میبینید، بهعنوان شیء JSON نوشته شده است. JSON فرمتی خواندنی برای انسان در پایگاه داده است. گفتنی است فرمتهای دیگری همچون XML یا YAML نیز وجود دارند؛ اما JSON جزو فرمتهای خواندنی پرکاربرد در پایگاه داده بهشمار میرود.
همانطورکه میبینید، دادهها در فرمت JSON بهصورت دو فیلد کنارهم بهنمایش درمیآیند. برای مثال، “value”:”field ” تعریف میشود. در مثال بالا، دو پارامتر “first name” و “last name” با مقدار id برابر با sammyshark تعریف شده است. نام فیلد و پارامترها نوع داده ذخیرهشده در سند را نشان میدهند. زمانیکه قصد دارید پایگاه داده سندگرا را بازیابی کنید، امکان دریافت تصویر کامل از سند برایتان فراهم است.
مثال دوم؛ ذخیره کارت تماس با دو آرایه با مقدار مختلف
در این نمونه، سندی با نام میانی ذخیره شده است. علاوهبر اضافهشدن فیلد middle name در این سند، در بخش department نیز دو آرایه “finance” و “accounting” را شاهد هستیم:
{ "_id": "tomjohnson", "firstName": "Tom", "middleName": "William", "lastName": "Johnson", "email": "[email protected]", "department": ["Finance", "Accounting"] }
باوجوداین در پایگاه داده رابطهای، هر دو کارت را نمیتوانید همزمان در یک جدول ذخیره کنید؛ زیرا ساختار متفاوتی دارند. درواقع براساس Schema پایگاه داده، باید مقدار هر فیلد را تعریف کنید؛ وگرنه فیلدی مثل “middle name” با مقدار NULL ظاهر میشود.
درمقابل، در پایگاه داده سندگرا این امکان وجود دارد که اسناد مختلف را با Schemaهای متفاوت ذخیره کنید؛ چراکه اسکیما در دیتابیس سندگرا حالت پویا دارد. این یعنی به تعریف دادهها قبل از ذخیره آنها نیازی نیست. در این نوع پایگاه داده، شما میتوانید بهراحتی ساختار سند را تغییر دهید و فیلدهای آن را کم و زیاد کنید.
مثال سوم؛ ذخیره کارت تماس با اسناد تودرتو
در دیتابیس Document-Oriented، قابلیت ذخیره دادههای پیچیده وجود دارد. این یعنی داده میتواند بهصورت تودرتو تعریف شود؛ درنتیجه، مقدار یک فیلد در سند ممکن است حاوی دادههای سندی جداگانه باشد. با مثال زیر قضیه را روشنتر خواهیم کرد:
تصور کنید که قصد دارید اطلاعات کارت تماس کارمندی را ذخیره کنید. در این کارت، اطلاعات رسانههای اجتماعی کارمند نیز وجود دارد. در این صورت، با استفاده از قابلیت ذخیره تودرتو اسناد در دیتابیس سندگرا، میتوانید بهسادگی مقادیر هر فیلد را تعریف کنید:
{ "_id": "tomjohnson", "firstName": "Tom", "middleName": "William", "lastName": "Johnson", "email": "[email protected]", "department": ["Finance", "Accounting"], "socialMediaAccounts": [ { "type": "facebook", "username": "tom_william_johnson_23" }, { "type": "twitter", "username": "@tomwilliamjohnson23" } ] }
همانطورکه میبینید، در بخش “Social Media Accounts” اطلاعات کاربری فرد شامل نوع سوشال و نام کاربریاش قرار گرفته است. با اینکه هریک از این اکانتهای سوشال میتواند بهعنوان سندی جدا تعریف شود، آنها را میتوان مستقیماً در یک سند کارت تماس قرار داد، بدون اینکه به تغییر ساختار دیتابیس نیاز داشته باشد. همین ویژگی باعث شده است تا کار با دیتابیس Document-Oriented راحتتر و ذخیره اطلاعات سریعتر انجام شود.
مایاسکیوال چیست و چگونه کار میکند؟ MySQL و SQL Server چه تفاوتی با هم دارند؟ در مقاله زیر بخوانید.
جمعبندی
انتخاب پایگاه داده مناسب یکی از بخشهای مهم توسعه نرمافزار بهشمار میرود. بهترین پایگاه داده براساس نوع کاربردی که از آن انتظار دارید، تعیین میشود. یکی از دیتابیسهای محبوب و پرکاربردی که مزایای بیشتری دارد، دیتابیس Document-Oriented است. دیتابیسهای Document-Oriented انواع مختلفی دارند که در این مقاله از بلاگ پارس پک، شما را با سه نمونه مهم از آنها آشنا کردیم.
پایگاه داده سندگرا (Document-Oriented) بهعنوان پایگاه داده NoSQL منعطف و مقیاسپذیر، از زبان برنامهنویسی JSON یا XML یا YAML پیروی میکند؛ درنتیجه، برای استفاده از آن به تسلط بر زبان SQL نیازی نخواهید داشت. این پایگاه داده اغلب برای سازمانهایی با اطلاعات بدون ساختار یا نیمهساختاریافته مناسب است. دیدگاه شما درباره این نوع دیتابیسها چیست؟ آیا استفاده از پایگاه داده سندگرا را تجربه کردهاید؟ شما میتوانید تجربههای خود از کار با پایگاه داده Document-Oriented یا سؤالها و ابهامهایتان درباره آن را ازطریق کامنت با ما بهاشتراک بگذارید.
سؤالات متداول
۱. معنای Document-Oriented چیست؟
دیتابیس Document-Oriented نوعی پایگاه داده سندگرا و NoSQL است که در آن اطلاعات بهصورت سندهای باینری ذخیره میشوند.
۲. تفاوت پایگاه داده ستونگرا و سندگرا چیست؟
در دیتابیسهای ستونگرا، اطلاعات بهصورت ستون ذخیره و درنهایت عملیات بازیابی در ستونی خاص انجام میشود؛ درحالیکه در پایگاه داده سندگرا، کل سند در یک مکان ذخیره و بازیابی بهطورکلی انجام میشود.
۳. مزیت اصلی دیتابیس Document-Oriented چیست؟
پایگاه داده Document-Oriented روشی ارزان و سریع برای بررسی و ذخیره اطلاعات بدون نیاز به ایجاد ساختار و با قابلیت ایجاد سندهای تودرتو و پیچیده است.
۴. انواع دیتابیسهای Document-Oriented کداماند؟
ازجمله دیتابیسهای Document-Oriented کاربردی و معروف میتوان به MongoDB و FaunaDB و Firestore اشاره کرد.