Saludos...
Los trigger son eventos que se ejecutan al momento de cierta ocurrencia en una tabla de ls bd... es decir al insertar, modificar o eliminar un dato de la tabla, estos pueden ocurrir antes o despues del evento (antes de insertar, despues de insertar,.... etc.).
Las funciones y procedimientos son programas que realizan procesos en la bd...
se puieden ejecutar desde un trigger o desde otra funcion y/o procedimiento...
la diferencia entre una funcion y un procedimiento es que la función retorna un valor unico (numero, cadena, fecha... etc) mientras un procedimiento puede o nó retornar valor, es decir el procedure puede retornar los valores desde un select a varias columnas de la(s) tablas involucrada(s) en el select...
espero que te sirva.