Přeskočit na obsah

CRUD

Z Wikipedie, otevřené encyklopedie

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):[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 1983 Managing the data-base environment.

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í

[editovat | editovat zdroj]

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

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

[editovat | editovat zdroj]

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`
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.[3] Naproti tomu metoda POST je operací zpracování, která má sémantiku specifickou pro cílový zdroj, která obvykle přesahuje rozsah operací CRUD.[4]

Uživatelské rozhraní

[editovat | editovat zdroj]

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 často dokumentovány a popisovány pod jedním souhrnným názvem např. „správa kontaktů“ nebo obecně „správa dokumentů“.[zdroj?]

Jiné varianty

[editovat | editovat 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žit překlad textu z článku Create, read, update and delete na anglické Wikipedii.

  1. MARTIN, James, 1983. Managing the Data-base Environment. Englewood Cliffs, New Jersey: Prentice-Hall. Dostupné online. ISBN 0-135-50582-8. S. 381. 
  2. Maryam Sulemani. CRUD operations explained: Create, read, update, delete [online]. 2021-04-07 [cit. 2021-12-14]. Dostupné online. 
  3. 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. 
  4. 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. 
  5. KANN, Charles. Programming for the Web - From Soup to Nuts - Implementing a Complete GIS Web Page. [s.l.]: Gettysburg College Dostupné online. S. 6.1 CRUD Interface. 
  6. Paul M. Jones, 2008. BREAD, not CRUD [online]. 2008. Dostupné online. 
  7. MCGAW, James. Beginning Django E-Commerce. [s.l.]: [s.n.], 2010-06-21. Dostupné online. ISBN 9781430225362. S. 41. 
  8. CRAP and CRUD: From Database to Datacloud - Direct2DellEMC. blog.dellemc.com. 2012-11-13. Dostupné online [cit. 2018-01-30]. (anglicky) 

Související články

[editovat | editovat zdroj]