Wyzwalacze TWORZENIE WYZWALACZY

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wyzwalacze TWORZENIE WYZWALACZY"

Transkrypt

1 Wyzwalacze: podobnie jak procedury i funkcje, są nazwanymi blokami PL/SQL zawierającymi sekcje deklaracji, wykonania i obsługi wyjątków; nie akceptują argumentów; muszą być składowane jako samodzielne obiekty w bazie danych i nie mogą występować lokalnie w bloku lub w pakiecie; są wykonywane niejawnie (lub inaczej uruchamiany (ang. firing)), o ile wystąpi zdarzenie wyzwalające, którym może być, np. operacja DML (INSERT, UPDATE lub DELETE) wykonywana dla tabeli lub odpowiedniego rodzaju perspektyw; uruchomienie lub zamknięcie bazy danych oraz pewne rodzaje operacji DDL. Wyzwalacze stosuje się między innymi: Utrzymanie złożonych więzów integralności, niemożliwych do uzyskania przez więzy deklaracji uaktywniane podczas tworzenia tabeli. Kontrola danych w tabeli przez rejestrowanie dokonywanych zmian oraz autorów tych zmian. Automatyczne przekazywanie do innych programów informacji, że jest wymagane podjęcie określonych działań w razie dokonania zmian w tabeli. TWORZENIE WYZWALACZY CREATE [OR REPLACE] TRIGGER nazwa_wyzwalacza {BEFORE AFTER INSTEAD OF } zdarzenie_wyzwalające [klauzula_z_odwolaniem] [WHEN warunek_wyzwalacza] [FOR EACH ROW] tresc_wyzwalacza; gdzie: zdarzenie_wyzwalające zdarzenie uruchamiające wyzwalacz (może również zawierać odwołanie do tabeli lub perspektywy); kaluzula_z_odwolaniem jest wykorzystywany w celu odwołania do danych w 1

2 modyfikowanym wierszu pod inną nazwą. warunek_wyzwalacza treść wyzwalacza jest wykonywana tylko przy warunku o wartości TRUE; Rodzaje wyzwalaczy: Wyzwalacze DML są uruchamiane przez instrukcje DML, a ich typ jest określany przez typ instrukcji. Można definiować je dla operacji INSERT, UPDATE lub DELETE i uruchamiać przed operacją lub po niej, a także w związku z operacjami dotyczącymi wiersza lub instrukcji. Istnieje 12 możliwych typów wyzwalaczy DML: 3 rodzaje operacji x 2 rodzaje czasów x 2 możliwe poziomy: wiersza wyzwalacz jest uruchamiany po jednym razie dla każdego wiersza, którego dotyczy instrukcja (FOR EACH ROW); instrukcji wyzwalacz jest uruchamiany jeden raz przed lub po wykonaniu instrukcji. Dla tabeli może być zdefiniowana dowolna liczba wyzwalaczy włącznie z możliwością zdefiniowania więcej niż jednego wyzwalacza dla określonego rodzaju instrukcji DML, np. można zdefiniować 2 wyzwalacze AFTER DELETE poziomu instrukcji. Wszystkie wyzwalacze tego samego typu będą uruchamiane sekwencyjnie. Przykład 1 Niech STATYSTYKA_ETAT będzie tabelą przechowującą informacje o etatach oraz liczbie zatrudnionych pracowników na poszczególnych etatach i sumie ich płac podstawowych. CREATE TABLE statystyka_etat ( etat VARCHAR2(30), ilu NUMBER(5), suma_plac NUMBER(8,2) ); CREATE OR REPLACE TRIGGER UaktualnijStatystyke AFTER INSERT OR UPDATE OR DELETE ON pracownik DECLARE CURSOR A IS SELECT etat e, COUNT(*) ile, SUM(placa_pod) suma 2

