Why do you need to normalize it?
I see some data integrity problems, but no obvious structural problems.
The implicit relationship between “purchases” and the presence or absence of value / currency is complex, but has nothing to do with keys, and it does not really matter much.
If we want to be purists (for example, this is intended for homework), then we are dealing with two types of items, inherited items and purchased items. Since they are not the same type, they should be modeled as two separate objects, that is, InheritedItem and BoughtItem, with just the right columns.
To get a combined view of all the elements (for example, to get the total weight), you should use a view or UNION sql query.
If we look for an object model in a database, we can decompose the common supertype (Item) and model subtypes (InheritedItem, BoughtItem) using foreign keys in the supertype table (the ypercube explanation below is very good), but it is a very complex and less reliable future than subtype modeling.
This last point is the subject of many arguments, but, in my experience, modeling specific supertypes in a database leads to pain later than leaving them abstract. Good thing waaay is probably beyond what you wanted :).
source share