Cara simpan, ambil, dan kelola data persistent. Relational vs NoSQL.
Data terstruktur dalam tabel dengan baris dan kolom. Tabel saling terhubung lewat foreign key. Contoh: MySQL, PostgreSQL. Normalisasi mengurangi duplikasi data.
Untuk data tidak terstruktur atau semi-terstruktur. Tipe: document (MongoDB), key-value (Redis), wide-column (Cassandra), graph (Neo4j). Pilih sesuai use case.
Plan tabel sebelum bikin. Tentukan kolom, tipe data, relasi. Foreign key untuk integritas referensial. Index untuk performa query. Pikirkan dari awal, mahal mengubah di kemudian hari.
Akselerasi query lookup. Tanpa index, database scan semua baris. Dengan index, langsung ke posisi. Tapi ada cost: storage tambahan dan slow write. Index kolom yang sering di-filter.
ORM (Object Relational Mapper): productivity tinggi, code readable. Tapi bisa lambat untuk query kompleks. Raw query: kontrol penuh dan performa. Pakai ORM untuk 80% case, raw untuk hot path.