Zaawansowane bazy danych i hurtownie danych semestr I, st. niestacjonarne

Podobne dokumenty
Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Technologie baz danych WYKŁAD 7: Wyjątki

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Oracle PL/SQL. Paweł Rajba.

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

1. Wyzwalacze BD (ang. triggers)

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

Język PL/SQL Procedury i funkcje składowane

Procedury i funkcje składowane

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

PL/SQL. Zaawansowane tematy PL/SQL

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

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

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

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

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Bloki anonimowe w PL/SQL

Bazy danych, 4. wiczenia

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Oracle11g: Programowanie w PL/SQL

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

15. Funkcje i procedury składowane PL/SQL

BAZY DANYCH W APLIKACJACH SIECIOWYCH

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

1. ELEMENTY JĘZYKA PL/SQL

Pakiety podprogramów Dynamiczny SQL

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Wyzwalacze TWORZENIE WYZWALACZY

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

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

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

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

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

Oracle10g: Programowanie w PL/SQL

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Indeksy. Indeks typu B drzewo

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

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Język PL/SQL. Rozdział 4. Procedury i funkcje składowane

Oracle PL/SQL. Paweł Rajba.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

11 marca Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

2 PL/SQL - podstawy Zmienne i stałe Operatory SQL w PL/SQL Instrukcje sterujące... 8

Baza danych inside. Biologiczne Aplikacje Baz Danych

Cele. Definiowanie wyzwalaczy

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

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

SQL 4 Structured Query Lenguage

Oracle11g: Wprowadzenie do SQL

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

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

Paweł Rajba

Hurtownia Świętego Mikołaja projekt bazy danych

BAZA DANYCH SIECI HOTELI

Bloki anonimowe w PL/SQL

Język PL/SQL Pakiety podprogramów

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

PL/SQL. Lidia Małkiewicz i Cezary Skubała

Procedury Funkcje Pakiety. Tworzenie procedury

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

PL/SQL. Zaawansowane tematy PL/SQL

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Język SQL. Rozdział 8. Język manipulowania danymi DML

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

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

Deklarowanie kursora

SQL :: Data Definition Language

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

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

CREATE SEQUENCE [schemat_użytkownika.]nazwa_sekwencji zestaw_parametrów_sekwencji ;

Oracle PL/SQL. Paweł Rajba.

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

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

Tworzenie aplikacji bazodanowych

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Systemy GIS Tworzenie zapytań w bazach danych

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL

Wyzwalacze (triggery) Przykład

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

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

Uprawnienia, role, synonimy

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

Oracle PL/SQL. Paweł Rajba.

Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów

Język PL/SQL. Rozdział 2. Kursory

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

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

Transkrypt:

Ważne informacje Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I, st. niestacjonarne 1. CEZ 2. http://aragorn.pb.bialystok.pl/~aonisko: Szczegółowy plan zajęć, materiały do wykładów i pracowni specjalistycznej, literatura, terminy zaliczeń WYKŁAD 1: Zaawansowane obiekty baz danych Agnieszka Oniśko ZBDiHD-wprowadzenie 1/66 ZBDiHD-wprowadzenie 2/66 Plan przedmiotu 1. Zaawansowane obiekty baz danych (ORACLE) Zaawansowane obiekty baz danych (1) Optymalizacja zapytań w praktyce (1) Hurtownie danych (3) Bazy danych typu NoSQL (2) ZBDiHD-wprowadzenie 3/66 ZBDiHD-wprowadzenie 4/66 2. Optymalizacja zapytań w praktyce Hurtownie danych (3 wykłady) 3. Wprowadzenie do hurtowni danych, modele danych 4. Architektura hurtowni danych 5. Operacje w hurtowniach danych (zaawansowany SQL) Pearson Education 2009 ZBDiHD-wprowadzenie 5/66 ZBDiHD-wprowadzenie 6/66

