Hola a todos, gracias por responder...
El problema lo solucioné creando la clave foránea con el Id de la tabla de origen, no con el campo CodSistema...
No me parece que deba solucionarse así: En Interbase-Firebird sí podía relacionar clave foránea con campo que no es clave primaria en su tabla de origen...
El tipo es InnoDB. Respecto a si tienen datos cargados, todavía no, porque recién estoy creando la estructura de las tablas (como son muchas me está llevando tiempo).
Nunca tuve que cargar datos en las tablas para poder crear las relaciones foráneas.
Probaré el código sql que me muestran y diré el resultado.