اندر مزایای پایگاه داده های گراف محور و OrientDB

در روز های اخیر کاری داشتم که نیاز داشتم یکسری اطلاعات رو که باهم ارتباط دارند مدل کنم.بعد از کلی تفکر تونستم اونارو روی گراف وزن دار جهت دار مدل کنم.بعد اومدم توی برنامه ازش استفاده کنم.از قبل میدونم که گراف رو میتونم روی ماتریس مجاورت مدل کرد تا راحت تر ذخیره کنم ولی وقتی دقت کردم دیدم که از نظر حجم اطلاعات و سرعت بازیابی به مشکلات زیادی میخورم.همون موقع بود که یادم افتاد برای ذخیره اطلاعات به اشکال غیر مرسوم میتونم از NoSQL ها استفاده کنم.

حالا NoSQL ها چی هستند؟ در واقع چیز خاصی نیستند، به پایگاه داده هایی میگن که طی یک جنبش بزرگ به وجود اومدن  تا محدودیت های پایگاه داده های رابطه ای رو بردارند. راستش با گفتن خوب نمیتونید متوجه بشید و بیاد خودتون یکبار امتحانشون بکنید تا معنی واقعی محدودیت پایگاه داده های رابطه ای رو متوجه بشید.

خلاصه اینکه یک نوع از این پایگاه داده های جدید هم پایگاه داده های گراف محور یا Graph Based هستند.از معروف ترین این دیتابیس ها میشه به NEO4j اشاره کرد. ولی خب دیتابیس هایی هم هستند که از چند نوع از ساختار های NoSQL پشتیبانی میکنند مثل OrientDB که هم از حالت گراف پشتیبانی میکند و هم از سند-گرا که یکی دیگر از ساختار های NoSQL است.

خلاصه این که برای کار خودم از پایگاه داده OrientDB استفاده کردم تا گراف رو داخلش ذخیره کنم.خب قبل از این من توی C# به MS-SQL و توی PHP به MySql متصل شده بودم و باهاشون کار کرده بودم.ولی خب تا حالا با Java به هیج دیتابیسی وصل نشده بودم. پس این کار برای من دوتا جنبه تازه داشت. اول اینکه برای اولین بار داشتم توی جاوا به پایگاه داده متصل میشدم و دوم اینکه اولین تجربه من با دیتابیس OrientDB و در کل یکی از زیر شاخه های جنبش NoSQL بود.

خب اولین کاری که باید میکردم ساختن یک دیتابیس محلی در آدرسی هست که خودم میخوام تا برنامه بتونه باهاش در ارتباط باشه.

فقط برنامه برای کار کردن به چند تا از کتابخانه های OrientDB نیاز داره که توی پوشه /lib خود دیتابیس میتونید پیداشون کنید.

خب من به این فایل ها برای کتابخانه نیاز دارم و اونارو به اپلیکیشن خودم اضافه میکنم.

خب حالا بریم سر برنامه. اول از هر چیزی من نیاز دارم تا ایمپورتشون کنم:

حالا دیگه تمام چیزی که نیاز دارم این یک خط کده تا کل گراف رو وارد آبجکت graph بکنم:

همچنین باید هروقت کارم با دیتابیس تموم شد متود shutdown رو از گرافم اجرا کنم تا ارتباط قطع بشه.خب پس به صورت اصولی تر میام از ساختار try finally استفاده میکنم.

حالا میتونم داخل بخش try کد های مربوط به کار کردن با گرافم رو بنویسم. تقریبا کاری دیگه نمونده.

به مثال های زیر در کار با گراف دقت کنید تا دیگه من شرح ندم:

از نکات خیلی جالبش اینه که نیاز به sync کردن نیست و هر کاری میکنید مستقیما توی پایگاه داده اعمال میشه.همچنین OrientDB از زبانی شبیه به SQL برای Query های خودش استفاده میکنه که بیشتر فقط زمانی که میخوایم بر اساس یک الگوی خاص دنبال یک چیزی بگردی ازش استفاده میکنیم. برای استفاده از اون هم میتونید به صورت زیر استفاده کنید:

سعی کردم اینجا خیلی خلاصه به اصول کلی اشاره بکنم. اگه میخواستید بیشتر مطالعه کنید یا مثلا توی زبان های دیگه از این دیتابیس استفاده کنید میتونید به مستندات خودشون مراجعه کنید که آدرسشو اینجا میگذارم:

http://orientdb.com/docs/master/index.html

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *