Veréis, tengo una duda relacionado con Bases de datos. Tengo entendido que en los SGBD existen tres niveles, que son:
- Nivel Fisico
- Nivel Logico
- Nivel Virtual
El Fisico sería la parte más física relacionado con la base de datos (pagina, extension, fichero, etc...)
El Lógico sería la base de datos en sí, donde se almacenan las tablas, campos, etc...
Pero.... y el nivel virtual? Tengo entendido que es como una especie de pasarela entre el nivel físico y el lógico para que haya una buena optimización a la hora de mostrar los datos, ya que te los página.
Y para ello, hay unos cuantos tipos de niveles virtuales y que son:
- Nivel virtual de tablas
- Nivel virtual de fragmentación
- Nivel virtual de agrupación
- Nivel virtual de objetos grandes
- Nivel virtual de indices
Ahora bien, si yo tengo una base de datos con sus tablas, etc... que criterio se debería de seguir para poner las tablas en según que otro nivel virtual?
Imaginad el siguiente supuesto.
Tabla A --> millones de filas y ocupa un espacio de 2 GB
Tabla B --> 10.000 filas aprox i ocupa un espacio de 700 KB
Ahora bien, la clave foranea de B es clave primaria de A, es decir, cuando hago consultas con la tabla A, coge el ID de la tabla B.
Como es lógico, el nivel virtual a utilizar en la tabla A es el nivel de fragmentación, para que la base de datos fragmente la tabla en cuantas páginas necesite.
Ahora bien, cual seria el nivel virtual de la Tabla B, teniendo en cuenta que la utiliza la tabla A?. Tendría sentido poner esta tabla en el nivel virtual de tablas, debido que ocupa poco espacio. Pero como es una tabla que utiliza mucho la Tabla A, no tendría sentido que también estuviera en el nivel virtual de fragmentación para que tuviese un acceso rápido a los datos?
No se si se me entiende mucho, por eso agradecería que si no se me entiende, me lo comentéis a ver si pudiera explicarme mejor.
La verdad que los niveles virtuales es un concepto que no termino de entender, más que nada por la compartición de datos y porque se trata de un nivel abstracto...
Muchas gracias por la ayuda.
Un saludo