Any methods that throw RecordNotFoundException should do so if a specified record does not exist or is marked as deleted in the database file
after I use delete() method, then the record is marked deleted, in unlock() there is some checking code like this
if (isDelete(recNo)){throw new RNFException;} because isDelete(recNo) will always return true after I use delete() method, unlock() method will always throw RNFException。
If the specified record is already locked by a different client, the current thread gives up the CPU and consumes no CPU cycles until the record is unlocked.
"It must allow the user to search the data for all records, or for records where the name and/or location fields exactly match values specified by the user"