Untuk menjawab pertanyaan Anda, tidak, itu tidak normal dalam proses Agile.
Di mana tampaknya berasal dari sikap Agile adalah dari desain / pengembangan / siklus tes Agile yang pendek, dan penekanan Agile pada solusi ringan yang memenuhi persyaratan yang diketahui, tetapi terstruktur dengan baik agar dapat memenuhi persyaratan baru dengan Agile. perubahan minimal. Dengan dua hal ini, Anda mungkin mengatakan bahwa seorang pengembang, tidak tahu apa yang mungkin terjadi tetapi mengetahui perubahannya seharusnya tidak berdampak pada DB dengan cara yang tidak dapat dibatalkan, cukup buat perubahan yang diperlukan pada skema di "Teringan" cara mungkin, dan kemudian pada interval beberapa set perubahan "cahaya" akan di refactored menjadi sesuatu yang lebih permanen dan stabil.
Karena itu, saya belum bekerja dengan pengembang yang berlangganan teori dan metodologi Agile, dan juga berpikir bahwa secara rutin membuat dan menghapus tabel dalam skema diperlukan untuk alasan apa pun. Agile bukan berarti slap-dash atau bolt-on. Jika Anda diberi cerita yang membutuhkan penambahan bidang data baru milik catatan tertentu, Anda menambahkan bidang ke tabel. Jika perubahan itu merusak sesuatu, Anda mencari tahu mengapa, dan membuat perubahan lain yang mungkin diperlukan (saya bisa memikirkan beberapa hal yang akan rusak dengan menambahkan kolom ke DB yang sedang ditanyakan; jika itu pecah dengan perubahan semacam ini, Anda memiliki masalah yang lebih besar). Refactoring biasanya terbatas pada kode; mengubah skema biasanya merupakan proses yang lebih terlibat daripada mengubah kode, dan ketika perubahan skema harus terjadi mereka biasanya dibuat dengan lebih hati-hati, dan setidaknya perhatian diberikan pada pengetahuan tentang arah proyek di masa depan. Harus menyusun ulang beberapa atau semua database menunjukkan kegagalan mendasar desain; menjadi lincah tidak berarti tidak ada "rencana induk" arsitektur dasar dan aturan desain untuk diikuti saat secara organik membangun program dan struktur data.
Sekarang, ada beberapa kasus di Agile di mana apa yang Anda "tahu" sekarang akan bertentangan dengan apa yang akan Anda pelajari nanti. Katakanlah Anda memiliki persyaratan bahwa sistem Anda harus memiliki Alamat untuk setiap Orang. Karena ini adalah hubungan 1: 1 dan data akan dibutuhkan dalam sebagian besar kasus, Anda cukup menambahkan bidang Alamat ke tabel Orang. Seminggu kemudian, Anda menerima persyaratan agar Seseorang dapat memiliki lebih dari satu Alamat. Sekarang ini adalah hubungan 1: N, dan untuk memodelkannya dengan benar, Anda harus membatalkan perubahan sebelumnya, memecah bidang menjadi tabel Alamat baru. Ini tidak rutin, terutama di kalangan pengembang senior. Pengembang yang berpengalaman akan melihat bahwa Orang memiliki Alamat, menganggapnya sebagai terpisah secara konsep, dan membuat tabel Orang dan tabel Alamat, menghubungkan Orang ke Alamat dengan referensi FK ke AddressID. Skema seperti ini lebih mudah untuk diubah jika sifat hubungan berubah; tanpa membuat atau menghapus seluruh tabel data "lebar", hubungan antara Orang dan Alamat dapat dengan mudah dimodifikasi dari 1: 1 ke 1: N ke N: N.