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



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

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

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

PODSTAWY BAZ DANYCH 13. PL/SQL

BAZA DANYCH SIECI HOTELI

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

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

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

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

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

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

Relacyjne bazy danych. Podstawy SQL

Bazy Danych egzamin 9 luty, 2012 rozwiazania

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

Bazy danych 6. Klucze obce. P. F. Góra

Oracle PL/SQL. Paweł Rajba.

Przykładowa baza danych BIBLIOTEKA

Wykład 5. SQL praca z tabelami 2

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

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

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

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Wprowadzenie do baz danych

Procedury i funkcje składowane

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

Relacyjne bazy danych. Podstawy SQL

Grupowanie i funkcje agregujące

Oracle PL/SQL. Paweł Rajba.

Hurtownia Świętego Mikołaja projekt bazy danych

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

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

Aspekty aktywne baz danych

Język SQL, zajęcia nr 2

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

Autor: Joanna Karwowska

Zaawansowane bazy danych i hurtownie danych semestr I

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Struktura drzewa w MySQL. Michał Tyszczenko

Wykład 8. SQL praca z tabelami 5

Oracle PL/SQL. Paweł Rajba.

Pakiety podprogramów Dynamiczny SQL

SIECI KOMPUTEROWE I BAZY DANYCH

Cele. Definiowanie wyzwalaczy

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

SIECI KOMPUTEROWE I BAZY DANYCH

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

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

Wykład 05 Bazy danych

SQL :: Data Definition Language

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

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

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

SQL (ang. Structured Query Language)

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

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

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

Laboratorium Bazy danych SQL 2

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Administracja i programowanie pod Microsoft SQL Server 2000

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

Bazy danych, 4. wiczenia

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

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

Bazy danych. dr inż. Arkadiusz Mirakowski

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

Bloki anonimowe w PL/SQL

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

1. Wyzwalacze BD (ang. triggers)

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

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

SQL praca z tabelami 4. Wykład 7

Systemowe aspekty baz danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Wykład 6. SQL praca z tabelami 3

Przestrzenne bazy danych Podstawy języka SQL

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Indeksy. Indeks typu B drzewo

Systemowe aspekty baz

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Model relacyjny. Wykład II

Bazy danych SQL Server 2005

Podstawy technologii WWW

15. Funkcje i procedury składowane PL/SQL

Post-relacyjne bazy danych

Transkrypt:

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 i opisz również wyniki pośrednie). A B 1 1 2 null 5 2 null 2 3 null Etap 1: Klauzula: SELECT NVL(Z.A,0)+NVL(Z.B,0) AS SUMA, COUNT(*) FROM T Y RIGHT OUTER JOIN T Z ON (Y.A = Z.B) WHERE Y.A+NVL(Y.B,0)+NVL(Z.A,0)+Z.B=4 OR Z.B IS NULL GROUP BY NVL(Z.A,0)+NVL(Z.B,0) ORDER BY AVG(NVL(Y.B,2)) DESC Etap 2: Klauzula: Etap 3: Klauzula: Etap 4: Klauzula: Etap 5: Klauzula:

Dany jest następujący schemat bazy danych: KRAJE # ID_KRAJU * NAZWA * KONTYNENT * POWIERZCHNIA LATARNIE # ID_KRAJU # ID_MORZA # NAZWA * DATA_BUDOWY * WYSOKOŚĆ * CZY_ISTNIEJE o CZY_FUNKCJONUJE MORZA # ID_MORZA * NAZWA o POWIERZCHNIA Objaśnienia: # kolumna wchodzi w skład klucza podstawowego relacji * kolumna obowiązkowa o kolumna opcjonalna podkreślenie kolumna wchodzi w skład klucza obcego relacji (klucze obce w relacji LATARNIE: ID_KRAJU do kolumny ID_KRAJU w relacji KRAJE, ID_MORZA do kolumny ID_MORZA w relacji MORZA). Uwaga! Kolumny CZY_ISTNIEJE i CZY_FUNKCJONUJE zawierają jednoliterowy ciąg znaków ('T','N'). Zad. 2 (6 pkt) Podaj polecenie, które utworzy relacje LATARNIE. Relacja ma posiadać następujące własności: kolumna ID_KRAJU jest liczba całkowita o maksymalnej wartości 999 i elementem klucza podstawowego o nazwie LAT_PK oraz kluczem obcym o nazwie LAT_KR_FK, wskazującym na kolumnę ID_KRAJU w relacji KRAJE, - kolumna ID_MORZA jest liczba całkowita o maksymalnej wartosci 999 i elementem klucza podstawowego o nazwie LAT_PK oraz kluczem obcym o nazwie LAT_MR_FK, wskazującym na kolumnę ID_ MORZA w relacji MORZA, kolumna DATA_BUDOWY ma przechowywać daty kolumna WYSOKOŚĆ ma przechowywać liczby całkowite dodatnie o maksymalnej wartości 999 kolumny CZY_FUNKCJONUJE i CZY_ISTNIEJE mają zawierać litery 'T' lub 'N' nie może znajdować się w bazie danych latarnia funkcjonująca a jednocześnie nieistniejąca Uwaga! Podczas tworzenia relacji weź pod uwagę również informacje pokazane na rysunku!