3 FROM pracownik GROUP BY etat; DELETE FROM statystyka_etat; FOR i IN A LOOP INSERT INTO statystyka_etat VALUES(i.e, i.ile, i.suma); END LOOP; END UaktualnijStatystyke; / Algorytm uruchamiania wyzwalaczy podczas wykonywania instrukcji DML: 1. Wykonywanie wyzwalacza BEFORE na poziomie instrukcji, o ile taki istnieje. 2. Dla każdego wiersza, na którym wykonywana jest instrukcja: wykonywanie wyzwalacza BEFORE na poziomie wiersza, o ile taki istnieje; wykonywanie samej instrukcji, o ile tka istnieje; wykonywanie wyzwalacza AFTER na poziomie wiersza, o ile taki istnieje. 3. Wykonywanie wyzwalacza AFTER na poziomie instrukcji, o ile taka istnieje. Ćwiczenie 1 1. Utwórz tabelę Cwiczenie2 składającą się z dwóch pól: całkowitego A i łańcucha 50 znaków B. 2. Utwórz sekwencję o nazwie indeks o wartości początkowej 1 i wzrastający o Utwórz pakiet o nazwie pakiet_wyzwalaczy, który zawierać będzie globalną zmienną całkowitą o nazwie licznik. 4. Utwórz wyzwalacz W1, który przed wykonaniem instrukcji UPDATE na tabeli pracownik wyzeruje zmienną licznik pakietu. Wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie instrukcji; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W2, który po wykonaniu instrukcji UPDATE na tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie instrukcji 1; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o 1. 3

4 6. Utwórz wyzwalacz W3, który po wykonaniu instrukcji UPDATE na tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie instrukcji 2; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W4, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 1; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W5, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 2; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W6, który przed wykonaniem instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'BEFORE na poziomie wiersza 3; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Utwórz wyzwalacz W7, który po wykonaniu instrukcji UPDATE dla każdego wiersza tabeli pracownik wstawi do tabeli Cwiczenie2 wartości, NEXTVAL sekwencji oraz komunikat 'AFTER na poziomie wiersza; licznik = ' z podaniem aktualnej wartości zmiennej licznik oraz zwiększy wartość zmiennej licznik o Uaktualnić płacę podstawową o 10% tych pracowników, którzy są zatrudnieni w zespole o identyfikatorze 10 lub Wyświetlić zawartość tabeli Cwiczenie2 z uporządkowaniem wierszy w kolejności rosnącej wartości kolumny A. Kolejność uruchamiania wyzwalaczy tego samego typu nie jest określona, ale można ją wymusić definiując wyzwalacz łączący je w jeden. Wyzwalacze na poziomie wiersza uruchamiają się raz dla wiersza przetwarzanego przez instrukcję wyzwalającą. Wewnątrz wyzwalacza dostęp do danych w obecnie przetwarzanym wierszu można uzyskać za pomocą identyfikatorów korelacji (specjalnego rodzaju zmiennych dowiązanych zmiennych hosta PL/SQL, a kompilator będzie je traktował jako rekordy typu 4

5 tabela_wyzwalająca%rowtype): :new i :old. Wyzwalacze Instrukcja wyzwalająca Wartość :old Wartość :new INSERT UPDATE DELETE Nieokreślona wszystkie pola mają wartość NULL Oryginalne wartości wiersza przed uaktualnieniem Oryginalne wartości wiersza przed usunięciem Wartości, które będą wstawione po wykonaniu instrukcji. Nowe wartości, którymi będą uaktualnione pola po wykonaniu instrukcji. Nieokreślona wszystkie pola mają wartość NULL Przykład 2 CREATE SEQUENCE zespol_id START WITH 70 INCREMENT BY 10; CREATE OR REPLACE TRIGGER Wygeneruj_ID_Zespolu BEFORE INSERT OR UPDATE ON zespol FOR EACH ROW SELECT zespol_id.nextval INTO :new.id_zesp FROM dual; END; / INSERT INTO zespol (nazwa, adres) VALUES ('statystyka', 'Gleboka 3'); INSERT INTO zespol VALUES (-7, 'statyka', 'Plytka 3'); Nie można zmieniać wartości :new w wyzwalaczu AFTER. Wartość :old może być tylko odczytana. Nie można przypisywać wartości :old i :new jako całych rekordów, jedynie uzyskać dostęp do indywidualnych pól. 5

