mindsquare.de durchsuchen

CRUD

Sie brauchen einen CRUD Berater und/oder möchten, dass wir Ihnen unser Angebot in diesem Umfeld vorstellen?

Ingo Biermann
 - 27. September 2019

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.

Verwandte Know-Hows

Trotz umfangreicher SAP-Systeme ist es oftmals notwendig, Verbindungen zu internen und externen Drittsystemen herzustellen. Problematisch ist dies, wenn die beiden Systeme unterschiedliche Architekturen, Formate oder Kommunikationsprotokolle aufweisen. An dieser Stelle […]
SAP Gateway ist ein integrierter Teil des SAP NetWeaver und bietet die Möglichkeit, Geräte und Plattformen mit dem SAP-System zu verbinden.
Das Open Data Protocol (OData) ist ein auf HTTP (Hypertext Transfer Protocol) basierendes Open-Source-Protokoll, das für den strukturierten und technologieunabhängigen Datenaustausch über das Internet verwendet wird.

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 […]
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 […]
Kontakt aufnehmen
Ansprechpartner
Laura Feldkamp Kundenservice