Pemrosesan grafik dengan SQL Server dan Azure SQL Database

Berlaku untuk: SQL Server 2017 (14.x) dan azure SQL DatabaseAzure SQL Managed Instance yang lebih baru

SQL Server menawarkan kemampuan database grafik untuk memodelkan hubungan banyak ke banyak. Hubungan grafik diintegrasikan ke dalam Transact-SQL dan menerima manfaat menggunakan SQL Server sebagai sistem manajemen database dasar.

Apa itu database grafik?

Database grafik adalah kumpulan simpul (atau simpul) dan tepi (atau hubungan). Simpul mewakili entitas (misalnya, seseorang atau organisasi) dan tepi mewakili hubungan antara dua simpul yang disambungkannya (misalnya, suka atau teman). Node dan tepi mungkin memiliki properti yang terkait dengannya. Berikut adalah beberapa fitur yang membuat database grafik unik:

  • Tepi atau hubungan adalah entitas kelas satu dalam Database Graph dan dapat memiliki atribut atau properti yang terkait dengannya.
  • Satu tepi dapat secara fleksibel menyambungkan beberapa simpul dalam Database Graph.
  • Anda dapat mengekspresikan kueri pencocokan pola dan navigasi multi-hop dengan mudah.
  • Anda dapat mengekspresikan kueri penutupan transitif dan polimorf dengan mudah.

Kapan menggunakan database grafik

Database relasional dapat mencapai apa pun yang dapat dilakukan database grafik. Namun, database grafik memudahkan untuk mengekspresikan jenis kueri tertentu. Selain itu, dengan pengoptimalan tertentu, kueri tertentu mungkin berkinerja lebih baik. Keputusan Anda untuk memilih database relasional atau grafik didasarkan pada faktor-faktor berikut:

  • Aplikasi Anda memiliki data hierarkis. Jenis data HierarchyID dapat digunakan untuk mengimplementasikan hierarki, tetapi memiliki beberapa batasan. Misalnya, tidak memungkinkan Anda menyimpan beberapa orang tua untuk simpul.
  • Aplikasi Anda memiliki hubungan banyak ke banyak yang kompleks; seiring berkembangnya aplikasi, hubungan baru ditambahkan.
  • Anda perlu menganalisis data dan hubungan yang saling tersambung.

Fitur Grafik yang diperkenalkan di SQL Server 2017 (14.x)

Fitur berikut diperkenalkan di SQL Server 2017.

Membuat objek grafik

Ekstensi Transact-SQL memungkinkan pengguna untuk membuat tabel simpul atau edge. Baik simpul maupun tepi dapat memiliki properti yang terkait dengannya. Karena, simpul dan tepi disimpan sebagai tabel, semua operasi yang didukung pada tabel relasional didukung pada tabel simpul atau tepi. Berikut contohnya:

CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;

Diagram berikut menunjukkan bagaimana Simpul dan Tepi disimpan sebagai tabel.

Diagram showing the Nodes and Edges are stored as tables.

Ekstensi bahasa kueri

Klausa baru MATCH diperkenalkan untuk mendukung pencocokan pola dan navigasi multi-hop melalui grafik. Fungsi ini MATCH menggunakan sintaks gaya ASCII-art untuk pencocokan pola. Misalnya, untuk menemukan teman "John":

-- Find friends of John
SELECT Person2.Name 
FROM Person Person1, Friends, Person Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John';

Terintegrasi penuh di Mesin Database SQL Server

Ekstensi grafik terintegrasi penuh di mesin SQL Server. Gunakan mesin penyimpanan, metadata, prosesor kueri, dll. yang sama untuk menyimpan dan mengkueri data grafik. Kueri di seluruh grafik dan data relasional dalam satu kueri. Menggabungkan kemampuan grafik dengan teknologi SQL Server lainnya seperti indeks penyimpan kolom, ha, layanan R, dll. Grafik SQL juga mendukung semua fitur keamanan dan kepatuhan yang tersedia dengan SQL Server.

Alat dan ekosistem

Manfaatkan alat dan ekosistem yang ada yang ditawarkan SQL Server. Alat seperti pencadangan dan pemulihan, impor dan ekspor, BCP hanya berfungsi di luar kotak. Alat atau layanan lain seperti SSIS, SSRS, atau Power BI bekerja dengan tabel grafik, hanya cara kerjanya dengan tabel relasional.

Batasan Azure Stack Edge

Batasan tepi didefinisikan pada tabel tepi grafik dan merupakan sepasang tabel simpul yang dapat disambungkan oleh jenis tepi tertentu. Batasan edge membantu pengembang membatasi jenis simpul yang dapat disambungkan oleh tepi tertentu.

Untuk mempelajari selengkapnya tentang cara membuat dan menggunakan batasan edge, lihat Batasan Edge.

Gabungkan DML

Pernyataan MERGE melakukan operasi sisipkan, perbarui, atau hapus pada tabel target berdasarkan hasil gabungan dengan tabel sumber. Misalnya, Anda dapat menyinkronkan dua tabel dengan menyisipkan, memperbarui, atau menghapus baris dalam tabel target berdasarkan perbedaan antara tabel target dan tabel sumber. Menggunakan predikat MATCH dalam pernyataan MERGE sekarang didukung di Azure SQL Database dan SQL Server vNext. Artinya, sekarang dimungkinkan untuk menggabungkan data grafik Anda saat ini (simpul atau tabel tepi) dengan data baru menggunakan predikat MATCH untuk menentukan hubungan grafik dalam satu pernyataan, alih-alih pernyataan INSERT/UPDATE/DELETE terpisah.

Untuk mempelajari selengkapnya tentang bagaimana kecocokan dapat digunakan dalam menggabungkan DML, lihat Pernyataan MERGE.

Jalur terpendek

Fungsi SHORTEST_PATH menemukan jalur terpendek antara dua simpul dalam grafik atau dimulai dari simpul tertentu ke semua simpul lain dalam grafik. SHORTEST PATH juga dapat digunakan untuk menemukan penutupan transitif atau untuk traversal panjang arbitrer dalam grafik.

Langkah berikutnya