Bazy Danych egzamin 9 luty, 2012 rozwiazania



Podobne dokumenty
Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

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

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

Technologie baz danych

RBD Relacyjne Bazy Danych

1 Wstęp do modelu relacyjnego

Bazy danych wykład trzeci. trzeci Przekształcenie modelu ER na model relacyjny 1 / 19

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

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

Bazy danych 2013/14. Egzamin. (5 pkt). Baza danych przechowuje w relacji binarnej G graf skierowany.

Systemy baz danych 2 laboratorium Projekt zaliczeniowy

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Model relacyjny. Wykład II

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

Wprowadzenie do baz danych

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Bazy danych wykład trzeci. Konrad Zdanowski

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Przykładowa baza danych BIBLIOTEKA

PODSTAWY BAZ DANYCH 13. PL/SQL

Aspekty aktywne baz danych

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Autor: Joanna Karwowska

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Wykład 2. Relacyjny model danych

RBD Relacyjne Bazy Danych Więzy realcji

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Grupowanie i funkcje agregujące

Operacja Teta-złączenia. v1 v1 Θ v2

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

Relacyjny model danych

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

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Drużyny piłkarskie. Rozwiązanie

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

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Technologie baz danych

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Bazy danych. Algebra relacji

Transformacja modelu ER do modelu relacyjnego

Bazy danych. Dr inż. Paweł Kasprowski

Język SQL, zajęcia nr 2

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

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

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

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

Teoretyczne podstawy informatyki

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Bazy Danych i Usługi Sieciowe

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

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

15. Funkcje i procedury składowane PL/SQL

Multimedialne bazy danych - laboratorium

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

3. Podzapytania, łączenie tabel i zapytań

Wyzwalacze TWORZENIE WYZWALACZY

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Autor: Joanna Karwowska

Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

SQL (ang. Structured Query Language)

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

Wykład 8. SQL praca z tabelami 5

Wprowadzenie do baz danych

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

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

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Technologie baz danych

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Bazy Danych i Usługi Sieciowe

SIECI KOMPUTEROWE I BAZY DANYCH

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

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

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

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

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

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

INTERNETOWY KURS PODSTAW IT

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Indeksy. Indeks typu B drzewo

Wykład 5. SQL praca z tabelami 2

Wprowadzenie do języka SQL

TECHNOLOGIE BAZ DANYCH

Transkrypt:

Bazy Danych egzamin 9 luty, 2012 rozwiazania 1 Zadania 1. Stwórz diagram ER dla następującego opisu bazy danych drużyn i rozgrywek lig regionalnych. W szczególności oznacz słabe encje, klucze, rodzaje związków (czy wiele do jednego, integralność referencyjną). Każda drużyna posiada nazwę, która nie jest unikalna. Każda posiada siedzibę w pewnym mieście. Nazwy drużyn z jednego miasta nie mogą się powtarzać. Regiony charakteryzuje unikatowa nazwa. Każde miasto należy do jednego regionu. Miasta mogą mieć takie same nazwy lecz w danym regionie każde miasto ma unikatową nazwę. Trenerów charakteryzuje ich imię i nazwisko. Każdy trener trenuje najwyżej jedną drużynę (lub jest niezatrudniony) a każda drużyna posiada dokładnie jednego trenera. Zawodnika charakteryzuje imię i nazwisko. Każdy zawodnik gra w najwyżej jednej drużynie (lub jest niezatrudniony) a drużyna posiada wiele zawodników (i nie może istnieć drużyna bez zawodników). Poszczególne mecze odbywają się pomiędzy drużyną gospodarzy i gości, posiadają datę oraz wynik. W danym dniu nie odbywaja się więcej niż jeden mecz danej drużyny. 2. Dane są relacje R(B, C): B C 4 4 3 3 1 null i S(C, D) C D 3 3 3 7 5 2 null 1. Oblicz R S, R R.C=S.C S.D<R.C S, R ρ T (B,C) (S). 3. Dane są relacje R(A, B, C) i S(B, C, D). Napisz wyrażenie algebry relacji równoważne następującemu zapytaniu SQL lub zapytanie SQL równoważne następującemu wyrażeniu algebry relacji: (a) select R.A, S.D from R natural join S where R.B=S.C; (b) select A, B from R where B >= all (select C from R R1.C=R.A); (c) π B,C (R) π B,C (S), (d) π A,C (σ A=D (R S)), R1 where 1

