# Bazy Danych
## Zad 1

min = max(p,s)
max = p + s

min = 0
max = p * s

min = 0
max = p

min = s
max = s

min = 0
max = p
## Zad 2

Arsenic sigma
zbiór jest kompletny essa
## Zad 3


## Zad 4


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))