# Bazy Danych ## Zad 1 ![image](https://hackmd.io/_uploads/B12Y-Fsnp.png) min = max(p,s) max = p + s ![image](https://hackmd.io/_uploads/HJbCWtina.png) min = 0 max = p * s ![image](https://hackmd.io/_uploads/By4REYs2a.png) min = 0 max = p ![image](https://hackmd.io/_uploads/BJ8WHYj3T.png) min = s max = s ![image](https://hackmd.io/_uploads/SJzj9FohT.png) min = 0 max = p ## Zad 2 ![image](https://hackmd.io/_uploads/HJzkyconp.png) Arsenic sigma zbiór jest kompletny essa ## Zad 3 ![image](https://hackmd.io/_uploads/SJyGycoha.png) ![image](https://hackmd.io/_uploads/Sy0baqs2T.png) ## Zad 4 ![image](https://hackmd.io/_uploads/S1hX6cs2T.png) ![image](https://hackmd.io/_uploads/Syyraqi3a.png) a) π name, last_name, genre (directors ⨝ directors.id = movies_directors.director_id (movies_directors ⨝ (movies_genres ⨝ movies_genres.movie_id = movies.id (σ year < 1960 (movies))))) π name, last_name, genre (σ year < 1960 (directors ⨝ directors.id = movies_directors.director_id ( movies_directors ⨝ movies_directors.movie_id = movies.id (movies_genres ⨝ movies_genres.movie_id = movies.id (movies))))) b) (π actors.first_name,actors.last_name ((actors)- (π actors.id, actors.first_name, actors.last_name,actors.gender ( actors ⨝ actors.id = roles.actor_id (roles ⨝ roles.movie_id = movies_directors.movie_id (movies_directors ⨝ movies_directors.director_id = directors.id (σ first_name='Quentin' and last_name='Tarantino' (directors)))))))) c) actors ⨝ (π id (actors) - (ρ actor_id->id (π r1.actor_id (σ r1.actor_id = r2.actor_id ∧ r1.movie_id ≠ r2.movie_id (ρ r1 (roles) x ρ r2 (roles)))))) d) (π movies.name (movies⨝ movies.id = movies_genres.movie_id (π movie_id (σ genre='Sci-Fi'(movies_genres)) ∩ π movie_id (σ genre='Drama' (movies_genres))))) e) (movies ⨝ (π id (movies) - π movies.id (σ m.rank > movies.rank ((ρ m (movies)) x movies)))) f) actors ⨝ (ρ actor_id->id (π r1.actor_id (σ r1.actor_id = r2.actor_id ∧ r1.movie_id ≠ r2.movie_id ∧ r1.role = r2.role (ρ r1 (roles) x ρ r2 (roles))))) g) (directors ⨝ ( π id (directors) - π directors.id (σ directors_genres.genre = 'Horror'(directors ⨝ id = director_id directors_genres)))) h) directors ⨝ ρ director_id→id (π director_id (movies_directors ⨝ movie_id = id (π id (movies) - π movie_id (σ gender = 'F' (actors ⨝ actor_id = id roles))))) i) (movies ⨝ (π id (movies) - π movies.id (σ m.year < movies.year ((ρ m (movies)) x movies)))) ## Zad 5 a) intuicja podpowiada ze w zapytaniu chodzi o sprawdzenie ile roznych płci kryje się pod imionami aktorów, którzy zagrali jakąkolwiek role poprawione zapytanie: tau genders desc gamma actors.first_name; count(actors.gender) → genders (pi actors.gender, actors.first_name (actors join actors.id=roles.actor_id roles)) b) γ directors.id; count(roles.actor_id)→result π directors.id, roles.actor_id (((directors) ⨝ directors.id=movies_directors.director_id (movies_directors)) ⨝ movies_directors.movie_id=roles.movie_id (roles))