(e) σ B>C (π B,C (R) π B,C (S)). 4. Przekształć diagram ER do projekt relacyjny. W relacjach podkreśl atrybuty wchodzące w skład klucza danej relacji. Fabryki nalezy do Firmy nazwa produkuje w siedziba_w Produkty opis Miasta populacja nazwa_produktu nazwa_miasta 5. Mamy dane tabele Magazyn(id, nazwa, producent, ilosc, cena) oraz Producent(id,nazwa,adres). Magazyn opisuje produkty w magazynie, gdzie id jest unikatowym kluczem, producent jest kluczem obcym z tabeli Producent. Atrybut id w tabeli Producent jest kluczem własnym. Nazwy towarów nie są unikatowe. Napisz zapytania SQL dla: (a) nazw producentow, którzy dostarczają do magazynu sałatę (czyli salata powinno być podciągiem nazwy towaru), (b) producenta (id lub nazwa) i średniej ceny towarów przez niego dostarczanych, (c) nazwy towaru oraz jego minimalnej, maksymalnej i średniej ceny, (d) producentów (id lub nazwa), którzy nie dostarczyli żadnych towarów, 2

(e) producentów, towaru i jego ceny dla producentów, którzy dostarczają dany towar w najniższej cenie, (f) nazwy towarów, które posiadają różne ceny, (g) usuń z tabeli Producent wszystkich producentów, którzy nie dostarczyli żadnego towaru do magazynu, (h) wstaw do tabeli Producent, krotki z id producenta, którzy dostarczyli do magazynu towary, lecz nie ma ich w tabeli Producent (pozostałe atrybuty z wartościami null). 6. Napisz program PL/SQL, który dla powyższej bazy danych podniesie o 20% cenę każdego towaru, producenta Luksusowy i obniży o 5% cenę każdego towaru producenta Tani 7. Dane są tabele Wartosci(liczba), Parzyste(liczba) i Nieparzyste(liczba). (a) Napisz wyzwalacz, który przy wstawieniu lub modyfikacii tabeli Wartosci sprawdza, czy wstawiana liczba występuje w tabeli Parzyste (jeśli jest parzysta) lub Nieparzyste (w przeciwnym przypadku) i jeśli nie to ją wstawia w odpowiednią tabelę. (b) Napisz wyzwalacz, dla tabeli Parzyste, który przy usuwaniu wartości z tej tabeli, usunie odpawiadające im wartości z tabeli Wartosci. 8. Rozważmy relacje R(A,B) oraz S(B,C). (a) Napisz równoważne zapytanie bez zagnieżdżonego select: select R.A S.B, S.C from R, S where R.B=S.B and S.C <= all (select S1.C from S S1 where S1.B= S.B) ; (b) Zoptymalizuj powyższe zapytanie, wiedząc, że B jest kluczem w S. 2 Rozwiazania 1. Przykładowy diagam ER. Oczywiście nie istnieje jedno rozwiązanie, które poprawnie odwzorowuje opis bazy danych. Np. mecze można reprezentować albo jako encję albo jako relację z atrybutami. 3

nazwa miasta nazwa druzyny nazwisko imie Miasta w Druzyny trenuje Trenerzy lezy w gospodarze goscie gra w 1 Zawodnicy Regiony Mecze nazwisko imie nazwa regionu data wynik 2. W tym zadaniu podstawą trudnością, obok świadomości jak zachowują się operacje z algebry relacji, była znajomość zachowania się wartości null w porównaniach. Naturalne złączenie będzie zawierało dwie krotki (3, 3, 3) oraz (3, 3, 7). W drugim punkcie otrzymamy relację pustą a w trzecim relację o krotkach (4, 4) oraz (1, null). 3. 4. 5. 6. 7. Jeden z możliwych sposobów: 4

(a) c r e a t e or r e p l a c e t r i g g e r a k t u a l i z a c j a _ w a r t o s c i a f t e r i n s e r t or u p d a t e on e g z a m _ w a r t o s c i f o r each row d e c l a r e i number ; b e g i n i f mod ( : new. l i c z b a, 2 ) = 0 t h e n s e l e c t l i c z b a i n t o i from e g z a m _ p a r z y s t e p a r z where p a r z. l i c z b a = : new. l i c z b a ; e l s e s e l e c t l i c z b a i n t o i from e g z a m _ n i e p a r z y s t e n i e p a r z where n i e p a r z. l i c z b a = : new. l i c z b a ; end i f ; e x c e p t i o n when n o _ d a t a _ f o u n d t h e n i f mod ( : new. l i c z b a, 2 ) = 0 t h e n i n s e r t i n t o e g z a m _ p a r z y s t e v a l u e s ( : new. l i c z b a ) ; e l s e i n s e r t i n t o e g z a m _ n i e p a r z y s t e v a l u e s ( : new. l i c z b a ) ; end i f ; end ; 8. (a) (b) c r e a t e or r e p l a c e t r i g g e r p a r z y s t e _ u s u w a n i e a f t e r d e l e t e on e g z a m _ p a r z y s t e f o r each row b e g i n d e l e t e from e g z a m _ w a r t o s c i where l i c z b a =: o l d. l i c z b a ; end ; (b) 5