For example these tables contain many repeated columns.
This is 1 to 0..1 relationship, not 1 to many.
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.Sign up to join this community
Your example does not violate 1-NF, it is not an example of a repeating group. Whether you should use a "super type" (in your case PERSON), is more a question whether something can be related to both an EMPLOYEE and a VENDOR (PERSON is probably a poor choice of a name since a VENDOR is likely to be a non PERSON).
Speaking of naming conventions I prefer plural, there are arguments for and against plural as well as singular names, but to me a table represents a set of EMPLOYEES so I prefer that. Attribute names like id are to vague IMO, it is an id of something, i.e. employee_id. Then that attribute name can be used for everything that represents an employee_id throughout the model.
Repeated data violates first normal form itself.
For an example, to be in the first normal form, you cannot have columns like phone1,phone2 in the employee table.
However in your scenario, having the same columns for two tables does not violate first normal form as long as you have a single column for a particular property.
Your approach to have a common table should be based on your application requirements.
Hope this helps :)