立陶宛军事训练 士兵跳入冰水中
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í byt vytvo?ena; to znamená musí byt p?iděleno místo, které je inicializováno obsahem.
- Data, které nejsou dále pot?ebná, musí byt 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 softwarovych aplikacích, existuje ?ada dal?ích vrstev persistence. Funk?nost CRUD m??e byt nap?íklad implementována pomocí databází dokument?, objektovych databází, XML databází, pomocí textovych soubor? nebo binárních soubor?.
Některé systémy pro práci s velkymi daty neimplementují operaci UPDATE, ale mají pouze operaci INSERT s ?asovym 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?ivatelskym 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ílovy 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 souhrnnym názvem nap?. ?správa kontakt?“ nebo obecně ?správa dokument?“.[zdroj?]
Jiné varianty
[editovat | editovat zdroj]Podobny 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]. 2025-08-04 [cit. 2025-08-04]. Dostupné online.
- ↑ FIELDING, Roy. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Section 4 [online]. Internet Engineering Task Force (IETF), June 2014 [cit. 2025-08-04]. Dostupné online.
- ↑ Roy T. Fielding. It is okay to use POST [online]. roy.gbiv.com, 2025-08-04 [cit. 2025-08-04]. 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 byt reprezentací nějakého prost?edku (GET), pro úplné nahrazení reprezentace (PUT) nebo pro některou z dal?ích standardizovanych 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?nych funkcí, v?etně univerzálního ?tuto akci nemá vyznam 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.], 2025-08-04. Dostupné online. ISBN 9781430225362. S. 41.
- ↑ CRAP and CRUD: From Database to Datacloud - Direct2DellEMC. blog.dellemc.com. 2025-08-04. Dostupné v archivu po?ízeném dne 2025-08-04. (anglicky)