Rys. 1 Wynik zastosowania bloku testowego (plik SBD_Kol2_nazwisko.sql)

Podobne dokumenty
Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Połowy wędkarskie na wodach użytkowanych przez Okręg Polskiego Związku Wędkarskiego w Jeleniej Górze

Połowy wędkarskie na wodach użytkowanych przez Okręg Polskiego Związku Wędkarskiego w Jeleniej Górze

Uchwała nr 5/2017 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Ryba Ilość sztuk Wymiar ochronny. Węgorz 1 60 cm. Sandacz 1 / co 7 dni / 60 cm

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

Połowy wędkarskie w wodach użytkowanych przez Okręg Polskiego Związku Wędkarskiego w Jeleniej Górze

Wykład 05 Bazy danych

Oracle PL/SQL. Paweł Rajba.

Uchwała nr 11/2018 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Połowy wędkarskie w wodach użytkowanych przez Okręg Polskiego Związku Wędkarskiego w Jeleniej Górze

Zadania z SQLa (MS SQL Server)

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

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

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Uchwała nr 23/2018. z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego nr 810 Gierzyna

Oracle PL/SQL. Paweł Rajba.

Uchwała nr 16/2017 Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego nr 517 Michalik

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

SQL (ang. Structured Query Language)

Uchwała nr 64/2017 Zarządu Okręgu PZW w Katowicach z dnia r.

Widok Connections po utworzeniu połączenia. Obszar roboczy

Autor: Joanna Karwowska

Uchwała nr 45/2015 Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 15/2015 Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego Leśny Dwór nr 230

Uchwała nr 9/2019 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 118/2018 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego nr 755 Toń

UCHWAŁA Nr 2/2016 Walnego Zgromadzenia sprawozdawczego członków Koła PZW w Kalwarii Zebrzydowskiej z dnia 10 stycznia 2016 roku

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Uchwała nr 67/2017 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 2/2019 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Wykład 8. SQL praca z tabelami 5

Uchwała nr 11/2017 Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego nr 231 Żarki

Uchwała nr 44/2015 Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego Dzibice nr 108

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Traci moc uchwała nr 27/2014 ZO PZW w Katowicach z dnia r.

OKRĘG POLSKIEGO ZWIĄZKU WĘDKARSKIEGO w BYDGOSZCZY REJESTR. AMATORSKIEGO POŁOWU RYB na rok 2019

Uchwała nr 56/2019 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Język SQL, zajęcia nr 1

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

SYSTEM INFORMATYCZNY KS-SEW

Oracle PL/SQL. Paweł Rajba.

Uchwała nr 18/2017 Zarządu Okręgu PZW w Katowicach z dnia r.

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Modelowanie wymiarów

Uchwała nr 115/2018 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 6/2017 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Uchwała nr 6/2015 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Podstawowe zapytania SELECT (na jednej tabeli)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Uchwała nr 113/2018 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

Uchwała nr 10/2017 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 10/2015 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: utworzenia i zatwierdzenia łowiska licencyjnego LIGA

Uchwała nr 13/2017 Zarządu Okręgu PZW w Katowicach z dnia r.

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

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

Wykład 5. SQL praca z tabelami 2

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

Uchwała nr 70/2015 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 80/2017 Zarządu Okręgu PZW w Katowicach z dnia r.

FORD MONDEO MON_ _V3_MASTER_COVER_AW.indd 1 18/04/ :54

Bazy danych. dr inż. Arkadiusz Mirakowski

w sprawie: zatwierdzenie regulaminu łowiska licencyjnego Malinka nr 216

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

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Database Connectivity

Uchwała nr 80/2016 Prezydium Zarządu Okręgu PZW w Katowicach z dnia r.

Uchwała nr 60/2017 Zarządu Okręgu PZW w Katowicach z dnia r. w sprawie: zatwierdzenia regulaminu łowiska licencyjnego nr 112 Łosień

Autor: Joanna Karwowska

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

Pakiety podprogramów Dynamiczny SQL

PL/SQL. Zaawansowane tematy PL/SQL

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

Bazy danych. Polecenia SQL

Rozdział 17. Zarządzanie współbieżnością zadania

Rozszerzenia grupowania

Programowanie w Ruby

