PDA

View Full Version : معرفی دیتابیس های NoSQl



mohammad1314
شنبه 23 اسفند 1393, 01:53 صبح
سلام دوستان.
بنده این ترم یک پروژه درباره NoSQL دارم و باید یکی از دیتابیس های NoSQL رو انتخاب کنم و روی اون کار کنم. (البته خودم هم علاقه زیادی به این مبحث پیدا کردم و دوست دارم که خارج از دانشگاه هم روش کار کنم.)
در اینترنت که درباره NoSQL جستجو میکردم ، اطلاعات گیج کننده ای درباره دیتابیس هاش پیدا کردم. مثلا متوجه نشدم که کاساندارا دقیقا چیه ؟ آیا اون هم دیتابیس NoSQL هستش یا نه؟
و سوالاتی از این قبیل.
حالا از دوستان ممنون میشم که دیتابیس های NoSQL رو معرفی کنن و کاربرد هر کدوم رو هم بگن و محیط کدنویسی هر کدوم رو هم معرفی کنن تا من یکی از اون هارو انتخاب کنم.
ممنون میشم اگه من رو به تاپیک دیگه ای نفرستین. چون همشون رو خوندم ولی اطلاعاتی رو که میخواستم به دست نیاوردم./

golbafan
شنبه 23 اسفند 1393, 08:41 صبح
سلام
یک نگاهی به این سایت بندازید
اکثر دیتابیس هارو توضیح داده و میتونید اونها رو باهم مقایشه کنید:
http://db-engines.com/en/ranking

در حال حاظر بهترین دیتابیس noSQL اسمش mongodb هست

مبین رنجبر
شنبه 23 اسفند 1393, 13:46 عصر
سلام دوستان.
بنده این ترم یک پروژه درباره NoSQL دارم و باید یکی از دیتابیس های NoSQL رو انتخاب کنم و روی اون کار کنم. (البته خودم هم علاقه زیادی به این مبحث پیدا کردم و دوست دارم که خارج از دانشگاه هم روش کار کنم.)
در اینترنت که درباره NoSQL جستجو میکردم ، اطلاعات گیج کننده ای درباره دیتابیس هاش پیدا کردم. مثلا متوجه نشدم که کاساندارا دقیقا چیه ؟ آیا اون هم دیتابیس NoSQL هستش یا نه؟
و سوالاتی از این قبیل.
حالا از دوستان ممنون میشم که دیتابیس های NoSQL رو معرفی کنن و کاربرد هر کدوم رو هم بگن و محیط کدنویسی هر کدوم رو هم معرفی کنن تا من یکی از اون هارو انتخاب کنم.
ممنون میشم اگه من رو به تاپیک دیگه ای نفرستین. چون همشون رو خوندم ولی اطلاعاتی رو که میخواستم به دست نیاوردم./

