Metadatos para Data Mediator Service
DMS (Data Mediator Service) es el componente SDO (Service Data Object) que conecta con la base de datos de programa de fondo. Se crea con metadatos específicos del programa de fondo. Los metadatos definen la estructura del DataGraph que el DMS produce, así como la consulta que se va a utilizar en el programa de fondo.
Los metadatos están formados por los componentes siguientes:
- Tabla
- Representa una tabla dentro de la base de datos de destino y se compone de los
elementos siguientes:
- Name
- Este es el nombre de tabla de base de datos. Una tabla podría tener también un nombre de propiedad que se puede utilizar para especificar el nombre del DataObject que corresponde a esta tabla. De forma predeterminada, el nombre de propiedad es el mismo que el de la tabla.
- Columnas
- El subconjunto de columnas de tabla de base de datos que se devuelve de la base de datos. La columna tiene un tipo que corresponde a un tipo JDBC y puede prohibir las entradas nulas. Las columnas tienen un nombre que se corresponde con el de la base de datos y un nombre de propiedad opcional que identifica el nombre de columna del DataObject. De forma predeterminada, el nombre de propiedad es el mismo que el de la columna de la base de datos.
- Clave primaria
- La columna (o columnas) que se utiliza para identificar de forma exclusiva las filas dentro de la tabla.Nota: Las claves pueden estar formadas por varias columnas. El ejemplo siguiente ilustra la creación de una clave primaria compuesta:
Si una tabla está relacionada con ésta y es la tabla secundaria, utiliza el mismo método para crear la clave foránea para señalar a esta tabla de coordenadas.Key pk = MetadataFactory.eINSTANCE.createKey(); pk.getColumns().add(xColumn); pk.getColumns().add(yColumn); coordinateTable.setPrimaryKey(pk);
- Clave foránea
- La columna (o columnas) que se utiliza para relacionar la tabla con otra tabla de los
metadatos. Hay una correlación posicional asumida entre las claves primarias compuestas y las
claves foráneas. Por ejemplo, si una tabla principal tiene una clave primaria como
(x,y) con tipos respectivos (integer, string), se espera que cualquier clave foránea
a la que señala sea también (x', y') con tipos respectivos (integer,
string). Nota: Las claves pueden estar formadas por varias columnas. El ejemplo siguiente ilustra la creación de un clave foránea compuesta:
Si una tabla está relacionada con ésta y es la tabla secundaria, utiliza el mismo método para crear la clave foránea para señalar a esta tabla de coordenadas.Key fk = MetadataFactory.eINSTANCE.createKey(); fk.getColumns().add(xColumn); fk.getColumns().add(yColumn); coordinateTable.getForeignKeys().add(fk);
- Filtro
- Un predicado de cláusula WHERE de SQL (Lenguaje de consulta estructurada) que puede darse con o sin parámetros para rellenar más tarde. Esto se añade a la cláusula WHERE de la sentencia SELECT del DataGraph. No se analiza ni interpreta de ningún modo; se utiliza tal cual está. Si se proporciona con parámetros para rellenar más tarde, estos parámetros se convierten en los argumentos que se pasan al DMS de JDBC cuando se obtiene el DataGraph. Los filtros se utilizan sólo con consultas generadas. Si se da una consulta suministrada, se ignoran los filtros de metadatos.
- Relación
- Relaciona dos tablas a través de la clave primaria de la tabla principal y la
clave foránea de la tabla secundaria. Las relaciones se componen de los elementos
siguientes:
- Name
- Este es el nombre dado a la relación, generalmente asociado a cómo están relacionadas las dos tablas. Si Customers (Clientes) es la tabla principal y Orders (Pedidos) es la tabla secundaria, el nombre predeterminado de la relación es Customers_Orders (Clientes_Pedidos).
- Nombre opuesto
- Este es el nombre que se utiliza para navegar desde el DataObject secundario al DataObject principal.
- Clave padre
- La clave primaria de la tabla principal.
- Clave hijo
- La clave foránea de la tabla secundaria que señala a la clave padre.
- Exclusivo
- De forma predeterminada, una relación produce que la consulta generada utilice una operación de unión interior en las dos tablas de la relación. Esto significa que sólo devuelve las entradas padre que tienen hijos, es decir, entradas hijo que señalan a las entradas padre. Si el valor del atributo Exclusivo está establecido en false, la consulta utiliza una operación de unión exterior izquierda en su lugar y devuelve todas las entradas padre, incluso aquellas sin hijos.
- Orden
- Las columnas utilizadas para ordenar las tablas. Puede ser ascendente o descendente. Cuando se especifica, provoca que las consultas generadas contengan la cláusula ORDER BY.