A virtual database, also called a federated database, is a way to view and query several databases as if they were a single entity.
The goal of working in a virtual database is to be able to look at data in a more unified way without having to duplicate it across multiple databases or manually combine the results from multiple queries. In a homogenous environment, virtual databases can help distribute the load of very large databases.
Each component database in the system is completely self-sustained and functional. When an application queries a virtual database, the system figures out which of its component databases contains the data being requested and passes the request to it. The biggest challenge to building a virtual database is that the developer needs to first build a universal data model. The data model serves as a map to every source of data within the company. Finding a single schema that can address all of a company’s data needs can be difficult, particularly if data is dirty.
Integrating disparate databases under a centralized console offers several benefits. First, federated databases offer an alternative to merging databases together, which can be a tedious task. Second, they help programmers avoid the tight coupling of applications with legacy databases by eliminating vendor and schema lock-in. Applications can be written to target the intermediary layer – the virtual database – as opposed to a specific database by a specific vendor. Finally, applications need only to be connected to the virtual database in order to work with data from multiple databases.