Topic > code ss. If a business module relies on the internal workings or implementation of a data access module, or if the business module directly includes some aspect of connectivity and data access code, a tight coupling is created between the business logic and that of data, directly influencing the portability of each. The following diagram illustrates the structure of a typical application that accesses persistent data stored in a relational database. The data logic and JDBC API are integrated into the business logic to some extent, tightly coupling the two layers together. Figure 1 - Typical Application Structure Tight coupling between modules will produce a number of difficulties and problems: • Changes in one module will potentially force a ripple of changes in the other module • Modules will be more difficult to understand in isolation • Modules will be difficult to r...... half of the paper ...... designing objects from the relational database implementation. • Reduces code complexity in business modules Because DAOs encapsulate all the code needed to interact with persistent storage, business modules can use the simpler API exposed by the data access layer. This reduces the complexity of data access client code and improves enterprise-level maintainability. • Organize all data access code in a separate tierDAOs organize the implementation of data access code in a separate tier, which isolates the rest of the application from persistent storage and external data sources. Since all data access operations are now delegated to the DAOs, the separate data access layer isolates the rest of the application from the data access implementation. This centralization simplifies maintenance and management of the application.