mindsquare.de durchsuchen

CRUD

Der Begriff CRUD kommt aus der Informatik und steht für Create, Read, Update und Delete. Dies sind die grundlegenden Aktionen, die in einer Datenbank durchgeführt werden können. Alternativ werden für diese Operationen teilweise auch die Akronyme RUDI oder CDUR verwendet.

CRUD ist ein Begriff aus dem Datenmanagement. Genauer ausgedrückt handelt es sich um eine Abkürzung, welche die vier wichtigsten Operationen in persistenten (auf die dauerhafte Speicherung ausgelegten) Datenbanken zusammenfasst:

  • Create: Anweisung, um einen neuen Datensatz zu erstellen
  • Read oder Retrieve: Liest Datensätze aus einer Datenbanktabelle basierend auf den Eingabeparametern
  • Update: Führt eine Aktualisierung bestehender Datenbankobjekte durch
  • Delete oder Destroy: Löscht eine definierte Zeile aus einer Datenbanktabelle

Mit diesen vier Funktionen lassen sich Daten in Systemen also anlegen und in jeder Form verwalten.

Popularität erlangte CRUD erstmals im Jahr 1983. In diesem Jahr veröffentlichte der britische IT-Berater und Autor James Martin sein Buch „Managing the Data-Base Environment“ und prägte darin den Begriff.

Einsatzzweck

Datenmanagement-Prozesse, die auf CRUD basieren, kommen sowohl bei der Nutzung von Anwendungen als auch bei der Verwaltung von Datenbanken zum Einsatz. Es existieren im Wesentlichen also zwei Zielgruppen:

  • Datenbank-Experten
  • Endanwender

Experten nutzen die CRUD-Operationen beispielsweise, um Probleme in Datenbanken zu überprüfen und zu beheben oder umfangreichere Bereinigungen durchzuführen. Bei einem Endanwender bedeutet CRUD hingegen beispielsweise, einen Account anzulegen, ihn zu nutzen, ihn zu verändern und bei Bedarf wieder zu löschen.

Des Weiteren kann CRUD als eine Art grundlegende Checkliste für Programmierer betrachtet werden. Entsprechend sollte ein Anwendungsmodell in der Lage sein, alle Aktionen mit den vier Operationen auszuführen, um als vollständig bezeichnet werden zu können. Lässt sich eine Aktion nicht mit einer der Operationen beschreiben, sollte hingegen ein eigenes Modell dafür geschaffen werden.

Sprachumgebungen

CRUD-Operationen werden in verschiedenen Sprachumgebungen und Plattformen eingesetzt. Zu nennen sind unter anderem Java, JavaScript, PHP, .NET, Perl und Python. Die Ausführung wird über sprachabhängige Befehle angestoßen. In SQL kommen beispielsweise die folgenden Anweisungen zur Anwendung:

  • INSERT für das Anlegen von Datensätzen (create)
  • SELECT für das Lesen von Datensätzen (read)
  • UPDATE für das Aktualisieren von Datensätzen (update)
  • DELETE für das Löschen von Datensätzen (delete)

Bei RESTful HTTP, das sehr häufig für die Umsetzung von Webservices verwendet wird, heißen die vier Befehle hingegen POST (anlegen), GET (lesen), PUT (anlegen oder aktualisieren) und DELETE (löschen).

Frameworks

Werden die Objekte einer Datenbank mithilfe einer grafischen Oberfläche dargestellt und sind sie mithilfe der CRUD-Operationen veränderbar, so ist die Rede von einem sogenannten CRUD-Framework bzw. CRUD-Grid. Die grafischen Oberflächen basieren häufig auf HTML.

Charakteristisch für ein CRUD-Framework ist außerdem, dass mehrere Schritte notwendig sind, um eine CRUD-Operation abzuschließen. So wird ein Datensatz beispielsweise nicht durch die reine Eingabe angelegt. Vielmehr ist ein weiterer Transaktionsschritt wie das Betätigen eines Buttons (z. B. „Fortsetzen“ oder „Speichern“) erforderlich, um die Aktion zu vollenden.

Die einzelnen Operationen können mit einem deutlichen Zeitversatz ausgeführt werden. Der Datensatz muss innerhalb dieser Zeitspannen nicht für andere Anwender gesperrt werden. Hohe Relevanz hat dieser Ansatz insbesondere für Mehrbenutzersysteme. Hier ist es wichtig, dass mehrere User gleichzeitig dieselben Daten auslesen können.

Aufbau der CRUD-Frameworks