6 Przykład 3 CREATE OR REPLACE TRIGGER Usun BEFORE DELETE ON Cwiczenie2 FOR EACH ROW DECLARE zm Cwiczenie2%ROWTYPE; // zm := :old; NIEPOPRAWNE PRZYPISANIE zm.a := :old.a; zm.b := :old.b; END; / Ponadto nie jest możliwe przekazania wartości :old i :new do procedur lub funkcji. Klauzula REFERENCING występuje po zdarzeniu wywołującym, a przed klauzulą WHEN w definicji wyzwalacza i ma składnię: REFERENCING [OLD AS nowy_old] [NEW AS nowy_new] Przykład 4 CREATE OR REPLACE TRIGGER Wygeneruj_ID_Zespolu BEFORE INSERT OR UPDATE ON zespol REFERENCING new AS nowy_zespol FOR EACH ROW SELECT zespol_id.nextval INTO :nowy_zespol.id_zesp FROM dual; END; / Klauzula WHEN jest tylko prawidłowa na poziomie wiersza, a jej warunek jest sprawdzany dla każdego wiersza i tylko gdy jest on prawdziwy wykonywana jest treść wyzwalacza. Pseudorekordy :new i :old mogą być wykorzystane w warunku klauzuli WHEN ale odwołujemy się wtedy do nich bez znaku dwukropka. 6

7 WHEN (new.placa_pod > 1000) lub równoważnie IF :new.placa_pod > 1000 THEN END IF;... END; Na poziomie instrukcji INSERT, DELETE i UPDATE istnieją trzy boolowskie funkcje, które służą do określania rodzaju operacji: INSERTING TRUE, gdy instrukcją wyzwalającą jest INSERT, wpp FALSE; UPDATING TRUE, gdy instrukcją wyzwalającą jest UPDATE, wpp FALSE; DELETING TRUE, gdy instrukcją wyzwalającą jest DELETE, wpp FALSE. Ćwiczenie 2 Utworzyć wyzwalacz CW2, którego zadaniem będzie wyświetlenie odpowiedniego komunikatu o wykonaniu jednej z instrukcji INSERT, UPDATE lub DELETE na tabeli pracownik. Wyzwalacze zastępujące (ang. instead-of) mogą być definiowane tylko dla perspektyw (relacyjnych lub obiektowych) i uruchamiają się zamiast wyzwalającej je instrukcji DML. Działają na poziomie wierszy. Wykorzystuje się je w celu: umożliwienia modyfikowania perspektyw; modyfikowania kolumn tabeli zagnieżdżonej będącej kolumną w perspektywie. Perspektywa modyfikowalna to taka, dla której można wykonać instrukcję DML i nie zawiera: operatorów zbioru (UNION, UNION ALL, MINUS); funkcje agregujących; klauzul GROUP BY, CONNECT BY lub START WITH; operatora DISTNICT; złączeń. UWAGA: Można modyfikować perspektywy ze złączeniami o ile operacja DML modyfikuje tylko jedną tabelę bazową w danym czasie lub 7

8 Operacje DML INSERT UPDATE DELETE Dozwolone, jeżeli: Instrukcja nie odnosi się jawnie lub niejawnie do kolumn tabeli bez zachowania kluczy. Zmodyfikowane kolumny są odwzorowane na kolumny tabeli z zachowaniem kluczy. W złączeniu istnieje dokładnie jedna tabela z zachowaniem kluczy. Przykład 5 Tworzymy perspektywę opartą o wybrane dane pochodzące z dwóch tabel: pracownik i zespol. Następnie poprzez perspektywę próbujemy wstawić nowe wiersze do tych tabel. Wykonanie instrukcji kończy się niepowodzeniem. W kolejnym kroku definiujemy wyzwalacz zastępujący instrukcję INSERT. CREATE OR REPLACE VIEW Pracownik_adres AS SELECT numer, nazwisko, etat, nazwa, adres FROM pracownik, zespol WHERE pracownik.id_zesp=pracownik.id_zesp; INSERT INTO Pracownik_adres VALUES(1141, 'Kowalski', 'adiunkt', 'analiza','ak 13/15'); CREATE TRIGGER WstawPrzezPerspektywe INSTEAD OF INSERT ON Pracownik_adres DECLARE z_id_zesp zespol.id_zesp%type; SELECT max(id_zesp) INTO z_id_zesp FROM zespol; z_id_zesp := z_id_zesp + 10; INSERT INTO zespol VALUES(z_id_zesp, :new.nazwa, :new.adres); INSERT INTO pracownik VALUES ( :new.numer, :new.nazwisko, :new.etat, 1000, sysdate, 1800, 0, z_id_zesp, ' ' ); END WstawPrzezPerspektywe; / 8

