You have just bumped full force into the fact that MySQL is not a full RDBMS. You could call it a DBMS, but it doesn't have the "R" part ;-).
Seriously, the short story is: if you want an application that uses normalized tables in MySQL, you have to code in your foreign key constraints (or relationships) at the application level, rather than at the SQL level. What this means in practical purposes is that if your application code is not right, you could have orphaned records or worse. Quite simply, if you are inserting a record that you want to relate to another record, and your code has an error, MySQL will accept an incorrect foreign key without complaint. Thus, at the moment it is suicide to try to code a mission-critical application in MySQL.
When the other posters mentioned that MySQL can accept a foreign key constraint in SQL create statements, they meant that MySQL doesn't cause an error upon doing that, but the statement is only in there for documentation purposes.
However, to further muddy the waters, MySQL also uses more than one table type. They claim that for the InnoDB table type, they are in the beta phase for FK constraints, but honestly, it is still very basic, and doesn't support the features that you will find in Oracle. So the story in MySQL is a little confusing, unless you read the documentation for each table type carefully.
In fact, trying to compare MySQL to Oracle is like trying to compare DOS to Unix. Yes, on the surface they may seem to have many of the same functions, but one has much greater capability and a more solid underlying principle than the other.
Seriously, if you want an open source database that compares well to Oracle, you should check out PostgreSQL (www.postgresql.org).