Uchwała nr 10/2017 Zarządu Okręgu PZW w Katowicach z dnia r.

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

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

Zarządu Okręgu PZW w Tarnowie z dnia r. w sprawie ustalenia zasad nagradzania wędkarzy za prace społeczne wykonywane na rzecz okręgu.

Przykładowa baza danych BIBLIOTEKA

QUERY język zapytań do tworzenia raportów w AS/400

PŁYTKI MONTAŻOWE DO LUSTEREK

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Struktura drzewa w MySQL. Michał Tyszczenko

Bazy danych - Materiały do laboratoriów VIII

Programowanie obiektowe

TEMAT : KLASY DZIEDZICZENIE

ALFA ROMEO... 2 AUDI... 2 BMW... 2 CHRYSLER... 3 CITROEN... 4 FIAT... 4 FORD... 5 HONDA... 6 HYUNDAI... 7 LEXUS... 7 MITSUBISHI... 8 OPEL...

Oracle PL/SQL. Paweł Rajba.

Transkrypt:

Systemy baz danych Kolokwium 2 Poziom odniesienia: 55 pkt. Do zdobycia 72 pkt. 1. Utwórz typ obiektowy (specyfikację i implementację) o nazwie Maszyna zawierający następujące atrybuty: - nazwa (V30), 6 pkt. - model (V30), - data_prod (D; data produkcji), oraz - definicję konstruktora domyślnego (nazwa = Prototyp, model = Null, data_prod = 01.01.YYYY gdzie YYYY to aktualny rok), - definicję konstruktora z dwoma parametrami: nazwa i data_produkcji (model = Null), - definicję metody wyświetl - w przypadku braku sprecyzowanej nazwy modelu należy pominąć informację dotyczącą tego argumentu. Rys. 1 Wynik zastosowania bloku testowego (plik SBD_Kol2_nazwisko.sql) 2. Utwórz typ obiektowy o nazwie Samochod dziedziczący po typie Maszyna posiadający następujące atrybuty: 7 pkt. - nr_rej (V10), - data_bad_tech (D; data badania technicznego), oraz - definicję konstruktora domyślnego (nazwa, model i data_prod jak w Zad. 1; nr_rej=sc00000, data_bad_tech = 01.01.YYYY gdzie YYYY to kolejny rok względem aktualnego roku np. data_prod = 1.1.2017 to data_bad_tech = 1.1.2018), - definicję konstruktora z czterema parametrami: nazwa, model, data_prod i nr_rej. Datę badań technicznych (data_bad_tech) ustala się na podstawie daty produkcji (data_prod) i jest ona o rok starsza od niej, - definicję metody Wyświetl (z uwzględnieniem pominięcia atrybutów o niezdefiniowanej wartości czyli NULL), - definicję metody Set_data_bad_tech, która na podstawie parametru wejściowego typu D ustala nową wartość daty badań technicznych (data_bad_tech). Rys. 2 Wynik zastosowania bloku testowego (plik SBD_Kol2_nazwisko.sql) 3. Utwórz tabelę obiektową Tab_Samochody bazującą na typie Samochod. Następnie wprowadź do niej dane umieszczone w poniżej tabeli (10 rekordów) wykorzystując do tego odpowiednie konstruktory typu Samochod (wartości parametrów w pliku SBD_Kol2_nazwisko.sql). 3 pkt. Konstruktor (l. parametrów) 1 0 nazwa model data_prod nr_rej data_bad_tech 2 5 Ford Mondeo 30.04.2010 SK12345 25.04.2017 3 4 Opel Astra 10.03.2014 SCZ4321 4 4 Fiat Punto NULL KR00007 5 4 Audi A6 aktualna GD11111 6 5 Seat Toledo 14.08.2013 PO22222 NULL 7 5 Kia Ceed 17.11.2016 DW33333 NULL 8 4 Renault Laguna 1.09.2012 ZS44444 9 4 Toyota Rav4 1.01.2016 OP55555 10 4 Volkswagen Passat 1.02.2016 EL66666

