In this chapter we will be looking at a number of different issues that face developers as they develop applications for a multi-user environment. The most obvious of these is the issue of record locking; what happens when two users want to update the same record at the same time? We will look at how we can programmatically control shared access to data and how we can gracefully handle errors that arise when two users attempt to access the same data at the same time.
Then we will go on to look at the whole issue of security. Broadly speaking, security is implemented within database applications for two reasons. It allows us, as developers, to restrict unauthorised access to areas of the database that we wish to remain off-bounds and it allows the application to identify users so that it can both personalise their interaction with the database and audit their use of application and database resources.
Finally, we will look at another development- related issue - compilation. This is the process of wrapping up or packaging an application before it is developed so that it runs more efficiently and is less susceptible to accidental design changes than it would be if it were in an uncompiled state.