GNU/Linux >> Belajar Linux >  >> Ubuntu

Apa itu Basis Data NoSQL? – Penjelasan NoSQL

Pendahuluan

Kebutuhan untuk menangkap dan memproses data besar adalah kekuatan pendorong utama di balik popularitas basis data NoSQL. Data yang disimpan harus dapat diakses setiap saat, dari lokasi mana pun, dan di perangkat apa pun. Salah satu cara untuk memenuhi permintaan yang terus meningkat adalah dengan meningkatkan dan membeli server yang lebih besar. Namun, lebih efisien untuk memperluas dan menggunakan sekelompok server sesuai permintaan.

Model database relasional tidak cocok untuk sistem terdistribusi yang mencakup banyak mesin. Basis data NoSQL memberikan solusi yang layak dengan berfokus pada kinerja dan ketersediaan sambil juga mengorbankan beberapa konsistensi yang biasanya diidentifikasi dengan basis data relasional.

Selain menjawab pertanyaan “Apa itu NoSQL ”, tutorial ini menggunakan contoh langsung untuk menyoroti konsep, fitur, dan tipe dasar NoSQL .

Apa itu NoSQL? (Definisi NoSQL)

NoSQL (Not SQL or Not Only SQL) adalah istilah umum yang digunakan untuk database yang tidak bergantung pada model relasional. Data tidak perlu memiliki skema ketat atau struktur tabel SQL biasa. Paling umum, data dikumpulkan sebagai pasangan nilai kunci, dokumen JSON, grafik, atau tabel kolom lebar.

Dengan menggunakan database NoSQL, Anda dapat menyimpan volume besar data tidak terstruktur saat masuk dan menyusunnya di lain waktu. Seperti yang diharapkan, ini menghasilkan throughput yang jauh lebih baik, kecepatan baca/tulis, dan memungkinkan Anda untuk meningkatkan skala server secara horizontal.

Basis data non-relasional, ketika diterapkan di lingkungan kasus penggunaan yang tepat, membawa manfaat yang signifikan dalam hal kinerja dan fleksibilitas. Namun, tidak menerapkan skema pada titik entri data juga berarti lebih sulit untuk membuat kueri database NoSQL, menjaga konsistensi data, dan membangun hubungan antar kumpulan data.

Cara Kerja NoSQL

Ide dasar di balik NoSQL adalah untuk mengoptimalkan kinerja database untuk penskalaan horizontal, volume data besar, dan latensi rendah dengan mengabaikan beberapa batasan konsistensi data yang ada di RDBMS. Alih-alih model data kaku seperti tabel, kolom, atau baris, database NoSQL menawarkan model yang fleksibel. Dalam kasus penggunaan yang tidak memerlukan konsistensi relasional, model ini membantu kinerja NoSQL lebih baik daripada basis data relasional.

Fitur Basis Data NoSQL

Database NoSQL secara struktural beragam dan menawarkan berbagai model penyimpanan data. Namun, ada beberapa atribut umum yang membedakan NoSQL dari database relasional.

Skema saat Dibaca

Basis data NoSQL memungkinkan Anda menyimpan data sebelum menerapkan struktur atau skema .

Skema diterapkan oleh kode aplikasi hanya ketika mengakses data. Proses ini sering disebut sebagai skema saat dibaca . Dengan tidak menyusun data terlebih dahulu, database NoSQL dapat menulis dan membaca volume data yang sangat besar secara signifikan lebih cepat daripada database relasional.

NoSQL vs Database Relasional

Sebaliknya, model relasional SQL, menyusun data yang masuk sebelum ditulis ke database. Desain skema yang telah ditentukan digunakan untuk mengklasifikasikan semua tipe data yang mungkin sebelumnya. Skema diterapkan di seluruh papan sebagai data terstruktur dan disimpan dalam tabel, kolom, dan baris.

Struktur tabular yang ketat merupakan keuntungan ketika membangun hubungan antara tabel dan elemen database. Konsistensi dan integritas data dijamin dengan mematuhi skema ini.

