Created
April 14, 2014 00:47
-
-
Save stasiek/10608521 to your computer and use it in GitHub Desktop.
6-abd
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## Aplikacje Bazodanowe - 1 lista | |
| Dany jest schemat bazy danych projektów zawierający następujące relacje: | |
| *Projekt(Id, Nazwa, Budżet, Typ)* – dane projektów | |
| *Zadanie(Id, Nazwa, Typ, Koszt, StopienWykonania, Pracochłonnosc)* – dane zadania | |
| *Pracownik(Id, NIP,Nazwisko, Pesel, DataUr)* – dane pracownika | |
| *PracownikZadanie(Id, IdZadania, IdPracownika, DataOd, DataDo)* – przypisanie pracownika do zadania | |
| *ZadanieProjekt(Id, IdZadania, IdProjektu, DataOd, DataDo)* – przypisanie zadania do projektu | |
| 1. Wyraź w języku SQL następujące zapytania: | |
| 1) Wypisz sumaryczny koszt projektu na podstawie kosztów zadań, które do tego projektu należą. Wynik | |
| uporządkuj rosnąco oraz uwzględnij w nim tylko te projekty, które są na więcej niż 1000000 PLN. | |
| 2) Wypisz wszystkich pracowników starszych niż 30 lat zaangażowanych w projekt o nazwie„Proj1” | |
| 3) Wypisz zadania, które nie zostały realizowane przez pracownika „Kowalski” w żadnym projekcie. | |
| 4) Wypisz zadanie, którego czas trwania jest największy w danym projekcie. | |
| 5) Dla każdego typu zadania wypisz zadania o największej pracochłonności. | |
| 6) Dla każdego typu zadania wypisz najstarszego pracownika, który je wykonuje. | |
| 7) Wypisz wszystkie zadania, które nie należą do projektu „Proj2”. | |
| 8) Dla każdego pracownika wypisz zadanie o największej pracochłonności, które on wykonuje. | |
| 9) Dla każdego typu projektu wypisz nazwę zadania, które jest wykonywane najdłużej. | |
| 10) Wypisz typy zadań, które nie zostały wykonywane w projektach o typie: „informatyczne”. | |
| *** | |
| 1) Wypisz sumaryczny koszt projektu na podstawie kosztów zadań, które do tego projektu należą. Wynik uporządkuj rosnąco oraz uwzględnij w nim tylko te projekty, które są na więcej niż 1000000 PLN. | |
| ```sql | |
| SELECT p.Nazwa, SUM(z.Koszt), FROM Projekt AS p | |
| INNER JOIN ZadanieProjekt zp ON p.Id = zp.IdProjektu | |
| INNER JOIN Zadanie ZA z ON z.Id = zp.IdZadania | |
| GROUP BY p.Nazwa | |
| HAVING SUM(z.Koszt) > 1000000 | |
| ORDER BY SUM(z.koszt) ASC | |
| ``` | |
| 2) Wypisz wszystkich pracowników starszych niż 30 lat zaangażowanych w projekt o nazwie„Proj1” | |
| ```sql | |
| SELECT p.Nazwisko, FROM Pracownik AS p | |
| INNER JOIN PracownikZadanie AS pz | |
| ON p.Id = pz.IdPracownika | |
| INNER JOIN ZadanieProjekt AS zp ON zp.IdZadania = pz.IdZadania | |
| INNER JOIN Projekt AS pr ON pr.Id = zp.IdProjektu | |
| WHERE (p.dataUr < YEAR(CURRENTDATE()) - 30) | |
| AND pr.Nazwa = "Proj1" | |
| ``` | |
| 3) Wypisz zadania, które nie zostały realizowane przez pracownika „Kowalski” w żadnym projekcie. | |
| ```sql | |
| SELECT z.Nazwa FORM Zadanie AS z | |
| INNER JOIN PracownikZadanie AS pz ON z.Id = pz.IdPracownika | |
| INNER JOIN Pracownik AS pr ON pr.Id = pz.IdPracownika | |
| EXCEPT | |
| SELECT z.Nazwa FROM Zadanie as Z | |
| WHERE pr.Nazwisko = 'Kowalski' | |
| ``` | |
| 4) Wypisz zadanie, którego czas trwania jest największy w danym projekcie. | |
| ```sql | |
| SELECT Projekt.Nazwa, Zadanie.Nazwa | |
| FROM Projekt, Zadanie, ZadanieProjekt, | |
| (SELECT Projekt.I, MAX(zp.DataDo - zp.DataOd) czas | |
| FROM z, zp, p | |
| WHERE z.Id = zp.IdZadania | |
| AND p.Id = zp.IdProjektu | |
| GROUP BY Projekt.Id ) Temp | |
| WHERE z.Id = zp.IdZadania | |
| AND p.Id = zp>projektu | |
| AND (zp.DataDo - zp.DataOd) = Temp.Czas | |
| AND p.Id = Temp.Id | |
| ``` | |
| 5) Dla każdego typu zadania wypisz zadania o największej pracochłonności. | |
| ```sql | |
| SELECT typ, MAX(pracochlonnosc) FROM Zadanie | |
| GROUP BY Typ | |
| ``` | |
| *** | |
| ##Lista 2 | |
| 1. Zaprojektuj system do obsługi komunikacji miejskiej. | |
| 2. Zaprojektuj system do obsługi ligi piłkarskiej. | |
| 3. Zaprojektuj system do obsługi księgarni internetowej. | |
| 4. Zaprojektuj system do obsługi gabinetu okulistycznego. | |
| W ramach projektu powinien się znaleźć: | |
| 1. Opis zakresu funkcjonalności | |
| 2. Diagram przypadków użycia | |
| 3. Schemat bazy danych. | |
| *** | |
| ##Aplikacje bazodanowe – lista 3 | |
| Dany jest schemat bazy danych projektów zawierający następujące relacje: | |
| *Projekt(Id, Nazwa, Budżet, Typ)* – dane projektów | |
| *Zadanie(Id, Nazwa, Typ, Koszt, StopienWykonania, Pracochłonnosc)* – dane zadania | |
| *Pracownik(Id, NIP,Nazwisko, Pesel, DataUr)* – dane pracownika | |
| *PracownikZadanie(Id, IdZadania, IdPracownika, DataOd, DataDo)* – przypisanie pracownika do zadania | |
| *ZadanieProjekt(Id, IdZadania, IdProjektu, DataOd, DataDo)* – przypisanie zadania do projektu | |
| 1. Wypisz zadania, które są wykonywane w co najmniej dwóch projektach. | |
| 2. Dla każdego projektu wypisz nazwy zadań, których stopień wykonania jest największy. | |
| 3. Wypisz nazwy projektów, które zawierają więcej niż 5 zadań trwających ponad 3 dni. | |
| 4. Wypisz nazwy projektów, w których zaangażowanych jest co najmniej dwóch pracowników (bez grupowania) | |
| 5. Dla każdego projektu oblicz najdroższe zadanie (największy stosunek kosztu do czasu wykonania) | |
| 6. Wypisz pracowników przypisanych do dwóch zadań z różnych projektów w tym samym czasie. | |
| 7. Wypisz zadanie nie należące do projektu „Proj1” i nie wykonywane przez pracownika „Kowalski”. | |
| *** | |
| 1. Wypisz zadania, które są wykonywane w co najmniej dwóch projektach. | |
| ```sql | |
| SELECT Zad.* | |
| FROM Zadanie AS Zad WHERE Zad.Id IN | |
| (SELECT zp.IdZadania | |
| FROM Projekt AZ zp | |
| WHERE EXISTS | |
| (SELECT zpz.* FROM ZadanieProjekt AS zpz | |
| WHERE zp.IdZadania = zpz.IdZadania | |
| AND zp.IdProjektu <> zpz.IdProjektu)) | |
| ``` | |
| 2. Dla każdego projektu wypisz nazwy zadań, których stopień wykonania jest największy. | |
| ```sql | |
| SELECT p.Nazwa, z.Nazwa, FROM Projekt as p | |
| INNER JOIN ZadanieProjekt AS zp ON zp.IdProjektu =p.Id | |
| INNER JOIN Zadanie AS z ON z.Id = zp.IdZadania | |
| INNER JOIN go AS g p.Nazwa = g.Nazwa AND z.pracochlonnosc = g.n | |
| ``` | |
| 3. Wypisz nazwy projektów, które zawierają więcej niż 5 zadań trwających ponad 3 dni. | |
| ```sql | |
| SELECT p.Nazwa FROM Projekt p, ZadanieProjekt zp | |
| WHERE DateDiff(zp.DataDo, zp.DataOd) > 3 | |
| AND p.Id = zp.IdProjektu | |
| GROUP BY p.nazwa | |
| HAVING COUNT(zp.*)>5 | |
| ``` | |
| 4. Wypisz nazwy projektów, w których zaangażowanych jest co najmniej dwóch pracowników (bez grupowania) | |
| ```sql | |
| SELECT p.Nazwa | |
| FROM Projekt p, ZadanieProjekt zp1, ZadanieProjekt zp2, ZadaniPracownik zpr1, | |
| ZadaniePracownik zpr2 | |
| WHERE | |
| p.Id = zp1.IdProjektu | |
| AND p.Id = zp2.IdProjektu | |
| AND zp1.Id <> zp2.Id | |
| AND zp1.IdZadania = zpr1.IdZadania | |
| AND zp2.IdZadania = zpr2.IdZadania | |
| AND zpr1.IdPracownika <> zpr2.IdPracownika | |
| ``` | |
| 5. Dla każdego projektu oblicz najdroższe zadanie (największy stosunek kosztu do czasu wykonania) | |
| ```sql | |
| SELECT Projekt.Nazwa, Zadanie,Nazwa | |
| FROM Projekt, Zadanie, ZadanieProjekt, | |
| ( | |
| SELECT ZadanieProjekt.IdProjekt, | |
| MAX(Zadanie.Koszt/CONVERT(int, ZadanieProjekt.DataDo - ZadanieProjekt.DataOd) AS n | |
| FROM Zadanie, ZadanieProjekt | |
| WHERE Zadanie.Id = ZadanieProjekt.IdZadania | |
| GROUP BY ZadanieProjekt.IdProjektu | |
| ) AS Temp | |
| WHERE Projekt.Id = Temp.IdProjektu | |
| AND ZadanieProjekt.IdProjektu = Projekt.Id | |
| AND Zadanie.Id = ZadanieProjekt.IdZadania | |
| AND Zadanie.Koszt/CONVERT(int, ZadanieProjekt.DataDo - ZadanieProjekt.DataOd) = Temp.n | |
| ``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment