Jika Anda baru saja mulai menjelajahi dunia basis data, Anda mungkin sudah mengetahui dua hal, menggunakan data secara efektif sangat menguntungkan, dan memilih basis data untuk mengelola data tersebut bisa sangat membingungkan.
Memang benar, kemampuan data untuk meningkatkan pendapatan total semakin meningkat. Hal ini dapat mengoptimalkan pengalaman dan mendukung machine learning. Tapi itu berarti ada ratusan vendor yang berjuang untuk menyimpan dan menganalisisnya untuk Anda. Bagaimana Anda harus memilihnya? Yah, seperti kebanyakan hal dalam hidup, pengetahuan adalah kekuatan.
Lihat ikhtisar lingkungan basis data ini, khususnya cara menempatkan basis data ke dalam konteks bisnis. Kita akan mulai dengan menyelami perizinan dan pemodelan data secara mendalam.
Sederhananya, lisensi perangkat lunak itu kompleks. Bukan hanya hak kekayaan intelektual (untuk itu, saya sarankan untuk membaca buku Besen & Raskind "An Introduction to the Law and Economics of Intellectual Property" dan karya Rosen Open Source Licensing: Software Freedom and Intellectual Property Law), tetapi khususnya, mengapa Anda harus peduli dengan implikasi lisensi dan tren dalam lingkungan basis data sumber terbuka pada bisnis Anda.
Siap?
Semua lisensi perangkat lunak memiliki aturan dan regulasi tentang bagaimana Anda menggunakan teknologi yang harus Anda ikuti. Itu berarti lisensi perangkat lunak yang Anda adopsi dapat memiliki dampak nyata pada bagaimana Anda melakukan bisnis. Mengabaikan atau melanggar peraturan ini dapat membuat Anda menghadapi risiko hukum, kerugian finansial, dan, sejujurnya, menodai reputasi perusahaan Anda. Apakah Anda membeli perangkat lunak atau mengadopsi teknologi sumber terbuka, lisensi pada akhirnya akan membatasi penggunaan kode dalam beberapa kapasitas. Semua ini untuk mengatakan, waspadalah terhadap kendala ini saat Anda mengembangkan produk Anda untuk membantu mengurangi risiko hukum jangka panjang.
Selanjutnya, perlu diingat bahwa lisensi tidak diperbaiki. Faktanya, saat ini, banyak perusahaan yang mendukung proyek basis data sumber terbuka sedang dalam proses mengubah lisensi basis data mereka menjadi lebih ketat. Bergantung pada contoh penggunaan Anda, hal itu bisa berarti bahwa jika Anda telah menggunakan basis data secara gratis, Anda sekarang mungkin terkena tindakan hukum. Ini bukan untuk menakut-nakuti Anda, ini hanya untuk memastikan Anda tetap waspada. Ketika perubahan ini terjadi, penting untuk bereaksi dengan tepat. Dalam beberapa kasus, perubahan lisensi mungkin memerlukan perancangan ulang layanan, mengadopsi basis data yang berbeda, atau membuat perjanjian komersial dengan vendor.
Mereka yang sering mengunjungi Hacker News atau TechCrunch tidak akan asing dengan percakapan seputar perangkat lunak sumber terbuka dan basis data komersial. Inilah intinya: Dalam tiga tahun terakhir, perdebatan telah meletus karena pertemuan beberapa faktor seperti pertumbuhan vendor cloud publik utama dan keberhasilan pasar, atau kurangnya, penyedia basis data yang berpusat pada sumber terbuka.
Dengan demikian, hubungan antara perangkat lunak bebas dan perangkat lunak berpemilik bukan biner—ini tentu saja adalah sebuah spektrum:
Catatan: Jarak yang diilustrasikan adalah nonilmiah, relativitas lebih penting.
Melihat spektrum di atas, di paling kiri, ada lisensi perangkat lunak basis data komersial, atau berpemilik, seperti Oracle, IBM Db2, dan Microsoft SQL Server. Ini adalah teknologi canggih dan kaya fitur yang memberi daya pada beban kerja di setiap vertikal industri. Ketika membeli perangkat lunak ini dari vendor, atau sebagai layanan cloud, Anda membayar premi untuk mendapatkan akses ke hal-hal berikut ini:
Dukungan tingkat kode
Ekosistem perkakas yang kuat
Layanan dan konsultan profesional
Visibilitas dan pengaruh ke dalam peta jalan basis data itu
Di sebelah kanan, ada perangkat lunak domain publik. Perangkat lunak ini tidak memiliki hak cipta sama sekali, yang berarti bahwa perangkat lunak ini dapat dimodifikasi, didistribusikan, atau dijual tanpa batasan. Proyek di dekat ujung kanan spektrum sering diatur oleh standar pihak ketiga yang tidak memihak dan tidak bias, seperti Apache Software Foundation atau Linux Foundation.
Inisiatif Sumber Terbuka (OSI) mempertahankan daftar yang diterima secara umum tentang apa yang merupakan dan apa yang bukan lisensi sumber terbuka. Secara umum, perangkat lunak sumber terbuka ditandai dengan kemampuan untuk "memanipulasi kode". Ini berarti bahwa jika arah proyek (perangkat lunak) bertentangan dengan apa yang Anda butuhkan atau inginkan, Anda dapat memodifikasi atau mengedit kode sesuai keinginan Anda.
Menggunakan teknologi sumber terbuka sangat menarik karena biaya lisensi nol, transparansi pengembangan yang lebih besar, dan inovasi yang berasal dari keberagaman pemangku kepentingan, pengelola, dan ruang masalah. Dibandingkan dengan perangkat lunak komersial, dengan perangkat lunak sumber terbuka, Anda melepaskan pengaruh peta jalan, jaminan seputar perbaikan atau patch keamanan, dan kontrak dan mendapatkan zero vendor lock-in dan peningkatan fleksibilitas lini bisnis. (Anda dapat melihat bahwa itu adalah keseimbangan yang perlu Anda dan tim Anda pertimbangkan dengan cermat.)
Mengikuti perjalanan pada bagan di atas dari kiri ke kanan, terdapat berbagai tingkat lisensi yang berbeda-beda seperti Apache 2.0, MPL, dan GPL 3.0.
Apache 2.0: Apache Cassandra, Apache CouchDB
Lisensi Publik Mozilla: RabbitMQ
BSD: Redis
GPL 3.0: Neo4j
Kepemilikan: IBM Db2, Microsoft SQL Server
Pada akhir tahun 2000-an, sebagian besar vendor basis data yang baru lahir menuju ke pasar sebagai "sumber terbuka" untuk mendapatkan akses yang mudah untuk diadopsi dan berbagi pikiran pengembang. Anda mungkin tahu perusahaan di sisi ini, seperti Mongo Inc., Redis Labs, dan Elastic. Semua perusahaan ini mengembangkan proyek komunitas seperti MongoDB, Redis, dan Elasticsearch, tetapi ingin memonetisasi investasi itu dengan versi Enterprise, implementasi cloud terkelola, atau layanan profesional.
Namun, pergeseran paradigma komputasi cloud telah membuat model bisnis ini genting karena vendor besar dapat dengan mudah menyediakan teknologi ini sebagai layanan terkelola platform asli kelas satu. Penawaran ini disampaikan dengan integrasi yang menarik untuk keamanan, kepatuhan, pemantauan, dan pencatatan di cloud masing-masing, tanpa memberikan kompensasi yang dijamin kepada pembuat perangkat lunak.
Dalam beberapa tahun terakhir, perusahaan telah mengevaluasi kembali Rute ke Pasar mereka. Sekarang, kita melihat mereka mengadopsi model lisensi yang melindungi investasi pengembangan mereka. Misalnya, MongoDB, Redis Labs, dan Confluent, dengan berbagai tingkat keparahan, semuanya telah mengubah lisensi bagian kode untuk mencegah perusahaan lain menjalankannya sebagai layanan tanpa kompensasi.
“Jadi, Josh, apa nasihatmu?” Pertanyaan bagus.
Begini, ada alasan bagus untuk menggunakan basis data komersial dan/atau sumber terbuka. Yang penting adalah Anda tahu apa yang Anda masukkan ke dalam diri dan perusahaan Anda. Tinjau lisensi sebelum Anda membangun aplikasi untuk memastikan proyek Anda sesuai, dan jika ingin memilih lisensi untuk proyek sumber terbuka, lihat halaman web "Pilih Lisensi" Github.
Jadi, salah satu pertimbangan penting adalah lisensi, karena tidak ada orang yang mau dituntut. Yang lainnya adalah keluarga model data, tetapi untuk alasan yang berbeda. Saat membuat aplikasi, mengetahui jenis model data akan membantu Anda memilih alat yang tepat untuk pekerjaan itu.
Sekarang setelah Anda memahami tentang lisensi, mari kita bahas tentang pertimbangan penting lainnya ketika memilih basis data Anda—model data.
Ketika saya pertama kali mulai bekerja di IBM, saya harus cepat tanggap, jadi saya beralih ke NoSQL Distilled karya Martin Fowler.
Dalam tulisannya, dan dalam industri pada umumnya, orang cenderung mengategorikan basis data ke dalam lima kelompok “model data”: dokumen, nilai kunci, grafik, relasional, dan kolom lebar. Berikut adalah ikhtisar singkat dari masing-masing, termasuk contoh penggunaan dan contoh khusus basis data. Ini akan membantu Anda menentukan, berdasarkan kumpulan data dan kebutuhan bisnis Anda, basis data mana yang Anda butuhkan.
Dalam hal ini, data dimodelkan dalam dokumen mirip JSON, bukan baris dan kolom. Basis data ini, pada dasarnya menilai ketersediaan dibandingkan konsistensi transaksional. Basis data dokumen cocok untuk kesederhanaan dan skalabilitas, serta iterasi cepat dalam pengembangan.
Contoh penggunaan bisnis
Aplikasi mobile yang membutuhkan iterasi cepat
Pencatatan peristiwa, belanja online, manajemen konten, dan pemrosesan analitik mendalam
Katalog retail dengan atribut produk
Contohnya:
Firebase
Jenis model ini merupakan jenis basis data nonrelasional yang paling dasar, di mana setiap item dalam basis data disimpan sebagai nama atribut (disebut sebagai kunci) dengan nilai yang sesuai.
Contoh penggunaan bisnis:
Preferensi pengguna dan penyimpanan profil
Rekomendasi produk berdasarkan data penelusuran
Keranjang belanja
Contohnya:
DynamoDB
Redis
dlld
Data di sini dimodelkan sebagai verteks dan tepi (nilai dan koneksi). Sama halnya dengan cara orang berpikir dan memproses informasi, basis data grafik mengingat hubungan antara unit data yang terpisah. Basis data ini membuat ketekunan, eksplorasi, dan visualisasi data dan hubungan lebih intuitif.
Contoh penggunaan bisnis:
Deteksi penipuan
Mesin rekomendasi real-time
Master Data Management
Operasi jaringan dan TI
Manajemen identitas & akses
Contohnya:
Neo4j
AWS Neptune
Model relasional , diperkenalkan oleh R.F. Codd saat berada di IBM, adalah raksasa industri ini. Data disimpan dalam tabel sebagai baris dan kolom dan sering kali memiliki mesin kueri yang canggih untuk analitik dan eksplorasi. Basis data relasional mendukung jaminan transaksional dan kepatuhan ACID (atomisitas, konsistensi, isolasi, dan daya tahan), sedangkan sebagian besar basis data di empat keluarga lainnya pada akhirnya konsisten.
Contoh penggunaan bisnis:
E-commerce
Perencanaan Sumber Daya Perusahaan
Manajemen hubungan pelanggan
Contohnya:
IBM Db2
Penyimpanan keluarga kolom memungkinkan akses data yang sangat cepat menggunakan kunci baris, nama kolom, dan stempel waktu sel. Skema fleksibel dari jenis basis data ini berarti bahwa kolom tidak harus konsisten di seluruh catatan, dan Anda dapat menambahkan kolom ke baris tertentu tanpa harus menambahkannya ke setiap catatan. Penyimpanan kolom lebar berasal dari makalah BigTable milik Google. Model data ini tidak boleh disamakan dengan model penyimpanan Berorientasi Kolom, yang lebih relevan dengan teknologi pergudangan data dan pola akses analitis karena peningkatan kompresi data pada disk dan penggunaan CPU yang lebih efisien.
Contoh penggunaan bisnis
Analitik keamanan dan pasar saham
Analitik aliran klik
IoT dan telemetri
Contohnya:
Apache Cassandra
DataStax Enterprise
Google Cloud BigTable
Penjelasan panjang dan singkatnya begini—ada kelebihan dan kekurangan pada setiap model data primer (dan kita baru saja membahas permukaannya di sini). Tetapi jika ragu, gunakan sesuatu yang telah teruji dan ada di mana-mana seperti PostgreSQL. Untuk mempelajari lebih lanjut tentang pola dasar Keluarga Model Data, lihat buku Martin Fowler yang berjudul NoSQL Distilled, khususnya bab 8-11.
Fiuh! Saya sudah membahas sedikit tentang hal ini di sini, tetapi jika Anda ingin mempelajari lebih lanjut, berikut adalah beberapa saran berdasarkan investasi waktu:
15 menit: “How to Choose a Database” oleh Ben Anderson
15 menit: “SQL vs. NoSQL Databases: What’s the Difference?” oleh Ben Anderson dan Brad Nicholson
Tiga jam: Analisis Jepsen tentang keamanan sistem terdistribusi
Satu minggu: Designing Data-Intensive Applications oleh Martin Kleppman.
Ingin membangun? IBM Cloud memiliki berbagai layanan basis data terkelola untuk membantu tim Anda bergerak cepat.