<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>OvertCode</title>
	
	<link>http://overtcode.com</link>
	<description />
	<lastBuildDate>Sun, 13 Nov 2011 18:47:07 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Overtcode" /><feedburner:info uri="overtcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>علت ننوشتنم!</title>
		<link>http://feedproxy.google.com/~r/Overtcode/~3/P0WfC3MG3wk/</link>
		<comments>http://overtcode.com/category/%d8%b9%d9%84%d8%aa-%d9%86%d9%86%d9%88%d8%b4%d8%aa%d9%86%d9%85/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 18:47:07 +0000</pubDate>
		<dc:creator>علیرضا</dc:creator>
				<category><![CDATA[بانک اطلاعاتی]]></category>

		<guid isPermaLink="false">http://overtcode.com/?p=125</guid>
		<description><![CDATA[دوستان عزیز، متاسفانه بعلت مشغله ای که موقتا برام پیش اومده فعلا قادر به نوشتن پست های بعدی نیستم. اما نهایت سعیم رو می کنم تا در اولین فرصت ادامه بدم.]]></description>
			<content:encoded><![CDATA[<p>دوستان عزیز، متاسفانه بعلت مشغله ای که موقتا برام پیش اومده فعلا قادر به نوشتن پست های بعدی نیستم. اما نهایت سعیم رو می کنم تا در اولین فرصت ادامه بدم.</p>
<img src="http://feeds.feedburner.com/~r/Overtcode/~4/P0WfC3MG3wk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://overtcode.com/category/%d8%b9%d9%84%d8%aa-%d9%86%d9%86%d9%88%d8%b4%d8%aa%d9%86%d9%85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://overtcode.com/category/%d8%b9%d9%84%d8%aa-%d9%86%d9%86%d9%88%d8%b4%d8%aa%d9%86%d9%85/</feedburner:origLink></item>
		<item>
		<title>mongodb</title>
		<link>http://feedproxy.google.com/~r/Overtcode/~3/9S0-1q0sXO4/</link>
		<comments>http://overtcode.com/category/mongodb/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 05:46:30 +0000</pubDate>
		<dc:creator>علیرضا</dc:creator>
				<category><![CDATA[بانک اطلاعاتی]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[NOSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://overtcode.com/?p=97</guid>
		<description><![CDATA[این نوشته ی من مرتبط با موضوع پست قبلی یعنی بانکهای اطلاعاتی NoSQL هست و همونطوری که گفته بودم درباره ی mongodb می خوام بنویسم. انتخاب من از بین پروژه های NoSQL، مونگو دی بی هست. فکر می کنم mongodb خوراک توسعه دهنده های وب باشه. مخصوصا توسعه دهنده های PHP. البته منظورم این نیست<a class="rmore" href="http://overtcode.com/category/mongodb/">&#160;&#160; ادامه مطلب ...</a>]]></description>
			<content:encoded><![CDATA[<p dir="RTL">این نوشته ی من مرتبط با موضوع پست قبلی یعنی <a title="NoSQL" href="http://overtcode.com/archives/nosql/">بانکهای اطلاعاتی NoSQL </a>هست و همونطوری که گفته بودم درباره ی mongodb می خوام بنویسم. انتخاب من از بین پروژه های NoSQL، مونگو دی بی هست. فکر می کنم mongodb خوراک توسعه دهنده های وب باشه. مخصوصا توسعه دهنده های PHP. البته منظورم این نیست که مونگو فقط تعامل خوبی با زبان های تحت وب داره! این بانک اطلاعاتی قدرتمند بسیاری از زبان های برنامه نویسی (که لیستی از اون ها رو می تونید <a title="programming languages" href="http://www.mongodb.org/display/DOCS/Drivers">اینجا </a>مشاهده کنید) رو پشتیبانی می کنه. فقط بخاطر اینکه خودم با PHP راحت ترم و اینکه این بانک اطلاعاتی NoSQL واقعا  می تونه انتخاب خوبی برای توسعه دهنده های وب، بلاخص PHP کاران باشه، این حرف رو زدم. اصلا همه ی این طفره رویهای بی مورد بخاطر این بود تا به اینجا برسم که توضیحاتم درباره ی mongodb و ویژگی های اون رو می خوام با عنوان <strong>پنج چیزی که هر توسعه دهنده پی اچ پی</strong><strong></strong><strong> باید درمورد </strong><strong>mongodb</strong><strong>  بداند</strong><strong></strong>، شروع کنم.</p>
<p dir="RTL">قبل از شروع لازم می دونم تا تعریف کلاسیکی از این بانک اطلاعاتی در قالب دو جمله ارائه بدم؛</p>
<blockquote class="block">
<p dir="RTL">تعریف mongodb</p>
<p dir="RTL">بانک اطلاعاتی ای سندگرا که با اهدافی همچون مقیاس پذیری در قبال حجم عظیمی از داده ها و توسعه ی سریع ایجاد شد. طراحی و توسعه ی این پروژه ی <strong>متن باز</strong>،  توسط شرکت ۱۰gen انجام شده است.</p>
</blockquote>
<p dir="RTL"><a href="http://overtcode.com/wordpress/wp-content/uploads/2011/09/mongo-db-huge-logo.png"><img class="aligncenter size-medium wp-image-98" title="mongo-db-huge-logo" src="http://overtcode.com/wordpress/wp-content/uploads/2011/09/mongo-db-huge-logo-300x100.png" alt="" width="300" height="100" /></a></p>
<p dir="RTL">پنج موضوع درباره ی این پروژه متن باز که هر توسعه دهنده ی پی اچ پی (وبی)  باید بداند:</p>
<p dir="RTL">۱) mongodb، یک سرور مستقل</p>
<p dir="RTL">همچون mysql یا هر PostgreSQL دیگری، مونگو دی بی روی پُرت ها جهت دریافت ارتباط های ورودی listen می کند. این بانک اطلاعاتی تمامی ابزار پرس و جو مثل ایجاد، درج، حذف و بروزرسانی را در اختیار شما قرار می دهد. به عبارت دیگر  هر عملی که از یک بانک اطلاعاتی انتظار می رود، mongodb قادر به انجام آن می باشد، منظور همون پروسه ایجاد ارتباط، انجام انواع عملیات و در نهایت قطع ارتباط هست.</p>
<p dir="RTL">۲) خداحافظی با سطر ها و جدول ها</p>
<p dir="RTL">از این پس بجای اینکه داده هاتون رو در جدولها و سطرها ذخیره کنید (همونطورکه اینکار رو در RDBMSها می کردید)، عمل ذخیره سازی شما در قالب اسناد انجام خواهد شد. به عنوان مثال رکوردی که اطلاعات مربوط به یک مقاله را در خود جای داده و دارای فیلدهایی همچون عنوان مقاله، نویسنده های مقاله، محتوا (body) و برچسب های مربوطه می باشد را در نظر بگیرید، شیوه ی دخیره سازی این داده در mongodb بهمراه درایور php به شکل زیر خواهد بود:</p>
<div style="text-align: left; direction: ltr;">
<p>&nbsp;</p>
<pre><p>
								<pre class="Plum_Code_Box"><code class="php">&lt;?php

 array(

 'title' =&gt; 'Hello World',

 'authors' =&gt; array('John', 'Sally', 'Jim'),

 'body' =&gt; 'Hello world',

 'tags' =&gt; array('tag1', 'tag2', 'tag3')

 );

 ?&gt;</code>
									</pre>
							</p></pre>
</div>
<p dir="RTL">نکته ی قابل توجهی که در مثال بالا دیده میشود این است که این رکورد که در قالب یک آرایه است بصورت یک سند ذخیره شده و مشاهده می کنید که هر فیلدی از آن قادر به پذیرفتن مقادیر چندتایی می باشد و موضوع مهم دیگر اینکه نیازی به نرمالسازی داده ها و نهایتا تجزیه یک جدول به چندین جدول مجزا نیست چراکه در mongodb اصلا جدولی در کار نیست تا با مشکلاتی نظیر افزونگی داده ها(redundancy)، مقادیر تهی(null values) و&#8230; مواجه شویم. حالا بجای اینکه ذخیره سازی همین اسناد ما به درون جداول صورت بگیرد، مجموعه یا collectionهایی مورد استفاده قرار می گیرد که ممکن است تصور و حدس همه ما از این کالکشن ها، لیستی از اسناد باشد. خوب اگر حدس شما هم اینچنین بوده، که ایول! درست حدس زدید!</p>
<p dir="RTL">۳) mongodb، با اسکیمایی (schema) کاملا متفاوت</p>
<p dir="RTL">طراحی اسکیما در مونگودی بی بسیار متفاوت از طراحی اسکیما در بانکهای اطلاعاتی رابطه ای است، طراحی اسکیما بعنوان مهمترین و اولین قدم در راستای ایجاد برنامه ی کاربردی مورد نظرمان یک مسئله اجتناب ناپذیر است. در این بانک اطلاعاتی هم طراحی اسکیما، نه تنها تابعی از داده هایی است که قرار است مدل شوند بلکه به use caseهای ما نیز وابسته است. عادت کردن به این مدل متفاوت برای کسانی که مدت طولانی با بانکهای اطلاعاتی رابطه ای و نظام مند سروکار داشته اند، شاید کمی دشوار باشد.</p>
<p dir="RTL">در mongodb بجای اینکه رکوردهای موجود در تاپل های شما در ستون های موردنظرتان ذخیره شوند، هر رکورد در یک سند ذخیره خواهد شد. تقریبا چیزی شبیه به قرارگیری یک فایل در سیستم فایل را درنظر بگیرید. حال همین سند هر داده ای را که بخواهد، قادر به ذخیره سازی آن است، پس می بینیم که مونگو نمی تواند از اسکیمایی مشابه اسکیمای بانک های اطلاعاتی رابطه ای پیروی کند.</p>
<p dir="RTL">باتوجه به ویژگی سندگرا بودن مونگودی بی و مطالبی که درباره ی ذخیره سازی داده ها در قالب آرایه که در موضوع شماره ۲ مورد بحث قرار گرفت، شاید سوالی در ذهنمان پیش بیاید که آیا ساختار اسناد باید همیشه در قالب آرایه ها به همین شکل، ساده و احمقانه باشد؟ خیر، همانطور که می دانید با استفاده از تکنیکی بنام شی گرایی می توانید همان تعریف یک مقاله به همراه تمامی فیلدهایش را بروی یک سند تنها با فراخوانی یک شی ای از آن به درون بانک اطلاعاتی تان انجام دهید. منظور این که بهره گیری از قابلیت شی گرایی براحتی امکان پذیر است. توضیحات کامل چگونگی این عملیات را در پست های بعدی خدمتتون خواهم گفت. گفتن این مطالب کوتاه و ناقص صرفا بخاطر این هست که شمه ای از قابلیت های این بانک اطلاعاتی رو برای شما نمایان کنم.</p>
<p dir="RTL">سوال دیگری که برایمان پیش می آید درمورد تعریف انواع داده ای در این بانک اطلاعاتی است، تعریف داده ها در mongodb بشکل نوع داده ای اجباری سیستم (type coercion system) می باشد. در این نوع تعریف داده ای، شما قرار نیست در کوئری مونگو نوع داده ای خودتان را مشخص کنید، این کار توسط driver یا همان زبانی که قرار است با بانک اطلاعاتی شما تعامل داشته باشد، انجام می شود.</p>
<blockquote class="block">
<p dir="RTL">نکته: نوع داده ای اجباری سیستم، تکنیکی است که در آن عمل تبدیل نوع توسط کامپیوتر و بدون دخالت کاربر انجام می شود. این کار بخاطر سازگار کردن داده ها با کد اجرایی موردنظر صورت می گیرد. بعنوان مثال زمانی که داده ی ورودی ما از نوع شناور(float) است و ما نیاز داریم تا خروجی موردنظرمان از نوع صحیح(integer) باشد، این تبدیل نوع انجام می پذیرد.</p>
</blockquote>
<p dir="RTL">۴) عدم نیاز شما به یادگیری سایر زبان های پرس و جو</p>
<p dir="RTL">در mongodb نیازی به درگیری با عملیاتی همچون ایجاد لایه های انتزاعی و یا استفاده از لایه ی پیچیده ORM جهت نگاشت به زبانهای شی گرایی نیست و می تونید اونها رو کاملا کنار بگذارید. از طرفی نیاز شما به استفاده از زبان کوئری نویسی مونگو بویژه زمانی که از درایور php این بانک اطلاعاتی استفاده می کنید ، بطور قابل توجهی کاهش پیدا می کند، به این شکل که در بسیاری از موارد شما اطلاعات خود را در قالب آرایه ی php وارد بانک اطلاعاتی مونگو می کنید و آرایه ای از اسناد را تحت عنوان مقدار بازگشتی دریافت می کنید. اما در مورد کوئری های پیچیده هم باید بگم که اگر می خواهید کوئری های بسیار پیچیده ای همچون عملیات map-reduced را اجرا کنید، می توانید از توابع javascript درون مونگودی بی استفاده کنید، اسکریپت های نوشته ی شما توسط موتور داخلی جاوا اسکریپت در مونگو اجرا خواهند شد.</p>
<p dir="RTL">۵) php و mongodb</p>
<p dir="RTL">درحال حاضر php بطور کامل و قدرتمندانه ای از mongodb پشتیبانی می کند، درایور مونگو برای زبان پی اچ پی بصورت اکستنشن PECL موجود و نصب آن بسادگی انجام می شود. این extension پایدار این امکان رو به شما می دهد تا اکثر عملیات معمول کوئری نویسی را بواسطه ی دسترسی به بانک اطلاعاتی mongodb انجام بدید.</p>
<p dir="RTL">به نظرم قبل از شروع کار با مونگو دی بی بهتر بود که این مطالب گفته بشه تا دید بهتر و درک جامع تری از این پروژه متن باز و NoSQL پیدا کنیم، که البته امیدوارم مفید واقع شده باشه! سعی می کنم بزودی پست بعدی رو درباره نصب و راه اندازی mongodb بنویسم تا هرچه زودتر از این حالت تشریفاتی و کلاسیک خارج بشیم.</p>
<p>منابع <a title="php-mongo" href="http://technosophos.com/content/mongodb-5-things-every-php-developer-should-know-about-mongodb">۱</a> <a title="mongodb" href="http://mongodb.org">۲</a></p>
<img src="http://feeds.feedburner.com/~r/Overtcode/~4/9S0-1q0sXO4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://overtcode.com/category/mongodb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://overtcode.com/category/mongodb/</feedburner:origLink></item>
		<item>
		<title>NoSQL</title>
		<link>http://feedproxy.google.com/~r/Overtcode/~3/et18M4IkvfA/</link>
		<comments>http://overtcode.com/category/nosql/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 17:01:44 +0000</pubDate>
		<dc:creator>علیرضا</dc:creator>
				<category><![CDATA[بانک اطلاعاتی]]></category>
		<category><![CDATA[DataBase]]></category>
		<category><![CDATA[NOSQL]]></category>

		<guid isPermaLink="false">http://overtcode.com/?p=30</guid>
		<description><![CDATA[واژه ی NoSQL ای که این روزها بیشتر در موردش می شنویم، در سال ۱۹۹۸ پدیدار شد، خیلی ها فکر می کنند این پدیده وجود SQL رو قراره زیر سوال ببره. اما اینطور نیست! NoSQL مخفف عبارت Not Only SQL یا نه تنها اسکیوئل هست، با دیدن این عبارت یه چیزهایی می شه ازش برداشت کرد،<a class="rmore" href="http://overtcode.com/category/nosql/">&#160;&#160; ادامه مطلب ...</a>]]></description>
			<content:encoded><![CDATA[<p>واژه ی NoSQL ای که این روزها بیشتر در موردش می شنویم، در سال ۱۹۹۸ پدیدار شد، خیلی ها فکر می کنند این پدیده وجود SQL رو قراره زیر سوال ببره. اما اینطور نیست! NoSQL مخفف عبارت Not Only SQL یا نه تنها اسکیوئل هست، با دیدن این عبارت یه چیزهایی می شه ازش برداشت کرد، اما هدف اصلی این شعار این بوده که این دو تکنولوژی بگونه ای با یکدیگر همزیستی مسالمت آمیز داشته باشند و هرکدوم جایگاه خودشون را حفظ کند. جنبش NoSQL چند سال اخیر همواره در اخبار فن آوری حضور داشته، بطوریکه درمیان بسیاری از بزرگان web2.0  از جایگاه مناسب و محکمی با عنوان تکنولوژی NoSQL برخوردار شده. امروزه شرکت های بزرگی همچون فیس بوک، تویتر، دیگ، آمازون، گوگل و&#8230; هر یک به طریقی از این تکنولوژی استفاده می کنند.</p>
<p><a href="http://overtcode.com/wordpress/wp-content/uploads/2011/09/nosql2.png"><img class="aligncenter" style="border: 2px solid #999999;" title="nosql" src="http://overtcode.com/wordpress/wp-content/uploads/2011/09/nosql2.png" alt="" width="286" height="135" /></a></p>
<p dir="RTL"><strong>ظهور </strong><strong>NoSQL</strong><strong> براساس نیاز</strong></p>
<p dir="RTL">موارد زیر دغدغه هایی در عرصه ذخیره و بازیابی اطلاعات بود که موجب ظهور بانک های اطلاعاتی NoSQL شد.</p>
<p dir="RTL">ذخیره سازی داده ها</p>
<p>در حال حاضر  حجم داده های دیجیتالی ذخیره شده دنیا در مقیاس Exabyte است، یک اگزابایت معادل یک میلیارد گیگابایت از داده هاست. طبق آمار وبسایت internet.com، میزان کل داده های ذخیره شده در سال ۲۰۰۶، حدود ۱۶۱ اگزابایت بوده است و تنها بعد از ۴ سال یعنی ۲۰۱۰ میزان این داده های ذخیره شده تقریبا به ۱۰۰۰ اگزابایت رسید، یعنی افزایشی ۵۰۰% داشته اشت. به عبارت دیگر حجم گزافی از داده ها در دنیا همواره در حال ذخیره شدن هستند و همچنان بدون وقفه به رشد خود ادامه می دهد.</p>
<p dir="RTL"><strong></strong>پیوستگی داده ها</p>
<p dir="RTL">این روزها ارتباط بین داده ها در دنیای وب بیشتر و بیشتر می شود، همانطور که می دانیم رشد و بارور شدن پدیده ی وب وابسته به پیوندها (hyperlink) بوده است، بلاگ ها از تکنیک پینگ بک استفاده می کنند و شبکه های اجتماعی با بهره گرفتن از تگ ها همه چیز رو بهم گره می زنند، خلاصه اینکه امروزه سیستم های بزرگ بصورت بهم پیوسته ساخته می شوند.</p>
<p dir="RTL"><strong></strong>ساختار پیچیده  داده ها</p>
<p dir="RTL">بانک های اطلاعاتی NoSQL به راحتی قادر به مدیریت ساختار تودرتو و سلسله مراتبی داده ها هستند، در صورتی که برای انجام چنین عملی در بانک های اطلاعاتی SQL ما به چندین جدول رابطه ای با انواع کلیدها نیاز داریم که البته کارمون کمی سخت میشه! بعلاوه ما می دانیم که بین اصل کارایی در امر ذخیره سازی و پیچیدگی داده ها رابطه ی مستقیم وجود دارد. خوب طبیعتا در چنین وضعیتی که قرار باشه از بحث مدیریت بانک های اطلاعاتی رابطه ای (سنتی) بهره بگیریم، کارائی ما کاهش پیدا می کنه، چراکه نگاه ما به ذخیره ی حجم انبوه و متنوعی از داده های موردنیاز در شبکه های اجتماعی، وب معنایی و&#8230; است.</p>
<p>&nbsp;</p>
<p dir="RTL"><strong>NoSQL چیست؟</strong></p>
<p dir="RTL">برای تعریف NoSQL، من فکر می کنم بهتره از این حیث بررسی کنیم که NoSQL چه چیزی نیست؟ یعنی یه جورایی از فرض خلف به مفهومش برسیم. این تکنولوژی، SQL نیست و بصورت رابطه ای هم نیست. همانطور که از نامش پیداست جایگزینی برای مدیریت بانک های اطلاعاتی رابطه ای (RDBMS)  هم نیست، اما آنرا پیاده سازی می کند! NoSQL برای ذخیره سازی داده ها بصورت توزیع شده، جایی که حجم داده های ما در مقیاس بالا باشد، وارد میدان می شود. به عنوان مثال فیسبوک با ۷۰۰,۰۰۰,۰۰۰ کاربرش یا تویتر که متحمل حجم داده ای در مقیاس ترابایت در هر روز می باشد، را در نظر بگیرید.</p>
<p>&nbsp;</p>
<p dir="RTL"><strong>دنیای کنونی </strong><strong>NoSQL</strong><strong> به چهار دسته منشعب می شود:</strong></p>
<p dir="RTL"><strong>ذخیره به روش مقدار-کلید  </strong>اساس این روش در درجه ی اول به <a title="Amazon dynamo paper" href="http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf">آمازون دینامو</a> برمی گردد که در سال ۲۰۰۷ ایجاد شد. ایده ی اصلی این روش از وجود جداول هش نشأت می گیرد، همانطورکه می دانیم در این ساختار یک کلید یکتا و یک اشاره گر داریم که به یک داده ی خاصی اشاره می کند. لازم به ذکر است که در این روش نگاشت معمولا جهت بیشینه کردن کارایی از مکانیزم کش (cache) استفاده می شود.</p>
<p dir="RTL"><strong>ذخیره به روش ستون گرا</strong> برای ذخیره و پردازش حجم انبوهی از داده های توزیعی برروی چندین ماشین استفاده می شود. در این روش نیز از کلیدها استفاده شده است، اما این بار کلیدها به چند ستون اشاره می کنند.</p>
<p dir="RTL"><strong>بانک های اطلاعاتی سندگرا</strong> که از <a title="Lotus Notes" href="http://newtech.about.com/od/onlinecollaboration/tp/Top-5-Office-Collaboration-Tools.htm">لوتوس نتز</a> الهام گرفته و عملکرد آن شبیه به روش ذخیره ی مقدار-کلید است. این مدل اساسا مجموعه ای از اسناد اندیس گذاری شده است. این نوع بانک اطلاعاتی اسناد را در فرمت های Yaml، Xml، Json ذخیره می کند.</p>
<p dir="RTL"><strong>بانک های اطلاعاتی گراف گونه </strong>اجزای تشکیل دهنده این بانک اطلاعاتی نودها هستند و اساس آن از ساختار گراف ها الهام گرفته و بجای بهره گیری از جداولی متشکل از سطرها وستونها و ساختار سخت SQL،  مدل گراف گونه انعطاف پذیر مورد استفاده قرار گرفته تا بسادگی قادر به گسترش و مقیاس پذیری برروی ماشین های متعدد باشند.</p>
<p>&nbsp;</p>
<p dir="RTL"><strong>گردانندگان اصلی </strong><strong>NOSQL</strong><strong> </strong></p>
<p dir="RTL">برخی از پروژه های معتبر بانک های اطلاعاتی NOSQL به شرح زیر می باشند:</p>
<p dir="RTL"><strong>Dynamo</strong><strong>: </strong><a title="dynamo" href="http://aws.amazon.com/">دینامو</a> توسط Amazon.com ایجاد شد و برجسته ترین بانک اطلاعاتی NoSQL به روش مقدار-کلید است. شرکت آمازون نیازمند به یک پلتفرم توزیعی مقیاس پذیر بود تا پاسخگوی فعالیت های تجاری آنها در ابعاد بزرگ باشد.</p>
<p dir="RTL"><strong>Cassandra</strong><strong>: </strong><a title="cassandra" href="http://cassandra.apache.org/">کاساندرا</a>، پروژه ای که توسط شرکت بزرگ فیسبوک بصورت متن باز ارائه شد و در زمره ی بانک های اطلاعاتی NoSQL ستون گرا قرار دارد.</p>
<p dir="RTL"><strong>BigTable</strong>: <a title="BigTable" href="http://labs.google.com/papers/bigtable.html">بیگ تیبل</a> یک بانک اطلاعاتی ستون گرای که مختص به شرکت گوگل می باشد و این شرکت استفاده از آن را تنها در صورت تعامل با Google App Engine مجاز می داند.</p>
<p dir="RTL"><strong>SimpleDB</strong><strong>: </strong><a title="simpledb" href="http://aws.amazon.com/">سیمپل دی بی</a> یکی دیگر از بانک های اطلاعاتی آمازون محسوب می شود.</p>
<p dir="RTL"><strong>CouchDB</strong><strong>: </strong><a title="couchdb" href="http://couchdb.apache.org/">کوچ دی بی</a> به همراه <a title="mongodb" href="http://mongodb.org">mongodb</a> پروژه های متن بازی می باشند که بصورت سندگرا عمل می کنند و به سرعت در حال رشد می باشند.</p>
<p dir="RTL"><strong>Neo4J</strong><strong>: </strong> یک پروژه متن باز که بانک اطلاعاتی گراف گونه محسوب می شود.</p>
<p><strong>روش پرس و جوی </strong><strong>NoSQL</strong></p>
<p>چگونگی نوشتن کوئری ها در بانک اطلاعاتی NoSQL سوالی است که همواره برای توسعه دهندگان جالب بوده (البته قبل از رسیدن به پاسخشون!). خوب، بعد از همه ی این صحبت ها، اگر شما نتوانید داده های ذخیره شده ی خام در این بانک های عظیم اطلاعاتی را واکشی کنید و نهایتا آنها را به طریقی در اختیار کاربران نهایی یا سرویسهای وبی قرار بدید، طبیعتا این داده ها به هیچ درد شما نمی خورند. NoSQL همچون SQL، از یک زبان پرس و جوی اعلانی سطح بالا برخوردار نیست. در عوض دارای یک زبان پرس و جوی مدل-داده ای (Data-Model) مشخص می باشد.</p>
<p dir="RTL">نتیجه اینکه سازمان ها یا شرکت هایی که همواره در حال ذخیره سازی حجم عظیمی از داده ها هستند باید نگاهشون رو به NoSQL بطورجدی تری معطوف کنند، چراکه RDBMSها قادر به پردازش اطلاعات در  مقیاس بالا نیستند و البته موضوع فقط به بحث مقیاس پذیری ختم نمی شه، بد نیست این <a title="سر و کله زدن با دیتابیس‌های حجیم MySQL" href="http://farhadi.ir/blog/1389/08/13/dealing-with-large-mysql-databases/">مقاله مفید و خوب</a> رو که درباره ی دردسرهایی که هنگام کارکردن با بانکهای اطلاعاتی SQL (در این مقاله mysql مورد بحث قرار گرفته) ممنکه باهاش مواجه شیم رو مطالعه کنید تا چرایی ظهور NoSQL براتون ملموس تر شه. از طرفی باید این موضوع را در نظر داشته باشیم که  SQL جایگاه خودش را همچنان حفظ خواهد کرد و همواره پاسخگوی نیاز سازمان ها و شرکت های کوچک خواهد بود.</p>
<p>&nbsp;</p>
<p dir="RTL">همونطور که بالا هم اشاره شد، در پست بعدی سعی می کنم تا درباره یکی از پروژه های متن باز NoSQL به نام mongodb بنویسم که البته بحث هم فنی تر خواهد شد!</p>
<p dir="RTL">منبع: <a title="NoSQL" href="http://newtech.about.com/od/databasemanagement/a/Nosql.htm">۱</a></p>
<img src="http://feeds.feedburner.com/~r/Overtcode/~4/et18M4IkvfA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://overtcode.com/category/nosql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://overtcode.com/category/nosql/</feedburner:origLink></item>
	</channel>
</rss>

