ES2352565T3 - Procedimiento para el control de un sistema de base de datos relacional. - Google Patents

Procedimiento para el control de un sistema de base de datos relacional. Download PDF

Info

Publication number
ES2352565T3
ES2352565T3 ES06741027T ES06741027T ES2352565T3 ES 2352565 T3 ES2352565 T3 ES 2352565T3 ES 06741027 T ES06741027 T ES 06741027T ES 06741027 T ES06741027 T ES 06741027T ES 2352565 T3 ES2352565 T3 ES 2352565T3
Authority
ES
Spain
Prior art keywords
rtn
modules
module
decision
weighting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06741027T
Other languages
English (en)
Inventor
Matthias Mostl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mediareif Mostl & Reif Kommunikations- und Informationstechnologien Oeg
mediareif Moestl and Reif Kommunikations und Informationstechnologien OEG
Original Assignee
Mediareif Mostl & Reif Kommunikations- und Informationstechnologien Oeg
mediareif Moestl and Reif Kommunikations und Informationstechnologien OEG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediareif Mostl & Reif Kommunikations- und Informationstechnologien Oeg, mediareif Moestl and Reif Kommunikations und Informationstechnologien OEG filed Critical Mediareif Mostl & Reif Kommunikations- und Informationstechnologien Oeg
Application granted granted Critical
Publication of ES2352565T3 publication Critical patent/ES2352565T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Vehicle Body Suspensions (AREA)
  • Control Of Metal Rolling (AREA)

Abstract

Procedimiento implementado por ordenador para el control de un sistema de datos relacional, en el que una instrucción de búsqueda compuesta de palabras clave se analiza en primer lugar empleando una red de transición recursiva, designada a continuación como RTN, y a las palabras clave o grupos de palabras clave se les asignan propiedades relevantes para el tratamiento en la secuencia predeterminada por la instrucción y luego se convierten en ordenes de control y, dado el caso, se optimizan, caracterizado porque la RTN está formada por módulos RTN independientes unos de otros, presentando cada módulo RTN una gráfica de decisión interior dirigida, que está definida de forma independiente de las gráficas de decisión interiores dirigidas de otros módulos RTN, con al menos una posición de decisión a lo largo de al menos un camino de decisión, porque en un paso de selección, las gráficas de decisión internas de todos los módulos RTN se recorren mediante las palabras clave y todos los caminos posibles de estas gráficas de decisión se siguen hasta que no se determina una concordancia con el respectivo camino seleccionado por la gráfica de decisión y se interrumpe el proceso o hasta que el respectivo camino seleccionado se recorre hasta el final, presentando al menos una parte de los caminos de decisión en al menos una de las posiciones de decisión una función de llamada recursiva a través de la que uno de los módulos RTN se recorre como resultado de la aplicación del paso de selección sobre la totalidad de los módulos RTN, de forma que se hace posible una ejecución recursivamente imbricada y repetida a voluntad del paso de selección partiendo de al menos una de las posiciones de decisión, y porque un plan de acceso para el sistema de base de datos relacional se genera de la secuencia de módulos RTN y su imbricación según resulta por la aplicación de los pasos de selección sobre todas las palabras clave de la instrucción de búsqueda.

Description

