The wiki page is under active construction, expect bugs.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b0b36dbs [2025/06/04 22:27] zapleka3statnice:bakalar:b0b36dbs [2025/06/14 21:53] (current) – [Transformace ER schématu do relačního schématu] prokop
Line 1: Line 1:
-==== Konceptuální a logický datový model, dotazovací jazyk SQL, transakční zpracování, objektově-relační mapování, noSQL databáze. ====+====== Konceptuální a logický datový model, dotazovací jazyk SQL, transakční zpracování, objektově-relační mapování, noSQL databáze. ======
  
 [[https://fel.cvut.cz/cz/education/bk/predmety/50/10/p5010606.html|B0B36DBS]] [[https://www.ksi.mff.cuni.cz/~svoboda/courses/202-B0B36DBS/|Webové stránky předmětu]] [[https://fel.cvut.cz/cz/education/bk/predmety/50/10/p5010606.html|B0B36DBS]] [[https://www.ksi.mff.cuni.cz/~svoboda/courses/202-B0B36DBS/|Webové stránky předmětu]]
Line 88: Line 88:
   * Operace: prohledávání grafu, porovnávání vzorů, grafové algoritmy.   * Operace: prohledávání grafu, porovnávání vzorů, grafové algoritmy.
   * Použití např.: RDF, FlockDB, sociální sítě.   * Použití např.: RDF, FlockDB, sociální sítě.
 +
 +==== Relační model ====
 +
 +=== Definice ===
 +  * Relační model je **teoretický základ relačních databází**.
 +  * Informace jsou uloženy v **relacích** (tabulkách), kde:
 +    * **relace** = množina n-tic (řádků),
 +    * **atribut** = sloupec tabulky,
 +    * každá relace má svůj **název** a **schéma** (atributy a jejich domény).
 +
 +  * Relace je matematicky definována jako **množina** (žádné duplicitní řádky).
 +
 +=== Klíč (Key) ===
 +  * Klíč je **množina atributů**, která **jednoznačně identifikuje každý řádek** (n-tici) v relaci.
 +  * Pokud existuje více klíčů, označujeme jeden jako **primární klíč** (primary key).
 +  * Klíč musí být **minimální** – žádný jeho podmnožinový soubor nesmí být klíčem.
 +
 +=== Nadklíč (Superkey) ===
 +  * Nadklíč je **množina atributů, která jednoznačně identifikuje řádky**, ale **nemusí být minimální**.
 +  * Každý **klíč je zároveň nadklíč**, ale ne každý nadklíč je klíč.
 +  
 +  * Příklad:
 +    * Uživatel(ID, jméno, e-mail)
 +    * Nadklíč: {ID, jméno}, {ID, e-mail}, {ID, jméno, e-mail}
 +    * Klíč: {ID}
 +
 +=== Cizí klíč (Foreign Key) ===
 +  * Cizí klíč je **atribut (nebo více atributů)**, který odkazuje na **primární klíč jiné relace**.
 +  * Zajišťuje **referenční integritu** mezi dvěma tabulkami.
 +  * Při vkládání nebo mazání hodnot musí být zachována návaznost mezi tabulkami.
 +
 +  * Příklad:
 +    * Tabulka `Objednávka`(ID, zákazník_id)
 +    * `zákazník_id` je cizí klíč do `Zákazník`(ID)
 +
  
 ==== Transformace ER schématu do relačního schématu ==== ==== Transformace ER schématu do relačního schématu ====
Line 493: Line 528:
   * **Zamykací protokol** zajišťuje konfliktní serializovatelnost.   * **Zamykací protokol** zajišťuje konfliktní serializovatelnost.
   * Typy zámků:   * Typy zámků:
-    * **XLOCK (exkluzivní zámek)** – pouze pro jednu transakci, umožňuje zápis.+    * **XLOCK (exkluzivní zámek)** – pouze pro jednu transakci, umožňuje zápis a čtení.
     * **SLOCK (sdílený zámek)** – umožňuje více transakcím číst.     * **SLOCK (sdílený zámek)** – umožňuje více transakcím číst.
     * **UNLOCK** – uvolnění zámku.     * **UNLOCK** – uvolnění zámku.
Navigation

Playground

QR Code
QR Code statnice:bakalar:b0b36dbs (generated for current page)