1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5
2 SBD, L.Banachowski Perspektywa Zapamiętana w bazie danych definicja zapytania do późniejszego użycia, “wirtualna” tabela, widok na dane w bazie danych dla grupy użytkowników. CREATE VIEW Urz ę dnicy (Empno, Ename, Sal) AS SELECT Empno, Ename, Sal FROM Emp WHERE Job = ' CLERK ' ; UPDATE Urz ę dnicy SET Sal=Sal*1.1;
3 SBD, L.Banachowski Perspektywa z opcją sprawdzania CREATE VIEW Emp_na_urlopie_bezp ł atnym AS SELECT * FROM Emp WHERE Sal = 0 OR Sal IS NULL WITH CHECK OPTION; Nie uda się zmiana wysokości zarobków, gdy Zarobki = 0 lub Null. UPDATE Emp_na_urlopie_bezp ł atnym SET Sal = WHERE Ename = ' KOWALSKI ' ;
4 SBD, L.Banachowski Perspektywa tylko do odczytu Zabezpieczenie przed dokonywaniem zmian przez perspektywę. CREATE VIEW Pracownicy AS SELECT * FROM Emp WITH READ ONLY;
5 SBD, L.Banachowski Synonim CREATE SYNONYM DeptX FOR DROP SYNONYM nazwa_synonimu;
6 SBD, L.Banachowski Blokada (zamek) System sam zakłada blokady na pojedyncze wiersze, na których są przeprowadzane operacje. Blokada na tabelę: LOCK TABLE nazwa_tabeli IN tryb MODE; gdzie tryb = SHARE – tryb współdzielony lub EXCLUSIVE - tryb wyłączny. SELECT nazwa_kolumny -- blokada na podzbi ó r wierszy... FOR UPDATE [ NOWAIT];
7 SBD, L.Banachowski Transakcja “tylko-odczyt” “Zamrożenie” widoku bazy danych SET TRANSACTION READ ONLY;
8 SBD, L.Banachowski Poziomy izolacji transakcji SET TRANSACTION ISOLATION LEVEL poziom; SERIALIZABLE (izolowana transakcja) READ COMMITED (transakcja z odczytem zatwierdzonych danych)
9 SBD, L.Banachowski Słownik danych (schemat informacyjny) - informacja o obiektach bazy danych SELECT Column_Name, Data_Type FROM User_Tab_Columns WHERE Table_Name = ' EMP ' ; COLUMN_NAME DATA_TYPE EMPNO NUMBER ENAME VARCHAR2 JOB VARCHAR2 MGR NUMBER HIREDATE DATE SAL NUMBER COMM NUMBER DEPTNO NUMBER
10 SBD, L.Banachowski Przyznawanie i odbieranie uprawnień w bazie danych GRANT uprawnienie,... ON obiekt TO użytkownik; REVOKE uprawnienie,... ON obiekt FROM użytkownik; CREATE USER użytkownik IDENTIFIED BY hasło ; GRANT CREATE SESSION, CREATE TABLE TO użytkownik ; DROP USER użytkownik ;
11 SBD, L.Banachowski Role CREATE ROLE Dyrektor; CREATE ROLE Urz ę dnik; GRANT SELECT ON Emp TO Dyrektor; GRANT SELECT, UPDATE ON Emp TO Urz ę dnik; GRANT Dyrektor TO King, Leon; GRANT Urz ę dnik TO Liza, Ewa, Marta;
12 SBD, L.Banachowski Tabela tymczasowa Ich zawartość jest niszczona: przy każdym zakończeniu sesji użytkownika ( ON COMMIT PRESERVE ROWS ), przy każdej operacji COMMIT (opcja ON COMMIT DELETE ROWS ). CREATE GLOBAL TEMPORARY TABLE Prac_zatrudniani_dzi ś (Nr_kolejny INTEGER PRIMARY KEY, Imi ę VARCHAR(40) NOT NULL, Nazwisko VARCHAR(50) NOT NULL, Informacja VARCHAR(1000)) ON COMMIT PRESERVE ROWS;
13 SBD, L.Banachowski Inne obiekty w bazie danych Dziedzina - nazwane więzy spójności dla wielu kolumn. Asercja - więzy spójności dla całej tabeli. Sekwencja – generator jednoznacznych numerów. Klaster – struktura przechowywania razem wierszy z kilku tabel.