No need to worry
No authentication is required for database access.
How can a null object have spaces in all fields?
The only question I can think of: why using a cache if you write each time to the database file?
3/ I don't think this behavior is related to the locking method. It means your business logic to check if the room is already booked is working. The lock method of the Data class has another purpose which is described excellently in the ScjdFaq.
// Locks a record so that it can only be updated or deleted by this client.
// If the specified record is already locked, the current thread gives up
// the CPU and consumes no CPU cycles until the record is unlocked.