Orderable representation of multi-part values
Your tables look adequate to me.  I'd just have a "project_materials" table with columns including "project_id", "material_name", and "material_quantity", but your teacher may not like it.  Also, is a "unit" a quantity, or distinct thing, e.g. copper tube, copper screws, pieces of wood in various sizes and shapes?

So anyway, for instance:

SELECT p.name FROM projects AS p
INNER JOIN project_materials AS m1 
ON ( m1.project_id = p.id AND m1.material_name = 'Copper' )
LEFT OUTER JOIN project_materials AS m2 
ON ( m2.project_id = p.id AND m2.material_name = 'Steel' ) 
WHERE ( m1.material_quantity &gt; 4 AND m2.material_quantity IS NULL )