Model Data Non-Relasional

Database NoSQL tidak membuat hubungan antara catatan individu. Satu record biasanya disimpan sebagai dokumen JSON individual dan direplikasi di beberapa node dalam sebuah cluster.

Kami akan menggunakan contoh sederhana yang melibatkan data tentang band musik. Dalam model non-relasional, BandID , Nama Band , Negara , Genre , Label , ID Album , Nama Album, dan Tanggal Rilis atribut disimpan dalam satu Radiohead dokumen. Jika Anda perlu menemukan tanggal rilis untuk album Radiohead, OK Computer , responnya cepat kilat. Kueri memberikan hasil lebih cepat karena tidak perlu mengambil informasi dari beberapa tabel (seperti dalam database relasional), melainkan dari satu entri.

Data teragregasi dalam satu catatan tidak dapat dikaitkan dengan data teragregasi di catatan lain. Setiap catatan yang relevan dalam database perlu diperbarui jika Anda ingin menambahkan atribut seperti layanan streaming. Basis data NoSQL, oleh karena itu, paling cocok untuk volume data besar yang tidak perlu terstruktur atau terkait di lain waktu.

BASA vs ASAM

Apakah database perlu membatalkan operasi dan memastikan konsistensi data jika terjadi kegagalan jaringan? Atau haruskah database mengambil risiko inkonsistensi data untuk memastikan ketersediaan tinggi?

Fokus utama NoSQL adalah menjaga ketersediaan dengan menawarkan konsistensi pada akhirnya. Konsistensi akhirnya adalah bagian dari semantik BASE. BASE menyatakan bahwa setelah data ditulis, pada akhirnya akan muncul untuk dibaca. Tanpa jaminan yang kuat, Anda hanya memiliki kemungkinan terbatas untuk mengetahui keadaan saat ini, karena mungkin belum konvergen. Jika sistem berfungsi dan Anda menunggu cukup lama setelah serangkaian input tertentu, Anda akhirnya akan mengetahui status database yang sebenarnya.

Kelemahannya adalah bahwa data mungkin tidak bertahan setelah konflik didamaikan. Pembacaan mungkin tidak mendapatkan penulisan terbaru untuk periode yang tidak diketahui. Postingan Facebook yang tidak muncul selama beberapa menit dapat diterima, tetapi tidak dapat melihat transaksi keuangan secara langsung adalah masalah yang signifikan.

ASAM

  • A tomisitas. Hanya data tertentu yang terpengaruh oleh operasi.
  • C konsistensi. Setiap operasi memindahkan database dari satu status konsisten ke status konsisten lainnya.
  • Saya pelipur lara. Satu operasi tidak memengaruhi operasi bersamaan lainnya.
  • D urabilitas. Data tidak akan hilang setelah transaksi berhasil.

DASAR

  • B biasanya A tersedia. Operasi menulis dan membaca tersedia sebanyak mungkin tetapi tanpa jaminan yang ketat.
  • S sering Negara. Tanpa jaminan, kami tidak tahu tetapi memiliki harapan bahwa data pada akhirnya menjadi konsisten.
  • E Konsistensi akhir. Jika sistem berfungsi penuh, dan periode yang cukup lama telah berlalu, pada akhirnya kita akan mengetahui keadaan database yang sebenarnya.

Database relasional fokus pada konsistensi sebagai fitur yang lebih penting untuk dipertahankan. konsistensi properti database memastikan bahwa jika Anda menulis catatan ke database dan kemudian segera meminta catatan itu, Anda dijamin akan melihatnya. Kumpulan properti ACID, yang diterapkan oleh database relasional, berarti bahwa setelah data ditulis, Anda memiliki konsistensi penuh dalam pembacaan.

Pelajari lebih lanjut tentang dua model transaksi database paling populer dan perbedaannya dalam artikel ACID vs BASE.

Penskalaan Horizontal

