ES2636758T3 - Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior - Google Patents
Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior Download PDFInfo
- Publication number
- ES2636758T3 ES2636758T3 ES13461545.9T ES13461545T ES2636758T3 ES 2636758 T3 ES2636758 T3 ES 2636758T3 ES 13461545 T ES13461545 T ES 13461545T ES 2636758 T3 ES2636758 T3 ES 2636758T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- database
- data structure
- query
- property
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Un procedimiento implementado por ordenador para ejecutar una consulta de base de datos en una base de datos, comprendiendo el procedimiento las etapas de: - proporcionar, al menos, una estructura de datos, definida por un esquema de base de datos de dicha base de datos, que comprende, al menos, un objeto que tiene, al menos, dos propiedades, teniendo cada propiedad un tipo de datos asignado, en el que dichos tipos de datos pueden compararse con respecto a su tamaño de datos; - establecer (401), usando dicho esquema de base de datos de dicha base de datos, por comparación, de dichos tipos de datos de las al menos dos propiedades, una propiedad de una estructura de datos seleccionada que comprende los valores únicos más pequeños para registros dados de tipo de datos almacenados en esa propiedad particular; - ejecutar (402) la consulta de base de datos, que incluye cualquier parámetro de limitación, configurado para recibir solo datos desde la propiedad que comprende los valores únicos más pequeños que son recuperables para un registro; - empezar (403) a recuperar resultados de la consulta (402) recuperada; - para cada conjunto de número de resultados recuperados predefinido, ejecutar (405) un nuevo proceso de acceso a la base de datos que se configura para recuperar datos que están presentes en los registros identificados con los valores únicos más pequeños.
Description
5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Procedimiento implementado por ordenador para mejorar la ejecucion de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior
El objeto de la presente invencion es un procedimiento implementado por ordenador para optimizacion de la ejecucion de consulta de bases de datos. El procedimiento encuentra su aplicacion en sistemas de recuperacion y procesamiento de datos.
De acuerdo con WIKIPEDIA (
www.wikipedia.org), las consultas de tipo JOIN se definen en la tecnica anterior como sigue. Una clausula JOIN de SQL (Lenguaje de Consulta Estructurado, del ingles Structured Query Language) combina registros de dos o mas tablas en una base de datos. Crea un conjunto de datos que se puede guardar como una tabla o usarse tal cual. Una consulta JOIN es un medio para combinar cambios de dos o mas tablas mediante el uso de valores comunes en cada una. El estandar ANSI SQL especifica cuatro tipos de JOIN: INNER, OUTER, LEFT, y RIGHT. Como caso especial, una tabla (tabla base, vista, o una tabla unida) puede UNIRSE a sf misma en una autounion.
www.wikipedia.org), las consultas de tipo JOIN se definen en la tecnica anterior como sigue. Una clausula JOIN de SQL (Lenguaje de Consulta Estructurado, del ingles Structured Query Language) combina registros de dos o mas tablas en una base de datos. Crea un conjunto de datos que se puede guardar como una tabla o usarse tal cual. Una consulta JOIN es un medio para combinar cambios de dos o mas tablas mediante el uso de valores comunes en cada una. El estandar ANSI SQL especifica cuatro tipos de JOIN: INNER, OUTER, LEFT, y RIGHT. Como caso especial, una tabla (tabla base, vista, o una tabla unida) puede UNIRSE a sf misma en una autounion.
Un programador escribe un predicado JOIN para identificar los registros que unira. Si el predicado evaluado es verdadero, el registro combinado se produce, entonces, en el formato esperado, un registro establecido o tabla temporal.
Las bases de datos relacionales actuales a menudo se normalizan con el fin de eliminar informacion duplicada cuando los objetos pueden tener relaciones uno a uno, uno a muchos o muchos a muchos. Por ejemplo, se puede asociar un unico Departamento asociado con muchos Empleados diferentes. Unir dos tablas de manera eficaz crea otra tabla que combina informacion de ambas tablas. Esto es a un cierto coste en terminos del tiempo que toma para computar la union.
Esto es a un cierto coste en terminos del tiempo que toma para computar la union, ya que los sistemas relacionales muy comunmente llaman a unirse, aunque se enfrentan a dificultades para optimizar su ejecucion eficiente. En casos en los que una consulta requiere unir mas de una estructura de datos, el tiempo de ejecucion puede aumentar exponencialmente.
Existen tres algoritmos para realizar operaciones de tipo JOIN: una union de bucle anidado que s un algoritmo s imple que une dos conjuntos usando dos bucles anidados; una union de clase combinacion que es un algoritmo para ordenar primero las r elaciones por el atributo de union, de modo que las exploraciones lineales entrelazadas encontraran estos conjuntos al mismo tiempo; y una union hash que es un algoritmo realizado por la ejecucion de un algoritmo hash de u n conjunto de datos en una memoria basada en la union de columnas y la lectura del otro y probar la tabla hash en busca de coincidencias.
Como se menciono previamente, las bases de datos relacionales a menudo se normalizan. El objetivo de la normalizacion es almacenar solo la minima cantidad de informacion, para eliminar redundancias en los datos, para eliminar anomalfas y para reestructurar datos con el fin de proporcionar almacenamiento mas eficiente.
El concepto de normalizacion de datos se desarrollo por E.F. en 1970. El Sr. Codd en su publicacion sobre "Further Normalization of the Data Base Relational Model' definio formas normales para reducir la cantidad de redundancia y dependencia de inconsistencia dentro de las bases de datos. El Sr. Codd definio tres formas normales, pero durante los anos posteriores dos formas normales mas se introdujeron.
Existen cuatro formas normales mas comunmente usadas: la forma normal primera (1NF), la segunda (2NF) y la tercera (3NF), y a veces se usa la forma Boyce-Coddnormal (BCNF).
Tambien se conoce una cuarta forma (4NF) normal, que es una forma normal usada en la normalizacion de la base de datos. Introducido por Ronald Fagin en 1977, 4NF es el siguiente nivel de normalizacion despues de la forma normal de Boyce-Codd (BCNF). Considerando que la segunda, la tercera, y la forma normal Boyce-Codd se ocupan de las dependencias funcionales, 4NF se refiere a un tipo mas general de dependencia conocida como una dependencia conocida como una dependencia de valor multiple [fuente: WIKIPEDIA].
Tambien existe en la tecnica anterior, una Quinta forma (5NF) normal, tambien conocida como forma (JPNF) normal de union-proyeccion, que establece que no existe ninguna dependencia de union no trivial. El 5NF establece que cualquier hecho debena poder reconstruirse sin ningun resultado anomalo en ningun caso, independientemente del numero de tablas que se estan uniendo. Una tabla 5NF debena tener solo claves candidatas y su clave primaria debena consistir en solo una unica columna.
El problema con estas formas normales es el tamano de las uniones que se requieren para reconstruir cualquier dato no trivial. Un desarrollador puede depender de vistas y procedimientos para simplificarlos, pero los datos subyacentes todavfa terminan siendo muy complejos. Tambien existen problemas de rendimiento a considerar - que es por lo que 4NF y 5NF son a menudo academicos. En la mayona de los casos, 3NF (o BCNF) se implementan. (fuente:
http://www.devshed.com/c/a/Administration/Database- Normalization/4/).
http://www.devshed.com/c/a/Administration/Database- Normalization/4/).
5
10
15
20
25
30
35
40
45
50
55
La normalizacion produce muchas tablas, que tiene cada una relativamente pocas columnas, por ejemplo, dos columnas - una clave primaria y un valor. Para usar los datos de normalizacion contenidos en estas columnas, uno tiene que poner la informacion de vuelta junta uniendo las columnas usando sus relaciones de claves primarias/remotas.
Ejecutar consultas a una base de datos normalizada normalmente requiere recuperacion de datos almacenados para multiples tablas normalizadas. La base de datos normalizada, por lo tanto, necesita localizar y recuperar las tablas solicitadas y, entonces, une la informacion de las bases de datos para responder a la solicitud de datos.
Las solicitudes de tipo JOIN reducen el rendimiento de la base de datos ralentizando el proceso y colocando tension de procesamiento pesado sobre el hardware informatico. Las bases de datos normalizadas necesitan mayor CPU, memoria, e I/O para procesar transacciones y consultas que las bases de datos no normalizadas y desnormalizadas. En las bases de datos existentes, las consultas de tipo JOIN incurren en sobrecarga de procesamiento significante, que conduce a la incapacidad para trabajar en tiempo real.
Por lo tanto, podna ser muy ventajoso aumentar el rendimiento de las consultas de la base de datos, especialmente en las consultas de tipo JOIN ya que son cruciales para las bases de datos normalizadas.
Algunas bases de datos de la tecnica anterior implementan las llamadas tecnicas de optimizacion de consulta. La optimizacion de la consulta es una funcion de sistemas de gestion de bases de datos, tales como sistemas (RDBMS) de gestion de bases de datos relacionales. El optimizador de consultas trata de determinar el modo mas eficiente de ejecutar una consulta dada considerando los planes de consulta posibles. En implementaciones tfpicas, el optimizador de consulta no puede ser accesible directamente por los usuarios RDBMS: una vez que las consultas se envfan a un servidor de base de datos, y se analizan por el analizador, pasan seguidamente al optimizador de consulta donde tiene lugar la optimizacion.
Por ejemplo, una publicacion de patente US 5.548.758 titulada "Optimization of SQL queries using early-out join transformations of column-bound relational tables" desvela un procedimiento y aparato para optimizar solicitudes SQL en un sistema de gestion de bases de datos relacionales que usa transformaciones de union de retiro anticipado. Una union de retiro anticipado comprende una union existencia de muchos a uno, en la que la union busca una coincidencia en una tabla interior para cada fila de la tabla externa y termina la busqueda para cada fila de la tabla externa cuando una unica coincidencia se encuentra en la tabla. Para transformar una union de muchos a muchos para una union de retiro anticipado, la consulta debe incluir un requisito de caracter distintivo, tanto explfcita como implfcitamente, en una o mas columnas de resultado para cada operacion de union. El caracter distintivo puede especificarse usando la palabra clave DSTINCT en la clausula SELECT o puede ser implfcita a partir de los predicados presentes en la consulta. La transformacion de union de retiro anticipado tambien necesita que no se haga referencia a ninguna columna en la tabla interna despues de la union, o si se hace referencia a una columna de tabla interna despues de la union, de que cada columna referenciada sea "obligada". Una columna referenciada puede ser obligada de una de tres maneras: (1) una columna de tabla interna puede ser obligada a una constante a traves de un predicado de igualdad, (2) una columna de tabla interna puede ser obligada a una columna de tabla externa, o (3) una columna de tabla interna puede ser obligada a un valor correlacionado, en el que el valor correlacionado origina el bloqueo de consulta. En los tres casos, una columna de tabla interior puede ser obligada a traves de transitividad de predicados de igualdad.
Una solicitud de patente US20120246147 titulada "MODULAR QUERY OPTIMIZER', desvela programas informaticos codificados en un medio de almacenamiento informatico que proporciona un optimizador de consulta modular. En un aspecto, un producto programa informatico incluye seleccionar una o mas proyecciones de un conjunto de proyecciones para cada tabla en una consulta de base de datos en la que cada una de las proyecciones seleccionadas para la tabla ha llevado a costes de ejecucion inferiores estimados para la consulta en comparacion con las proyecciones no seleccionadas; generar ordenes de union para la consulta basada en distribucion de datos de una o mas de las proyecciones seleccionadas entre sitios en una red informatica en la que las ordenes de union reflejan diferentes combinaciones de operaciones de distribucion de datos aplicadas a la salida de una o mas uniones de consulta; y seleccionar una orden de union desde las ordenes de union basandose en las ordenes de union que usan un modelo de coste.
Los inconvenientes de la optimizacion de consulta conocidos en las bases de datos normalizadas incluyen, por ejemplo, requisitos de mayor memoria y CPU y dificultades en formular consultas complejas.
Hasta ahora, tales problemas se han dirigido con un uso de un hardware mas poderoso, tal como servidores de bases de datos que tienen mayor rendimiento y mas memoria en lugar de soluciones relacionadas con el diseno de bases de datos y de ejecucion de consultas.
Por ejemplo, una solicitud de patente US2012117027 titulada "Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators" desvela un acelerador de hardware que asiste a un sistema de base de datos huesped que esta procesando sus consultas. El acelerador de hardware comprende elementos de procesamiento de objetivo especial que son capaces de recibir tareas de consulta/operacion de base de datos en la forma de instrucciones de base de datos de codigo de maquina,
5
10
15
20
25
30
35
40
45
50
55
ejecutar, entonces, en un hardware sin software, y devolver el resultado de la consulta/operacion de vuelta al sistema huesped. Por lo tanto, el sistema se refiere a sistemas de base de datos que se optimizan usando aceleracion pura de hardware. Una solicitud de patente de Estados Unidos US2003229640A1 desvela un aparato, producto de programa y un procedimiento que utiliza un bufer de consulta dinamicamente rellenada para facilitar el maneo de al menos una parte de la consulta de base de datos en paralelo. Una consulta se implementa usando, al menos, una primera y una segunda parte, donde la segunda parte de la consulta se ejecuta en paralelo usando una pluralidad de procesos. La primera parte de la consulta se ejecuta para rellenar dinamicamente un bufer de consulta con registros desde una fuente de datos, y la pluralidad de procesos que ejecutan la segunda parte de la consulta se especifican en el bufer de consulta para que la fuente de datos efectiva para la segunda parte de la consulta comprenda los registros que se rellenan dinamicamente en el bufer de consulta. Teniendo en cuenta el estado de la tecnica anterior, existe una necesidad de disenar e implementar una optimizacion de ejecucion de consulta de base de datos eficiente que sena mas eficiente que las consultas de tipo JOIN. En particular, tal optimizacion debena dirigirse a aumentar el rendimiento de recuperacion de datos en bases de datos normalizadas en el nivel 4NF o 5NF y, preferentemente no requerira componentes de hardware especializados.
El objetivo de la presente invencion es un es un procedimiento implementado por ordenador para ejecutar una consulta de base de datos como se define en las reivindicaciones adjuntas.
Estos y otros objetivos de la invencion presentados en el presente documento se logran proporcionando un procedimiento implementado por ordenador para optimizacion de ejecucion de consulta. Mas detalles y caractenstica de la presente invencion, y naturaleza y diversas ventajas devendran mas evidentes a partir de la descripcion detallada siguiente de las realizaciones preferentes mostradas en un dibujo, en los que:
la figura 1 presenta un ejemplo de una estructura normalizada en el nivel 2; la figura 2 muestra una normalizacion 3NF para la base de datos de la figura 1; la figura 3 muestra una normalizacion 5NF para la base de datos de la figura 1;
la figura 4 presenta un procedimiento para ejecutar una consulta de base de datos de acuerdo con la invencion; la figura 5 muestra una implementacion ejemplar del procedimiento mostrado en la figura 4; las figuras 6 y 7 muestran un sistema de base de datos de tipo diagrama de ideas; y,
la figura 8 muestra un sistema de base de datos ejemplar, para el que el procedimiento presente se ha disenado por el que puede implementarse.
En la siguiente descripcion detallada, los operadores UNION, EXCEPT e INTERSECT se llamaran operadores de conjunto.
La figura 1 presenta un ejemplo de una estructura normalizada en el nivel 2. En el ejemplo de un sistema de base de datos relacional en esta figura, se asume que se recopila informacion acerca de los empleados. La tabla "Empleados" principal comprendera informacion sobre datos personales. Un empleado tiene un identificador 101, un nombre 102, un apellido 103 y vive en una ciudad 104 en una cierta direccion 105.
Tambien se recopila informacion acerca de las capacidades y aficiones de los empleados de la siguiente manera. Existe una tabla "Aficiones" que comprende la ID 106 Empleado como una clave remota, la descripcion de la aficion 107 y su nombre 108. De manera similar, existe una tabla "Capacidades" que comprende la ID 109 Empleado como una clave remota, descripcion de la capacidad 110 y su nombre 111.
Una normalizacion 3NF para la base de datos de la figura 1 se ha mostrado en la figura 2. Como se puede ver, la tabla Empleados sigue siendo la misma, pero las tablas aficiones y capacidades se han combinado en la tabla Hobbies_Skills, que comprende columnas de tanto la tabla de Aficiones como de Capacidades. Por lo tanto, hay un numero de tablas que se ha reducido por uno, pero la adicion de nuevas capacidades o aficiones para un empleado particular requerira duplicar un registro en la tabla Hobbies_Skills.
Una normalizacion 5NF, como se muestra en la figura 3, traena los siguientes cambios. La tabla Empleado sigue siendo la misma, mientras que, en comparacion con la tabla 3NF, la tabla Hobbies_Skills se ha dividido en cuatro tablas diferentes. Se han creado dos tablas de puramente de indexacion de Employee_Hobby y Employee_Skill, que solo comprende una clave Employee_ID y un mdice 112, 113 local de la aficion o capacidad, respectivamente. Esas dos tablas son enlaces entre las tablas Aficiones y Capacidades, que, en comparacion a las tablas originales de la figura 1 no comprenden ningun dato de la tabla Empleados.
Como ya se ha explicado, conforme el nivel de normalizacion aumenta, el esfuerzo computacional requerido con el fin de acceder y filtrar los datos tambien aumenta drasticamente. En primer lugar, el tiempo requerido en el servidor de base de datos para obtener los datos aumenta. Segundo, los datos se designan de tal manera que cuando los resultados ya estan localmente listos, la base de datos informa al cliente de como acceder al primer elemento del conjunto de resultados y entonces el cliente puede recuperar de manera interactiva todos los registros del conjunto de resultados. Tfpicamente, esto se ejecuta por un registro, con el fin de ahorrar ancho de banda del medio de comunicacion entre el cliente y el servidor. Este enfoque surge del hecho de que incluso aunque un conjunto de resultados puede ser grande, no todos los datos en el necesitan estar preparados para la presentacion.
Por lo tanto, cualquier mejora relacionada con minimizar el esfuerzo informatico en el servidor y/o reducir el tiempo
5
10
15
20
25
30
35
40
45
50
de recuperacion entre el cliente y el servidor de la base de datos son cruciales.
La figura 4 representa un procedimiento para ejecutar una consulta de base de datos de acuerdo con la invencion. Asumamos que en un simple ejemplo de la figura 1 uno necesita extraer os empleados en una ciudad determinada. Este simple ejemplo dara como resultado en la optimizacion del tiempo de entrega de los lados mas que en el tiempo de procesamiento de la consulta en el servidor.
En el resto de esta memoria descriptiva, una columna de una tabla es equivalente a una propiedad de un objeto de una estructura de datos dada (un conjunto).
En la etapa 401, el sistema necesita establecer, que columna/propiedad de una estructura/tabla de datos comprende el valor unico mas pequeno para registros dados. No es el valor real de datos, sino mas bien el tipo de datos en tal columna/propiedad lo que se toma en cuenta. El tamano de valores se determina tipicamente como tamano de campo de datos. Por ejemplo, los valores tales como numeros enteros de 64 bits son mayores que los valores tales como los numeros enteros de 16 bits.
En el ejemplo de la figura 1, la columna de Identificacion comprende los valores unicos mas pequenos (es decir, un numero entero que es tfpicamente 32/64 bits frente a una Cadena que es tfpicamente de 256 bytes). En la vida real existen muchos casos en los que un registro comprende varios valores unicos dentro de un conjunto/tabla/estructura. Por ejemplo, un artfculo comercial comprende un identificador, un codigo QR (del ingles Quick Response) y un numero de fabricacion que son todos unicos para un artfculo dado.
La cuestion de si un valor de tipo de datos de columna unico dado es mas pequeno que otro valor unico puede responderse usando un esquema de base de datos.
El esquema de base de datos es una estructura logica de una base de datos que se define tipicamente en un DBMS (Sistema de Administracion de Bases de Datos, del ingles Database Management System) con un uso de un lenguaje especial, por ejemplo, un DDL (un Lenguaje de Descripcion de Datos, del ingles Data Description Language). La estructura de base de datos interna se define como metadatos (este termino se refiere a "datos sobre datos") en un esquema llamado de informacion. En bases de datos relacionales, el esquema de informacion son datos que proporcionan informacion acerca de todas las tablas y/o vistas y/o columnas y/o procedimientos en una base de datos. Este conjunto de datos en dependiente de la base de datos y sus procedimientos de acceso normalmente son dependientes de la base de datos. Es, sin embargo, comun para una base de datos proporcionar tal estructura y acceso a ella. Los metadatos proporcionaran informacion acerca de los tipos de datos en cada columna/propiedad de cada tabla. Estos tipos pueden compararse con el fin de encontrar la columna/propiedad de valor unico mas pequeno.
La identificacion, en la etapa 401, del valor unico mas pequeno que se puede recuperar para un registro permite cantidad educida de datos necesarios que transferiran desde un servidor de base de datos hasta un cliente de base de datos.
En la etapa 402, se ejecuta una consulta, que incluye cualquier parametro de limitacion (un filtro de datos), que recuperara solo los datos desde la columna/propiedad que comprende el valor unico mas pequeno que se puede recuperar para un registro. Por tal enfoque, uno reduce al mmimo la cantidad de datos que se recuperaran.
A continuacion, en la etapa 403, comienza la recuperacion de resultados. Tan pronto como un numero predefinido de resultados (o todos los resultados disponibles) se ha recuperado, el sistema comprueba si el fin del conjunto de resultados se ha alcanzado 404.
Tfpicamente, el numero predefinido de resultados permanecera en un intervalo de entre 75 a 150 ya que hay una limitacion de base de datos de una cache de consulta y las consultas que exceden consulta elementos 150 puede devenir demasiado grande para ajustarse a un unico bufer de consulta, aumentando asf el esfuerzo computacional requerido por el procesamiento de la consulta. Por otra parte, dividir el resultado en conjuntos de varios elementos aumentana significativamente la sobrecarga en los procesos de gestion.
Una tabla hash se crea preferentemente donde los valores unicos mas pequenos de la consulta de la seccion 402 son claves y los resultados de las consultas de las secciones 405 y 406 son valores de la tabla hash.
Si hay mas registros en el conjunto de resultados, en la etapa 405 use crea un nuevo proceso de acceso a la base de datos que recuperara los datos que estan presentes en los registros identificados con el valor unico mas pequeno seleccionado en la etapa 401. De lo contrario, si no hay mas resultados en el conjunto de resultados, el proceso recupera los registros restantes en la etapa 406 donde un proceso final se crea que recuperara datos de los registros restantes identificados.
Una vez que el proceso 405 comienza, el procedimiento avanza a la etapa 403, donde otro lote de resultados de la seccion 402 de consulta se recupera, mientras que el proceso de la seccion 405 opera.
Cuando un conjunto de resultados se obtiene para la consulta ejecutada en un proceso 405, 406 de recuperacion de
5
10
15
20
25
30
35
40
45
50
datos, los datos se leen en la tabla hash definida previamente.
Es, por lo tanto, evidente que puede haber una pluralidad de procesos iniciados en la etapa 405, que pueden ejecutarse en paralelo.
Por lo tanto, los resultados finales se obtienen usando procesamiento paralelo y la etapa inicial de recuperacion de datos que son los datos representativos mas pequenos del conjunto de resultados completo.
Con el fin de mejorar adicionalmente la eficacia en cada proceso 405, 406, un operador establecido, en este caso el operador UNION se usa en una consulta, que combina el resultado de dos o mas declaraciones SELECT. La declaracion UNION tiene varios requisitos, que son que cada declaracion SELECT dentro de la UNION debe tener el mismo numero de columnas, y las columnas deben tener tipos de datos similares a las columnas en cada declaracion SELECT debe estar en el mismo orden.
El uso de un operador UNION incita al motor del servidor de base de datos al diferente enfoque de procesamiento de consultas que en el caso de un operador OR tfpico entre diferentes valores o parametros. En el caso de UNION hay consultas internas separadas de parametros separados de una unica consulta.
Por ejemplo, una consulta ejecutada en un proceso puede tener una forma similar a uno definido basandose en la tabla Empleados de la figura 1:
SELECT Employees.* FROM Employees WHERE ID=3 UNION SELECT Employees.* FROM Employees WHERE ID=6 UNION
SELECT Employees.* FROM Employees WHERE ID=16 UNION
El proceso de ejecutar una consulta 402, que incluye cualquier parametro de limitacion, puede optimizarse adicionalmente, especialmente en caso en el que la seleccion de valores particulares de la columna/propiedad que comprende el valor unico mas pequeno requiere consultar numerosas tablas/estructuras de datos.
En 4NF o 5NF, las consultas tfpicas de tipo JOIN a menudo son tan complejas que sus ejecuciones toman horas de procesamiento de datos extensivo.
Por ejemplo, uno necesita seleccionar empleados a los que les gusta el ciclismo (tabla de aficiones separada) y que se promocionaron durante los dos ultimos anos (tabla de promociones). En tales casos, en lugar de usar consultas de tipo JOIN uno puede emplear un operador INTERSECT. El operador INTERSECT se usa entre dos consultas SELECT seleccionadas con el fin de devolver solo valores que coinciden dentro de ambos conjuntos de datos devueltos por las consultas SELECT respectivas.
Por ejemplo:
SELECT Employee.ID FROM Employees WHERE Employee.NAME =
'ADAM'
INTERSECT
SELECT Hobbies.Employee_ID FROM Hobbies WHERE Hobbies.Name =
'cycling';
Esto devolvera una lista de identificadores de empleados cuyo nombre es Adam y a los que, al mismo tiempo, les gusta el ciclismo. Tal enfoque de utilizacion de INTERSECT y no JOIN con el fin de encontrar los valores unicos mas pequenos es muy eficiente.
El uso de consultas de interseccion es mucho mas eficiente para consultar estructura cruzada y la presente invencion devuelve los mejores resultados, en terminos de tiempo de recuperacion de datos, en caso de consultas de estructura cruzada compleja.
La figura 5 muestra una implementacion ejemplar del procedimiento mostrado en la figura 4 por simplicidad y presentacion de una idea general que puede implementarse en diferentes lenguajes de programacion, el presente ejemplo se formula en pseudocodigo.
El sistema presentado en el presente documento es especialmente util en bases de datos basandose en diagramas de ideas tal como una base de datos desvelada en la Solicitud de Patente Europea pendiente de aprobacion numero EP13461516.0 por el mismo Solicitante. En que tipo de base de datos particular, es especialmente facil ejecutar un procedimiento para encontrar objetos de interes que se relacionan a diferentes estructuras de datos porque, una relacion entre objetos esta presente en la estructura de datos OBJECT RELATIONS.
El uso de consultas que operan sobre conjuntos de datos, es decir, el uso de operadores de conjunto, en una base de datos de tipo esquema de ideas proporciona resultados mejorados debido a la estructura de la base de datos. Cada consulta que tendra en cuenta descripciones de objeto, objetos, relaciones, columnas y conjuntos requerina cada vez formular una consulta, que debido a la heterogeneidad de los tamanos de las tablas sena altamente
5
10
15
20
25
30
35
40
45
50
55
ineficiente, especialmente cuando se ejecutan con frecuencia.
Los objetos y sus descripciones en estructuras de una base de datos de tipo esquema de ideas, comprende un identificador de objeto. Por lo tanto, cuando se busca un objeto uno puede limitar no solo la estructura de datos caractensticos de objeto, es decir, la cuarta estructura 701 de datos, ya que esta estructura identifica sin ambiguedad un objeto. Esto tiene una especial ventaja durante la busqueda de objetos que se relacionen con otros objetos de un conjunto diferente. Tal busqueda puede formularse como sigue:
• para objetos seleccionados y una relacion seleccionada, ejecutar una funcion de busqueda sobre relaciones 708 de objeto con un identificador de relacion seleccionado
• desde la estructura de caractensticas, seleccionar, por medio de otra funcion de busqueda, solo aquellos que cumplen la condicion, por ejemplo, en la columna 13 hay un valor de "ADAM";
• Combinar ambas consultas con un operador INTERSECT.
Anadir otra restriccion relacionada con un valor diferente en una columna diferente es meramente una adicion de una consulta simple y que limita los resultados con un uso de operador INTERSECT.
Lo mas importante es que el proceso de busqueda y de navegacion completos de los resultados se centra en varias consultas que permanecen inalteradas excepto por los valores espedficos de parametros, debido a lo que no hay necesidad de escribir codigo de programacion redundante con el fin de cubrir mas consultas y mas espedficas.
Debido al uso de UNION e INTERSECT, existe una posibilidad de procesamiento mejorado y mas rapido de consultas.
Otro aspecto relacionado con UNION, INTERSECT y EXCEPT es que las estructuras de datos fundamentalmente diferentes pueden consultarse para los mismos datos.
La siguiente seccion de la memoria descriptiva presenta una parte clave de la Solicitud de Patente Europea pendiente de aprobacion numero EP13461516.0 del Solicitante.
La figura 6, que corresponde a la figura 2 de la solicitud pendiente de aprobacion, muestra un nuevo sistema de base de datos de acuerdo con la presente invencion. Con el fin de cooperar perfectamente con esquemas de ideas, el sistema de base de datos de acuerdo con la invencion se ha disenado de diferente manera a los sistemas de bases de datos conocidos. El sistema de base de datos comprende seis conjuntos de nucleo de datos y conjuntos opcionales. Los conjuntos de nucleos comprenden CONJUNTOS, OBJETOS, COLUMNAS, CARACTERfSTICAS, RELACIONES y RELACIONES DE OBJETOS. Cabe senalar que los nombres anteriores son ejemplares solo y que los conjuntos de nucleos respectivos se definen mas por su funcion dentro del sistema que por su nombre.
El primer conjunto de datos se llama CONJUNTOS 604, porque se usa para mantener logicamente datos relacionados con los conjuntos de datos. Los conjuntos de datos pueden representarse sobre un esquema de ideas como nodos. Cada entrada en la estructura 604 de datos CONJUNTOS comprende, al menos, un unico identificador 605a y preferentemente tambien su nombre 605. En referencia, de nuevo, al ejemplo de la figura 1, existen tres CONJUNTOS, es decir, COLORES que tienen identificacion de 1, MATERIALES que tienen identificacion de 2 y HERRAMIENTAS que tienen identificacion de 3. La estructura de datos CONJUNTOS es una estructura de nivel superior y no se refiere a otras estructuras de datos, sino que otras estructuras de datos se refieren a ello como identificandose por las flechas respectivas entre los conjuntos de la figura 6.
Cada conjunto de datos, como en el mundo real, se caracteriza por algunas propiedades tfpicamente llamadas columnas. Por lo tanto, el segundo conjunto de datos se llama COLUMNAs 606. Una propiedad, llamada tfpicamente una columna, se identifica unicamente con un identificador ID 607 y se asocia con un conjunto, definido en la estructura 604 de datos CONJUNTOS, por medio de un identificador llamado en el presente documento ID DE CONJUNTO 608. Una columna tambien se asocia preferentemente con un nombre 609. Como se indica por una flecha 604a, la estructura de datos COLUMNAS logicamente, se refiere directamente a la estructura de datos CONJUNTOS, porque usa los identificadores de conjuntos. Si, por ejemplo, cada color del conjunto llamado COLORES tiene otra propiedad, digamos, valor RGB, podna anadirse a una entrada que comprende los siguientes valores: "1", "4", "RGB". En este nivel del sistema, los tipos de datos respectivos tales como texto, numero entero, BLOB no se consideran como su aplicacion en el presente sistema es trabajo de rutina.
Habiendo definido las estructuras de datos de CONJUNTOS y COLUMNAS se pueden definir objetos que formaran elementos de CONJUNTOS respectivos y tendran propiedades definidas por las estructuras de datos COLUMNAS. Los objetos se mantienen en la estructura de datos OBJETOS 601. Esta estructura de datos mantiene unicamente entradas identificadas con un identificador ID 603 y un se asocian con un conjunto, definido en la estructura 604 de datos CONJUNTOS, por medio de un identificador llamado en el presente documento ID DE CONJUNTO 602. Como se indica por una flecha 601a, la estructura de datos OBJETOS logicamente, se refiere directamente a la estructura de datos CONJUNTOS, porque usa los identificadores de conjuntos.
La cuarta estructura de datos nucleo es una estructura de datos que mantiene entradas de datos de cada propiedad de cada objeto. Esta estructura de datos se ha llamado CARACTERfSTICAS 301 en la figura 6. Esto es una de las
5
10
15
20
25
30
35
40
45
50
55
diferencias fundamentales de todas las bases de datos conocidas donde hay filas de datos que comprenden entradas para todas las columnas de una tabla de datos. En la presente invencion, cada propiedad de un objeto se almacena como una entrada separada, que mejora enormemente la escalabilidad del sistema y permite, por ejemplo, anadir propiedades de objetos en tiempo real.
La estructura de datos CARACTERfSTICAS 701 mantiene unicamente entradas identificadas con un identificador ID DE OBJETO 702 y se asocia con una propiedad, definida en la estructura 606 de datos COLUMNAS, por medio de un identificador llamado en el presente documento ID DE COLUMNA 703. Ademas, cada entrada en la estructura de datos CARACTERfSTICAS, comprende un valor de la propiedad dada del objeto particular. Como se indica por las flechas respectivas que se originan a partir de las fuentes A y B, la estructura 701 de datos CARACTERfSTICAS logicamente, se refiere directamente a estructura de datos COLUMNAS y estructura de datos OBJETOS, porque usa los identificadores desde las estructuras de datos respectivas.
La quinta estructura de datos nucleo, del sistema de base de datos de acuerdo con la presente invencion, se disena para mantener dato respecto a las relaciones presentes en la base de datos. Esta estructura se ha llamado aqu RELATIONS 705. Es una estructura muy simple y, en principio, mantiene un identificador de una relacion ID 707 y, preferentemente tambien mantiene la descripcion textual de la relacion, es decir, un NAME 706. Como se indica por una flecha 705a, la estructura de datos RELACIONES logicamente, hace directamente referencia hacia abajo de la estructura de datos RELACIONES DE OBJETOS, porque las RELACIONES DE OBJETOS usan los identificadores de las relaciones.
La ultima estructura de datos nucleo de la presente invencion es la mencionada estructura 708 de datos RELACIONES DE OBJETOS. Esta estructura de datos de disena para proporcionar un esquema entre una relacion de la estructura 705 de datos RELACIONES y dos objetos de la estructura 701 de datos OBJETOS. Por ejemplo, la primera entrada en la estructura 708 de datos define que la relacion que tiene identificador de lexiste entre el un objeto que tiene un identificador de 1 y el objeto que tiene un identificador de 6.
Opcionalmente, existe una septima estructura de datos en el sistema de base de datos de la presente invencion. Esta estructura de datos mantiene datos con respecto a las relaciones entre los conjuntos de datos respectivos y en la figura 7 se llama RELACIONES DE CONJUNTOS 712. Esta estructura de datos se disena para proporcionar un esquema entre una relacion desde la estructura 705 de datos RELACIONES y dos conjuntos de estructura 604 de datos CONJUNTOS. Por ejemplo, la primera entrada en la estructura 712 de datos RElAcIONES DE CONJUNTOS define que la relacion que tiene un identificador de 1 existe entre un conjunto que tiene un identificador de 1 y un conjunto que tiene un identificador de 2. Proporcionar una entrada en la estructura 712 de datos RELACIONES DE CONJUNTOS entre un conjunto que tiene un identificador de 1 y un conjunto que tiene un identificador 2, asf como entre un conjunto que tiene un identificador de 2 y un conjunto que tiene un identificador de 1, permite crear una relacion bidireccional.
Tambien hay una posibilidad de referencia propia desde un conjunto dado. Por ejemplo, tal caso puede estar presente cuando hay un conjunto de personas y existe una relacion de estudiante - profesor entre personas asignadas a un conjunto particular.
Como se describe, por ejemplo, un sistema de base de datos relacional de cien tablas se almacenara en el presente sistema en las seis estructuras de datos descritas anteriormente. Naturalmente, la mayona de los datos permaneceran en las estructuras de datos OBJETOS y CARACTERfSTICAS.
Como se puede ver en la base de datos de tipo esquema de ideas, los objetos se relacionan directamente por medio de relaciones de objeto.
La figura 8 muestra un sistema de base de datos ejemplar, para el que el procedimiento presente se ha disenado por el que puede implementarse. El sistema de base de datos comprende un cliente 801 y un servidor 802. El cliente 801 accede a los datos y, por lo general, es un terminal remoto del servidor 802 que aloja una base 806 de datos y un sistema 807 de gestion de bases de datos responsable de responder las consultas del cliente. El cliente es normalmente un ordenador que comprende una memoria 803, un procesador 804 y un modulo 805 para ejecutar el procedimiento definido en la figura 4. Sera evidente que un canal de comunicacion adecuado debe establecerse entre el cliente 801 y el servidor 802.
Puede reconocerse facilmente, por un experto en la materia, que el procedimiento implementado por ordenador anterior para ejecutar consultas de bases de datos puede realizarse y/o controlarse por uno o mas programas informaticos. Tales programas informaticos se ejecutan tfpicamente utilizando recursos informaticos en un dispositivo informatico tal como ordenadores personales, asistentes digitales personales, telefonos moviles, receptores y decodificadores de television digital o similares. Las solicitudes se almacenan en memoria no volatil, por ejemplo, una memoria flash o memoria volatil, por ejemplo, RAM, y se ejecutan por un procesador. Estas memorias son medios de grabacion ejemplares para almacenar programas informaticos que comprenden instrucciones ejecutables por ordenador que realizan todas las etapas del procedimiento implementado por ordenador de acuerdo con el concepto tecnico presentado en el presente documento.
Mientras la invencion presentada en el presente documento se ha representado, descrito, y se ha definido con
referencia a realizaciones preferentes particulares, tales referencias y ejemplos de implementacion en la memoria descriptiva anterior no implican ninguna limitacion de la invencion. Sera, sin embargo, evidente que diversas modificaciones y cambios pueden realizarse en ello sin alejarse del ambito mas amplio del concepto tecnico. Las realizaciones preferentes presentadas son solo ejemplares, y no son exhaustivas del ambito del concepto tecnico 5 presentado en el presente documento.
Por consiguiente, el ambito de proteccion no se limita a las realizaciones preferentes descritas en la memoria descriptiva, sino que solo se limita por las reivindicaciones que siguen.
Claims (9)
- 510152025303540455055REIVINDICACIONES1. Un procedimiento implementado por ordenador para ejecutar una consulta de base de datos en una base de datos, comprendiendo el procedimiento las etapas de:• proporcionar, al menos, una estructura de datos, definida por un esquema de base de datos de dicha base de datos, que comprende, al menos, un objeto que tiene, al menos, dos propiedades, teniendo cada propiedad un tipo de datos asignado, en el que dichos tipos de datos pueden compararse con respecto a su tamano de datos;• establecer (401), usando dicho esquema de base de datos de dicha base de datos, por comparacion, de dichos tipos de datos de las al menos dos propiedades, una propiedad de una estructura de datos seleccionada que comprende los valores unicos mas pequenos para registros dados de tipo de datos almacenados en esa propiedad particular;• ejecutar (402) la consulta de base de datos, que incluye cualquier parametro de limitacion, configurado para recibir solo datos desde la propiedad que comprende los valores unicos mas pequenos que son recuperables para un registro;• empezar (403) a recuperar resultados de la consulta (402) recuperada;• para cada conjunto de numero de resultados recuperados predefinido, ejecutar (405) un nuevo proceso de acceso a la base de datos que se configura para recuperar datos que estan presentes en los registros identificados con los valores unicos mas pequenos.
- 2. El procedimiento de acuerdo con la reivindicacion 1 en el que la etapa (401) de establecimiento se basa en la informacion de esquema de la base de datos.
- 3. El procedimiento de acuerdo con la reivindicacion 1 en el que el numero predefinido esta entre 75 y 150 y los procesos de acceso a la base de datos se ejecutan en paralelo.
- 4. El procedimiento de acuerdo con la reivindicacion 1 en el que los resultados recuperados se almacenan en una tabla hash en la que los valores unicos mas pequenos de la consulta (402) son claves y los resultados de las consultas (405), (406) posteriores son valores de la tabla hash.
- 5. El procedimiento de acuerdo con la reivindicacion 1 en el que la consulta ejecutada por cada proceso (405), (406) utiliza los operadores UNION entre las consultas SELECT limitadas con los valores de la propiedad de valor unico mas pequena.
- 6. El procedimiento de acuerdo con la reivindicacion 1 en el que la etapa de ejecutar una consulta (402) utiliza, en caso de estructuras de datos de numerosas consultas cruzadas, un operador INTERSECT entre subconsultas relacionadas con diferentes estructuras de datos.
- 7. El procedimiento de acuerdo con la reivindicacion 1 en el que la base de datos comprende:• una primera estructura (604) de datos, almacenada en la memoria, que comprende una definicion de al menos un conjunto de datos en la que cada conjunto de datos comprende un identificador de conjunto de datos y contiene de manera logica objetos de datos del mismo tipo;• una segunda estructura (606) de datos, almacenada en la memoria, que comprende definiciones de propiedades de objetos en las que cada propiedad comprende un identificador de la propiedad y un identificador de un conjunto, desde la primera estructura (604) de datos, a la que la propiedad se asigna;• una tercera estructura (601) de datos, almacenada en la memoria, que comprende definiciones de objetos en la que cada objeto comprende un identificador y un identificador de un conjunto, desde la primera estructura (604) de datos, a la que el objeto se asigna;• una cuarta estructura (701) de datos, almacenada en la memoria, que comprende definiciones de propiedades de cada objeto en la que cada propiedad de un objeto asocia un valor con un objeto, desde la tercera estructura (601) de datos, y una propiedad del conjunto,desde la segunda estructura (606) de datos, a la que el objeto se asigna;• una quinta estructura (705) de datos, almacenada en la memoria, que comprende definiciones de relaciones en la que cada relacion comprende un identificador de relacion; y• una sexta estructura (708) de datos, almacenada en la memoria, para almacenar definiciones de relaciones entre objetos en la que cada relacion de objetos se asocia una relacion, desde la quinta estructura (708) de datos, hasta dos objetos desde la tercera estructura (601) de datos.
- 8. Un programa informatico que comprende medios de codigo de programa para realizar todas las etapas del procedimiento implementado por ordenador de acuerdo con cualquiera de las reivindicaciones 1 - 7 cuando dicho programa se ejecuta en un ordenador.
- 9. Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador que realizan todas las etapas del procedimiento implementado por ordenador de acuerdo con cualquiera de las reivindicaciones 1 - 7 cuando se ejecuta en un ordenador.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13461545.9A EP2843567B1 (en) | 2013-08-30 | 2013-08-30 | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2636758T3 true ES2636758T3 (es) | 2017-10-09 |
Family
ID=49123810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13461545.9T Active ES2636758T3 (es) | 2013-08-30 | 2013-08-30 | Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior |
Country Status (4)
Country | Link |
---|---|
US (2) | US10095743B2 (es) |
EP (1) | EP2843567B1 (es) |
ES (1) | ES2636758T3 (es) |
PL (1) | PL2843567T3 (es) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2784699A1 (en) | 2013-03-29 | 2014-10-01 | Pilab S.A. | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems |
EP3159815A1 (en) | 2013-06-30 | 2017-04-26 | Pilab S.A. | Database hierarchy-independent data drilling |
EP2843567B1 (en) * | 2013-08-30 | 2017-05-10 | Pilab S.A. | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above |
EP2843568A1 (en) | 2013-08-30 | 2015-03-04 | Pilab S.A. | Computer implemented method for creating database structures without knowledge on functioning of relational database system |
EP3091449B1 (en) * | 2015-05-04 | 2018-07-25 | Deloitte Consulting GmbH | Operating a database system |
US10726008B2 (en) * | 2015-07-15 | 2020-07-28 | Sybase, Inc. | Accelerating database queries using enhanced partition elimination |
CN107193813B (zh) | 2016-03-14 | 2021-05-14 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
WO2017186774A1 (en) | 2016-04-26 | 2017-11-02 | Pilab S.A. | Systems and methods for querying databases |
CN106909666A (zh) * | 2017-02-27 | 2017-06-30 | 广东工业大学 | 一种基于多参数扰动的数据挖掘隐私保护方法 |
WO2019060861A1 (en) * | 2017-09-24 | 2019-03-28 | Domo, Inc. | SYSTEMS AND METHODS FOR ANALYZING AND VISUALIZING DATA COVERING MULTIPLE DATA SETS |
EP3732586A1 (en) | 2017-12-28 | 2020-11-04 | Datawalk Spolka Akcyjna | Systems and methods for combining data analyses |
WO2019129832A1 (en) | 2017-12-29 | 2019-07-04 | Datawalk Spolka Akcyjna | Systems and methods for context-independent database search paths |
WO2019129831A1 (en) | 2017-12-29 | 2019-07-04 | Datawalk Spolka Akcyjna | Systems and methods for determining database permissions |
US11295854B1 (en) * | 2018-09-11 | 2022-04-05 | Allscripts Software, Llc | Proximity-based patient check-in computing system |
CN111259003B (zh) * | 2020-01-07 | 2023-07-21 | 广州虎牙科技有限公司 | 一种数据库建立方法及装置 |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5257349A (en) | 1990-12-18 | 1993-10-26 | David Sarnoff Research Center, Inc. | Interactive data visualization with smart object |
US5539870A (en) | 1992-10-05 | 1996-07-23 | International Business Machines Corporation | Computerized system and process for interactively managing a distributed database system |
US5418961A (en) | 1993-01-12 | 1995-05-23 | International Business Machines Corporation | Parallel tables for data model with inheritance |
US5729730A (en) * | 1995-03-28 | 1998-03-17 | Dex Information Systems, Inc. | Method and apparatus for improved information storage and retrieval system |
US5548754A (en) | 1995-02-07 | 1996-08-20 | International Business Machines Corporation | Optimization of SQL queries using early-out join transformations |
US6038566A (en) | 1996-12-04 | 2000-03-14 | Tsai; Daniel E. | Method and apparatus for navigation of relational databases on distributed networks |
US6425005B1 (en) * | 1997-10-06 | 2002-07-23 | Mci Worldcom, Inc. | Method and apparatus for managing local resources at service nodes in an intelligent network |
US6105035A (en) | 1998-02-17 | 2000-08-15 | Lucent Technologies, Inc. | Method by which notions and constructs of an object oriented programming language can be implemented using a structured query language (SQL) |
US6587856B1 (en) * | 1998-12-07 | 2003-07-01 | Oracle International Corporation | Method and system for representing and accessing object-oriented data in a relational database system |
US6192371B1 (en) | 1999-04-28 | 2001-02-20 | Lucent Technologies, Inc | Object morphing in an object oriented computing environment using relational database query procedure |
US6986102B1 (en) * | 2000-01-21 | 2006-01-10 | International Business Machines Corporation | Method and configurable model for storing hierarchical data in a non-hierarchical data repository |
US20020029207A1 (en) | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6934712B2 (en) | 2000-03-21 | 2005-08-23 | International Business Machines Corporation | Tagging XML query results over relational DBMSs |
US6947945B1 (en) | 2000-03-21 | 2005-09-20 | International Business Machines Corporation | Using an XML query language to publish relational data as XML |
US8386920B2 (en) | 2000-04-27 | 2013-02-26 | Alcatel Lucent | Method and apparatus for data visualization |
US6598041B1 (en) * | 2000-09-07 | 2003-07-22 | International Business Machines Corporation | Method, system, and program for processing modifications to data in tables in a database system |
JP3636977B2 (ja) * | 2000-09-11 | 2005-04-06 | ダットジャパン株式会社 | 可変長データベース装置及びアクセス方法 |
EP1364313A2 (en) | 2000-10-31 | 2003-11-26 | Michael Philip Kaufman | System and method for automatically generating user interfaces for arbitrarily complex or large databases |
GB2406678B (en) * | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
US6782383B2 (en) * | 2001-06-18 | 2004-08-24 | Siebel Systems, Inc. | System and method to implement a persistent and dismissible search center frame |
US7363593B1 (en) | 2001-11-30 | 2008-04-22 | Versata Development Group, Inc. | System and method for presenting information organized by hierarchical levels |
US7693917B2 (en) | 2001-11-30 | 2010-04-06 | Intelligent Medical Objects, Inc. | Method for adaptive data management |
US7058622B1 (en) * | 2001-12-26 | 2006-06-06 | Tedesco Michael A | Method, apparatus and system for screening database queries prior to submission to a database |
US20030208493A1 (en) | 2002-04-12 | 2003-11-06 | Hall Bradley S. | Object relational database management system |
US20040133581A1 (en) | 2002-05-21 | 2004-07-08 | High-Speed Engineering Laboratory, Inc. | Database management system, data structure generating method for database management system, and storage medium therefor |
US6910032B2 (en) * | 2002-06-07 | 2005-06-21 | International Business Machines Corporation | Parallel database query processing for non-uniform data sources via buffered access |
CA2394713A1 (en) | 2002-07-23 | 2004-01-23 | Cognos Incorporated | Static drill-through modelling with graphical interface |
CA2394514A1 (en) | 2002-07-23 | 2004-01-23 | Cognos Incorporated | Method and system for parameterized database drill-through |
US7225197B2 (en) | 2002-10-31 | 2007-05-29 | Elecdecom, Inc. | Data entry, cross reference database and search systems and methods thereof |
US7895191B2 (en) | 2003-04-09 | 2011-02-22 | International Business Machines Corporation | Improving performance of database queries |
US20040255301A1 (en) | 2003-06-13 | 2004-12-16 | Andrzej Turski | Context association schema for computer system architecture |
US7814093B2 (en) * | 2003-07-25 | 2010-10-12 | Microsoft Corporation | Method and system for building a report for execution against a data store |
US7499915B2 (en) | 2004-04-09 | 2009-03-03 | Oracle International Corporation | Index for accessing XML data |
US7831384B2 (en) | 2004-10-29 | 2010-11-09 | Aol Inc. | Determining a route to destination based on partially completed route |
US20060288035A1 (en) | 2005-06-16 | 2006-12-21 | Oracle International Corporation | Relational database support for immutable media |
US8364623B1 (en) * | 2005-06-29 | 2013-01-29 | Symantec Operating Corporation | Computer systems management using mind map techniques |
US7664742B2 (en) | 2005-11-14 | 2010-02-16 | Pettovello Primo M | Index data structure for a peer-to-peer network |
US20070198557A1 (en) * | 2006-02-23 | 2007-08-23 | Microsoft Corporation | Generic object database system and design |
US8103703B1 (en) | 2006-06-29 | 2012-01-24 | Mindjet Llc | System and method for providing content-specific topics in a mind mapping system |
US7606817B2 (en) | 2006-08-02 | 2009-10-20 | Entity Labs, Ltd. | Primenet data management system |
US9020995B2 (en) * | 2006-12-28 | 2015-04-28 | International Business Machines Corporation | Hybrid relational, directory, and content query facility |
US7849050B2 (en) | 2007-01-29 | 2010-12-07 | Business Objects Data Integration, Inc. | Apparatus and method for analyzing impact and lineage of multiple source data objects |
EP2150890A1 (en) * | 2007-05-21 | 2010-02-10 | Stefan Becker | A method for providing or operating a framework for the realization of independently developed programs |
US7734659B2 (en) | 2007-06-01 | 2010-06-08 | United Technologies Corporation | System and method for creating an object model |
US20120317141A1 (en) * | 2007-10-12 | 2012-12-13 | Lexxe Pty Ltd | System and method for ordering of semantic sub-keys |
US8538013B2 (en) * | 2007-10-19 | 2013-09-17 | International Business Machines Corporation | Rules-driven hash building |
US7836100B2 (en) * | 2007-10-26 | 2010-11-16 | Microsoft Corporation | Calculating and storing data structures including using calculated columns associated with a database system |
US8028000B2 (en) * | 2008-02-28 | 2011-09-27 | Microsoft Corporation | Data storage structure |
DE102008047915B4 (de) * | 2008-09-19 | 2010-05-12 | Continental Automotive Gmbh | Infotainmentsystem und Computerprogrammprodukt |
US8214352B2 (en) | 2008-11-26 | 2012-07-03 | Hewlett-Packard Development Company | Modular query optimizer |
US20110289112A1 (en) * | 2009-01-26 | 2011-11-24 | Junpei Kamimura | Database system, database management method, database structure, and storage medium |
US8019783B2 (en) | 2009-05-19 | 2011-09-13 | Oracle International Corporation | Search interface for finding data items of interest from a database system |
US9218380B2 (en) * | 2009-12-30 | 2015-12-22 | Telecom Italia S.P.A. | Method and system for carrying out searches in a database comprising taxonomic classification of digital information contents |
FR2959089B1 (fr) | 2010-04-16 | 2012-08-03 | Inst Nat Rech Inf Automat | Outil de gestion de ressources et d'infrastructures informatiques et reseaux |
US8468151B2 (en) | 2010-06-29 | 2013-06-18 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators |
US8694537B2 (en) * | 2010-07-29 | 2014-04-08 | Soundhound, Inc. | Systems and methods for enabling natural language processing |
US20120096002A1 (en) | 2010-10-19 | 2012-04-19 | 7 Degrees, Inc. | Systems and methods for generating and managing a universal social graph database |
EP2455869A1 (en) * | 2010-11-04 | 2012-05-23 | Tieto Oyj | Method for performing a database search in a database system |
US20140046983A1 (en) | 2011-05-05 | 2014-02-13 | Centrifuge Pty Ltd | Data Analysis |
US8806352B2 (en) | 2011-05-06 | 2014-08-12 | David H. Sitrick | System for collaboration of a specific image and utilizing selected annotations while viewing and relative to providing a display presentation |
US9720708B2 (en) * | 2011-08-19 | 2017-08-01 | Advanced Micro Devices, Inc. | Data layout transformation for workload distribution |
US9020981B2 (en) | 2011-09-30 | 2015-04-28 | Comprehend Systems, Inc. | Systems and methods for generating schemas that represent multiple data sources |
JP5916325B2 (ja) | 2011-09-30 | 2016-05-11 | 株式会社Screenホールディングス | インクジェットプリンタおよび画像記録方法 |
US8874621B1 (en) | 2011-10-09 | 2014-10-28 | LockPath, Inc. | Dynamic content systems and methods |
US9286583B2 (en) | 2011-12-05 | 2016-03-15 | International Business Machines Corporation | Integrating mind mapping technology with case modeling |
US9472015B2 (en) | 2012-05-15 | 2016-10-18 | Sap Se | Real-time visualization of transactional data objects |
US9165048B2 (en) * | 2012-05-16 | 2015-10-20 | Sap Se | Linked field table for databases |
US8793246B1 (en) * | 2013-03-08 | 2014-07-29 | Fmr Llc | Identifying ranking scores for domains of interest |
EP2784699A1 (en) * | 2013-03-29 | 2014-10-01 | Pilab S.A. | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems |
US9483508B1 (en) | 2013-06-28 | 2016-11-01 | Google Inc. | Omega names: name generation and derivation |
EP3159815A1 (en) * | 2013-06-30 | 2017-04-26 | Pilab S.A. | Database hierarchy-independent data drilling |
EP2843568A1 (en) * | 2013-08-30 | 2015-03-04 | Pilab S.A. | Computer implemented method for creating database structures without knowledge on functioning of relational database system |
EP2843567B1 (en) * | 2013-08-30 | 2017-05-10 | Pilab S.A. | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above |
-
2013
- 2013-08-30 EP EP13461545.9A patent/EP2843567B1/en active Active
- 2013-08-30 PL PL13461545T patent/PL2843567T3/pl unknown
- 2013-08-30 ES ES13461545.9T patent/ES2636758T3/es active Active
-
2014
- 2014-08-27 US US14/469,958 patent/US10095743B2/en active Active
-
2018
- 2018-08-08 US US16/058,025 patent/US11893022B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190042624A1 (en) | 2019-02-07 |
EP2843567A1 (en) | 2015-03-04 |
US10095743B2 (en) | 2018-10-09 |
EP2843567B1 (en) | 2017-05-10 |
US20150066986A1 (en) | 2015-03-05 |
PL2843567T3 (pl) | 2017-10-31 |
US11893022B2 (en) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2636758T3 (es) | Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior | |
US9965513B2 (en) | Set-orientated visibility state retrieval scheme | |
US11436225B2 (en) | Database hierarchy-independent data drilling | |
US9280583B2 (en) | Scalable multi-query optimization for SPARQL | |
US11775523B2 (en) | Hash table structure for optimizing hash join operations in a relational database system | |
US8812491B2 (en) | Optimizing queries using predicate mappers | |
US20170060944A1 (en) | Optimized inequality join method | |
EP2641195A1 (en) | Parallel repartitioning index scan | |
US9569485B2 (en) | Optimizing database query | |
US10380115B2 (en) | Cross column searching a relational database table | |
US8799329B2 (en) | Asynchronously flattening graphs in relational stores | |
US9870399B1 (en) | Processing column-partitioned data for row-based operations in a database system | |
US10733188B2 (en) | Transforming a scalar subquery | |
US20050160091A1 (en) | Macro-based dynamic discovery of data shape | |
US10977284B2 (en) | Text search of database with one-pass indexing including filtering | |
US11423027B2 (en) | Text search of database with one-pass indexing | |
US10025818B2 (en) | Customize column sequence in projection list of select queries | |
SMAGULOVA et al. | Vertex-centric Parallel Computation of SQL Queries Extended Version |