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 PDF

Info

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
Application number
ES13461545.9T
Other languages
English (en)
Inventor
Krystian Piecko
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.)
PILAB S A
PILAB SA
Original Assignee
PILAB S A
PILAB SA
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 PILAB S A, PILAB SA filed Critical PILAB S A
Application granted granted Critical
Publication of ES2636758T3 publication Critical patent/ES2636758T3/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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • 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
    • G06F16/284Relational databases

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.
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/).
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)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. 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. 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. 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. 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. 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. 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. 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. 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. 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.
ES13461545.9T 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 Active ES2636758T3 (es)

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 (14)

* Cited by examiner, † Cited by third party
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
EP2819030A1 (en) 2013-06-30 2014-12-31 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
ES2636758T3 (es) * 2013-08-30 2017-10-09 Pilab S.A. Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior
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 广东工业大学 一种基于多参数扰动的数据挖掘隐私保护方法
US20200233905A1 (en) * 2017-09-24 2020-07-23 Domo, Inc. Systems and Methods for Data Analysis and Visualization Spanning Multiple Datasets
EP3732587B1 (en) 2017-12-29 2023-07-19 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)

* Cited by examiner, † Cited by third party
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 ダットジャパン株式会社 可変長データベース装置及びアクセス方法
CA2427354A1 (en) 2000-10-31 2002-08-01 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
GB2406679B (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
JPWO2010084754A1 (ja) * 2009-01-26 2012-07-19 日本電気株式会社 データベースシステム、データベース管理方法、及びデータベース構造
US8019783B2 (en) 2009-05-19 2011-09-13 Oracle International Corporation Search interface for finding data items of interest from a database system
WO2011080775A1 (en) * 2009-12-30 2011-07-07 Telecom Italia S.P.A. Method and system for carrying out searches in a database
FR2959089B1 (fr) 2010-04-16 2012-08-03 Inst Nat Rech Inf Automat Outil de gestion de ressources et d'infrastructures informatiques et reseaux
US10803066B2 (en) 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database 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
JP5916325B2 (ja) 2011-09-30 2016-05-11 株式会社Screenホールディングス インクジェットプリンタおよび画像記録方法
US9020981B2 (en) 2011-09-30 2015-04-28 Comprehend Systems, Inc. Systems and methods for generating schemas that represent multiple data sources
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
EP2819030A1 (en) * 2013-06-30 2014-12-31 Pilab S.A. Database hierarchy-independent data drilling
ES2636758T3 (es) * 2013-08-30 2017-10-09 Pilab S.A. Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior
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

Also Published As

Publication number Publication date
EP2843567B1 (en) 2017-05-10
US20150066986A1 (en) 2015-03-05
PL2843567T3 (pl) 2017-10-31
US11893022B2 (en) 2024-02-06
US10095743B2 (en) 2018-10-09
US20190042624A1 (en) 2019-02-07
EP2843567A1 (en) 2015-03-04

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
US10133778B2 (en) Query optimization using join cardinality
US8122008B2 (en) Joining tables in multiple heterogeneous distributed databases
US11436225B2 (en) Database hierarchy-independent data drilling
US20160162549A1 (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
WO2012067907A1 (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
US7197496B2 (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