Por lo que parece, la base planeada (que parece sacada del ejemplo de Peter Chen en su
paper), adolece de algunos defectos de diseño.
Pero en lo que hace a el llenado de tablas, debes tener claros algunos detalles:
1. Si declaras una FK en una tabla, y ese campo está declarado como NOT NULL, el valor a ingresar en ese campo en un nuevo registro
debe existir previamente a ese INSERT en la tabla origen.
2. Cuando tienes un conjunto de dependencias entre tablas,
las dependencias funcionales deben ser llenadas desde determinante a determinado, y no debe faltar ningún paso. En tu caso las dependencias serían:
Cita: empleado --> departamento --> LOCALIZACIONES_DEPT
empleado --> departamento --> PROYECTO --> TRABAJA_EN
empleado --> DEPENDIENTE
3. Aunque parezca obvio mencionarlo, cuando declaras un ON UPDATE CASCADE, lo único que estás diciendo es que
en caso de actualizar la PK referida por una FK, la FK se actualice, pero esto
no quiere decir que en caso de no existir, se inserte... (es una obviedad, pero ha habido quieres creían que se insertaba en forma automática).
Resumiendo: Si quieres que los inserts funcionen ingresa las tablas en este orden:
Cita: 1. empleado
2. departamento
3. DEPENDIENTE
4. LOCALIZACIONES_DEPT
5. TRABAJA_EN