Zad. 3 (6 pkt) Napisz zapytanie, które dla każdego kontynentu, wyświetli jego nazwę, liczbę znajdujących się w nim krajów, oraz sumaryczną ich powierzchnię. Analizę ogranicz tylko do tych krajów, które znajdują się w bazie danych. Posortuj kontynenty zgodnie z malejącą liczbą znajdujących się w nim krajów. Zad. 4 (7 pkt) Napisz zapytanie, które dla każdej latarni wyświetli jej nazwę, nazwę kraju, w którym się znajduje, nazwę morza, nad którym się znajduje, datę jej budowy i wysokość. Wynik zapytania ogranicz tylko do tych latarni, które posiadają ponad 25 metrów wysokości i znajdują się w krajach znajdujących się w Europie.

Zad. 5 (7 pkt) Napisz zapytanie, które dla każdego kraju wyświetli jego nazwę, liczbę latarni, jakie znajdują się na jego terytorium, liczbę mórz, nad którymi znajdują się te latarnie i sumaryczną wysokość owych latarń. Analizę ogranicz tylko do tych latarń, które posiadają powyżej 20 metrów wysokości. Wyniki analizy ogranicz tylko do tych krajów, które posiadają mniej niż 50 tego typu latarni. Pamiętaj o wyświetleniu również tych krajów, które nie posiadają takich latarni. Zad. 6 (8 pkt) Napisz zapytanie, które dla każdego kraju wyświetli jego nazwę, oraz nazwę i wysokość najwyższej latarni, jaka znajduje się na jego terytorium.

Zad. 7 (8 pkt) Napisz zapytanie, które dla kraju, w którym znajduje się największa liczba funkcjonujących latarni, wyświetli jego nazwę oraz stosunek latarni funkcjonujących w danym kraju do wszystkich latarni istniejących w danym kraju. Zad. 8 (8 pkt) Podaj polecenie, które zmieni atrybut POWIERZCHNIA w relacji MORZA z opcjonalnego na obowiązkowy. Napisz polecenie, doda do powierzchni każdego z mórz wartość wynikającą z liczby krajów posiadających nad danym morzem swoje latarnie, zgodnie z następującym wzorem: nowa powierzchnia = stara powierzchnia + 10 * liczba krajów posiadających nad danym morzem latarnie

Zad. 9 (6 pkt) Usuń informacje o tych latarniach, które znajdują się w Polsce, zostały zbudowane po roku 1956 a przed 1970 i które już nie istnieją. Zad. 10 (10 pkt) Napisz polecenie tworzące perspektywę LATARNIE_KRAJÓW wyświetlającą dla każdego kraju jego nazwę, kontynent oraz kolumnę LATARNIE. Kolumna LATARNIE powinna zawierać analizę dotyczącą latarni znajdujących się na terytorium danego kraju. Analiza powinna składać się z czterech liczb A; B; C; D; zawierających odpowiednio liczby latarni o wysokościach: 0-15; 16-30; 31-45; powyżej 45 metrów. Jeśli istnieje taka potrzeba, napisz polecenie tworzące odpowiednią funkcję, która następnie zostanie wykorzystana podczas polecenia tworzącego perspektywę. Przykładowy wynik zwracany przez perspektywę zaprezentowany został poniżej. NAZWA KONTYNENT LATARNIE POLSKA EUROPA 0; 8; 17; 2; NIEMCY EUROPA 1; 16; 23; 10;

Zad. 11 (12 pkt) Napisz polecenie tworzące wyzwalacz, który modyfikacji atrybutu POWIERZCHNIA w relacji KRAJ, będzie automatycznie aktualizował atrybut POWIERZCHNIA w relacji MORZA. Każda zmiana w relacji KRAJE musi proporcjonalnie modyfikować MORZA, nad którymi znajdują się latarnie danego KRAJU. Przykładowo, jeżeli powierzchnia Anglii zostanie zmniejszona o 2 metry i jeżeli jej latarnie znajdują się nad 3 morzami, to utracona powierzchnia musi spowodować wzrost powierzchni wszystkich trzech mórz o 2/3. Wyzwalacz musi być zdefiniowany na "poziomie krotki" i musi umożliwiać operacje obejmujące swoim zakresem wiele krotek w relacji KRAJE. Wyzwalacz musi uwzględniać tylko modyfikacje powierzchni w relacji KRAJE.

Zad. 12 (12 pkt) W bazie danych, w której istnieje relacja T (z zad. 1) i identyczna z nią relacja U, za pomocą poniższych poleceń zdefiniowano pakiet P i wyzwalacz T_TRIG. create or replace package P as w number; procedure PR(v number); function DAJ_W return number; create or replace package body P as procedure PR(v number) is begin update U set A = w where B = v; w := w + SQL%ROWCOUNT; function DAJ_W return number is begin return w; begin w := nvl(w,0) + 3; create trigger T_TRIG before update on T for each row when (NEW.A <> 2) begin P.PR(:NEW.B-:OLD.B); Podaj wyniki poniższych zapytań: 1. SELECT * FROM U; 2. SELECT P.DAJ_W FROM DUAL; jeżeli wcześniej wykonano polecenie: UPDATE T SET B = B+B WHERE A is null or A < 3; Podaj pośrednie wartości zmiennej W.