در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
پایگاههای داده رابطهای در نرمافزارهایی که دادههای سنگینی دارند، بازدهی کمی دارند. مثلا برای اندیسگذاری تعداد زیادی از سندها یا ارائه صفحههای اینترنت در وبسایتهایی که جریان داده بالایی دارند، پایگاههای داده رابطهای پاسخگو نخواهند بود و تنها زمانی بهدرد میخورند که یا دادهها اندک باشد یا درخواست نوشتن و خواندن در دیتابیس زیاد نباشد. بهعنوان مثال، پایگاه داده دیگ که 3ترابایتی است یا پایگاه داده فیسبوک که برای جستجوی اینباکسهای کاربران، 50ترابایت داده دارد، همچنین پایگاه داده eBay که هماکنون به 2پتابایت رسیده است، نمیتوانند کار خود را با پایگاههای داده رابطهای راه بیندازند.
در معماری NoSQL بحث ثبات دادهها تنها در مورد یک آیتم یا یک تراکنش اعمال شده است. هرچند برخی از سیستمهای فعلی کاملا قابلیت ACID را پشتیبانی میکنند.
سیستمهای NoSQL داده را با کمک معماری توزیعشده در چندین سرور با افزونگی خاص خود قرار میدهند. به این ترتیب سیستم میتواند با افزوده شدن سرورهای دیگر، خودش را بزرگ کند و به امنیت و پایداری سیستم کمک کند. برخی از پایگاههای داده NoSQL حتی رابط سادهای برای ارتباط با این دیتابیسها در نظر گرفتهاند و دادهها را بهصورت آرایههای انجمنی ذخیره کرده و دسترسی بهدادهها را سادهتر میکنند. هجوم کاربریهای زیاد از پایگاههای داده NoSQL و همچنین استفاده شرکتهای بزرگ از این نوع پایگاههای داده، برخی را به این تفکر واداشته است که پایگاههای داده رابطهای در حال مرگ هستند. اگر بخواهیم پاسخ کوتاه و قطعی بدهیم، باید گفت بیگمان این موضوع صحیح نیست. پایگاههای رابطهای باقی خواهند ماند و کاری که میکنند هم تغییر نخواهد کرد: مدیریت دادههای کلی، ارتباط ساده، سرعت، بازدهی بالا، انعطافپذیری و قابلیت گسترش برای کاربران متوسط و کوچک.
هر چند دیتابیسهایی چون SQL Server، اوراکل و مایسهکوئل این سادگی را مدیون پیچیدگی درونی خود هستند. پاشنه آشیل این بانکهای اطلاعاتی آنجاست که نمیتوانند بسرعت بزرگ شوند و با حجم بالای درخواست روبهرو شوند.
اغلب پایگاههای داده رابطهای میتوانند تا حد مناسبی بزرگ شوند و این عملیات بزرگ شدن در یک سرور بخوبی انجام میشود، اما وقتی کار به بیش از یک سرور میکشد، باید سراغ پیچیدگیهای خاصی رفت تا بتوان این دیتابیسها را بین بیش از یک سرور مشترک کرد.
بیاید فرض کنیم که بیش از صدها یا هزاران سرور برای رشد سریع لازم باشد. پیچیدگی حاصل از این رشد، غیرقابل توصیف خواهد بود و پایداری و سرعت پایگاههای داده رابطهای بهشدت پایین میآید و ضعفهای آنرا برای سیستمهای توزیع شده بسیار بزرگ نشان میدهد.
برای چنین سرویسهایی راهحل استفاده از NoSQL است که غیررابطهای و توزیعشده هستند و قابلیت توسعه افقی دارند. از اینرو شرکتهای بزرگ زیادی همچون گوگل و آمازون از این پایگاه داده استفاده میکنند، البته این شرکتها از پایگاه داده خاصی استفاده نمیکنند و هر کدام از مدیر دیتابیسهای تولیدی خود استفاده میکنند. بنابراین تفاوت میان کاربرد پایگاههای داده رابطهای و کاربرد پایگاههای داده غیررابطهای مشخص شده است. تنها مساله باقی مانده، انتقال به نسل نوین است.
در پایان، همان پاسخ اولیه را تکرار میکنیم که نباید NoSQL را بهعنوان نسل بعدی و جایگزین همین سیستمهای معمولی دانست و بگوییم مثلا NoSQL از پایگاههای رابطهای بهتر است. پرسش این است که چه زمان باید از NoSQL استفاده کرد؟
اینجاست که باید کلاه خود را قاضی کنید و به اندازه سیستم، میزان رشد سیستم و تراکنشهایی که در سیستم رخ میدهند توجه نشان دهید.
باید توجه کنید که مثلا راهاندازی یک سرویس بلاگ که در هر ثانیه چندین مطلب به آن اضافه میشود و ... حتما یک پایگاه رابطهای را به زانو در میآورد، در صورتی که این دادهها در NoSQL قرار بگیرند (که مخصوص این کار درست شده است) میتوانند بازدهی بسیار خوبی داشته باشند.
میلاد پیکانی
منبع: wikipedia
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: