Wykład. Najważniejsze pojęcia. Opisz ideę budowy modelu relacyjnego (10-12 zdań). W opisie użyj następujących pojęć: redundancja, normalizacja, trzecia postać normalna (3NF), atomowość atrybutów, anomalie, integralność referencyjna, relacja. poziom izolacji, transakcja, indeks, brudny wiersz, własność ACID, zakleszczenie, różnica pomiędzy uwierzytelnieniem i autoryzacją. Porównaj klucz złożony i klucz sztuczny Przykład Zalety Wady Cel zastosowania Klucz złożony Klucz sztuczny Zidentyfikuj mechanizm bazodanowy, który może być zastosowany do rozwiązania opisanego problemu Problem Mechanizm Opis działania bazodanowy Zoptymalizuj (zredukuj czas wykonywania) zapytania: SELECT id, tytul, rok_wydania, cena FROM ksiazka WHERE tytul LIKE Przygody% Podpowiedź: Indeks Zapewnij automatyczne uaktualnienie statusu Faktury na zapłacono po dodaniu Płatności. Podpowiedź: Trigger Kiedy i w jakim celu używane jest polecenie ROLLBACK TRANSACTION oraz COMMIT TRANSACTION? Do czego służy plik. LOG (dziennik transakcji)?
Zadanie 1 <Loty> <Lot nr_lotu="1209828" nr_maszyny="yak038282"> <Skad>GDN</Skad> <Dokad>WAW</Dokad> <Odlot>10:15</Odlot> <Czas_trwania>45</Czas_trwania> <Data_lotu>2012-01-03</Data_lotu> <Zaloga> <Pracownik nr_sluzbowy="828282"> <Funkcja>pierwszy pilot</funkcja> <Data_ur>1955-03-09</Data_ur> <Pracownik nr_sluzbowy="120893"> <Nazwisko>Malinowski</Nazwisko> <Imie>Henryk</Imie> <Funkcja>drugi pilot</funkcja> <Data_ur>1965-02-19</Data_ur> <Pracownik nr_sluzbowy="039291"> <Nazwisko>Gajdas</Nazwisko> <Imie>Karolina</Imie> <Funkcja>stewardessa</Funkcja> <Data_ur>1975-12-14</Data_ur> </Zaloga> <Liczba_miejsc>198</Liczba_miejsc> <Liczba_pasazerow>154</Liczba_pasazerow> <Lot> <Lot nr_lotu="575757" nr_maszyny="wilga2282"> <Skad>WAW</Skad> <Dokad>LHR</Dokad> <Odlot>12:20</Odlot> <Czas_trwania>135</Czas_trwania> <Data_lotu>2013-04-09</Data_lotu> <Zaloga> <Pracownik nr_sluzbowy="828282"> <Funkcja>drugi pilot</funkcja> <Data_ur>1955-03-09</Data_ur> <Pracownik nr_sluzbowy="120893"> <Nazwisko>Malina</Nazwisko> <Imie>Karol</Imie> <Funkcja>pierwszy pilot</funkcja> <Data_ur>1965-02-19</Data_ur> <Pracownik nr_sluzbowy="039291"> <Nazwisko>Fuks</Nazwisko> <Imie>Kamila</Imie> <Funkcja>stewardessa</Funkcja> <Data_ur>1977-02-14</Data_ur> </Zaloga> <Liczba_miejsc>150</Liczba_miejsc> <Liczba_pasazerow>89</Liczba_pasazerow> <Lot> </Loty> 2.1 Wybierz w porządku alfabetycznym nazwiska, imiona i nr_sluzbowe pracowników, którzy przylecieli na lotnisko WAW w 2013 r. 2.2 Wybierz nazwisko, imię najstarszego pracownika wraz z łącznym czasem spędzonym przez niego w powietrzu. 2.3 Wybierz nr_maszyn, które nie lądowały w Gdańsku (GDN). 2.4 Wybierz nr_lotów i daty lotów trwających powyżej 60 minut i bez obsługi stewardessy. 2.5 Wyświetl ranking lotnisk: skrót lotniska, średnia liczba niewykorzystanych miejsc w samolotach odlatujących z tego lotniska w roku 2013. 2.6 Wybierz nazwisko, imię, nr_sluzbowy pracownika, który przewiózł największą liczbę pasażerów jako pierwszy pilot w roku 2013. atrybut, klucz główny, klucz obcy, klucz sztuczny, klucz złożony, relacja (1-1, 1-wiele, wiele-wiele).
Zadanie 1 <Wycieczki> <Wycieczka nr_wycieczki="1209828"> <Organizator> <Nazwa>Biuro Turystyczno-Rekreacyjne</Nazwa> <NIP>345-09-98-278</NIP> <Miejscowosc>Gdynia</Miejscowosc> </Organizator> <Cena>1789.00</Cena> <Waluta>PLN</Waluta> <Liczba_dni>10</Liczba_dni> <Liczba_miejsc>100</Liczba_miejsc> <Transport>samolot</Transport> <Atrakcje> <Kraj>Włochy</Kraj> <Miejsce>Rzym</Miejsce> <Rodzaj>zwiedzanie</Rodzaj> <Kraj>Austria</Kraj> <Miejsce>Wiedeń</Miejsce> <Rodzaj>koncert</Rodzaj> </Atrakcje> <Uczestnik pesel= 45091809032 > <Uczestnik pesel= 56090889765 > <Nazwisko>Malinowski</Nazwisko> <Imie>Henryk</Imie> <Miejscowosc>Sopot</Miejscowosc> </Wycieczka> <Wycieczka nr_wycieczki="0605234"> <Organizator> <Nazwa>Słoneczne wakacje</nazwa> <NIP>676-93-93-123</NIP> </Organizator> <Cena>2000.00</Cena> <Waluta>USD</Waluta> <Liczba_dni>5</Liczba_dni> <Liczba_miejsc>30</Liczba_miejsc> <Transport>statek</Transport> <Atrakcje> <Kraj>Grecja</Kraj> <Miejsce>Kreta</Miejsce> <Rodzaj>plaża</Rodzaj> </Atrakcje> <Uczestnik pesel= 45091809032 > </Wycieczka> </Wycieczki> atrybut, klucz główny, klucz obcy, klucz sztuczny, klucz złożony, relacja (1-1, 1-wiele, wiele-wiele) 2.1 Wybierz w porządku alfabetycznym nazwiska, imiona i pesele uczestników wycieczek, którzy mieszkają w Gdańsku i nie odwiedzili Austrii. 2.2 Wybierz nazwiska i imiona uczestników, średni czas trwania i liczbę ich wycieczek. Uczestnicy powinni być ułożeni wg malejącej liczby wycieczek. 2.3 Wybierz kraj odwiedzony przez największą liczbę uczestników. 2.4 Wybierz nr_wycieczek wraz z cenami oraz aktualną liczbą wolnych miejsc (liczba miejsc liczba uczestników). 2.5 Wybierz nazwy i miejscowości organizatorów, którzy oferują wycieczkę z możliwością wysłuchania koncertu. 2.6 Wybierz ranking atrakcji (miejsc) wg liczby uczestników począwszy od najliczniej odwiedzanego.
Zadanie 1 Zaprojektuj schemat relacyjnej bazy danych zawierającej dane <Zlecenia> <Zlecenie nr_zlecenia="1209828"> <Nadawca> <Nazwa>Biuro Turystyczno-Rekreacyjne</Nazwa> <NIP>345-09-98-278</NIP> <Miejscowosc>Gdynia</Miejscowosc> </Nadawca> <Odbiorca> <Nazwa>PPH Promyk </Nazwa> <NIP>167-09-98-765</NIP> </Odbiorca> <Oplata>100.00</Oplata> <Data_przyjecia>2013-05-09</Data_przyjecia> <Data_realizacji>2013-05-19</Data_realizacji> <Towary> <Towar lp= 1 > <Kod>19192929</Kod> <Ilosc>10</Ilosc> <Cena_jednostkowa>5</Cena_jednostkowa> <Towar lp= 2 > <Kod>19192929</Kod> <Ilosc>2</Ilosc> <Jednostka>karton</Jednostka> <Cena_jednostkowa>20</Cena_jednostkowa> </Towary> </Zlecenie> <Zlecenie nr_zlecenia="1209829"> <Nadawca> <Nazwa>PPH Promyk </Nazwa> <NIP>167-09-98-765</NIP> </Nadawca> <Odbiorca> <Nazwa>Biuro Prawne </Nazwa> <NIP>145-29-98-278</NIP> <Miejscowosc>Sopot</Miejscowosc> </Odbiorca> <Oplata>30.00</Oplata> <Data_przyjecia>2013-05-10</Data_przyjecia> <Data_realizacji></Data_realizacji> <Towary> <Towar lp= 1 > <Kod>1919020929</Kod> <Ilosc>1</Ilosc> <Cena_jednostkowa>50</Cena_jednostkowa> <Towar lp= 2 > <Kod>33329</Kod> <Ilosc>2</Ilosc> <Jednostka>kontener</Jednostka> <Cena_jednostkowa>200</Cena_jednostkowa> <Towar lp= 3 > <Kod>38282</Kod> <Ilosc>112</Ilosc> <Cena_jednostkowa>2</Cena_jednostkowa> </Towary> </Zlecenie> </Zlecenia> Skomentuj przyjęte założenia projektowe używając pojęć: tabela, atrybut, klucz główny, klucz obcy, klucz sztuczny, klucz złożony, relacja (1-1, 1-wiele, wielewiele) 2.1 Wybierz nazwy i miejscowości nadawców zleceń, którzy nadali zlecenia o opłacie przekraczającej 50.00 i dotyczące więcej niż 2 towarów. 2.2 Wybierz ranking towarów objętych zleceniami: kod towaru wraz z łączną wartością zleceń dot. tego towaru (wartość = cena_jednostkowa*ilość) począwszy od towaru o najmniejszej wartości. 2.3 Wybierz NIP odbiorcy, który oczekuje najdłużej na realizację zlecenia w toku (w toku =data przyjęcia jest podana i brak daty realizacji). 2.4 Wybierz nr zlecenia, datę przyjęcia oraz liczbę towarów na zleceniu w odniesieniu do zrealizowanych zleceń, które nie zawierały towaru sprzedawanego w kartonach. 2.5 Wybierz NIP nadawcy, którego łączna wartość zleceń (opłata+wartość towarów) jest największa. 2.6 Wybierz nazwy i NIPy odbiorców z Gdańska, którzy przynajmniej raz byli nadawcami innych zleceń.
Zadanie 1 (7 pkt) <Wypadki> <Wypadek nr_wypadku="1209828"> <Data_wypadku>2013-02-04</Data_wypadku> <Miejsce>ul.Hallera</Miejsce> <Pojazdy> <Pojazd typ_pojazdu= rower > <Kierujacy> <Pesel>451209282</Pesel> <Czy_wlasciciel>Tak</Czy_wlasciciel> </Kierujacy> <Polisa nr_polisy= 47474838 > <Ubezpieczyciel>AVIVA</Ubezpieczyciel> <Data_od>2012-07-01</Data_od> <Data_do>2013-06-30</Data_do> <Rodzaj>OC</Rodzaj> </Polisa> <Szkoda>500.00</Szkoda> </Pojazd> <Pojazd typ_pojazdu= samochod osobowy > <Kierujacy> <Pesel>551119282</Pesel> <Czy_wlasciciel>Nie</Czy_wlasciciel> </Kierujacy> <Polisa nr_polisy= 222838 > <Ubezpieczyciel>PZU</Ubezpieczyciel> <Data_od>2012-09-01</Data_od> <Data_do>2013-08-31</Data_do> <Rodzaj>OC/AC</Rodzaj> </Polisa> <Szkoda>12000.00</Szkoda> </Pojazd> </Pojazdy> <Uczestnik pesel= 451209282 > <Winny>Nie</Winny> <Obrazenia> <Obrazenie>uraz ręki</obrazenie> <Obrazenie>stłuczenia</Obrazenie> </Obrazenia> <Uczestnik pesel= 551119282 > <Nazwisko>Kowal</Nazwisko> <Imie>Janusz</Imie> <Winny>Tak</Winny> <Obrazenia></Obrazenia> <Uczestnik pesel= 771119282 > <Nazwisko>Michalewicz</Nazwisko> <Imie>Michał</Imie> <Winny>Nie</Winny> <Obrazenia> <Obrazenie>uraz głowy</obrazenie> </Obrazenia> </Wypadek> </Wypadki> atrybut, klucz główny, klucz obcy, klucz sztuczny, klucz złożony, relacja (1-1, 1-wiele, wiele-wiele) 2.1 Wybierz daty wypadków, nazwiska (w porządku alfabetycznym), imiona i pesele uczestników, którzy nie ponosili winy za spowodowanie wypadku i doznali więcej niż jedno obrażenie. 2.2 Wybierz nazwiska i imiona kierujących rowerami wraz z łączną kwotą szkód, które ponieśli (szkody w odniesieniu do rowerów) w roku 2012. 2.3 Wybierz pojazd, którego kierujący byli winni spowodowania wypadków i którego suma szkód w tych wypadkach była największa. 2.4 Wybierz ranking typów pojazdów wraz z liczbą wypadków, w których pojazdy danego typu uczestniczyły i których kierujący nie zostali uznani winnymi spowodowania tych wypadków. 2.5 Wybierz miejscowość i miejsce, w którym największa liczba uczestników wypadków doznała obrażeń (przynajmniej jednego obrażenia). 2.6 Oblicz liczbę ubezpieczycieli, którzy wystawili polisy ważne w dniu wypadku, dotyczące pojazdów, których kierujący zostali uznani winnymi spowodowania wypadku.