Menghubungkan website dengan database adalah membuat halaman web dapat menyimpan dan membaca data yang tersimpan terstruktur, seperti pengguna, pesanan, atau artikel. Hubungan ini hampir selalu melewati lapisan perantara di server, bukan langsung dari peramban pengunjung.
Arsitektur sederhana
- Frontend. Halaman yang dilihat pengunjung, berjalan di peramban.
- Backend atau API. Program di server yang menerima permintaan, memeriksa hak akses, dan berbicara dengan database.
- Database. Tempat data tersimpan.
Frontend meminta data ke API; API memvalidasi lalu membaca atau menulis ke database dan mengembalikan hasil. Kredensial database hanya diketahui backend.
Memilih jenis database
| Jenis | Cocok untuk |
|---|---|
| Relasional (tabel dan relasi) | Data terstruktur seperti pesanan, pelanggan, dan stok |
| Dokumen | Data fleksibel seperti profil atau konten |
| Spreadsheet sebagai penyimpanan ringan | Volume kecil dan kolaborasi sederhana |
Pilihan bergantung pada struktur data, jumlah pengguna, dan kemampuan tim.
Langkah umum
- Rancang data: tabel atau koleksi, kolom, dan hubungan.
- Siapkan database dan akun dengan hak akses minimal.
- Bangun API dengan operasi yang diperlukan.
- Validasi semua masukan di server.
- Gunakan kueri berparameter untuk mencegah penyuntikan perintah (injection).
- Simpan kredensial di variabel lingkungan, bukan di kode yang dibagikan.
- Sambungkan frontend ke API.
- Atur pencadangan dan pantau.
Keamanan yang tidak boleh dilewatkan
- Jangan menyimpan atau menampilkan kata sandi apa adanya; gunakan penyimpanan hash.
- Batasi akses per peran.
- Gunakan koneksi terenkripsi.
- Lindungi data pribadi sesuai ketentuan pelindungan data.
- Uji dengan masukan aneh dan kasus penyalahgunaan.
Kesimpulan
Koneksi database merupakan inti banyak aplikasi web, yaitu sekaligus titik risiko keamanan terbesar. Pegangannya ialah perantara yang aman. Lihat cara membuat API sederhana dan jasa integrasi database. Valtef membangun sistem berbasis web dengan database secara bertahap; ceritakan kebutuhan Anda.
Pertanyaan yang sering diajukan
Apakah semua website butuh database?
Tidak; situs statis atau profil tidak membutuhkannya.
Bisakah memakai spreadsheet sebagai database?
Untuk volume kecil, ya, dengan keterbatasan.
Bagaimana mencadangkan?
Pencadangan terjadwal dan uji pemulihan.