9 Wyzwalacze systemowe począwszy od wersji Oracle8i wprowadzono możliwość definiowania wyzwalaczy, które uruchamiają się w przypadku wystąpienia zdarzenia systemowego takiego, jak uruchomienie lub zatrzymanie bazy danych. Wyzwalacz systemowy można również uruchomić dla instrukcji DDL (CREATE, ALTER, DROP), jak np. utworzenie tabeli. CREATE [OR REPLACE] TRIGGER [schemat. ] nazwa_wyzwalacza {BEFORE AFTER} {lista_zdarzen_ddl lita_zdarzen_bazy_danych} ON {DATABASE [schemat. ] SCHEMA} [WHEN warunek] tresc_wyzwalacza; Zdarzenie Dozwolony parametr czasowy Opis STARTUP AFTER Uruchamia się wraz z uruchomieniem bazy danych SHUTDOWN BEFORE Uruchamia się wraz z zatrzymaniem bazy danych. Zdarzenie to może nie nastąpić z chwilą zatrzymania bazy danych z powodu awarii. SERVERERROR AFTER Uruchamia się z chwilą wystąpienia błędu. LOGON AFTER Uruchamia się po pomyślnym zalogowaniu użytkownika do bazy danych. LOGOFF BEFORE Uruchamia się na początku procesu wyrejestrowania użytkownika z bazy danych. CREATE DROP ALTER BEFORE, AFTER Uruchamia się przed lub po utworzeniu obiektu schematu. BEFORE, AFTER Uruchamia się przed lub po usunięciu obiektu schematu. BEFORE, ALTER Uruchamia się przed lub po uaktualnieniu obiektu schematu. UWAGA: Tworzenie wyzwalaczy systemowych jest możliwe tylko dla użytkownika z uprawnieniami ADMINISTER DATABASE TRIGGER. Jeśli nie wyspecyfikujemy schematu dla słowa kluczowego SCHEMA, domyślnym będzie ten schemat, który zawiera wyzwalacz. 9

10 Atrybuty zdarzeń wyzwalacza systemowego: Wyzwalacze Atrybut Typ danych Zdarzenie Opis SYSEVENT VARCHAR2(20) Wszystkie Zwraca zdarzenie systemowe, które uruchomiło wyzwalacz. INSTANCE_NUM NUMBER Wszystkie Zwraca bieżący numer egzemplarza, zazwyczaj wartość 1. DATABASE_NAME VARCHAR2(50) Wszystkie Zwraca nazwę bieżącej bazy danych. SERVER_ERROR NUMBER SERVERERROR Zwraca błąd znajdujący się na stosie błędów wskazywany przez argument. Wartość 1 oznacza wierzchołek stosu. IS_SERVERERROR BOOLEAN SERVERERROR Pobiera numer błędu i zwraca TRUE o ile błąd znajduje się na stosie błędów. LOGIN_USER VARCHAR2(30) Wszystkie Zwraca identyfikator użytkownika, który uruchomił wyzwalacz. DICTIONARY_OBJ_ TYPE DICTIONARY_OBJ_ NAME DICTIONARY_OBJ_ OWNER DES_ENCRYPTED_ PASSWORD VARCHAR2(20) CREATE, DROP, DELETE Zwraca typ obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE, DROP, DELETE Zwraca nazwę obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE, DROP, DELETE Zwraca właściciela obiektu słownika, dla którego wykonano operację DDL, która spowodowała uruchomienie wyzwalacza. VARCHAR2(30) CREATE lub ALTER USER Zwraca hasło zaszyfrowane algorytmem DES utworzonego użytkownika lub użytkownika, dla którego zmodyfikowano dane. Przykład 6 create table t_ddl( id VARCHAR2(30), typ_obiektu VARCHAR2(20), nazwa_obiektu VARCHAR2(30), wlasciciel_obiektu VARCHAR2(30), data_utworzenia date ); 10

