La virtualización de bases de datos es el desacoplamiento de la capa de base de datos, que se encuentra entre las capas de almacenamiento y aplicación dentro de la pila de aplicaciones. La virtualización de la capa de base de datos permite alejarse de lo físico y acercarse a lo lógico o virtual.
La virtualización permite agrupar y asignar recursos informáticos y de almacenamiento según demanda. Esto permite compartir recursos de un solo servidor para múltiples inquilinos, así como agrupar los recursos del servidor en una única base de datos lógica o clúster. En ambos casos, la virtualización de bases de datos proporciona una mayor flexibilidad, una asignación más granular y eficiente de recursos agrupados y una informática más escalable.
El acto de particionar almacenes de datos a medida que crece una base de datos se ha utilizado durante varias décadas. Hay dos formas principales en que los datos se han dividido dentro de los sistemas de gestión de datos heredados :
En la partición virtual, los datos lógicos se abstraen de los datos físicos mediante la creación y gestión autónoma de un gran número de particiones de datos (de cientos a miles). Debido a que se mantienen de forma autónoma, los recursos necesarios para gestionar las particiones son mínimos. Este tipo de partición masiva da como resultado:
Las arquitecturas de “datos compartidos” y “nada compartido” permiten la escalabilidad a través de múltiples particiones de datos y consultas entre particiones y procesamiento de transacciones sin un escaneo completo de las particiones.
Particionar las fuentes de bases de datos de los consumidores es un concepto fundamental. Con una mayor cantidad de fuentes de bases de datos, insertar una capa de virtualización de datos horizontal entre las fuentes y los consumidores ayuda a abordar esta complejidad. Rick van der Lans, autor de varios libros sobre SQL y bases de datos relacionales, ha definido la virtualización de datos como "el proceso de ofrecer a los consumidores de datos una interfaz de acceso a datos que oculta los aspectos técnicos de los datos almacenados, como la ubicación, la estructura de almacenamiento, la API, acceder al lenguaje y a la tecnología de almacenamiento". [1]