La invención se refiere a un procedimiento para el control de un sistema de datos relacional, en el que una instrucción de búsqueda compuesta de palabras clave se analiza en primer lugar empleando una red de transición recursiva (RTN) y a las palabras clave o grupos de palabras clave se les asignan propiedades relevantes para el tratamiento en la secuencia predeterminada por la instrucción y luego se convierten en ordenes de control y, dado el caso, se optimizan.
Además, la invención se refiere a un sistema de base de datos relacional correspondiente, a un soporte de datos o señales portadoras correspondientes con información de control para el sistema de datos relacional, así como programas informáticos y productos de programa informático para la ejecución de los procedimientos mencionados anteriormente.
La parte predominante de los sistemas de base de datos relacionales se basa en SQL que a pesar de su elevado grado de difusión y su desarrollo constante, en el caso de búsquedas complejas provoca dificultades en la formulación de una instrucción de búsqueda, y debido al grado de libertad limitado gramaticalmente conduce a una descripción del problema complicada innecesariamente y a un código de acceso no óptimo que resulta de ello, que trae consigo un procesamiento intensivo de memoria, de acceso a disco duro y de procesador.
SQL es un idioma de búsqueda que trata conjuntos y que aplica determinadas funciones de tratamiento de conjuntos en una secuencia determinada, siempre igual en cada instrucción o subinstrucción sobre conjuntos de entrada definibles libremente para cada instrucción o subinstrucción.
Esta limitación relativa en la aplicación de SQL se origina por la lógica RTN (red de transición recursiva) que sirve de base, cuyo procesamiento se produce a lo largo de una gráfica de decisión predeterminada, que prevé una sucesión fija o ampliamente fija de palabras clave y la empleabilidad recursiva de toda gráfica de decisión en posiciones de decisión determinadas, permitiéndose una selección de palabras clave según cada palabra clave. Debido a esta sucesión predeterminada, el procesado de la instrucción sólo puede describirse mediante recorridos globales encadenados y/o imbricados en sí de toda la gráfica de decisión, haciéndose posible especialmente en SQL, OQL o similares un procesado de bloques de tratamiento definidos debido a la secuencia condicionada por la gráfica de decisión, pero no es posible la introducción de nuevos bloques de tratamiento que pueden repetirse y seleccionarse libremente en particular en su secuencia.
A pesar de SQL con las limitaciones de RTN naturalmente presentes, descritas arriba se ha concebido completamente como máquina de Turing, en la práctica relativamente muchas búsquedas sólo pueden convertirse con muchas dificultades también para los expertos y ocasionan por ello frecuentemente también un tiempo de procesamiento muy largo respecto al tiempo de procesamiento posible teóricamente, que no puede conseguirse debido al grado de libertad no permitido por la RTN de SQL en la formulación y uso de instrucciones de búsqueda.
El documento EP 1 209 560 A1 da a conocer un procedimiento general para el desarrollo de modelos idiomáticos que utilicen una red de transición recursiva (RTN). No obstante, en el documento no se muestran posibilidades de aplicación para los modelos idiomáticos ni se introduce en el tratamiento posterior de bloques de red o su transformación en modelos idiomáticos estandarizados, por ejemplo, SQL.
El objetivo de la invención es por ello indicar un procedimiento del tipo mencionado al inicio, que haga posible una descripción sencilla y concisa de circunstancias de cualquier grado de dificultad en un idioma de búsqueda y la elaboración de un plan de acceso mejorado, y condicionado por ello el resultado de búsqueda puede calcularse o ejecutarse de forma más rápida.
Adicionalmente el objetivo de la invención es indicar un procedimiento de este tipo que aumente la compresibilidad y claridad de instrucciones de búsqueda para el usuario y para terceros, así como que haga posible una modificación o adaptación fácilmente realizable de instrucciones existentes, por ejemplo, si partiendo de un planteamiento deben elaborarse otros planteamientos similares.
Para garantizar una aplicabilidad sencilla el procedimiento según la invención debe poder representarse también adecuadamente en una superficie gráfica.
Debe ser posible de forma sencilla la definición o la extensión de nuevas funciones de tratamiento para la aplicación del idioma de búsqueda que sirve de base al procedimiento.
Según la invención esto se obtiene porque la RTN está formada por módulos RTN independientes unos de otros, presentando cada módulo RTN una gráfica de decisión interior dirigida, que está definida de forma independiente de las gráficas de decisión interiores dirigidas de otros módulos RTN, con al menos una posición de decisión a lo largo de al menos un camino de decisión, porque en un paso de selección las gráficas de decisión internas de todos los módulos RTN se recorren mediante las palabras clave y todos los caminos posibles de estas gráficas de decisión se siguen hasta que no se determina una concordancia con el respectivo camino seleccionado por la gráfica de decisión y se interrumpe el proceso o hasta que el respectivo camino seleccionado se recorre hasta el final, presentando al menos una parte del camino de decisión en al menos una de las posiciones de decisión una función de llamada recursiva, a través de la que uno de los módulos RTN se recorre como resultado de la aplicación del paso de selección sobre la totalidad de los módulos RTN, de forma que se hace posible una ejecución recursivamente imbricada y repetida a voluntad del paso de selección partiendo de al menos una de las posiciones de decisión, y que un plan de acceso para el sistema de base de datos relacional se genera de la secuencia de módulos RTN y su imbricación según resulta por la aplicación de los pasos de selección sobre todas las palabras clave de la instrucción de búsqueda, así como por un sistema de base de datos relacional que comprende al menos un sistema informático con al menos una base de datos relacional, al menos una unidad de tratamiento de datos y al menos una memoria y está programada de forma que funciona según el procedimiento según la invención mencionado anteriormente.
De esta manera se prescinde del elevado grado de estructuración aplicado hasta ahora en los idiomas de búsqueda, como por ejemplo SQL, OQL o similares, con zonas de tratamiento y sucesiones de tratamiento predeterminadas, como SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, UNION. Mediante este modelo aplicado en SQL, para formar productos cartesianos en la parte FROM de la búsqueda, suprimir determinadas líneas de los productos cartesianos en la parte WHERE, reunir según determinados campos de datos en la parte GROUP BY, suprimir determinadas líneas mediante los resultados del cálculo de grupo en la parte HAVING, ordenar con ORDER BY y reunir conjuntos según criterios determinados con UNION u otras operaciones que vinculan conjuntos, se consigue la completitud de Turing necesaria, de forma que todos los problemas que pueden resolverse referidos a los datos pueden formularse teóricamente, pero en la práctica esto fracasa debido a la elevada complejidad según la competencia de aplicación ya en el caso de tareas de dificultad media a difíciles. Se añade todavía que una gran parte de todas las búsquedas posibles pueden formularse por el experto, pero existe el problema correspondiente de que sólo pueden incorporarse con muchas complicaciones en las zonas de tratamiento dadas, ya que esto no se permite de otra forma por estructuración y secuencia predeterminada, por ejemplo, en SQL. Después de que en muchos casos, de forma condicionada por el pequeño número de zonas de tratamiento, no es posible predeterminar un camino directo del tratamiento de conjuntos, se le confía al optimizador previsto para esta finalidad evitar muchos de los peores caminos y, para la respectiva descripción aplicada, determinar el mejor camino, pero comparado con el mejor camino teóricamente posible éste se desvía en ocasiones fuertemente de éste. Otras formas de realización de la invención se reproducen en las reivindicaciones dependientes. A continuación se explica en detalle la invención mediante los ejemplos de realización mostrados en las figuras. En este caso se muestra:
Fig. 1 muestra una representación esquemática de una RTN en SQL según el estado de
la técnica;
Fig. 2 muestra una representación esquemática de los módulos RTN que sirven de base
para una forma de realización del procedimiento según la invención;
Fig. 3, 4, 5 muestran una respectiva representación esquemática de un módulo RTN
según el procedimiento según la invención;
Fig. 6 muestra una representación esquemática de los módulos RTN que sirven de base
para otra forma de realización del procedimiento según la invención;
Fig. 7 muestra la representación esquemática de la imbricación de módulos RTN según
una forma de realización del procedimiento según la invención;
Fig. 8, 9, 10, 11, 12, 13 muestran una respectiva representación esquemática de las
atribuciones de conjuntos de entrada de diferentes imbricaciones o formas especiales de
módulos RTN, que llegan a la aplicación en formas de realización del procedimiento
según la invención; Fig. 14, 15, 16, 17 muestran una respectiva representación esquemática de variantes de agrupación de módulos RTN según se aplican en formas de realización del procedimiento según la invención. Dos ejemplos muy sencillos deben clarificar esto: Se da una tabla “Empresas” que contiene al menos los campos “Nombre de empresa” y
“Lugar”. Ejemplo1:
Primera pregunta: todas las empresas de lugares con más de 100 empresas
Una posibilidad de escritura en SQL (estado de la técnica):
SELECT empresas . *
FROM empresas, (SELECT empresas . lugar FROM empresas GROUP BY empresas . lugar HAVING (Count (*) > 100) ) AS empresas de lugares con más de 100
WHERE (empresas . lugar = empresas de lugares con más de 100 . lugar)
Se toma el conjunto de empresas, se reúne según lugar y sólo se marcan los lugares en los que hay más de 100 empresas. Este conjunto se vincula de forma cartesiana con el conjunto de empresas y sólo se toman las empresas cuyo campo lugar debe encontrarse también en el conjunto con el lugar con más de 100 empresas … Desventaja: el conjunto de lugares debe memorizarse y el conjunto de empresas debe recorrerse dos veces y debe compararse una vez con los lugares.
UNA posibilidad de la descripción con módulos RTN flexibles según el procedimiento según la invención:
SELECT empresas . * WHERE (empresas . lugar . WHERE ((empresas . Count]>100))
Se toma el conjunto de empresas, para cada empresa se mira para el lugar si en este lugar pueden encontrarse más de 100 empresas. Las empresas encontradas se emiten. El procesamiento se formula naturalmente esencialmente mejor por el optimizador.
Ejemplo 2:
Segunda pregunta: de cada lugar 100 empresas cualesquiera
UNA posibilidad de la descripción en SQL (estado de la técnica):
SELECT *
FROM (
SELECT empresas . *, Row_Numberate () OVER empresas . lugar AS empresas del lugar
FROM empresas
)
WHERE (empresas del lugar <= 100)
Numerar el conjunto de empresas, iniciar cada lugar nuevamente en 1, memorizar en un conjunto y tomar de esta conjunto todos los elementos cuyo numeración es <= 100.
UNA posibilidad de descripción con módulos RTN flexibles según el procedimiento según la invención:
SELECT empresas . *
BREAKON empresas . lugar
FIRST #100
Se toma el conjunto de empresas de la tabla correspondiente, BREAKON señala que las funciones siguientes se aplican a cada empresa del mismo lugar, así las PRIMERAS 100 empresas de cada lugar.
La fig. 1 muestra una gráfica de decisión simplificada según el estado de la técnica para la instrucción SELECT del idioma de búsqueda SQL, de la que puede verse esquemática la estructura de la RTN para SQL.
Cada instrucción de búsqueda se forma a partir de una sucesión predeterminada fija de zonas de tratamiento 40, 41, 42, 43, 44, 45 dispuestas sucesivamente obligatoriamente con palabras clave 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, pudiéndose darse una selección bien determinada de palabras clave en las posiciones de decisión 10, 11, 12, 13 – mostradas por la sencillez sólo para las palabras clave 24, 26, 28, 30 preliminares de las zonas de tratamiento 42, 43, 44 y 45 – para obtener el resultado de búsqueda deseado. Una agrupación determinada de palabras claves forma respectivamente una zona de tratamiento, por ejemplo, FROM (palabras clave 22, 23), WHERE (palabras clave 24, 25), GROUP BY (palabras clave 26, 27), etc., ejecutando cada zona de tratamiento una función de tratamiento de conjuntos a ella asignada, por ejemplo, FROM forma productos cartesianos con la posibilidad de JOINs especiales.
Después de cada palabra clave 20, 22, 24, 26, 28, 30 preliminar pueden seguir otras palabras clave que no están mostradas en la fig. 1 por motivos de claridad. Así después de la palabra clave 24 “WHERE” pueden seguir directamente, por ejemplo, las palabras clave “(“, “NOT”, un nombre de tablas, un nombre de campos de la tabla, funciones definidas, etc. Una SUBSELECT, es decir, la aplicación recursiva de la RTN siempre comenzando con SELECT (palabra clave 20), por ejemplo, mediante“(“, puede aparecer en posiciones de decisión predeterminadas. Por consiguiente en estos puntos puede introducirse respectivamente de forma recursiva siempre la RTN global como una unidad.
A pesar de la pluralidad de palabras clave posibles seleccionables, para SQL y los idiomas de búsqueda afines existe una limitación relativamente fuerte y hay una serie de búsquedas que sólo pueden reescribirse de forma muy complicada y larga con las zonas de tratamiento predeterminadas en la secuencia de tratamiento predeterminada y por ello de esta descripción se genera un plan de acceso más lento y complejo que lo realmente necesario.
La fig. 2 muestra mediante un ejemplo una representación esquemática de la RTN que sirve de base para el procedimiento según la invención, estando formada la RTN de módulos RTN 50, 51, 52 53, 54, 55 independientes unos de otros, cuyo número puede ampliarse a voluntad. Como ejemplo en la fig. 2 se muestran módulos RTN simplificados que presentan respectivamente sólo un camino de decisión 79 único con un respectivo número de posiciones de decisión.
Cada módulo RTN 50, 51, 52, 53, 54, 55 accede a conjuntos de datos de entrada de un conjunto de entrada de tratamiento a él atribuida con una secuencia definida de elementos de conjunto, los conduce a un tratamiento y proporciona un nuevo conjunto de salida de tratamiento con al menos un conjunto de datos de salida igualmente con una secuencia definida de elementos de conjunto, no desviándose obligatoriamente en cuanto al valor los conjuntos de datos de salida de los conjuntos de datos de entrada. En este caso el tratamiento se fundamente respectivamente en palabras clave en las posiciones de decisión, como la palabra clave 61 “WHERE”, la palabra clave 62 “ORDERBY”, la palabra clave 63 “FINDFIRST”, palabra clave 64 “=”, la palabra clava 66 “#” y la palabra clave 67, por ejemplo, un nombre de campos de la tabla presente en la base de datos relacional.
Las posiciones de decisión 70 señaladas en los módulos RTN 50, 51, 52, 53, 54 cumplen una función especial, es decir que un módulo RTN cualquiera de la selección global de todos los módulos RTN a disposición se introduce respectivamente en este punto y se recorre en el tratamiento.
Ejemplo 3:
FROM empresas
WHERE empresas . lugar = “Viena”
ORDERBY empresas . número de trabajadores
FINDFIRST (empresas . facturación año anterior > 20.000) # 100
FROM pone a disposición el conjunto de datos que en el ejemplo concreto es la tabla EMPRESAS.
WHERE (palabra clave 61 en el módulo RTN 50) toma todos los elementos de conjunto del conjunto de datos de entrada EMPRESAS, no ejerciendo esta función de tratamiento una influencia sobre la secuencia tanto en la entrada de datos como también en la salida de datos e incluso tampoco influyendo en esta secuencia. Según puede verse de la fig. 2, después de WHERE en el módulo RTN 50 sigue obligatoriamente la posición de decisión 70 designada con “*”, en la que se introduce y recorre un módulo RTN cualquiera de la totalidad de todos los módulos RTN definidos.
Como conjunto de datos de salida WHERE suministra, conforme a la definición realizada aquí para este módulo RTN, a partir del conjunto de datos de entrada sólo aquellos juegos de datos para los que el módulo RTN introducido en la posición de decisión 70 produce después de su recorrido en su conjunto de valores suministrados por cada juego de datos al menos un valor distinto de 0 y distinto de CERO, ya que cada módulo RTN emite un conjunto con al menos un valor.
De forma razonable podría agregarse, por ejemplo, al módulo RTN 50 otra posición de decisión opcional o podría definirse un módulo separado para definir que como criterio de selección en el conjunto de valores de la posición de decisión 70 se define que al menos un valor deber ser distinto de 0 y distinto de CERO o justo que un valor no debe ser igual a 0 o CERO.
Según el ejemplo 3 en la posición de decisión 70 se introduce el módulo RTN 53, en el que en ambas posiciones de decisión 70 “*” se introduce otro respectivo módulo RTN (empleando los módulos RTN de la fig. 2).
En el ejemplo 3 el módulo RTN 50 sólo suministra aquellas empresas que presentan en el campo de tabla LUGAR “Viena”.
ORDERBY (palabra clave 62 en el módulo RTN 51)
Los elementos del conjunto de entrada de tratamiento se ordenan según el valor o conjunto de valores producido en la posición de decisión 70 por cada elemento y el módulo RTN suministra como conjunto de salida de tratamiento los elementos del conjunto de entrada de tratamiento en la secuencia ordenada correspondiente. En el ejemplo 3 se realiza una ordenación según el número de trabajadores.
FINDFIRST (palabra clave 63 en el módulo RTN 52)
Este módulo RTN toma el conjunto de datos de entrada en la secuencia ordenada, según se suministra por ejemplo del módulo RTN de ORDERBY, y teniendo en cuenta esta secuencia encuentra solo aquellos elementos para los que el módulo RTN introducido en la posición de decisión 70 tras su recorrido en su conjunto de valor suministrado para cada elemento producen al menos un valor distinto de 0 o distinto de CERO, y emite de nuevo estos elementos encontrados conforme a la secuencia de ordenación de entrada.
# (palabra clave 66 en el módulo RTN 54)
Para el ejemplo 3 el módulo RTN 52 (“FINDFIRST”) está introducido en el módulo RTN 54 que representa un módulo RTN de orden superior, en el lugar de la primera posición de decisión
70. El módulo RTN 54 indica en esta definición que todos los elementos que se suministran como resultado del recorrido de la primera posición de decisión 70 se limitan al número de elementos que están indicados en la segunda posición de decisión 70.
La aplicación del módulo RTN 54 (“#”) imbricado en sí en el módulo RTN 54 (“#”) es admisible según la definición, según puede verse en el ejemplo 4: Ejemplo 4:
(5, 3, 2, 9) #3 #2
Como resultado del paso #3 se toman los tres primeros elementos, por consiguiente se suministran (5, 3, 2) como conjunto de datos de salida, que es el conjunto de datos de entrada para #2. Como resultado de #2 se obtiene (5, 3). = (palabra clave 64 en el módulo RTN 53)
En el ejemplo el módulo RTN 53 concreto se inserta en el módulo RTN 50 según la palabra clave 61 (WHERE) en la posición de decisión 70, es decir WHERE * = *
Nombre de campos de la tabla (palabra clave 67 en el módulo RTN 55)
LUGAR, NÚMERO DE TRABAJADORES, FACTURACIÓN DEL AÑO ANTERIOR son nombres de campos de la tabla que pueden estar en cada posición de decisión 70.
Según se ha mencionado ya, cada módulo RTN (así también en la fig. 2: 50, 51, 52, 53, 54, 55) presentan en una gráfica de decisión interior dirigida con al menos un camino de decisión
79. En el ejemplo según la fig. 2, en cada módulo RTN 50, 51, 52, 53, 54, 55 discurre respectivamente justo un camino de decisión sin ramificaciones, siguiéndose en las representaciones reproducidas en la fig. 2 comenzando desde arriba la gráfica de decisión hacia abajo.
Cada gráfica de decisión de los módulos RTN 50, 51, 52, 53, 54, 55 está definida independientemente de las gráficas de decisión interiores dirigidas de los otros módulos RTN 50, 51, 52, 53, 54, 55 y puede presentar una o varias posiciones de decisión 70 a lo largo del camino de decisión.
A continuación se describen otros módulos RTN posibles que necesitan parcialmente también gráficas de decisión más complicadas.
La fig. 3 muestra el modulo RTN 150 que mediante un conjunto de entrada de tratamiento emite un conjunto de salida de tratamiento con la peculiaridad de que este conjunto de salida de tratamiento se calcula separadamente para cada elemento de un conjunto de orden superior. En la posición de decisión 70 puede insertarse un módulo RTN cualquiera. Mediante la gráfica de decisión descrita, entre los paréntesis cuadrados 161, 162, según se indica por las flechas, puede recorrerse esta posición de forma repetida a voluntad, introduciéndose en cada paso uno de la selección global de módulos RTN. Conjunto de orden superior significa en este contexto el conjunto de entrada de tratamiento del módulo RTN de orden superior, en el que este módulo RTN se introduce en la posición de decisión 70.
Ejemplo 5:
[
SELECT EMPRESAS . NOMBRE DE EMPRESAS
WHERE [
DEPARTAMENTOS . COUNT
WHERE (EMPRESAS . EMPRESA ID = DEPARTAMENTOS . Nº EMPRESA)
] > 3
]
Suministra para cada empresa, ya que aquí el conjunto de todas las empresas representa el conjunto de orden superior, a partir de todo el conjunto de departamentos sólo aquellos departamentos que están asignados a cada empresa y los cuenta. Se toman sólo aquellas empresas que presentan más de tres departamentos.
La instrucción según el ejemplo 5 puede subdividirse de la siguiente manera en componentes.
Aplicación del componente RTN 150: [ * (repetición)] produce para este ejemplo [ * * ],
*….. SELECT*1
*…..WHERE*1
Los “paréntesis cuadrado” toman según esta definición el conjunto contenido en ellos y el elemento del conjunto de entrada de tratamiento que acaba de situarse en el tratamiento y se recorren los componentes RTN insertados a lo largo del camino de decisión del módulo RTN 150, y con la misma frecuencia que hay elementos del conjunto de entrada de tratamiento. Después de que este primer módulo RTN 150 no tiene un módulo RTN de orden superior se adopta un conjunto de entrada de tratamiento virtual con un elemento, de forma que este primer módulo RTN se recorre justo una vez.
SELECT *1 tiene como conjunto de entrada de tratamiento EMPRESAS ya que éstas se mencionan como parámetros de SELECT.
WHERE *1 tiene como conjunto de entrada de tratamiento EMPRESAS, ya que por compatibilidad al estándar SQL las funciones de visualización, según representa SELECT, siempre pueden ejecutarse al final pero pueden encabezarse preferentemente en la instrucción.
WHERE *1 se corresponde con el módulo RTN 50, esperando la posición de decisión 70 un módulo RTN de la selección global, cuyo conjunto de valores se calcula para cada elemento del conjunto de entrada de tratamiento, es decir, EMPRESAS. En la posición de decisión 70 se inserta en el caso concreto (ejemplo 5) el módulo RTN siguiente:
*2 (posición de decisión 70) > (texto) *2 (posición de decisión 70)
La primera estrella *2 (posición de decisión 70) introduce de nuevo el módulo RTN 150, que por su lado se compone de nuevo de [ *3 ], es decir primera estrella compuesta *3 =
*3 DEPARTAMENTOS . COUNT y WHERE (EMPRESAS . EMPRESA ID = Departamentos . Nº EMPRESA) como segunda estrella compuesta *3. La segunda estrella *2 (posición de decisión 70) según el “>” contiene un conjunto de valores con un valor 3. La continuación del fraccionamiento en otros módulos RTN del ejemplo 5 se realiza análogamente. A continuación se muestran dos formas de escritura alternativas para este ejemplo que describen la misma cuestión que el ejemplo 5 con otras abstracciones y de la misma manera que el ejemplo 5 pueden optimizarse y suministrar un plan de procesamiento idéntico. Ejemplo 6:
[SELECT EMPRESAS . NOMBRE DE EMPRESAS
WHERE [
DEPARTAMENTOS
WHERE (EMPRESAS . EMPRESA ID = Departamentos . Nº EMPRESA)
] . COUNT > 3
]
En el ejemplo 6 se recorren el conjunto de los departamentos para cada empresa y se suministran los elementos con concordancia para cada empresa actual como conjunto de salida de tratamiento del módulo RTN 150 y se cuentan mediante “.COUNT” y se comparan con >3.
Ejemplo 7:
[SELECT EMPRESAS . NOMBRE DE EMPRESAS
WHERE [
DEPARTAMENTOS . WHERE (EMPRESAS . EMPRESA ID = Departamentos . Nº
EMPRESA . COUNT
] > 3
]
En el ejemplo 7 se recorre el conjunto de departamentos para cada empresa y se
suministra el número de elementos con concordancia para cada empresa actual como conjunto de salida de tratamiento del módulo RTN 150 y se comparan con >3.
Para clarificar todavía más la definición de paréntesis cuadrados se indica otro ejemplo que responde la misma cuestión que el ejemplo 1, es decir, todas las empresas de lugares con más de 100 empresas.
Ejemplo 8:
[ SELECT EMPRESAS . NOMBRE DE EMPRESAS, EMPRESAS . DIRECCIÓN WHERE [ EMPRESAS AS EMPRESAS 2 WHERE EMPRESAS . LUGAR = EMPRESAS 2 . LUGAR ] . COUNT > 100]
La particularidad de este ejemplo consiste en que al conjunto EMPRESAS se accede para cada elemento de EMPRESA, y por ello pueden contarse los mismos lugares.
Las tres formas de escritura alternativas con otras abstracciones pero el mismo plan de acceso optimizado se muestran a continuación.
Ejemplo 9:
[SELECT EMPRESAS . NOMBRE DE EMPRESASA, EMPRESAS . DIRECCIÓN
WHERE EMPRESAS . LUGAR [EMPRESAS . COUNT] > 100]
Toman todas las empresas en cuyo lugar pueden encontrarse más de 100 empresas.
Ejemplo 10:
[SELECT EMPRESAS . NOMBRE DE EMPRESASA, EMPRESAS . DIRECCIÓN
GROUPBY EMPRESAS . LUGAR
WHERE [EMPRESAS . COUNT] > 100
END GROUPBY]
Reunir mediante GROUPBY empresas . lugar para cada lugar diferente y marcar para cada elemento reunido de lugar las empresas de este lugar. Contar mediante [empresas . count] cuantas empresas están asignadas al elemento correspondiente de lugar y con WHERE tomar sólo los lugares a los que están asignadas más de 100 empresas. END GROUPBY indica que la reunión se acaba para lugar y en lugar de ello se utilizan las empresas que han sido atribuidas al lugar. Después de que los lugares con menos de 100 empresas no se han tratado posteriormente tampoco se han tratado ulteriormente sus empresas.
Ejemplo 11:
[SELECT EMPRESAS . NOMBRE DE EMPRESAS, EMPRESAS . DIRECCIÓN
BREAKON EMPRESAS . LUGAR WHERE COUNT > 100]
El módulo RTN “BREAKON” suministra para cada elemento de su conjunto de entrada de tratamiento una disociación en varias conjuntos de datos de salida en su conjunto de datos de salida, siendo reunidos los conjuntos de datos de salida producidos en el conjunto de salida de tratamiento, de forma que los respectivos elementos del conjunto de entrada de tratamiento que retornan el respectivo mismo conjunto de salida de tratamiento para el módulo RTN insertado en la posición de decisión 70 (*), se ponen en el respectivo mismo conjunto de datos de salida y el número de los conjuntos de datos de salida se corresponde con el número de los valores diferentes en la posición de decisión 70 (*) del módulo RTN BREAKON.
En el caso concreto (ejemplo 11) es la posición de decisión 70 para BREAKON “EMPRESAS . LUGAR” de donde se produce un número de conjuntos de datos que se corresponde con el número de los lugares presentes.
Otras funciones de tratamiento según BREAKON se refieren siempre a estas conjuntos de datos de salida como conjuntos de datos de salida y aplican independientemente de ello sus funciones de tratamiento a cada conjunto de datos de entrada individual y suministran por su lado de nuevo el mismo número de conjuntos de datos de salida, hasta que se alcanza un módulo RTN determinado, por ejemplo, “END BREAKON” que indica que todos los conjuntos de datos de entrada de su conjunto de entrada de tratamiento se reúnen en un conjunto de datos de salida individual en su conjunto de salida de tratamiento.
Para el ejemplo 11 anterior se escriben todas las empresas por lugar en respectivamente un conjunto propio y el WHERE siguiente se aplica a cada uno de estos conjuntos, así se cuenta por cada conjunto de datos de entrada de lugar cuantos elementos (empresas) se encuentran en el conjunto de datos de entrada actual (lugar). Si están más de 100 empresas en el conjunto de datos de entrada actual de lugar se adquiere todo el conjunto de entrada para ese lugar y a continuación se muestran todas las empresas de este conjunto de datos de salida con SELECT.
Otro ejemplo que en primer lugar muestra una función de tratamiento sobre todos los datos dentro de un conjunto de datos, luego una división en varios conjuntos de datos y luego se realiza una función de tratamiento que se aplica individualmente sobre cada conjunto de datos, luego de nuevo se ejecuta una reunión en un conjunto de datos con una última función de tratamiento que hace referencia al conjunto de datos global. En comparación a SQL, la formulación más corta y concreta se apoya en el planteamiento que aparece inmediatamente, como también se mejora el procesamiento ya que se describen muy concretamente por módulos RTN individuales lo que le gustaría al usuario para un resultado y no debe trabajarse con tablas temporales.
Ejemplo 12
[SELECT EMPRESAS . NOMBRE DE EMPRESAS, EMPRESAS . DIRECCIÓN (0) WHERE EMPRESAS . DELETED = FALSE (1)
BREAKON EMPRESAS . LUGAR (2)
WHERE COUNT > 100 (3)
END BREAKON (4)
MAX EMPRESAS . FACTURACION 2006 # 1000 (5)
]
(1)
del conjunto global de empresas se seleccionan sólo aquellas empresas que no se borran
(2)
memorizar el conjunto de las empresas no borradas según el mismo lugar en respectivamente los mismos conjuntos de datos
(3)
contar cada conjunto de datos y utilizar posteriormente sólo aquellos en los que se encuentran más de 100 elementos. Ahora están presentes aquellos conjuntos de datos, en lugares concretos, en los que están presentes más de 100 empresas.
(4)
Escribir juntos de nuevo todos los conjuntos de datos individuales en UN conjunto de datos significa escribir todas las firmas de todos los lugares con más de 100 empresas en un conjunto de datos.
(5)
Seleccionar de todas estas empresas sólo aquellas que pertenecen en conjunto a las 1000 mejores empresas en facturación.
(0)
Emisión de los campos de tablas definidos en SELECT.
La fig. 4 muestra el módulo RTN 151 con las palabras clave 163 “ALL” y 164 “ANY” que como ya se indica anteriormente se definen como criterio de selección en el conjunto de valores del módulo RTN, que se emplea en la posición de decisión 70, de forma que al menos un valor debe ser diferente de cero y diferente de CERO (ANY) o justo ningún valor puede ser igual a 0 o CERO (ALL). Pero el módulo RTN 151 ofrece la posibilidad de decir que debe ser JUSTO (palabra clave 167), AL MENOS (palabra clave 166) o COMO MÁXIMO (palabra clave 167) un número determinado de valores (palabra clave 168) diferente de cero o CERO (en el caso de “ANY”), o (en el caso de “ALL”) todos los valores hasta justo (palabra clave 167) / al menos (palabra clave 166) / como máximo (palabra clave 165) deben ser un número (palabra clave 168) diferente de cero o CERO.
La flexibilidad en la aplicación de los módulos RTN puede mostrarse como sigue mediante el módulo RTN 151 descrito a continuación. ANY significa en la definición base que al menos un valor del conjunto de valores debe valer para el elemento actual del conjunto de entrada de tratamiento, así debe ser diferente de cero y diferente de CERO. Pero esta función puede ampliarse según las necesidades mientras que se permite una modificación correspondiente a través de uno o varios otros módulos RTN insertados o de orden superior.
Ejemplo 13: EMPRESAS . WHERE ANY [PERSONAS DE CONTACTO WHERE (EMPRESAS . EMPRESA ID = PERSONAS DE CONTACTO . Nº EMPRESA)] . Sexo = “HOMBRE”
ANY significa que al menos un valor de la función de tratamiento, en el ejemplo 13 en el punto WHERE, al menos un valor debe ser diferente de cero, suministra así todas las empresas en las que al menos existe una persona de contacto masculina.
Ejemplo 14:
EMPRESAS . WHERE ANY (<= 3) [PERSONAS DE CONTACTO WHERE (EMPRESAS . EMPRESA ID = PERSONAS DE CONTACTO . Nº EMPRESA] . Sexo = “HOMBRE”
ANY con la ampliación (<=3) significa que como máximo TRES valores de la función de tratamiento, en el ejemplo 14 en el punto WHERE, deben tener al menos un valor distinto de cero, así suministra todas las empresas en las que existen como máximo TRES personas de contacto masculinas.
Ejemplo 15:
EMPRESAS . WHERE ALL [PERSONAS DE CONTACTO WHERE (EMPRESAS . EMPRESA ID = PERSONAS DE CONTACTO . Nº EMPRESA] . Sexo = “HOMBRE”
ALL significa que todos los valores de la función de tratamiento, en el ejemplo 15 en el lugar WHERE, no deben tener justo un valor distinto de cero, así suministran todas las empresas en las que SÓLO existen personas de contacto masculinas.
Ejemplo 16:
EMPRESAS . WHERE ALL (<= 3) [PERSONAS DE CONTACTO WHERE (EMPRESAS . EMPRESA ID = PERSONAS DE CONTACTO . Nº EMPRESA] . Sexo = “HOMBRE”
ALL con la ampliación (<=3) significa que todos hasta un máximo de tres valores de la función de tratamiento, en el ejemplo 16 en el punto WHERE, deben tener un valor distinto de cero, así suministran todas las empresas en las que COMO MÁXIMO existen TRES personas de contacto femeninas.
La fig. 5 muestra el módulo RTN 152 que utiliza una condición IF THEN ELSE para el cálculo del conjunto de datos de salida. Ejemplo 17:
SELECT EMPRESAS . NOMBRE DE EMPRESAS, EMPRESAS . LUGAR IF EMPRESAS . Nº TRABAJADORES < 100 THEN WHERE EMPRESAS . FACTURACIÓN 2006 >
IF EMPRESAS . CP = 1010 THEN 500.000 ELSE 300.000 ELSE MAX EMPRESAS . FACTURACIÓN 2006 #1000 END IF ORDERBY EMPRESAS . NOMBRE DE EMPRESAS
El planteamiento para este ejemplo es como sigue: indicar todas las empresas, siendo otros criterios válidos para empresas con menos de 100 trabajadores que para empresas con justo o más de 100 trabajadores. Si la empresa tiene menos de 100 trabajadores se compara la facturación 2006 en función del código postal (CP), en el caso de CP 1010 la facturación debe ser > 500.000, todos los otros CP se comparan con una facturación de 300.000. De las empresas con al menos 100 trabajadores se seleccionan sólo aquellas empresas cuya facturación en el año 2006 pertenecía a las 1000 facturaciones mayores de todas las empresas.
El módulo RTN 152 en la fig. 5 tiene dos posiciones de decisión 70 obligatorias y una opcional según la palabra clave 172 (ELSE), en las que se inserta un módulo RTN de la totalidad de los módulos RTN, determinándose la palabra clave 170 (IF) y la posición de decisión 70 siguiente si para el elemento actual del conjunto de entrada de tratamiento de este módulo RTN se retorna la posición de decisión 70 tras la palabra clave 171 (THEN) o la posición de decisión 70 según la palabra clave 172 (ELSE) como conjunto de salida de tratamiento de este módulo RTN. Si no se indica una palabra clave 172 (ELSE) y por ello una posición de decisión 70, se adopta como conjunto de salida de tratamiento para esta posición de decisión 70 TRUE (-1).
Las palabras clave 173 (END) y 174 (IF) son por ello opcionales ya que el final del módulo RTN 152 está definido por JUSTO UNA posición de decisión 70, pero las palabras clave pueden indicarse por motivos de visibilidad.
Si varias posiciones de decisión 70 deben introducirse sucesivamente entre las palabras clave 170 y 171 o entre las palabras clave 171 y 172 o entre las palabras clave 172 y 173 hay dos posibilidades.
La primera posibilidad consistiría en prescribir de forma fija las palabras clave 173 (END) y 174 (IF) y en permitir con ello llamadas repetidas a voluntad respectivamente en las posiciones de decisión 70 de este módulo RTN.
La segunda posibilidad aquí seleccionada consiste en el uso de un módulo RTN que comienza con al menos una palabra clave y termina con al menos una palabra clave, y entre estas palabras clave contiene justo una posición de decisión 70 llamable repetidamente a voluntad. En este módulo RTN pueden indicarse todos los módulos RTN deseables y este un módulo RTN puede insertarse en el módulo RTN 152 así como en todos los otros módulos RTN en las posiciones de decisión.
Ejemplo 18:
La fig. 6 muestra a modo de ejemplo una totalidad limitada adoptada por la sencillez, de todos los módulos RTN 250, 251, 252, 253, 254, 255 unos junto a otros.
La instrucción siguiente con 10 palabras clave sirve de base para el ejemplo 18, siendo A, B, C las palabras clave empleadas.
B A C C C B A C C A
En un paso de selección según el procedimiento según la invención se recorren las gráficas de decisión interiores de todos los módulos RTN 250 a 255 mediante las palabras clave 261 a 271, y se siguen todos los caminos 79 posibles de estas gráficas de decisión hasta que no se determina una coincidencia con el respectivo camino 79 seleccionado por la grafica de decisión y el proceso se interrumpe o se recorre el respectivo camino 79 seleccionado hasta el final.
Este proceso se compone de los diez pasos siguientes, correspondiéndose el número de los pasos con el número de palabras clave y en la fig. 7 se muestra gráficamente como resultado para el último paso 10.
Paso 1
“B” como primera palabra clave en la instrucción se compara con respectivas primeras palabras en los módulos RTN 250, 251, … y se encuentra una coincidencia en
Módulo RTN 250 • sin coincidencia con palabra clave 261 (“A”)
Módulo RTN 251 • sin coincidencia con palabra clave 263 (“A”)
Módulo RTN 252 • palabra clave 265 (“B”)
Módulo RTN 253 • palabra clave 268 (“B”)
Módulo RTN 254 • palabra clave 269 (“B”)
Módulo RTN 255 • sin coincidencia con palabra clave 271 (“C”)
Por consiguiente posteriormente solo se siguen los módulos RTN 252, 253, 254.
Produce (la posición actual esta respectivamente subrayada):
Módulo RTN 252:
B * C
Módulo RTN 253:
B * A
Módulo RTN 254:
B A *
Paso 2
Se recurre a la siguiente palabra clave – “A” – en la instrucción, buscándose la concordancia en el segundo punto actual del módulo RTN correspondiente. La posición de decisión 70 (“*”) significa en este contexto que puede emplearse en este punto cada módulo RTN en cuestión. El camino de decisión presenta por consiguiente en la posición de decisión 70 una función de llamada recursiva, a través de la que uno de los módulos RTN se recorre como resultado de la aplicación del paso de selección sobre la totalidad de los módulos RTN, de forma que se hace posible una ejecución recursivamente imbricada y repetida a voluntad del paso de selección partiendo de al menos una de las posiciones de decisión. Por consiguiente en la posición de decisión 70 debe verificarse también la posibilidad de si puede encontrarse una coincidencia por empleo de un de la totalidad de los módulos RTN.
Módulo RTN 252 • palabra clave 265 seguido de la posición de decisión 70 (“B” “*”)
Módulo RTN 253 • palabra clave 268 seguido de la posición de decisión 70 (“B” “*”)
Módulo RTN 254 • palabra clave 269 (“B” “A”)
Por ello en el módulo RTN 252 puede seleccionarse en la posición de decisión 70 de la totalidad de los módulos RTN para insertar uno de ellos, por ejemplo, se insertan los módulos RTN 250 a 255 y se determina si se produce concordancia con la instrucción, pudiéndose determinar sólo para el módulo RTN 250 y 251 la concordancia en la primera posición de decisión.
Insertado 250 en 252: B * C • BAB * C Insertado 251 en 252: B * C • BAC * C Insertado 250 en 253: B * A • BAB * A Insertado 251 en 253: B * A • BAC * A
254: B A *
Paso 3
Insertado 250 en 252: B * C • BAB * C no seguido posteriormente Insertado 251 en 252: B * C • BAC * C continuar Insertado 250 en 253: B * A • BAB * A no seguido posteriormente Insertado 251 en 253: B * A • BAC * A continuar
254: B A * insertar todos los módulos
produce: Insertado 251 en 252: B * C • BAC * C Insertado 251 en 253: B * A • BAC * A Insertado 255 en 254: B * A • BAC * A
Paso 4
Insertado 251 en 252: B A C * C insertar todos los módulos RTN Insertado 251 en 253: B A C * A insertar todos los módulos RTN Insertado 255 en 254: B A C no se continúa posteriormente por final
Produce Insertado 255 en 251 en 252: B * C • B A C C C Insertado 255 en 251 en 253: B * A • B A C C A
Paso 5:
Insertado 255 en 251 en 252: B A C C C continuar
Insertado 255 en 251 en 253: B A C C * A posible alcanzar a voluntad la posición de decisión 70 en el módulo RTN 253;
Insertado 255 en 251 en 253: B A C C A no se sigue posteriormente ya que no hay coincidencia
produce Insertado 255 en 251 en 252: B A C C C Insertado (255 en 251, seguido de 255) en 253 B A C C C A
Paso 6:
Insertado 255 en 251 en 252:
B A C C C A no se sigue posteriormente
por final
Insertado (255 en 251, seguido de 255) en 253:
B A C C C A no se sigue posteriormente
por que no hay coincidencia
Insertado (255 en 251, seguido de 255) en 253:
B A C C * A insertar todos los módulos
RTN
produce:
Insertado (255 en 251, seguido de 255, seguido de 252) en 253 B A C C C B * C A Insertado (255 en 251, seguido de 255, seguido de 253) en 253 B A C C C B * A A Insertado (255 en 251, seguido de 255, seguido de 254) en 253 B A C C C B A * A
etc.
Resultado del paso 10:
(255 en 251, seguido de 255, seguido de 255 en 254, seguido de 255) en 253
Del resultado mostrado en la fig. 7 según el paso 10 se genera un plan de acceso para el sistema de base de datos relacional conforme a la secuencia de módulos RTN y su imbricación, según se determina por la aplicación de los pasos de selección sobre todas las palabras calve de la instrucción de búsqueda, debiéndose cambiar dado el caso anteriormente la imbricación de los módulos RTN mediante la ponderación explicada más abajo para resolver correctamente las ambigüedades que se produce por las posibilidades de empleo de los módulos RTN en las posiciones de decisión 70 de otros módulos RTN.
Para reconocer siempre unívocamente el final de cada módulo RTN y los módulos RTN insertados en él es necesario que en las gráficas de decisión de los módulos RTN, al menos una posición de decisión que requiere una palabra clave (texto, símbolo, variable o número) esté antepuesta a aquellas posición de decisión en las que se ejecuta un número no predeterminado, ilimitado de llamadas sucesivas de funciones de llamada recursivas y al menos una posición de decisión que igualmente requiere una palabra clave está pospuesta.
Un ejemplo para ello es el módulo RTN “Planos” en el que la posición de decisión 70 puede seguirse repetidamente a voluntad, comenzando este módulo según la definición con una palabra clave precedente (“[“) y terminando una palabra clave pospuesta (“]”): “[“(1)*(*1)”]”
Mediante el procedimiento según la invención con todos sus grados de libertad en la formulación de instrucciones se posibilita la definición de un idioma de búsqueda que obedece a la siguiente lógica:
Se supone una pluralidad de tablas y búsquedas memorizadas en un sistema de base de datos relacional que se designan a continuación como conjuntos y se abstraen.
Según la invención existe una pluralidad de módulos RTN predeterminados, teniendo cada módulo RTN una gráfica de decisión interna que está definida independientemente de las gráficas de decisión de otros módulos RTN. Una pluralidad de módulos RTN tiene en al menos una posición de decisión una característica sintáctica que indica que en esta posición de decisión puede insertarse cualquier módulo RTN de la totalidad de los módulos RTN, el mostrado
anteriormente se corresponde con la posición de decisión 70.
Cada módulo RTN recibe de forma atribuida al menos un conjunto de entrada de tratamiento, conduce al menos una función de tratamiento que se basa en este conjunto de entrada de tratamiento y genera un conjunto de salida de tratamiento. En este caso está previsto que los conjuntos de salida de tratamiento de un módulo RTN puedan atribuirse nuevamente mediante módulos RTN introducidos en posiciones de decisión 70 en este módulo RTN antes de ejecutar la función de tratamiento.
Mediante el fraccionamiento y el empleo en módulos RTN, cada instrucción formulable puede llevarse a una misma forma de abstracción que se basa en una imbricación de módulos RTN, independientemente de la función de tratamiento asignada a los módulos RTN insertados. Mediante esta misma abstracción es válido el cálculo algebraico para todos los módulos RTN y posibilidades de imbricación. Siempre puede acordarse un número finito de grupos constructivo base, suponiéndose algunas suposiciones para cada grupo constructivo base que son válidas mientras los módulos RTN insertados o de orden superior no prescriban otras definiciones propias.
Ejemplos para grupos constructivos base posibles (fig. 14, 15, 16, 17):
Variante 1 (fig. 14): módulo RTN 601 con palabras clave 600 cualesquiera y justo una
posición de decisión 70 en la que se inserta un módulo RTN de la totalidad de módulos
RTN, prescribiendo un módulo RTN de esta variante al menos una palabra clave 600
ANTES y/o DESPUÉS de la posición de decisión 70.
Variante 2 (fig. 15): módulo RTN 602 con palabras clave 600 cualesquiera y al menos dos
o varias posiciones de decisión 70, estando todas las posiciones de decisión 70 existentes separadas respectivamente por palabras clave. Variante 3 (fig. 16): módulo RTN 603 con palabras clave 600 cualesquiera que se encuentran finalmente ANTES y DESPUÉS de la posición de decisión 70 llamable repetidamente a voluntad. Variante 4 (fig. 17): módulo RTN 604 con palabras clave 600 que se encuentran al principio y al final del camino de decisión 79 y que contiene una posición de decisión 70 seguida de una posición de decisión 70 llamable repetidamente a voluntad, pudiendo seguir después de la primera posición de decisión muchas palabras clave 600 a voluntad. Todas las posibilidades de imbricación determinadas en la formulación de una instrucción
pueden subdividirse en estas u otras variantes o sus combinaciones. Se muestran los pasos de procesamiento que se aplican respectivamente en estas variantes siempre y cuando los módulos RTN utilizados no describan otros desarrollos de procesamiento o atribuciones de conjuntos de tratamiento.
Variante 1 (fig. 8, 14)
Para aquellos módulos RTN de la totalidad de los módulos RTN que están definidos según la variante 1 representada en la fig. 14, es válida la siguiente atribución de conjuntos de tratamiento: si una posición de decisión 70 está prevista en un módulo RTN de orden superior, así aquel conjunto de entrada de tratamiento, que ha sido atribuido al módulo RTN de orden superior, se atribuye al módulo RTN posterior insertado en este punto como conjunto de entrada de tratamiento. Este proceso se ejecuta hasta el módulo RTN imbricado más interiormente de forma que el conjunto de entrada de tratamiento se traspasa siempre al respectivo módulo RTN insertado directamente en la posición de decisión 70. Siempre y cuando en el módulo RTN insertado no se inserten otros módulos RTN, ahora se aplica la función de tratamiento del módulo RTN insertado sobre el conjunto de entrada de tratamiento a él atribuido y el conjunto de salida de tratamiento suministrado en este caso del módulo RTN insertado se atribuye como nuevo conjunto de entrada de tratamiento al módulo RTN de orden superior y luego se ejecuta la función de tratamiento del módulo RTN de orden superior. El resultado de esta aplicación se emite como conjunto de salida de tratamiento del módulo RTN de orden superior. Este principio permite por consiguiente una imbricación repetida a voluntad de módulos RTN.
La fig. 8 muestra por consiguiente los módulos RTN 407, 408, 409 imbricados unos en otros conforme a
Módulo RTN 407 (palabra clave + posición de decisión 70) Módulo RTN 408 (palabra clave + posición de decisión 70) Módulo RTN 409 (palabra clave)
El conjunto de entrada de tratamiento 401 se transfiere al módulo RTN 407 y luego al módulo 408 insertado como su conjunto de entrada de tratamiento 402 y éste pasa de nuevo de forma idéntica como conjunto de entrada de tratamiento 403 al módulo 409 insertado en el módulo RTN 408.
Llegado al punto de imbricación más interior ahora se aplica la función de tratamiento del módulo RTN 409 sobre el nuevo conjunto de entrada de tratamiento 403 y el resultado obtenido en este caso se transmite como conjunto de salida de tratamiento 404 como nuevo conjunto de entrada de tratamiento al módulo RTN 408.
Ahora se aplica la función de tratamiento del módulo RTN 408 sobre el nuevo conjunto de entrada de tratamiento 404, transmitiéndose el resultado obtenido como conjunto de salida de tratamiento 405 y como nuevo conjunto de entrada de tratamiento al módulo RTN 407.
En el paso siguiente se aplica la función de tratamiento del siguiente módulo RTN exterior, así el módulo RTN 407 sobre su nuevo conjunto de entrada de tratamiento 405 y el resultado obtenido se memoriza en el conjunto de salida de tratamiento 406 del módulo RTN
407. Una definición divergente para módulos RTN individuales se menciona ya arriba pero por
consiguiente no se excluye.
Variante 2 (fig. 9, 15)
Para aquellos módulos RTN de la totalidad de los módulos RTN que se definen en la
variante 2 representada en la fig. 15 es válida la atribución de conjuntos de tratamiento siguiente: Si existe respectivamente al menos una palabra clave entre dos o varias posiciones de decisión 70 en un módulo RTN de orden superior, entonces se atribuye a los módulos RTN insertados directamente en las posiciones de decisión 70 respectivamente el mismo conjunto de entrada de tratamiento, es decir, el conjunto de entrada de tratamiento del módulo RTN de orden superior, transmitiéndose todos los conjuntos de salida de tratamiento producidos como conjuntos de entrada de tratamiento de la función de tratamiento del módulo RTN de orden superior, a menos que si en casos excepcionales de los módulos RTN exteriores y/o al menos uno de las módulos RTN insertados se utiliza otra definición. La fig. 9 muestra los módulos RTN 418 y 419 vinculados por una palabra clave 420 que
están insertados en un módulo RTN 417, esta variante se aplica, por ejemplo, en vinculaciones
aritméticas o lógicas de módulos RTN. Módulo RTN 417 (posición de decisión 70 + palabra clave 420 + posición de decisión 70) Módulo RTN 418 Módulo RTN 419 El conjunto de entrada de tratamiento 411 se transmite a un módulo RTN 417 de orden
superior y luego se transmite al módulo RTN 418 insertado como su conjunto de entrada de tratamiento 412. La función de tratamiento correspondiente del módulo RTN 418 se aplica sobre el conjunto de entrada de tratamiento 412 y se memoriza en el conjunto de salida de tratamiento
413.
El módulo RTN 419 recibe igualmente el conjunto de entrada de tratamiento 411 de su módulo 417 como conjunto de entrada de tratamiento 414. La función de tratamiento correspondiente del módulo RTN 419 se aplica a continuación sobre su conjunto de entrada de tratamiento 414 y se memoriza en el conjunto de salida de tratamiento 415.
En el paso siguiente el módulo RTN 417 de orden superior obtiene los conjuntos de salida de tratamiento 413 y 415 atribuidos como sus segundos nuevos conjuntos de entrada de tratamiento sobre los que se aplica ahora su función de tratamiento y a continuación se memoriza en el un conjunto de salida de tratamiento 416.
Una definición divergente para los módulos RTN individuales se menciona como ya más
arriba, pero por consiguiente no se excluye. Variante 3 (fig. 10, 16) Para aquellos módulos RTN de la totalidad de módulos RTN que están definidos según la
variante 3 mostrada en la fig. 16, es valida la siguiente atribución de conjuntos de tratamiento. El módulo RTN de orden superior presenta un camino de decisión que permite una consecución sucesiva repetida a voluntad de la posición de decisión 70 (véase RTN 253 en la fig. 6) Para este caso es válido que el módulo RTN insertado en primer lugar en la secuencia
asume el conjunto de entrada de tratamiento del módulo RTN de orden superior, otros módulos RTN sucesivos utilizan respectivamente el conjunto de salida de tratamiento del predecesor como conjunto de entrada de tratamiento y el último módulo RTN en la secuencia transmite su conjunto de salida de tratamiento como conjunto de entrada de tratamiento al módulo RTN de orden superior y éste ejecuta su función de tratamiento, a menos que si en casos excepcionales el módulo RTN exterior o al menos uno de los módulos RTN insertados utilice otra definición. Con ello se posibilita según se ha mencionado ya en otro punto una ejecución esencialmente más libre de búsquedas respecto a SQL.
La fig. 10 muestra los módulos RTN 428, 429, 430 sucesivos en un módulo RTN 427 de orden superior, en los que, a excepción del primer y del último módulo RTN, en la secuencia indicada de los módulos RTN, el respectivo conjunto de salida de tratamiento del módulo RTN precedente se asume como conjunto de entrada de tratamiento del módulo RTN siguiente y se aplica la función de tratamiento asignada al módulo RTN correspondiente.
Un conjunto de entrada de tratamiento 421 del módulo RTN 427 de orden superior se transmite concretamente como conjunto de entrada de tratamiento 422 del primer módulo RTN 428 en la secuencia y su función de tratamiento se aplica sobre éste, por ello se produce un conjunto de salida de tratamiento 423. Por último se transmite como conjunto de entrada de tratamiento 423 del segundo módulo RTN 429. Esto sucede de la misma forma para el módulo RTN 430 siguiente y su conjunto de entrada de tratamiento 424 determinado, cuyo conjunto de salida de tratamiento 425 se transmite como nuevo conjunto de entrada de tratamiento sobre el que se aplica la función de tratamiento del módulo RTN 427 de orden superior, como resultado se remite un conjunto de salida de tratamiento 426.
Una nueva definición posible razonable de la variante 3 se da por un módulo RTN 446 con las siguientes propiedades de atribución de conjuntos y se muestra en la fig. 12.
El módulo RTN 446 de orden superior presenta de nuevo un camino de decisión que permite una consecución sucesiva y repetida a voluntad de la posición de decisión 70.
Según la definición del módulo RTN 446 especial es válido que a todos los módulos 447, 448, 449 insertados directamente en las posiciones de decisión 70 se les atribuya el conjunto de entrada de tratamiento 441 del módulo RTN 446 de orden superior.
Como conjunto de entrada de tratamiento del módulo RTN 446 de orden superior se utilizan los conjuntos de salida de tratamiento 442, 443, 44 de todos los módulos RTN 447, 448, 449 directamente insertados y se almacena tras la aplicación de la función de tratamiento en el conjunto de salida de tratamiento 445.
Ejemplos para las posibles funciones de tratamiento de este módulo RTN 446 determinado, por ejemplo, por módulos RTN propios:
1.
Todos los elementos que se encuentra en un número determinado (al menos, justo, como máximo, …) de todos los conjuntos de salida de tratamiento de los módulos RTN insertados (ANY (*))
2.
Todos los elementos que se encuentran en cada conjunto de salida de tratamiento de los módulos RTN insertados o en todos los conjuntos de salida de tratamiento excepto al menos / como máximo / justo un número determinado (ALL (+)) Mediante un módulo RTN propio pude indicarse también todavía si los elementos, que
existen en más de un conjunto de salida de tratamiento de los módulos RTN insertados, pueden adoptarse una vez o más veces en el conjunto de salida de tratamiento del módulo RTN de orden superior.
Si no se indican módulos RTN como parámetros para la función de tratamiento de este módulo RTN 446 de orden superior se asume que todos los elementos que existen en al menos uno de los conjuntos de salida de tratamiento 442, 443, 444 de los módulos RTN 447, 448, 449 insertados deben emitirse sin duplicidades.
Variante 4 (fig. 11, 13, 17):
Para aquellos módulos RTN de la totalidad de los módulos RTN que están definidos según la variante 4 representada en la fig. 17 es válida la siguiente atribución de conjuntos de tratamiento:
El módulo RTN de orden superior (por ejemplo, módulo RTN 457 en la fig. 11 o módulo
RTN 477 en la fig. 13) presenta un camino de decisión que según una o varias palabras
clave 600 prescribe una posición de decisión 70 a la que pueden seguir a voluntad
muchas palabras clave 600 y permite una consecución sucesiva y repetida a voluntad de
la posición de decisión 70 (véase RTN 253 en la fig. 6), concluyéndose esto por al menos
una palabra clave 600.
En el caso de módulos RTN de esta variante es válido que la primera posición de decisión 70 utilice los datos del conjunto de entrada de tratamiento del módulo RTN de orden superior y mediante el conjunto de salida de tratamiento del módulo RTN insertado en la posición de decisión 70 se ejecute la función de tratamiento de este módulo RTN, para todos los otros módulos RTN que se insertan en la posición de decisión 70 llamable repetidamente es válida para la atribución de conjuntos la lógica descrita para la variante 3 (fig. 16), recibiendo de forma atribuida el primer módulo RTN de la posición de decisión 70 llamable repetidamente a voluntad el conjunto de salida de tratamiento del módulo RTN en la primera posición de decisión no repetible como su conjunto de entrada de tratamiento. Si se alcanza el final del módulo RTN de orden superior caracterizado con al menos una palabra clave 600 puede aplicarse al menos otra función de tratamiento sobre el conjunto de salida de tratamiento del último módulo RTN de la posición de decisión 70 llamable repetidamente.
En la fig. 11 se muestra un módulo RTN de la variante 4, que en la primera posición de decisión 70 del módulo RTN 457 de orden superior ha introducido el módulo RTN 458 que accede al conjunto de entrada de tratamiento 452 del módulo RTN 457 de orden superior, correspondiendo el conjunto de entrada de tratamiento 452 con el conjunto de entrada de tratamiento 451. La función de tratamiento de este módulo RTN 457 ejecuta una agrupación en primer lugar para los mismos conjuntos de valores del conjunto de salida de tratamiento 453 del módulo RTN 458 para los elementos del conjunto de entrada de tratamiento 452 con referencia a los respectivos elementos agrupados. Así el conjunto de entrada de tratamiento 451, que se transmite contiene como conjunto de entrada de tratamiento 452, contiene 17 elementos, como resultado de la función de tratamiento del módulo RTN 458 éstos se agrupan en cinco elementos diferentes en el conjunto de salida de tratamiento 453, refiriéndose cada elemento a un respectivo conjunto con los elementos individuales que se han reunido (conjunto 461, 462, 463, 464, 465). El conjunto de salida de tratamiento 453 es ahora el conjunto de entrada de tratamiento para el módulo RTN 459. Si mediante las funciones de tratamiento siguientes de los módulos RTN 459 y 460 insertados se eliminan elementos del conjunto de salida de tratamiento 454, 455, así desaparece también la referencia a los conjuntos de los elementos asignados (en fig. 11 conjunto 461 y 463). Al finalizar este módulo RTN está definido que todos los elementos de los conjuntos asignados (conjuntos 462, 464, 465) del conjunto de salida de tratamiento 455 se escriben en el conjunto de salida de tratamiento 456 del módulo RTN 457. Esta última función de tratamiento se ejecuta sólo si se llama explícitamente a través de al menos una palabra clave opcional en el módulo RTN 457 o a través de un módulo RTN subsiguiente.
En la fig. 13 se muestra un módulo RTN de la variante 4 que ha insertado en la primera posición de decisión 70 del módulo RTN 477 de orden superior el módulo RTN 478 que accede al conjunto de entrada de tratamiento 472 del módulo RTN 477 de orden superior, correspondiéndose el conjunto de entrada de tratamiento 472 con el conjunto de entrada de tratamiento 471.
La función de tratamiento de este módulo RTN 477 ejecuta en primer lugar una agrupación para los mismos conjuntos de valores del conjunto de salda de tratamiento 473 del módulo RTN 478 para los elementos del módulo de entrada de tratamiento 472, escribiéndose respectivamente los elementos a agrupar igualmente en los mismos conjuntos de datos de salida independientemente unos de otros del conjunto de salida de tratamiento 473.
Mediante la existencia de este módulo RTN 477 se asume que cada conjunto de entrada de tratamiento y cada conjunto de salida de tratamiento contiene al menos un conjunto de datos de entrada o al menos un conjunto de datos de salida, no debiendo ser idénticos número, contenido y secuencia dentro del conjunto de datos de los conjuntos de entrada de tratamiento y de los conjuntos de salida de tratamiento. Si no se describen conjuntos de datos de entrada o conjuntos de datos de salida, así cada conjunto de entrada de tratamiento y cada conjunto de salida de tratamiento contiene justo un conjunto de datos de entrada o salida que contienen todos los elementos. Todas las funciones de tratamiento se aplican independientemente unas de otra sobre todos los datos de entrada de los conjuntos de entrada de tratamiento (en fig. 13: 473, 474) de los módulos RTN correspondientes (en fig. 13: 479, 480) y correspondientemente, siempre y cuando los conjuntos de datos de salida no contienen elementos, se escriben en los conjuntos de datos de salida de los conjuntos de salida de tratamiento 474, 475 de los módulos RTN 479, 480 correspondientes. Al finalizar este módulo RTN está definido que todos los conjuntos de datos de salida del conjunto de salida de tratamiento 475 se escriban en un mismo conjunto de datos de salida del conjunto de salida de tratamiento 476 del módulo 477. Esta última función de tratamiento se ejecuta sólo si se llama explícitamente a través de al menos una palabra clave opcional en el módulo RTN 477 o a través de un módulo RTN subsiguiente.
En referencia a la fig. 13 se deduce que cada función de tratamiento de un módulo RTN se refiere a sus conjuntos de entrada de tratamiento y se ejecuta respectivamente independientemente sobre todos los elementos de todos los conjuntos de datos de entrada en su conjunto de entrada de tratamiento y se memoriza en el mismo u otros conjuntos de datos de salida de su conjunto de salida de tratamiento. A menos que un módulo RTN indique otra definición.
Los conjuntos de entrada de tratamiento se atribuyen a los módulos RTN, por consiguiente pueden estar previstos módulos RTN que describan en detalle la atribución de conjuntos de entrada de tratamiento a los módulos RTN.
Otra caracterización posible de los módulos RTN puede realizarse de la siguiente manera y se indica para ello como ejemplo que tampoco se produce una limitación respecto a esta caracterización. Adicionalmente se ven claramente aquí aproximaciones para el procesamiento por un motor.
Debe ser posible desencadenar productos cartesianos como UN conjunto (módulo RTN “FROM”), como también ir para cada elemento de un primer conjunto a un respectivo conjunto global, y por ello conseguir igualmente un producto cartesiano, calculándose en este caso los valores para cada elemento del primer conjunto en función de los criterios del segundo conjunto y siendo suministrados (módulo RTN “PLANOS”).
Módulo RTN “FROM”
Forma un producto cartesiano para el conjunto resultado del módulo RTN indicado en la posición de decisión 70 de este módulo RTN y lo pone a disposición como conjunto de entrada de tratamiento para el módulo RTN en la primera posición de decisión 70 en su módulo RTN de orden superior “Planos”.
Módulo RTN “Planos”:
Ejecuta una tras otra paso a paso, para cada elemento del conjunto de entrada de tratamiento del módulo RTN, en el que esta contenido este módulo RTN (“Planos”), todas las funciones de tratamiento de aquellos módulos RTN que se han indicado uno tras otro en este módulo RTN (“Planos”) en la posición de decisión 70, siendo el conjunto de entrada de tratamiento de cada módulo RTN el conjunto de salida de tratamiento del módulo RTN directamente precedente. La peculiaridad de este módulo RTN de la variante 3 es que esté módulo RTN no transfiere su conjunto de entrada de tratamiento como conjunto de entrada de tratamiento para el primer módulo RTN insertado en él, sino que el conjunto de entrada de tratamiento para el primer módulo RTN se define mediante el módulo RTN propio (por ejemplo, módulo de salida de tratamiento de un módulo RTN “FROM”) o de la suma de todos los conjuntos o tablas utilizados en este módulo RTN.
El módulo RTN insertado en este módulo RTN “Planos” en la primera posición de decisión 70 toma como conjunto de entrada de tratamiento aquel conjunto (tabla, búsqueda memorizada o producto cartesiano) que está definido en el módulo RTN “Planos” como conjunto de entrada de tratamiento por el conjunto de salida de tratamiento de un módulo RTN determinado (por ejemplo, “FROM”). Si no está definido un conjunto de entrada de tratamiento para los módulos RTN insertados en el módulo RTN “Planos” puede determinarse éste conjunto de entrada de tratamiento, y a través de propiedades específicas de la base de datos, por ejemplo, a través de teoría gráfica, la tabla de relaciones y todos los módulos RTN “Tablas” indicados en este módulo RTN “Planos” independientemente de la imbricación en este módulo RTN “Planos”.
Ya que en el módulo RTN “Planos” más exterior no hay un módulo RTN circundante en el que éste podría insertarse y podría utilizar su conjunto de entrada de tratamiento, se recurre a un conjunto de búsqueda abstracto con un elemento, conteniendo el elemento de forma abstracta todos los números, constantes, letras y funciones globales, etc.
Cada módulo RTN “Planos” se pone a disposición y todos los módulos RTN en él imbricados, el respectivo elemento actual con toda la información (por ejemplo, todos los campos de la tabla) de su conjunto de entrada de tratamiento, suministrado por el módulo RTN de orden superior, teniendo acceso por ello también el módulo RTN imbricado “más profundo” a esta información de todos los módulos RTN “Planos”.
El conjunto de salida de tratamiento del módulo RTN “Planos” es el conjunto de salida de tratamiento del último módulo RTN que está insertado en el módulo RTN “Planos” en la última posición de decisión 70 que puede repetirse.
Módulo RTN “SameParent de tratamiento”:
Este módulo RTN se ha mostrado en la fig. 12 y se ha explicado arriba y se ha mencionado en el grupo de las atribuciones de conjuntos “especiales” ya que su atribución de conjuntos no se corresponde con la descripción general para la variante 3.
Todos los módulos RTN insertados en este módulo RTN NO reciben como conjunto de entrada de tratamiento de forma atribuida el conjunto de salida de tratamiento del módulo RTN directamente precedente, sino de forma atribuida el conjunto de entrada de tratamiento de la burbuja de SameParent de tratamiento. El conjunto de salida de tratamiento de la burbuja de SameParent de tratamiento son todo elementos de todos los conjuntos de salida de tratamiento de todos los módulos que han sido insertados en este módulo RTN. Según módulos RTN adicionales como parámetros, el conjunto de salida de tratamiento de este módulo RTN puede contener también sólo aquellos elementos que existen en todos o en un determinado número (justo, mínimo o máximo). Mediante módulos RTN de parámetros puede determinarse también si aquellos elementos que existen varias veces en conjuntos de salida de tratamiento se almacenan varias veces en el conjunto de salida de tratamiento de este módulo o sólo deben mantenerse una vez o incluso no deben mantenerse.
Módulo RTN “Burbuja de PrevParent de tratamiento”
Todos los módulos RTN insertados en este módulo RTN reciben de forma atribuida como conjunto de entrada de tratamiento el conjunto de salida de tratamiento del módulo RTN directamente precedente, por lo que este módulo RTN se corresponde con la atribución de conjuntos según la variante 3. Este módulo RTN hace posible, por ejemplo, que en una burbuja de SameParent de tratamiento o en otros módulos RTN que permiten sólo una posición de decisión 70, UN módulo RTN pueda suministrar el conjunto de salida de tratamiento de varias
funciones de tratamiento sucesivas y ejecutadas paso por paso una tras otra.
Módulo RTN “BreakOn”
Cada función de tratamiento se ejecuta independientemente una de otra sobre todos los conjuntos de datos de entrada en los conjuntos de entrada de tratamiento. Si debe realizarse una división en varios conjuntos de datos, esto puede realizarse mediante el módulo RTN “BreakOn”, escribiéndose respectivamente elementos del conjunto de entrada de tratamiento del módulo RTN “BreakOn”, que para el conjunto de salida de tratamiento del módulo RTN insertado en la primera posición de decisión 70 suministran los mismos valores (en el caso de varios elementos en este conjunto de salida de tratamiento es razonable el uso de “ALL” o “ANY”), en el respectivo mismo conjunto de datos. Una reunión en un conjunto de datos puede determinarse, por ejemplo, mediante al menos una palabra clave (por ejemplo, “END” “BREAKON”) después de una posición de decisión 70 llamable repetidamente a voluntad en el módulo “BreakOn”.
Módulo RTN “GroupBy”
A cada elemento de los conjuntos de entrada de tratamiento y de los conjuntos de salida de tratamiento se les puede atribuir respectivamente un conjunto de valores. Para muchos planteamientos es necesario agrupar según los mismos valores y, dado el caso, recordar para cada elemento agrupado aquellos elementos que han sido agrupados junto a estos elementos. Esto se determina con el módulo RTN “GroupBy”, existiendo la posibilidad de escribir todos los elementos de los conjuntos que han sido atribuidos para cada elemento en el conjunto de salida de tratamiento del módulo RTN “GroupBy” y guardar la agrupación por consiguiente según las funciones de tratamiento realizadas. Esto puede determinarse con al menos una palabra clave (por ejemplo, “END GROUPBY”) según una posición de decisión 70 llamable repetidamente a voluntad. Si en la instrucción no se indica una palabra clave semejante, permanece integro el agrupamiento desde el primer uso para todas las funciones de tratamiento siguientes en el respectivo módulo RTN de orden superior.
Módulo RTN “OrderBy”
Los elementos de cada conjunto están dispuestos siempre en una secuencia determinada, según la optimización no toda función de tratamiento tiene en cuenta esta secuencia.
Por ello hay un módulo RTN (“OrderBy”) que ordena los elementos de todos los conjuntos de datos de entrada de su conjunto de entrada de tratamiento independientemente unos de otros según el valor indicado o el conjunto de valores y se memorizan en el conjunto de salida de tratamiento de este módulo RTN “OrderBy”.
Cada función de tratamiento de conjuntos razonable o función de cálculo de valores o también función de visualización, etc. puede definirse mediante un módulo RTN y puede ejecutarse en la búsqueda. A continuación algunos ejemplos para funciones de tratamiento de conjuntos.
Módulo RTN “WHERE”:
Este módulo RTN se utiliza para determinar para cada elemento del conjunto de entrada de tratamiento, que este elemento se escribe sólo en el conjunto de salida de tratamiento si el módulo RTN en la posición de decisión 70 de este módulo RTN “WHERE” suministra un valor diferente de cero. Definiciones para el caso de que se suministre un conjunto de valores pueden determinarse con los módulos RTN “ALL” o “ANY” en la posición de decisión 70.
Módulo RTN “MIN” / “MAX”:
Si de un conjunto de datos deben elegirse respectivamente solo aquellos elementos que se corresponden con los valores mayores o menores de un cálculo para cada elemento del conjunto global, así puede determinarse esto a través de los módulos RTN “MIN” o “MAX”. Si debe suministrarse un número determinado de los valores mayores o menores esto puede realizarse a través de un módulo RTN de orden superior (“Elementos de conjunto”) que delimita el número de elemento del conjunto de salida de tratamiento de su módulo RTN insertado en la posición de decisión 70.
Módulo RTN “Delimitando elementos de conjunto”
Si a partir del respectivo conjunto de datos actual de un conjunto de salida de tratamiento debe suministrarse sólo un número determinado de elementos partiendo de la clasificación actual, así puede utilizarse para ello un módulo RTN “Delimitando elementos de conjunto” como módulo RTN de orden superior. Este módulo RTN determina que justo el elemento X (“=”), todos los elementos hasta el elemento X (“<=”) o desde el (“>=”) de su conjunto de entrada de tratamiento se asuma en su conjunto de salida de tratamiento. Puede determinarse también una delimitación sobre un porcentaje determinado en relación al número de los elementos del conjunto de datos actual en el conjunto de entrada de tratamiento (“%”).
Módulo RTN “FIND”:
Cada función de tratamiento se ejecuta respectivamente sobre todos los conjuntos de datos de entrada de su conjunto de entrada de tratamiento para cada elemento y los elementos de los conjuntos de datos del conjunto de salida de tratamiento se utilizan como conjunto de entrada de tratamiento para el módulo RTN siguiente o de orden superior. Mediante el uso de un determinado módulo RTN (“FIND”) se determina que el conjunto de salida de tratamiento de este módulo RTN “FIND” se corresponde de forma no modificada al conjunto de entrada de tratamiento de este módulo RTN, con la peculiaridad de que aquellos elementos que se encuentran en el conjunto de salida de tratamiento del módulo RTN introducido en el módulo RTN “FIND” en la posición de decisión 70, se marcan en el conjunto de salida de tratamiento de este módulo RTN “FIND” en la secuencia suministrada. Los módulos RTN siguientes ejecutan su función de tratamiento ahora respectivamente independientemente unas de otras sobre los respectivos elementos marcados en referencia a los elementos siguientes (módulo RTN “NEXT”)
o precedentes (módulo RTN “PREV”) en lugar de sobre todo el conjunto de datos. Además, sólo se marcan los elementos encontrados en las funciones de tratamiento. Al utilizar este módulo RTN es muy razonable un uso anterior del módulo RTN “ORDERBY”. Si más tarde debe realizarse de nuevo un acceso a todo el conjunto de datos, esto puede realizarse, por ejemplo, a través de una ampliación en el módulo RTN “FIND” que permite según una palabra clave (p.e. “:”) que sigue a la primera posición de decisión 70 una llamada repetida a voluntad de la posición de decisión 70 y luego se prescribe obligatoriamente al menos una palabra clave (p.e. “END” “FIND”). Si se encuentra esta palabra clave todos los elementos marcados del conjunto de salida de tratamiento del último módulo RTN en la posición de decisión 70 llamable repetidamente a voluntad se escriben en el módulo RTN “FIND” en el conjunto de salida de tratamiento de este módulo RTN y no se marcan más elementos, por lo que las funciones de tratamiento siguientes acceden de nuevo a todos los conjuntos de datos.
Módulos RTN “NEXT” / “PREV”
Cada función de tratamiento se aplica individualmente a cada elemento en los conjuntos de datos de tratamiento. Por ello es posible, por ejemplo, comparar respectivamente elementos actuales con los valores de elementos subsiguientes (“NEXT”) o precedentes (“PREV”) y seleccionar en función de esto el respectivo elemento actual. Si el módulo RTN “NEXT” no tiene un módulo RTN de orden superior entonces de todo el conjunto se suministra respectivamente sólo el elemento X (“=”), todos los elementos hasta el elemento X (“<=”) o todos los elementos desde el elemento X (“>=”) como conjunto de salida de tratamiento de este módulo RTN.
Módulos RTN “ANY” / “ALL”
Por ejemplo, en el módulo RTN “Comparación” que compara entre sí los conjuntos de salida de tratamiento de los módulos RTN insertados en las dos posiciones de decisión 70, para aquellos casos donde al menos uno de los módulos RTN insertados retorna un conjunto de valores puede determinarse si TODOS (“ALL”) los valores retornados o al menos UNO (“ANY”) de los valores retornados debe ser valido en la comparación. En el caso de “ANY” puede determinarse también que justo (“=”), al menos (“>=”) o como máximo (“<=”) un número determinado de elementos debe ser válido para la comparación. En el caso “ALL” puede decirse que la comparación debe ser válida hasta justo (“=”) los elementos X, hasta al menos (“<=”) o hasta como máximo (“>=”).
Módulo RTN “Conjunto intermedio”:
Si el conjunto de salida de tratamiento de un módulo debe almacenarse para el tratamiento posterior con otros módulos RTN, esto puede realizarse mediante un módulo RTN de orden superior “Conjunto intermedio”. Este módulo RTN indica que su conjunto de entrada de tratamiento se memoriza temporalmente en el conjunto indicado como nombre de variable y puede utilizarse por todos los módulos RTN siguientes como conjunto de entrada de tratamiento.
Módulo RTN “DO LOOP”:
En los planteamientos consabidos puede desearse que, después de cada elemento del conjunto de entrada de tratamiento del módulo RTN que está insertado en la posición de decisión 70 después de las palabras clave “DO” “.” en el módulo RTN “DO LOOP”, sobre cuyo elemento se ha aplicado la función de tratamiento del modulo RTN insertado, el conjunto de salida de tratamiento del módulo RTN que se ha indicado en la posición de decisión 70 después de la palabra clave “UNTIL” se verifique sobre diferente de cero o CERO y en función de ello se terminan las funciones de tratamiento para este módulo RTN.
Ejemplo 19:
Toma todas las empresas de Viena y hasta que la facturación 2006 de las empresas seleccionadas esté en total por encima de 100.000 �.
SELECT DO: WHERE (Empresas . lugar = “Viena”) LOOP UNTIL SUM (empresas . facturación 2006 > 100000
Mediante un modulo RTN “Formando elemento de conjuntos” (“,”) se reúnen los dos conjuntos de salida de tratamiento de los módulos RTN insertados en las dos posiciones de decisión 70 de este módulo RTN en un conjunto de salida de tratamiento común de este módulo RTN.
Otros módulos RTN son los módulos RTN “Módulo RTN de tablas” o “Módulo RTN de campos de tablas”, que contiene los nombres de todas la tablas usadas en la base de datos relacional actual y búsquedas memorizadas o campos de tablas o de búsquedas, así como los módulos RTN “Variable” “Número” “Constantes” (definen constantes válidas) “Funciones globales” (para la definición de funciones introducidas por el usuario en otro idioma, como por ejemplo, “CurrentUser()”), módulos RTN para comparaciones (“>”, “>=”, “<=” “<>”, “=”, “BETWEEN”, “IN”, …), para vinculaciones lógicas (“AND”, “OR”, “XOR”, …), para negación lógica (“NOT”), para la reunión de módulos RTN (“()”) para operaciones de cálculo (“+”, “-“, “*”, “/”, “\”, “^”, “Mod”, “SQR”, “LIM”, …). Una variante preferida representa módulos RTN para funciones de agregación (“Count”, “All”, “None”, “Sum”, “AVG”, “Percent”, …) que se ejecutan respectivamente sobre los elementos del conjunto de entrada de tratamiento a él atribuidos y retornan para cada conjunto de datos de entrada justo un valor en su conjunto de datos de salida. Los módulos RTN para la manipulación de datos o la entrega de datos son necesarios, de forma razonable pueden asumir las órdenes habituales según el estado de la técnica en esta dirección como módulos RTN, así por ejemplo, “SELECT”, “UPDATE”, “INSERT INTO” y “DELETE”.
De forma razonable pueden introducirse módulos RTN que definen las vinculaciones de unión que pueden emplearse en SQL “Left-Join”, “Right-Join”, “Inner-Join” y “Outer-Join”. Pueden darse módulos RTN que contienen funciones definidas de OLAP, T-SQL, GEO-SQL y otras ampliaciones de SQL.
Además, existe la posibilidad de definir módulos RTN convertibles, como por ejemplo, es el caso en el módulo RTN “IN”: valor IN (1, 2, 3, 4, 5) puede definirse como módulo RTN * “IN” “(“
* “)”, * “,” * es un módulo RTN propio. Este módulo RTN IN es idéntico con el valor = ANY (1, 2, 3, 4, 5) y puede convertirse en estos módulos RTN o puede tratarse como tal por el motor. Lo mismo es válido para módulos RTN posibles UNIÓN (ALL), INTERSECT, EXCLUDE, que reúnen conjuntos sin duplicaciones (UNION) o bien con duplicaciones (UNION ALL), toman sólo elementos que están presentes en ambos conjuntos indicados (INTERSECT) o sólo toman elemento que no están presentes en ninguno de los conjuntos (EXCLUDE). Estos módulos RTN pueden representarse en combinación de los módulos RTN “ANY” / “ALL” con dado el caso el módulo RTN “GroupBy” y también pueden convertirse en estos módulos RTN.
(1, 2, 3, 4) UNIÓN ALL (3, 4, 5, 6) = ANY (>=1) (1, 2, 3, 4), (3, 4, 5, 6)
>= 1 se toma como estándar y no debe indicarse.
(1, 2, 3, 4) UNIÓN ALL (3, 4, 5, 6) = GROUPBY ANY (>=1) (1, 2, 3, 4), (3, 4, 5, 6)
Puede procesarse de otra forma por el optimizador
(1, 2, 3, 4) INTERSECT (3, 4, 5, 6) = ALL (1, 2, 3, 4), (3, 4, 5, 6)
(1, 2, 3, 4) EXCLUDE (3, 4, 5, 6) = ANY (=1) (1, 2, 3, 4), (3, 4, 5, 6)
Según puede verse con ANY y ALL pueden representarse en más de dos conjuntos descripciones mucho más exactas que lo que sería posible con UNION, etc. Pero puede realizarse una definición de estos módulos RTN por motivos de compatibilidad con SQL, como también de la aplicabilidad más cómoda porque la presencia de muchos módulos RTN cualesquiera no trae desventajas.
Asimismo puede procederse en el caso de los módulos RTN “AND”, “OR” / “XOR”.
Estos módulos RTN pueden representarse en combinación de los módulos RTN “ANY” /
“ALL” con el módulo RTN “SameParent de tratamiento” y también pueden convertirse en
estos módulos RTN.
WHERE (empresas . ramo = “venta”) AND (MAX (empresas . [empleado . Count])#100) ALL empresas .// WHERE (ramo = “venta”) MAX (empleado . Count])#100 \\
WHERE (empresas . ramo = “venta”) OR (MAX (empresas . [empleado . Count])#100) ANY (>=1) empresas .// WHERE (ramo = “venta”) MAX (empleado . Count])#100 \\
WHERE (empresas . ramo = “venta”) XOR (MAX (empresas . [empleado . Count])#100) ANY (=1) empresas .// WHERE (ramo = “venta”) MAX (empleado . Count])#100 \\
WHERE (empresas . ramo = “venta”) AND (empresas . [empleado . Count])>100) puede representarse, por ejemplo, también así ya que el conjunto de salida de tratamiento del primer módulo RTN más exterior “WHERE” se transmite al segundo módulo RTN más exterior “WHERE” como conjunto de entrada de tratamiento:
WHERE (empresas . ramo = “venta”) WHERE (empresas . [empleado . Count])>100)
Otros módulos RTN convertibles son, por ejemplo, el módulo RTN “Limitando elementos de conjunto”, convertible en el módulo RTN “FOR-NEXT”, “IF-THEN-ELSE”, convertible en el módulo RTN “SELECT-CASE”, el módulo RTN “Count”, convertible en los módulos RTN “SUM” y “1”, etc.
Una búsqueda hecha de un módulo RTN, en concreto el modulo RTN Planos, que contiene un número necesario de módulos RTN en la secuencia indicada.
Según la definición hay módulos RTN que comienzan con una posición de decisión 70 en la gráfica de decisión. Para determinar en cada instrucción los módulos RTN utilizados es necesaria la aplicación de un paso de conversión antes de ejecutar los pasos de selección sobre la primera instrucción, para subdividir los módulos RTN en dos grupos genéricos y recordarse para cada módulo RTN el grupo genérico correspondiente para el tratamiento posterior.
En un paso de conversión antes de la ejecución de los pasos de selección, cada módulo RTN se asigna a un primer o a un segundo grupo genérico, en el que los módulos RTN que comienzan con texto, símbolo, variable o número se asignan al primer grupo genérico y se convierten de forma que las posiciones de decisión que contienen una función de llamada recursiva, cuyo paso de selección se aplica sobre todos los módulos RTN, se limitan de forma que el paso de selección sólo se aplica a módulos RTN del primer grupo genérico, y los módulos RTN que comienzan con una función de llamada recursiva se asignan al segundo grupo genérico y se convierten de forma que se elimina la primera posición de decisión y las posiciones de decisión que contienen una función de llamada recursiva, cuyo paso de selección se aplica a todos los módulos RTN, se limitan de forma que el paso de selección se aplica sólo a los módulos RTN del primer grupo genérico, y a todos los módulos RTN del primer grupo genérico y a aquellos módulos RTN del segundo grupo genérico que acaban con un texto, símbolo, variable
o número en la última posición de decisión, se les añade una posición de decisión ejecutable opcionalmente en la última posición en la que el paso de selección se aplica sólo a los módulos RTN del segundo grupo genérico.
Por ejemplo, la conversión para un módulo RTN sin posición de decisión 70 se muestra como primera posición de decisión en la gráfica de decisión:
*(“*”)”
se convierte en
“(“ módulo RTN del primer grupo genérico “)” [módulo RTN del segundo grupo genérico]
Por ejemplo, la conversión para un modulo RTN con posición de decisión 70 se muestra como primera posición de decisión y con posición de decisión 70 como última posición de decisión en la gráfica de decisión:
* (“+” | “-“) * se convierte en
(“+” | “-“) módulo RTN del primer grupo genérico
Por ejemplo, la conversión para un modulo RTN con posición de decisión 70 se muestra como primera posición de decisión y sin posición de decisión 70 como última posición de decisión en la gráfica de decisión:
* “IN” “(“ * ”)” se asigna al segundo grupo genérico y se convierte en “IN” “(“ módulo RTN del primer grupo genérico “)” [módulo RTN del segundo grupo
genérico]
Mediante este paso de conversión se asegura que cada instrucción indicada con algoritmos según el estado de la técnica puede fraccionarse en módulos RTN, así puede usarse toda la flexibilidad de los módulos RTN en la formulación de búsquedas.
Después de este paso de conversión comienza cada módulo con al menos un texto, al menos un símbolo, una variable o un número y cada paso de selección se aplica ahora sólo a módulos RTN del primer grupo genérico o sólo a módulos RTN del segundo grupo genérico. Además, después de este paso de conversión, los módulos RTN del segundo grupo genérico se llaman opcionalmente sólo en la última posición de decisión de una gráfica de decisión.
Especialmente por la conversión necesaria en los dos grupos genéricos se produce una imbricación que no es válida para otros tratamiento de los módulos RTN, ya que un respectivo módulo RTN del primer grupo genérico, si está presente en la instrucción, llama un módulo RTN del segundo grupo genérico, pero en cualquier caso este módulo RTN del segundo grupo genérico se lleva a un orden superior para al menos este módulo RTN que llama del primer grupo genérico. Según la definición hay módulos RTN que comienzan con una posición de decisión 70 en la gráfica de decisión. En estos módulos RTN en el caso de imbricaciones múltiples no puede indicarse unívocamente que módulos RTN son de orden superior, ya que en una posición de decisión 70 pueden insertarse todos los módulos RTN del primer o segundo grupo genérico y esto no es unívoco en imbricaciones de módulos RTN.
Ejemplo 20:
El siguiente ejemplo sencillo debe clarificar esto:
WHERE A+B/C
En el primer paso se muestra la imbricación de los módulos RTN tras aplicar los pasos de selección a la instrucción.
WHERE módulo RTN del primer grupo genérico [módulo RTN del segundo grupo genérico] A [módulo RTN del segundo grupo genérico]
+ módulo RTN del primer grupo genérico
B [módulo RTN del segundo grupo genérico] / módulo RTN del primer grupo C [módulo RTN del segundo grupo genérico]
Ahora puede verse que para el módulo RTN “+” en la primera posición de decisión 70 existen dos posibilidades de inserción siguientes para la sustitución:
*
(WHERE*) + *
*
(A) +*
Igualmente para la segunda posición de decisión 70 del módulo RTN “+”hay dos posibilidades de introducción:
* + *(B) * + *(*/*)
Para el módulo RTN “/” se producen las siguientes tres posiciones de inserción para su primera posición de decisión 70:
* (WHERE*) / * * (*+*) / * *(B) /*
Para el módulo RTN “/” se produce sólo una posibilidad de inserción para su segunda posición de decisión 70:
* / *(B)
Para descomponer siempre de forma unívoca y correcta estos casos sencillos, así como más complejos es necesario atribuir a cada módulo RTN una primera y una segunda ponderación, determinándose una tras otra según el procedimiento la ponderación para los módulos RTN individuales y su consideración para el cambio de imbricación de todos los módulos RTN encontrados en la instrucción.
A cada módulo RTN se le asigna una primera ponderación a través de la que, durante cada paso de selección o después de la aplicación de todos los pasos de selección, la imbricación de los módulos RTN se cambia a una imbricación aplicable para el tratamiento ulterior, llevándose a un orden superior los módulos RTN con una primera ponderación más elevada respectivamente a los módulos RTN originalmente de orden superior que presentan una primera ponderación comparablemente menos elevada.
La primera ponderación de todos los módulos RTN del primer grupo genérico depende de los módulos RTN directamente de orden superior del segundo grupo genérico en la instrucción, y la primera ponderación asignada a los módulos RTN del primer grupo genérico se designa por ello como ponderación inicial.
Los módulos RTN del primer grupo genérico presentan una primera ponderación inicial idéntica, preferiblemente de altura media, y estos módulos RTN el primer grupo genérico al introducirse en módulos RTN del segundo grupo genérico adoptan la primera ponderación del último reducida en un cierto valor, preferiblemente de uno
Como ejemplo el módulo RTN “Campo de tablas”, como todos los otros módulos RTN del primer grupo genérico también, recibe una primera ponderación inicial 200, el módulo RTN “Operaciones de cálculo de rayas” tiene una ponderación 17. Se escribe: “A” (Campo de tabla) “+” (Operaciones de cálculo de rayas) “B” (Campo de tabla) reciben de forma atribuida los dos módulos RTN Campo de tabla en lugar de su primera ponderación inicial original 200 la primera ponderación 17 reducida en 1 del módulo RTN Operaciones de cálculo de rayas a llevar a un orden superior, los dos módulos RTN Campo de tabla contienen así, debido a la instrucción, una ponderación 16 y ambos debido a su primera ponderación (16) menos elevada se subordinan al módulo RTN Operaciones de cálculo de rayas. (ponderación 16).
La primera ponderación para los módulos RTN del segundo grupo genérico se determina como sigue:
• Aquellos módulos RTN del segundo grupo genérico, que ejecutan su función de tratamiento sobre el conjunto de salida de tratamiento de una función de tratamiento de un módulo RTN del primer o segundo grupo genérico, forman un primer subgrupo genérico del segundo grupo genérico y reciben de forma atribuida la respectiva primera misma ponderación que no es la ponderación más elevada posible, pero es más elevada que la primera ponderación inicial de altura media de los módulos RTN del primer grupo genérico. Así, por ejemplo, la función de tratamiento módulo RTN * “UNION” *, * “#” * y * “AS” V: nombre de variable, se aplica respectivamente al conjunto de salida de tratamiento o conjuntos de salida de tratamiento de los módulos RTN directamente insertados en sus posiciones de decisión 70 del primer o segundo grupo genérico, por lo cual estos módulos RTN se asignan al primer subgrupo genérico del segundo grupo genérico y contienen una primera ponderación de 250, siendo 200 la primera ponderación de los módulos RTN del primer grupo genérico y adaptándose 255 como ponderación lo más elevada posible. Por ello se asegura que estos módulos RTN del primer subgrupo genérico del segundo grupo genérico siempre se llevan a un orden superior a los módulos RTN del primer y segundo grupo genérico, y por ello según la definición reciben de forma atribuida a su conjunto de salida de tratamiento como su conjunto de entrada de tratamiento.
Aquellos módulos RTN del segundo grupo, cuyo conjunto de salida de tratamiento se utiliza como conjunto de entrada de tratamiento para otros módulos RTN del primer o segundo grupo genérico, forman un segundo subgrupo genérico del segundo grupo genérico y reciben de forma atribuida una respectiva primera ponderación diferente que es en cada caso menor que la primera ponderación inicial de altura media de los módulos RTN del primer grupo genérico, y esta primera ponderación para los módulos RTN en cuestión individualmente describe la secuencia predeterminable del procesamiento en referencia a los módulos RTN del segundo subgrupo genérico del segundo grupo genérico, mientras que respectivamente en primer lugar los módulos RTN a ejecutar de este grupo obtienen una primera ponderación menos elevada. Así, por ejemplo, el módulo RTN “Operaciones de cálculo de puntos” recibe una primera ponderación 14, el módulo RTN “Operaciones de cálculo de rayas” una primera ponderación 17 más elevada, el módulo RTN “Comparación” una primera ponderación 50 y el módulo RTN “Combinación Bool” una primera ponderación 100. Esto se ve de la imbricación deseada de A + B * C > D AND E = F. Todas las primeras ponderaciones indicadas son menores que la primer ponderación inicial 200 de los módulos RTN del primer grupo genérico. Para excluir falsas imbricaciones en aquellos módulos RTN del primer y segundo grupo
genérico, que después de la posición de decisión 70 una posición de decisión posterior antes o después del paso de conversión como última posición de decisión 70 añadida sigue al menos otra posición de decisión, es necesario la entrega de una segunda ponderación de altura máxima para justo estos módulos RTN. Falsas imbricaciones concretas se han producido por lo demás justo, si en estos módulos RTN en una posición de decisión 70 que no es la última se inserta al menos un módulo RTN del primer subgrupo genérico del segundo grupo genérico, así un módulo RTN que presenta una ponderación más elevada que la altura de ponderación media de los módulos RTN del primer grupo genérico. Estos módulos RTN deben sobreimbricarse a pesar de su primera ponderación más elevada justo no sobre los módulos RTN con segunda ponderación máxima, hasta que estos módulos RTN con segunda ponderación máxima han llegado en el camino de decisión en la última posición de decisión 70 después del paso de conversión, introducida como opcional.
Por ello es válido que todos los módulos RTN del primer y segundo grupo genérico, en que una posición de decisión 70 que prescribe la introducción de al menos un módulo RTN del primer grupo genérico se sigue por al menos otra posición de decisión posterior, independientemente de la última posición de decisión opcional presente dado el caso después del paso de conversión y que prescribe la introducción de un módulo RTN del segundo grupo genérico, se atribuye una segunda ponderación fija con altura de ponderación lo más elevada posible.
Un ejemplo para un módulo RTN del primer grupo genérico que no recibe de forma atribuida según la definición una segunda ponderación de altura máxima es el módulo RTN “WHERE”:
“WHERE” * después del paso de conversión:
“WHERE” módulo RTN del primer grupo genérico [módulo RTN del segundo grupo genérico]
En este módulo RTN, fuera de la última posición de decisión 70 opcional añadida mediante el paso de conversión, no sigue otra posición de decisión después de la primera posición de decisión 70, la segunda ponderación para este módulo RTN puede obtener por ello, por ejemplo, el valor de la primera ponderación de este módulo RTN.
Dos ejemplos para módulos RTN, del primer grupo genérico, que reciben de forma atribuida según la definición una segunda ponderación de altura máxima, son el módulo RTN “Reuniendo módulos RTN” (paréntesis) y el módulo RTN “For-Next”:
“(“ * “)” después del paso de conversión:
“(“ módulo RTN del primer grupo genérico “)” [módulo RTN del segundo grupo genérico]
“FOR” * “:” * “NEXT” después del paso de conversión:
“FOR” módulo RTN del primer grupo genérico “:” módulo RTN del primer grupo genérico
“NEXT” [módulo RTN del segundo grupo genérico]
En estos módulos RTN sigue respectivamente adicionalmente a la última posición de decisión 70 opcional añadida por el paso de conversión respectivamente al menos una posición de decisión después de la respectiva primera posición de decisión 70, la segunda ponderación para estos módulos RTN se corresponde con ello a la altura de ponderación más elevada posible, en concreto 255.
Lo mismo es válido para los módulos RTN del segundo grupo genérico, por ejemplo, esto se muestra para el módulo RTN “Operaciones de cálculo de rayas” y para el módulo RTN “Comparación-IN”:
*(”+”|”-“) * después del paso de conversión:
(”+”|”-“) módulo RTN del primer grupo genérico
En este módulo RTN, después del paso de conversión, no sigue otra posición de decisión después de la posición de decisión 70 única, la segunda ponderación para este módulo RTN puede obtener por ello, por ejemplo, el valor de la primera ponderación de este módulo RTN.
* “IN” “(“ * “)” después del paso de conversión: “IN” módulo RTN del primer grupo genérico [módulo RTN del segundo grupo genérico]
En estos módulos RTN, adicionalmente a la ultima posición de decisión 70 opcional añadida por el paso de conversión le sigue adicionalmente una posición de decisión después de la primera posición de decisión 70, la segunda ponderación para este módulo RTN se corresponde por ello con la altura de ponderación más elevada posible, en concreto 255.
Para la determinación de la imbricación necesaria para el tratamiento posterior de uno de aquellos módulos RTN en referencia a los respectivos módulos RTN de orden superior en la instrucción por la aplicación de los pasos de selección después del paso de conversión es valido por ello que la primera ponderación de cada módulo RTN del segundo grupo genérico se compare con la primera ponderación de los respectivos módulos RTN de orden superior en la secuencia de imbricación que se determina por la instrucción de búsqueda después del paso de conversión, hasta que aquel módulo RTN con una primera ponderación más elevada o el respectivo módulo RTN de orden superior que no se encuentra en su última posición de decisión y presenta una segunda ponderación de altura de ponderación lo más elevada posible se alcanza y conforme a esta secuencia de imbricación determinada, el módulo RTN que sirve de base para la comparación se subordina directamente al módulo RTN afectado y por consiguiente se lleva a un orden superior a todos los módulos RTN saltados mediante las comparaciones y anteriormente de orden superior.
El ejemplo siguiente debe clarificar esto.
Ejemplo 21:
IF A THEN WHERE B=C # 5 ELSE WHERE D=E # 10 END IF # 20
La imbricación válida para el tratamiento posterior en este ejemplo 21 se ve de la siguiente manera:
* (1.1) # * (1.2) 1ª pond. 250, segunda pond. 250
(=1.1) IF *(2.1) THEN *(2.2) ELSE *(2.3) END IF 1ª pond. 200, segunda pond. 255 (=2.1) A 1ª pond. 200, segunda pond. 1 (=2.2) *(3.1) # *(3.2) 1ª pond. 200, segunda pond. 200
(=3.1) *(4.1) = * (4.2) 1ª pond. 50, segunda pond. 50
(=4.1) B 1ª pond. 49 (inicio 200), segunda pond. 1
(=4.2) C 1ª pond. 49 (inicio 200), segunda pond. 1
(=3.2) 5 1ª pond. 249 (inicio 200), segunda pond. 1
(=2.3) *(5.1) # * (5.2) 1ª pond. 250, segunda pond. 250
(=5.1) *(6.1) = *(6.2) 1ª pond. 50, segunda pond. 50
(=6.1) D 1ª pond. 49 (inicio 200), segunda pond. 1
(=6.2) E 1ª pond. 49 (inicio 200), segunda pond. 1
(=5.2) 10 1ª pond. 249 (inicio 200), segunda pond. 1 (=1.2) 20 1ª pond. 249 (inicio 200), segunda pond. 1
siendo 1ª pond. Primera ponderación Segunda pond. Segunda ponderación Inicio Ponderación inicial de los módulos RTN del primer grupo genérico,
indicado siempre que éste se cambia por introducción en un módulo RTN del segundo grupo genérico.
Aquí debe verse que el módulo RTN “#” con su primera ponderación 250 lleva a un orden superior sólo luego al módulo RTN “IF-THEN-ELSE-END IF” con su primera ponderación 200 y su segunda ponderación 255, después de que éste ha alcanzado su última posición de decisión.
Para la completitud de la descripción de este ejemplo 21 se muestra todavía aquí una vez la imbricación que se produce en este ejemplo por la aplicación de los pasos de selección después del paso de conversión:
IF
Llamada: módulo RTN del primer grupo genérico
A
THEN
Llamada: módulo RTN del primer grupo genérico
WHERE
Llamada: módulo RTN del primer grupo genérico
B
Llamada: módulo RTN del segundo grupo genérico
=
Llamada: módulo RTN del primer grupo genérico
C
Llamada: módulo RTN del segundo grupo genérico
#
Llamada: módulo RTN del primer grupo genérico
ELSE
Llamada: módulo RTN del primer grupo genérico
WHERE
Llamada: módulo RTN del primer grupo genérico
D
Llamada: módulo RTN del segundo grupo genérico
=
Llamada: módulo RTN del primer grupo genérico
E
Llamada: módulo RTN del segundo grupo genérico
#
Llamada: módulo RTN del primer grupo genérico
10
END IF Llamada: módulo RTN del segundo grupo genérico # Llamada: módulo RTN del primer grupo genérico 20
Los módulos RTN del primer grupo genérico se subordinan, independientemente de su ponderación propia e independientemente de su primera ponderación de los módulos RTN de orden superior, al módulo RTN directamente de orden superior del primer o segundo grupo genérico.
Ejemplo 22:
WHERE A + MIN B
Este ejemplo 22 se imbrica como sigue:
WHERE * (1.1) 1ª pond. 200, segunda pond. 200
(=1.1) *(2.1) + *(2.2) 1ª pond. 50, segunda pond. 50
(=2.1) A 1ª pond. 49 (inicial 200), segunda pond. 1
(=2.2) MIN *(3.1) 1ª pond. 49 (inicial 200), segunda pond. 200
(=3.1) B 1ª pond. 200, segunda pond. 1
Según puede verse en este ejemplo 22, se subordina el módulo RTN “B” como módulo RTN del primer grupo genérico, a pesar de su primera ponderación 200 más elevada en comparación al módulo RTN de orden superior “MIN” con su primera ponderación 49 cambiada por un módulo RTN de orden superior del segundo grupo genérico “+”.
Si en comparación de la primera ponderación de módulos RTN del segundo grupo genérico, un módulo RTN de orden superior se encuentra con la misma primera ponderación, así se procede de otra forma según el subgrupo genérico.
Para el caso de la existencia de la misma primera ponderación del módulo RTN a comparar del segundo grupo genérico con uno de los módulos RTN de orden superior igualmente del segundo grupo genérico, el módulo RTN a comparar se subordina justo luego directamente a este módulo RTN si estos módulos RTN son módulos RTN del segundo subgrupo genérico del segundo grupo genérico.
El siguiente ejemplo debe clarificar esto.
Ejemplo 23:
WHERE A MOD B / C \ D
WHERE *(1.1) 1ª pond. 200, segunda pond. 200
(=1.1) *(2.1) MOD *(2.2) 1ª pond. 14, segunda pond. 14
(=2.1) A 1ª pond. 13 (inicial 200), segunda pond. 1
(=2.2) *(3.1) / *(3.2) 1ª pond. 14, segunda pond. 14
(=3.1) B 1ª pond. 13 (inicial 200), segunda pond. 1
(=3.2) *(4.1) \ *(4.2) 1ª pond. 14, segunda pond. 14
(=4.1) C 1ª pond. 13 (inicial 200), segunda pond. 1
(=4.2) D 1ª pond. 13 (inicial 200), segunda pond. 1
En este ejemplo 23, al comparar la primera ponderación se encuentran unos con otros dos veces módulos RTN del segundo subgrupo genérico del segundo grupo genérico (“/” se encuentra con MOD“, ”/” se encuentra con “\”). Debido a la asignación al segundo subgrupo genérico del segundo grupo genérico se les subordinan respectivamente estos módulos RTN, ya que se define que el conjunto de salida de tratamiento de los módulos RTN subordinados utiliza como conjunto de entrada de tratamiento a los respectivos módulos RTN de orden superior. Mediante la utilización de un módulo RTN “Reuniendo módulos RTN”, así por la colocación de paréntesis, puede obtenerse otra primera y segunda ponderación por ello otra secuencia de cálculo.
Para el caso de la existencia de la misma primera ponderación del módulo RTN a comparar del segundo grupo genérico con uno de los módulos RTN de orden superior igualmente del segundo subgrupo genérico se compara justo luego con los módulos RTN de orden superior, si los módulos RTN son módulos RTN del primer subgrupo genérico del segundo grupo genérico.
El siguiente ejemplo debe clarificar esto.
Ejemplo 24:
Toma todos los elementos para los que vale A, de esta cantidad toma los 100 primeros, memoriza estos 100 elementos en el conjunto intermedio y toma de este conjunto intermedio los 50 primeros elementos.
WHERE A # 100 AS conjunto intermedio # 50
*(1.1) # *(1.2) 1ª pond. 250, segunda pond. 250
(=1.1) *(2.1) AS conjunto intermedio 1ª pond. 250, segunda pond. 250
(=2.1) *(3.1) # *(3.2) 1ª pond. 250, segunda pond. 250
(=3.1) WHERE *(4.1) 1ª pond. 249 (inicial 200), segunda pond. 200
(=4.1) A 1ª pond. 200, segunda pond. 1
(=3.2) 100 1ª pond. 249 (inicial 200), segunda pond. 1
(=1.2) 50 1ª pond. 249 (inicial 200), segunda pond. 1
En este ejemplo 24, al comparar la primera ponderación se encuentran unos con otros dos veces módulos RTN del primer subgrupo genérico del segundo grupo genérico (“AS” se encuentra con “#“, ”#” se encuentra con “AS”). Debido a la asignación al primer subgrupo genérico del segundo grupo genérico se les pone en serie respectivamente estos módulos RTN, ya que se define que el conjunto de salida de tratamiento de los módulos RTN subordinados se utiliza como conjunto de entrada de tratamiento de los respectivos módulos RTN de orden superior.
Es importante que los módulos RTN que se introducen directamente en una posición de decisión 70 de un módulo RTN con una segunda ponderación lo más elevada posible, sólo entonces se subordinen a los módulos RTN del segundo grupo genérico, si se desea para el módulo RTN correspondiente. Esto se realiza conforme al procedimiento porque a aquellos módulos RTN del primer grupo genérico para los que se predetermina que luego se subordinan a los módulos RTN del segundo grupo genérico, si estos módulos RTN del primer grupo genérico se insertan directamente en una de las posiciones de decisión de un módulo RTN en el que puede insertarse de la totalidad de los módulos RTN, módulo que presenta una segunda altura de ponderación lo más alta posible, se atribuye una segunda ponderación de una altura de ponderación mínima, y aquellos módulos RTN del primer grupo genérico que no presentan una segunda ponderación de altura mínima no se subordinan en estos casos a unos módulos RTN del segundo grupo genérico.
Dos ejemplos deben mostrar la imbricación para estos dos casos posibles que conduce según el procedimiento descrito arriba al resultado siguiente.
Ejemplo 25:
Primer caso posible: en la posición de decisión 70 del módulo RTN de orden superior con
la segunda ponderación de altura de ponderación lo más elevada posible se inserta un
módulo RTN del primer grupo genérico con una segunda ponderación distinta de la
ponderación de altura mínima de ponderación, en el ejemplo la palabra clave “WHERE”:
[ WHERE MAX A + B / C = D ]
La imbricación válida para el tratamiento posterior en este ejemplo 25 se ve de la siguiente manera:
[ *(1.1) ] 1ª pond. 200, segunda pond. 255 (=1.1) WHERE *(2.1) 1ª pond. 200, segunda pond. 200
(2.1) *(3.1) = *(3.2) 1ª pond. 50, segunda pond. 50 (=3.1) MAX *(4.1) 1ª pond. 49 (inicial 200), segunda pond. 200
(=4.1) *(5.1) + *(5.2) 1ª pond. 17, segunda pond. 17
(=5.1) A 1ª pond. 16 (inicial 200), segunda pond. 1
(=5.2) *(6.1) / *(6.2) 1ª pond. 14, segunda pond. 14
(=6.2) B 1ª pond. 13 (inicial 200), segunda pond. 1 (=6.3) C 1ª pond. 13 (inicial 200), segunda pond. 1 (=3.2) D 1ª pond. 49, segunda pond. 200
El módulo RTN “MAX” se subordina por eso al módulo RTN con la palabra clave “/”, ya que su módulo RTN subordinado “WHERE” no presenta una ponderación de la altura de ponderación más elevada posible. El módulo RTN “WHERE” debería subordinarse según la definición global al módulo RTN con la palabra clave “=”, pero en este caso no ocurre esto ya que su módulo RTN de orden superior “Planos” (“[]”) presenta la segunda altura de ponderación más elevada posible, pero el módulo RTN no presenta la segunda ponderación de altura de ponderación mínima.
Si debe realizarse otra imbricación de los módulos RTN, esto puede ocurrir por la utilización del módulo RTN “Reuniendo módulo RTN” (“( )”), por ejemplo,
WHERE (MAX (A + B / C) = D) del mismo valor que MAX A + B / C
Ejemplo 26:
Segundo caso posible: en la posición de decisión 70 del módulo RTN de orden superior con segunda ponderación de altura de ponderación lo más elevada posible se inserta un módulo RTN del primer grupo genérico con una segunda ponderación de ponderación mínima, en el ejemplo la palabra clave “A”:
[ A + B ]
[ *(1.1) ] 1ª pond. 200, segunda pond. 255 (=1.1) *(2.1) + *(2.2) 1ª pond. 17, segunda pond. 17
(=2.1) A 1ª pond. 16 (inicial 200), segunda pond. 1 (=2.2) B 1ª pond. 16 (inicial 200), segunda pond. 1
En este ejemplo 26 puede verse que el módulo RTN “Operaciones de cálculo de rayas” se lleva al orden superior al módulo RTN “Campo de tabla” (A), ya que el módulo RTN “A” está insertado directamente en la posición de decisión 70 del módulo RTN “Planos”, el módulo RTN A presenta una segunda ponderación de altura de ponderación mínima y el módulo RTN “Planos” directamente de orden superior presenta una segunda ponderación de altura de ponderación los más elevada posible.
Otra forma de realización de la invención existe en aquellos casos donde por la instrucción de los módulos RTN del segundo grupo genérico, después del paso de conversión una posición de decisión opcional, que prescribe a un módulo RTN del segundo grupo genérico, se inserta en justo esta posición de decisión opcional un módulo RTN del segundo grupo genérico. En estos casos el módulo RTN insertado en esta última posición de decisión se lleva a un orden superior siempre e independientemente de las primeras y segundas ponderaciones de los dos módulos RTN en cuestión respecto al módulo RTN antes de orden superior.
El siguiente ejemplo sirve para clarificar esto, e indica que el valor del campo A debe memorizarse en la variable “conjunto intermedio”, a esta variable “conjunto intermedio” se le debe adicionar el valor del campo B y luego se verifica si este valor se corresponde con el valor C y el resultado de esta comparación debe memorizarse de nuevo en la variable “resultadoIN”.
A AS conjunto intermedio + B IN (C) AS resultadoIN
Aquí el módulo RTN con la palabra clave “+”, a pesar de su primera ponderación 17 menos elevada se lleva a un orden superior respecto al módulo RTN con la palabra clave “AS” con la primera ponderación 250. Los mismo ocurre en referencia a los módulos RTN con las palabras clave “IN” y “AS”, aquí la primera ponderación del módulo RTN a llevar a un orden superior con la palabra clave “AS” de forma independiente es más elevado (250) que la primera ponderación (60) del módulo RTN con la palabra clave “IN”.
En la concordancia con los módulos RTN pueden definirse también grupos de módulos RTN como instrucciones o partes de instrucciones que, por ejemplo, contienen exclusivamente funciones de tratamiento del tipo aritmético o lógico. Para estos casos se concierta que a todos los módulos RTN del primer y segundo grupo genérico puede asignárseles al menos un módulo RTN, que puede llevarse a un orden superior si estos módulos RTN del primer y segundo grupo genérico se insertan directamente en una posición de decisión de un módulo RTN, en que puede introducirse uno de la totalidad de módulos RTN, módulo con segunda ponderación lo más elevada posible.
Los módulos RTN siguientes contienen a modo de resumen, siempre y cuando se insertan directamente en una posición de decisión 70 de un módulo RTN con segunda ponderación de altura de ponderación lo más elevada posible, asignaciones aducidas abajo.
Módulo RTN “Campo de tabla”: a este módulo RTN puede anteponérsele un módulo RTN “SELECT”, así como el módulo RTN “Tabla” que encuentra el nombre de la tabla en el que debe encontrarse este campo, así como un módulo RTN “Encadenamiento de valores” para poner en referencia entre sí los dos módulos RTN “Tabla” y “Campo de tabla”.
Ejemplo 27:
[ NOMBRE DE CAMPOS DE LA TABLA ] según
[ SELECT NOMBRE DE TABLAS . NOMBRE DE CAMPOS DE LA TABLA ]
Módulo RTN “Tabla”: a este módulo RTN puede anteponerse un módulo RTN “SELECT” para edición de todos los campos de tabla.
Ejemplo 28:
[ NOMBRE DE TABLAS ] según
[ SELECT NOMBRE DE TABLAS . * ]
Los módulos RTN que ejecutan operaciones de cálculo o de comparación: a estos módulos RTN se les puede anteponer un módulo RTN “WHERE” y, si no existe, un módulo RTN “SELECT” que, por ejemplo, edita todos los campos de todas las tablas empleadas, con respectivamente módulos RTN necesarios “Formando elementos de conjunto)” y
“Encadenamiento de valores”. Ejemplo 29:
[ A + B ] según
[ SELECT NOMBRE DE TABLAS . A, NOMBRE DE TABLAS . B
WHERE NOMBRE DE TABLAS . A + NOMBRE DE TABLAS . B ]
La tabla 1 y tabla 2 contienen un listado de posibles módulos RTN con respectivamente primera y segunda ponderación y las gráficas de decisión de los módulos RTN, comparándose al recorrer las gráficas de decisión de los módulos RTN en las posiciones de decisión las palabras clave de la instrucción de búsqueda en función de una característica correspondiente con un texto, un símbolo, una variable, un número o insertándose un módulo RTN de la totalidad de módulos RTN que se recorre por su lado de nuevo.
Ya que en cada posición de decisión 70 puede seleccionarse siempre un módulo de la totalidad de módulos RTN, en comparación a una posibilidad de selección limitada en las posiciones de decisión se hacen posibles más grados de libertad en la formulación de instrucciones de búsqueda.
Como ejemplo se muestra aquí el módulo RTN “NEXT” que retorna de su conjunto de entrada de tratamiento para cada elemento actual los siguientes elementos indicados en la posición de decisión 70 a su conjunto de salida de tratamiento. Si aquí en lugar de posición de decisión 70 se ha permitido, por ejemplo, sólo un número podría determinarse sólo el número de los siguientes elementos a suministrar para cada elemento actual, mediante la posición de decisión 70 podrían suministrarse mediante el módulo RTN “Limitando elementos de conjunto”, en cuya primera posición de decisión 70 se emplea de nuevo el módulo RTN “WHERE”, aquellos elementos que siguen al respectivo elemento actual que están en el conjunto de salida de tratamiento del módulo RTN “Limitando elementos de conjunto”. Analógicamente esto es válido para todos los módulos RTN, por ejemplo, podría buscarse con el módulo RTN “MAX” justo aquel elemento siguiente con el mayor valor indicado en la posición de decisión 70 del módulo RTN “MAX” desde el elemento actual.
El siguiente ejemplo abstraído debe clarificar esto.
Ejemplo 30:
ORDERBY A NEXT (WHERE B=C # 100) NEXT (MAX D # 20)
Clasifica el conjunto según el valor A, luego se suministra para cada elemento del conjunto justo aquellos 100 elementos para los que es válida la comparación B=C. De este conjunto se suministra luego para cada elemento el conjunto de aquellos 20 elementos siguientes cuyo valor D desde el elemento actual pertenece a los 20 mayores.
Ejemplo 31:
De la acción con el nombre acción test debe encontrarse el estado del 01.01.2006 y debe utilizarse para el cálculo posterior, en este sentido que debe mostrarse el número de días pasados hasta que ha aumentado la acción el 20% desde la fecha.
WHERE (acción . nombre = “acción test”)
ORDERBY acción . fecha
FIND WHERE (acción . fecha = 01.01.2006) AS estado 010106
SELECT NEXT (WHERE (acción . estado >= estado 010106*1.2 # 1) . fecha – acción . fecha
Descripción de la instrucción en el ejemplo 31:
Buscar la acción con el nombre “acción test”
Clasificar estas acciones según la fecha
Buscar justo el elemento en el que está la fecha de 01.01. 2006 y memorizar este elemento en la variable estado010106
Partiendo del elemento marcado como actual por “FIND” deben buscarse aquella acción cuyo estado que parte del elemento actual es un 20% mayor que el valor memorizado en la variable estado010106. #1 limita los elementos encontrados por WHERE en el primer elemento y por consiguiente suministra NEXT también sólo el valor del primer elemento para el que es válido WHERE. NEXT debe utilizarse para que los valores del elemento encontrado puedan compararse con un valor del elemento actual, en el ejemplo se calcula por ello el número de días pasados. Mostrar el resultado a través de la palabra clave SELECT.
En este contexto se utilizan, por ejemplo, las siguientes características: Posiciones de decisión indicadas en [ ] pueden ejecutarse sólo opcionalmente, las palabras esperados están indicadas bajo “”, (“palabra clave 1” | “palabra clave 2”) está para la “palabra clave 1” ODER “palabra clave 2”, * está para la posición de decisión 70 y (x) o (*x) marcan respectivamente posiciones de salto de un punto (*x) a un punto (x), V: nombre de variable o V: número está para una variable libremente elegible o un número. Los módulos RTN están indicados en la secuencia que se corresponde aproximadamente con la frecuencia del uso de estos módulos RTN en una instrucción, para que pueden encontrarse módulos RTN frecuentes y sean necesarias las menos comparaciones posibles.
Los módulos RTN se muestran tanto antes del paso de conversión (tabla 2) en los dos grupos genérico, como también después de este paso de conversión (tabla 2).
Se determina que este listado puede aumentarse en todo momento en otros módulos RTN y por ello no elevan una reivindicación sobre completitud.
Para llegar a un plan de acceso optimizable, los módulos RTN imbricados conforme a su secuencia en la instrucción y su ponderación, que se han asignado a grupos determinados de módulos RTN, deben convertirse respectivamente en elementos de interface de motor, presentando un elemento de interface de motor un juego de componentes independientes entre sí que pueden ajustarse conforme al paso de tratamiento.
5 El procedimiento según la invención es apropiado también para la organización técnica por programa de un sistema de base de datos relacional, que comprende al menos un sistema informático con al menos una base de datos relacional, al menos una unidad de tratamiento de datos y al menos un a memoria, habitualmente aproximadamente como programa informático, presentando las instrucciones correspondientes que están organizadas para la ejecución del
10 procedimiento. Un programa informático semejante puede existir en este caso en toda forma, pero en particular también como producto de programa informático en un medio legible por ordenador, como por ejemplo, Diskette, CD o DVD, presentando medios de código de programa informático, en el que respectivamente después de cargar el programa informático, un ordenador se induce
15 por el programa a ejecutar el procedimiento para la generación de un soporte de datos según la invención o señal portadora electrónica. Pero puede existir, por ejemplo, también como producto de programa informático que presenta un programa informático en una señal portadora electrónica, en el que respectivamente después de cargar el programa informático, un ordenador se induce por el programa a ejecutar el procedimiento según la invención.
Tabla 1 Módulos RTN: sin posición de decisión 70 en primer lugar antes del paso de conversión
Módulo RTN Campo de tabla 5 200/1
Módulo RTN Campo de tabla::= (“A” | “B” | “C” | “D” | “E” | “F” | “G” | “H” | “I” | “J” | “K” | “L” | “M” | “N” | “O” | “P” | “Q” | “R” | “S” | “T” | “U” | “V” | “W” | “X” | “Y” | “Z” | “Departamento ID” | “Nº empresa” | “Nombre de departamento” | “Empresa ID” | “Nombre de empresa” | “CP” | “Lugar” | “País” | “Nº de trabajadores” | “Juicio” | “Persona de contacto ID” | “Nº departamento” | “Apellido” | “Nombre” | Nº función” | “Función ID” | “Designación” | “Factura ID” | “Nº evento” | “Fecha de cálculo” | “EventoID” | “Nº persona de contacto” | “Fecha de evento” | “PAX” | “Suma de factura” | “Importe IVA 10%” | “Importe IVA 20”)
Módulo RTN Tablas 200/1
Módulo RTN Tablas::= (“ABC” | “Departamentos” | “Empresas” | “Personas de contacto” | “Funciones de personas de contacto” | “Facturas” | “Eventos”)
Módulo RTN Números / Texto
Módulo RTN Números / Texto::= V: número, texto
Módulo RTN Seleccionador de línea 200/200
Módulo RTN Seleccionador de línea::= “WHERE” *
10 Módulo RTN Valor extremo 200/200
Módulo RTN Valor extremo::= (“MIN” | “MAX”) *
Módulo RTN Planos 200/255
Módulo RTN Planos::= “[“ (1) * ](*1)] “]”
Módulo RTN Reunidor de módulos RTN 200/255
Módulo RTN Reunidor de módulos RTN::= “(“ * “)”
Módulo RTN SameParent de tratamiento 200/255
Módulo RTN SameParent de tratamiento::= “/” “/” (1) * [(*1)] “\” “\”
Módulo RTN PrevParent de tratamiento 200/255
Módulo RTN PrevParent de tratamiento::= “RESULTOF” “(“ (1) * [(*1)] “)”
15 Módulo RTN Clasificador de conjuntos 200/255
Módulo RTN Clasificador de conjuntos::= “ORDERBY” * (1) [“DEC” [“,” * (*1)] ]
Módulo RTN Grupo, sin parámetros
200/200
Módulo RTN Grupo, sin parámetros::= (“Count” | “Exists” | “None” | “All”)
Módulo RTN Grupo, 1 parámetro
200/200
Módulo RTN Grupo, 1 parámetro::= (“Sum” | ”AVG” | “Return” | “MinValue” | “MaxValue”) *
Módulo RTN All / Any 200/200
Módulo RTN All / Any::= (“ALL” | “ANY”) [“(“ [(“<” “=” | “>” “=” | “=”)] V: número “)”] *
Módulo RTN FIND 200/255
Módulo RTN FIND::= “FIND” * [“:” (1) * [(*1)] “ENDE” “FIND”]
Módulo RTN Constantes 200/200
Módulo RTN Constantes::= (“TRUE” | “FALSE” | “Date” | “Year” | “Month” | “Month Year” | “Week” | “Day” | “Time” | “Houer” | “Minute” | “HourMinute”)
Módulo RTN NEXT / PREV 200/255
Módulo RTN NEXT / PREV::= (“NEXT” | “PREV”) [“(“ [(“=” | “>” “=” | “<” “=”)] * “)”]
Módulo RTN FOR Next 200/255
Módulo RTN FOR Next::= “FOR” * “:” * “NEXT”
Módulo RTN Rel.Bool 200/200
Módulo RTN Rel.Bool::= (“FINDNEXT” | “FINDPREV”) *
Módulo RTN Rel. Selector de líneas 200/200
Módulo RTN Rel. Selector de líneas.::= (”MUSTNEXT” | “MUSTPREV”) *
Módulo RTN Do-Loop Until 200/255
Módulo RTN Do-Loop Until::= (“DO” “:” * “LOOP” “UNTIL” * | “DO” “UNTIL” * “:” * “LOOP”)
Módulo RTN Abs.Bool 200/200
Módulo RTN Abs.Bool::= (“FIRST” | “LAST”) *
10 Módulo RTN Si - luego 200/255
Módulo RTN Si -luego::= “IF” * “THEN” * [“ELSE” *] [“END IF”]
Módulo RTN Select - Case 200/255
Módulo RTN Select - case::= “SELECT” “CASE” * “:” (1) “CASE” [(“<” “>” | “=” | “>” “=” | “<” “=”)] * “:” * [(*1)] [“CASE” “ELSE” “:” *] [“END” “SELECT”]
Módulo RTN Negador Bool 200/200
Módulo RTN Negador Bool::= “NOT” *
Módulo RTN SELECT 200/200
Módulo RTN SELECT::= “SELECT” *
Módulo RTN Ruptura de grupo 200/255
Módulo RTN Ruptura de grupo::= “BREAKON” * [“:” (1) * [(*1)] “END” “BREAKON”]
15 Módulo RTN Reunidor de líneas
Módulo RTN Reunidor de líneas::= “GROUPBY” * [“:” (1) * [(*1)] “END” “GROUPBY”]
Módulo RTN Porcentaje 200/200
Módulo RTN Porcentaje::= “PERCENT” *
Módulo RTN Formador de conjunto de entrada de inicio de plano
200/200
Módulo RTN Formador de conjunto de entrada de inicio de plano::= “FROM” *
Módulos RTN: con posición de decisión 70 en primer lugar antes del paso de conversión
50
Módulo RTN Encadenamiento de valores
4/4
Módulo RTN Encadenamiento de valores::= * “.” *
Módulo RTN Operaciones de cálculo de rayas
17/17
Módulo RTN Operaciones de cálculo de rayas::= * (“”+” | “-“) *
Módulo RTN Operaciones de cálculo de puntos
14/14
Módulo RTN Operaciones de cálculo de puntos::= * (“*” | “/” | “\” | “MOD”) *
Módulo RTN Operaciones de cálculo de potencia
10/10
Módulo RTN Operaciones de cálculo de potencia::= * “^” *
5
Módulo RTN Comparación 50/50
Módulo RTN Comparación::= * (“=” | “<” | “>” | “>” “=” | “<” “=” | “<” “>”) *
Módulo RTN Combinación Bool
100/100
Módulo RTN Combinación Bool::= * (“AND” | “OR” | “XOR”) *
Módulo RTN Limitador de elementos del conjunto
250/250
Módulo RTN Limitador de elementos del conjunto::= * “#” [(“=” | “>” “=” | “<” “=” | “<” “>”)] [“%”] *
Módulo RTN Reunidor de conjuntos
250/250
Módulo RTN Reunidor de conjuntos::= * (“UNION” [“ALL”] | “INTERSECT” | “EXCLUDE”) *
10
Módulo RTN Formador de elemento de conjunto 30/30
Módulo RTN Formador de elemento de conjunto::= * “,” *
Módulo RTN Conjuntos intermedios
250/250
Módulo RTN Conjuntos intermedios::= * “AS” V: nombre de conjunto intermedio
Módulo RTN Comparación IN
60/255
Módulo RTN Comparación IN::= * “IN” “(“ * “)”
15
Tabla 2
Módulos RTN: Primer grupo genérico, después del paso de conversión
Módulo RTN Campo de tabla
200/1
Módulo RTN Campo de tabla::= (“A” | “B” | “C” | “D” | “E” | “F” | “G” | “H” | “I” | “J” | “K” | “L” | “M” | “N” | “O” | “P” | “Q” | “R” | “S” | “T” | “U” | “V” | “W” | “X” | “Y” | “Z” | “Departamento ID” | “Nº empresa” | “Nombre de departamento” | “Empresa ID” | “Nombre de empresa” | “CP” | “Lugar” | “País” | “Nº de trabajadores” | “Juicio” | “Persona de contacto ID” | “Nº departamento” | “Apellido” | “Nombre” | Nº función” | “Función ID” | “Designación” | “Factura ID” | “Nº evento” | “Fecha de cálculo” | “EventoID” | “Nº persona de contacto” | “Fecha de evento” | “PAX” | “Suma de factura” | “Importe IVA 10%” | “Importe IVA 20”) [Módulo RTN segundo grupo genérico]
Módulo RTN Tablas 200/1
Módulo RTN Tablas::= (“ABC” | “Departamentos” | “Empresas” | “Personas de contacto” | “Funciones de personas de contacto” | “Facturas” | “Eventos”) [Módulo RTN segundo grupo genérico]
Módulo RTN Números / Texto
Módulo RTN Números / Texto::= V: número, texto [Módulo RTN segundo grupo genérico]
Módulo RTN Seleccionador de línea 5 200/200
Módulo RTN Seleccionador de línea::= “WHERE” Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Valor extremo 200/200
Módulo RTN Valor extremo::= (“MIN” | “MAX”) Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Planos 200/255
Módulo RTN Planos::= “[“ (1) Módulo RTN primer grupo genérico ](*1)] “]” [Módulo RTN segundo grupo genérico]
Módulo RTN Reunidor de módulos RTN 200/255
Módulo RTN Reunidor de módulos RTN::= “(“ Módulo RTN primer grupo genérico “)” [Módulo RTN segundo grupo genérico]
Módulo RTN SameParent de tratamiento 200/255
Módulo RTN SameParent de tratamiento::= “/” “/” (1) Módulo RTN primer grupo genérico [(*1)] “\” “\” [Módulo RTN segundo grupo genérico]
15 Módulo RTN PrevParent de tratamiento 200/255
Módulo RTN PrevParent de tratamiento::= “RESULTOF” “(“ (1) Módulo RTN primer grupo genérico [(*1)] “)” [Módulo RTN segundo grupo genérico]
Módulo RTN Clasificador de conjuntos 200/255
Módulo RTN Clasificador de conjuntos::= “ORDERBY” Módulo RTN primer grupo genérico (1) [“DEC” [“,” Módulo RTN primer grupo genérico (*1)] ] [Módulo RTN segundo grupo genérico]
Módulo RTN de grupo, sin parámetros
200/200
Módulo RTN de grupo, sin parámetros::= (“Count” | “Exists” | “None” | “All”) [Módulo RTN segundo grupo genérico]
20 Módulo RTN de grupo, 1 parámetro
Módulo RTN de grupo, 1 parámetro::= (“Sum” | ”AVG” | “Return” | “MinValue” | “MaxValue”) Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN All / Any 200/200
Módulo RTN All / Any::= (“ALL” | “ANY”) [“(“ [(“<” “=” | “>” “=” | “=”)] V: número “)”] Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN FIND 200/255
Módulo RTN FIND::= “FIND” Módulo RTN primer grupo genérico [“:” (1) Módulo RTN primer grupo genérico [(*1)] “ENDE” “FIND”] [Módulo RTN segundo grupo genérico]
Módulo RTN de constantes 200/200
Módulo RTN de constantes::= (“TRUE” | “FALSE” | “Date” | “Year” | “Month” | “Month Year” | “Week” | “Day” | “Time” | “Houer” | “Minute” | “HourMinute”) [Módulo RTN segundo grupo genérico]
Módulo RTN NEXT / PREV 200/255
Módulo RTN NEXT / PREV::= (“NEXT” | “PREV”) [“(“ [(“=” | “>” “=” | “<” “=”)] Módulo RTN primer grupo genérico “)”] [Módulo RTN segundo grupo genérico]
10 Módulo RTN FOR Next 200/255
Módulo RTN FOR Next::= “FOR” Módulo RTN primer grupo genérico “:” Módulo RTN primer grupo genérico “NEXT” [Módulo RTN segundo grupo genérico]
Módulo RTN Rel.Bool 200/200
Módulo RTN Rel.Bool::= (“FINDNEXT” | “FINDPREV”) Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Rel. Selector de líneas 200/200
Módulo RTN Rel. Selector de líneas.::= (”MUSTNEXT” | “MUSTPREV”) Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Do-Loop Until
Módulo RTN Do-Loop Until::= (“DO” “:” Módulo RTN primer grupo genérico “LOOP” “UNTIL” Módulo RTN primer grupo genérico | “DO” “UNTIL” Módulo RTN primer grupo genérico “:” Módulo RTN primer grupo genérico “LOOP”) [Módulo RTN segundo grupo genérico]
Módulo RTN Abs.Bool 200/200
Módulo RTN Abs.Bool::= (“FIRST” | “LAST”) Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Si - luego 200/255
Módulo RTN Si -luego::= “IF” Módulo RTN primer grupo genérico “THEN” Módulo RTN primer grupo genérico [“ELSE” Módulo RTN primer grupo genérico] [“END IF”] [Módulo RTN segundo grupo genérico]
Módulo RTN Select - Case 200/255
Módulo RTN Select - case::= “SELECT” “CASE” Módulo RTN primer grupo genérico “:” (1) “CASE” [(“<” “>” | “=” | “>” “=” | “<” “=”)] Módulo RTN primer grupo genérico “:” Módulo RTN primer grupo genérico [(*1)] [“CASE” “ELSE” “:” Módulo RTN primer grupo genérico] [“END” “SELECT”] [Módulo RTN segundo grupo genérico]
Módulo RTN Negador Bool 200/200
Módulo RTN Negador Bool::= “NOT” Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN SELECT 200/200
Módulo RTN SELECT::= “SELECT” Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
10 Módulo RTN Ruptura de grupo 200/255
Módulo RTN Ruptura de grupo::= “BREAKON” Módulo RTN primer grupo genérico [“:” (1) Módulo RTN primer grupo genérico [(*1)] “END” “BREAKON”] [Módulo RTN segundo grupo genérico]
Módulo RTN Reunidor de líneas 200/255
Módulo RTN Reunidor de líneas::= “GROUPBY” Módulo RTN primer grupo genérico [“:” (1) Módulo RTN primer grupo genérico [(*1)] “END” “GROUPBY”] [Módulo RTN segundo grupo genérico]
Módulo RTN Porcentaje 200/255
Módulo RTN Porcentaje::= “PERCENT” Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulo RTN Formador de conjunto de entrada de inicio de plano 200/200
Módulo RTN Formador de conjunto de entrada de inicio de plano::= “FROM” Módulo RTN primer grupo genérico [Módulo RTN segundo grupo genérico]
Módulos RTN: Segundo grupo genérico, después del paso de conversión Módulo RTN Encadenamiento de valores
Módulo RTN Encadenamiento de valores::= “.” Módulo RTN primer grupo genérico
20
Módulo RTN Operaciones de cálculo de rayas 17/17
Módulo RTN Operaciones de cálculo de rayas::= * (“”+” | “-“) Módulo RTN primer grupo genérico
Módulo RTN Operaciones de cálculo de puntos
Módulo RTN Operaciones de cálculo de puntos::= * (“*” | “/” | “\” | “MOD”) Módulo RTN primer grupo genérico
Módulo RTN Operaciones de cálculo de potencia
Módulo RTN Operaciones de cálculo de potencia::= * “^” Módulo RTN primer grupo genérico
5 Módulo RTN Comparación 50/50
Módulo RTN Comparación::= * (“=” | “<” | “>” | “>” “=” | “<” “=” | “<” “>”) Módulo RTN primer grupo genérico
Módulo RTN Combinación Bool 100/100
Módulo RTN Combinación Bool::= * (“AND” | “OR” | “XOR”) Módulo RTN primer grupo genérico
Módulo RTN Limitador de elementos del conjunto 10 250/250
Módulo RTN Limitador de elementos del conjunto::= * “#” [(“=” | “>” “=” | “<” “=” | “<” “>”)] [“%”] Módulo RTN primer grupo genérico
Módulo RTN Reunidor de conjuntos 250/250
Módulo RTN Reunidor de conjuntos::= * (“UNION” [“ALL”] | “INTERSECT” | “EXCLUDE”) Módulo RTN primer grupo genérico
Módulo RTN Formador de elemento de conjunto
Módulo RTN Formador de elemento de conjunto::= * “,” Módulo RTN primer grupo genérico
Módulo RTN Conjuntos intermedios 250/250
Módulo RTN Conjuntos intermedios::= * “AS” V: nombre de conjunto intermedio [Módulo RTN segundo grupo genérico]
Módulo RTN Comparación IN 60/255
Módulo RTN Comparación IN::= * “IN” “(“ Módulo RTN primer grupo genérico “)” [Módulo RTN segundo grupo genérico]

Claims (25)

  1. REIVINDICACIONES
    1.- Procedimiento implementado por ordenador para el control de un sistema de datos relacional, en el que una instrucción de búsqueda compuesta de palabras clave se analiza en primer lugar empleando una red de transición recursiva, designada a continuación como RTN, y a las palabras clave o grupos de palabras clave se les asignan propiedades relevantes para el tratamiento en la secuencia predeterminada por la instrucción y luego se convierten en ordenes de control y, dado el caso, se optimizan, caracterizado porque la RTN está formada por módulos RTN independientes unos de otros, presentando cada módulo RTN una gráfica de decisión interior dirigida, que está definida de forma independiente de las gráficas de decisión interiores dirigidas de otros módulos RTN, con al menos una posición de decisión a lo largo de al menos un camino de decisión, porque en un paso de selección, las gráficas de decisión internas de todos los módulos RTN se recorren mediante las palabras clave y todos los caminos posibles de estas gráficas de decisión se siguen hasta que no se determina una concordancia con el respectivo camino seleccionado por la gráfica de decisión y se interrumpe el proceso o hasta que el respectivo camino seleccionado se recorre hasta el final, presentando al menos una parte de los caminos de decisión en al menos una de las posiciones de decisión una función de llamada recursiva a través de la que uno de los módulos RTN se recorre como resultado de la aplicación del paso de selección sobre la totalidad de los módulos RTN, de forma que se hace posible una ejecución recursivamente imbricada y repetida a voluntad del paso de selección partiendo de al menos una de las posiciones de decisión, y porque un plan de acceso para el sistema de base de datos relacional se genera de la secuencia de módulos RTN y su imbricación según resulta por la aplicación de los pasos de selección sobre todas las palabras clave de la instrucción de búsqueda.
  2. 2.- Procedimiento según la reivindicación 1, caracterizado porque al recorrer las gráficas de decisión de los módulos RTN en las posiciones de decisión, las palabras clave de la instrucción de búsqueda se comparan, en función de una marca correspondiente, con un texto, un símbolo, una variable o un número o se inserta un módulo RTN de la totalidad de módulos RTN, que se recorre de nuevo por su lado.
  3. 3.- Procedimiento según la reivindicación 1 ó 2, caracterizado porque en las gráficas de decisión de los módulos RTN, al menos una posición de decisión que requiere una palabra clave (texto, símbolo, variable o número) está antepuesta a aquellas posiciones de decisión en las que se ejecuta un número no predeterminado, ilimitado de llamadas sucesivas de funciones de llamada recursivas y al menos una posición de decisión que igualmente requiere una palabra clave está pospuesta.
  4. 4.- Procedimiento según una de las reivindicaciones precedentes, caracterizado porque en un paso de conversión antes de la ejecución de los pasos de selección, cada módulo RTN se asigna a un primer o a un segundo grupo genérico, los módulos RTN que comienzan con texto, símbolo, variable o número se asignan al primer grupo genérico y se convierten de forma que las posiciones de decisión que contienen una función de llamada recursiva, cuyo paso de selección se aplica sobre todos los módulos RTN, se limitan de forma que el paso de selección sólo se aplica a módulos RTN del primer grupo genérico, y los módulos RTN que comienzan con una función de llamada recursiva se asignan al segundo grupo genérico y se convierten de forma que se elimina la primera posición de decisión y las posiciones de decisión que contienen una función de llamada recursiva, cuyo paso de selección se aplica a todos los módulos RTN, se limitan de forma que el paso de selección se aplica sólo a los módulos RTN del primer grupo genérico, y a todos los módulos RTN del primer grupo genérico y a aquellos módulos RTN del segundo grupo genérico que acaban con un texto, símbolo, variable o número en la última posición de decisión, se les añade una posición de decisión ejecutable opcionalmente en la última posición en la que el paso de selección se aplica sólo a los módulos RTN del segundo grupo genérico.
  5. 5.- Procedimiento según la reivindicación 4, caracterizado porque cada módulo RTN comienza sólo con un texto, al menos un símbolo, una variable o un número y el paso de selección puede aplicarse sólo a los módulos RTN del primer grupo genérico o sólo a los módulos RTN del segundo grupo genérico.
  6. 6.- Procedimiento según la reivindicación 4 ó 5, caracterizado porque los módulos RTN del segundo grupo genérico se llaman opcionalmente sólo en la última posición de decisión de una gráfica de decisión.
  7. 7.- Procedimiento según una de las reivindicaciones precedentes, caracterizado porque después de recorrer completamente un camino de decisión como resultado de al menos una función de tratamiento definida para el módulo RTN correspondiente dependiendo al menos de un conjunto de entrada de tratamiento, cada módulo RTN retorna un conjunto de salida de tratamiento con el menor un valor incluyendo CERO, memorizándose la secuencia de los valores dentro de estos conjuntos y pudiéndose atribuir el respectivo conjunto de salida de tratamiento obtenido a cada módulo RTN como uno de los conjuntos de entrada de tratamiento.
  8. 8.- Procedimiento según una de las reivindicaciones precedentes, caracterizado porque cada módulo RTN presenta al menos una primera ponderación a través de la que, durante cada paso de selección o después de la aplicación de todos los pasos de selección, la imbricación de los módulos RTN se cambia a una imbricación aplicable para el tratamiento ulterior, llevándose a un orden superior los módulos RTN con una primera ponderación más elevada respectivamente a los módulos RTN originalmente de orden superior que presentan una primera ponderación comparablemente menos elevada.
  9. 9.-Procedimiento según la reivindicación 8, caracterizado porque la primera ponderación de todos los módulos RTN del primer grupo genérico depende de módulos RTN del segundo grupo genérico directamente de orden superior en la instrucción, y la primera ponderación asignada a los módulos RTN del primer grupo genérico se designa por ello como
    ponderación inicial.
  10. 10.- Procedimiento según la reivindicación 9, caracterizado porque los módulos RTN del primer grupo genérico presentan una primera ponderación inicial idéntica, preferiblemente de altura media, y estos módulos RTN al introducirse en módulos RTN del segundo grupo genérico adoptan la primera ponderación del último reducida en un cierto valor, preferiblemente de uno.
  11. 11.- Procedimiento según la reivindicación 8, 9 ó 10, caracterizado porque aquellos módulos RTN del segundo grupo genérico, que ejecutan su función de tratamiento sobre el conjunto de salida de tratamiento de una función de tratamiento de un módulo RTN del primer o segundo grupo genérico, forman un primer subgrupo genérico del segundo grupo genérico y presentan respectivamente la misma primer ponderación que no es la ponderación más elevada posible, pero que es más elevada que la primera ponderación inicial de altura media de los módulos RTN del primer grupo genérico.
  12. 12.- Procedimiento según la reivindicación 8, 9, 10 ó 11, caracterizado porque aquellos módulos RTN del segundo grupo genérico, cuyo conjunto de salida de tratamiento se emplea como conjunto de entrada de tratamiento para otros módulos RTN del primer o segundo grupo genérico, forman un segundo subgrupo genérico del segundo grupo genérico y presentan una respectiva primera ponderación diferente que en cada caso es menor que la primera ponderación inicial de altura media de los módulos RTN del primer grupo genérico, y porque la primera ponderación para los módulos RTN en cuestión describe individualmente la secuencia predeterminable de procesamiento en referencia a los módulos RTN del segundo subgrupo genérico del segundo grupo genérico, obteniendo una primera ponderación menos elevada los módulos RTN de este grupo a ejecutar en primer lugar.
  13. 13.- Procedimiento según la reivindicación 8 a 12, caracterizado porque todos los módulos RTN del primer y segundo grupo genérico, en que una posición de decisión que prescribe la introducción de al menos un módulo RTN del primer grupo genérico se sigue por al menos otra posición de decisión posterior, independientemente de la última posición de decisión opcional presente dado el caso después el paso de conversión y que prescribe la introducción de un módulo RTN del segundo grupo genérico, presentan una segunda ponderación fija con altura de ponderación lo más elevada posible.
  14. 14.- Procedimiento según la reivindicación 13, caracterizado porque la primera ponderación de cada módulo RTN del segundo grupo genérico se compara con la primera ponderación de los respectivos módulos RTN de orden superior en la secuencia de imbricación que se determina por la instrucción de búsqueda después del paso de conversión, hasta que aquel módulo RTN con una primera ponderación más elevada o el respectivo módulo RTN de orden superior que no se encuentra en su última posición de decisión y presenta una segunda ponderación de altura de ponderación lo más elevada posible se alcanza y conforme a esta secuencia de imbricación determinada, el módulo RTN que sirve de base para la comparación se subordina directamente al módulo RTN afectado y por consiguiente se lleva a un orden superior a todos los módulos RTN saltados mediante las comparaciones y anteriormente de orden
    superior.
  15. 15.- Procedimiento según las reivindicaciones 8 a 14, caracterizado porque los módulos RTN del primer grupo genérico, se subordinan al módulo RTN directamente de orden superior del primer o segundo grupo genérico, independientemente de su primera ponderación propia e independientemente de la primera ponderación de los módulos RTN de orden superior.
  16. 16.- Procedimiento según las reivindicaciones 8 a 15, caracterizado porque para el caso de la presencia de una misma primera ponderación del módulo RTN a comparar del segundo grupo genérico con uno de los módulos RTN de orden superior igualmente del segundo subgrupo genérico, el módulo RTN a comparar se subordina justo entonces directamente a este módulo RTN si estos módulos RTN son módulos RTN del segundo subgrupo genérico del segundo grupo genérico.
  17. 17.- Procedimiento según las reivindicaciones 8 a 16, caracterizado porque para el caso de la presencia de la misma primera ponderación del módulo RTN a comparar del segundo grupo genérico con uno de los módulos RTN de orden superior de igualmente el segundo subgrupo genérico, se compara justo luego posteriormente con los módulos RTN de orden superior si los módulos RTN son módulos RTN del primer subgrupo genérico del segundo grupo genérico.
  18. 18.- Procedimiento según las reivindicaciones 13 a 17, caracterizado porque una segunda ponderación de altura de ponderación minima se atribuye a aquellos módulos RTN del primer grupo genérico, para los que se predetermina que se subordinan luego a los módulos RTN del segundo grupo genérico si estos módulos RTN del primer grupo genérico se introducen directamente en una posición de decisión de un módulo RTN, en la que puede introducirse uno de la totalidad de los módulos RTN, dicho módulo RTN presenta una segunda altura de ponderación lo más elevada posible, y aquellos módulos RTN del primer grupo genérico que no presentan una segunda ponderación de altura mínima en estos casos no se subordinan a módulos RTN del segundo grupo genérico.
  19. 19.- Procedimiento según las reivindicaciones 13 a 18, caracterizado porque a todos los módulos RTN del primer y segundo grupo genérico se les puede asignar al menos un módulo RTN que puede llevarse a un orden superior, si estos módulos RTN del primer y segundo grupo genérico se introducen directamente en una posición de decisión de un módulo RTN con la segunda ponderación más elevada posible, en la que puede introducirse uno de la totalidad de módulos RTN.
  20. 20.- Procedimiento según una de las reivindicaciones precedentes, caracterizado porque los módulos RTN imbricados conforme a su secuencia en la instrucción y su ponderación, que han sido asignados a determinados grupos de módulos RTN, se convierten respectivamente en elementos de interface de motor, presentando un elemento de interface de motor un juego de componentes independientes entre sí y que pueden ajustarse conforme al paso de tratamiento.
  21. 21.- Sistema de base de datos relacional que comprende al menos un sistema informático con al menos una base de datos relacional, al menos una unidad de tratamiento de datos y al menos una memoria, caracterizado porque la unidad de tratamiento de datos está programada de forma que funciona según el procedimiento de una de las reivindicaciones 1 a
  22. 20.
  23. 22.- Sistema de base de datos relacional según la reivindicación 21, caracterizado porque presenta además medios para la lectura de una instrucción o instrucciones de base de datos dadas en un lenguaje de base de datos para el control del sistema de base de datos relacional de un soporte de datos o una señal portadora electrónica según la reivindicación 23 en la memoria.
  24. 23.- Soporte de datos o señal portadora electrónica con una instrucción de base de datos
    o instrucciones de base de datos dadas en un lenguaje de base de datos para el control y la lectura de un sistema de base de datos relacional según la reivindicación 22,
    caracterizado porque
    la instrucción de base de datos o las instrucciones de base de datos existentes en el soporte de datos o en la señal portadora comprenden la información de una RTN formada por módulos RTN independientes unos de otros, presentando cada módulo RTN una gráfica de decisión interior dirigida, que está definida independientemente de las gráficas de decisión interiores dirigidas de otros módulos RTN, con al menos una posición de decisión a lo largo de al menos un camino de decisión, porque en un paso de selección las gráficas de decisión interiores de todos los módulos RTN se recorren mediante las palabras clave y todos los caminos posibles de estas gráficas de decisión se siguen hasta que no se determina una concordancia con el respectivo camino seleccionado por la gráfica de decisión y se interrumpe el proceso o el respectivo camino seleccionado se recorre hasta el final, presentando al menos una parte de los caminos de decisión en al menos una de las posiciones de decisión una función de llamada recursiva a través de la que uno de los módulos RTN se recorre como resultado de la aplicación del paso de selección sobre la totalidad de los módulos RTN, de forma que se hace posible una ejecución recursivamente imbricada y repetida a voluntad del paso de selección partiendo de al menos una de las posiciones de decisión, y porque un plan de acceso para el sistema de base de datos relacional se genera de la secuencia de módulos RTN y su imbricación según resulta por la aplicación de los pasos de selección sobre todas las palabras clave de la instrucción de búsqueda.
  25. 24.- Producto de programa informático que presenta un medo legible por ordenador con medios de código de programa informático, en el que respectivamente después de la carga del programa informático, un ordenador se induce por el programa a ejecutar el procedimiento según una de las reivindicaciones 1 a 20.
ES06741027T 2006-06-01 2006-06-01 Procedimiento para el control de un sistema de base de datos relacional. Active ES2352565T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/AT2006/000228 WO2007137308A1 (de) 2006-06-01 2006-06-01 Verfahren zum steuern eines relationalen datenbanksystems

Publications (1)

Publication Number Publication Date
ES2352565T3 true ES2352565T3 (es) 2011-02-21

Family

ID=36785031

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06741027T Active ES2352565T3 (es) 2006-06-01 2006-06-01 Procedimiento para el control de un sistema de base de datos relacional.

Country Status (8)

Country Link
EP (2) EP2021951B1 (es)
JP (1) JP5096464B2 (es)
CN (2) CN101501687B (es)
AT (1) ATE479953T1 (es)
CA (2) CA2653514A1 (es)
DE (1) DE502006007802D1 (es)
ES (1) ES2352565T3 (es)
WO (2) WO2007137308A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665620B2 (en) * 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
CN102955823B (zh) * 2011-08-30 2016-01-20 方方 一种对电视节目评估调研样本数据的处理方法
CN102609493B (zh) * 2012-01-20 2014-07-02 东华大学 一种基于列存储模型的连接顺序查询优化方法
US9626407B2 (en) 2014-06-17 2017-04-18 Google Inc. Real-time saved-query updates for a large graph
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN111522816B (zh) * 2020-04-16 2021-04-30 云和恩墨(北京)信息技术有限公司 基于数据库引擎的数据处理方法、装置、终端及介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US5761493A (en) * 1990-04-30 1998-06-02 Texas Instruments Incorporated Apparatus and method for adding an associative query capability to a programming language
US5495604A (en) * 1993-08-25 1996-02-27 Asymetrix Corporation Method and apparatus for the modeling and query of database structures using natural language-like constructs
US5577241A (en) * 1994-12-07 1996-11-19 Excite, Inc. Information retrieval system and method with implementation extensible query architecture
US5875334A (en) * 1995-10-27 1999-02-23 International Business Machines Corporation System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements
US6023697A (en) * 1997-02-24 2000-02-08 Gte Internetworking Incorporated Systems and methods for providing user assistance in retrieving data from a relational database
US6618719B1 (en) * 1999-05-19 2003-09-09 Sybase, Inc. Database system with methodology for reusing cost-based optimization decisions
JP3584788B2 (ja) * 1999-07-05 2004-11-04 日本電気株式会社 関係データベースアクセス装置および関係データベースアクセス方法
JP2001222452A (ja) * 2000-02-10 2001-08-17 Ricoh Co Ltd リレーショナルデータベースシステムにおける問い合わせ処理最適化装置
EP1209560A1 (en) * 2000-11-21 2002-05-29 Natlantech Naamloze Vennootschap A language modelling system and a fast parsing method
US20040019587A1 (en) * 2002-07-25 2004-01-29 You-Chin Fuh Method and device for processing a query in a database management system
WO2005008529A2 (en) * 2003-07-07 2005-01-27 Netezza Corporation Optimized sql code generation

Also Published As

Publication number Publication date
EP2021952A1 (de) 2009-02-11
CN101501687A (zh) 2009-08-05
WO2007137309A8 (de) 2008-12-11
CA2653514A1 (en) 2007-12-06
WO2007137308A1 (de) 2007-12-06
JP5096464B2 (ja) 2012-12-12
DE502006007802D1 (de) 2010-10-14
CA2653465A1 (en) 2007-12-06
JP2009539151A (ja) 2009-11-12
EP2021951A1 (de) 2009-02-11
WO2007137309A1 (de) 2007-12-06
EP2021951B1 (de) 2010-09-01
CN101548281A (zh) 2009-09-30
ATE479953T1 (de) 2010-09-15
CN101501687B (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
ES2352565T3 (es) Procedimiento para el control de un sistema de base de datos relacional.
Codd Relational database: A practical foundation for productivity
US7143076B2 (en) Method and apparatus for transforming data
US7774337B2 (en) Method for controlling a relational database system
WO2002006999A2 (en) Performing spreadsheet-like calculations in a database system
AU2002222963A1 (en) Performing spreadsheet-like calculations in a database system
MXPA01000123A (es) Base de datos implementada por computadora con conectividad valor caso.
Alagić Relational database technology
Ben-Gan et al. Inside Microsoft SQL Server 2008 T-SQL Programming
Derr et al. The glue-nail deductive database system: Design, implementation, and evaluation
Eisenberg New standard for stored procedures in SQL
van Emde Boas et al. Storing and evaluating Horn-clause rules in a relational database
McKenzie An algebraic language for query and update of temporal databases
Tsur Deductive databases in action
Hadzilacos Serialization graph algorithms for multiversion concurrency control
Endrullis et al. Star games and Hydras
CN110008264A (zh) 成本核算系统的数据采集方法和装置
JPH02236778A (ja) 問い合わせ最適化処理方法
Beierle et al. PROTOS-L: Towards a knowledge base programming language
CN101908045A (zh) 一种数据处理方法
Codd The 1981 ACM Turing Award Lecture
Thorvaldsen Longitudinal sources and longitudinal methods—Studying migration at the Stockholm Historical Database
Mittermeir HIBOL: a language for fast prototyping in data processing environments
Guo An object-oriented SQL (OSQL) based on association pattern query formulation
Al-Fayoumi Design and implementation of a temporal trigger subsystem for the triggerman asynchronous rule processor