11 CREATE OR REPLACE TRIGGER Rejestruj AFTER CREATE ON SCHEMA INSERT INTO t_ddl ( id, typ_obiektu, nazwa_obiektu, wlasciciel_obiektu, data_utworzenia) VALUES (USER, SYS.DICTIONARY_OBJ_TYPE, SYS.DICTIONARY_ OBJ_NAME, SYS.DICTIONARY_OBJ_OWNER,SYSDATE); END; / Wyzwalacze systemowe a transakcje wyzwalacz systemowy STARTUP, SHUTDOWN, SERVERERROR oraz LOGON uruchamiają się jako oddzielna transakcja, która jest zatwierdzana po pomyślnym wykonaniu wyzwalacza, natomiast wyzwalacze LOGOFF oraz związane z operacjami DDL uruchamiają się w ramach bieżącej transakcji. W przypadku wyzwalacza DDL bieżąca transakcja jest automatycznie zatwierdzana, co równocześnie zatwierdza działania wykonane przez wyzwalacz. Działanie wyzwalacza LOGOFF również będzie zatwierdzone jako część końcowej transakcji w sesji. UWAGA: Dla wyzwalaczy STARTUP i SHUTDOWN nie można określać żadnych warunków. W wyzwalaczach SERVERERROR można także wykorzystać zmienną ERRNO w celu śledzenia tylko wybranego błędu. W wyzwalaczach LOGON i LOGOFF można sprawdzać identyfikator i nazwę użytkownika, posługując się zmiennymi USERID i USERNAME. W wyzwalaczach DDL można sprawdzać typ i nazwę modyfikowanego obiektu, a także identyfikator i nazwę użytkownika. Przestrzeń nazw jest zbiorem poprawnych identyfikatorów, dostępnych do wykorzystania jako nazwy obiektów. Procedury, pakiety i tabele mają wspólną przestrzeń nazw. Wyzwalacze maja osobną przestrzeń nazw, co oznacza, że wyzwalacze mogą mieć nazwę taką samą jak, np. procedura, funkcja, czy tabela. 11

12 Ograniczenia: W wyzwalaczu nie można wydawać żadnych instrukcji sterowania transakcją COMMIT, ROLLBACK lub SAVEPOINT. Kompilator pozwoli na utworzenie wyzwalacza, ale przy uruchomieniu wystąpi błąd. W procedurach i funkcjach wewnątrz wyzwalaczy wydawać żadnych instrukcji sterowania transakcją. W treści wyzwalacza nie deklaruje się zmiennych LONG lub LONG RAW. Wartości :new i :old nie mogą się odwoływać do kolumn tego typu w tabeli, dla której zdefiniowano wyzwalacz. Można odwoływać się i wykorzystywać kolumny typu LOB, ale nie można modyfikować wartości tych kolumn. Dotyczy to również kolumn obiektowych. W treści wyzwalacza można wykonywać instrukcję CALL. Po utworzeniu wyzwalacza jego kod źródłowy jest składowany w perspektywie słownika danych user_triggers. W perspektywie tej znajduje się kod wyzwalacza, dane określające klauzulę WHEN, tabelę wyzwalającą oraz typ wyzwalacza. SELECT trigger_type, table_name, trigger_event FROM user_triggers WHERE trigger_name = 'WstawPrzezPerspektywe'; Perspektywy: all_triggers zawierają informacje o wyzwalaczach dostępnych dla bieżącego użytkownika, które mogą należeć do innego użytkownika; dba_triggers zawiera informacje na temat wyzwalaczy w bazie danych. USUWANIE wyzwalacza: DROP TRIGGER nazwa_wyzwalacza; DEZAKTYWOWANIE wyzwalacza: ALTER TRIGGER nazwa_wyzwalacza {DISABLE ENABLE}; DEZAKTYWACJA wyzwalaczy na danej tabeli: ALTER TABLE nazwa_tabeli {DISABLE ENABLE} ALL TRIGGERS; Skompilowana forma wyzwalacza jest również przechowywana w słowniku danych. Wyzwalacz 12

