PDA

View Full Version : پایگاه داده گرافی چیست؟



akbar_online
سه شنبه 03 بهمن 1391, 20:52 عصر
کسی در مورد پایگاه داده گرافی اطلاعاتی دارد؟

Amir-Shabani
یک شنبه 28 مهر 1392, 16:22 عصر
سلام!
میدونم که برای جواب دادن به این تاپیک خیلی دیر هستش.... ولی! به اندازه سواد خودم میگم؛ باشد که به درد دیگران بخورد


پايگاه داده گراف پايگاه داده‌اي است که از نظريه گراف‌ها با گره‌ها، يال‌ها و خاصيت‌ها براي نمايش و ذخيره سازي داده‌ استفاده مي‌کند.يک پايگاه داده گراف داده‌ها را درون گره‌هايي ذخيره مي‌کند که گره‌ها داراي خاصيت‌ها يا ويژگي‌هايي مي‌باشند. در اين مدل هر گره داراي يک نشانه گر مستقيم به نزديک‌ترين گره مي‌باشد. همچنين اين مدل از پايگاه داده داراي محدوديت‌هايي در عمل وصل[1] (http://barnamenevis.org/#_ftn1) مي‌باشد. گره‌ها داراي شباهت بسيار زيادي به طبيعت اشيا مي‌باشند بنابراين برنامه نويسي شي گرا نزديک به اين مدل داده‌اي مي‌باشد. نمونه موفق پياده سازي شده اين مدل Neo4j مي‌باشد.


112064


گره‌ها جهت نمايش موجوديت‌هايي مانند افراد، تجارت‌ها، حساب‌ها و هر موجوديتي ديگري که نياز به ذخيره سازي آن مي‌باشد را شامل مي‌شود. خاصيت‌ها اطلاعاتي را جهت مرتبط کردن گره‌ها ذخيره مي‌کند. يال‌ها خطوطي هستند که گره‌ها را به يکديگر يا به خاصيت‌ها متصل مي‌کنند. براي مثال، چنانچه ويکي پديا دروني يکي از گره‌ها باشد خاصيت‌هاي مرتبط با اين گره مي‌تواند سايت، دانشنامه، لغاتي که با "واو" شروع مي‌شود باشد. يا مانند تصويرفوق گره‌ها جهت ذخيره سازي افراد به کاربرده شده است و يال‌ها نحوه ارتباط به ويژگي خاصي را بينا مي‌کند. براي نمونه، گره 4 با ويژگي نام رابين و سن 21 به مدت 15 سال لوئيس را مي‌شناسد. البته که اين خاصيت‌ها متناسب با اهداف پايگاه داده مي‌باشد.
در مقايسه با پايگاه داده‌هاي رابطه‌اي، پايگاه داده‌هاي مبتني بر نظريه گراف داراي قياس پذيري بالا بوده و داراي سرعت بالايي مي‌باشد. همچنين، اين مدل داده‌اي وابستگي کمي به طراحي شِما دارد. علاوه بر موارد فوق، اين مدل از دستور وصل پشتيباني نمي‌کند.

[1] (http://barnamenevis.org/#_ftnref1) Join

darya69
چهارشنبه 27 آبان 1394, 11:02 صبح
سلام
ببخشید یعنی چی از دستور وصل استفاده نمیکند؟
من دنبال یک پایگاه داده ای هستم که برای کوئری زدن روی روابط چند به چند (از هر دوجهت، مبدا به مقصد و مقصد به مبدا) مناسب باشد که این روابط در پایگاه داده های رابطه ای با اضافه کردن جدول join امکان پذیر است، آیا پایگاه داده گرافی برای چنین کوئری هایی مناسب هست؟
ممنون

Mehdi Zarepour
یک شنبه 09 اسفند 1394, 09:09 صبح
سلام
ببخشید یعنی چی از دستور وصل استفاده نمیکند؟
من دنبال یک پایگاه داده ای هستم که برای کوئری زدن روی روابط چند به چند (از هر دوجهت، مبدا به مقصد و مقصد به مبدا) مناسب باشد که این روابط در پایگاه داده های رابطه ای با اضافه کردن جدول join امکان پذیر است، آیا پایگاه داده گرافی برای چنین کوئری هایی مناسب هست؟
ممنون
سلام
البته که میشه در پایگاه داده های گرافی روابط 1-n یا n-n رو تعریف کرد ولی نه بشکل چیزی که در پایگاه داده های رابطه ای داریم (خیلی راحتتر و سریع تر).
مدل های رابطه ای در عین سادگی مشکلاتی هم دارند که مدل های جدید مثل گراف این مشکلات رو حل کردن، یکی از مشکلات همین پر هزینه بودن JOIN هست، بزار این جوری بگم اگه قرار باشه شما دوتا جدول رو با هم Join کنین دونه دونه رکورد ها باید بررسی بشن حالا فکر این رو بکنین که تعداد این رکوردها میلیون ها باشه! که پیچیدگی زمانی در بهترین حالت برابر (O(Logn هست ولی در مدل گرافی ما این رابطه رو بصورت فیزیکی برقرار می کنیم (یعنی لازم نیست که عملگری برای محاسبه این رابطه استفاده کنیم) در مدل گرافی این رابطه با (O(1 ایجاد می شه که خیلی سریع تر از مدل های رابطه ای هست.
من خودم با OrientDB کار می کنم، می تونی نحوه پیاده سازی رابطه ها رو تو این دیتابیس از اینجا ببینی http://orientdb.com/docs/2.0/orientdb.wiki/Tutorial-Relationships.html