CRUD je zkratka používaná v programování, která shrnuje čtyři základní operace s daty v perzistentním úložišti (např. v SQL databázi): – vytvořit; – číst; – upravit, aktualizovat, editovat; – odstranit, zrušit, smazat.

CRUD se také někdy používá pro popis fungování uživatelského rozhraní, které umožňuje prohlížení, vyhledávání a změnu informací pomocí formulářů a reportů.

Historie Zkratku pravděpodobně poprvé popularizoval James Martin ve své knize z roku 1983 Managing the data-base environment.

Koncepce Data se uchovávají v úložišti.

Základní vlastností úložiště je, že jeho obsah je možné jak číst tak měnit. Než je možné data v úložišti číst nebo aktualizovat musejí být vytvořena; to znamená musí být přiděleno místo, které je inicializováno obsahem. Data, které nejsou dále potřebná, musí být možné odstranit (zrušit, smazat); to znamená uvolnit místo, která zabírala.

Tyto čtyři operace společně tvoří základní operace správy úložiště známé jako CRUD: Create, Read, Update a Delete (vytvořit, číst, aktualizovat a smazat).

Případy použití Databáze

V normě SQL odpovídají těmto čtyřem operacím následující příkazy:

CRUD SQL Create INSERT Read SELECT Update UPDATE Delete DELETE

I když relační databáze jsou běžnou vrstvou perzistence v softwarových aplikacích, existuje řada dalších vrstev persistence. Funkčnost CRUD může být například implementována pomocí databází dokumentů, objektových databází, XML databází, pomocí textových souborů nebo binárních souborů.

Některé systémy pro práci s velkými daty neimplementují operaci UPDATE, ale mají pouze operaci INSERT s časovým razítkem (žurnálování), přičemž pokaždé ukládají zcela novou verzi objektu.

RESTful APIs Zkratka CRUD také se objevuje v popisu rozhraní RESTful API. Každému písmenu zkratky lze přiřadit jednu z HTTP metod:

CRUD HTTP Create POST, PUT pokud máme `id` nebo `uuid`POST je CRUD operace stejně jako SQL INSERT. Pokud je v INSERT zadán klíč, pak ekvivalentní REST operací je skutečně PUT. Na druhou stranu, pokud tabulka automaticky generuje klíč a INSERT klíč neobsahuje, pak ekvivalentem v REST je POST.

„To ale neznamená, že se bez něj obejdeme. POST má mnoho užitečných účelů v HTTP.“ Je standardním způsobem vytváření nového objektu, kdy server přiřazuje id. Nemůžeme za to, že ve všech jiných ohledech je POST težko klasifikovatelné, jak říkal Roy.

Uživatelský agent nemá při vytváření položky ve WWW nebo relačních databázích vždy povoinnost znát klíč/id. Znalost klíče při vytváření datové položky NENÍ požadavkem CRUD, SQL ani REST. --> Read GET Update PUT pro nahrazení, PATCH pro změnu Delete DELETE

V protokolu HTTP jsou metody GET (čtení), PUT (vytvoření a aktualizace), POST (vytvoření – pokud nemáme `id` nebo `uuid`), a DELETE (zrušení) operacemi CRUD, protože mají sémantiku správy úložiště, což znamená, že umožňují uživatelským agentům přímo manipulovat se stavy cílového prostředku. Naproti tomu metoda POST je operací zpracování, která má sémantiku specifickou pro cílový zdroj, která obvykle přesahuje rozsah operací CRUD.

Uživatelské rozhraní Přístup CRUD také stojí za způsobem práce v uživatelském rozhraní většiny aplikací. Například v databázi kontaktů je základní úložnou jednotkou položka jednotlivého kontaktu. Software musí uživateli umožňovat: Create – přidávat nebo vytvářet nové položky Read – vyhledávat a prohlížet existující položky Update – upravovat nebo aktualizovat existující položky Delete – mazat, odstraňovat existující položky

Protože tyto operace jsou tak zásadní, jsou často dokumentovány a popisovány pod jedním souhrnným názvem např. „správa kontaktů“ nebo obecně „správa dokumentů“.

Jiné varianty Podobný přístup jako CRUD se také označuje zkratkami: ABCD ( – přidat, prohlížet, změnit, smazat) CRUDL ( – vytvořit, číst, aktualizovat, smazat, vypsat) BREAD ( – prohlížet, číst, upravit, přidat, smazat) DAVE ( – smazat, přidat, prohlížet, upravit) CRAP ( – vytvořit, replikovat, přidat, zpracovat)

Odkazy Reference

Související články Representational State Transfer (REST) Active Record Jazyk pro manipulaci s daty Vstup/výstup ACID Query by Example Command-query separation Scaffold (programování)

Kategorie:Databáze Kategorie:Anglické zkratky