3. Modele danych w hurtowniach danych Grupa grupa_id nazwa Kategoria_vat kategoria_id podatek_vat wymiar Produkt Produkt id_produktu nazwa kategoria_id grupa_id Reklama_rodzaj rodzaj_id scenariusz Reklama id_produktu rodzaj_id data koszty wymiar Lokalizacja wymiar Czas Województwo Miasto Sklep Sprzedaż Miesiąc Kwartał województwo_id miasto_id id_sklepu id_produktu data kwartał_id nazwa nazwa nazwa id_sklepu nr_miesiąca nr_kwartału l_mieszkańców l_mieszkańców adres data nazwa_miesiąca data_końca_kwart w_powierzchnia_k2 województwo_id miasto_id l_sztuk dni_wolne rok wartość kwartał_id ZBDiHD-wprowadzenie 7/66 4. Architektura hurtowni danych Źródła danych Magazyny ODS E T L Składowanie danych Przetwarzanie danych: Filtrowanie Klasyfikacja Agregacje Podsumowania Standaryzacja Załaduj do HT Oddzielny ETL dla każdej hurtowni tematycznej Niezależne hurtownie tematyczne Narzędzia użytkownika końcowego Narzędzia: Tworzenie zapytań Tworzenie raportów Aplikacje użytkownika Data Mining Wizualizacja Dostęp do danych jest złożony: dane w różnych hurtowniach tematycznych ZBDiHD-wprowadzenie 8/66 5. Operaje na hurtowniach danych 5. Operacje na hurtowniach danych: Funkcje analityczne Wycinanie (Cube Slicing) Zwijanie (Roll-up) Rozwijanie (Drill-down) Obracanie (Pivot) Agregacje (Aggregation) ZBDiHD-wprowadzenie 9/66 SELECT TO_CHAR(orderdate, 'MONTH') as month, category, SUM(retail*quantity), SUM(SUM(retail*quantity)) OVER (PARTITION BY TO_CHAR(orderdate, 'MONTH')) as total_by_month FROM orderitems, books, orders WHERE orders.order#=orderitems.order# AND orderitems.isbn=books.isbn AND TO_CHAR(orderdate, 'YYYY') = 2005 GROUP BY TO_CHAR(orderdate, 'MONTH'), category ORDER BY TO_CHAR(orderdate, 'MONTH'), category; ZBDiHD-wprowadzenie 10/66 6-7. Bazy danych typu NoSQL (2 wykłady) 6. Bazy danych typu NoSQL 6. Bazy danych typu NoSQL 7. Bazy dokumentów (np. MongoDB) ZBDiHD-wprowadzenie 11/66 ZBDiHD-wprowadzenie 12/66

7. Bazy danych typu NoSQL: Bazy dokumentów PL/SQL (Procedural Language/ Structured Query Language) PL/SQL: język o strukturze blokowej bloki nazwane bloki anonimowe bloki podrzędne ZBDiHD-wprowadzenie 13/66 ZBDiHD-wprowadzenie 14/66 Wykonanie bloku w PL/SQL Blok PL/SQL [DECLARE deklaracje] [EXCEPTION obsługa wyjątków] źródło: http://docs.oracle.com/ ZBDiHD-wprowadzenie 15/66 ZBDiHD-wprowadzenie 16/66 Struktura bloku w PL/SQL Obsługa SQL w PL/SQL zmienne, stałe, kursory, wyjątki zdefiniowane przez użytkownika instrukcje języka SQL instrukcje sterujące PL/SQL SELECT INSERT UPDATE DELETE COMMIT ROLLBACK SAVEPOINT działania, które mają być podjęte w razie wystąpienia błędów Funkcje, operatory i pseudokolumny dostępne w SQL ZBDiHD-wprowadzenie 17/66 ZBDiHD-wprowadzenie 18/66

