Hi Henrique,
basically it is the way how characters are compared. You can make use of binary comparisons of characters (= default setting) or linguistic comparisons on Oracle (i don't know how it is handled internally by other RDBMS). Characters are compared according to their binary value in case of binary comparison, otherwise the numeric code of each character does not have to be identical in order to match.
You would even have a bad performance (index unique lookups or range scans not possible) by linguistic usage, if you don't create an index with the nlssort function (which is used implicitly). There are other limitations as well (like bitmap stuff and so on), but that would be too far right now.
Regards
Stefan