اگر در این بخش جستجو می کردید تاپیک های معرفی پایگاه های داده ای NoSQL رو پیدا میکردید. در حال حاضر پایگاه داده های MongoDB و Cassandra اکثریت محبوبیت رو دارا می باشند و پیشنهاد من این هست که برای شروع بین این دو مورد تحقیق کنید. در این (http://barnamenevis.org/showthread.php?396279-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-MongoDB) تاپیک پایگاه داده MongoDB معرفی شده است که می تونید مراجعه کنید. کاساندرا هم نوعی پایگاه داده NoSQL است که داده ها با ساختار "خانواده ستونی" یا Column Family ذخیره می شوند. بر عکس مانگو دی بی که به صورت سندگرا هستند. منظورتون از محیط کد نویسی چیه؟ اگر منظورتون محیط واسط کاربری دستورات پایگاه داده است که هردوی اونها ذاتا از طریق ترمینال(یا خط فرمان در ویندوز) قابل دسترس هستند ولی واسط های فرعی دیگری هم وجود دارند که به عنوان نرم افزارهای مستقل عرضه می شوند. به طور مثال نرم افزار MongoVUE برای مانگو دی بی و کاساندرا هم واسط های ساده ای مثل Helenos و RazorSQL تا واسطهای پیشرفته تری مثل DataStax OpsCenter وجود دارند.


در حال حاظر بهترین دیتابیس noSQL اسمش mongodb هست

راستی این نکته ای که دوستمون گفتند رو باید یه تغییری درش بدم. مانگو دی بی و کاساندرا جزء محبوب ترین ها هستند و نمیشه گفت از بقیه بهتر هستند. معیار برتری در هر مسئله ای فرق میکنه.

mohammad1314
یک شنبه 24 اسفند 1393, 00:44 صبح
ممنون از راهنماییتون.
ravendb هم از پایگاه داده های NoSQL هستش ؟ چه فرقی با بقیه داره؟
ممنون میشم اگه بیشتر در مورد فرق کاساندارا و mogodb توضیح بدین؟ منظورم فرق بین column و سندگرا؟
از mongodb و casandara هم برای برنامه های .net میشه استفاده کرد یا نه؟
و سوال آخر. بهترین منبع برای یادگیری این پایگاه های داده چیه؟
ممنون

مبین رنجبر
یک شنبه 24 اسفند 1393, 09:10 صبح
ممنون از راهنماییتون.
ravendb هم از پایگاه داده های NoSQL هستش ؟ چه فرقی با بقیه داره؟
ممنون میشم اگه بیشتر در مورد فرق کاساندارا و mogodb توضیح بدین؟ منظورم فرق بین column و سندگرا؟
از mongodb و casandara هم برای برنامه های .net میشه استفاده کرد یا نه؟
و سوال آخر. بهترین منبع برای یادگیری این پایگاه های داده چیه؟
ممنون

بله RavenDB هم یکی از پایگاه داده های NoSQL هست. فرق آنچنانی با بقیه نداره ولی چون توسط توسعه دهندگان دات نت(به زبان سی شارپ) تولید شده مسلما در دات نت از سازگاری بالایی برخوردار هست و با اینکه پایگاه داده نوع سندگرا هست تمامی اجزای دیتابیس رو به شکل کلاس و متدهای اون در اختیار برنامه نویس قرار می دهد. همچنین پیشتیبانی کامل تری از عملیات ACID در این دیتابیس می شود. به طور مثال از ویژگی های اون میشه به اتصال LINQ به RavenDB نام برد.

در پایگاه داده های سندگرا به هر سطر داده ای یک سند گفته می شود. این سطرهای داده در قالب XML، YAML ، JSON و BSON هستند. به طور مثال سطح زیر یک سند در قالب XML است:

<Article>
<Author>
<FirstName>Bob</FirstName>
<Surname>Smith</Surname>
</Author>
<Abstract>This paper concerns....</Abstract>
<Section n="1"><Title>Introduction</Title>
<Para>...
</Section>
</Article>

در پایگاه داده های خانواده ستونی یا Column Family به هر دسته از داده ها(که در پایگاه داده های سندگرا به نام مجموعه یا Collection و در پایگاه داده های رابطه ای به نام جدول یا Table شناخته میشوند) یک خانواده ای از ستون ها گفته می شود. به صورتی که هر سطر داده ای از تعدادی ستون و مقدار آن ستون تشکیل می شود که الزما این ستون ها در سطر بعدی با هم یکسان نیستند. در تصویر زیر خلاصه ساختار داده ای کاساندرا نشان داده شده است:


http://www.axgig.com/images/86597149575553291332.png


هرکدام از این دیتابیس ها دارای درایور ها و کلاینت های مخصوص به هر زبان هستند که از سایت رسمی خودشان قابل دانلود است. هم برای مانگو دی بی و هم کاساندرا درایورهای .Net موجود است. به طور مثال این (http://docs.mongodb.org/ecosystem/drivers/csharp/) لینک درایور مانگو دی بی برای سی شارپ است و این (https://github.com/datastax/csharp-driver) لینک و این (http://planetcassandra.org/getting-started-with-apache-cassandra-and-net/) لینک درایو دات نت برای کاساندرا و همچنین آموزش اتصال دات نت به کاساندرا می باشد.

بهترین منبع برای یادگیری کتاب های انتشارات معتبری مثل O'Reilly و... است. به طور مثال برای کاساندرا کتاب Cassandra: The Definitive Guide از انتشارات O'Reilly کامل ترین و بهترین منبع برای یادگیری است.

darya69
جمعه 22 خرداد 1394, 21:57 عصر
سلام ببخشید من یه خیلی تازه کار هستم که خود زبان sql رو هم خیلی ضعیف بلدم
ولی الان میخوام با داده های عظیم و داده کاوی کار کنم که لازمه nosql رو یاد بگیرم. میخواسم ببینم ایا باید قبلش یادگیری sql رو هم قوی کنم؟
با تشکر

cups_of_java
جمعه 22 خرداد 1394, 23:53 عصر
نیازی نیست کاملن با جزییات sql بدونید اما خب لازمه که sql و ویژگی هاش رو بدونید و تجربش کرده باشید تا بتونید هدف nosql رو درک کنید