Pembuatan Skema Database menggunakan Cassandra

Putri Sarah Fransisca

Sosial Media


0 orang menyukai ini
Suka

Summary

Pembuatan skema database menggunakan Cassandra Query Language (CQL) serta mengimplementasikan Query terhadap table-table yang telah dibuat. Studi kasus pada projek ini adalah skema database untuk reservasi kamar hotel. Tools yang digunakan adalah Command Prompt dan CQL.

Description

Definisi Pustaka

  1. Apache Cassandra adalah database terdistribusi NoSQL open source yang dipercaya oleh ribuan perusahaan untuk skalabilitas dan ketersediaan tinggi tanpa mengurangi kinerja. Skalabilitas linier dan toleransi kesalahan pada Apache Cassandra telah terbukti pada perangkat keras komoditas atau infrastruktur cloud dan menjadikannya platform yang sempurna untuk mengolah data yang sangat penting dan bervolume besar.
  2. Cassandra Query Language (CQL) adalah bahasa utama untuk berkomunikasi dengan database Apache Cassandra. Cara paling mendasar untuk berinteraksi dengan Apache Cassandra adalah demham menggunakan shell CQL, CQLSH. Dengan menggunakan CQLSH, Anda dapat membuat keyspace, tabel, Create Read Update Delete (CRUD) data dan mengimplementasikan query dan lain sebagainya.

 

Deskripsi Rancangan Database

Konsep skema database ini adalah mencakup daftar hotel beserta nomor telepon hotel dan alamat, tamu yang menginap di hotel, daftar kamar untuk setiap hotel, ketersediaan kamar  hotel, dan catatan reservasi yang dipesan untuk tamu. Database dibuat menggunakan Cassandra Query Language. Berikut skema database digambarkan dengan menggunakan Entity Relationship Diagram.

Dari gambar ERD diatas, dapat dilihat bahwa pada database ini nantinya akan terdapat 5 entitas dengan masing-masing entitas memiliki atributnya masing-masing. Kelima entitas tersebut antara lain adalah:

  1. Hotel: entitas ini memiliki 4 atribut yaitu antara lain daftar nama hotel, ID hotel sebagai primary key, alamat hotel dan nomor telepon dari hotel tersebut.
  2. Room: entitas ini memiliki 4 atribut antara lain adalah RoomID sebagai primary key, HotelID, RoomNumber, dan Rate. Entitas ini nantinya akan menyimpan daftar nomor kamar di setiap hotel berdasarkan ID hotel dan roomID. Setiap kamar juga mempunyai ratingnya masing-masing.
  3. Room_reservation: entitas ini memiliki 5 atribut antara lain adalah RoomID sebagai primary key, HotelID, RoomNumber, dan Rate. entitas ini nantinya akan menyimpan daftar reservasi kamar yang telah dilakukan oleh customer.
  4. Guest: entitas ini memiliki 3 atribut antara lain adalah GuestID sebagai primary key, email dan name. Entitas ini nantinya akan menyimpan informasi tamu yang melakukan reservasi terhadap hotel yang bersangkutan.
  5. RoomAvailability: entitas ini memiliki 4 atribut antara lain adalah RoomID sebagai primary key, HotelID, Date dan Available. Entitas ini nantinya akan menyimpan informasi mengenai tersedia atau tidak tersedianya suatu kamar berdasarkan tanggal (Date).

 

Tools yang Digunakan

Dalam mengerjakan pembuatan skema database ini, diperlukan beberapa tools dan instalasi software lainnya untuk menjalankan Cassandra. Berikut adalah beberapa tools yang digunakan penulis dalam pembuatan skema database menggunakan Cassandra:

- Cassandra versi 3.11.13

- Java JDK versi 1.8.0_331

- Python versi 2.7.14

- Command Prompt

 

Berikut adalah tahap-tahap yang dilakukan oleh penulis dalam membuat skema database Reservasi Hotel menggunakan Cassandra Query Language:

1. Mulai Server Cassandra

Pertama-tama, kita perlu memulai server cassandra terlebih dahulu dengan cara masuk kedalam file cassandra > bin, lalu ketik command cassandra.bat -f. Jika server berhasil dijalankan maka akan muncul 'Startup Complete'. Selanjutnya, buka kembali command prompt tanpa menutup jendela command prompt yang telah dijalankan sebelumnya, sehingga nantinya terdapat 2 jendela command prompt yang berjalan.

 