Perusahaan telah menemukan cara efektif untuk menguangkan data. Pesatnya pertumbuhan volume, kecepatan, dan variasi data tersebut telah menyebabkan lonjakan basis data NoSQL.

Situs web utama dan platform online diperlukan untuk mengatasi beberapa keterbatasan basis data relasional, seperti kecepatan baca/tulis dan kebutuhan untuk menormalkan data terlebih dahulu. Satu batasan signifikan adalah ketidakfleksibelan model relasional ketika datang untuk scaling out. Dalam model relasional, data biasanya tidak dipartisi atau dipisahkan. Sebaliknya, ini terkonsentrasi pada satu node, dan basis data hanya dapat ditingkatkan dengan meningkatkan kekuatan perangkat keras yang ada.

Basis data NoSQL dirancang untuk berjalan secara efisien pada sistem terdistribusi yang dengan cepat menskalakan secara horizontal. Sistem terdistribusi memiliki manfaat tambahan untuk menyediakan ketersediaan tinggi yang konstan. Beberapa replika catatan disimpan di server dan rak, dan kegagalan perangkat keras tidak memengaruhi ketersediaan data. Anda dapat dengan aman menggunakan perangkat keras komoditas alih-alih server kelas atas yang mahal untuk mengelola beban data yang melonjak.

Jenis Basis Data NoSQL

Model database non-relasional dapat secara luas diklasifikasikan ke dalam empat kategori.

  • Sebuah penyimpanan nilai kunci memungkinkan Anda menyimpan semua jenis data di bawah kunci unik.
  • Database dokumen menggunakan pendekatan serupa dengan menggabungkan tipe data yang berbeda dalam satu dokumen JSON atau XML.
  • Berbasis kolom basis menyimpan data di bawah kolom pilihan Anda.
  • Basis data grafik menetapkan tepi dan properti untuk simpul yang mewakili elemen data.

Database Nilai-Kunci

Database nilai kunci, kadang-kadang disebut sebagai penyimpanan nilai kunci, menggunakan model data paling sederhana – pasangan kunci dan nilai. Aplikasi mengambil nilai menggunakan kunci unik.

Nilai dapat berisi struktur atau tipe data apa pun. Terserah aplikasi mencoba mengakses data untuk memahami konten.

Contoh database nilai kunci termasuk Redis, Riak , Aerospike , dan Oracle NoSQL .

Database Berbasis Kolom

Basis data berbasis kolom berfokus pada efisiensi operasi baca. Jika Anda perlu membaca beberapa kolom dari beberapa baris dengan cepat, masuk akal untuk mengatur data dalam grup kolom (yaitu, keluarga kolom).

Struktur model terdiri dari pengidentifikasi baris yang mendefinisikan data agregat dan agregat baris yang terdiri dari nilai tingkat sekunder yang lebih mendetail (yaitu, kolom ).

Kasandra , HBase , Amazon DynamoDB dan Klikhouse , adalah beberapa solusi berbasis kolom yang banyak digunakan.

Database Dokumen

Database dokumen menyimpan sebagian data terstruktur dalam dokumen, menggunakan JSON, BSON, XML, atau format lainnya. Data di dalam dokumen semi-terstruktur untuk memberikan lebih banyak fleksibilitas saat melakukan kueri. Tidak seperti penyimpanan nilai kunci dasar, pengguna tidak perlu mengambil seluruh catatan, hanya bagian dokumen yang relevan.

Dokumen yang menghadap web, komentar pengguna, dan aplikasi penerbitan web semuanya mendapat manfaat dari model data ini. NoSQL berbasis dokumen yang terkenal adalah MongoDB , OrientDB , Apache CouchDB , dan MarkLogic .

Basis Data Grafik

Database grafik mengatur data ke dalam Node, dengan Edges membangun hubungan antara node data ini.

Model penyimpanan data ini terbukti berguna dalam aplikasi yang menekankan hubungan, seperti platform media sosial, perangkat lunak hubungan pelanggan, dan sistem perjalanan dan reservasi.

