پایگاهدادههای ستون-فامیل (Column-Family) : پایگاهدادههای ستون-فامیل نوعی از پایگاهدادههای جفت کلید-مقدار هستند. و شامل column،column family و super column هستند. ابرستون ها (super-columns) و ستون فامیل (column family) شمای پایگاهداده را تعیین میکنند. میتوان ستون و ابرستونهای جدیدی نیز به پایگاهدادهای قبلاً تولید است اضافه نمود. یکی از تفاوتهای پایگاهداده رابطهای با پایگاهداده ستون-فامیل این است که سطرهای(row) در پایگاهداده ستون فامیلی لزوماً نباید همدرجه باشند.یعنی میتوانند شمار متغیر و متفاوتی از ستونها و ابرستون ها را داشته باشند. ازاینرو پایگاهدادههای ستون فامیل در برنامههایی که با گردایه ای از دادههای پر تهی (spars) کار میکنند بسیار کارا هستند. نمونه ای از پیاده سازی ها :
Cassandra(Apache)
Hypertable
HBase
Dynamo
Riak
• پایگاهداده سندمحور : از مفهوم جفت کلید-مقدار استفاده میکند ولی ساختار خاصی را در ذخیرهسازی داده شبیه سند مانند XML و JSON اعمال میکنند که موجب ذخیره اطلاعات بیشتری درباره ساختار خود داده میشود که آن را نسبت به ستون-فامیل ها جستار پذیر تر میکند چراکه آنجا تنها جستار با یک کلید(key) یا بازه کلید (key range) امکانپذیر است[1] . پایگاهدادههای سندمحور با وجود شباهت ساختاری زیاد به پایگاه داده های جفت کلید/مقدار با آن ها دو تفاوت دارند: اول اینکه مقادیر پایگاهدادههای سندمحور معنایی(semantic)هستند و دوم اینکه می توانند از شاخصثانویه نیز استفاده کنند . MangoDB نمونهای از این مدل است که توسط شرکت 10gen توسعهیافته است. وقتی از پیادهسازی MangoDB پایگاهدادههای NoSQL ای استفاده میکنیم خبری از جداول و شماها در پایگاهداده نیست. MangoDB در عوض از "گردایه ها" (collection) ها که شبیه جداول هستند و نیز از "اسناد" (documents) که شبیه سطرها هستند برای ذخیرهسازی دادهها و اطلاعات شما (schema information) استفاده میکند. MangoDB بهصورت خودکار برای هر "سند" یک شناسهی کلید اصلی تولید(primary key id) میکند تا بهطور منحصربهفرد قابلشناسایی باشد. ازلحاظ مفهومی شناسه (id) و سند (document) شبیه جفت کلیدمقدار (key-value pair)است. MangoDB سعی میکند تا داده را بر حافظه نگاه دارد بنابراین دیگر نیاز به بازیابی (retrieve) دادههای از روی دیسک سخت (hard disk) نیست و زمان کمتری برای جستارها لازم نیاز است. یکی از مشکلات (caveat) زمانی است مجموعه داده بزرگتر از حافظه موجود (available memory) میگردد که در این صورت MangoDB مجبور به شروع کردن جستار از روی دیسک سخت خواهد شد. نمونه ای از پیاده سازی ها :
MangoDB(10gen)
CouchDB(Apache)
Riak
eXist
SimpleDB(Amazon)
Terrastore
Lotus Notes
Post #364
822
Forwarded from Deleted Account