Kapan seharusnya suatu basis data lebih disukai untuk menyimpan data daripada menyimpan data dalam file teks?
Wikipedia memberi tahu kita bahwa database adalah kumpulan data yang terorganisir . Dengan ukuran itu, file teks Anda adalah database. Selanjutnya dikatakan:
Data biasanya disusun untuk memodelkan aspek-aspek realitas yang relevan dengan cara yang mendukung proses yang membutuhkan informasi ini. Misalnya, memodelkan ketersediaan kamar di hotel dengan cara yang mendukung menemukan hotel dengan lowongan.
Bagian itu subyektif - tidak memberi tahu kami secara khusus bagaimana data harus dimodelkan atau operasi apa yang perlu dioptimalkan. File teks Anda terdiri dari sejumlah catatan berbeda, satu untuk setiap hari, jadi Anda memodelkan aspek realitas dengan cara yang relevan dengan masalah Anda.
Saya menyadari bahwa ketika Anda mengatakan "database" Anda mungkin berpikir tentang semacam sistem manajemen database relasional, tetapi memikirkan file teks Anda sebagai database mengubah pertanyaan Anda dari "kapan saya harus menggunakan database?" ke "basis data apa yang harus saya gunakan?" Melihat hal-hal seperti itu membuat jawaban lebih mudah dilihat: gunakan basis data yang lebih baik ketika yang Anda miliki tidak lagi memenuhi persyaratan Anda.
Jika skrip Python dan file teks sederhana Anda berfungsi cukup baik, tidak perlu diubah. Dengan hanya satu catatan baru per hari dan komputer semakin cepat setiap tahun, saya menduga bahwa solusi Anda saat ini bisa bertahan untuk waktu yang lama. Nilai satu dekade data akan memberi Anda hanya 3650 catatan yang, setelah diurai, mungkin akan membutuhkan kurang dari 75 kilobyte.
Bayangkan bahwa alih-alih satu catatan kecil per hari, Anda memutuskan untuk merekam setiap pertanyaan yang ditanyakan pada CodeReview, siapa yang bertanya, dan kapan. Selain itu, Anda juga mengumpulkan semua jawaban dan metadata yang relevan. Anda dapat menyimpan semua itu dalam file teks, tetapi file flat akan mempersulit untuk menemukan informasi ketika Anda membutuhkannya. Akan ada terlalu banyak data untuk membaca semuanya ke dalam memori, jadi setiap kali Anda ingin menemukan pertanyaan atau jawaban, Anda harus memindai melalui file sampai Anda menemukan apa yang Anda cari. Ketika Anda ingin menemukan semua pertanyaan yang diajukan oleh pengguna tertentu, Anda harus memindai seluruh file. Jika Anda ingin menemukan semua pertanyaan yang memiliki "bug" sebagai tag, Anda harus memindai melalui file.
Itu akan sangat lambat, jadi Anda mungkin memutuskan untuk mempercepat dengan membuat beberapa indeks yang memberi tahu Anda ke mana harus mencari file untuk menemukan catatan yang diberikan. Anda bisa memiliki indeks untuk pertanyaan, yang lain untuk pengguna, yang ketiga untuk jawaban, dan sebagainya. Ketika Anda ingin menemukan pertanyaan, Anda akan mencari indeks pertanyaan (jauh lebih kecil), dapatkan posisi pertanyaan di file data utama, dan lompat cepat ke tempat yang tepat di file. Itu akan menjadi peningkatan kinerja besar. Memang, itulah yang disebut sistem manajemen basis data.
Jadi, gunakan DBMS saat itu yang Anda butuhkan. Gunakan ketika Anda memiliki banyak data, ketika Anda harus dapat mengakses data itu dengan cepat dan mungkin dengan cara yang tidak dapat Anda prediksi sepenuhnya sejak awal. Jika Anda memiliki berbagai jenis data - berbagai jenis catatan - yang terhubung satu sama lain, gunakan RDBMS sehingga Anda dapat menghubungkan berbagai catatan dengan tepat.