صفحه 1:
يويول مرجع داتشكاه و مدرسه 000
صفحه 2:
what is NO SQL and what is COUCH DBMS
fone ۳
ides from: shahab ghafari
صفحه 3:
با Ad OW LY در ساللهات افیر و فزایرکاربران ۰ سیستمهات
5 برنبگرت نیازهت برنامنویسان در موزدت وب نبورنم زیرا
نیاز بم گلهرفرت رارهها با مهم بالاو صرعک فوانرن و نوشتون بالالز مد
تقاط عف سیستمهات te RDBMS ؛ ره با یش شريم
کاربران رارهها ولا بء مورک منطقی سافتار یرسک فور را هیک CA
Ss ميرهنم و بم این ترتیمب عملیاک نرمال سازت نتم بم سافت
مرفول زیارت شور نتيهم Sens cy che OF 0111 [إهات
متعرر ميباش مک صرعک فوانرن و وشت را بم COE Cb A pith ©
کستردت وب پایین آورد:
صفحه 4:
not only sql » 2.12 NOSQL 2, بيك
سل RDBMS oy, 084 em مر fies 14 C4 زير ص باش :
non-relational" زارد ها در یتست سب مربب وت
(مودى نسب شر.
ide habe ap زارد ۵ بسب موبوتتوهيع Distributed"
سيستم نسم اخزهر ست هسار م باشر. Open-source"
ty & »» «ee, horizontal scalable"
Alpe
صفحه 5:
a SK im ین نوع پایگاه راره بم منظور رفعنیازهات برنابهات با
مجم ورود و فرو] زاره بسیار بالا (برنامهات مررن وب فعلی) #یهار شرنم
شرو کار پیارهصازت ین سیستمها در فوفیل سا 2008 كك ل كرفت و با
Soe زیارت رش مکرد و همچنین ويزّ حا تك ل زيكرت نيز بم فين نوع
ميستم اف شم
صفحه 6:
این ویوّلن ها عبارتنم لز :
"ع 1113-1 هب موز :با سوه سب بسر نانم« طوس
فسعلي سک زا کات نگیرف یراردا ( سافتا رکسلی) صرتبا و PEL
تسغيي ركستم دق زر ایزبیسته امولا زارد بسمو نت تاولیب طرامیو
زرد سيپشونم ( بسب عنوا نال سواعر كميست ملسب مشفعات
Ports سييستم wen بسع كسار CO fH LO,
Nei 0 AMEN spy Yb As py 1 6 و در مقایسب با
CON pra, ey Null بعري 1973 LE —E pd — RDBMS
pt لسریب be يمور بم كي كر سنت هلفلا ارا
631 در زبارچاوه عونط 5۲-303[ رب ( wine
(e Validation
صفحه 7:
replication support * ۷ بر این میستم ۰
نعوه تکرفنص نسفمهات پشتیبان و 5۱۲۷6 بورن نسفمهات فتلف بسیام
ساره و سر راسک ميباشم و صرور پایگاه راره بم معفرعرم توانايی فوانرن
ويا نوشتن فر روت ريسك سراغ نسفمت پشتیبان ميرود و آن نسفم را به
عنوان نسفمت #منلی در نفلم ميگیرد:
* ۸۴۱ 51100۱6 ب رین سبز بودن و فعال بودن
۷ مین سيستم حا هت ساره ر بپینبت برفت
AD زبانهات پرنامنویسرمعبوب فیهار شره اس کتک در قراس به كن ص
میم +
صفحه 8:
«RDBMS cone ,eventually consistent ®
پیاره Transaction ره ( یر وب ACID cups ory,
اه در ین سیستمحات رارهها در وضبیک 10056 قرف رفرنر/ سرنام ity
Basically Available .Soft State . sur
«ge Eventual Consistency
AL ps فیرچیسته huge amount of data®
ررد« عب مهم بسكلا ف يجار شررهانم »تس عری گنل موی رآگر مقللم
راربدهات سکپ زیت تشرد در ایکا دهات زارد بسسرنامب. شا رفیت یکسمتر لز ینک
فرفسقق Ahrens RDBMS oy, eh, yy ae —
rit astird NOS lemme 9 rye Ard — ly 9
صفحه 9:
NOSQL انودع
در هالک ی پایگاهات ربره |۱۱۵5 بم ۴ دستم تقمیم ميشون رکه بم
ترتیسب پیچي مگی زفیرهصازت YD Kile Or
۱۵۷/۷۵۱۷۵ 5۲0۲6 0۲۵0565۰
Document Databasese«
Graph Databasese
Wide column storese
صفحه 10:
Key/Value Store Databases
at tice NOSQL coepnay 9 Soe Ae فين ميستم
رفردها متمايز فز يريك FEM طو مکی مپک 4ستفاره در میستمهايي
ب mi Ooh ory ey Availability v0, a»
1 CMG Gnd 6G AB bp سایر
NOSQL joan co Ho 2G تکئیل زاره و #هراف عموی ره
Ap SEs
فز فين نوع باك هات لطلاعاس ؛ در و ها تکارت ابرت نربار استفاره میشور
صفحه 11:
لز پیارهازتهات یی نوع پایگاه رفره بم موفرد زیم ميتولان #شار هکر:
Amazon SimpleDBe
Memcachede
Oracle Key/value Paire
Redise
dna 60 ۷
مس
صفحه 12:
Document Databases
بجات مرارلی» رفرات بانگهات اطلاعاتی فتلفی هستتم و رر فینها بهات
abet 2 ope ce ip, document ¢ ~ win,
Li JSON jut cc, مگردد کم البتم yy Cn نبوره و #ز هر
God oho CL) (J pete og te) pete متفاوک باشم؛ ام عموبیک py
پتابرایزن هر سنر رلرات ععرارت فاهیک سک A DSON 4020 Gp)
این نعو تعریف م یگردنی) کم رهرات مقرهر هستتم. د رگگاه فول؛ شاير فين
نیو 00 بسیار شبیم بر 50۲6۵5 6۱۷-۷1116 ب نظر برسنر, ها
در مين JSON ut is یک مقرهر ميتوانم مود یک شي Lo pC
باشر و نم مررفا یگ مقرلر سارد. بم همین میک عردقت بم لین نوع بانگهات
pes ew Key-value store jos core isos
alee
JSON=java script object notation
صفحه 13:
ین نوع سافتار منعطف» برات زفیره سازت etd OMB تو در تو و درف
بسیار مناسب اسک. همهنین این اسنار مکواننم ماوت پیوسکهایی نیز
باشم؛ ماننم پیومک یگ فایل بم یگ Be
«oe NOSQL jos cory cH yt A
CouchDB *
MongoDB’
»—~»,co RavenDB*
صفحه 14:
سير مزفيات (Document stores ب .1 C07 Or
حکردهانم بم شرق زیم ستتم
eit URI 6 omy bw >-
full REST ~ »CouchDB .,.: ev, -
wed Cr) leg eget 9G Wy ay ev, interface
با هستفاره هر xd) (i Sy, ASP.NET WEB API
Put. 1 HTTP Verbs 260, 4, 4
ws 1983 006 i a , Delete, Get
»Document stores eu core 0 -
فرر بیرد Native language .y+. JavaScript
(JSON 020g cape pe) Aree
صفحه 15:
Document stores:
Database: Customers Database: Orders
Document 10: 101
First_Name: Vahid
Last_Name: Nasiti JpDocument 1D: 1501
Address:
Number: 123
Street: Somewhere
Orders
Most_Recent: 1501
Document 10: 202
First_Name: Al
Last_Name: Moshfegh
Address:
Number: 321 Item2: 217866
Street: Somewhere
Orders:
Most Recent: 1502
در ایتا دو ریتاییس بات دو ممول وگور رفرنم. همچنیل رر مقايسم ب COAG
Key-Value jou برت wigs نقرفر اميت #ررسوفور یک شیء
سک از رر ایک گیل شره سک. بم علوه هر فامیک
Order « Most_Recent . ~ ریگرت در باتک few
opt 4s Orders
صفحه 16:
Graph databases
POM نوع قاصى از Graph databases
فلاعط را یشردانرو Vi egletingt 572» NOSQL
س0 هتما بسسیار صفیم هستثم LIE Mes بسسراا
در وفئزه نام Jue) Edges , Nodes gross coe oy)
رهنرههات نورها) تعریش شردائم. رر Goad ورها م كوائر رثرات فامهي ته
و قاری متتاظر با #نها باشنم.
«a0,» Graph databases نی فر معروفترینن
Neo4j نام ورد
صفحه 17:
صفحه 18:
Wide column stores
Wide column stores رمرم یسب ررینتم
OME 750 Je SO et phar amg WF eg ستورج
Dolttoc eee —, key-value yo ceab parct by,
OS Nea Lp قابزنفیرد سازتهستنم در اینها هر ستوریسرکسوانم
wits wg —rkey-valueasicnnt rr عه
فين نوع بانکهات اللاعاتى عمودا رر ساينتحاك اينترن بسيار بزرك و
Arte var (Big datay coc,
APACHE
دح ورس |19 | 9 Cassandra
صفحه 19:
6 ۵۱099 رس > یک سسرل اقسامی و خیرعموس :هه
b CT De بم عنوان مقالات galt منتش رکرده MD
_ BigTable ~~, +: Yahoo co, 4p. eu»
امد ره مت. 6 (en
در فیمربوک؛ فز باتک فطلاحاتی زیگرت به نام »a@o Cassandra
منت در ينها بهگروهی 9 Super COIUMNS wy 2
ot, arsuper column families Yn.
صفحه 20:
Visual Gui
comeing
]
عم
ry caer)
ل
|
Riak اه
6
۱
ا
ا
صفحه 21:
ی
۱
پویول مرجع دانشگاه ومدرسه
صفحه 22:
WWW.pupuol.com
پوپول مرجع دانشگاه ومدرسه
+
what is NO SQL and what is COUCH DBMS
for
?
Slides from: shahab ghafari
پوپول مرجع دانشگاه ومدرسه
WWW.pupuol.com
+
با فراگیر شدن اینترنت در سالهای اخیر و افزایش کاربران ،سیستمهای
RDBMSجوابگوی نیازهای برنامهنویسان در حوزهی وب نبودند زیرا
نیاز به نگهداری دادهها با حجم باال و سرعت خواندن و نوشتن باال از جمله
نقاط ضعف سیستمهای RDBMSمیباشد ،چرا که با افزایش شدید
کاربران دادهها اصوال به صورت منطقی ساختار یکدست خود را جهت نگهداری
از دست میدهند و به این ترتیب عملیات نرمال سازی منجر به ساخت
جداول زیادی میشود که نتیجه آن برای هر کوئری عملیات Joinهای
متعدد میباشد که سرعت خواندن و نوشتن را به خصوص برای برنامههای با
گسترهی وب پایین میآورد.
+
پایگاه داده NOSQLعبارت است از not only sql
نسل بعدی پایگاه داده RDBMSکه اصوال دارای چند ویژگی زیر می باشد :
non-relationalدادFه Fها در اینسFیستمبFFFFFFه FصFورFترابFطه Fای
(FجFدوFلFی)نFFFFمیبFFFFFاشد .
DistributedدادFه Fها بFFFFFFه FصFورFتتFFFFFوضیع شFده FنFFFFگهFدارFیمFFیشFوند.
open-sourceسFیستمنFFFFرمافزارFیمFFتنبFFFFFاز مFFیبFFFFFاشد .
horizontal scalableپFFFFFایگFاه FدادFه FمFFقیFاس پFFFFFذیر بFFFFFFهF
FتFق .ی
صFور اف
+
همانگونه که گفته شد این نوع پایگاه داده به منظور رفع نیازهای برنامههای با
حجم ورود و خروج داده بسیار باال (برنامههای مدرن وب فعلی) ایجاد شدند.
شروع کار پیادهسازی این سیستمها در اوایل سال ۲۰۰۹شکل گرفت و با
سرعت زیادی رشد کرد و همچنین ویژگیهای کلی دیگری نیز به این نوع
سیستم اضافه شد.
+
این ویژگی ها عبارتند از :
Schema-freeبFFFFFدوFن َFش ما ،بFFFFFا تFFFFFوجFه FبFFFFFFه FبFFFFFرنامFهFهایوFبFی
استFماینFFFFگهFدارFیدادFهFها ( FساخFتFار کFFFFلی) مFFرتبا و یFFا گFFFFهگFاهی
فFFFFFعلیمFFمکن ش
تFFFFFFغییFر کFFFFنFد .لFFFFذا در اینسFیستمها اصوال FدادFهFها بFFFFFدوFنشFمایاوFلFیه FطFراحFیو
FلFیتFFFFFواندر یFFکسFیستمکFFFFه FمFFشخصFات
FوانFثFا مF
ذFخFیFره FمF FیشFوند F( .بFFFFFFه FعFن م
کFFFFارFبرانوارد سFیستممF FیشFود بFFFFFراییFFککFFFFارFبر یFFکسریاطFالFعاتاضافFیو بFFFFFرای
نFFFFظر کFFFFرد ،و در م FقFایسه FبFFFFFا
کFFFFارFبریدFیگFر از ورود اطFالFعاتاضافFیصFرف
تFFFFFرتیب ورود م FقFادFیر Nullو یFFا پFFFFFFیFوندهای
از
RDBMSبFFFFFFه Fاین
FعاتFلزامFیتFFFFFوسط الFFFFیه FسروFیس بFFFFFرنامFهF
FرلطFال ا
بFFFFFFیمورد جFلوگیFریکFFFFرد .کFFFFنت ا
انجاممF FیشFود F( .در زبانجFاوا تFFFFFوسط jsr-303و یFFاBean
Validationها)
+
easy replication support در این سیستم ،
نحوهی گرفتن نسخههای پشتیبان و syncبودن نسخههای مختلف بسیار
ساده و سر راست میباشد و سرور پایگاه داده به محض عدم توانایی خواندن
و یا نوشتن از روی دیسک سراغ نسخهی پشتیبان میرود و آن نسخه را به
عنوان نسخهی اصلی در نظر میگیرد.
Simple API به دلیل متنباز بودن و فعال بودن
Communityاین سیستمها APIهای ساده و بهینهای برای
اکثر زبانهای برنامهنویس محبوب ایجاد شده است که در ادامه به آن می
پردازیم .
+
eventually consistent در سیستمهای RDBMSکه
دادهها خاصیت ACIDرا ( در قالب Transactionپیاده
میکنند ) ،در این سیستمهای دادهها در وضعیت BASEقرار دارند که سرنام
کلمات Basically Available ، Soft State ،
Eventual Consistencyمیباشد.
huge amount of data اینسFیستمها بFFFFFFه FمFFنظور کFFFFار بFFFFFا
کFFFFلیمFFیگFFFFوید اگر م FقFدار
دادFهFهایبFFFFFا حFجمبFFFFFاFال ایجاد شFدهFاند ،یFFکتFFFFFFعFریف
دادFهFهاینFFFFگهFدارFیشFده Fدر پFFFFFایگFاهFهایدادFه FبFFFFFرنامFه FشFما ظFرفFیتیکFFFFمتFر از یFFک
Fیتن
دادFه Fدارد از پFFFFFایگFاه FدادFه RDBMS FاستفادFه FکFFFFنیFد واگر ظFرف آ
تFFFFFرابایت
فFFFFFراتر مFFیرود از سFیستمهای NOSqlاستفادFه FکFFFFنیFد.
از واحد تFFFFFرابایت
+
انواع NOSQL
در حالت کلی پایگاهای داده NoSQLبه ۴دسته تقسیم میشوند که به
ترتیب پیچیدگی ذخیرهسازی دادهها عبارتند از:
•Key/Value Store Databases
•Document Databases
•Graph Databases
•Wide column stores
Key/Value Store Databases
این سیستم سادهترین حالت از دستهبندیهای NoSQLمیباشد ،به
طور کلی جهت استفاده در سیستمهایی است که دادهها متمایز از یکدیگر
هستند و اصوال Availabilityو یا در دسترس بودن دادهها نسبت به
سایر موارد نظیر پایائی اهمیت باالتری دارد.
پایه بانک های اطالعاتی NOSQLرا تشکیل داده و اهداف عمومی را
دنبال می کنند .
از این نوع بانک های اطالعاتی ،در سکو های کاری ابری زیاد استفاده میشود
+
از پیادهسازیهای این نوع پایگاه داده به موارد زیر میتوان اشاره کرد:
•Amazon SimpleDB
•Memcached
•Oracle Key/value Pair
•Redis
+
Document Databases
بجای جداول ،دارای بانکهای اطالعاتی مختلفی هستند و در اینجا بجای
ردیفها ،سند یا documentدارند .ساختار سندها نیز عموما بر
مبنای اشیاء JSONتعریف میگردد (که البته این مورد الزامی نبوده و از هر
محصول ،به محصول دیگری ممکن است متفاوت باشد؛ اما عمومیت دارد).
بنابراین هر سند دارای تعدادی خاصیت است (چون اشیاء JSONبه
این نحو تعریف میگردند) که دارای مقدار هستند .در نگاه اول ،شاید این
نوع اسناد ،بسیار شبیه به key-value storesبه نظر برسند .اما
در حین تعریف اشیاء ،JSONیک مقدار میتواند خود یک شیء کامل دیگر
باشد و نه صرفا یک مقدار ساده .به همین جهت عدهای به این نوع بانکهای
اطالعاتی ،بانکهای اطالعاتی Key-value storeسفارشی و خاص
نیز میگویند.
JSON=java script object notation
+
+
این نوع ساختار منعطف ،برای ذخیره سازی اطالعات اشیاء تو در تو و درختی
بسیار مناسب است .همچنین این اسناد میتوانند حاوی پیوستهایی نیز
باشد؛ مانند پیوست یک فایل به یک سند.
از این دست بانکهای اطالعاتی ،NoSQLمیتوان به
CouchDB
MongoDB
RavenDBاشارFه FکFFFFرد
سایر مزایای Document storesکه به پرکاربرد شدن آنها
کمک کردهاند به شرح زیر هستند:
هر سند را میتوان با یک URIآدرس دهی کرد. برای نمونه CouchDBاز یک full REST interfaceبرای دسترسی و کار با اسناد پشتیبانی میکنFد (چیزی شبیه به
ASP.NET WEB APIدر دات نت) .در اینجا با استفاده از
یک وب سرور توکار و بکارگیری HTTP Verbsمانند Put،
Delete، Getو غیره ،امکان کار با اسناد وجود دارد.
اغلب بانکهای اطالعاتی Document storesاز JavaScriptبه عنوان native languageخود بهره
میبرند (جهت سهولت کار با اشیاء ) JSON
+
+
در اینجا دو دیتابیس ،بجای دو جدول وجود دارند .همچنین در مقایسه با بانکهای
اطالعاتی ،key-valueبرای نمونه ،مقدار خاصیت آدرس ،خود یک شیء
است که از دو خاصیت تشکیل شده است .به عالوه هر خاصیت
Most_Recentیک ،Orderبه سند دیگری در بانک اطالعاتی
Ordersلینک شده است.
+
Graph databases
هایاطFالFعاتی
Graph databasesنFFFوع خFاصیاز بFFFFFانک
FعاتFراحFیشFدهFاند و
بFFFFFFینطFال ط
ردFیابFیارFتباطات ا
NoSQLهستنFد کFFFFه FجFهت
بFFFFFرایبFFFFFرنامFهFهایشFبکهFهایاجFتماعیبFFFFFFسیFار مFFفیFد هستنFد.
در واژه نامه این بانکهای اطالعاتی Nodesو ( Edgesاتصال
دهندههای نودها) تعریف شدهاند .در اینجا نودها میتوانند دارای خاصیتها
و مقادیر متناظر با آنها باشند.
یکی از معروفترین Graph databasesمورد استفاده،
Neo4jنام دارد.
+
Wide column stores
ها
کFFFFه FدروFنآن
Wide column storesدارایجFداوFلFیاست
هایاطFالFعاتی
ها کFFFFه FیFFادآور بFFFFFانک
استدروFناینسFتFون
هاییقFFFFابFلتFFFFFFعFریف .
سFتFون
Fت
رابFطهFایهستنFد ،اطFالFعاتبFFFFFFه FشFکل key-valueبFFFFFا ساخFتFارFیمFFتفاو ،
ها
FونمFFیتFFFFFواند شFامFلگFFFFروFهیاز سFتFون
FلFخFیFره FسازیهستنFد .در اینجا هر سFت ،
قFFFFاب ذ
های key-valueکFFFFار مFFیکFFFFننFد ،بFFFFFاشد.
کFFFFه FبFFFFFر اساس مFFفاهیمجFفت
این نوع بانکهای اطالعاتی عموما در سایتهای اینترنتی بسیار بزرگ و
برنامههای « »Big dataاستفاده میشوند
+
+
BigTableگوگل که یک محصول اختصاصی و غیرعمومی است؛ اما
جزئیات آن را به عنوان مقاالت علمی منتشر کرده است.
دنیای سورس باز به رهبری ،Yahooنمونه سورس باز BigTableرا
به نام Hbaseارائه داده است.
در فیس بوک ،از بانک اطالعاتی دیگری به نام Cassandraاستفاده
میکنند .در اینجا به گروهی از ستونها super columnsو
جداول super column familiesگفته میشود.
+
WWW.pupuol.com
پوپول مرجع دانشگاه ومدرسه
WWW.pupuol.com
پوپول مرجع دانشگاه ومدرسه