Zmienne i stałe Typy danych ZMIENNA: identyfikator typ_danych [NOT NULL] [:=wart_pocz DEFAULTwart_pocz]; STAŁA: identyfikator CONSTANT typ_danych [:=wart_pocz DEFAULTwart_pocz]; DECLARE v_zmienna NUMBER(5); v_nr NUMBER(3) NOT NULL := 10; c_stala CONSTANT NUMBER(2) DEFAULT 13; v_sprawdz BOOLEAN NOT NULL := TRUE; Typy danych SQL Number() Varchar2() Date.. Typy danych PL/SQL Boolean %TYPE %ROWTYPE.. PL/SQL data types SQL data types ZBDiHD-wprowadzenie 19/66 ZBDiHD-wprowadzenie 20/66 Typy danych Instrukcja warunkowa zmienna%type tabela.kolumna%type tabela%rowtype v_imie VARCHAR2(15); v_moje_imie v_imie%type; v_cena books.retail%type; ksiazki_rekord books%rowtype; ZBDiHD-wprowadzenie 21/66 IF warunek THEN instrukcja-1; END IF; IF warunek-1 THEN instrukcja-1; ELSIF warunek-2 THEN instrukcja-2; ELSE instrukcja-3; END IF; IF warunek THEN instrukcja-1; ELSE instrukcja-2; END IF; ZBDiHD-wprowadzenie 22/66 Instrukcja iteracyjna LOOP LOOP instrukcje; EXIT [WHEN warunek]; WHILE warunek LOOP instrukcje; FOR licznik IN [REVERSE] min..max LOOP instrukcje; Przetwarzanie wyników zapytań SELECT lista INTO nazwa_zmiennej nazwa_rekordu FROM tabela WHERE warunek; SELECT MAX(retail) INTO v_max FROM books; ZBDiHD-wprowadzenie 23/66 ZBDiHD-wprowadzenie 24/66

