Processors within a Taverna workflow can be viewed as functions - that is to say you feed them a set of inputs, press 'go' and get a set of results. A database in contrast just sits there until you query it so some kind of intermediate layer is required. There are a few different options;
The most sophisticated is to use Taverna's extension points to implement a full query interface including a server side query service and GUI plugins to build the query and present the user with database metadata to assist that. This is a lot of work, we maintain an example of this in the BioMart? processor.
The second option is to create a standard SOAP or other protocol service which exposes a 'canned query' interface allowing a restricted subset of all possible queries at which point it just looks like another service and Taverna can invoke it as per usual.
If your data is amenable to it the third way is to make use of the existing BioMart? processor and expose your own data set as a BioMart? (see http://www.biomart.org for more details).
Fourthly, if there is a JDBC interface to the database then you can use the jdbc Local Java widgets