PL/SQL developers often create code that is utilized by web based or desktop applications. In a client/server environment,
each client application makes a connection to a server. In some cases, this can be a direct connection to a database server itself.
Many applications today are multi-tiered and include client applications, one or more middle tier servers and Oracle databases
as the backend data store. In web based applications, the web browser is a client application, a web server (along with various application servers)
comprise the middle tier, and the Oracle database is data store.
It is important to identify the way an application is partitioned early on in the design process. The architecture selected will determine
to a large degree what program functionality is required in each section of the application. For instance, a Model-View-Controller
pattern is often used to separate concerns in middle tier development. In this paradigm, the Oracle database provides the model data in raw form.
Formatting is done by the view. Interactions between the model and the view are coordinated by the controller. For a PL/SQL developer, the use of
such a design would suggest that very little formatting would be done in PL/SQL code. Values would instead be returned in the data type and precision
that they are stored.
Another application concern that benefits from clear application partitioning is validation. In web based applications, validation can occur
code at the database level (PL/SQL triggers) or through database constraints. Some decisions in this area are influenced by the determination
of whether a database is accessed by one application only or many different applications. In any case, developers who understand the
limits and possibilities available through the use of PL/SQL and database constraints can provide input to system architects to determine an effective design
that will result in a well integrated functioning application.