13 unieważniony będzie ponownie skompilowany przy następnym uruchomieniu. TABELE MUTUJĄCE Tabela mutująca jest tabelą, która w danej chwili jest modyfikowana przez instrukcję DML. W przypadku wyzwalacza jest to tabela, dla której zdefiniowano wyzwalacz. Tabelami mutującymi mogą być również tabele, które mogą wymagać uaktualnienia w wyniku kaskadowego usuwania danych (DELETE CASCADE) przy występujących więzach integralności referencyjnej. Tabela wiążąca jest tabelą, która może wymagać odczytu ze względu na więzy integralności referencyjnej. W tabeli pracownik mamy zdefiniowane ograniczenia dla kolumn i klucze obce do tabel etat i zespol. Tabele etat i zespol są zatem tabelami wiążącymi dla tabeli pracownik. Sama tabela pracownik podlega mutacji podczas wykonywania dla niej instrukcji DML. Z powodu istneijących więzów tabele etat i zepsol również wymagają modyfikacji i (lub) wykonania zapytań przez instrukcję DML. Instrukcje SQL wewnątrz wyzwalaczy nie mogą wykonywać następujących operacji: Odczytywać lub modyfikować tabeli mutującej wskazanej w instrukcji wyzwalanej. Zasada ta dotyczy samej tabeli wyzwalającej. Odczytywać lub modyfikować kolumny klucza głównego, unikatowego lub obcego tabeli wiążącej dla tabeli wyzwalającej. Jednak w razie potrzeby instrukcje SQL mogą przeprowadzać modyfikacje innych kolumn. Powyższe ograniczenia dotyczą wszystkich wyzwalaczy na poziomie wiersza. Na poziomie instrukcji ograniczenia te są prawdziwe tylko wtedy, gdy wyzwalacz na poziomie instrukcji jest uruchomiony w wyniku operacji kaskadowego usuwania. 13

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład szósty Więzy i wyzwalacze Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa szósty Więzy i wyzwalacze 1 / 35 Wstęp Wiemy jak nakładać pewne ograniczenia (więzy) w

Bardziej szczegółowo

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli. SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Aspekty aktywne baz danych

Aspekty aktywne baz danych Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL; Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku

Bardziej szczegółowo

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

Bardziej szczegółowo

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

Bardziej szczegółowo

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek; Administrowanie użytkownikami Ćwiczenia laboratoryjne (2) Przygotowanie środowiska 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz dwie sesje w dwóch różnych

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

Bardziej szczegółowo

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Grupa A (LATARNIE) Imię i nazwisko: Numer albumu: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Nazwisko prowadzącego: 11: 12: Suma: Ocena: Zad. 1 (10 pkt) Dana jest relacja T. Podaj wynik poniższego zapytania (podaj

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

Oracle10g: Programowanie w PL/SQL

Oracle10g: Programowanie w PL/SQL Oracle10g: Programowanie w PL/SQL OPIS: Szkolenie dotyczy użytkowników Oracle8i, Oracle9i i Oracle10g. Ten kurs pozwala zrozumieć zalety tego potężnego narzędzia programowania do PL/SQL. Studenci uczą

Bardziej szczegółowo

Uprawnienia, role, synonimy

Uprawnienia, role, synonimy Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy

Bardziej szczegółowo

SQL :: Data Definition Language

SQL :: Data Definition Language SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem

Bardziej szczegółowo

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze Ćwiczenie 13 PL/SQL Język PL/SQL procedury, funkcje, pakiety, wyzwalacze Ćwiczenie 13 PL/SQL Niniejsze ćwiczenie zaprezentuje składowane w bazie danych programy PL/SQL: procedury, funkcje, pakiety oraz

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Wykorzystanie SQL w PL/SQL Kursory Wyjątki Projekt fizyczny bazy danych Braki projektu

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora'; Administrowanie systemami baz danych Ćwiczenia laboratoryjne (1) Podstawy uruchamiania serwera bazy danych 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu Zbiór pytań nr 5 1 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu connect athos/musketeer grant select,insert,update,delete on athos.services to porthos with grant option; grant

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

Systemowe aspekty baz

Systemowe aspekty baz Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta? Gr Masyla: 1. Zaznacz poprawne stwierdzenia dotyczące opcji recovery model w MS SQL Server a) Ustawienie Simple pozwala zaoszczędzid miejsce na dysku b) Model full jest zalecany dla baz danych, w których

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Język zapytań SQL- język relacyjnych baz danych

