<...>
>  If my DB is a model of real world entities as it
> should be then there should be a unique indentifier for said entities which
> means I shouldn't have to number them just because.
>
> In other words I am using necessary table elements as keys.

The problem with "real world" unique identifiers is that even if they
stay uniqui they
_may_ change. The worst part it that they do change, even those you though would
never ever possible change.
Surrogate keys do not have this problem. They may have other problems,
but it is worth it,
imho.

Regards,
Rimantas
--
http://rimantas.com/