Artikel kali ini akan membahas perbedaan schema antara nosql dengan relational schema. Dalam schema NoSQL, terdapat berberapa jenis data modelling. Salah satunya adalah Document Database. Document database biasa disebut juga dengan ‘schema-less’. schema-less
memiliki arti data yang disimpan mempunyai key - value yang tidak terikat atau
bebas. Bisa dibayangkan sebagai data JSON yang tersimpan di database.


Dalam konsep relasi, kita terfokus terhadap upaya untuk
menggambarkan hubungan antar satu entitas dengan entitas lain dan disisi lain
proses query dan index di desain setelahnya. Dengan relasi juga kita memerlukan
adanya normalisasi dari schema database, yang mana biasanya kita menghilangkan
data yang redundan dan berupaya semaksimal mungkin untuk menghemat storage yang
kita miliki. Penggunaan join salah satu upaya bagaimana sebuah data dapat di gabungkan
untuk mendapatkan sebuah informasi.
Namun penggunaan join dapat menyebabkan terhambat apabila
diperlukan penyatuan dalam satu cluster, penggunaan join bermasalah jika data
sudah tersebar secara horizontal.
Sebelumnya kita bahas ER Modeling terlebih dahulu. ER
modeling menggambarkan arti dari aspek data seperti bagaimana entity-entity,
atribut-atribut dan relationship-relationship disajikan. Di dalam ER Modeling
perlu diperhatikan penentuan sesuatu konsep apakah merupakan suatu entity,
atribut atau relationship.
Jika kita jelaskan maka bentuknya sbb :
• Entitas : Objek utama dari aplikasi
• Atribut : Properti dari objek aplikasii
• Relasi : Hubungan antar entitas, 1-1, 1-M, M-M
Model Data Relasional adalah suatu model basis data yang
terdiri dari beberapa tabel berdimensi dua yg disebut (relasi atau tabel) ,
dengan masing-masing relation(relasi), yang tersusun atas tuple (baris) dan
atribut (kolom) untuk menggambarkan sebuah basis data. Contoh dari Relational
model adalah seperti Relational model dari social-application berikut ini:
• User disimpan di table user
• Post URL disimpan dalam post table dengan foreignKey dari
user yang memposting, dan foreignKey ke category
• Comment disimpan di table comment dengan foreignKey post
dan foreignKey dari user yg memberikan comment.
Normalisasi adalah proses pengelompokan atribut data yang membentuk entitas sederhana, nonredundan, fleksibel, dan mudah beradaptasi, Sehingga dapat dipastikan bahwa database yang dibuat berkualitas baik. Dalam konsep relasi, penggunaan normalisasi bertujuan untuk menghilangkan redudansi dari data yang berulang. Misal pada contoh berikut kita memiliki sebuah table order, dimana berelasi 1-M dengan table item order. Tabel order item memiliki foreignKey dengan ID yang terhubung dari table order.
Sedangkan Denormalisasi merupakan proses yang dilakukan pada
database yang sudah dinormalisasi, dengan cara memodifikasi struktur tabel dan
mengabaikan kerangkapan data (yang terkontrol) untuk meningkatkan kinerja
database. Dalam denormalisasi, kita menyimpan dalam satu table dimana nantinya
memiliki multiple index dalam konsep relational.
• Prinsipnya dalam denormalisasi dapat menggantikan peran
joins.
• Seringkali dengan NoSQL, kita melakukan denormalisasi atau
menduplikasi data sehingga data dapat diakses dan disimpan secara Bersama-sama.
• Berikut adalah contoh denormalisasi SALES_ITEM schema:
Dalam contoh ini, urutan dan item baris terkait disimpan bersama-sama dan dapat dibaca bersama dengan adanya kunci rows yaitu (_id). Ini membuat proses jauh lebih cepat daripada penggunaan join.
Document model mendefenisikan database sebagai dokumen yang
artinya penyimpanan data dan proses manipulasinya dalam bentuk objek dokument.
Contoh objek dokument yang sering diterapkan dalam pemograman adalah format JSON.
Konsep dari JSON merupakan konsep data yang efesien dalam
pembangunan aplikasi karena Json memiliki sifat yang fleksible, semi struktur
dan hirarki. Sehingga memungkinkan program akan lebih mudah dikembangkan karena
document akan menyusaikan penyimpanan data berdasarkan kebutuhan dari aplikasi.
Berikut adalah document model dari contoh kasus social
application :
• Terdapat 2 table dalam document model yang terhubung dalam
4 relasi :
- A. Users detail disimpan dalam table user
-
B. Post URL disimpan dalam table post
- Row key terdiri dari category dan
timestamp sehingga postingan akan dikelompokan berdasarkan kategori terbaru
- Terdapat secondary index untuk membaca
user siapa yang memposting ke url
- Comment terdapat dalam sub post
Generic Data sering dinyatakan sebagai value dalam sebuah
entitas. Dalam konsep relasi setiap value sangat kompleks karena setiap baris
mewakili instance dari objek yang sama. JSON memungkinkan mencatatan menjadi
lebih mudah, berikut contohnya jika kita memiliki data sbb:
• patientid-timestamp, Temperature , "102"
• patientid-timestamp, Coughing, "True"
• patientid-timestamp, Heart Rate, "98“
Rows key adalah ID pasien ditambah timestamp. Jenis variabel
event dan pengukuran dimasukkan kedalam value.
Share This :
0 komentar