دیتابیس Neo4j

گراف دیتابیس چیست ؟پایگاه داده‌های گراف یک راه حل بسیار قدرتمند برای ذخیره سازی و جستجوی داده‌هایی هستند که در آن‌ها ارتباطات اهمیت بیشتری نسبت به داده‌ها اصلی دارند (مانند Facebook و Twitter) . با رشد روز افزودن داده‌ها و تنوع انوع داده‌ها، نیاز به ایجاد بسترهای جدید ذخیره سازی و آنالیز آنها بیشتر احساس شد، بسترهایی که داده‌های نامنظم را با از دست ندادن انعطاف پذیری، حفظ سطح بالای عملکرد و اطمینان از مقیاس پذیری داده‌ها به طور مؤثر، نگهداری کنند، این مشکلی است که بانک‌های اطلاعاتی رابطه‎ای نمی‎توانند از عهده آن برآیند.ما در زنجیره مقاله‌هایی که در آینده منتشر خواهد شد، محبوب ترین پایگاه داده‌های گراف را تجزیه و تحلیل می‌کنیم. این پایگاه داده‌ها عبارتند ازArango DB ، Neo4J و Orient DB ما مهمترین ویژگی‌ها را برای گراف دیتابیس‌ها بررسی خواهیم کرد و نهایتا به شما خواهیم گفت که برای انتخاب یک گراف دیتابیس مناسب چه پارامترهایی را در نظر بگیرید . امروزه، حجم داده‌ها به صورت تصاعدی در شبکه‌های اجتماعی مانند فیس بوک و توییتر و در سطح اینترنت در حال رشد هستند که روزانه مقادیر انبوهی از داده‌ها را ذخیره و پردازش می‌کنند، جایی که این داده‌ها در حجم پتا بایت ذخیره می‌شوند. بانک‌های اطلاعاتی رابطه ای و معمولی که در بازار هستند در پردازش و سازگاری با این حجم عظیم از داده ها ضعیف هستند و ضعیف عمل کرده‌اند. به همین دلیل، نوع خاصی از بانک‌های اطلاعاتی به وجود آمد که آنها را بانک اطلاعاتی گراف می‌نامیم. گراف دیتابیس‌ها را می‌توان یکی از گروه‌های پایگاه داده غیر رابطه‌ای دانست که یک راه حل موثر و کارآمد را برای ذخیره اطلاعات در سناریوهای فعلی، جایی که داده‌ها به طور فزاینده‌ای به هم پیوسته و وابسته هستند، ارائه می‌دهد.مکانیسم‌های ذخیره سازی در پایگاه داده‌های گراف برای ذخیره سازی به شکل نمودار بهینه شده‌اند ، یعنی ذخیره کردن سوابق و روابط مرتبط و نزدیک به هم. اصطلاحا یک لیست مجاورت برای هر یک از راس‌ها و گروه‌ها تشکیل می‌شود که این لیست شامل اشاره گرها و ارتباطات آن نود به نودهای همسایه هست، از این خاصیت و این شیوه ذخیره سازی به عنوان مجاورت عاری از شاخص نام برده می‌شود (رابینسون و همکاران، 2015). علاقه به مدل‌های گراف به دلیل کاربردهای آن‌ها در مباحثی مانند وب کاوی و تحلیل شبکه‌های اجتماعی در سال‌های اخیر رو به افزایش بوده است (دیتریش و همکاران، 2008). این نوع بانک اطلاعاتی به راحتی قابل درک هستند زیرا مفهوم آن‌ها براساس تئوری نمودارها و گراف ها است. این مدل دیتابیس ها و این تئوری اساساً براساس گراف‌هایی بنا شده است، که از ساختارهای ریاضی برای مدل سازی روابط بین اشیاء استفاده می‎کنند. ما در مقاله‌های آتی بیشتر راجع به مفاهیم اساسی گراف صحبت خواهیم کرد اما این را بدانید که یک گراف در اصل یک ساختار است که به وسیله نودها نمایش داده می‎شود، همچنین ما آنها را Vertex و یا موجودیت نیز می‎توانیم نامگذاری کنیم. نودها به وسیله خطوطی که ما آنها را اصطلاحا یال و یا ارتباط می‌نامیم به هم وصل شدند که می‎توانند یک سری خصوصیت را در قالب Propertyهای مختلف در خود نگه داری کنند. بنابراین گراف دیتابیس‌ها می‎توانند خیلی به راحتی ذخیره سازی و نمایش داده‌ها را توسط این سه ساختار نمایش دهند vertex و edge , property به ترتیب ( نود ، یال ، خصوصیت)به همین دلیل گراف دیتابیس‌ها راه حل بهینه ای برای ذخیره سازی و پرس و جوهای مبتنی بر گراف هستند. مشکلی که در بانک‌های اطلاعاتی گراف وجود دارد این است که آنها در نمایش برخی از داده‌هایی که از مدل‎های رابطه‌ای حاصل می‌شوند، کارآیی چندانی ندارند. بنابراین، آنها نمی‎توانند جایگزین پایگاه داده‌های رابطه‌ای شوند، اما در واقع یک راه حل کارآمد هنگام برخورد با حجم عظیمی از داده‌ها هستند که حاوی بسیاری از داده‌های مرتبط هستند.مهمترین مزیت بانک‌های اطلاعاتی گراف موارد زیر هستند:بهینه سازی بهتر در جمع آوری اطلاعات نسبت به پایگاه داده‌های رابطه‌ایپشتیبانی از قوانین ACIDپشتیبانی از ذخیره سازی داده‌ها با مرتبه زمانی مناسباستفاده از انواع جدید داده‌هاگسترش مدل گرافیکی با توجه به مدل ساختاری و برعکسمناسب برای داده‌های پیچیده و نامنظم، که معمولاً در دنیای واقعی با آنها درگیر هستیم.مناسب برای عملیات داده کاوی؛عملکرد بهتر هنگام استفاده در پرس و جوهایی که عمق داده‌ها را رصد می‎کنند در مقایسه با پایگاه داده‌های رابطه‌ای.در برخی از گراف دیتابیس‌ها برخلاف مدل رابطه‌ای، نیازی به اعلام نوع داده برای گره‌ها یا یال‌ها نیست.توسعه چابک در طول زمان به راحتی با تغییرات سازگار می‎شوندمدیریت BIG DATA، از جمله سری زمانی، ابعاد جغرافیایی و سلسله مراتبی در ابعاد مختلف.· به طور خلاصه، سه مزیت اساسی گراف دیتابیس‌ها عبارتند از: عملکرد و کارایی، انعطاف پذیری و چابکی.عملکرد و کاراییدر پایگاه داده‌های سنتی ، با افزایش تعداد و عمق روابط، پرس و جوها به سمت پیچیدگی و بلاک شدن پیش می‎روند، در مقابل، عملکرد بانک اطلاعاتی گراف حتی با افزایش داده‌های ما در طول سال‌ها ثابت می‌ماند.انعطاف پذیریتیم‌های مدیریت داده به جای اینکه به طور جامع و گسترده از یک دامنه قبل از زمان الگوبرداری کنند و مجبور باشند به اسکیمای پایگاه داده قبل از شروع هر چیزی فکر کنند، می‎توانند به ساختار گرافِ موجود بخش‌هایی رو اضافه کنند بدون اینکه عملکرد فعلی سیستم را به خطر بیاندازند.چابکیچابکی به توسعه دهندگان پایگاه داده‌های گراف این امکان را می‎دهد که کاملاً مطابق بر شیوه‌های توسعه سریع و تست محور امروزی منطبق باشند و به کارشناس‌های بانک اطلاعات اجازه می‌دهد تا گراف را بطور قدم به قدم همراه با بقیه برنامه پیش ببرند و همراه با هرگونه تغییر شرایط مورد نیاز در کسب و کار تکمیل و تکمیل‌تر شوند.Neo4Jیک پایگاه داده گرافیکی منبع باز است که در جاوا پیاده سازی شده است. توسعه دهندگان Neo4J را به عنوان یک بانک اطلاعاتی کاملاً تراکنشی با یک موتور جاوا قوی توصیف می‌کنند که می‌توانیم به جای استفاده از جداول در آن، ساختارها را به شکل گراف ذخیره کنیم.Neo4J محبوب ترین و پرکاربردترین پایگاه داده گرافیکی در سراسر جهان به حساب می‌آید که در صنایع مختلفی از قبیل بهداشت، دولت، تولید خودرو، منطقه نظامی و سایر مناطق مورد استفاده قرار می‌گیرد و مرجع اصلی در این زمینه محسوب می‌شود. این نرم افزار در سال 2007 ایجاد شد و به سه نسخه گسترده تقسیم می‌شود: یک نسخه عمومی که یک نسخه رایگان است، یکEnterprise Edition ، که در آن امکان آزمایش یک نسخه کامل تر را به مدت 30 روز فراهم میکند و نمونه سوم آن یک نسخه دولتی است، که مانند یک نسخه به روز شده از نسخ Enterprise است. این نسخه روی خدمات دولتی متمرکز است. تفاوت‌های اصلی بین دو نسخه اصلی Neo4j عبارتند از: وجود پشتیبان گیری آنلاین، عملکرد بهتر و بالاتر حافظه پنهان، نظارت سیستمی دقیق، مدیریت قوی قفل‌های دیتابیس و قابلیت مقیاس پذیری بیشتر بانک اطلاعاتی از دیگر مزایای نسخه Enterprise محسوب می‌شود.سناریوهای معمول استفاده از Neo4J عبارتند از : سیستم‌های پیشنهاد دهنده برخط، شناسایی و مدیریت دسترسی، عملیات شبکه و فناوری اطلاعات، کشف تقلب، پولشویی / فرار مالیاتی، نمودار دانش، تجزیه و تحلیل گرافیکی و الگوریتم‌ها، هوش مصنوعی که دارای نمودار گرافیکی هستند، خانه‌های هوشمند وIoT . در حال حاضر بیشتر بانکهای اطلاعاتی از طریق یک سرور که از طریق یک کتابخانه محلی در دسترس قرار می‌‎گیرد، اجرا می شوند. Neo4j می‌تواند در حالت تعبیه شده و همچنین در حالت سرور اجرا شود. حالت Embedded مستقیما با دیسک کار میکند و تمام اطلاعات را روی دیسک ذخیره می‎کند. Neo4j تعبیه شده برای دستگاه‌های سخت افزاری، برنامه‌های دسکتاپ و برنامه‌های جاسازی شده در سرورها ایده آل است. برای پیاده سازی پایگاه داده اجرای Neo4j در حالت سرور معمول ترین و بهترین انتخاب است. باید به این نکته اشاره کرد که در هر سرور یک embedded instance از Neo4j وجود دارد. Neo4J مزایای رقابتی زیادی دارد ، که این نرم افزار را به یکی از پرکاربردترین آنها در این زمینه تبدیل می‎کند. در زیر ، ویژگی‌های اصلی Neo4J را شرح می‌دهیم:مزایا و ویژگی‌هاشمای انعطاف پذیرمدل داده گرافمقیاس پذیری و قابلیت اطمینان؛زبان پرس و جویCypherHTTP API برای مدیریت پایگاه داده؛پشتیبانی از indexها با استفاده از Apache Luceneپشتیبانی از درایور هایی مانندJava ، Spring ، Scala ، JavaScriptOnline backupsپشتیبانی از Cloudخروجی گرفتن از نتایج پرس و جو در قالب JSON و XLS؛فعال ترین community گراف در جهان؛کارایی بالا به دلیل استفاده از حافظه گرافیکی محلی و پردازش محلییادگیری و استفاده آسانبارگیری آسان داده ‌ها در نرم افزار؛دیتا مدل دوستدار تخته برای ساده سازی چرخه توسعهNeo4J از sharing پشتیبانی نمیکند و در نسخه Community که نسخه رایگان آن است محدودیتهایی در تعداد نودها، ارتباطات و خصوصیات وجود دارد.برخی از مشتری های Neo4J عبارتند از :eBayAdobeMicrosoftIBMNBC NewsHPcypherاین دیتابیس زبان دیتابیس زبان مخصوص به خودش داره به اسم Cypher که برای ذخیره و بازیابی اطلاعات میشه ازش استفاده کرد.توضیحات و کدنویسی در زبان cypher در ویدیو : https://www.aparat.com/v/9cP8m/%D9%BE%D8%B1%D9%88%DA%98%D9%87_%DB%8C_%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3_Neo4j_%D8%AF%D8%A7%D9%86%D8%B4%DA%AF%D8%A7%D9%87_%D8%B5%D8%AF%D8%B1%D8%A7