Apa Itu Pangkalan Data? Panduan untuk Pembina Aplikasi
Pangkalan data ialah stor maklumat yang tersusun yang disimpan dan dibaca oleh aplikasi, seperti pengguna, pesanan, tempahan dan mesejnya. Tidak seperti maklumat yang disimpan hanya dalam tab pelayar, data dalam pangkalan data kekal selepas muat semula atau dimulakan semula, dan setiap orang yang menggunakan aplikasi melihat rekod yang sama. Kebanyakan pangkalan data menyusun data ke dalam jadual, seperti helaian dalam hamparan, tetapi dengan peraturan ketat yang memastikan data kekal konsisten.
Mengapa ia penting apabila anda membina dengan AI
Kejutan yang paling biasa bagi orang yang membina dengan AI ialah aplikasi yang kelihatan siap tetapi melupakan segalanya. Anda menambah pelanggan, memuat semula halaman, dan ia hilang. Itu biasanya bermakna aplikasi menyimpan data dalam memori pelayar, bukan dalam pangkalan data.
Pangkalan data juga tempat banyak keputusan paling penting anda berada, sama ada anda menyedarinya atau tidak:
- Apa yang anda rekodkan. Jika anda tidak menyimpan status tempahan, anda tidak boleh menunjukkan tempahan mana yang dibatalkan.
- Bagaimana perkara berhubung. Sama ada seorang pelanggan boleh mempunyai banyak tempahan, atau satu tempahan banyak perkhidmatan, membentuk keseluruhan aplikasi.
- Siapa boleh melihat apa. Kebanyakan kesilapan privasi berkisar tentang rekod mana yang boleh dibaca oleh pengguna.
Anda tidak perlu mereka bentuk pangkalan data sendiri. Tetapi memahami asasnya membolehkan anda menerangkan data dengan jelas dan mengesan masalah lebih awal.
Analogi harian
Bayangkan sebuah kabinet fail yang tersusun rapi di pejabat kecil.
Setiap laci memegang satu jenis perkara: satu laci untuk pelanggan, satu untuk temu janji, satu untuk invois. Di dalam setiap laci, setiap fail mengikut format yang sama, dengan medan yang sama diisi. Setiap fail mempunyai nombor rujukan yang unik, dan apabila invois tergolong kepada seorang pelanggan, fail invois itu mencatatkan nombor pelanggan tersebut dan bukannya memfotokopi keseluruhan failnya.
Itulah pangkalan data hubungan. Laci ialah jadual, fail ialah baris, medan ialah lajur, nombor rujukan ialah kunci utama, dan nota yang menunjuk ke fail lain ialah kunci asing. Pengurus pejabat yang baik juga menguatkuasakan peraturan, seperti tiada temu janji tanpa tarikh dan tiada dua pelanggan dengan nombor yang sama, sama seperti pangkalan data.
Contoh kerja: aplikasi tempahan salon
Katakan anda meminta AI membina laman tempahan untuk salon rambut. Pangkalan data yang munasabah akan mempunyai empat jadual.
services
| id | name | duration_minutes | price |
|---|---|---|---|
| 1 | Gunting rambut | 45 | 40.00 |
| 2 | Pewarna | 90 | 95.00 |
staff
| id | name | |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
customers
| id | name | phone | |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
bookings
| id | customer_id | service_id | staff_id | starts_at | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmed |
Lihat jadual bookings. Ia tidak menyalin nama dan nombor telefon Lena ke dalam setiap tempahan; ia menyimpan customer_id = 101. Jika Lena menukar nombor telefonnya, ia berubah di satu tempat sahaja dan setiap tempahan memaparkan nombor baharu. Inilah idea teras pangkalan data hubungan: simpan setiap fakta sekali, dan pautkan kepadanya.
Struktur yang sama menjawab soalan yang berguna:
- "Slot mana yang kosong untuk Omar pada hari Jumaat?" Lihat tempahan Omar pada hari itu.
- "Berapa banyak pendapatan perkhidmatan pewarna bulan ini?" Gabungkan tempahan dengan perkhidmatan dan jumlahkan harga.
- "Pelanggan mana yang tidak menempah dalam tempoh 90 hari?" Bandingkan pelanggan dengan tempahan terkini mereka.
Istilah biasa dijelaskan
| Istilah | Maksud |
|---|---|
| Jadual | Koleksi satu jenis rekod, seperti pelanggan atau tempahan. |
| Baris (rekod) | Satu item dalam jadual, satu pelanggan atau satu tempahan. |
| Lajur (medan) | Satu bahagian maklumat yang dimiliki setiap baris, seperti e-mel atau harga. |
| Kunci utama | ID unik bagi setiap baris, biasanya nombor atau rentetan rawak. |
| Kunci asing | Lajur yang menunjuk kepada baris dalam jadual lain, seperti customer_id dalam tempahan. |
| Skema | Reka bentuk keseluruhan: jadual mana yang wujud, lajurnya, dan bagaimana ia berhubung. |
| Pertanyaan (query) | Permintaan untuk membaca atau menukar data, seperti "semua tempahan untuk esok." |
| SQL | Structured Query Language, bahasa standard untuk pertanyaan pangkalan data hubungan. |
| Migrasi | Perubahan skema yang disimpan dan boleh diulang, seperti menambah lajur. |
| Indeks | Struktur carian yang menjadikan pencarian pada lajur lebih pantas, seperti indeks buku. |
| CRUD | Create, Read, Update, Delete: empat perkara asas yang dilakukan aplikasi terhadap data. |
| Sandaran (backup) | Salinan data yang boleh dipulihkan jika sesuatu tidak kena. |
Jenis pangkalan data
| Jenis | Cara ia menyimpan data | Contoh | Sesuai untuk |
|---|---|---|---|
| Hubungan (SQL) | Jadual dengan lajur tetap dan hubungan antaranya | Postgres, MySQL, SQLite | Kebanyakan aplikasi perniagaan: tempahan, kedai, CRM, SaaS |
| Dokumen (NoSQL) | Dokumen fleksibel seperti JSON | MongoDB, Firestore | Data yang bentuknya sangat berbeza dari satu rekod ke rekod lain |
| Nilai-kunci (key-value) | Nilai disimpan di bawah satu kunci | Redis | Caching, data jangka pendek seperti sesi |
Untuk hampir apa sahaja yang pengasas atau perniagaan kecil bina pertama kali, pangkalan data hubungan ialah pilihan lalai yang selamat.
Di mana pangkalan data berada dalam aplikasi anda
Pengunjung tidak bercakap terus dengan pangkalan data. Halaman dalam pelayar mereka (frontend) meminta data daripada pelayan anda (backend), biasanya melalui API. Pelayan menyemak siapa yang meminta dan sama ada mereka dibenarkan, kemudian membuat pertanyaan kepada pangkalan data dan menghantar balik hanya apa yang sepatutnya dilihat oleh orang itu.
Langkah tengah itu penting. Jika pelayar boleh membuat pertanyaan terus ke pangkalan data dengan akses penuh, sesiapa sahaja boleh membuka alat pembangun dan membaca segala-galanya.
Kesilapan dan salah faham yang biasa
- Menyimpan data hanya dalam pelayar. Stor pelayar (seperti localStorage) hidup pada satu peranti dan satu pelayar. Ia sesuai untuk penapis yang diingati, bukan untuk pesanan.
- Memasukkan semuanya dalam satu jadual. Satu jadual "tempahan" dengan nama, telefon dan harga perkhidmatan pelanggan disalin ke setiap baris akan cepat tidak selaras.
- Menyimpan kata laluan sebagai teks biasa. Kata laluan perlu di-hash, tidak sekali-kali disimpan boleh dibaca. Lihat apa itu pengesahan.
- Tiada peraturan pada data. Tanpa medan wajib dan peraturan keunikan, anda akan mendapat tempahan tanpa tarikh dan pelanggan pendua.
- Lupa tentang pemadaman. Tentukan sama ada memadam pelanggan turut memadam tempahannya, mengekalkannya, atau menyekatnya.
- Menggunakan data pengeluaran untuk bereksperimen. Uji perubahan berisiko di tempat yang selamat dahulu, dan simpan sandaran.
- Menganggap hamparan sebagai pangkalan data selamanya. Hamparan sangat baik untuk permulaan, tetapi ia bermasalah dengan ramai pengguna serentak dan kebenaran. Lihat cara menukar hamparan kepada aplikasi.
Apa yang perlu diminta daripada pembina AI anda
- "Simpan ini dalam pangkalan data, bukan dalam pelayar. Beritahu saya jadual mana yang akan anda cipta."
- "Tunjukkan skema sebagai jadual mudah: setiap jadual, lajurnya dan bagaimana ia dipautkan."
- "Seorang pelanggan boleh mempunyai banyak tempahan; setiap tempahan mempunyai tepat satu perkhidmatan dan satu kakitangan."
- "Jadikan e-mel wajib dan unik untuk pelanggan."
- "Hentikan dua tempahan untuk kakitangan yang sama daripada bertindih."
- "Hanya pemilik yang log masuk boleh membaca semua tempahan; pelanggan hanya boleh melihat tempahan mereka sendiri. Kuatkuasakan itu di pelayan."
- "Apabila saya memadam perkhidmatan, jangan padam tempahan lama; tandakan perkhidmatan itu sebagai tidak aktif."
Pangkalan data dalam Mythex
Apabila aplikasi anda perlu menyimpan data, Mythex menambah pangkalan data Postgres khusus kepada projek, anda boleh meminta dalam sembang ("simpan pendaftaran senarai menunggu ke pangkalan data") atau menggunakan arahan /database. Butiran sambungan dihantar kepada aplikasi anda secara automatik, dan ejen mencipta jadual. Pangkalan data tidur selepas lima minit tidak aktif dan bangun pada permintaan seterusnya, dan penggunaan yang diterbitkan dicaj mengikut masa ia terjaga, daripada baki kredit yang sama dengan pembinaan. Ia tersedia pada pelan Free dan Pro. Dokumentasi pangkalan data menerangkan butirannya, dan templat aplikasi termasuk titik permulaan yang dipacu data.
Soalan lazim
Apakah pangkalan data dalam istilah mudah?
Pangkalan data ialah stor maklumat yang tersusun yang boleh disimpan dan dibaca oleh aplikasi, seperti pengguna, pesanan atau tempahan. Tidak seperti data yang disimpan hanya dalam tab pelayar, data dalam pangkalan data kekal selepas muat semula, dimulakan semula, atau apabila seseorang membuka aplikasi dari peranti lain.
Adakah hamparan (spreadsheet) itu pangkalan data?
Hamparan boleh menyimpan jenis data yang sama, tetapi ia tidak dibina untuk aplikasi. Pangkalan data sebenar menguatkuasakan peraturan tentang apa yang dikandungi setiap lajur, menghubungkan jadual dengan boleh dipercayai, mengendalikan ramai orang yang menulis serentak, dan mengawal siapa yang boleh membaca apa.
Apakah perbezaan antara pangkalan data SQL dan NoSQL?
Pangkalan data SQL (hubungan), seperti Postgres dan MySQL, menyimpan data dalam jadual dengan lajur yang ditetapkan dan hubungan antara jadual. Pangkalan data NoSQL, seperti MongoDB, menyimpan dokumen yang lebih fleksibel. Kebanyakan aplikasi perniagaan, seperti tempahan, CRM dan kedai, sesuai dengan model hubungan dengan baik.
Adakah aplikasi saya memerlukan pangkalan data?
Jika ia perlu mengingati apa-apa yang dimasukkan orang, seperti pendaftaran, pesanan, mesej atau tetapan, dan memaparkannya kemudian atau kepada orang lain, ya. Laman maklumat semata-mata tanpa borang yang menyimpan data biasanya tidak memerlukannya.