Аннотация
A database system is a common, visible tool in the corporate world—employees frequently interact directly with database systems to submit data or create reports.
Database systems are also common, but invisible, as components of software systems. For example, consider an e-commerce website that uses a server-side database to hold customer, product, and sales information. Or consider a GPS navigation system that uses an embedded database to manage the road maps. In both of these examples, the presence of the database system is hidden from the user;
the application code performs all of the database interaction.
From the point of view of a software developer, learning to use a database directly is rather mundane, because modern database systems contain sophisticated front ends that make the creation of queries and reports straightforward. On the other hand, the possibility of incorporating database functionality into a software application is exciting, because it opens up a wealth of new and unexplored opportunities.
But what does “incorporating database functionality” mean? A database system provides many things, such as persistence, transactional support, and query processing. Which of these features are needed, and how should they be integrated into the software? Suppose, for example, that a programmer is asked to modify an existing application, say to add the ability to save state, or to increase reliability, or to improve the eff i ciency of f i le access. The programmer is faced with several architectural options. She could:
• Purchase a full-featured general-purpose database system and then modify the application to connect to the database as a client
• Obtain a more specialized system that contains only the desired features and whose code can be embedded directly into the application
• Write the necessary functionality herself In order to make the proper choice, the programmer needs to understand what each of these options entail. She needs to know not only what database systems do but also how they do it and why.
This text examines database systems from the point of view of the software developer. This perspective allows us to investigate why database systems are the way they are. It is, of course, important to be able to write queries, but it is equally important to know how they are processed. We don’t want to just use JDBC, we want to know why the API contains the classes and methods that it does. We need a sense of how hard is it to write a disk cache or logging facility. And what exactly is a database driver, anyway?
Комментарии к книге "Database Design and Implementation"