CRUD
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ů.
Historie
[editovat | editovat zdroj]Zkratku pravděpodobně poprvé popularizoval[zdroj?] James Martin ve své knize z roku 1983 Managing the data-base environment.
Koncepce
[editovat | editovat zdroj]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]Databáze
[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]
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Create, 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 College Dostupné 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)