Lösung a) sieht gut aus.
Lösung b) auch.
Damit die geänderten Daten nicht aus einer View herausfallen, gibt es bei manchen SQL Datenbanken die Check Option, die man zum Zeitpunkt der Viewdefinition angibt (siehe auch https://blog.jooq.org/awesome-sql-trick-constraints-on-views/).

...zur Antwort

Select rechner
from  verteilung
where paket in ('Paket 1','Paket 2','Paket 3','Paket 4')
group by rechner
having count(*) = 4;

...zur Antwort