2. Mulai Cassandra Query Language

Setelah server berhasil dijalankan, maka kita sudah bisa untuk menjalankan command ‘cqlsh’ untuk dapat mengakses CQL dan membuat database dengan cassandra.

 

3. Membuat Keyspace

Sebelum membuat tabel-tabel pada database, kita perlu membuat keyspace terlebih dahulu. Keyspace di Cassandra adalah namespace yang mendefinisikan replikasi data pada node. Sebuah cluster berisi satu keyspace per node. Untuk membuat keyspace dapat dilakukan dengan perintah ‘CREATE KEYSPACE [nama_keyspace]

Lalu, setelah membuat keyspace kita dapat menggunakan keyspace tersebut dengan perintah ‘USE [nama_keyspace]

 

4. Membuat Table pada Keyspace

Setelah keyspace telah dibuat, sekarang kita dapat membuat tabel-tabel yang diperlukan. Pembuatan tabel pada keyspace dapat dilakukan dengan perinta ‘CREATE TABLE [nama_tabel] (nama_kolom1 tipe_data, nama_kolom2 tipe_data);’. 

Tabel yang akan dibuat pada keyspace hotel_reservation ini adalah berdasarkan entitas-entitas yang telah dijelaskan pada bagian Deskripsi Rancangan Database sebelumnya, dimana akan terdapat 5 tabel yang dibuat yaitu antara lain adalah sebagi berikut:

  1. Tabel hotel
  2. Tabel room
  3. Tabel roomAvailability
  4. Tabel room_reservation
  5. Tabel guest

     

 

5. Melihat Deskripsi setiap Table

Kita dapat melihat deskripsi table yang telah kita buat dengan menggunakan perintah ‘DESC [nama_keyspace].[nama_tabel]

  1. Deskripsi tabel Hotel
  2. Deskripsi tabel Room
  3. Deskripsi tabel RoomAvailability
  4. Deskripsi tabel Room_reservation
  5. Deskripsi tabel Guest

 

6. Memasukkan Data pada Table

Setelah membuat table, tentunya belum terdapat data-data didalamnya sehingga kita perlu memasukkan data-data tersebut kedalam tabel. Cara untuk memasukkan data kedalam tabel dapat dilakukan menggunakan perintah ‘INSERT INTO [nama_kolom] VALUES [data]’.

  1. Memasukkan data pada tabel Hotel
  2. Memasukkan data pada tabel Room
  3. Memasukkan data pada tabel RoomAvailability
  4. Memasukkan data pada tabel Room_reservation
  5. Memasukkan data pada tabel Guest

 

7. Melihat Data pada Table

Setelah memasukkan data pada table, kita dapat melihat data-data tersebut pada table. Perintah yang dapat dilakukan untuk melihat data pada table adalah ‘SELECT * FROM [nama_tabel]’.

  1. Melihat data pada table Hotel
  2. Melihat data pada table Room
  3. Melihat data pada table RoomAvailability
  4. Melihat data pada table Room_reservation
  5. Melihat data pada table Guest

 

8. Implementasi Query 

  1. Query untuk melihat ketersediaan kamar pada tabel roomAvailability dengan memberikan kondisi ‘where Available=True’ dimana True artinya adalah kamar tersebut tersedia.
  2. Query untuk melihat ketersediaan kamar pada tabel roomAvailability dengan memberikan kondisi ‘where Available=False’ dimana False artinya adalah kamar tersebut tidak tersedia atau sudah di reservasi oleh orang lain.
  3. Query untuk menampilkan kamar dengan rating diatas 4.8 dengan memberikan kondisi ‘where rate >= 4.8’ pada tabel room.
  4. Query untuk menampilkan daftar reservasi kamar yang selesai pada tanggal 2 Juli 2022 dengan memberikan kondisi ‘where endDate='2022-07-02'' pada tabel room_reservation.
  5. Query untuk menampilkan daftar kamar dengan rating diatas 4.8 pada hotel Westin Jakarta dengan memberikan 2 kondisi yaitu ‘where rate >= 4.8 AND HotelID = 3’ pada tabel room.

 

Referensi

https://www.tutorialspoint.com/cassandra/index.htm

https://www.oreilly.com/content/cassandra-data-modeling/ 

Informasi Course Terkait
  Kategori: Data Science / Big Data
  Course: Big Data Base dengan Cassandra