No es que sea más seguro, es que para el ejemplo que pones es más cómodo usar una base de datos.
Imagínate que cientos de visitantes te envían por correo lo que tu dices, varios títulos de canciones con su autor. Para mostrarlos en la página (por ejemplo para hacer un ranking), tu tendrías que ordenarlos y presentarlos a mano, mientras que con una base de datos y algo de código, es el ordenador el que lo hace.
Básicamente la base de datos lo que hace es almacenar los datos. Si quieres ordenarlos por ejemplo por orden alfabético: creas un script que haga una consulta a la base de datos, extraiga los datos, los meta en una matriz (un contenedor donde puedes meter varios datos por separado), luego por medio de una función comparar los datos de la matriz para ordenarlos, y por último mostrarlos.
Volviendo al tema de la seguridad; Imagínate que en el ejemplo anterior un usuario escribe unos datos, y al darle hacia atrás en el navegador los datos siguen estando ahí... ahora imagínate que en un minuto le puede dar 50 veces al botón recargar del navegador y esos datos se van metiendo a la base de datos (o peor aun, mete 'spam'). Para solucionarlo, tendrías que buscar la manera de que los datos se borren una vez enviados y/o de que un mismo usuario no envíe más de x mensajes seguidos. Si quieres ahorrarte todo esto, también puedes buscar algún script preconstruido, claro que no tendrás tanto control sobre el tratamiento de datos.
En respuesta a tu segunda pregunta, personalmente creo que ahora mismo la mejor opción es PHP + MySQL.
Un saludo.