Anda di halaman 1dari 27

Graph Database Fundamentals

PJJ - Data Analytics Specialist


Setelah mengikuti program pembelajaran,
peserta diharapkan dapat

Standar Kompetensi
Menjelaskan konsep dan penggunaan Graph
Data Analytics Specialist Database
Graph Database Fundamentals
Kompetensi Dasar
1. Memahami Konsep Graph;
2. Memahami perbedaan antara Relational
Database dengan Graph Database;
3. Menjalankan perintah query pada Graph
Database;
4. Memahami penggunaan Graph Database
dalam studi kasus analitika data.

2
OUTLINE MATA PELAJARAN
PJJ DAS – Graph Database Fundamentals

Konsep Graph Graph DB Use


(Pengenalan konsep graph)
Cases
(Membahas usecase
analitika data dengan
graph)
1 2 3 4

Pendahuluan Graph Database


(Mengetahui perbedaan (Pengenalan Perintah
antara RDBMS dan dalam Graph Database)
NOSQL)

3
Pendahuluan

The data-information-knowledge-wisdom (DIKW)

Jika warung menempatkan atau


membuat Kinder Joy dan Beng
Beng sebagai cross selling, maka
akan terjadi peningkatan
penjualan

Jika seseorang membeli Kinder


Joy, pasti dia membeli Beng Beng

Kinder Joy dan Beng Beng selalu


dibeli bersamaan

List: Kinder Joy, Beng Beng,


Marshmallow
List: Kinder Joy, Beng Beng, Coki
Coki

Source: Tedeschi (2019)


4
Pendahuluan

Ukuran/ volume data yang terus meningkat

“Every 2 days we create as much information as we did up


to 2003”

Eric Schmidt, Google

5
Pendahuluan

Data semakin saling terhubung GGG


Onotologies

RDFa

Folksonomies
Information connectivity

Tagging

Wikis

UGC

Blogs

Feeds

Hypertext
Text
Documents

6
Pendahuluan
Perkembagan terkini

Salary list
Performa RDBMS dipandang tidak
memadai untuk memroses data
Most Web apps yang semakin besar dan saling
terhubung.

Social Network Merespon kondisi tersebut lahirlah


konsep Not Only SQL (NoSQL).
Location-
based services

7
Pendahuluan
Perkembagan terkini

NOSQL Quadrants
1. Document Store
 Menyimpan dan menemukan
kembali dokumen dengan struktur
hirarki semperti JSON dan XML
2. Key-Value Stores
 Menyimpan dan menemukan
kembali data dalam bentuk
pasangan key dan value
3. Column Family
 Kumpulan table yang tersebar yang
baris-barisnya dapat berisi kolom-
kolom
4. Graph Database
 Pengelolaan basis data yang
menerapkan model data graph
8
Konsep Graph

Graph merupakan objek yang dibentuk oleh


kumpulan node/ vertices dan link/ edges.

G = (V, E)

V = {v1,v2,v3 …… }
E = {e1,e2,e3 ……}

9
Konsep Graph

Directed Graph  Graph dengan edge yang


memiliki arah

Contoh : Hubungan transaksi perdagangan,


hubungan transaksi keuangan, retweet, mention,
like, follow, dll

Undirected Graph  Graph dengan edge yang


tidak memiliki arah

Contoh : Hubungan pertemanan, hubungan


saudara,

10
Konsep Graph

Property Graph Model

11
Graph Database

Definisi
graph database management system / graph
database adalah sistem pengelolaan basis data
dengan metode Create, Read, Update, and Delete
(CRUD) yang mengekspos model data graph

Dua hal yang melekat pada graph database


adalah :
1. Storage
 Native Graph Storage yang dirancang dan
dioptimisasi untuk menyimpan data graph
2. Processing Engine
 Native Graph Processing : index free
adjacency, yaitu setiap node secara fisik
terhubung satu dengan lainnya
12
Graph Database

Perbandingan Relational DB dengan Graph DB

13
Graph Database

Mengapa Harus Graph?


- Highly related data
- Skema data yg fleksibel
- Struktur data yang digunakan mudah diterima
user

14
Graph Database

Partner and Vukotic’s Hasil Experiment