Im Regelfall lassen sich die Frameworks um mehrere Module erweitern. Auch für die Umsetzung der Datenbank-Operationen sind Erweiterungen verfügbar. Diese werden auch Persistenz-Schichten genannt. Sie haben die Aufgabe, relationale, tabellarische Datensätze aufzuschlüsseln und sie objektorientiert zu präsentieren.

In Summe erleichtern CRUD-Frameworks somit den Zugriff auf die eingesetzte Datenbank deutlich. Dies gilt für Entwickler ebenso wie für die Nutzer von Anwendungen.

Anwendungsbeispiel

CRUD beinhaltet grundsätzlich alle relevanten Möglichkeiten der Manipulation von Datenbankobjekten. Ein Beispiel verdeutlicht dies: Gehen wir von einer simplen Applikation aus, die als Aufgabenliste dient. Anwendungen dieser Art finden sich beispielsweise häufig innerhalb von E-Mail-Clients.

Die Aufgabenliste muss im Grunde lediglich folgende Funktionen beherrschen:

  • Aufgaben hinzufügen (Create)
  • Aufgaben anzeigen (Read)
  • Aufgaben verändern (Update)
  • Aufgaben abhaken (ebenfalls Update)
  • Aufgaben löschen (Delete)

Nachteile und Grenzen

Oftmals sind die zuvor genannten Operationen nicht differenziert genug, um alle fachlichen Anforderungen an eine Anwendung korrekt abzubilden.

Bleiben wir bei vorangegangenem Beispiel, ergeben sich bei näherer Betrachtung mehrere Fragen. So ist etwa zu klären, ob ein Unterschied zwischen dem Entfernen bereits erledigter (abgehakter) und unerledigter Aufgaben besteht. Aus Anwendersicht kann es hier verschiedene Herangehensweisen geben. Offene Aufgaben könnten etwa gelöscht werden, weil sie hinfällig sind. Erledigte Einträge werden hingegen entfernt, um Ordnung in die Liste zu bringen. Sie können jedoch weiterhin von Interesse sein, um im Nachhinein beispielsweise eine Übersicht erledigter Aufgaben zu realisieren.

Ferner lässt sich in diesem Beispiel der Inhalt (Text) einer Aufgabe ändern. Ebenso wie das Abhaken ist dies in CRUD ein „Update“. Die beiden Aktionen unterscheiden sich jedoch gravierend voneinander.

Ebenfalls nachteilig ist, dass CRUD im Standard keine Historie liefert. Vielmehr führen die Aktionen „Update“ und „Delete“ zu einer irreversiblen Zerstörung von Daten oder ganzen Datensätzen. Finden (mehrere) Änderungen an einem Objekt statt, lassen sich die einzelnen Schritte der Bearbeitung somit nicht mehr nachvollziehen. Diese Problematik lässt sich nur durch zahlreiche zusätzliche Felder oder eine neue Tabelle lösen, in der alte Bearbeitungsstände abgelegt werden.

Wie geht es weiter?

Schritt 1

Sie nehmen telefonisch, per Mail oder Formular Kontakt auf und schildern uns Ihr Anliegen.

Schritt 2

Zur Klärung von Rückfragen und von Details zum weiteren Vorgehen melden wir uns telefonisch bei Ihnen.

Schritt 3

Wir unterbreiten Ihnen ein Angebot und unterstützen Sie gerne auch bei der Präsentation für Ihr Management.

Passende Angebote zum Thema

Ein wichtiger Schritt in Richtung des neuen SAP Frameworks for Digital Business ist die in-memory Datenbank SAP HANA. Für bestehende SAP Kunden ist vor allem wichtig: Wie schaffe ich das richtige Knowhow im IT-Team, um mit der SAP HANA Datenbank mein ERP erstens sicher weiter zu betreiben und zweitens noch besser zu machen? Wir helfen mit den ABAP on HANA Entwicklertraining. Zielgruppe Das ABAP on HANA Entwicklertraining richtet sich an ABAP Entwickler, die bereits jetzt […]
In der SAP Welt findet aktuell eine schnelle Entwicklung statt. Dadurch entstehen nicht nur neue Projekte und Anforderungen für SAP Kunden - sondern als logische Konsequenz auch für SAP Entwickler.
Haben Sie ein gutes Gefühl was die Code-Qualität Ihrer Kundenentwicklungen im SAP angeht? Wenn bei Lesbarkeit, Dokumentation, Modularisierung oder systematischer Transport- & Releasestrategie noch Luft nach oben ist, dann sollten wir uns unterhalten.