Um Ihre Frage zu beantworten, nein, das ist in einem agilen Prozess nicht normal.
Wo es auf eine agile Haltung zurückzuführen zu sein scheint , liegt in Agiles Design- / Entwicklungs- / Testzyklus mit kurzer Iteration und in Agiles Schwerpunkt auf leichten Lösungen, die die bekannten Anforderungen erfüllen, aber gut strukturiert sind, um neue Anforderungen erfüllen zu können minimale Änderung. Angesichts dieser beiden Dinge könnte man sagen, dass ein Entwickler, der nicht weiß, was auf der ganzen Linie kommen könnte, aber weiß, dass seine Änderung die Datenbank nicht auf eine Weise beeinflussen sollte, die nicht rückgängig gemacht werden kann, einfach die erforderlichen Änderungen am Schema in der Datenbank vornimmt "leichtester" Weg möglich, und dann werden in Abständen mehrere Sätze von "leichten" Änderungen in etwas dauerhafteres und stabileres umgestaltet.
Trotzdem habe ich noch nicht mit einem Entwickler zusammengearbeitet, der sich der Theorie und Methodik von Agile angeschlossen hat, und dachte auch, dass das routinemäßige Erstellen und Löschen von Tabellen im Schema aus irgendeinem Grund notwendig ist. Agil bedeutet nicht Slap-Dash oder Bolt-On. Wenn Sie eine Story erhalten, für die ein neues Datenfeld zu einem bestimmten Datensatz hinzugefügt werden muss, fügen Sie das Feld der Tabelle hinzu. Wenn diese Änderung etwas kaputt macht, finden Sie heraus, warum und nehmen gegebenenfalls andere Änderungen vor (ich kann mir nur sehr wenige Dinge vorstellen, die durch Hinzufügen einer Spalte zu einer abgefragten Datenbank kaputt gehen würden; wenn sie mit dieser Art von Änderung bricht, werden Sie größere Probleme haben). Refactoring ist normalerweise auf Code beschränkt. Das Ändern des Schemas ist normalerweise ein aufwändigerer Prozess als das Ändern des Codes. Wenn also Schemaänderungen vorgenommen werden müssen, werden diese normalerweise mit größerer Sorgfalt vorgenommen. und zumindest ein wenig Aufmerksamkeit auf die Kenntnis der zukünftigen Richtung des Projekts. Die Notwendigkeit, einen Teil oder die gesamte Datenbank neu zu strukturieren, weist auf einen grundlegenden Entwurfsfehler hin. Agilität bedeutet nicht, dass es keinen "Masterplan" für grundlegende Architektur- und Entwurfsregeln gibt, der beim organischen Aufbau des Programms und der Datenstruktur befolgt werden muss.
Nun, es gibt Fälle in Agile, in denen das, was Sie jetzt "wissen", dem widerspricht, was Sie später lernen werden. Angenommen, Sie haben eine Anforderung, dass Ihr System für jede Person eine Adresse haben muss. Da es sich um eine 1: 1-Beziehung handelt und die Daten in den meisten Fällen benötigt werden, fügen Sie einfach die Adressfelder zur Personentabelle hinzu. Eine Woche später erhalten Sie die Anforderung, dass eine Person mehr als eine Adresse haben kann. Jetzt handelt es sich um eine 1: N-Beziehung. Um sie richtig zu modellieren, müssen Sie Ihre vorherigen Änderungen rückgängig machen und die Felder in eine neue Adresstabelle aufteilen. Dies ist keine Routine, insbesondere bei erfahrenen Entwicklern. Ein erfahrener Entwickler wird feststellen, dass eine Person eine Adresse hat, diese als konzeptionell getrennt betrachten und eine Personentabelle und eine Adresstabelle erstellen, die Person mit Adresse mit einem FK-Verweis auf eine Adress-ID verknüpft. Ein solches Schema lässt sich leichter ändern, wenn sich die Art der Beziehung ändert. Ohne ganze "breite" Datentabellen zu erstellen oder zu löschen, kann die Beziehung zwischen Person und Adresse ziemlich einfach von 1: 1 auf 1: N auf N: N geändert werden.