محمد خوش کشت
محمد خوش کشت
خواندن ۲ دقیقه·۴ سال پیش

معماری SQL Server Graph Database (بخش دوم)

معماری graph database

?

Node Table (گره جدول)

یک گره جدول ، موجودی موجود در یک طرح گراف را نشان می دهد. هر بار که یک گره جدول ایجاد می شود ، همراه با ستون های تعریف شده توسط کاربر ، یک ستون ضمنی  $node_id ایجاد می شود ، که به طور یونیک به یک مپ می شود. مقادیر $node_id به طور خودکار تولید می شوند و ترکیبی از object_id آن گره جدول و مقدار bigint تولید شده در داخل هستند. با این حال ، وقتی ستون  $node_id انتخاب می شود ، یک مقدار محاسبه شده به شکل یک رشته JSON نمایش داده می شود. همچنین ،  $node_id یک ستون کاذب است که به یک نام داخلی با رشته hex مپ می شود. وقتی  $node_id را از جدول انتخاب کنید ، نام ستون به صورت $node_id_<hex_string> ظاهر می شود. بهتر است از نام ستون کاذب در کوئری ها برای رسیدن به $node_id داخلی  و باید از استفاده از نام داخلی با رشته hex خودداری شود.

به کاربران توصیه می شود که در هنگام ایجاد جدول node ، constraint یا ایندکس یونیک به فرد را در ستون  $node_id ایجاد کنند ، اما اگر یکی ایجاد نشود ، یک ایندکس nonclustered پیش فرض به طور خودکار ایجاد می شود. با این حال ، هر index در یک ستون کاذب  گراف در ستون های داخلی زیر ایجاد می شود. یعنی ایندکسی که در ستون  $node_id ایجاد شده است ، در ستون داخلیgragh_id_<hexstring> ظاهر می شود.

Edge Table (یال جدول)

یک یال جدول نشان دهنده یک رابطه در یک گراف است. یال ها همیشه دو گره (نود) را به هم متصل می کنند. یک جدول edge کاربران را قادر می سازد روابط many to many را در گراف مدلسازی کنند. یک یال جدول ممکن است هیچ attribute  مشخص شده توسط کاربر را در خود نداشته باشد. هر بار که یال جدول ایجاد می شود ، همراه با attribute های تعریف شده توسط کاربر ، سه ستون ضمنی در یال جدول ایجاد می شود:

$edge_id : شناسه یونیک یک یال است . این ستون از ترکیب object_id جدول و یک مقدار bigint داخلی است. با این حال ، وقتی ستون  $edge_id انتخاب می شود ، مقدار محاسبه شده ای به شکل رشته JSON نمایش داده می شود.

$form_id  : node_id   شناسه جدول نود که ارتباط از آن شروع شده را ذخیره می کند

$to_id: node_id   شناسه جدول نود که ارتباط از تا آنجا ادامه دارد را ذخیره می کند

نود هایی که در یک یال آمده می تواند داده هایی که توسط داده های درج شده در ستون  $from_id و  $to_id اداره می شود را به هم متصل کند. در اولین نسخه ، امکان تعریف constraint برای یال جدول ها جهت محدود ارتباط با چند نوع نود وجود ندارد. یعنی یک یال می تواند هر دو گره(نود)ی را در گراف به هم وصل کند ، صرف نظر از نوع آن.

نحوه ذخیره جداول گره و یال در دیتابیس


منبع

گراف دیتابیسبرنامه نویسیdevelopegraph databasesql server
طراح و توسعه دهنده نرم افزار، با سوابق مختلف در زمینه زیر ساخت و SQL Server
شاید از این پست‌ها خوشتان بیاید