Sunday, 26 January 2020

NoSQL : Bagian 2


Melanjutkan tulisan sebelumnya, kali ini akan dibahas tentang database NoSQL.
Ada berbagai jenis database yang menggunakan konsep NoSQL. Dari internet, dapat dilihat dari sekian banyak Database NoSQL, ada 7 yang paling popular :
  • MongoDB
  • CouchDB
  • Cassandra
  • Redis
  • Riak
  • Neo4J
  • OrientDB

Yang akan saya bahas disini adalah Neo4J

Apa itu Neo4J?
              Neo4J adalah salah satu Database NoSQL yang popular. Neo4J dikenal sebagai database graph yang paling popular. Neo4J adalah produk buatan Neo4J, Inc (Neo Technologies) dan sudah ada sejak 2007, namun rilis versi stabil 1.0-nya, baru terjadi di tahun 2010. Per 2020, versi paling mutakhirnya adalah versi 4.0 yang rilis tanggal 15 Januari 2020. Neo4J ditulis dalam bahasa Java berlisensikan GPL V3 yang menjamin statusnya sebagai open-source (versi community).



Neo4J memiliki performa yang konsisten dengan kestabilan dalam memroses data yang besar. Neo4J mampu dioperasikan dalam jangka waktu yang panjang. Neo4J memiliki model graph yang fluid sehingga mampu beradaptasi dalam menghadapi perubahan bisnis. Neo4J dilengkapi fitur keamanan yang beragam. Neo4J dilengkapi tools untuk memudahkan developer mengerjakan data. Neo4J memiliki kemampuan untuk scalability sehingga mampua menekan biaya hardware tanpa mengganggu performanya.


Neo4J bisa didapatkan di website resminya di https://neo4j.com/ . Kemampuan Neo4J sudah dibuktikan oleh banyak pemakainya, terutama dari kalangan perusahaan seperti eBay, Walmart, Cisco, Lockheed Martin, Airbnb, Bayer, dan NASA.

NoSQL : Bagian 1


Tulisan kali ini akan membahasa NoSQL

Apa itu NoSQL?
              NoSQL adalah database yang sifatnya non-relasional (non-SQL), yaitu tidak mengenal relasi antar table. NoSQL sudah ada sejak 1960-an. Namun, penggunaannya baru meningkat setelah era Web 2.0 dengan banyaknya penggunaan big data dan real-time web. Motif dari penggunaan NoSQL adalah untuk mempermudah desain sistem dan horizontal scaling.
              Penggunaan NoSQL semakin meluas berkat kelebihannya. NoSQL mampu bersifat fleksibel, sehingga mempercepat dan memudahkan pengembangan database yang berulang. NoSQL pada dasarnya terdesain untuk menyekala dengan baik (scalable) sehingga tidak memerlukan tambahan hardware. NoSQL juga memiliki performa dan fungsionalitas yang tinggi untuk model data tertentu.

Tipe-tipe NoSQL
o   Key-Value          : record data yang disimpan hanyalah key dan value, biasanya digunakan untuk cache.
o   Document          : record data yang disimpan berupa dokumen dan tiap dokumen tidak harus memiliki struktur yang sama meski dalam satu kumpulan.
o   Graph                  : relasi dinyatakan dalam graph yang terdiri atas node (simpul) dan edge (garis). Penggunaannya dapat ditrumakan dalam sosmed, map, topologi jaringan, dan lain-lain.
o   Column               : seperti namanya, penyimpanan data yang dimodelkan seperti kolom (column). Kelebihannya adalah compression data, aggregation queries, scalability, read, dan write yang sangat cepat.

Perbedaan SQL dan NoSQL

SQL
NoSQL
Menggunakan relasional sebagai penyambung antar data
Tidak menggunakan relasional sebagai penyambung antar data
Table didefinisikan terlebih dahulu
Tidak perlu mendefinisikan table terlebih dahulu
Memiliki bentuk standar table yang tesusun dari sejumlah baris
Tidak memiliki standar tertentu karena skema yang dinamis
Vertikal terukur
Horizontal terukur
Memerlukan penambahan hardware untuk meningkatkan skala
Cukup memerlukan tambahan server DB di cluster untuk load balancing dalam meningkatkan skala
Penenkanan sifat Atomicity, Consistency, Isolation, and Durability (ACID)
Mengikuti teorema Consistency, Availability, and Partition (CAP) Brewers


