Přeskočit na obsah

CRUD: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
MerlIwBot (diskuse | příspěvky)
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ů.

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]