|
*** Documento en elaboración *** v186
Una In-Memory-Data-Base (IMDB) M&P es una base de datos relaciónal residente en memoria.
Una aplicación M&P puede tener varias IMDB activas en
memoria en un momento dado.
Las IMDB junto con las BScript Lists (BL) son
las estructuras de datos centrales de M&P.
Una IMDB puede operar en forma autónoma o en
asociación con una Base de Datos residente en un RDBMS.
Interoperación con una Base de Datos asociada
Cuando la IMDB tiene una Base de Datos externa
asociada, la IMDB actúa como un cache inteligente de la Base de Datos
que permite eliminar (o
minimizar) el acceso a disco al almacenar y manipular datos en la memoria principal.
La Base de Datos en el RDBMS se manipula siempre mediante métodos de
la IMDB. La transferencia de datos entre ambos niveles se realiza
también mediante métodos de la IMDB.
Mapping implícito
M&P
establece un "mapping" implícito entre los dos niveles (IMDB/DB) permitiendo que un mismo data model (DModel) describa los esquemas de ambos niveles.
BLOCKS IMDBM
e I
CM
En M&P una In-Memory-Data-Base se establece
usando dos tipos de BLOCKS: IMDBM
e I
CM
(Instance-Collection
BLOCK)
.
Un BLOCK IMDBM contiene internamente varios
BLPCKS I
CM
(que contienen las Instance-Collection de la
IMDB).
Pueden también crearse BLOCKS I
CM
autónomos.
Creación dinámica
Los BLOCKS IMDBM y ICM pueden ser instanciados en
XAML pero lo habitual es crearlos dinámicamente por demanda en código
mediante métodos
del DModel.
Interoperación con el RDBMS
Como menciónamos previamente un conjunto de
métodos de la IMDB permiten luego cargar datos desde el DBMS en los
ICM
y viceversa.
La Interoperación es Transacciónal y esta sujeta a
Control de Concurrencia (M&P utiliza Concurrencia Optimista
y provee en mecanismo para la resolución de conflictos de concurrencia).
El
MPR establece automáticamente las Conexiones con el DBMS y genera al vuelo las
sentencias SQL requeridas
usando para ello las definiciones del DModel.
Los operadores de carga y descarga de datos
de M&P son "
sql
-less"
si bien pueden usarse Sentencias SQL en caso de ser conveniente.
La IMDB de M&P permite "navegar" por los datos en forma simple
"sql-less".
Modelo de Datos Activo
Los DModels (modelos de datos) de M&P residen
en memoria e intervienen en muchas de las operaciones realizadas con las
IMDBs. Mediante los DModels se crean las IMDBs y proveen la
infraestructura para la operación "sql-less".
Los DModels están codificados en XAML y pueden
contener referencias a Event Handlers BScript.
M&P es un
Model-Driven System
Los DBMS son "Schema-Driven Systems " porque los Esquemas son utilizados
"activamente" por el DBMS y dirigen su operación. Análogamente M&P es un "
Model-Driven System " porque los DModels son utilizados activamente por el
MPR y dirigen
su operación.
Tecnología de base utilizada en las IMDB
M&P utiliza para las IMDB el framework MS ADO.NET [R1].
Cada BLOCK IMDBM encapsula un DataSet
ADO.NET y Cada BLOCK ICM encapsula una DataTable.
Las facilidades de "Change Tracking" y los "Change
Events" (triggers) de ADO.NET son elementos centrales de las IMDB de
M&P. El framework ADO.NET facilita la Interoperación con los
DModels y los Plugins M&P.
Para los Change Events M&P permite especificar
Event Handlers codificados en BScript y un conjunto de validaciones es
realizado por el DModel asociado a la IMDB.
Mediante este mecanismo
es posible validar y permitir o rechazar cambios propuestos para los datos contenidos en la
IMDB.
BSQ - BScript Query
BScript provee un lenguaje para realizar queries
sobre las Instance Collections contenidas en los BLOCKS ICM. El lenguaje
de query se denomina BSQ (BScript Query) y permite utilizar la
funciónalidad de BScript para selecciónar Instances de las Instance
Collections.
LINQ to DataSet
Tambien spbre las Instance Collections se puede
utilizar LINQ (Languge Integrated Query) to DataSet [R2]
para selecciónar y clasificar Instances.
IMDB Player
El contenido de las IMDB puede ser visualizado y
editado interactivamente el IMDB Player:
El IMDB Player permite Navegar fácilmente por el
contenido de la IMDB, ejecutar Queries sobre las Instance-Collections y
también visualizar y editar cada Instance por separado mediante el
Instance Editor:
RDBMS
soportados
En la actualidad M&P opera indistintamente con cuatro RDBMS diferentes:
-
MS SQL
-
MS SQL CE
-
Oracle
-
MS Access Jet Engine
Un mismo DModel opera con indistintamente cualquiera de ellos, cambiando el
valor de la propiedad Connection
String del
DModel.
dbDrivers
Cuando se cambia el
valor de la propiedad ConnectionString el DModel seleccióna el
dbDriver correspondiente al RDBMS. La función de los dbDrivers
es "equalizar" la funciónalidad de los diferentes RDBMS respecto de M&P.
Referencias
Ver también
|