Rys. 3 Wynik uzyskany dla: select * from Tab_Samochody; 4. Utwórz typ obiektowy o nazwie Kierowca zawierający następujące atrybuty: 2 pkt. - id_kierowcy (N4), - nazwisko (V20), - imię (V20), następnie w oparciu o niego utwórz tabelę Kierowcy, do której wprowadź następujące dane: insert into Kierowcy Values (1001, 'Adamski', 'Adam' ); insert into Kierowcy Values (1002, 'Piotrowski', 'Piotr' ); insert into Kierowcy Values (1003, 'Daniel', 'Danielewski' ); insert into Kierowcy Values (1004, 'Marta', 'Markowska'); 5. Utwórz tabelę obiektową o nazwie Ewidencja zawierającą następujące kolumny: 5 pkt. - id_ewidencji (N) klucz główny, - wlasciciel referencja na typ kierowca, - pojazd referencja na typ samochod, następnie w oparciu o zawartość poniżej tabeli (Rys. 4) dokonaj wpisu do niej 8-u wierszy danych oraz opracuj zapytanie wyświetlające poniższe zestawienie (jak na Rys. 4). Rys. 4 Wynik zwrócony przez zapytanie 6. Jak można zauważyć na Rys. 4 pewne samochody nie mają ustalonego terminu badań technicznych lub ich badania nie są już aktualne. Dokonaj stosownej aktualizacji danych pojazdów, które posiadają właściciela i datę produkcji, według następującego schematu: 3/10 pkt. a) gdy pojazd nie posiada określonej daty badań technicznych (data_bad_tech=null) to data_bad_tech=1.1.yyyy gdzie YYYY to kolejny rok wobec aktualnego roku, b) w pozostałych przypadkach data badań technicznych to dokładnie rok później niż aktualna data. Powyższą operację można zrealizować metodą na piechotę zmieniając kolejno dane w odpowiednich rekordach (3 pkt.) lub za pośrednictwem utworzonej procedury Aktualizuj_Daty_BT, przyjmującej jeden parametry określający nową datę badań technicznych (obowiązuje dla podpunktu b; domyślnie parametr przyjmuje datę dokładnie o rok starszą niż aktualna) (10 pkt.). Rys. 5 Efekt wykonania: execute Aktualizuj_Daty_BT(); (data realizacji 20.01.2017)

Rys. 6 Wynik uzyskany wobec wykonania zapytania z Zad 5 Rys. 7 Wynik uzyskany dla: select * from Tab_Samochody; 7. Usuń wszystkie elementy utworzone w ramach realizacji zadań 1-6. 1 pkt. Część druga 8. Utwórz tabelę Akweny w oparciu o dane zawarte w tabeli Lowisko (id_akwenu = id_lowiska, nazwa, miejscowosc). W tabeli Akweny mają znajdować się dane zbiorników (typ = zbiornik) zarządzanych przez PZW Czestochowa czyli łowiska o id_lowiska rozpoczynającym się na literę C. 2 pkt. Rys. 8 Wynik uzyskany dla: select * from akweny; 9. Utwórz typ T_Gatunki jako VARRAY (tablice o zmiennej długości) o maksymalnie 25-tu elementach. Powyższe elementy to dane typu Varchar2(25) przechowujące informacje o gatunkach ryb jakie występują w danym łowisku (akwenie). 3 pkt. Do tabeli Akweny dodaj kolumnę o nazwie Gatunki typu T_Gatunki a następnie wpisz do niej następujące dane (dla podanych łowisk; dane w pliku SBD_Kol2_nazwisko.sql): C02 - gatunki: Amur, Karp, Ploc, Szczupak, C11 - gatunki: Bolen, Karp, Leszcz, Lin, Sandacz, Szczupak, C36 - gatunki: Amur, Karas, Karp, Leszcz, Sum, Szczupak Rys. 9 Wynik uzyskany dla: select * from akweny; 10. Utwórz typ T_Ograniczenia jako VARRAY (tablice o zmiennej długości) o maksymalnie 20-tu elementach. Powyższe elementy to dane typu Date przechowujące informacje o dniach, w tracie których na danym łowisku (akwenie) obowiązywał zakaz połowu ryb. 3 pkt. Do tabeli Akweny dodaj kolumnę o nazwie Ograniczenia typu T_Ograniczenia a następnie wpisz następujące dane (dla podanych łowisk; dane w pliku SBD_Kol2_nazwisko.sql): C02 - ograniczenia: 01.04.2016, 01.05.2016, 01.06.2016 C11 - ograniczenia: 20.05.2016 C36 - ograniczenia: 10.04.2016, 10.05.2016, 10.06.2016

