https://s3-us-west-2.amazonaws.com/secure.notion-static.com/22074857-6418-4e00-81b2-bf8c5b420648/Evolusi-Arsitektur-input-proses-output-db.png

Kita sudah memahami bahwa hampir dalam setiap program komputer terdapat komponen input, output, dan proses.

Dalam perkembangan selanjutnya, terkadang kita membutuhkan media penyimpanan yang memilki sifat permanen (persistent).

Misalnya terkadang kita perlu melihat data penjualan yang sudah kita inputkan kemarin, atau mungkin kita ingin melihat berapa banyak saldo ovo/gopay yang kita miliki setelah kita melakukan transaksi. Tentu saja akan merepotkan jika setiap kali membuka program, maka kita harus memasukkan semua data yang pernah kita masukkan sebelumnya dari awal.

File

Untuk menyimpan data secara persistent, biasanya kita harus menggunakan file. Ini cukup masuk akal. Dalam kehidupan sehari-haripun kita kerap menyimpan dokumen dalam file doc atau docx. Sementara itu, untuk data-data yang sekiranya memiliki struktur menyerupai tabel, kita kerap menggunakan file excel (xls atau xlsx).

Walaupun sebuah file dokumen atau file excel sudah cukup untuk menyimpan data dalam jumlah kecil, namun kedua format ini memiliki beberapa kelemahan:

Database/DBMS

Untuk kepentingan yang lebih umum, kita bisa menggunakan database management system (DBMS).

Secara low level, sebenarnya DBMS seperti postgre/mysql juga menyimpan data-datanya dalam bentuk file. Pada mysql misalnya, file-file yang dimaksud bisa kita lihat di directory /var/lib/mysql.

Lalu apa yang menjadikan DBMS istimewa? Mengapa tidak cukup menggunakan file saja?

Dibandingkan dengan file excel, struktur tabel pada database tradisional (seperti postgre/mysql) terkesan memiliki banyak batasan. Beberapa batasan tersebut antara lain: