CRUD je zkratka používaná vprogramování, která shrnuje čtyři základní operace s daty vperzistentním úložišti (např. v SQL databázi):[1]
- Create – vytvořit;
- Read – číst;
- Update – upravit, aktualizovat, editovat;
- Delete – 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ů.
Zkratku pravděpodobně poprvé popularizoval[zdroj?]James Martin ve své knize z roku 1983Managing the data-base environment.
Data se uchovávají v úložišti.
- Základní vlastností úložiště je, že jehoobsah je možné jakčíst takměnit.
- Než je možné data v úložišti číst nebo aktualizovat musejí býtvytvoř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 aDelete (vytvořit,číst,aktualizovat asmazat).
V norměSQL odpovídají těmto čtyřem operacím následující příkazy:[2]
I kdyžrelační databáze jsou běžnouvrstvou 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 svelký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.
Zkratka CRUD také se objevuje v popisu rozhraníRESTful API. Každému písmenu zkratky lze přiřadit jednu zHTTP metod:
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éhoprostředku.[3] Naproti tomu metodaPOST je operací zpracování, která má sémantiku specifickou pro cílový zdroj, která obvykle přesahuje rozsah operací CRUD.[4]
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:[5]
- 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 častodokumentovány a popisovány pod jedním souhrnným názvem např. „správa kontaktů“ nebo obecně „správa dokumentů“.[zdroj?]
Podobný přístup jako CRUD se také označuje zkratkami:
- ABCD (add, browse, change, delete – přidat, prohlížet, změnit, smazat)
- CRUDL (create, read, update, delete, list – vytvořit, číst, aktualizovat, smazat, vypsat)
- BREAD (browse, read, edit, add, delete – prohlížet, číst, upravit, přidat, smazat)[6]
- DAVE (delete, add, view, edit – smazat, přidat, prohlížet, upravit)[7]
- CRAP (create, replicate, append, process – vytvořit, replikovat, přidat, zpracovat)[8]
V tomto článku byl použitpřeklad textu z článkuCreate, read, update and delete na anglické Wikipedii.
- ↑MARTIN, James, 1983.Managing the Data-base Environment. Englewood Cliffs, New Jersey: Prentice-Hall.Dostupné online.ISBN 0-135-50582-8. S. 381.
- ↑Maryam Sulemani.CRUD operations explained: Create, read, update, delete [online]. 2021-04-07 [cit. 2021-12-14].Dostupné online.
- ↑FIELDING, Roy.Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Section 4 [online]. Internet Engineering Task Force (IETF), June 2014 [cit. 2018-02-14].Dostupné online.
- ↑Roy T. Fielding.It is okay to use POST [online]. roy.gbiv.com, 2009-03-20 [cit. 2020-04-14]. POST se stává problémem pouze tehdy, když se použije v situaci, pro kterou je vhodnější jiná metoda: například pro získání informace, které měla být reprezentací nějakého prostředku (GET), pro úplné nahrazení reprezentace (PUT) nebo pro některou z dalších standardizovaných metod, které zprostředkovatelům sdělují něco cennějšího než „toto může něco změnit.“ Ostatní metody jsou pro zprostředkovatele cennější, protože říkají něco o tom, jak lze automaticky řešit selhání a jak mohou zprostředkující cache optimalizovat své chování. POST tyto vlastnosti nemá, ale to neznamená, že se bez něj obejdeme. POST má v HTTP mnoho užitečných funkcí, včetně univerzálního „tuto akci nemá význam standardizovat.“.Dostupné online.
- ↑KANN, Charles.Programming for the Web - From Soup to Nuts - Implementing a Complete GIS Web Page. [s.l.]: Gettysburg CollegeDostupné online. S. 6.1 CRUD Interface.
- ↑Paul M. Jones, 2008.BREAD, not CRUD [online]. 2008.Dostupné online.
- ↑MCGAW, James.Beginning Django E-Commerce. [s.l.]: [s.n.], 2010-06-21.Dostupné online.ISBN 9781430225362. S. 41.
- ↑ CRAP and CRUD: From Database to Datacloud - Direct2DellEMC.blog.dellemc.com. 2012-11-13.Dostupné online [cit. 2018-01-30]. (anglicky)