„CRUD“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
MovGP0 (Diskussion | Beiträge)
MovGP0 (Diskussion | Beiträge)
Zeile 1: Zeile 1:
{{Belege fehlen}}
Das [[Akronym]] '''CRUD''' [{{IPA|kɹʌd}}] umfasst die grundlegenden [[Datenbank]]operationen '''C'''reate ([[Datensatz]] anlegen), '''R'''ead oder '''R'''etrieve (Datensatz lesen), '''U'''pdate (Datensatz aktualisieren) und '''D'''elete oder '''D'''estroy (Datensatz löschen).
Das [[Akronym]] '''CRUD''' [{{IPA|kɹʌd}}] umfasst die grundlegenden [[Datenbank]]operationen '''C'''reate ([[Datensatz]] anlegen), '''R'''ead oder '''R'''etrieve (Datensatz lesen), '''U'''pdate (Datensatz aktualisieren) und '''D'''elete oder '''D'''estroy (Datensatz löschen).



Version vom 11. April 2013, 01:03 Uhr

Das Akronym CRUD [kɹʌd] umfasst die grundlegenden Datenbankoperationen Create (Datensatz anlegen), Read oder Retrieve (Datensatz lesen), Update (Datensatz aktualisieren) und Delete oder Destroy (Datensatz löschen).

Von manchen Autoren wird alternativ das Akronym RUDI (insert an Stelle von create) oder CDUR (in Anlehnung an die Tonart) benutzt.

CRUD-Sprachkonstrukte

CRUD-Operationen können je nach Umgebung in verschiedenen Sprachkonstrukten ausgedrückt werden:

CRUD-Operation SQL-92 HTTP (REST)
Create INSERT PUT
Read (Retrieve) SELECT GET
Update UPDATE PATCH
Delete (Destroy) DELETE DELETE

CRUD-Frameworks

Vielfach werden die einzelnen CRUD-Operationen mittels einer Persistenz-Schicht umgesetzt. Die Persistenz-Schicht hebt die relationale Repräsentation der einzelnen Informationen auf eine objektorientierte Ebene. Werden die einzelnen Daten-Objekte zudem in einer generischen GUI visualisiert, sodass jedes Objekt durch eine der genannten CRUD-Operationen manipuliert werden kann, so spricht man in diesem Kontext auch von einem CRUD-Framework. Die nachfolgende Illustration ist der Naked-Objects-Dokumentation entliehen und stellt den möglichen Aufbau eines solchen CRUD-Frameworks dar.

Vergleich herkömmliches Framework (links) versus CRUD-Framework (rechts) am Beispiel von Naked Objects

Oftmals handelt es sich bei der grafischen Benutzeroberfläche eines CRUD-Frameworks um ein simples HTML-Interface. Typischerweise berücksichtigt das CRUD-Framework einzelne Transaktionsschritte. Dies hat zur Folge, dass Daten nur gespeichert werden, wenn innerhalb der HTML-Oberfläche der Speichern- bzw. Weiter-Button gedrückt wurde. Ist dies der Fall, so wird letztlich die Update-Operation ausgeführt.

Das CRUD-Framework weist selbstverständlich ein äquivalentes Verhalten für die verbleibenden CRUD-Operationen auf. Es handelt sich bei einer CRUD-Operation folglich um einen atomaren Vorgang.

Atomare Operationen sind in diesem Zusammenhang von Interesse, da moderne Software-Anwendungen oftmals als Mehrbenutzersystem realisiert werden. Ein CRUD-Framework erlaubt Lesen und Schreiben eines Datensatzes auch dann, wenn beide Operationen zeitlich stark versetzt erfolgen. Trotzdem ist es anderen Personen gestattet während dieser Zeit denselben Datensatz auszulesen. Folglich wurde der Datensatz nicht gesperrt.

Beispiele für CRUD-Frameworks

Hier einige Beispiele für CRUD-Implementierungen, nach Sprache bzw. Plattform gegliedert:

Java
JBoss Seam, Naked Objects for Java
PHP
Agavi, CakePHP, Qcodo, Symfony, Zikula, Yii
Perl
Catalyst, Gantry
Python
Django, SQLAlchemy, TurboGears, web2py
Groovy
Grails
.NET
Invist
Ruby
Ruby on Rails
JavaScript
Backbone.js