چگونه یک پایگاه داده مناسب انتخاب کنیم؟ – راهنمای مقدماتی
گام حیاتی در آغاز هر پروژه پایگاه داده شامل انتخاب از میان پایگاههای داده رابطهای یا غیر رابطهای، نظریه CAP و مواردی از این دست است. زمانی که یک پروژه پایگاه داده سازمانی را استارت میزنید بهتر است برای انتخاب پایگاه داده مناسب نهایت دقت خود را به خرج بدهید. با ظهور مفهوم کلانداده، اینک گزینههای بسیار زیادی برای رفع نیازهای مدیریت داده وجود دارند و انتخاب پایگاه داده صحیح به معنی انجام کارهای زیر است:
- ابتدا و قبل از هر کار دیگر باید درک کنید که پایگاه داده شما تحت چه الزاماتی از پروژه کار خواهد کرد.
- شما با چه نوع از پایگاه داده میتوانید تنها برخی از نیازهای مرتبط را رفع کنید.
- عملکرد پایگاه داده تنها پس از آن که موفق شدید همه نیازهای پایگاه دادهای خودتان را با نوع پایگاه داده مناسب تطبیق دهید مطرح میشود.
- همواره یک نقطه موازنه بین سازگاری، در دسترس بودن، و تحمل تسهیم وجود دارد.
درک موازنه
دلیل این که امروزه گزینههای پایگاه داده زیادی وجود دارند ناشی از نظریه CAP است. CAP اختصاری برای سه عبارت «consistency ،availability ،partition tolerance» یعنی سازگاری، در دسترس بودن و تحمل تسهیم است.
- سازگاری یعنی هر درخواست خواندن، جدیدترین نسخههای نوشته شده را بازگشت دهد.
- در دسترس بودن یعنی گره غیر پاسخگو، باید در طی مدت زمانی معقول پاسخگو شود.
- تحمل تسهیم یعنی سیستم علیرغم بروز شکست در شبکه یا گره بتواند به کار خود ادامه دهد.
در هر لحظه از زمان تنها دو مورد از این سه الزام میتوانند برقرار باشند.
پایگاههای داده رابطهای
پایگاههای داده رابطهای به طور سنتی، سازگاری و در دسترس بودن بالایی دارند و این به هزینه کاهش تحمل تسهیم به دست میآید. این پایگاههای داده برای نوشتن بهینهسازی شدهاند. مثالهایی از پایگاههای داده رابطهای به صورت SQL Server ،MySQL ،PostgresSQL و IBM DB2 است.
پایگاههای داده غیر رابطهای
پایگاههای داده غیر رابطهای جهت افزایش «در دسترس بودن و تحمل تسهیم» و یا «سازگاری و تحمل تسهیم» توسعه یافتهاند. این نوع از پایگاههای داده جهت خواندن بهینهسازی شدهاند. مثالهایی از پایگاههای داده غیر رابطهای شامل Memcached ،Redis ،Coherence ،Hbase ،BigTable ،Accumulo ،MongoDB و CouchDB است.
در سیستمهای پیچیده که حجم عملیات خواندن و نوشتن هر دو بالا است، داشتن ترکیبی از پایگاههای داده رابطهای و غیر رابطهای برای جداسازی وظایف خواندن در برابر نوشتن جهت بهینهسازی CAP ضروری است.
سؤالهای مهمی که باید پرسید
گام بعدی در مسیر انتخاب پایگاه داده مناسب این است که فهرستی از سؤالها در رابطه با الزامات کسبوکار خود بپرسید. برخی از این سؤالها در فهرست زیر ارائه شدهاند:
- در دادههای شما چه تعداد رابطه وجود دارد؟
- سطح پیچیدگی دادههای شما چه قدر است؟
- دادهها به چه میزان تغییر مییابند؟
- اپلیکیشن شما به چه میزان به داده کوئری میزند؟
- اپلیکیشن شما به چه میزان به روابط بین دادهها کوئری میزند؟
- کاربران شما به چه میزان دادهها را بهروزرسانی میکنند؟
- کاربران شما به چه میزان منطق موجود در دادهها را بهروزرسانی میکنند؟
- اپلیکیشن شما در صورت بروز یک فاجعه غیرمترقبه چه قدر حیاتی خواهد بود؟
درک مزایا و معایب
پایگاههای داده رابطهای برای نوشتن بهینهسازی شدهاند. بدین ترتیب بهترین عملکرد آنها در زمینه سازگاری و در دسترس بودن است.
مزیتهای پایگاههای داده رابطهای
- سادگی
- سهولت بازیابی دادهها
- یکپارچگی دادهها
- انعطافپذیری
معایب پایگاههای داده رابطهای
- هزینه بالا: راهاندازی و نگهداری این پایگاههای داده پرهزینه است.
- محدودیتهای ساختاری: پایگاههای داده رابطهای در طول فیلدها محدودیت دارند. بدین ترتیب ذخیرهسازی حجم بالایی از اطلاعات در یک فیلد دشوار خواهد بود.
- جداسازی: چندین پایگاه داده رابطهای را میتوان به سادگی به «جزیرههای اطلاعات» تبدیل کرد. اتصال به پایگاههای داده زمانی که با هم ارتباط برقرار میکنند میتواند دشوار باشد.
پایگاههای داده غیر رابطهای برای عملیات خواندن بهینهسازی شدهاند. آنها خصوصیتهای «در دسترس بودن و تحمل تسهیم» و یا «سازگاری و تحمل تسهیم» را عرضه میکنند.
مزیتهای پایگاههای داده غیر رابطهای
- انعطافپذیری: حجم بالایی از دادههای ساختیافته، نیمه ساختیافته و غیر ساختیافته را ذخیره میکنند.
- برنامهنویسی چابک: در این نوع پایگاههای داده میتوان به سرعت قطعه کدهای کوتاهی نوشت و آن را اجرایی کرد.
- مقیاسپذیری ارزان: معماری پایگاههای داده غیر رابطهای به طرز مؤثری بدون هزینه سربار زیاد قابل گسترش است.
معایب پایگاههای داده غیر رابطهای
- سازگاری دادهها: پایگاههای داده غیر رابطهای تراکنشهای ACID را اجرا نمیکنند. در عوض آنها بر «سازگاری نهایی» تکیه دارند. مزیت عملکردی این پایگاههای داده به هزینه کاهش سازگاری به دست میآید.
- استانداردسازی: هیچ اینترفیس برنامهنویسی خاصی برای پایگاههای داده مختلف وجود ندارد. هر یک از آنها دارای زبان متفاوتی نسبت به بقیه هستند.
- مقیاسپذیری: هیچ یک از پایگاههای داده غیر رابطهای در خودکارسازی فرایند sharding، یا گسترش پایگاه داده در چند گره عملکرد مناسبی ندارند. این وضعیت موجب بروز محدودیتهایی در مقیاسپذیری به سمت بالا یا پایین برای وضعیتهای با تقاضای پرنوسان میشود.
درک انواع مختلف پایگاههای داده غیر رابطهای
امروزه انواع متفاوتی از پایگاههای داده غیر رابطهای وجود دارند. این پایگاههای داده در دستهبندیهای خاصی جای میگیرند. هر دسته از پایگاههای داده غیر رابطهای برای مقصود خاصی طراحی شدهاند.
کلید/مقدار: این نوع از پایگاههای داده بهترین عملکرد خود را در طرحبندیهای ساده برای پایگاههای داده نشان میدهند. این نوع برای عملیات خواندن و نوشتن زیاد و با بهروزرسانی کم مناسب است. بهترین عملکرد این نوع پایگاه داده در زمانی است که کوئریها یا منطق تجاری غیر پیچیدهای وجود داشته باشند. مثالهایی از این نوع پایگاههای داده شامل Redis ،Dynamo DB و Cosmos DB است.
سند: این نوع از پایگاههای داده بهترین عملکرد خود را در یک طرحبندی انعطافپذیر نمایش میدهند. در این طرحبندی دادهها در قالب XML یا JSON ذخیره میشوند. در این وضعیت میتوان عملکرد خواندن بالایی داشت و میتوان بین عملکرد خواندن و عملکرد نوشتن تعادلی برقرار ساخت. همچنین امکان استفاده از اندیس برای بیشینهسازی عملکرد حافظه در این نوع از پایگاههای داده وجود دارد.
مثالهایی این نوع پایگاههای داده شامل MongoDB ،DynamoDB و Couchbase است.
گراف: این نوع از پایگاههای داده زمانی که طرحبندی پایگاه داده پیچیدهای دارید عالی هستند. شما باید منطق تجاری را بین گرهها به طور مکرر نمایش دهید. پایگاههای داده گراف امکان ناوبری بین گرهها را میدهند.
Neo4j ،Cosmos Db و Amazon Neptune مثالهایی از این نوع پایگاه داده محسوب میشوند.
اکنون که درک نسبتاً جامعی از موارد لازم در هنگام انتخاب پایگاه داده برای پروژههای سازمانی خود به دست آوردید، میتوانید بسته به نیازهای اپلیکیشنتان یک یا چند مورد از آنها را انتخاب کنید. بدین ترتیب انتخاب شما انتخاب فردی خواهد بود که همه نیازهای تجاری مختلفی که ممکن است داشته باشد را لحاظ میکند.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای پایگاه داده
- آموزش پایگاه داده MySQL
- مجموعه آموزشهای برنامهنویسی
- پایگاه های داده SQL و NoSQL و تفاوت آنها — به زبان ساده
- آموزش پایگاه داده MySQL — مجموعه مقالات جامع وبلاگ فرادرس
- آموزش SQL Server Management Studio | کامل، رایگان و گام به گام
- MongoDB چیست؟ — راهنمای شروع با دیتابیس مانگو دی بی
==