El motor InnoDB lo puedes elegir al crear la tabla.
Una vez cerrados los paréntesis que contienen la descripción de las columnas, añade: "ENGINE InnoDB" y, si quieres evitarte posibles líos de codificación de caracteres, también puedes añadir a continuación "DEFAULT CHARACTER SET utf8" (en ambos casos sin las comillas). Ejemplo:
'CREATE TABLE clientes (id_cliente VARCHAR(16) NOT NULL, nombre VARCHAR(80), nif VARCHAR(12) ... etc.) ENGINE InnoDB DEFAULT CHARACTER SET utf8';
Hablando de tablas y bases de datos, los términos "relacionar" y "vincular" se refieren a lo mismo. Se trata de que una columna de la tablav 'A', llamada por ejemplo 'Ac1' sea un índice primario, y que otra columna de la tabla 'B', llamada por ejemplo 'Bc2' contenga los mismos datos que 'Ac1'. De esta forma se "vincula" o "relaciona" la tabla 'B' con la tabla 'A'. En tu caso, quieres relacionar las tablas "horario" y "actividad" a través de la columna 'id_actividad'.
Yo haría:
1. Diseñar la tabla de actividades con el índice primario 'id_actividad'.
2. Diseñar la tabla de horarios incluyendo en ella una columna que contenga los mismos datos que el índice primario de la tabla de actividades (puede llamarse igual sabiendo manejarse en las consultas), y decirle que utilice como índice externo (FOREIGN KEY) la columna 'id_actividad' de la tabla de actividades.
Pero me parece ver que aún no tienes mucha idea sobre implementación de bases de datos, diseño de tablas, cómo estructurar la información... en fin, que el asunto tiene "mucha tela que cortar", como dicen en mi pueblo. Te recomiendo una búsqueda en internet utilizando términos como: "bases de datos relacionales", "diseño de tablas en bases de datos" y cosas por el estilo.
Éste enlace contiene bastante información sobre bases de datos, de forma general y también específica para MySQL.
Éste otro y
éste son introducciones y tutoriales del lenguaje SQL.
Y
aquí tienes una traducción del manual de referencia de MySQL.
Pues nada, a leer un poco se ha dicho.

Saludos.