پایگاهداده های گراف
در حالت کلی در پایگاههایدادهNoSQLدادهها در قالبKEY/VALUE (کلید/مقدار) نگهداری میشوند، به این صورت که مقادیر توسط کلید یکتایی نگاشت شده و ذخیره میشوند، هر مقدار صرفا توسط همان کلید نگاشت شده قابل بازگردانی میباشد و راهی جهت دریافت مقدار بدون دانستن کلید وجود ندارد. در این ساختارداده منظور از مقادیر، دادههای اصلی برنامه هستند که نیاز به نگهداری دارند و کلیدها نیز رشتههایی هستند که توسط برنامهنویس ایجاد میشوند.
بدیهی است که اعمال دادهای (درج، حذف، جستجو)در این سیستم به دلیل اینکه دادهها به صورت کلید/مقدار ذخیره میشوند دارای پیچیدگی زمانی o(1) میباشد که بهینهترین حالت ممکن به لحاظ طراحی میباشد. در الگوریتمهایی که دارای پیچیدگی زمانی با مقدار ثابت هستند کم یا زیاد بودن دادهها تاثیری در کارایی الگوریتم نداشته و همواره با هر حجم دادهای زمان ثابتی جهت پردازش نیاز میباشد.
۲-۲-۲-۱-مدل دادهای کلید/ارزش
این سیستم سادهترین حالت از دستهبندیهایNoSQL میباشد. این پایگاهداده بسیار شبیه به پایگاهداده سند گرا است، با این تفاوت که در این مدلداده ها تنها به صورت ارزشی کلید مقدار ذخیره می شوند، یعنی درون یک کلید مقدارهایی ذخیره میشوند و تمام اعمال روی پایگاهداده با توجه به همان کلید انجام می شود. یعنی توانایی جستجوی مقادیر درون کلیدها را نداریم.
به این صورت جفت ها به صورت کلید/مقدار ذخیره میشوند:
Color red
Age 18
Size large
Name smite
Title the brown dog title
مقدار سمت چپ کلید است و مقدار سمت راست ارزش. اما هنگامی که بخواهیم مقادیر زیادی را در یک پایگاهداده بزرگ ذخیره کنیم باید کلید ها را به شکلی ذخیره کنیم که در هنگام بازیابی بتوانیم مقدار مورد نظر خودمان را برگردانیم. مثلا به صورت زیر:
User1923_color red
User1923_age 18
User3371_color blue
User4344_color brackish
User1923_height 6’.”
User3371_age 34
در داده های بالا مشاهده میکنیم که با بهره گرفتن از کد کاربران کلیدها را تبدیل میکنیم به کلیدهای خاص که هنگام بازیابی بتوانیم از آنها استفاده کنیم.
مزیتی که این مدلداده نسبت به مدلهای رابطهای دارد این است که اگر فضای سرور پر شد و جایی برای ذخیره سازی نداشت می تواند داده ها را به سمت سرور دیگری هدایت کند. اما در پایگاهداده های رابطهای باید امکانات یک سرور را افزایش میدادیم.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
کارایی این نوع مدلداده برای قسمت casheکامپیوترها است. یعنی داده هایی را که زیاد از آنها استفاده میکنیم به صورت ذخیره سازی کلید/ارزش درون یک قسمتcashe کامپیوتر ذخیره میکنیم تا در مواقع ضروری به آنها مراجعه کنیم.
۲-۲-۲-۲-مدل دادهای سندگرا
این نوع ذخیره داده بسیار شبیه به مدل کلید/ارزش میباشد. در این نوع پایگاهداده، داده ها در قالب یک سند ذخیره میشوند. دادههایی که در این نوع پایگاهداده ها ذخیره میشوند نیمه ساخت یافتهاند. به عنوان مثال دو سند ممکن است مجموعه ای متفاوت از محتویات را داشته باشند. این یعنی اسناد طرح از پیش تعیین شدهای ندارند.در زیر چند مثال مشاهده میکنیم:
و
و
در سند اول اطلاعات کارمند را بدون جزئیات مشاهده میکنیم، در سند دوم اطلاعات را با جزئیات بیشتری و در سند سوم اطلاعاتی در مورد مکان مشاهده میکنیم.در هنگام ذخیره این داده ها باید یک شناسه با عناوین:
“docId": “SM1″,
و"docId": “MM2″,
و"docId": “Bangalore-SDC-BTP-CVRN”
به ابتدای اسناد اضافه کنیم.
یکی از بزرگترین مزیتهای این سیستم ذخیره سازی این است که در این سیستم اصولا نیازی به تعریف ساختار از قبل موجود نمیباشدزیرا شمای اطلاعات در طول زمان تکامل پیدا می کند و به محض اعلان دستور قرار دادن دادهها در پایگاهداده ساختار متناسب ایجاد میشود.
مدلداده های سندگرا نمی توانند روابط را پشتیبانی کنند بلکه تنها میتوانند با ذخیرهی شناسهی یک سند دیگر به آن سند اشاره کنند و نمی توانند برای روابط بین سندها چیزی را تعریف کنند.
علاوه بر مزیتهای ذخیره کلید/ارزش داده ها این نوع مدلداده می تواند بر اساس محتویات سندها نیز جستجو کند،یعنی برخلاف مدل کلید/ارزش که تنها بر اساس کلید میتوانست جستجو انجام دهد در این مدلداده نیز مورد پرس و جو قرار میگیرند.
۲-۲-۲-۳-مدل دادهای ستونی
در پایگاهداده های سنتی داده شکل جداولی که شامل ردیف و ستون بود ذخیره میشدند. اما ذخیره و بازیابی و پردازش به صورت ردیفی انجام میشد. اما در پایگاهداده های ستونی این اعمال به صورت ستونی انجام می شود. به عنوان مثال پایگاهداده زیر را در نظر بگیرید]۱۲[:
در این پایگاهداده اگر داده ها به شکل سنتی ذخیره شوند به شکل زیر است:
و اگر به شکل ستونی ذخیره شوند به این شکل است:
با توجه به دو شکل ذخیره سازی که در بالا نشان داده شده است متوجه میشویم به علت اینکه فرمت دادههایی که در یک ستوناند شبیه هم هستند از نظر فضای ذخیرهسازی شرایط بهتری داریم همچنین اعمالی مانند جمع، میانگین، تعداد، تعیین بزرگترین و کوچکترین را بهراحتی و در زمان کمتری انجام داد.در این نوع ذخیره داده بهراحتی میتوان ستونهای داده را افزایش داد.
۲-۲-۲-۴-پایگاهداده های گراف
پایگاهداده های گراف دارای زیر ساخت سادهای هستند که از دو نوع شی تشکیل شده است:گرهها و یال ها.یک گره عموما برای نمایش یک موجودیت مانند یک شخص در یک شبکه اجتماعی یک محل در یک شبکه حمل و نقل،یا یک صفحه وب در اینترنت استفاده می شود روابط بین این موجودیتها با یالها نمایش داده می شود که می تواند برای ارتباطات بین گرهها در نظر گرفته شود.به عنوان مثال اگر دو موجودیت بنامهای آلیس و باب با یکدیگر همکار هستند میتوانیم دو گره بسازیم که نمایانگر ارتباط بین این دو موجودیت باشد و به وسیله یال بین آنها نشان دهیم که این دو موجودیت با یکدیگر همکار هستند]۱۴[.
در مورد یک مدل حمل و نقل ما میتوانیم ۲ مکان را با گره ها نشان دهیم و ارتباط بین آنها را با بهره گرفتن از یال نمایش دهیم.
خصوصیات کلی مدلداده گراف به شرح زیر است]۹[:
گراف از گرهها و روابط و خواص تشکیل شده است.
گرهها شامل ویژگیها هستند. گرهها به عنوان داکیومنتهایی هستند که خصوصیات را به صورت جفت کلید/ارزش ذخیره کرده اند.
روابط گرهها را متصل می کنند.یک رابطه همیشه یک مسیر،یک برچسبو یک گره آغاز و یک گره پایان دارد (هیچ رابطهای آویزان نیست).
مانند گرهها روابط نیز دارای خصوصیات هستند و توانایی افزودن خصوصیات به روابط به ویژه برای تامین ابر داده های اضافی برای گراف مفید است.
در ادامه کاربرد گرهها و روابط را به طور خلاصه بیان مینماییم تا متوجه شویم چه زمانی از گرهها استفاده نماییم و چه زمانی از یالها. بطور کلی از گرهها برای موجودیتها و از روابط برای ساختار استفاده مینماییم. که تشریح آن به شرح ذیل میباشد:
از گرهها برای نمایش موجودیتهایی که در حوزه موارد مورد علاقه ما هستند استفاده میکنیم.
از روابط برای بیان ارتباطات بین اشخاص و ایجاد زمینه معنایی برای هر نهاد،در نتیجه ساختار دامنه استفاده می شود.
از جهت ارتباط برای روشن شدن بیشتر معنای روابط استفاده میکنیم.بسیاری از روابط غیرمتقارن می باشند.به همین دلیل است که روابط در یک گراف مالکیت همیشه مسیر دارد.