Catatan ini dibuat ketika pertama kali belajar salah satu produk basis data graph, Neo4j. Saat pertama kali belajar basis data, yang diinginkan pastinya adalah operasi CRUD, create, retrieve, update dan delete. Catatan ini membahas cara-cara tersebut menggunakan cypher query, yang merupakan query khusus untuk graph database pada Neo4j. Yang diulas pada catatan kali ini hanya bagaimana CRUD pada node, tanpa relationship.
Graph database menggunakan node dan relationship untuk memodelkan dan menyimpan data. Node merupakan data itu sendiri, sedangkan relationship menggambarkan keterkaitan data dengan data yang lain. Node dan relationship bisa memiliki berbagai atribut (sifat dari data) yang dapat menggambarkan isi dari data tersebut. Berikut adalah contoh sederhana operasi CRUD pada Neo4j.
1. CREATE
Bagian pertama adalah bagaimana cara membuat node beserta atributnya. Node merupakan inti data dari graph database. Cypher menyimbolkan node menggunakan tanda kurung buka-tutup, dengan data yang berupa string di dalamnya. Contoh berikut berturut-turut adalah node ‘orang’, node ‘orang’ dengan label Orang, dan node ‘orang’ dengan atribut nama :
(orang) (orang:Orang) (orang:Orang {nama:"Panji"})
Untuk membuat node digunakan query “CREATE” sebagai berikut :
CREATE (orang:Orang{nama:"Panji"})
2.RETRIEVE
Node yang telah dibuat, dapat di-retrieve (diambil kembali) menggunakan query MATCH sebagai berikut :
MATCH (orang) WHERE orang.nama="Panji" RETURN orang
atau lebih ringkas :
MATCH (orang {nama:"Panji"}) RETURN orang
klausa WHERE (pada query pertama) digunakan untuk melakukan seleksi dari node yang akan diambil. RETURN digunakan untuk menampilkan objek yang ada.
Untuk mengambil semua node yang ada, digunakan query berikut :
MATCH (orang) RETURN orang
untuk data yang besar, dapat ditambahkan klausa LIMIT.
3. UPDATE
Cara melakukan update adalah dengan menemukan node yang diinginkan, kemudian menggunakan klausa SET. Misal ingin mengganti nama “Panji” menjadi “Panji W.” dilakukan dengan query berikut :
MATCH (orang) where orang.nama="Panji" SET orang.nama="Panji W." RETURN orang
4. DELETE
Klausa DELETE digunakan untuk menghapus node yang ditemukan. Sama seperti ketika update, untuk menghapus node dilakukan terhadap pencarian node yang akan dihapus kemudian dihapus node tersebut. Sebagai contoh, node dengan atribut nama “Panji W.” akan dihapus, maka query yang digunakan adalah :
MATCH (orang) WHERE orang.name="Panji W." DETACH DELETE orang
“DETACH DELETE” digunakan untuk menghapus node berikut relationship-nya.
Artikel berikutnya adalah bagaimana membuat relationship antar node dengan node yang lain. Semoga bermanfaat.