Database Visualizer (dbViZ)
Vision
Version 1.2
Revision History
Date |
Version |
Description |
Author |
October 22, 2002 |
1.0 |
Initial Version |
Abhay Sathe |
November 3, 2002 |
1.1 |
Informal review with David Hampshire |
Abhay Sathe |
December 9, 2002 |
1.2 |
Informal review with Brian Sidharta |
Abhay Sathe |
|
|
|
|
Table of Contents
2.4 Product Position Statement
3. Stakeholder and User Descriptions
3.5 Summary of Key Stakeholder or User
Needs
3.6 Alternatives and Competition
4.2 Assumptions and Dependencies
Vision - Database visualizer (dbViZ)
The purpose of this document is to collect, analyze and define high-level features of the 'Database Visualizer' tool (Henceforth called dbViZ). It focuses on the capabilities needed by the stakeholders, and the target users and why these needs exist. The details of how the dbViZ fulfills these needs are detailed in the use case and supplementary specifications.
Developers that must write applications for preexisting database schemas face a void in their selection of tools for exploring the schema. At the abstract level, the Entity-Relationship (ER) Diagram model is suitable for describing how different types of data fits together. However, the ER diagram does not describe the implementation details. At the lowest level are database table display tools that, although are "graphical", still retain many of their ties to their ancestral text-based interfaces: they offer lists of the tables in the database, and to display the information on a table, they list all the columns and their types.
For projects where the Database size is small, with less than 10 tables with foreign key relationships, the conventional methods described above are adequate. Also, having contact with the original database creator helps in reducing the time required for understanding the database structure. However, for the situations described below, the methods described above are not suitable for rapid development.
The dbViZ project envisions a tool that bridges the ER-diagram realm with the concrete implementation level. This Database Visualizer will present the Database Tables in a form very similar to ER Diagrams, or UML Diagrams. It will analyze the meta-data of an existing database schema, allow the user to choose a set of tables they want to view, and it will automatically retrieve the meta-data for those tables, determine how they link together (assuming they have foreign key relationships), lay out the tables in the diagram and plot lines between the linked items. This allows developers to spend time learning how the tables connect rather than wasting time manually drawing up the links between the tables they’re interested in.
An additional ability is to allow users to create SQL queries by selecting parts of their diagram that would be joined together. This saves us from having to manually write complex join statements. With the diagram as a foundation, constructing queries by picking parts of the diagram is only natural!
The Database Visualizer will fill the hole in the documentation sequence of database schema—one that’s very important to developers that must use existing databases: visualizing the tables!
None
The problem of |
Visualizing the Inter relationships in pre-existing database tables |
Affects |
Developers that must write applications for pre-existing database schemas, particularly while dealing with large Databases containing 50+ tables |
The impact of which is |
That they either spend a significant amount of time going through lists of tables, and lists of columns and their types, to mentally ‘draw’ the Entity-Relationship diagrams, or the corporations interested in developing those schemas must invest in proprietary, database specific tools. |
A successful solution would be |
An open source and fairly easy to use tool, which would work with any database that bridges the ER-diagram realm with the concrete implementation level. It will analyze the meta-data of an existing database schema, allow the user to choose a set of tables they want to view, and it will automatically retrieve the meta-data for those tables, determine how they link together (assuming they have foreign key relationships), layout the tables in the diagram and plot lines between the linked items. Additionally, it would also allow users to create SQL queries by selecting parts of their diagram that would be joined together |
For |
Database Designers |
Who |
Want to develop applications for existing databases. |
The (dbViZ) |
Is a software package |
That |
Provides a tool that’s very important to developers that must create applications for existing databases: visualizing the tables, and creating queries visually |
Unlike |
The existing proprietary and Database-specific tools |
Our product |
Is open source and Database-neutral |
The Target market for this tool is the Database Developers and consultants who have to quickly produce applications for existing databases. They want to reduce the tedium involved in discovering structure of database tables and their relationships. At the same time they (or their employers) do not want to spend the money for proprietary database tools. They are looking for a tool that is widely accepted in the developer community and is freely available everywhere, and works with most of the popular databases.
Name |
Description |
Responsibilities |
Company |
The corporation who owns the database and employs the developer to develop applications for existing databases |
Provide resources for DbViZ Development with goal of creating a tool that the Database Application developers can use on many popular Databases |
Developer |
The Database developer who wants to develop applications for existing databases |
Use the DbViZ to gain insight into existing databases an provide tangible productivity gain by delivering to tighter schedules |
Open source community |
The software engineers who contribute to open source software development regularly on public forums such as the Sorceforge net |
Contribute to the rapid development of this very useful tool by extending its use to more databases, or add features to make the tool more useful |
Professor and TA |
UIUC CS 327 Staff |
Examine if the dbViZ developers (students) used RUP process correctly and executed the phases as planned. |
Name |
Description |
Responsibilities |
Stakeholder |
Developer |
The Database developer who wants to develop applications for existing databases |
Load Database Add/remove tables from the diagram Create queries from the displayed table information |
Self Represented |
Database Administrator |
Manages the Databases the Developer will develop applications for |
Create user accounts for the Designer Manage designer’s access to the database Maintain security of the Information |
Represents the company’s interests in maintaining the integrity and security of Data in the Database. |
The developers will contact the Database Administrator to gain access to accounts with sufficient privilege that allows views of schema for tables.
The developer is the expected to start the DbViZ and connect to the database by specifying appropriate path and driver to be used for database specific connectivity. The use cycle lasts as long as the developer needs.
DbViZ is written in java and can run on any platform that supports Java.
The tool is targeted for the individual Database application developer; however, it can very easily be adopted for presentations to a group of developers, as a maintenance tool by the Administrator or as a reporting tool.
Need |
Priority |
Concerns |
Current Solution |
Proposed Solutions |
|
Visualize the Schema of an existing database |
High |
Require level of information must be conveyed |
Do it by hand |
Team based approach to GUI design and feedback from the users captures the GUI functionality |
|
Create queries visually |
High |
Adequate control of the visual medium |
Must use Db specific tools |
The conceptual view shown by ER diagrams allows query creation for any Db |
|
Connect to most poplar databases |
High |
Must not become too specific to any Db |
Use different tools for different databases |
Provide a Database abstraction layer to allow a design that works for any Db. |
|
Print the created views |
Medium |
None |
Capture screens |
Use the awt.print classes to provide uniform printing interface |
|
Work on multiple operating systems |
Medium |
None |
None |
The Java platform is a natural choice for multi-platform operation. |
|
Install/uninstall easily |
Medium |
None |
Proprietary tools |
Use java ‘installers’ |
|
1. DbVisualizer
from Minq software: http://www.minq.se/products/dbvis/index.html
. This tool has features and functionality described in the vision
document. However, the product is closed source and therefore does not fit the
criteria described in positioning for our target market.
2. Other
Existing commercial visualization tools: A few of
these tools offer Data Modeling and enhanced Query building functionality.
Examples are the Erwin data modeling suite from All Fusion, SQL Navigator and
Toad from Quest Software, and the Oracle Enterprise Manager. These are all
proprietary tools.
3. Invest
in a closed source or internal development: Although a company
‘proprietary’ tool could be build without the involvement of the open source
community, such a tool would have higher support and enhancement costs.
4. Wait
for the open source community to produce such a tool: This would save the
time and effort required for the development. But this option must be weighed
against the incurring costs in designer time in the absence of such a tool.
The product is a stand-alone system. It integrates with Databases on one end, and interfaces with a GUI package to provide the visual content. This is shown in the diagram below:
1. A Java package to create visualizations of the ER Diagrams
2. JDBC drivers for the initially supported Databases
A Sketch of
the GUI showing the operation of dbViZ is shown below