HalfAssKeys are identifiers that have limited, externally-hidden, or temporary use. Examples inlcude: * ObjectIdentity - It can be difficult to know if two objects are really the same object. One approach is to compare every property. Another is to compare memory addresses (object pointers) to see if the same object is being pointed to. * Internal Oracle row numbers - Oracle has a rownum() funcntion that returns a unique row identifier. However, it's not guaranteed to be permanent. For example, if a record is deleted, a new record may recapture the same row number used by a former record. In that sense, it's similar to a RAM address. ** I think you are confusing rownum() with ROWID. (And be aware that there are some situations where a ROWID isn't unique, and I'm not referring to the reuse of a deleted one). * Preserving row sequence - [under constru