Experiment
- Social Network
- Friends of Friends Structure
- MySQL and Neo4J
- 1,000,000 people
- Each with an average of 50
friends
- Depth 2: Find all friends of a
user’s friends
- Depth 3: Find all friends of
friends of a user’s friends
- Etcetera

15
Graph Database

Tutorial mengenai query data pada Graph Database


menggunakan sandbox Neo4J

Langkah-langkah yang harus dilakukan :

1. Akses https://sandbox.neo4j.com;
2. Login dengan akun Google atau Linkedin;
3. Pilih create database dengan sample data Movies

16
Graph Database

17
Graph Database

18
Graph Database

Create Node dan Edge Baru

 Create node baru


 Movie :
CREATE (n:Movie { title:"Adhit Sopo Jarwo The Movie", released:2020, tagline:"Petualangan
Adhit dari Cirebon ke Yogyakarta bareng Sopo dan Jarwo" }) RETURN n
 Person
CREATE (n:Person { name:"Adhitya", born:2005 }) RETURN n

19
Graph Database

 Create edge baru


 ACTED_IN
MATCH (a:Person { name:"Adhitya"})
MATCH (b:Movie { title:"Adhit Sopo Jarwo The Movie"})
CREATE (a)-[r:ACTED_IN{roles:"adhit"}]->(b);

20
Graph Database

Retrieve Data dengan Kriteria Pencarian dan Agregasi

 Retrieve data person berdasarkan nama


MATCH (p:Person) where p.name="Adhit" RETURN p

 Retrieve data film berdasarkan tahun rilis


MATCH (m:Movie) where m.released = 2000 RETURN m

 Summary data film berdasarkan tahun rilis


MATCH (m:Movie) RETURN m.released, count(m)

21
Graph Database

Update property dari node

 Update tahun lahir dari person


MATCH (p:Person) where p.name="Adhitya" SET p.born=2002 RETURN p

22
Graph Database

Retrieve Data Berdasarkan Pola


 Mencari aktor-aktor yang membintangi film
MATCH (a:Person)-[:ACTED_IN]->(b:Movie) RETURN a,b
 Mencari aktor-aktor yang membintangi film tertentu
MATCH (a:Person)-[:ACTED_IN]->(b:Movie) WHERE b.title="Adhit Sopo Jarwo The Movie"
RETURN a,b
 Mencari person yang terlibat dalam film baik sebagai aktor, director, maupun producer
MATCH (a:Person)-[:ACTED_IN|:DIRECTED|:PRODUCED]->(b:Movie) RETURN a,b
 Mencari person yang menjadi aktor dan sekaligus direktor dari sebuah film
MATCH (a:Person)-[:ACTED_IN]->(b:Movie),(a)-[:DIRECTED]-(b) RETURN a,b

23
Graph Database

Retrieve Data Berdasarkan Pola

 Mencari aktor-aktor yang membintangi film yang sama


MATCH (a:Person)-[:ACTED_IN]->(b:Movie)<-[:ACTED_IN]-(c:Person) where a.name <>
c.name RETURN a,b,c

 Mencari person yang terlibat dalam sebuah film yang sama baik sebagai aktor, direktor, ataupun
producer
MATCH (a:Person)-[:ACTED_IN|:DIRECTED|:PRODUCED]->(b:Movie)<-
[:ACTED_IN|:DIRECTED|:PRODUCED]-(c:Person) where a.name <> c.name RETURN a,b,c

24
Graph Database

Retrieve Data Berdasarkan Pola

 Mencari 2 orang person yang mereview


film yang sama dan salah satu follow
yang lainnya
MATCH (a:Person)-[:REVIEWED]-
>(b:Movie)<-[:REVIEWED]-(c:Person),
(a)-[:FOLLOWS]-(c) where
a.name<>c.name RETURN a,b,c

25
Referensi

1. Robinson, Webber, and Eifrem, “Graph Databases”, O’Reilly Media, Inc, 2015.
2. Webber and Brugen, “Graph Databases For Dummies, Neo4j Special Edition”, Willey, 2020.
3. https://ils.unc.edu/courses/2017_fall/inls623_001/slides/graph_neo4j.pptx

26
Terima Kasih

27

Anda mungkin juga menyukai