Wer entwirft im Rahmen der Webentwicklung Datenbanken? Trotz einer ganzen Reihe von Informationen, die Back-End-Webentwickler mit serverseitiger Verarbeitung, Datenmodellierung und dergleichen in Verbindung bringen, scheint der Aspekt des Datenbankdesigns der Gleichung auf mysteriöse Weise nicht vorhanden zu sein.
Ich spreche nicht darüber, wer die physische Datenbank einrichtet, sondern darauf, wer das logische Modell der Datenbank entwirft, User-Story-Interviews durchführt, um Informationen darüber zu erhalten, welche Felder benötigt werden, welche Feldspezifikationen vorhanden sind usw. .
Ich habe festgestellt, dass das ( RICHTIGE ) Design einer Datenbank keine kleine Aufgabe ist (ich lese diesen 672-Pager) und leicht ein ganzer Beruf sein kann. Das Durchsuchen des Internets hat jedoch zu überraschend geringen Ergebnissen geführt, wer diese Aufgabe im Kontext von Webentwicklern übernehmen soll.
quelle
what those field specifications are
Wenn Ihr Projekt eine Spezifikation hat, sollten Sie in der Lage sein, Ihr Modell in zu identifizieren.Antworten:
Ihre Frage bezieht sich nicht nur auf Webanwendungen, sondern auf alle Arten von Apps, die ein Datenbank-Backend verwenden.
Durch meine Erfahrung
Endeffekt:
AKTUALISIEREN:
Es gibt 3 Arten von Datenbankadministratoren:
Die meisten DBAs sind Produktions-DBAs, was gut ist, weil sie die Leute sind, die verlorene Datenbanken in den frühen Stunden der Nacht von ausgefallenen Festplatten-Arrays wiederherstellen. Sie beteiligen sich jedoch nicht aktiv am Entwurfsprozess.
quelle
Es hängt davon ab, wofür die Datenbank verwendet wird.
In vielen Anwendungen (Web-Apps oder nicht) ist die Datenbank eng mit dieser Anwendung verbunden, da sie als dauerhafter Speicher für sie dient. Dann ist die Datenbank konzeptionell Teil der Anwendung und wird zusammen entworfen (und Sie gehen davon aus, dass kein anderes Programm wesentlich auf diese Datenbank zugreifen oder sie aktualisieren würde ). BTW, Ausdauer durch andere Mittel als eine Datenbank, zB Klartextdateien, Binärdateien (insbesondere indizierte Dateien à la erreicht werden kann GDBM ), git (oder andere VCS) Repositories, Verzeichnisse oder Dateibäume, rohe Festplattenpartitionen, dedizierte Hardware (zB Flash), Remote-Dateisysteme, CheckpointingTechniken. Bei Datenbanken, die für und mit einer Anwendung entwickelt wurden, sollten Sie sich mit allgemeinen Abruf- und Aktualisierungsmustern befassen und das Datenbankschema (und die Indizierung!) Unter Berücksichtigung dieser Muster entwerfen.
In einigen Situationen ist die Datenbank für sich genommen ein wichtiges und unabhängiges Asset und wurde a priori so konzipiert, dass sie von mehreren verschiedenen Anwendungen (und sogar von zukünftigen) verwendet werden kann. Dann sollte es unabhängig (und viel sorgfältiger) gestaltet werden.
Insbesondere sind einige Web-Apps nur Webschnittstellen zu vorhandenen Datenbanken.
In vielen Fällen (denken Sie an ein Wiki als Beispiel) sind die Daten wichtiger und wertvoller als die Anwendungen, die sie verwenden. Möglicherweise ist es Ihnen wichtig, wie Sie es zukunftssicher machen und es einfach weiterentwickeln können (z. B. indem Sie textuelle und vielseitige - vorzugsweise standardisierte und dokumentierte - Formate zum Sichern und Wiederherstellen verwenden oder definieren).
Lesen Sie auch über NoSQL , dokumentenorientierte Datenbanken , Schlüsselwertdatenbanken , Wissensmanagement , Wissensrepräsentation und Argumentation , Ontologien , Expertensysteme , Geschäftsregelansatz , ERP , CMS . Vielleicht sollten Sie REDIS , MongoDB usw. verwenden.
quelle