OrientDB dan MarkLogic berbasis dokumen dapat berfungsi sebagai basis data grafik. JanusGraph , RedisGraph , dan Neo4j adalah solusi berbasis grafik yang populer.

Kelebihan NoSQL

  • Kinerja – Basis data NoSQL menawarkan kinerja yang lebih baik dalam kasus penggunaan yang menangani data yang tidak terlalu relasional. NoSQL mengharapkan skema yang didenormalisasi dan mengoptimalkan pembacaan yang sesuai.
  • Fleksibilitas – Skema dinamis NoSQL memfasilitasi penyimpanan data tidak terstruktur dengan cara yang optimal untuk kasus tertentu. Ini memungkinkan pembuatan dokumen tanpa mendefinisikan strukturnya.
  • Skalabilitas – Meskipun dimungkinkan untuk menskalakan RDBMS secara vertikal dengan meningkatkan memori, penyimpanan, atau kekuatan pemrosesan mesin, NoSQL memiliki manfaat tambahan dari penskalaan horizontal. Artinya, peningkatan lalu lintas dapat ditangani dengan meningkatkan basis data dengan server tambahan.

Kapan Menggunakan NoSQL?

Mencoba menerapkan solusi database tunggal untuk setiap skenario yang mungkin bukanlah ide yang baik. Tipe database berbeda yang tercakup dalam artikel ini dirancang untuk menangani masalah data tertentu. Ini tidak terbatas pada database NoSQL. Bahkan database relasional berjuang untuk menstandarisasi berbagai tipe data ke dalam skema yang ketat.

Cara kerja database relasional didokumentasikan dengan baik dan dapat diprediksi. Bahasa SQL dan seperangkat alat yang dibuat menggunakan teknologi relasional ada di mana-mana, dengan staf yang berpengalaman tersedia. Model database relasional memungkinkan Anda untuk mengakses data dengan berbagai cara yang berbeda dan kreatif dan tidak dibatasi oleh cara data disimpan.

Data Besar

Big Data dan nilai dalam menangkap sebanyak mungkin secara teknis, bukanlah beban kerja yang cocok untuk model relasional. Basis data NoSQL yang tidak menggunakan skema ketat, merupakan pilihan yang sangat baik untuk menyimpan sejumlah besar data yang beragam dan tidak terstruktur.

Pengembangan Perangkat Lunak

Pengembangan aplikasi secara dramatis mendapat manfaat dari database NoSQL. Banyak waktu pengembang yang berharga terbuang sia-sia untuk memetakan data antara struktur data dalam memori dan database relasional. Basis data NoSQL berarti Anda membuat model Anda, yang disesuaikan untuk memenuhi kebutuhan aplikasi yang mengaksesnya dan mungkin mengurangi jumlah pengkodean yang diperlukan.

Jika database tidak memiliki skema, itu berarti aplikasi yang mengakses data harus memilikinya. Ini dapat dengan cepat menjadi masalah jika lebih dari satu aplikasi, yang dikembangkan secara independen satu sama lain, perlu mengakses database yang sama.

Inkonsistensi dalam pembacaan akhirnya teratasi, tetapi kurangnya konsistensi dalam penulisan adalah masalah serius. Masalah ini sering diselesaikan dengan membatasi semua interaksi database dalam satu aplikasi dan mengintegrasikannya dengan aplikasi lain menggunakan layanan web. Solusi ini berhubungan baik dengan tren umum untuk menggunakan layanan web untuk tujuan integrasi.


Ubuntu
  1. Jenis Basis Data NoSQL

  2. Apa itu Basis Data Relasional?

  3. Database NoSQL Terdistribusi Elasticsearch – Apa Itu dan Haruskah Anda Menggunakannya?

  1. SQL vs NoSQL:Apa Perbedaannya?

  2. Arsitektur Data Warehouse Dijelaskan

  3. Apa itu Spark DataFrame?

  1. Jenis Basis Data Dijelaskan

  2. Apa itu Basis Data Relasional?

  3. Apa Itu Database Server &Untuk Apa Digunakan?