PV003 - Architektura relacních databázovych systému
Cvicení
- Úcast na cvicení je nepovinná a registrace do nekteré ze seminárních skupin není nutná pro absolvování predmetu PV003. Na cvicení procvicujeme u pocítace príkazy,
které byly probrány na prednášce.
- Materiály ze cvicení (Zdenek Ríha):
- 1. cviceni: Create table, datové typy, základní príkazy (soubor cv1.sql)
- 2. cviceni: Constraints (soubor cv2.sql)
- 3. cviceni: Sekvence, jednoduchý select (soubor cv3.sql)
- 4. cviceni: Operátory (soubor cv4.sql)
- 5. cviceni: Tabulka DUAL, spojení tabulek, hierarchické dotazy (soubor cv5.sql)
- 6. cviceni: Úvod do PL/SQL: promenne, cykly, funkce, procedury, výjimky (komentovany skript, soubor cv6.sql)
- 6. cviceni: Kursory (komentovany skript, soubor cv7.sql)
- 8. cviceni: Triggery (soubor cv8.sql)
- 9. cviceni: Transakce, zamykání (soubor cv9.sql)
- 10. cviceni: Prístup do db oracle z Perlu a Pro*C
- 11. cviceni: Procvicování príkazu select
- Zapoctove priklady z minuleho roku: zapocty.zip, 1, 2
- Zapoctove pisemky: 17.5.2005
Hodnocení
- Pro získání zápoctu/zkoušky je treba:
- Ve skupinkách 1-4 lidí vytvorit projekt a ten prezentovat
- Napsat "zápoctovou" písemku (jednoduchý SELECT bez pocítace)
- Napsat "zkouškovou" písemku (z teorie z prednášek)
Projekt
- Cílem prezentace projektu je presvedcit me, že jste si prakticky vyzkoušeli
práci se systémem Oracle.
Pod slovem projekt si v tomto prípade predstavuju sadu SQL skriptu,
které budou obsahovat veci probírané na prednáškách a cviceních.
Povinne musí projekt obsahovat následující prvky:
- vytvorení tabulek a naplnení daty
- vnorený select
- select používající "group by" a "having"
- sekvenci
- alespon 2 triggery
- PL/SQL blok s kursorem
- Projekty budou skupinky (všichni clenové skupiny budou vedet, co který
skript delé a budou mi to schopni vysvetlit) prezentovat v dobe rezervované
pro cvicení v posledních 2 týdnech semestru a prípadne též zacátkem zkouškového
období.
- Popis jednoducheho projektu a temata na dalsi lze nalezt na strance dotazu.
Oracle
- Vytvorení nového úctu pro Oracle (Fakultní administrativa)
Použijete stejné heslo jako pro prihlašování k pocítacum v hale.
- Prihlášení
Nejprve je nutné si vytvorit na databázi Oracle úcet. Na aise
je nainstalován Oracle8, prihlásíte se k nemu pomocí prihlašovacího
jména, které si zvolíte pri vytvárení úctu na Fakultní administrative.
Pokud se chcete prihlásit k Oracle10, zadejte prihlašovací jméno ve
tvaru 'login@db10'.
aisa: module add oracle
aisa: sqlplus login@db10
SQL*Plus: Release 8.1.5.0.1 - Production on Tue Feb 22 14:25:48 2005
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
SQL>
GQLPLUS interpret
Alternativou k Oracle SQLPLUS je GNU GQLPLUS, ktery podporuje historii. Je dostupny na pocitacich nymfeXX a aise.
Prihlaseni pro pocitace nymfe:
nymfe17: module add gqlplus
nymfe17: gqlplus login@db10
Prihlaseni pro aisu:
aisa: module add gqlplus-1.8
aisa: gqlplus login@db10
Dalsi prace je jiz plne analogicka s programem SQLPLUS. Dekuji velmi J. Sedenkovi za zprovozneni tohoto modulu.
Web rozhranní k Oracle10 (dostupné jen z pocítacu v rámci FI)
Alternativou k rádkovému intepretu SQLPLUS je web rozhranní iSQL*Plus http://pyrrha.fi.muni.cz:5560/isqlplus/
Prihlašujete se s využitím stejného jména a hesla jako pri použití
SQLPLUS. Je zde možnost prímého nahrávání a ukládání *.sql skriptu a
podpora historie príkazu. Další literatura
Vycerpávající dokumentace k DB systému oracle je na OTN http://technet.oracle.com/
Lokální kopie dokumentace v PDF: SQL reference,
Admin guide, PL/SQL reference,
SQL*Plus reference, Pro*C guide.
Dotazy
Ukazkove vypracovani projektu, mozne namety.
Lze vlozit do tabulky naraz vice radku pomoci prikazu INSERT?
Lze ukoncit predcasne provadeni triggeru?
Jak nastavit sloupec tabulky tak, aby se automaticky vzestupne cisloval (auto increment)?
Lze se pripojit k databázi Oracle "zvencí"?
Jak vypíšu seznam svých vytvorených tabulek?
Jak vyvolám historii príkazu v SQLPLUS?
Jak kaskádně odstranit z databáze záznamy svázáné integritním omezením?
Jak zobrazit na výstup pouze řádky od X-tého výše?
Lze prímo v definici tabulky zajistit prevedení vkládaného retece na velké znaky?
Chování dvou a více seq.NEXTVAL v rámci jednoho příkazu INSERT.
Definice vyhledavaneho vzoru pro prikaz LIKE obsahujici '_'.
|