Rys. 10 Wynik uzyskany dla: select * from akweny; 11. Utwórz typ obiektowy T_Polowy zawierający 4 elementy: 2 pkt. - dzien (D), - gatunek (V25), - dlugosc (N 4,1), - waga (N 6,2), 12. Utwórz typ T_Kolekcja_Polowy jako tabelę zagnieżdżoną zbudowaną na typie T_Polowy 2 pkt. 13. Do tabeli Akweny dodaj kolumnę Polowy typu T_Kolekcja_Polowy, która będzie zawierała tabelę zagnieżdżoną (NESTED TABLE) zawierającą informacje o złowionych rybach na danym łowisku (akwenie). Na podstawie poniższych danych dokonaj aktualizacji zawartości tabeli Akweny w zakresie kolumny Polowy: 4 pkt. C02 - Polowy: (13.04.2016, Karp, 50, 2.8) (01.05.2016, Bolen, 65, 2.1) (23.05.2016, Bolen, 70, 2.8) (03.06.2016, Leszcz, 40, 0.8) C11 - Polowy: (21.04.2016, Amur, 73, 4.1) (11.05.2016, Szczupak, 55, 1.2) (23.05.2016, Szczupak, 55, 1.2) (13.06.2016, Okon, 22, 0.3) C36 - Polowy: (16.03.2016, Karas, 30, 0.6) (11.05.2016, Karp, 35, 0.8) (21.05.2016, Karp, 45, 1.6) (10.06.2016, Leszcz, 50, 1.8) (13.06.2016, Leszcz, 52, 2) 14. Zdefiniuj zapytanie umożliwiające wyświetlenie informacji w formie jak na poniższym Rys. 11 2 pkt. Rys. 11 Wynik zwrócony przez zapytanie 15. Dokonaj aktualizacji danych w tabeli Akweny: 4/8/15 pkt. w pierwszej kolejności na podstawie danych z kolumny Ograniczenia usuń w kolumnie Polowy (dzien, gatunek, dlugosc, waga) wpisy datowane na dni, podczas których obowiązywał zakaz połowu ryb (dwa zdarzenia pola podkreślone na Rys. 10; np. bolen złowiony na C02 w dniu 01.05.2016), następnie w oparciu o dane z kolumny Polowy dokonaj aktualizacji zwartości danych w kolumnie Gatunki poprzez dopisanie brakujących gatunków ryb (cztery zdarzenia pola podkreślone na Rys. 10; dotyczą: Bolen złowiony na C02, Leszcz złowiony na C02, Amur złowiony na C11, Okon złowiony na C11). Możliwe sposoby realizacji zadania: a) forma "na piechotę" poprzez aktualizację stosownych wierszy ( ręczne definiowanie update'ów) 4 pkt. b) utworzenie procedury Aktualizuj_Tab_Akweny posiadającej jeden parametr określający łowisko podlegające aktualizacji (id_akwenu), w ramach której zostaną zrealizowane procedury opisane w powyższym zadaniu (aktualizacja tylko jednej z kolumn / całości). 8/15 pkt. Rys. 12 Wynik zastosowania: execute Aktualizuj_Tab_Akweny('C02');

Rys. 13 Wynik zastosowania: execute Aktualizuj_Tab_Akweny('C11'); Rys. 14 Wynik zastosowania: execute Aktualizuj_Tab_Akweny('C36'); Rys. 15 Wynik uzyskany dla zapytania z zadania 14 16. Na podstawie danych znajdujących się w tabeli Akweny wyświetl listę łowisk uporządkowaną kolejno wg.: id_akwenu a następnie gatunku, zawierającą podsumowanie w zakresie łącznej wagi i liczby złowionych ryb na danym akwenie (jak na Rys. 16). (2 pkt przy braku podsumowania akwen/całość) 2/4 pkt. Rys. 16 Wynik zwrócony przez zapytanie 17. Usuń wszystkie elementy utworzone w ramach realizacji zadań 8-16. 1 pkt.