Kolokwium z baz danych: Lasy - równowaga ekosystemu

Autor: Krzysztof Stencel.

Struktura bazy danych: las.create, las.drop.

Przykładowe dane: las.insert.

Przykładowe rozwiązanie: las.sol.

Zadanie

Baza zawiera dane o lasach, paśnikach, gatunkach, wystąpieniach gatunków w lasach oraz o pożeraniu jednych gatunków przez inne. Zakładamy, że wszelkie dane statystyczne dotyczą tej samej jednostki czasu (np. roku).

Rozrodczość i śmiertelność gatunków należy rozumieć w ten sposób, że jeśli na początku roku jest x osobników gatunku, to na końcu roku postanie ich

max(0, x * (1 - śmiertelność + rozrodczość) - y).

Wartość y to liczba osobników pożartych w tym okresie. Pożerają wyłącznie osobniki żyjące na początku roku i każdy z nich pożera dokładnie tyle, ile jest zapisane w tabeli Pożeranie niezależnie od tego, że mógł nie dożyć końca roku (np. ze starości lub zostać pożarty).

Wielkość lasu to łączna wielkość osobników gatunków, które się w nim zmieszczą.

Wielkość paśnika to łączna wielkość osobników gatunków, które można nakarmić karmą z tego paśnika w jednostce czasu.

Napisz następujące zapytania SQL:

  1. Wypisz listę gatunków i dla każdego z nich łączną liczbę jego osobników we wszystkich lasach oraz las, w którym występuje on najczęściej. Jeśli jest kilka takich lasów wybierz ten o najmniejszym identyfikatorze.
  2. Wypisz listę gatunków na dnie łańcucha pokarmowego (tzn. niepożerających nikogo).
  3. Wypisz listę par gatunków, w których mniejszy zwierz pożera większego.
  4. Wypisz listę par las-gatunek takich, że w danym lesie dany gatunek nie ma naturalnych wrogów.
  5. Wypisz listę paśników, przy których mogą się spotkać gatunek pożerany i pożerający, ponieważ oba jedzą karmę z tego paśnika, występują w tym lesie i się pożerają.
  6. Wypisz listę lasów, których wielkość nie pozwala na pomieszczenie gatunków w nich występujących.
  7. Wypisz listę par las-gatunek, dla których równowaga ekosystemu jest zaburzona o co najmniej 5%, tzn. w ciągu roku liczba wystąpień tego gatunku w tym lesie spada lub rośnie o co najmniej 5%.
  8. Wypisz listę lasów, w których brakuje paśników dla występujących tam gatunków.
  9. Wypisz listę lasów, w których brakuje karmy dla występujących tam gatunków.
  10. Podaj liczbę łańcuchów pokarmowych o długości dokładnie 2. W takim łańcuchu roślinożerca jest pożerany przez drapieżnika niemającego naturalnych wrogów.

Wypisanie lasu lub gatunku oznacza umieszczenie w wyniki zapytania numeru i nazwy. Wypisanie paśnika oznacza umieszczenie w wyniki zapytania jego numeru.