Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Neo4j - Buat Batasan menggunakan Cypher

batasan memungkinkan Anda untuk menempatkan batasan pada data yang dapat dimasukkan terhadap simpul atau hubungan.

Batasan membantu menegakkan integritas data, karena mencegah pengguna memasukkan jenis data yang salah. Jika seseorang mencoba memasukkan jenis data yang salah saat batasan diterapkan, mereka akan menerima pesan kesalahan.

Jenis Batasan

Di Neo4j, Anda dapat membuat keunikan batasan dan keberadaan properti kendala.

Batasan Keunikan
Menentukan bahwa properti harus berisi nilai unik (yaitu tidak ada dua node dengan Artis label dapat membagikan nilai untuk Name properti.)
Kendala Keberadaan Properti
Memastikan bahwa ada properti untuk semua node dengan label tertentu atau untuk semua hubungan dengan tipe tertentu. Batasan keberadaan properti hanya tersedia di Neo4j Enterprise Edition.

Buat Batasan Keunikan

Untuk membuat batasan keunikan di Neo4j, gunakan CREATE CONSTRAINT ON penyataan. Seperti ini:

CREATE CONSTRAINT ON (a:Artist) ASSERT a.Name IS UNIQUE

Pada contoh di atas, kita membuat keunikan batasan pada Nama properti semua node dengan Artist label.

Ketika pernyataan berhasil, pesan berikut akan ditampilkan:

Saat Anda membuat batasan, Neo4j akan membuat file index. Cypher akan menggunakan indeks itu untuk pencarian seperti indeks lainnya.

Oleh karena itu, tidak perlu membuat indeks terpisah. Faktanya, jika Anda mencoba membuat batasan saat sudah ada indeks, Anda akan mendapatkan kesalahan.

Melihat Batasan

Batasan (dan indeks) menjadi bagian dari skema database (opsional).

Kita dapat melihat batasan yang baru saja kita buat dengan menggunakan :schema memerintah. Seperti ini:

:schema

Anda akan melihat batasan yang baru dibuat, serta indeks yang dibuat dengannya. Kita juga bisa melihat indeks yang telah dibuat sebelumnya:

Uji Batasan

Anda dapat menguji bahwa batasan benar-benar berfungsi dengan mencoba membuat artis yang sama dua kali.

Jalankan pernyataan berikut dua kali:

CREATE (a:Artist {Name: "Joe Satriani"}) 
RETURN a

Pertama kali Anda menjalankannya, node akan dibuat. Kali kedua Anda menjalankannya, Anda akan menerima pesan kesalahan berikut:

Kendala Keberadaan Properti

Batasan keberadaan properti dapat digunakan untuk memastikan semua node dengan label tertentu memiliki properti tertentu. Misalnya, Anda dapat menentukan bahwa semua node berlabel Artist harus berisi Nama properti.

Untuk membuat batasan keberadaan properti, gunakan ASSERT exists(variable.propertyName) sintaks.

Seperti ini:

CREATE CONSTRAINT ON (a.Artist) ASSERT exists(a.Name)

Perhatikan bahwa batasan keberadaan properti hanya tersedia di Neo4j Enterprise Edition.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki Peringatan MySQL 1287:'BINARY expr' tidak digunakan lagi dan akan dihapus dalam rilis mendatang

  2. Menghubungkan ke server MySQL jarak jauh menggunakan PHP

  3. JSON_MERGE_PATCH() – Lakukan Penggabungan Dokumen JSON yang Sesuai dengan RFC 7396 di MySQL

  4. Kapan menggunakan STRAIGHT_JOIN dengan MySQL

  5. Dapatkan n catatan teratas untuk setiap grup hasil yang dikelompokkan