منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد پایگاه داده در MySQL

در پایگاه داده MySQL اولین گام ایجاد یک پایگاه داده (اسکیما یا Schema) است. در نسخه های فعلی MySQL مانند ۵.۷ مفهوم پایگاه داده و اسکیما یکی هستند ولی در زمان ایجاد توسط دستور مربوطه، می توان تعیین کرد. در واقع تمامی اشیا پایگاه داده مانند جدول ها و ایندکس ها در غالب پایگاه داده یا اسکیما […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

تغییر خط اعلان در MYSQL

  زمانی که به MySQL متصل می شویم به صورت پیشفرض خط اعلان به صورت <mysql خواهد بود. همانند آنچه که برای Bash می توانیم انجام دهیم،می توانیم خط اعلان MySQL را نیز تغییر دهیم. این کار توسط تنظیم متغیر MYSQL_PS1 یا از طریق دستور mysql انجام می شود. همچنین این متغیر و دستور از طریق […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

منبع اصلی نوشتار زیر در این لینک قرار دارد

InnoDB چیست

InnoDB نام موتور پایگاه داده (Database Engine) یا در برخی منابع موتور ذخیره سازی (Storage Engine) که در پایگاه داده MySQL 5.5 به بعد به صورت پیشفرض استفاده می شود. InnoDB چهار ویژگی ACID و ویژگی کلید خارجی را پشتیبانی می کند. در حال حاظر InnoDB یکی از محصولات اوراکل است و پایگاه داده های […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

تغییر محل پیشفرض دایرکتوری داده های MySQL-MariaDB در ابونتو 14.04

در فایل my.ini در ویندوز و my.cnf در لینوکس و یونیکس ها پارامتر datadir دایرکتوری پیشفرض مربوط به ذخیره سازی دایرکتوری های MySQL نگه داری می شود. به هر دلیلی لازم داریم تا این محل را تغییر دهیم، بنابراین لازم است تا پارامتر datadir را ویرایش کنیم. در مطلب “محل پیشفرض فایل های پایگاه داده […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

نرم افزار متن باز ZeroDB، پایگاه داده ای با الگوریتمهای جدید رمزنگاری

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

منبع اصلی نوشتار زیر در این لینک قرار دارد

تفاوت ELT با ETL در مفاهیم انبار داده

در بخش های نخست و دوم آموزش انبار داده، درباره مفهوم و فرایند ETL که شامل سه گام استخراج و جمع آوری داده، تصفیه آنها و در نهایت بارگذاری درون سرور هدف صحبت شد. در این سه گام ابتدا داده ها از منبع جمع آوری شده و سپس درون سرور دیگری تصفیه شده و درنهایت […] ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

پایگاه داده NoSQL

مقدمه 

در ادامه صبحت‌های که در پیشگفتار مطلب قضیه CAP در سیستم‌های توزیع شده، در این مطلب به معرفی پایگاه‌های داده NoSQL (نواس‌کیوال) می‌پردازم. این مطلب شامل معرفی نوع پایگاه داده NoSQL و ویژگی‌های آن است. در نهایت در مورد توضیحاتی در زمینه Polyglot Persistence ارائه خواهم کرد.

محدودیت های RDBMS و پیدایش جنبش NoSQL

همزمان با فراگیری دسترسی به وب در سطح جهان و با افزایش سرعت و حجم تولید اطلاعات، پایگاه‌های RDBMS مانند MySQL با محدودیت‌هایی مواجه شدند. این محدودیت ها عبارتند از:
  1. گسترش دادن  آن‌ها (Scalability) دشوار است.
  2. معماری آن‌ها به گونه‌ای است که در دسترس بودن تمام سیستم (Availability) دشوار نموده است.
  3. در ساختار و نوع ذخیره سازی اطلاعات محدودیت دارند.
  4. نحوه رشد آن‌ها به صورت Scale up است. به معنی اینکه برای افزایش کارایی باید سخت افزار هر سیستم را تقویت نمایید. در نتیجه هزینه تهیه و نگهداری سیستم‌ها به شدت افزایش می‌یابد.

پایگاه داده NoSQL چیست؟

عبارت NoSQL مخفف Not Only SQL بوده و به جنبش پدید آمدن مجموعه پایگاه‌های داده‌ای اطلاق می‌شود که مفاهیم متقاوتی با پایگاه های داده RDBMS مانند MySQL دارند. از جمله این مفاهیم می‌توان به موارد زیر اشاره کرد:
  • رابطه‌ای (Relational) نیستند. Join و مواردی از این قبیل که شامل رابطه‌ای بین چند جدول است، در NoSQL وجود ندارد.
  • به صورت افقی رشد می‌کنند. اصطلاحا Scale out یا Horizontally Scalable هستند. البته تمامی پایگاه‌های NoSQL امکان Scale out شدن را ندارد و برخی نیز به سختی Scale out می‌شوند.
  • امکان کنترل و مدیریت Availability (در دسترس بودن سرویس) ساده‌تر است.
  • گستره بیشتری از انواع داده و ساختارها را پشتیبانی می‌نمایند.

انواع پایگاه‌های داده NoSQL

انواع پایگاه های داده NoSQL
انواع پایگاه های داده NoSQL
یکی از مهمترین ویژگی‌های جنبش پایگاه‌های داده NoSQL پشتیبانی نمودن گستره عظیمی از انواع ساختار داده‌ها است. این ویژگی باعث انعطاف پذیری در مدل سازی و ذخیره اطلاعات شده است. از این رو پایگاه‌های داده NoSQL بر اساس مدل‌سازی اطلاعات به دسته‌بندی‌های زیر تقسیم می‌شوند:
  • Column: Cassandra, HBase
  • Document: CouchDB, Couchbase, MongoDB
  • Key-value: Dynamo, Redis, Riak
  • Graph: Neo4J, InfiniteGraph
  • Multi-model: OrientDB, FoundationDB
در نظر داشته باشید که انواع پایگاه‌های داده NoSQL برای منظورهای مختلفی طراحی شده است. به معنی آنکه هر کدام مزیت‌های خاص خود را دارند. به همین جهت در هنگام انتخاب پایگاه داده، عامل‌های زیر را در نظر گرفته و بررسی نمایید:
  1. نوع اطلاعاتی که قصد ذخیره سازی آن‌ها را دارید. 
  2. مدل سازی اطلاعات برای ذخیره و خواندن آن‌ها.
  3. میزان اطلاعات ورودی و خروجی سیستم.
  4. اهمیت Consistency و Availability در مدل تجاری‌تان. مطلب قضیه CAP در سیستم‌های توزیع شده را مطالعه نمایید.
  5. در دسترس بودن نیروی متخصص و مستندات کافی برای نگهداری سیستم (Maintenance)
نکته: با توجه به موارد قید شده در بالا، لزوما نمیتوان نوع خاصی از پایگاه‌های داده RDBMS یا NoSQL را به عنوان بهترین راه حل برای تمام بخش‌های یک سیستم در نظر گرفت. مارتین فاولر مفهوم Polyglot Persistence را برای توضیح بیشتر در این زمینه ارائه کرده است.

منظور از Polyglot Persistence چیست؟

هدف از Polyglot Persistence انتخاب و استفاده مناسب از پایگاه‌های داده متفاوت برای بخش‌های مختلف یک سیستم است. به بیان دیگر ممکن است در یک سیستم شما از چندین پایگاه داده استفاده نمایید. عبارت Polyglot به معنای دانستن زبان‌های مختلف بوده و Persistence نیز به معنای ادامه حیات است. با این اوصاف، مفهوم Polyglot Persistence یعنی ادامه حیات با استفاده از شناختن زبان‌های مختلف (در اصل و در اینجا، پایگاه‌های داده مختلف) است. به بیانی ساده‌تر، مفهوم Polyglot Persistence، همانند Polyglot Programming، انتخاب بهترین گزینه برای ادامه حیات موضوعی است که روی آن کار می‌کنیم. تصویر زیر Polyglot Persistence را به صورت گویاتر توضیح داده است:
Polyglot Persistence
Polyglot Persistence
بزودی مطالب بیشتری در زمینه Big Data منتشر خواهم کرد.


ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

آموزش راه اندازی پایگاه داده PostgreSQL بر روی سیستم عامل Ubuntu

در این پست قصد معرفی پایگاه داده PostgreSQL و یا مقایسه آن با سایر پایگاه داده‌ها را نداریم، بلکه فقط نحوه راه اندازی این سرویس در سیستم عامل اوبونتو به صورت مرحله به مرحله آورده می‌شود.

ادامه مطلب
ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

تبدیل پایگاه داده paradox به mysql

اخیرا برای یک پروژه مجبور شدم اطلاعات نرم افزار قبلی مشتری رو که از پایگاه داده paradox استفاده می‌کرد رو استخراج کنم. برای این هدف زمان زیادی رو صرف جستجو کردم و چند تا نرم افزار پیدا کردم ولی به دلیل اینکه این نرم افزارها پولی بودن، فقط تعداد محدودی رکورد رو تبدیل می‌کردن به علاوه اینکه بعضی از این نرم افزارها ایراداتی هم داشتن، تا اینکه یک نرم افزار خوب برای لینوکس پیدا کردم. روال انجام کار رو در ادامه این پست میتونید مطالعه بفرمایید.

ادامه مطلب
ادامه مطلب