by Craig S. Mullins
Some folks think that DBAs and application developers inhabit different universes.
At times this may seem to be the case, but the successful DBA must understand application development and the issues involved in programming and design. Although DBAs are usually are viewed as system "folk," they most definitely must be tied into the application development and design projects of their organization. Application code is written to access data in the database; the DBA must have a sound understanding of how that is happening, as well as ways to improve it.
Application design includes database concerns such as interfacing SQL with traditional programming languages and the type of SQL to use. But every aspect of program coding will affect the usability and effectiveness of the application. Furthermore, each application program must be designed to ensure the integrity of the data it modifies – and that means understanding transaction integrity and the concept of “unit of work” and appropriate COMMIT logic. Not only does this impact data integrity, but the scope of the unit of work can have a significant impact on the ability for other concurrent workloads to access (or modify) the same data. And that can impede performance.
Designing a Proper Database Application System
Designing a proper database application system is a complex and time-
SQL is coded without embedded data-
SQL sometimes can get very complex. DBAs are needed to help unravel the complexity and assure that the SQL is written as effectively as possible. Although programmers should be able to examine plan table or show plan information, the nature of doing so often falls to the DBA… especially in a production environment.
The DBA Needs to be the Champion of SQL and Understand the “Framework” Being Deployed
The DBA needs to be the champion of SQL. Programmers should be encouraged to do the work in the SQL, instead of breaking it apart and putting it into host language code. By putting the work into the SQL, the DBMS can control access paths. When the volume or nature of the data changes significantly all that is required to access the data differently is re-
Additionally, application programs require an interface for issuing SQL to access or modify data. The interface is used to embed SQL statements in a host programming language (such as COBOL, Java, C, or Visual Basic). Standard interfaces enable application programs to access databases using SQL. There are several popular standard interfaces, or APIs (Application Programming Interfaces), for database programming, including ODBC, JDBC, SQLJ, and OLE DB. DBAs need to understand these APIs and how they are being used to develop database applications in their shops.
The DBA also needs to understand the “framework” being deployed. For the Java programmer, J2EE offers a set of coordinated specifications and practices that together enable solutions for developing, deploying, and managing multitier enterprise applications. The J2EE platform simplifies enterprise applications by basing them on standardized, modular components. J2EE provides a complete set of services to those components and handles many details of application construction without requiring complex programming. So J2EE is not exactly a software framework, but a set of specifications, each of which dictates how various J2EE functions must operate.
And then there is the Microsoft .NET framework, which provides a comprehensive development platform for the construction, deployment, and management of applications. The .NET framework provides CLR (common language run time) and a class library for building components using a common foundation. From a data perspective, the most important component the .NET framework is ADO.NET, which provides access to data sources such as a database management system. ADO.NET enables .NET developers to interact with data in standard, structured, and predominantly disconnected ways.
A Good DBA Should Know ...
Of course, there are additional development issues outside the application interface level that DBAs need to be aware of. Applications also interface with other types of system software. Application servers, transaction servers, message queuing software, and the like can complicate the development cycle -
Now, I am not saying that the DBA has to be a whiz-
From Database Trends and Applications, October 2013.
© 2013 Craig S. Mullins,