If you're gonna play with things like this take a look at postgresql. It has support for all the fancy stuff like foreign keys with cascading deletes, deferrable constraints, stored procedures (in like 5 or so languages) user defineable types, locale support, multibyte character support, fully transactional, etc... etc...
MySQL is a pretty good backend data store for things like content management, but for real database work it has a hard time matching postgresql's features, and contrary to popular (mis)belief, postgresql is quite fast nowadays.