No, it isn't necessary for each primary key to have a matching foreign key. A primary key is simply an indicator that allows you to uniquely identify the records in a table. This is independent of the existence of matching (children) records in another table.
Tables tblBottomX, tblBottomY and tblBottomZ have primary keys but do not have any other tables that are "below" them in the database organization.