Teknik Normalisasi : Bagian 2


Melanjutkan tulisan sebelumnya, sekarang akan membahas tahapan dalam normalisasi. Untuk mencontohkannya, akan diberikan sebuah kasus normalisasi database perpustakaan
Langkah 1 : Bentuk Tidak Normal (Unnormalized)
Bentuk tidak normal (Unnormalized) terjadi ketika kumpulan data disusun tanpa suatu format tertentu, sehingga tidak terlihat rapi.
Dalam unnormalized dapat terjadi repeating group (pengulangan grup), sehingga dalam keadaan ini data bisa bermasalah dalam melakukan manipulasi data (insert, update, dan delete) atau biasa disebut anomali.



Langkah 2 : Normal Pertama (1 NF)
Dalam relational database tidak boleh ada repeating group karena dapat menyebabkan anomali. Oleh karena itu, tahap unnormal dilanjutkan ke tahap normal pertama (1 NF)
Pada normal pertama (1 NF), suatu relasi atau tabel akan normal pertama jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris (record).
Di bentuk sebelumnya, data belum normal sehingga harus diubah ke bentuk normal pertama dengan membuat baris berisi kolom jumlah yang sama dan setiap kolom hanya mengandung satu nilai.


Langkah 3 : Normal Kedua (2 NF)
Tahap normal kedua (2NF) akan melanjutkan tahap normal pertama (1NF). Tahap normal kedua akan menormalkan apabila terjadi partial functional dependency kepada primary key (attribute non-prime yang berpegang kepada candidate key yang tidak sesuai) yang dapat menyebabkan anomali.
Pada normalisasi kedua (2 NF), suatu relasi atau tabel akan normal kedua jika dan hanya jika relasi tersebut memenuhi normal pertama dan setiap atribut yang bukan kunci (non key) bergantung secara fungsional terhadap kunci utama (Primary key).




Langkah 4 : Normal Ketiga (3 NF)
Di tahap 2NF masih terjadi transitive dependency (hubungan tidak langsung antar nilai dalam table yang sama sehingga terjadi ketergantungan fungsi) yang dapat mengakibatkan terjadinya anomaly. Untuk itu, akan dinormalkan dalam tahap normal ketiga (3NF).
Pada normalisasi ketiga (3 NF), suatu relasi atau table akan normal ketiga jika dan hanya jika relasi tersebut memenuhi normal kedua dan setiap atribut bukan kunci (non key) tidak mempunyai transitive functional dependency kepada kunci utama (primary key).




Teknik Normalisasi : Bagian 1


Tulisan kali ini akan akan membahas mengenai “Teknik Normalisasi”.

Teknik Normalisasi
Apakah yang dimaksud dengan “Teknik Normalisasi”? Teknik Normalisasi adalah suatu teknik yang digunakan untuk mengembangkan basis data dalam membangun desain logika relasi basis data dengan memberikan aturan, kriteria standard, dan batasan-batasan untuk memenuhi permintaan-permintaan data dari organisasi. Tujuan dari normalisasi adalah untuk memperkecil dan meniadakan redudansi data dan memastikan dependensi data. Teknik Normalisasi pertama kali dikembangkan oleh E. F. Codd (1972).  Normalisasi sering ditampilkan sebagai suatu rangkaian pengujian dalam suatu relasi untuk menentukan apakah relasi tersebut memenuhi permintaan dari suatu rangkaian yang spesifik.

Kapan Teknik Normalisasi digunakan dalam mengembangkan Database?
              Teknik Normalisasi digunakan ketika seseorang hendak membuat sebuah database yang normal (baik) dari sebuah database yang tidak normal (unnormalized / buruk). Dari tahap paling awal, unnormalized dinormalisasikan menjadi 1 NF. Apabila 1N F masih belum selesai, dinormalisasikan lagi menjadi 2NF. Dan apabila 2NF belum selesai, dinormalisasikan menjadi 3NF. Dan begitu seterusnya sampai semua data dan table beserta relasinya (keterhubungannya) dapat tersajikan dengan baik dan normal.