این موضوع است را مطالعه کنید.
NoSQL یک مفهوم عام است و تعریف ساده آن "پایگاه داده بدون SQL است". به این معنی که در آن خبری از جدول ها، روابط بین آنها و ... نیست!
- اما چرا باید با وجود اینکه SQL به اغلب نیازهای ما پاسخ داده است، باید سراغ تکنولوژیهای دیگر رفت؟
- وقتی نگاهی به لیست شرکتهای بزرگی میاندازیم که جز مشتریان پر و پا قرص
NoSQL هستند( + و + )، تعجب میکنیم! آیا آنها از قدرت و قابلیتهای SQL
بی خبراند؟
NoSQL بر اساس نحوه پیاده سازی اش دسته بندی شده است؛ که مهمترین آنها در زیر آمده است :
- Wide Column Store
- Document Store
- Key Value / Tuple Store
- Graph Databases
- Multimodel Databases
- Object Databases
انتخاب روش؛ یک مثال ساده :
فرض کنید روال استخدام نیروی کار جدید در یک سازمان، از قرار زیر باشد:
- ثبت مشخصات فردی
- ارائه مدارک تحصیلی
- شرکت در آزمون استخدامی
- شرکت در مصاحبه ( درصورت قبول شدن در آزمون )
- شرکت در دوره آموزشی ( در صورت قبول شدن در مصاحبه )
روش دوم، تهیه یک پرونده برای هر شخص و نگهداری اسناد مربوط به شخص ( در هر مرحله ) است.
خوش بختانه تعداد پایگاههای داده ای که بر اساس تکنولوژی Document Store پیاده سازی شده اند، زیاد است و از قدرتمندترین آنها میتوان به MongoDB ، CouchDB و RavenDB اشاره کرد. هرکدام از این انتخابها مزایا و معایبی دارند که باید با توجه به نیاز خود، مقایسه ای انجام داده و بهترین را انتخاب کنید.
انتخاب من RavenDB بوده است و دلایل آن :
- بر اساس زبان سی شارپ نوشته شده است و همچنین با LINQ خیلی خوب کار میکند.
- Transaction را پشتیبانی میکند.
- اساس ذخیره سازی آن JSON است.
- محیط Management Studio کاربر پسندی دارد.
نقطه آغازین بحث بعد RavenDB خواهد بود که Bryan Wheeler (مدیر توسعه بسترهای نرم افزاری در msn) در باره آن گفته :
RavenDB
just rocked my world. It’s extremely approachable, even for
non-database guys – it took me less than 30 minutes to get up and
running
خوشحال میشوم، نظرات و تجربیات شما را در رابطه با NoSQL بدانم.