CRUD: Porovnání verzí
Rozšíření článku o překlad z angličtiny značka: odkazy na rozcestníky |
|||
(Není zobrazeno 12 mezilehlých verzí od 9 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
'''CRUD''' je zkratka používaná v [[programování]], která shrnuje čtyři základní operace s daty v [[Perzistentní úložiště|perzistentním úložišti]] (např. v SQL databázi):<ref name="james-martin">{{Citace monografie |
|||
{{Urgentně upravit/dne|20121120}} |
|||
| příjmení = Martin |
|||
Create, Read, Update, Delete (Vytvoření, Čtení, Editace, Mazání) |
|||
| jméno = James |
|||
| odkaz na autora = James Martin (author) |
|||
| rok = 1983 |
|||
| titul = Managing the Data-base Environment |
|||
| vydavatel = Prentice-Hall |
|||
| místo = Englewood Cliffs, New Jersey |
|||
| isbn = 0-135-50582-8 |
|||
| strany = 381 |
|||
| url = https://archive.org/details/managingdatabase00mart/page/381 |
|||
| ref = harv |
|||
}}</ref> |
|||
* {{Cizojazyčně|en|'''Create'''}} – vytvořit; |
|||
* {{Cizojazyčně|en|'''Read'''}} – číst; |
|||
* {{Cizojazyčně|en|'''Update'''}} – upravit, aktualizovat, editovat; |
|||
* {{Cizojazyčně|en|'''Delete'''}} – odstranit, zrušit, smazat. |
|||
CRUD se také někdy používá pro popis fungování [[Uživatelské rozhraní|uživatelského rozhraní]], které umožňuje prohlížení, vyhledávání a změnu informací pomocí [[formulář]]ů a reportů. |
|||
Tato zkratka je používána v počítačovém programování a označuje základní 4 operace vytvoření, čtení, editaci a smazání záznamu nad nějakým trvalým úložištěm (typicky SQL databáze, ale platí i pro ostatní). |
|||
== Historie == |
|||
[[ar:عمليات إدارة البيانات (CRUD)]] |
|||
Zkratku pravděpodobně poprvé popularizoval{{Doplňte zdroj|datum=říjen 2023}} [[James Martin (autor)|James Martin]] ve své knize z roku 1983 ''Managing the data-base environment''. |
|||
[[ca:Crear, llegir, actualitzar i esborrar]] |
|||
[[de:CRUD]] |
|||
== Koncepce == |
|||
[[en:Create, read, update and delete]] |
|||
Data se uchovávají v úložišti. |
|||
[[es:CRUD]] |
|||
[[fr:CRUD]] |
|||
* Základní vlastností úložiště je, že jeho ''obsah'' je možné jak ''číst'' tak ''měnit''. |
|||
[[it:Tavola CRUD]] |
|||
* 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. |
|||
[[ja:CRUD]] |
|||
* Data, které nejsou dále potřebná, musí být možné ''odstranit'' (''zrušit'', ''smazat''); to znamená uvolnit místo, která zabírala. |
|||
[[ko:CRUD]] |
|||
[[nl:CRUD]] |
|||
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''). |
|||
[[pl:CRUD]] |
|||
[[pt:CRUD]] |
|||
== Případy použití == |
|||
[[ru:CRUD]] |
|||
=== Databáze === |
|||
[[ta:உருவாக்கு, படி, இன்றைப்படுத்து, நீக்கு]] |
|||
[[tr:CRUD]] |
|||
V normě [[SQL]] odpovídají těmto čtyřem operacím následující příkazy:<ref>{{Citace elektronické monografie |
|||
[[uk:CRUD]] |
|||
| url = https://www.educative.io/blog/crud-operations |
|||
| titul = CRUD operations explained: Create, read, update, delete |
|||
| autor = Maryam Sulemani |
|||
| datum = 2021-04-07 |
|||
| datum přístupu = 2021-12-14 |
|||
| ref = harv |
|||
}}</ref> |
|||
{| class="wikitable" |
|||
|- |
|||
! CRUD |
|||
! SQL |
|||
|- |
|||
| Create |
|||
| [[Insert (SQL)|INSERT]] |
|||
|- |
|||
| Read |
|||
| [[SELECT]] |
|||
|- |
|||
| Update |
|||
| [[UPDATE]] |
|||
|- |
|||
| Delete |
|||
| [[DELETE (SQL)|DELETE]] |
|||
|} |
|||
I když [[Relační databáze|relační databáze]] jsou běžnou [[Úložiště|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í [[Dokument databáze|databází dokumentů]], [[Objektová databáze|objektových databází]], [[XML databáze|XML databází]], pomocí textových souborů nebo binárních souborů. |
|||
Některé systémy pro práci s [[Velká data|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í [[Representational State Transfer|RESTful API]]. Každému písmenu zkratky lze přiřadit jednu z [[Hypertext Transfer Protocol|HTTP]] metod: |
|||
{| class="wikitable" |
|||
|- |
|||
! CRUD |
|||
! HTTP |
|||
|- |
|||
| Create |
|||
| [[Hypertext Transfer Protocol|POST, PUT]] pokud máme `id` nebo `uuid`<!-- nenahrazovat metodou POST, který není CRUD operací (viz níže). --> |
|||
|- <!-- Je třeba doplnit POST. |
|||
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 |
|||
| [[Hypertext Transfer Protocol|GET]] |
|||
|- |
|||
| Update |
|||
| [[Hypertext Transfer Protocol|PUT]] pro nahrazení, [[Hypertext Transfer Protocol|PATCH]] pro změnu |
|||
|- |
|||
| Delete |
|||
| [[Hypertext Transfer Protocol|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ý agent|uživatelským agentům]] přímo manipulovat se stavy cílového [[Webový prostředek|prostředku]].<ref>{{Citace elektronické monografie |
|||
| url = https://tools.ietf.org/html/rfc7231#section-4 |
|||
| titul = Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Section 4 |
|||
| příjmení = Fielding |
|||
| jméno = Roy |
|||
| datum = June 2014 |
|||
| vydavatel = IETF |
|||
| vydavatel = Internet Engineering Task Force (IETF) |
|||
| datum přístupu = 2018-02-14 |
|||
| rfc = 7231 |
|||
| ref = harv |
|||
}}</ref> Naproti tomu metoda [[Hypertext Transfer Protocol|POST]] je operací zpracování, která má sémantiku specifickou pro cílový zdroj, která obvykle přesahuje rozsah operací CRUD.<ref name="it-is-okay-to-use-post">{{Citace elektronické monografie |
|||
| url = https://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post |
|||
| titul = It is okay to use POST |
|||
| autor = Roy T. Fielding |
|||
| vydavatel = roy.gbiv.com |
|||
| datum = 2009-03-20 |
|||
| datum přístupu = 2020-04-14 |
|||
| poznámky = 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.“ |
|||
| ref = harv |
|||
}}</ref> |
|||
=== 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:<ref>{{Citace monografie |
|||
| příjmení = Kann |
|||
| jméno = Charles |
|||
| url = https://eng.libretexts.org/@go/page/27566 |
|||
| titul = Programming for the Web - From Soup to Nuts - Implementing a Complete GIS Web Page |
|||
| vydavatel = Gettysburg College |
|||
| strany = 6.1 CRUD Interface |
|||
| ref = harv |
|||
}}</ref> |
|||
* ''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 [[Dokumentace k softwaru|dokumentovány]] a popisovány pod jedním souhrnným názvem např. „správa kontaktů“ nebo obecně „správa dokumentů“.{{Doplňte zdroj|datum=červenec 2021}} |
|||
== Jiné varianty == |
|||
Podobný přístup jako CRUD se také označuje zkratkami: |
|||
* ABCD ({{Cizojazyčně|en|''add, browse, change, delete''}} – přidat, prohlížet, změnit, smazat) |
|||
* CRUDL ({{Cizojazyčně|en|''create, read, update, delete, list''}} – vytvořit, číst, aktualizovat, smazat, vypsat) |
|||
*BREAD ({{Cizojazyčně|en|''browse, read, edit, add, delete''}} – prohlížet, číst, upravit, přidat, smazat)<ref>{{Citace elektronické monografie |
|||
| rok = 2008 |
|||
| titul = BREAD, not CRUD |
|||
| autor = Paul M. Jones |
|||
| url = http://paul-m-jones.com/archives/291 |
|||
| ref = harv |
|||
}}</ref> |
|||
* DAVE ({{Cizojazyčně|en|''delete, add, view, edit''}} – smazat, přidat, prohlížet, upravit)<ref>{{Citace monografie |
|||
| příjmení = McGaw |
|||
| jméno = James |
|||
| titul = Beginning Django E-Commerce |
|||
| datum = 2010-06-21 |
|||
| strany = 41 |
|||
| isbn = 9781430225362 |
|||
| url = https://books.google.com/books?id=LwO1GzMN_QsC&q=DAVE&pg=PA41 |
|||
| ref = harv |
|||
}}</ref> |
|||
* CRAP ({{Cizojazyčně|en|''create, replicate, append, process''}} – vytvořit, replikovat, přidat, zpracovat)<ref>{{Citace periodika |
|||
| url = https://blog.dellemc.com/en-us/crap-and-crud-from-database-to-datacloud/ |
|||
| titul = CRAP and CRUD: From Database to Datacloud - Direct2DellEMC |
|||
| datum = 2012-11-13 |
|||
| sborník = Direct2DellEMC |
|||
| datum přístupu = 2018-01-30 |
|||
| jazyk = en-US |
|||
| ref = harv |
|||
}}</ref> |
|||
== Odkazy == |
|||
=== Reference === |
|||
{{Překlad|en|Create, read, update and delete|1182017671}}<references /> |
|||
=== 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í)]] |
|||
{{Autoritní data}} |
|||
[[Kategorie:Databáze]] |
|||
[[Kategorie:Zkratky]] |
Aktuální verze z 14. 9. 2024, 10:46
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)