Almost every software development tool vendor has some sort of tool that can be loosely categorized as a database tool. These fall into three general categories. First there are the major database vendor's products. The vendors each have their own development tools such as Oracle's Developer 2000 or Sybase's Powerbuilder. The database vendor's tools tend to start with the database design and derive user interfaces based on the database structure. Such tools are a great fit if you are primarily developing a database-centric application with a single DBMS. One of the disadvantages of this approach, however, is that database schema changes can wreck havoc on your application. Each of these tools does provide multi-DBMS support; however, it is no surprise that each vendor's tool typically works best with its own database.
The second category of database tools come from the traditional Interactive Development Environment vendors such as Symantec or Imprise. These tools tend to start with the user interface design and then add features for mapping user interface elements (forms, text fields, etc.) to database tables. Such tools tend to provide better cross-DBMS support while they may lack some of the fancier features or capabilities of the DBMS vendor's tools. Imprise has a reputation for being the vendor who provides the best database integration in their development tools; however, all vendors tend to leapfrog each other with new capabilities with each new release.
The third category of database tools can be categorized as middleware tools. Such tools specialize in providing connectivity between multiple databases and multiple development environments. In Java-based applications, database interaction has been simplified by Java's JDBC (Java Database Connectivity) API. The JDBC API defines a vendor and in fact database architecture neutral interface for accessing data. An application written to the JDBC API could switch at run time between storing data in a relational DBMS, an object-oriented DBMS, or even a flat file. The promise of this approach is that, when combined with other building blocks, it will let developers concentrate on coding the business logic of their application and then derive both the database structure and the user interface as dictated by the business logic. Once again, here is a small sampling of some of the tools available.
Table15-3. Database Tools
|Tool Name /Vendor||Languages Supported||Platforms||Comments|
|Blend.J Rogue Wave Software||Java||Any Java platform||Great add-on to other Rogue Wave tools|
|CocoBase Thought Inc.||Java||Any Java platform||Glues together JDBC, CORBA, and RMI|
|Developer/2000 Oracle||Java, C, C++, others||Windows, Unix||Oracle's flagship development tool|
|GemStone/J Gemstone Systems||Java||Any Java platform||Three- tier transactions support|
|Jaguar CTS Sybase||Java, C, C++||Windows, Unix||ActiveX and JavaBeans support in a high performance transaction server|
|NetDynamics Sun Microsystems||Java, C, C++||Windows, Unix||Load balancing for high-end scalability|
Blend.J integrates Rogue Wave's JWidgets and Stingray's Objective Blend into a collection of 45-plus controls. It provides both JFC and AWT support, with controls that offer the same interface but different implementations, allowing developers to swap implementations rather than rewriting code. If you are using any of Rogue Wave's other tools and need to access information from a database, you should consider this tool.
CocoBase is centrally managed middleware for making databases Internet-accessible. It sits on top of the JDBC drivers and uses CORBA or RMI to access and manipulate databases and data stores as first class application objects without putting SQL in the client or server. CocoBase glues together the GUI, ORB (or RMI), and JDBC driver of the developer's choice. There are three versions of this tool available. The free version is a persistent object storage facility with embedded XDB's Jet Store BTree Engine. CocoBase Lite is a dynamic object to relational mapping tool. The enterprise version includes tools for mapping objects and converting tables to objects.
For more information on CocoBase, see the Thought Inc. web page at http://www.thoughtinc.com.
Developer/2000 is Oracle's flagship enterprise application development environment. It includes a form builder and an integrated reporting and charting tool for relational database application development.
For more information on Developer/2000, see the Oracle web page at http://www.oracle.com.
GemStone/J is a three-tier, integrated transactional server for Java and CORBA, based on distributed JavaBeans and other enterprise services. GemStone/J utilizes key standards such as CORBA/IIOP and JDBC to ensure interoperability and integration with all data sources. It provides an open application development environment for distributed Java applications. In conjunction with the GemStone/J tools and services, APIs, Java, and JavaBeans applications can be flexibly partitioned between client and server.
For more information on GemStone/J, see the Gemstone Systems web page at http://www.gemstone.com.
Jaguar is a component transaction server designed for delivering scalable, transaction-based applications for the Internet. It supports multiple component models including JavaBeans and ActiveX. It provides connection management, session management, monitoring, multi-database connectivity, and point-and-click administration.
For more information on Jaguar CTS, see the Sybase web page at http://www.sybase.com.
NetDynamics is a visual development environment for generating server-side Java database applications. Scalability and performance result from a combination of request brokering, load balancing, multiple database connection management, and distribution over multiple CPUs.
For more information on NetDynamics, see the Sun Microsystems home page at http://sun.com.