Data Modeling Untuk NoSQL JSON

label

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.

Top 12 NoSQL Document Databases in 2020 - Reviews, Features ...

9. Document Oriented Databases

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 :

Nazrin (ナズーリン Nazūrin) is a mouse youkai who's a skilled dowser and the leader of a great number of mice. As the leader of many mice, she often employs them to search for things for her; though if she were to ask them to find food, it would most likely be gone by the time they returned.

Related Post



sentiment_satisfied Emoticon