Kursory jawne: Deklaracja Pęta kursorowa FOR CURSOR nazwa_kursora [(parametr [, parametr] )] IS instrukcja_select; parametr ::= nazwa_parametru typ danych [{:= DEFAULT wyrażenie}] CURSOR kur_books (p_cost NUMBER(5)) IS SELECT * FROM books WHERE cost <= p_cost; FOR nazwa_rekordu IN nazwa_kursora LOOP instrukcja-1; instrukcja-2;. zmienna nazwa_rekordu -- zadeklarowana niejawnie ZBDiHD-wprowadzenie 25/66 ZBDiHD-wprowadzenie 26/66 Kursory jawne: Przykład DECLARE CURSOR k_order (p_zam orders.order#%type) IS SELECT * FROM orderitems WHERE order# = p_zam; FOR i IN k_order(1) LOOP dbms_output.put_line(i.isbn); / Kursor w pętli FOR DECLARE CURSOR a_cursor IS SELECT * FROM customers; FOR i IN a_cursor LOOP dbms_output.put_line(i.lastname); FOR i IN (SELECT * FROM customers) LOOP dbms_output.put_line(i.lastname); ZBDiHD-wprowadzenie 27/66 ZBDiHD-wprowadzenie 28/66 Podprogramy Zaawansowane obiekty baz danych Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie powiązanych procedur i funkcji ZBDiHD-wprowadzenie 29/66 ZBDiHD-wprowadzenie 30/66

Składniki podprogramu Podprogramy: Procedura Nagłówek podprogramu [deklaracje] [EXCEPTION obsługa wyjątków] [CREATE OR REPLACE] PROCEDURE nazwa_procedury [ (parametr [, parametr ] )] IS [deklaracje] [EXCEPTIONS obsługa wyjątków] END [nazwa_procedury]; ZBDiHD-wprowadzenie 31/66 ZBDiHD-wprowadzenie 32/66 Podprogramy: Funkcja [CREATE OR REPLACE] FUNCTION nazwa_funkcji [(parametr [, parametr ] )] RETURN nazwa_typu IS [deklaracje] [EXCEPTIONS obsługa wyjątków] END [nazwa_funkcji]; Tryby parametrów podprogramów Środowisko Argument IN Argument OUT Argument IN OUT [deklaracje] [EXCEPTION obsługa wyjątków] ZBDiHD-wprowadzenie 33/66 ZBDiHD-wprowadzenie 34/66 Parametry w podprogramach Procedura: Przykład parametr [IN OUT [NOCOPY] IN OUT [NOCOPY]] typ_danych [:= DEFAULT wyraŝenie] CREATE OR REPLACE PROCEDURE mod_cene (p_isbn books.isbn%type, p_wartosc NUMBER) IS IN OUT IN OUT Parametry przekazywane przez wartość Parametry przekazywane przez referencję UPDATE books SET retail = retail + p_wartosc WHERE isbn = p_isbn; END mod_cene; ZBDiHD-wprowadzenie 35/66 ZBDiHD-wprowadzenie 36/66

Funkcja: Przykład CREATE OR REPLACE FUNCTION VAT(p_isbn books.isbn%type) RETURN NUMBER IS v_cena books.retail%type; SELECT retail INTO v_cena FROM books WHERE isbn = p_isbn; Wywoływanie procedur/funkcji EXECUTE nazwa_procedury[(parametry)] EXECUTE zmienna:= nazwa_funkcji[(parametry)] RETURN (v_cena*0.07); END VAT; ZBDiHD-wprowadzenie 37/66 ZBDiHD-wprowadzenie 38/66 Wywoływanie procedur/funkcji: Przykład Użycie funkcji w instrukcji SQL EXECUTE mod_cene(1,5); VARIABLE g_vat NUMBER EXECUTE :g_vat := VAT(1); PRINT g_vat SELECT title, retail, VAT(retail) FROM books; ZBDiHD-wprowadzenie 39/66 ZBDiHD-wprowadzenie 40/66 Procedury/funkcje: Podsumowanie Pakiety Funkcje zdefiniowane przez użytkownika mogą być stosowane w instrukcjach SQL (procedury nie!) Funkcja nie może zawierać instrukcji DML Typy danych używane w funkcji muszą być wewnętrzynymi typami serwera a nie typami danych PL/SQL Aplikacja Pakiet Specyfikacja Ciało pakietu Baza danych ZBDiHD-wprowadzenie 41/66 ZBDiHD-wprowadzenie 42/66

Pakiety: Zalety korzystania Poprawa zarządzania procedurami i funkcjami Poprawa bezpieczeństwa (uprawnienia do pakietu!) Poprawa efektywności Pakiety wbudowane DBMS_ALERT DBMS_OUTPUT DBMS_PIPE UTL_FILE UTL_HTTP DBMS_SQL DBMS_DEBUG DBMS_DDL DBMS _RANDOM DBMS_SESSION SET SERVEROUTPUT ON ZBDiHD-wprowadzenie 43/66 ZBDiHD-wprowadzenie 44/66 Wyzwalacze Tworzenie wyzwalaczy Procedury składowane w bazie danych, automatycznie uruchamiane przez system przy wystąpieniu określonego zdarzenia w bazie danych Wyzwalacze wierszowe: akcja wykonywana jest tyle razy, ile jest wierszy, których dotyczy polecenie aktywujące wyzwalacz Wyzwalacze poleceniowe: akcja wykonywana jest tylko jeden raz, niezależnie od ilości wierszy, których dotyczy polecenie aktywujące wyzwalacz http://docs.oracle.com/cd/b19306_01/server.102/b14220/triggers.htm ZBDiHD-wprowadzenie 45/66 ZBDiHD-wprowadzenie 46/66 Wyzwalacze wywoływane kaskadowo Tworzenie wyzwalaczy http://docs.oracle.com/cd/b19306_01/server.102/b14220/triggers.htm ZBDiHD-wprowadzenie 47/66 ZBDiHD-wprowadzenie 48/66

Tworzenie wyzwalaczy CREATE OR REPLACE TRIGGER nazwa_wyzwalacza { BEFORE AFTER INSTEAD OF } { DELETE INSERT UPDATE [ OF kolumna, [, kolumna ] ] } [ OR { DELETE INSERT UPDATE [ OF kolumna, [, kolumna ] ] } ] ON tabela [ FOR EACH ROW [ WHEN (warunek) ] ] Rodzaje wyzwalaczy Wyzwalacze reagujące na instrukcje DML: BEFORE, AFTER (operują na tabelach) INSTEAD OF (operują na perspektywach) blok pl/sql ZBDiHD-wprowadzenie 49/66 ZBDiHD-wprowadzenie 50/66 Stare i nowe wartości wierszy Modyfikowanie wartości INSERT new UPDATE new, old BEFORE Można zmieniać wartości new DELETE old AFTER Nie można zmieniać wartości new :identyfikator.kolumna ZBDiHD-wprowadzenie 51/66 ZBDiHD-wprowadzenie 52/66 Wykrywanie rodzaju instrukcji DML Włączanie i wyłączanie wyzwalaczy CREATE OR REPLACE TRIGGER trig_ceny BEFORE UPDATE OF retail ON books FOR EACH ROW WHEN (new.retail < 100) IF :new.retail > :old.retail*1.1 THEN :new.retail := :old.retail*1.1; END IF; ALTER TRIGGER nazwa_wyzwalacza { ENABLE DISABLE} ALTER TRIGGER nazwa_wyzw ENABLE; ALTER TRIGGER nazwa_wyzw DISABLE; ZBDiHD-wprowadzenie 53/66 ZBDiHD-wprowadzenie 54/66

Wykrywanie rodzaju instrukcji DML Polecenie-1 DML Polecenie-2 DML INSERTING UPDATING DELETING Wyzwalacz Wyzwalacze systemowe BEFORE LOGON BEFORE CREATE BEFORE ALTER BEFORE DROP BEFORE AUDIT BEFORE NOAUDIT BEFORE DDL BEFORE GRANT BEFORE RENAME BEFORE REVOKE AFTER LOGON AFTER CREATE AFTER ALTER AFTER DROP AFTER AUDIT AFTER NOAUDIT AFTER DDL AFTER GRANT AFTER RENAME AFTER REVOKE ZBDiHD-wprowadzenie 55/66 ZBDiHD-wprowadzenie 56/66 Wyzwalacze systemowe Sekwencje CREATE OR REPLACE TRIGGER trig_logowanie AFTER LOGON ON SCHEMA INSERT INTO komunikat(str1) VALUES( zalogowano sie SYSDATE); Obiekty bazy danych używane do generowania unikatowych wartości (zwykle na potrzeby kluczy głównych) Dostęp do kolejnych wartości umożliwiają pseudokolumny NEXTVAL (zwraca wartość zwiększoną w kolejnym kroku) CURRVAL (zwraca bieżacą wartość) ZBDiHD-wprowadzenie 57/66 ZBDiHD-wprowadzenie 58/66 Sekwencje Sekwencje: Przykład CREATE SEQUENCE nazwa_sekwencji [ INCREMENT BY wartość START WITH wartość {MAXVALUE wartość NOMAXVALUE} {MINVALUE wartość NOMINVALUE } {CYCLE NOCYCLE } {CACHE NOCACHE } ] CREATE SEQUENCE sekw_2 INCREMENT BY 2 START WITH 100 MAXVALUE 120 CYCLE; ZBDiHD-wprowadzenie 59/66 ZBDiHD-wprowadzenie 60/66

Sekwencje: Przykład Sekwencje FOR i IN 1..5 LOOP INSERT INTO komunikat(nr) VALUES(sekw_2.NEXTVAL); ALTER SEQUENCE nazwa_sekwencji [ INCREMENT BY wartość {MAXVALUE wartość NOMAXVALUE} {MINVALUE wartość NOMINVALUE} {CYCLE NOCYCLE } ] ZBDiHD-wprowadzenie 61/66 ZBDiHD-wprowadzenie 62/66 Sekwencje Mogą być używane: w klauzuli SET polecenia UPDATE najbardziej zewnętrznym podzapytaniu w listach wartości polecenia INSERT Nie mogą być używane: w podzapytaniach w poleceniu SELECT z klauzulami ORDER BY, GROUP BY, CONNECT BY, HAVING z kwantyfikatorem DISTINCT Synonimy: Zastosowanie Synonimy umożliwiają nadawanie alternatywnych nazw dla niektórych obiektów bazy danych Łatwiejsze wprowadzanie poleceń poprzez skrócenie nazwy obiektów znajdujących się w innych schematach tej samej bazy danych lub innych bazach Odizolowanie aplikacji i użytkowników od zmian zachodzących w konstrukcji bazy danych ZBDiHD-wprowadzenie 63/66 ZBDiHD-wprowadzenie 64/66 Synonimy Synonimy: Przykład CREATE [PUBLIC] SYNONYM nazwa_synonimu FOR obiekt; Synonimy prywatne: tworzone dla określonej grupy użytkowników CREATE PUBLIC SYNONYM s_ksiazka FOR books; RENAME stara_nazwa TO nowa_nazwa; Synonimy publiczne: tworzone dla wszystkich użytkowników ZBDiHD-wprowadzenie 65/66 ZBDiHD-wprowadzenie 66/66