Język zapytań SQL- język relacyjnych baz danych Język SQL Język zapytań SQL- język relacyjnych baz danych SQL (Structured Query Language),czyli Strukturalny Język Zapytań. SQL jest standardowym językiem do kierowania poleceń do relacyjnej bazy danych

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Obiektowe bazy danych Ćwiczenia laboratoryjne (?) Obiektowe bazy danych Ćwiczenia laboratoryjne (?) Tworzenie typów obiektowych 1. Zdefiniuj typ obiektowy reprezentujący SAMOCHODY. Każdy samochód powinien mieć markę, model, liczbę kilometrów oraz datę

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż. 1/40 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Październik 2015 2/40 Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Wykorzystanie 3/40 Projekt

Bardziej szczegółowo

Cwiczenie 7. Retrospekcja

Cwiczenie 7. Retrospekcja Cwiczenie 7. Retrospekcja 1. Sprawdzenie środowiska Czas trwania: 15 minut Mechanizmy związane z retrospekcją wymagają spełnienia kilku warunków. W pierwszym ćwiczeniu dokonamy ich weryfikacji. Zakłada

Bardziej szczegółowo

Rozproszone bazy danych 1

Rozproszone bazy danych 1 Rozproszone bazy danych 1 Replikacja danych Laboratorium przygotował: Robert Wrembel ZSBD laboratorium 1 (1) 1 Plan laboratorium Dostęp do zdalnej bazy danych - łącznik bazy danych Replikowanie danych

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

SQL język zapytań (query language) cz.1

SQL język zapytań (query language) cz.1 SQL język zapytań (query language) cz.1 Zapytanie SELECT - podstawy (3) SELECT A 1,A 2,...,A k (1) FROM R 1,R 2,,R n -- lista wyboru (atrybutów) -- relacje (lista FROM) (2) WHERE F -- warunek wyboru (selekcji)

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane

Bardziej szczegółowo

Systemowe aspekty baz danych

Systemowe aspekty baz danych Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wyjątki PL/SQL Mechanizmy dotyczące błędów Typy wyjątków Obsługa wyjątków PL/SQL Obsługa błędów predefiniowanych, użytkownika

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata

Bardziej szczegółowo

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

Systemy baz danych 2 laboratorium Projekt zaliczeniowy Dany jest następujący logiczny schemat bazy danych Systemy baz danych 2 laboratorium Projekt zaliczeniowy FAKTURY POZYCJE PK f_id_faktury PK p_id_pozycji f_data_wystawienia f_data_płatnosci f_czy_zaplacona

Bardziej szczegółowo

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego Oracle Developer Suite Budowa aplikacji użytkownika końcowego Składniki pakietu Oracle Developer Suite Oracle Forms Builder formularze (aplikacje dostępne z poziomu przeglądarki internetowej, model 3-warstwowy)

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń. Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21

Bardziej szczegółowo

Bazy danych Język SQL część 2 Wykład dla studentów matem

Bazy danych Język SQL część 2 Wykład dla studentów matem Bazy danych Język SQL część 2 Wykład dla studentów matematyki 21 marca 2015 Zapytania na kilku tabelach Czasem poszukiwana informacja znajduje się w kilku tabelach. Aby zapytanie dotyczyło kilku tabel,

Bardziej szczegółowo

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

Bardziej szczegółowo

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny

Bardziej szczegółowo

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

SQL w praktyce. Miłej i owocnej nauki!!!

SQL w praktyce. Miłej i owocnej nauki!!! SQL w praktyce Niniejsza praca objęta jest prawami autorskimi. Nielegalne jest kopiowanie żadnej częsci tej pracy w żadnej postaci. Niezgodne z prawem tym bardziej jest udostępnianie innym tej pracy odpłatnie

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

Bardziej szczegółowo

Kursory - pobieranie danych z baz danych do programów PL/SQL

Kursory - pobieranie danych z baz danych do programów PL/SQL Kursory - pobieranie danych z baz danych do programów PL/SQL Rozważania będą dotyczyć sposobów pobierania danych z baz danych do programów przechowywanych w pamięci. Interakcja języka PL/SQL z językiem

Bardziej szczegółowo

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 2015-12-03 Bazy danych-1 W5 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych 1 Plan rozdziału 2 Wprowadzenie obiektowy model danych Obiekty w bazie danych definiowanie i przechowywanie składowe i metody konstruktory referencje dziedziczenie i polimorfizm Kolekcje

Bardziej szczegółowo