Cvičení 12
Témata hodiny
- Výsledky písemek
- Transakce
- Pohledy
Transakce
- Ukázali jsme si práci s transakcemi v PostgreSQL.
- Úrovně izolace v PostrgreSQL.
- Dokumentace
- Příkazy BEGIN, COMMIT, ROLLBACK, SAVEPOINT a ROLLBACK TO SAVEPOINT.
- Příkaz SET TRANSACTION
Pohledy
- co je to pohled (virtuální relační proměnná)?
(ukázka)
Aktualizovatelnsot relační proměnné
Virtuální vs. základní relační proměnná.
Jak je to v PostgreSQL?
Simple views are automatically updatable: the system will allow INSERT, UPDATE and DELETE statements to be used on the view in the same way as on a regular table. A view is automatically updatable if it satisfies all of the following conditions:
The view must have exactly one entry in its FROM list, which must be a table or another updatable view.
The view definition must not contain WITH, DISTINCT, GROUP BY, HAVING, LIMIT, or OFFSET clauses at the top level.
The view definition must not contain set operations (UNION, INTERSECT or EXCEPT) at the top level.
The view's select list must not contain any aggregates, window functions or set-returning functions.
(ukázka)
Ukázky z hodiny
Úkoly
- Zadání k pohledům je v souboru: pohledy
- Vyzkoušejte si práci s transakcemi na databázi
transactions
(všichni najednou na jedné DB). Je tam jedna tabulka naplněna náhodnými daty. S různými nastavením transakcí (SET TRANSACTION) zkoušejte různé operace - přidávání, změny, mazání řádků. Nebojte se větších úprav - snáze narazíme na “chybný” stav. Pro vkládání nových náhodných dat můžete využít kód podobný ukázce z hodiny a funkci random. Pro přidání prodlevy mezi jednotlivými čteními dat můžete použít funkci pg_sleep(sekundy) (např.SELECT pg_sleep(5);
pro čekání 5 sekund).