پایگاه داده
اسلاید 1: پوپول مرجع دانشگاه ومدرسه WWW.pupuol.com
اسلاید 2: what is NO SQL and what is COUCH DBMS for ?Slides from: shahab ghafariپوپول مرجع دانشگاه ومدرسه WWW.pupuol.com
اسلاید 3: با فراگیر شدن اینترنت در سالهای اخیر و افزایش کاربران ، سیستمهای RDBMS جوابگوی نیازهای برنامهنویسان در حوزهی وب نبودند زیرا نیاز به نگهداری دادهها با حجم بالا و سرعت خواندن و نوشتن بالا از جمله نقاط ضعف سیستمهای RDBMS میباشد ، چرا که با افزایش شدید کاربران دادهها اصولا به صورت منطقی ساختار یکدست خود را جهت نگهداری از دست میدهند و به این ترتیب عملیات نرمال سازی منجر به ساخت جداول زیادی میشود که نتیجه آن برای هر کوئری عملیات Joinهای متعدد میباشد که سرعت خواندن و نوشتن را به خصوص برای برنامههای با گسترهی وب پایین میآورد.
اسلاید 4: پایگاه داده NOSQL عبارت است از not only sqlنسل بعدی پایگاه داده RDBMS که اصولا دارای چند ویژگی زیر می باشد :non-relational داده ها در این سیستم به صورت رابطه ای (جدولی)نمی باشد .Distributed داده ها به صورت توضیع شده نگهداری می شوند.open-source سیستم نرم افزاری متن باز می باشد .horizontal scalable پایگاه داده مقیاس پذیر به صورت افقی.
اسلاید 5: همانگونه که گفته شد این نوع پایگاه داده به منظور رفع نیازهای برنامههای با حجم ورود و خروج داده بسیار بالا (برنامههای مدرن وب فعلی) ایجاد شدند. شروع کار پیادهسازی این سیستمها در اوایل سال ۲۰۰۹ شکل گرفت و با سرعت زیادی رشد کرد و همچنین ویژگیهای کلی دیگری نیز به این نوع سیستم اضافه شد.
اسلاید 6: این ویژگی ها عبارتند از :Schema-free بدون شَما ، با توجه به برنامههای وبی فعلی ممکن است شمای نگهداری دادهها ( ساختار کلی ) مرتبا و یا گهگاهی تغییر کند. لذا در این سیستمها اصولا دادهها بدون شمای اولیه طراحی و ذخیره میشوند. ( به عنوان مثال میتوان در یک سیستم که مشخصات کاربران وارد سیستم میشود برای یک کاربر یک سری اطلاعات اضافی و برای کاربری دیگر از ورود اطلاعات اضافی صرفنظر کرد ، و در مقایسه با RDBMS به این ترتیب از ورود مقادیر Null و یا پیوندهای بیمورد جلوگیری کرد. کنترل اطلاعات الزامی توسط لایه سرویس برنامه انجام میشود. ( در زبان جاوا توسط jsr-303 و یاBean Validation ها)
اسلاید 7: easy replication support در این سیستم ، نحوهی گرفتن نسخههای پشتیبان و sync بودن نسخههای مختلف بسیار ساده و سر راست میباشد و سرور پایگاه داده به محض عدم توانایی خواندن و یا نوشتن از روی دیسک سراغ نسخهی پشتیبان میرود و آن نسخه را به عنوان نسخهی اصلی در نظر میگیرد. Simple API به دلیل متنباز بودن و فعال بودن Community این سیستمها APIهای ساده و بهینهای برای اکثر زبانهای برنامهنویس محبوب ایجاد شده است که در ادامه به آن می پردازیم .
اسلاید 8: eventually consistentدر سیستمهای RDBMS که دادهها خاصیت ACID را ( در قالب Transaction پیاده میکنند )، در این سیستمهای دادهها در وضعیت BASE قرار دارند که سرنام کلمات Basically Available ، Soft State ، Eventual Consistency میباشد.huge amount of data این سیستمها به منظور کار با دادههای با حجم بالا ایجاد شدهاند ، یک تعریف کلی میگوید اگر مقدار دادههای نگهداری شده در پایگاههای داده برنامه شما ظرفیتی کمتر از یک ترابایت داده دارد از پایگاه داده RDBMS استفاده کنید واگر ظرفیت آن از واحد ترابایت فراتر میرود از سیستمهای NOSql استفاده کنید.
اسلاید 9: انواع NOSQLدر حالت کلی پایگاهای داده NoSQL به ۴ دسته تقسیم میشوند که به ترتیب پیچیدگی ذخیرهسازی دادهها عبارتند از:•Key/Value Store Databases•Document Databases•Graph Databases•Wide column stores
اسلاید 10: Key/Value Store Databasesاین سیستم سادهترین حالت از دستهبندیهای NoSQL میباشد ، به طور کلی جهت استفاده در سیستمهایی است که دادهها متمایز از یکدیگر هستند و اصولا Availability و یا در دسترس بودن دادهها نسبت به سایر موارد نظیر پایائی اهمیت بالاتری دارد.پایه بانک های اطلاعاتی NOSQL را تشکیل داده و اهداف عمومی را دنبال می کنند .از این نوع بانک های اطلاعاتی ، در سکو های کاری ابری زیاد استفاده میشود
اسلاید 11: از پیادهسازیهای این نوع پایگاه داده به موارد زیر میتوان اشاره کرد:•Amazon SimpleDB•Memcached•Oracle Key/value Pair•Redis
اسلاید 12: Document Databasesبجای جداول، دارای بانکهای اطلاعاتی مختلفی هستند و در اینجا بجای ردیفها، سند یا document دارند. ساختار سندها نیز عموما بر مبنای اشیاء JSON تعریف میگردد (که البته این مورد الزامی نبوده و از هر محصول، به محصول دیگری ممکن است متفاوت باشد؛ اما عمومیت دارد). بنابراین هر سند دارای تعدادی خاصیت است (چون اشیاء JSON به این نحو تعریف میگردند) که دارای مقدار هستند. در نگاه اول، شاید این نوع اسناد، بسیار شبیه به key-value stores به نظر برسند. اما در حین تعریف اشیاء JSON، یک مقدار میتواند خود یک شیء کامل دیگر باشد و نه صرفا یک مقدار ساده. به همین جهت عدهای به این نوع بانکهای اطلاعاتی، بانکهای اطلاعاتی Key-value store سفارشی و خاص نیز میگویند.JSON=java script object notation
اسلاید 13: این نوع ساختار منعطف، برای ذخیره سازی اطلاعات اشیاء تو در تو و درختی بسیار مناسب است. همچنین این اسناد میتوانند حاوی پیوستهایی نیز باشد؛ مانند پیوست یک فایل به یک سند.از این دست بانکهای اطلاعاتی NoSQL، میتوان به CouchDB MongoDB RavenDB اشاره کرد
اسلاید 14: سایر مزایای Document stores که به پرکاربرد شدن آنها کمک کردهاند به شرح زیر هستند:- هر سند را میتوان با یک URI آدرس دهی کرد.- برای نمونه CouchDB از یک full REST interface برای دسترسی و کار با اسناد پشتیبانی میکند (چیزی شبیه به ASP.NET WEB API در دات نت). در اینجا با استفاده از یک وب سرور توکار و بکارگیری HTTP Verbs مانند Put، Delete، Get و غیره، امکان کار با اسناد وجود دارد.- اغلب بانکهای اطلاعاتی Document stores از JavaScript به عنوان native language خود بهره میبرند (جهت سهولت کار با اشیاء JSON )
اسلاید 15: در اینجا دو دیتابیس، بجای دو جدول وجود دارند. همچنین در مقایسه با بانکهای اطلاعاتی key-value، برای نمونه، مقدار خاصیت آدرس، خود یک شیء است که از دو خاصیت تشکیل شده است. به علاوه هر خاصیت Most_Recent یک Order، به سند دیگری در بانک اطلاعاتی Orders لینک شده است.
اسلاید 16: Graph databases Graph databases نوع خاصی از بانکهای اطلاعاتی NoSQL هستند که جهت ردیابی ارتباطات بین اطلاعات طراحی شدهاند و برای برنامههای شبکههای اجتماعی بسیار مفید هستند.در واژه نامه این بانکهای اطلاعاتی Nodes و Edges (اتصال دهندههای نودها) تعریف شدهاند. در اینجا نودها میتوانند دارای خاصیتها و مقادیر متناظر با آنها باشند.یکی از معروفترین Graph databases مورد استفاده، Neo4j نام دارد.
اسلاید 17:
اسلاید 18: Wide column stores Wide column stores دارای جداولی است که درون آنها ستونهایی قابل تعریف است. درون این ستونها که یادآور بانکهای اطلاعاتی رابطهای هستند، اطلاعات به شکل key-value با ساختاری متفاوت، قابل ذخیره سازی هستند. در اینجا هر ستون، میتواند شامل گروهی از ستونها که بر اساس مفاهیم جفتهای key-value کار میکنند، باشد.این نوع بانکهای اطلاعاتی عموما در سایتهای اینترنتی بسیار بزرگ و برنامههای «Big data» استفاده میشوند
اسلاید 19: BigTable گوگل که یک محصول اختصاصی و غیرعمومی است؛ اما جزئیات آن را به عنوان مقالات علمی منتشر کرده است.دنیای سورس باز به رهبری Yahoo، نمونه سورس باز BigTable را به نام Hbase ارائه داده است.در فیس بوک، از بانک اطلاعاتی دیگری به نام Cassandra استفاده میکنند. در اینجا به گروهی از ستونها super columns و جداول super column families گفته میشود.
اسلاید 20:
اسلاید 21: پوپول مرجع دانشگاه ومدرسه WWW.pupuol.com
اسلاید 22: پوپول مرجع دانشگاه ومدرسه WWW.pupuol.com
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.