MXPA05012291A - Acceso a datos complejos. - Google Patents

Acceso a datos complejos.

Info

Publication number
MXPA05012291A
MXPA05012291A MXPA05012291A MXPA05012291A MXPA05012291A MX PA05012291 A MXPA05012291 A MX PA05012291A MX PA05012291 A MXPA05012291 A MX PA05012291A MX PA05012291 A MXPA05012291 A MX PA05012291A MX PA05012291 A MXPA05012291 A MX PA05012291A
Authority
MX
Mexico
Prior art keywords
data
search
conceptual
computer
complex
Prior art date
Application number
MXPA05012291A
Other languages
English (en)
Inventor
Suraj T Poozhiyil
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA05012291A publication Critical patent/MXPA05012291A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Se describen metodos, sistemas, y medios legibles por computadora para implementar varios aspectos de los datos complejos en un cuadro conceptual que habilitan datos complejos en la forma de cuadros que van a ser agregados a un cuadro conceptual. Los datos complejos se pueden mapear con valores escalonados en una pluralidad de cuadros de datos. Los datos complejos se pueden capturar a traves de metodos de modelacion de datos, acceder a traves de metodos portadores, y buscar a traves de metodos de expansion de busqueda.

Description

ACCESO A DATOS COMPLEJOS CAMPO TECNICO La presente invención se refiere en general al campo de aplicaciones de software. Más particularmente, la presente invención se refiere a aplicaciones de software que almacenan datos y reportan datos, tales como bases de datos. Más particularmente aún, los aspectos de la presente invención se refieren al almacenamiento y búsqueda de datos en dichas aplicaciones de software.
ANTECEDENTES DE LA INVENCION Con el fin de manejar grandes cantidades de datos, las aplicaciones de software de computadora, tales como las aplicaciones de hoja de cálculo y base de datos, se han programado para organizar y almacenar los datos en una forma lógica. Las aplicaciones de hoja de cálculo y base de datos típicas comprenden un gran número de registros de información, en donde cada registro comprende un número predeterminado de campos. En el contexto de una base de datos, un sistema de administración de la base datos típicamente se utiliza para proveer herramientas de software para manipular la base de datos más simplemente. Los sistemas de administración de bases de datos de ejemplos incluyen Microsoft® Access y Microsoft® SQL Server, entre otros. Las bases de datos generalmente permiten a los usuarios establecer interrelaciones de los datos complejos que no están disponibles en las hojas de cálculo, lo cual incrementa su poder mientras también hacia las aplicaciones de las bases de datos aún más difíciles para que los nuevos usuarios sean maestros. Un sistema de administración de base de datos típico provee al usuario la habilidad de agregar, modificar o eliminar datos, buscar datos utilizando filtros, y la habilidad de reportar registros en la base de datos. Los datos en las bases de datos típicamente están representados utilizando filas y columnas. Un campo es una intersección de una fila y una columna. En general, cualquier campo dado solamente puede contener un valor de dato de escalonamiento. Las búsquedas de los datos típicamente toman la forma de un lenguaje de búsqueda, tal como el Lenguaje de Búsqueda Estructurado (SQL). Dichas búsquedas se pueden llevar a cabo en datos localmente controlados, o someterse a un servidor de base de datos para la ejecución. En algunos casos, una base de datos puede contener una jerarquía de datos en lugar de un cuadro plano de valores. Por ejemplo, en una aplicación de rastreo de elementos, cada elemento puede ser asignado a una o más personas. Un usuario debe por consiguiente modelar este tipo de jerarquía utilizando múltiples cuadros enlazados, y buscar dichos cuadros utilizando búsquedas relativamente complejas que unen datos de múltiples cuadros. Más específicamente, podría ser un cuadro de elementos, y otro cuadro de personas conteniendo toda las posibles personas que podrían tener un elemento asignado a ellos, y finalmente, un cuadro de intersección en donde los elementos se asignará las personas. La configuración de dicha jerarquía de cuadros puede ser tanto molesto como confuso para un usuario, especialmente uno usuario de las aplicaciones de base de datos. La búsqueda a través de dicha jerarquía puede ser similarmente problemática debido a la naturaleza compleja de búsquedas muy-cuadro, especialmente si un usuario carece de un conocimiento profundo de lenguaje de las búsquedas. Es con respecto a estas consideraciones y otras en la presente invención se ha hecho.
COMPENDIO DE LA INVENCION De acuerdo con la presente invención, se provee un método implementado por computadora y un medio legible por computadora para agregar datos complejos a un cuadro conceptual. Un cuadro conceptual es un cuadro que contiene por lo menos un tipo de datos complejos. Un tipo de dato complejo es uno o más tipos de columnas más escalonadas y/u otros tipos complejos que están "agrupados" juntos para formar un nuevo tipo de datos individual. Primero, se recibe una señal para agregar un tipo de dato complejo un cuadro. Se crean uno o más cuadros de datos. Adicionalmente, se crean enlaces al uno o más cuadros de datos en el cuadro conceptual. De acuerdo con otros aspectos, la presente invención se refiere a un método implementado por computadora y un medio legible por computadora para modelar datos en un cuadro conceptual. Primero, se recibe una señal para almacenar uno o más valores de datos. La estructura del cuadro conceptual se analiza, y se determinan uno o más mapeos para uno o más cuadros de datos. Finalmente, los datos almacenan en el uno o más cuadros de datos. De acuerdo con aún otros aspectos, la presente invención se refiere a un método implementado por computadora y un medio legible por computadora para la expansión de una búsqueda de un cuadro conceptual. Primero, se recibe una búsqueda de un cuadro conceptual. Enseguida, se analiza la estructura del cuadro conceptual, y se aplican una o más reglas de expansión a la búsqueda. Finalmente, se emite la búsqueda expandida. De acuerdo con aún otros aspectos, la presente invención se refiere a un método implementado por computadora y a un medio legible por computadora para moverse en un cuadro conceptual. Primero, se recibe una señal para acceder los datos complejos el cuadro conceptual. Se leen uno o más mapeos asociados con los datos complejos. Finalmente los datos escalonados de uno o más cuadros de datos se leen utilizando los mapeos. De acuerdo con otros aspectos adicionales, la presente invención se refiere un sistema para modelar un cuadro conceptual. Un módulo de modulación de datos agregar datos complejos el cuadro, y almacenar los datos complejos en uno o más cuadros de datos. Un módulo de expansión de la búsqueda expande las búsquedas del cuadro conceptual para incluir una o más búsquedas del cuadro de datos. Un módulo portador recupera los datos complejos en un cuadro conceptual. La invención de mesa puede implementar como un proceso de computadora, un sistema de computación o un artículo de fabricación tal como producto de programa de computadora o un medio legible por computadora. El medio legible por computadora puede ser un medio de almacenamiento por computadora legible a través de un sistema de computadora y que codifica un programa de computadora de instrucciones para ejecutar un proceso de computadora. El medio legible del programa de computadora también puede ser una señal propagada en un portador legible a través de un sistema de computadora y que codifica un programa de computadora de instrucciones para ejecutar un proceso de computadora. Estos y otros varios aspectos también como ventajas, que caracterizan la presente invención, serán aparentes a partir de la lectura de la siguiente descripción detallada y de la revisión de los dibujos asociados.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 muestra un entorno de base de datos en el cual se puede implementar una modalidad de la presente invención. La Figura 2 ilustra un ejemplo de un entorno del sistema de computación adecuado en el cual una modalidad de la presente invención se puede implementar La Figura 3 ilustra los módulos presentes en una modalidad de la presente invención. La Figura 4 ilustra el flujo operacional de las operaciones llevadas a cabo de acuerdo con una modalidad de la presente invención. La Figura 5 ilustra el flujo operacional de las operaciones llevadas a cabo de acuerdo con una modalidad de la presente invención. La Figura 6 ilustra el flujo operacional de las operaciones llevadas a cabo de acuerdo con una modalidad de la presente invención. La Figura 7 ilustra el flujo operacional de las operaciones llevadas a cabo de acuerdo con una modalidad de la presente invención.
DESCRIPCION DETALLADA DE LA INVENCION La Figura 1 ¡lustra una imagen de pantalla de una vista tabular 102 de una base de datos del orden del producto dentro de sistema de administración de base de datos. El cuadro 102 incluye un cuadro que comprende múltiples filas y columnas de datos. Cada fila de datos generalmente comprende un solo registro de datos. Generalmente, cada columna de datos en una base de datos se puede contar para incluir elementos de datos de un tipo homogéneo.
Por ejemplo, la columna Orden ID 104 incluye elementos datos en un formato numérico, la columna Cliente 106 incluye datos en la forma de cadenas alfanuméricas, la columna Orden Fecha 108 incluye datos en formato de fecha, etc. La columna Orden ID de un solo registro corresponde al campo Orden ID de ese registro. De esta forma una colección de campos para comprender una columna. Uno con experiencia la técnica apreciará que se pueden controlar muchos otros tipos de datos en una base de datos, y desplegarse utilizando un cuadro dentro de un sistema de administración de base de datos. La presente invención permite la jerarquía compleja de los datos que van a ser modelados utilizando la conceptualización de un cuadro de base de datos simple (similar en apariencia al cuadro de la base de datos 102, pero estructuralmente diferente), liberando los usuarios de la carga de formar búsquedas sofisticadas a través de múltiples cuadros, y de hojear hacia delante y hacia atrás múltiples cuadros para ver y manipular los datos. Dado que la presente invención se puede implementar como un sistema de computadora, la Figura 2 se provee para ilustrar un ejemplo de un entorno del sistema de computación adecuado en el cual se pueden implementar las modalidades de la invención. En su configuración más básica, el sistema 200 incluye por lo menos una unidad de procesamiento 202 y una memoria 204. Dependiendo de la configuración exacta y el tipo de dispositivo de computación, la memoria 204 puede ser volátil (tal como RAM), no volátil (tal como ROM, memoria no volátil, etc.) o alguna combinación de las dos.
Esta configuración más básica se ilustra la Figura 2 a través de la línea punteada 206. Además de la memoria 204, el sistema puede incluir por lo menos una otra forma de medio legible por computadora. El medio legible por computadora puede ser cualquier medio disponible que pueda ser accedido a través del sistema 200. A manera de ejemplo, y no limitación, un medio elegir por computadora puede comprender un medio de almacenamiento por computadora y medios de comunicación. El medio de almacenamiento por computadora incluye medios volátiles y no volátiles, removibles y no removibles implementados a través de cualquier método tecnología para almacenar información tales como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. La memoria 204, el almacenamiento removible 208, y el almacenamiento no removible 210 todos son los ejemplos de medios de almacenamiento por computadora. El medio de almacenamiento por computadora incluye, pero no se limita a, RAM, ROM, EPROM, EEPROM, memoria no volátil u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos para almacenamiento magnético, o cualquier otro medio que pueda ser utilizado para almacenar información deseada y que puede ser accedido a través del sistema 200. Cualquier medio de almacenamiento por computadora puede ser parte del sistema 200.
El sistema 200 también puede contener una conexión(es) de comunicaciones 212 que permite al sistema comunicarse con otros dispositivos. La conexión(es) de comunicaciones 212 es un ejemplo de medios de comunicación. Los medios de comunicación típicamente ejemplifican instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de distribución información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas en tal forma que codifican la información en la señal. A manera de ejemplo, y no limitación, los medios de comunicación incluyen medios cableados tal como una red cableada o conexión directa cableada, y medios inalámbricos tales como acústicos, RF, infrarrojos y otros medios inalámbricos. El término medio legible por computadora como se utiliza aquí incluye tanto medios de almacenamiento como medios de comunicación. De acuerdo con una modalidad, el sistema 200 incluye dispositivos periféricos, tal como el dispositivo(s) de entrada 214 y/o el dispositivo(s) de salida 216. Los dispositivos de entrada ilustrativo 214 incluyen, sin limitación, teclados, ratones de computadora, plumas, o estiletes, dispositivos de entrada de voz, dispositivos de entrada táctiles y similares. El dispositivo(s) de salida 216 incluye, sin limitación, dispositivos tales como pantallas, bocinas, e impresoras. Para los propósitos de esta invención, la pantallas un dispositivo de salida principal. Cada uno de estos dispositivos es bien conocida la técnica y, por consiguiente no se describe con detalle aquí. Con el entorno de computación en mente, las siguientes figuras se describen con referencia a operaciones lógicas siendo llevadas a cabo para implementar procesos que ejemplifican varias modalidades de la presente invención. Estas operaciones lógicas están implementadas (1) como una secuencia de pasos implementados por computadora o módulos de programa que operan en un sistema de computación y/o (2) como circuitos lógicos de máquina interconectados o módulos de circuitos dentro del sistema de computación. La implementación es sujeta de elección dependiendo de los requerimientos de funcionamiento del sistema de computación que implementan invención. Por consiguiente, las operaciones lógicas que forman las modalidades de la presente invención descritas aquí están referidas de modos diversos como operaciones, dispositivos estructurales, acciones o módulos. Se reconocerá a través de uno con experiencia la técnica éstas operaciones, dispositivos estructurales, acciones y módulos se pueden implementar en software, en firmware, en lógica digital de propósito especial, y cualquier combinación de los mismos sin apartar se del espíritu y alcance de la presente invención como se enumera dentro de las reivindicaciones anexas aquí. La Figura 3 ilustra los módulos de acuerdo con una modalidad de la presente invención. Un módulo de interfase de usuario permite a los usuarios ver, modificar, buscar, y de algún otro modo manipular los datos. La interacción del usuario con el módulo de modulación de los datos 304, el módulo de expansión de la búsqueda 306 y el módulo de la modulación del cursor 308 por consiguiente toma lugar a través del módulo de la interfase de usuario 302. Igualmente, los datos de dichos módulos 304, 306, y 308 se despliegan a través del módulo de la interfase de usuario 302. La interfase de usuario 302 pasa los parámetros de la jerarquía del cuadro al módulo de la modulación de los datos 304, y puede, adiclonalmente, recibir retroalimentación del módulo de modulación de los datos 304 para ayudar a un usuario con las definiciones o modificaciones adicionales del cuadro. El módulo de interfase de usuario 302 hasta las búsquedas suministradas por un usuario al módulo de expansión de la búsqueda 306, e igualmente recibe resultados de la búsqueda del módulo de expansión de la búsqueda 306. El módulo de la interfase de usuario 302 hasta las solicitudes de un usuario para datos al módulo portador 308 para la recuperación de los datos, e igualmente recibe datos recuperados del módulo portador 308. En una modalidad, el módulo de la interfase de usuario 302 directamente convierte los datos devueltos de uno o más módulos 304, 306 y 308 en una pantalla. En una modalidad alternativa, el módulo de la interfase de usuario 302 utiliza las Interfases de Programación de la Aplicación (APIs) para actualizar una pantalla. El módulo para la modulación de los datos 304 permite la creación y ia modificación de un cuadro conceptual. Un cuadro conceptual es un cuadro de datos que puede contener datos complejos (no-escalonados) en la forma de otro cuadro, así como datos complejos. Un cuadro datos típicamente incluye solamente datos escalonados, y puede incluir números, cadenas alfanuméricas, fracciones y similares. Los datos complejos pueden incluir uno o más cuadros anidados, los cuales por sí mismos pueden incluir niveles adicionales de cuadros anidados. Un cuadro conceptual puede contener arbitrariamente muchos de dichos cuadros jerárquicamente relacionados. Un campo dado en un cuadro conceptual por consiguiente puede ser físicamente mapeado a otro campo en otro cuadro completamente. Además, este mapeo físico y sus consecuencias pueden ser completamente transparentes para un usuario. El módulo para la modulación de los datos 304 puede recibir parámetros espécificados por un usuario para un cuadro conceptual a partir de la interfase de usuario 302. En una modalidad, un cuadro conceptual se almacena como uno o más cuadros de datos conteniendo datos escalonados. Los valores de los datos escalonados que existen solamente del cuadro conceptual se almacenan en un cuadro de datos específicamente asignado para valores escalonados no mapeados. Uno o más valores de datos que físicamente se mapean en un cuadro de datos están "desmenuzados" a través del módulo de modulación de los datos 304 tales como aquellos valores de los datos que están físicamente almacenados en el cuadro datos 310. Como un resultado, el usuario necesita solamente negociar con un cuadro conceptual individual, mientras las complejidades de traducir el cuadro conceptual a cuadros jerárquicos múltiples para almacenamiento son transparentes para el usuario. Igualmente, la implementación del desmenuzamiento no necesariamente involucra ninguna complejidad adicionada en el motor de almacenamiento de la base de datos o procesador de la búsqueda de la base de datos. En una modalidad, los valores de los datos en un cuadro conceptual se desmenuzan a los cuadros de datos apropiados cuando se agrega una columna compleja a un cuadro. En una modalidad alternativa, los valores de los datos en un cuadro conceptual se desmenuzan a los cuadros de datos apropiados cuando se recibe un comando de Guardar de un usuario. En aún otra modalidad, los valores de los datos en un cuadro conceptual se desmenuzan a los cuadros de datos apropiados siempre que se detecte un cambio de valor. El módulo de expansión de la búsqueda 306 recibe una búsqueda de cuadro conceptual del módulo de la interfase de usuario 302 y expande la búsqueda con base en la estructura jerárquica del cuadro conceptual. En una modalidad, el módulo de expansión de la búsqueda 306 expande una búsqueda con base en la estructura jerárquica del cuadro conceptual, utilizando un grupo de reglas definidas por un programador. Un grupo de reglas de expansión de búsqueda ilustrativo se establece continuación en los Cuadros 1-12. En una modalidad alternativa, el módulo de expansión de la búsqueda 306 expande una búsqueda enlazando (un término de la técnica en el campo de la base datos, análogo a combinar) un subgrupo de cuadros de datos relevantes junto con un cuadro de datos individual, y después ejecuta la búsqueda del cuadro conceptual en el cuadro de datos individual. En otra modalidad alternativa, el módulo de expansión de la búsqueda 306 expande una búsqueda enlazando todos los cuadros de datos 310 enlazados a través de un cuadro conceptual, independientemente de la relevancia, dentro de un cuadro de datos individual, y después ejecuta la búsqueda del cuadro conceptual en ese cuadro de datos individual. En una modalidad, el módulo de expansión de la búsqueda 306 lleva cabo búsquedas directamente en los cuadros de datos 310. En una modalidad alternativa, el módulo de expansión de la búsqueda 306 somete la búsqueda expandida a un servidor de base de datos para la ejecución. Dicha modalidad no necesariamente requiere ningún cambio al procesador de la búsqueda o al servidor de la base de datos. El módulo portador 308 habilítala lectura de la navegación de un cuadro conceptual. Cuando se recibe una señal a través de la interfase de usuario 302 para abrir un cuadro conceptual, el módulo portador 308 analiza cualesquiera mapeos para que los cuadros de datos que existen. Los valores de los datos escalonados de esos cuadros de datos se recuperan utilizando los mapeos, y los valores de los datos escalonados son devueltos a la interfase de usuario 302 para despliegue. Si un usuario selecciona un campo del cuadro conceptual conteniendo un cuadro de datos, se hace referencia al mapeo del cuadro en el campo. Se toma una panorámica de los cuadros mapeos a datos, y los resultados se despliegan en el cuadro conceptual. En una modalidad, los cuadros mapeados a datos también se bloquean para revisión para que el contenido no pueda cambiar. En una modalidad alternativa, los cuadros mapeados a datos no están bloqueados, más bien los cuadros mapeados a datos periódicamente se verifican para actualizaciones que van a ser propagadas en el cuadro conceptual desplegado. Uno con experiencia técnica reconocerán que ya que las modalidades ilustrativas presentadas en conjunción con la Figura 3 involucran un cuadro conceptual que puede incluir cuadros de datos, arbitrariamente se pueden utilizar muchos niveles de falta de dirección sin apartarse del alcance de la invención reclamada. Por ejemplo, un cuadro conceptual puede incluir uno o más cuadros conceptuales, los cuales por sí mismos incluyen aún otros cuadros conceptuales. En esta situación, se debe tener cuidado para prevenir un bucle infinito, principalmente un cuadro conceptual haciendo referencia (ya sea directamente o indirectamente) asimismo, de esta forma creando un número infinito de niveles de falta de dirección. En una modalidad, el módulo de la modulación de los datos 304 puede llevar a cabo almacenes de datos anatómicamente. Esto significa que cualquier intento de un almacén de datos dado, todos o ninguno de los cuadros de datos será actualizado. Es decir, se puede evitar la lectura de los datos mientras los cuadros de los datos están en un estado de transición. La escritura del cuadro de datos atómicos se puede llevar a cabo a través de un semáforo, bloquean archivos, u otro método conocido por aquellos con experiencia técnica, y puede adicionalmente incorporar una disminución (deshaciendo una o más de las escrituras pendientes). La Figura 4 ilustra un flujo operacional de acuerdo con una modalidad de la invención, en la cual se crea un cuadro conceptual. La operación de recepción 402 recibe una señal de un usuario para agregar un tipo de datos complejos a un cuadro existente o un cuadro conceptual. Esta señal se puede recibir de un usuario a través de una interfase de usuario, de un proceso de computadora automatizado, o de otra fuente de captura. Esta recepción activa la operación de creación 404 para crear por lo menos un cuadro datos.
La operación de creación 404 crea por lo menos un cuadro de datos para contener cualesquiera valores escalonados asociados con los datos complejos. Los datos capturados dentro del campo de datos complejos serán desmenuzados dentro del cuadro de datos correspondiente cuando se almacena el cuadro conceptual. En una modalidad, cada cuadro de datos creados toma la forma de uno o más archivos de base de datos. En otra modalidad, cada cuadro creados tómala forma de una estructura de datos dentro de uno o más archivos de base de datos. En aún otra modalidad, la operación de creación 404 adicionalmente inicia uno o más valores escalonados a un valor por omisión dentro de cada cuadro de datos creado. En una modalidad en donde ya existe un cuadro de datos adecuado, la operación de creación 404 se puede omitir y el cuadro de datos puede simplemente ser enlazado. Después de la operación de creación 404 la operación de enlace 406 agrega uno o más enlaces al cuadro conceptual, correspondiente a uno o más cuadros de datos a través de la operación de creación 404. Se puede utilizar un enlace para localizar un cuadro de datos cuando se selecciona un campo de datos complejos a través del portador (descrita anteriormente, en conjunción con la Figura 3, y más adelante, en conjunción con la Figura 7). Cambios se puede utilizar un enlace para localizar un cuadro de datos cuando un valor escalonado dentro de un campo de datos complejo se adiciona o se modifica (descrita anteriormente, en conjunción con la Figura 3). La operación de determinación 408 determina si se requieren cuadros adicionales para acomodar los datos complejos. Si se necesitan más cuadros, el flujo se desvía hacia SI de regreso para crear la operación 404. Si no se necesitan más cuadros, el flujo se desvía a NO hacia el final del flujo 410. Una vez que se ha alcanzado el final del flujo 410, los datos complejos pueden ser visualizados son manipulados utilizando el portador (discutido anteriormente en conjunción con la Figura 3, y más adelante en conjunción con la Figura 7), y se almacenan a través del desmenuzamiento (discutido anteriormente en conjunción con la Figura 3, y más adelante en conjunción con la Figura 5). En una modalidad, se puede insertar un cuadro de datos existente dentro de un cuadro conceptual. En dicha modalidad, una operación de verificación (no descrita) verificaría la existencia del cuadro de datos, y la operación de creación 404 sería omitida. La Figura 5 ilustra un flujo operacional de acuerdo con una modalidad de la presente invención en la cual los datos de un cuadro conceptual se desmenuzan y se almacenan en uno o más de los cuadros de datos correspondientes. La operación de recepción 502 recibe una señal para almacenar uno o más valores de datos complejos asociados con el cuadro conceptual. La señal puede ser el resultado del guardado de datos explícita del usuario dentro de una aplicación para administración de la base de datos. Alternativamente, la señal se puede recibir de un proceso automatizado que sincroniza los datos modificados. La recepción de una señal a través de la operación de recepción 502 activa la operación de análisis 504. La operación de análisis 504 analiza el cuadro conceptual a través de los valores de los datos complejos almacenados, y determina la estructura del cuadro conceptual. Con base en estos datos estructurales, la operación de determinación 506 determina uno o más mapeos a ubicaciones en el cuadro de datos. Estos mapeos pueden estar en la forma de un grupo de coordinadas del cuadro de datos, un apuntador a una ubicación de memoria conteniendo un cuadro de datos, un nombre de archivo del cuadro de datos, un número de identificación de registro único, u otros medios a través de los cuales los datos pueden ser tratados, o cualquier combinación de los mismos. La operación de almacén 508 almacena uno o más valores de datos a partir del cuadro conceptual dentro del cuadro de datos respectivo de los valores de los datos utilizando estos mapeos, momento del cual los datos del cuadro conceptual han sido exitosamente desmenuzados. Los datos pueden ser "unidos" a través del portador (descrito anteriormente, en conjunción con la Figura 3 y más adelante, en conjunción con la Figura 7). En una modalidad, la operación del almacén 508 lleva a cabo el almacén de datos anatómicamente. En otra modalidad, la operación del almacén 508 puede retroceder almacenes incompletos. La Figura 6 ilustra un flujo operacional de acuerdo con una modalidad de ta presente invención en la cual se expande una búsqueda de un cuadro conceptual para procesar datos desmenuzados. La operación de recepción 602 recibe una búsqueda de un cuadro conceptual. En una modalidad, dicha búsqueda puede ser capturada en forma que texto a través de un usuario. En otra modalidad, dicha búsqueda puede ser completamente o parcialmente construida utilizando una interfase de usuario gráfica. En aún otra modalidad, dicha búsqueda puede ser generada automáticamente a través de una computadora. La operación de análisis 604 analiza el cuadro conceptual a través del cual los datos complejos se van a buscar, y determina la estructura del cuadro conceptual junto con cualquier mapeo asociado con los cuadros de los datos. Estos mapeos pueden tomar cualquiera de varias diferentes formas (como se discutió previamente en conjunción con la Figura 5). La operación de determinación 606 utilizar los datos estructurales y los mapeos a partir de la operación de análisis 604, en conjunción con un grupo de reglas de expansión, para determinar si cualesquiera de las reglas son apropiadas para la búsqueda y si esas reglas llaman una expansión. Si ninguna regla es apropiada para la búsqueda, o si una regla aplicable dicta que el expansión está completa, el flujo se desvía hacia NO para emitir la operación 610. Si una o más reglas son apropiadas para la búsqueda, el flujo se desvía hacia SI para aplicar la operación 608. Si uno o más reglas expansión son apropiadas para aplicarse a una búsqueda, la operación de aplicación 608 expande la búsqueda de acuerdo con ese reglas. En una modalidad, la operación de aplicación puede crear una nueva búsqueda como parte de la expansión de la búsqueda. Algunas reglas de expansión ilustrativas se establecen a continuación en los Cuadros 1-12, incluyendo la expansión utilizando dichos términos SQL como UNIRSE para combinar cuadros de datos juntos antes de evaluar los datos. Uno con experiencia la técnica apreciará que la operación de determinación 606 y la operación de aplicación 608 pueden tomar lugar repetidamente antes de que una búsqueda esté completamente expandida en esta forma lista para ser emitida por la operación de emisión 610. Se puede aplicar más de una regla en una variedad de órdenes, y una sola regla se puede aplicar más de una vez la expansión de la búsqueda. En una modalidad que implementa la expansión de una búsqueda incrementar, las reglas para la expansión de la búsqueda se pueden mantener de forma ortogonal una con la otra, y de esta forma mantenerse relativamente simples. En una modalidad que lleva cabo la expansión incremental de una búsqueda, la estructura datos puede ser necesaria para almacenar resultados intermedios del aplicación de las reglas expansión incrementar. En una modalidad alternativa, se puede aplicar una pluralidad de reglas expansión de la búsqueda a través de la operación de aplicación 608. La operación de emisión 610 emite una búsqueda expandida a través de las operaciones de determinación y aplicación 606 y 608. En una modalidad, la operación de emisión 610 busca en las bases de datos directamente. En una modalidad alternativa, la operación de emisión 610 envía la búsqueda a un servidor de base de datos. La Figura 7 ilustra un flujo operacional de acuerdo con una modalidad de la presente invención, en donde el portador habilita los datos que van a ser recuperados de un cuadro conceptual desmenuzado. La operación de recepción 702 recibe una señal para abrir los datos complejos en un cuadro conceptual. Dicha señal puede resultar de un usuario abriendo un cuadro conceptual existente conteniendo datos complejos que deben ser desplegados, de un usuario moviendo el cursor a un campo del cuadro conceptual conteniendo datos complejos, o a través de otras capturas generadas por el usuario o generadas por computadora. La operación de lectura 704 lee uno o más mapeos para las ubicaciones de los cuadros de datos están asociados con el cuadro conceptual. Como se discutió previamente, estos mapeos pueden tomar una variedad de formas. La operación de recuperación 706 entonces recupera los valores de los datos escalonados a partir del cuadro de datos indicados por los mapeos. Los valores escalonados recuperados a través de la operación de recuperación 706 se utilizan para alimentar los datos en un cuadro conceptual, los cuales son desplegados a través de la operación de despliegue 708. La operación de despliegue 708 despliega el cuadro conceptual conteniendo los valores escalonados recuperados a través de la operación de recuperación 706. La operación de desvía 708 puede directamente convertir el cuadro conceptual sobre la pantalla en una modalidad, puede confiar su en las Interfases de Programación de Aplicación (APIs) para llevar a cabo la conversión en otra modalidad, o puede utilizar otros métodos para desplegar datos conocidos por aquellos con experiencia en la técnica en aún otras modalidades contempladas. Uno con experiencia en la técnica apreciará que las modalidades reclamadas aquí se pueden utilizar no solamente en el contexto de aplicaciones de base de datos y hoja de cálculo que utilizan tipos de datos complejos, sino también en el contexto de grupos de servicios colabora tipos tales como Microsoft® Sharepoint.
Dichos grupos pueden incorporar sus propios tipos de datos complejos conteniendo múltiples valores (por ejemplo, múltiples elecciones, archivos anexos, etc.). Estos tipos de datos complejos se pueden manejar substancialmente en la misma forma que las modalidades ilustradas discutidas aquí. En una modalidad particular, un grupo de reglas expansión de búsqueda SQL se utiliza a través del módulo de expansión de la búsqueda 306 (Figura 3), y a través de la operación de determinación 606 y la operación de aplicación 608 (Figura 6). Un grupo ilustrativo de varias reglas de expansión de búsqueda SQL se presenta en los Cuadros 1-11. Estas reglas tratan con situaciones de complejidad variable. En un ejemplo (Cuadro 1), se expande una búsqueda SELECCIONAR relativamente simple. Una búsqueda SELECCIONAR simple se define como una búsqueda que no tiene agrupamientos o agregados. Cuando no hay restricciones sobre los campos escalonados complejos, solamente el cuadro padre necesita ser referenciado en la búsqueda expandida. Cuando hay una descripción sobre el escalonamiento complejo en la cláusula EN DONDE de una búsqueda, se debe llevar a cabo una unión entre los tipos de datos de cuadro y los complejos (ver Cuadro 1 para un ejemplo básico). Los filtros en la cláusula EN DONDE deben ser modificadas según sea necesario para hacer referencia a los tipos de datos complejos en lugar de una columna compleja en un cuadro. Cuando se debe llevar a cabo una unión no hacia la izquierda sobre escalonamiento es complejos, entre un cuadro y otro cuadro, la búsqueda expandida incluirá una sub-búsqueda para unir el cuadro padre y su cuadro complejo (ver Cuadro 4 para un ejemplo básico). Si aparece NO en la cláusula EN DONDE de una búsqueda no expandida, el NO será traducido en [Cuadro]. [Columna Compleja] NO EN (SELECCIONAR [Columna Compleja] DE [Cuadro] UNIR [Cuadro Plano] EN [Cuadro]. [Columna Compleja] = [Cuadro Plano]. [Clave Foránea] EN DONDE [Cuadro Plano]. [Escalonamiento Complejo] = valor). Los Cuadros 4-11 ilustran las reglas de expansión para las búsquedas con agregados. Una de dichas reglas es que los agregados de tipo complejo sean ejecutados contra UNIÓN IZQUIERDA del cuadro y el tipo de datos complejos. Otra de dichas reglas es que cuando hay agregados de diferentes tipos complejos en la búsqueda no expandida, cada agregado será calculado utilizando una sub-búsqueda. También, las ocurrencias de la cláusula TENIENDO (Cuadro 10) serán convertidas a una cláusula EN DONDE en una búsqueda saliente. Si la cláusula TENIENDO hace referencia a un tipo complejo que por el contrario no está referenciado en una lista SELECCIONAR agregada, se puede crear una nueva sub-búsqueda para unir el cuadro con el tipo complejo.
CUADRO 1 Filtro de ejemplo en un escalamiento complejo Búsqueda escrita por el usuario SELECCIONAR ElementoNombre DE elementos EN DONDE AsignadoA.PersonaID = 1 Búsqueda expandida SELECCIONAR DIFERENTEFILA elementos. ElementoNombre DE Elementos IZQUIERDA EXTERIOR UNIR f_AsignadoA EN Elementos.AsignadoAID = f_AsignadoA.AsignadoAID EN DONDE f_AsignadoA.PersonalD = 1 CUADRO 2 Filtro de ejemplo en escalamiento de complejos múltiples Búsqueda escrita por el usuario SELECCIONAR ElementosNombre DE elementos EN DONDE AsignadoA.PersonaID = 10 ResueltoPor.PersonaID = 2 Búsqueda expandida SELECCIONAR DIFERENTEFILA elementos. ElementoNombre DE Elementos IZQUIERDA EXTERIOR UNIR f_AsignadoA EN Elementos.AsignadoAID = f AsignadoA.AsignadoAID IZQUIERDA EXTERIOR UNIR f ResueltoPor EN Elementos. ResueltosPorID = f_ResueltoPor.ResueltoPorlD EN DONDE f_AsignadoA.PersonalD = 1 0 f ResueltoPorID = 2 CUADRO 3 Sub-búsquedas de ejemplo cuando se unen en un Escalamiento Complejo Búsqueda escrita por el usuario SELECCIONAR Elemento.ElementoNombre, X.PersonaNombre DE Elementos INTERNO UNIR Personas X EN Elementos.AsignadoAID = X.PersonaID EN DONDE AsignadoA.PersonaID = 1 Búsqueda expandida SELECCIONAR DIFERENTEFILA. Y. ElementoNombre, X.PersonaNombre DE (SELECCIONAR Elementos.ElementoNombre, f_AsignadoA.PersonalD DE Elementos IZQUIERDA EXTERIOR UNIR f_AsignadoA EN elementos.AsignadoAID = f_AsignadoA.AsignadoAID) COMO Y INTERIOR UNIR Persona X en X.PersonaID = Y.PersonaiD EN DONDE Y.Persona ID = 1 CUADRO 4 Agregado de ejemplo en un Tipo Complejo CUADRO 5 Agregado de ejemplo en un tipo complejo con una Restricción en el mismo Escalonamiento Complejo 5 CUADRO 6 Agregado de Ejemplo en un Tipo Complejo con una Restricción en un Escalonamiento Complejo diferente Búsqueda escrita por el SELECCIONAR ElementoNombre, CONTAR(AsignadoA) usuario DE elementos EN DONDE Resuelto.PersonaID = 3 Búsqueda expandida SELECCIONAR x.ElementoNombre, CONTAR(f_AsignadoA.PersonalD) COMO ConteoDePersonaID DE (SELECCIONAR DISTINTAFILA Elementos.ElementoNombre, Elementos.AsignadoA DE Elementos. AsignadoA=f_AsignadoA.AsignadoA EN DONDE f_AsignadoA.PersonalD = 3 COMO X INTERNA UNION f_AsignadoA EN x.AsignadoA = f_AsignadoA.AsignadoA AGRUPADOPOR Elementos.ElementoNombre CUADRO 7 Tipo 1 Complejo de Agregado de Ejemplo con una Restricción en el Escalonamiento Complejo 1 y Escalonamiento Complejo 2 Búsqueda escrita por el usuario SELECCIONAR ElementoNombre, CONTAR(AsígnadoA) DE elementos EN DONDE AsignadoA.PersonaID = 2 O ResueltoPor.PersonaID = 3 Búsqueda expandida SELECCIONAR x.ElementoNombre, CONTAR(f_AsignadoA.PersonalD) COMO ConteoDePersonaID DE (SELECCIONAR DISTINTAFILA Elementos.ElementoNombre, Elementos.AsignadoA, Elementos.ResueltoPor DE (Elementos IZQUIERDA UNIRf_ AsignadoA=f_AsignadoA.AsignadoA) IZQUIERDA UNIR f_ResueltoPor EN Elementos.ResueltoPor=f ResueltoPor.ResueltoPor EN DONDE f_AsignadoA.PersonalD = 20 LResueltoPor.PersonaID = 3) COMO X INTERNA UNION f_AsignadoA EN x.AsignadoA = f_AsignadoA.AsignadoA AGRUPADOPOR Elementos.ElementoNombre CUADRO 8 Agregados de Ejemplo en el Tipo 1 Complejo v Tipo 2 Complejo Búsqueda escrita por el usuario SELECCIONAR ElementoNombre, CONTAR(AsignadoA) DE elementos AGRUPADOPOR ElementoNombre Búsqueda expandida SELECCIONAR x.ElementoNombre, CONTAR(f_AsignadoA.PersonalD) COMO ConteoDePersonaID DE (SELECCIONAR Elementos.ElementoNombre, CONTAR (f_AsignadoA.PersonalD) COMO • ConteoDeENPersonaID DE Elementos IZQUIERDA UNIR f_AsignadoA.AsignadoA EN elementos.AsignadoA=f_AsignadoA.AsignadoA AGRUPADOPOR Elementos.ElementoNombre [Conteo de AsignadoA Por Elemento) INTERNO UNION (SELECCIONAR Elementos.ElementoNombre, Contar(f_ResueltoPor.PersonalD) COMO ConteoDeRBPersonaID DE Elementos IZQUIERDA UNIRf_ResueltoPor EN Elementos. ResueltoPor=f_ResueltoPor.ResueltoPor AGRUPADOPOR Elementos.ElementoNombre) COMO [Conteo de ResueitoPor Por Elemento] EN [Conteo de AsignadoPor Por Elemento]. Elemento Nombre.
CUADRO 9 Agregados de Ejemplo de Tipo 1 Complejo y Tipo 2 Complejo con Restricciones en el Escalonamiento Complejo 1 y el Escalonamiento Complejo 2 Búsqueda escrita por SELECCIONAR ElementoNombre, CONTAR(AsignadoA) el usuario CONTAR (ResueltoPor) DE elementos AGRUPADOPOR ElementoNombre ResueltPor. PersonaID = 3) O (AsignadoA.PersonaID = 3 Y ResueltoPor.PersonaID = 5) Búsqueda expandida SELECCIONAR [Conteo de AsignadoA Por Elemento].ElementoNombre, [Conteo de AsignadoA Por elemento]. ConteoDeATPersonaID, [Conteo de ResueltoPor Por Elemento]. GonteoDeRBPersonaID DE (SELECCIONAR Elementos.ElementoNombre, CONTAR (f AsignadoA.PersonaID) COMO ConteoDeATPersonaID DE (SELECCIONAR DISTINTA FILA Elementos.ElementoNombre, Elementos .AsignadoA.EIementos. ResueltoPor DE (Elementos IZQUIERDA UNIR f_ AsignadoA=f AsignadoA.AsignadoA) IZQUIERDA UNIR f ResueltoPor EN Elementos. ResueltoPor=f ResueltoPor.ResueltoPor (f_AsignadoA.PersonalD = 1 Y f ResueltoPor.PersonaID = 3) 0 (f_AsignadoPor.PersonalD = 5)) COMO X IZQUIERDA UNION f AsignadoA EN AGRUPADOPORX.EIementoNombre COMO [Conteo de AsignadoA Por Elemento] INTERNA UNION (SELECCIONAR Elementos.ElementoNombre, CONTEO (f_ResueltoPor.PersonalD) COMO ConteoDeRBPersonaID DE (SELECCIONAR DISTINTAFILA Elementos.elementoNombre, Elemento.AsignadoA. Elementos. ResueltoPor DE (Elementos IZQUIERDA EXTERIOR UNIR f_AsignadoA EN Elementos.AsignatoA = f_AsignadoPor Elementos. ResueltoPor = f_ResueltoPor.ResueltoPor EN DONDE esueltoPor.PersonaID = 1 Y f_ResueltoPor.PersonalD = 3) 0 f_AsignadoA. PersonaID = 3 Y f ResueltoPor.PersonaID = 5)) COMO Y IZQUIERDA UNIR f_ResueltoPor EN Y.ResueltoPor=f_ResueltoPor.ResueltoPor AGRUPADOPOR Y.EIementoNombre) COMO [Conteo de ResueltoPor Por Elemento] EN [Conteo de AsignadoA Por Elemento]. ElementoNombre = [Conteo de ResueltoPor Por Elemento] . ElementoNombre CUADRO 10 Tipo Complejo de Ejemplo en la Cláusula TENIENDO CUADRO 11 Agregado de Ejemplo en Tipo 1 Complejo con Tipo 2 Complejo en la cláusula TENIENDO Búsqueda escrita SELECCIONAR ElementoNombre, CONTAR (ResueltoPor= por el usuario DE elementos AGRUPADO POR ElementoNombre TENIENDO CONTEO [AsignadoA) = 4 Búsqueda SELECCIONAR [Conteo de ResueltoPor Por Elemento]. ElementoNombre, expandida [Conteo de ResueltoPor Por Elemento]. ConteoDeRBPersonaID DE (SELECCIONAR Elementos.ElementoNombre, CONTEO(f_ResueltoPor.PersonalD) COMO ConteoDeRBPersonaID DE Elementos IZQUIERDA UNIR f_AsignadoA EN Elementos.ResueltoPor=f_ResueltoPor EN AGRUPADO POR Elementos.ElementoNombre) COMO [Conteo de ResueltoPor Por Elemento] INTERNA UNION (SELECCIONAR Elementos.ElementoNombre, CONTAR (f_AsignadoA.PersonalD) COMO ConteoDeENPersonaID DE Elementos IZQUIERDA UNION f_AsignadoA EN Elementos.AsignadoA=f_AsignadoA.As¡gnadoA AGRUPADO POR Elementos.ElementoNombre) COMO [Conteo de AsignadoA Por Elemento] EN [Conteo de AsignadoA Por Elemento]. ElementoNombre = [Conteode ResuleltoPor Por Elemento]. ElementoNombre EN DONDE [Conteo de AsignadoPor Por Elemento]. ConteoDEENPersonalD = 4 Las varias modalidades descritas anteriormente se proveen a manera de ilustración solamente y no deberán ser construidas para limitar la invención. Aquellos con experiencia técnica fácilmente reconocerán que varios cambios y modificaciones se pueden hacer a la presente invención sin seguir las modalidades Ejemplo y las aplicaciones ilustradas descritas aquí, y sin apartarse del espíritu verdadero y alcance de la presente invención, la cual se establece en las siguientes reivindicaciones.

Claims (18)

REIVINDICACIONES
1. Un método ¡mplementado por computadora para agregar datos complejos a un cuadro conceptual que comprende: recibir una señal para agregar datos complejos a un cuadro para el cuadro conceptual; crear uno o más cuadros de datos; y crear enlaces a dichos uno o más cuadros.
2. Un método ¡mplementado por computadora de acuerdo con la reivindicación 1, en donde dichos datos complejos incluyen un cuadro de datos.
3. Un método ¡mplementado por computadora de acuerdo con la reivindicación 1, en donde dichos datos complejos incluyen un cuadro conceptual.
4. Un método ¡mplementado por computadora de acuerdo con la reivindicación 1, que además comprende modelar los datos en el cuadro conceptual, en donde la modelación de los datos comprende: recibir una señal para almacenar uno o más valores de datos; analizar una estructura del cuadro conceptual; determinar uno o más mapeos para uno o más cuadros de datos; y almacenar los datos en uno o más cuadros de datos.
5. Un método ¡mplementado por computadora de acuerdo con la reivindicación 1, que además comprende: expandir una búsqueda de un cuadro conceptual, en donde el paso de expansión de la búsqueda comprende: recibir una búsqueda de un cuadro conceptual; analizar una estructura del cuadro conceptual; aplicar una o más reglas de expansión a la búsqueda; y emitir la búsqueda.
6. Un método implementado por computadora de acuerdo con la reivindicación 5, en donde dicha aplicación de una o más reglas de expansión a la búsqueda se lleva acabo de manera gradual.
7. Un método implementado por computadora de acuerdo con la reivindicación 5, en donde se pueden aplicar una pluralidad de dichas una o más reglas de expansión en la misma operación.
8. Un método implementado por computadora de acuerdo con la reivindicación 5, en donde dicha aplicación de una o más reglas de expansión a la búsqueda además comprende: combinar una pluralidad de cuadros de datos en un modelo del cuadro conceptual; y aplicar la búsqueda al modelo del cuadro conceptual.
9. Un método implementado por computadora de acuerdo con la reivindicación 5, en donde dicha emisión de la búsqueda además comprende someter la búsqueda a un servidor de base de datos para la ejecución.
10. Un método implementado por computadora de acuerdo con la reivindicación 5, en donde dicha emisión de la búsqueda además comprende acceder los datos de la base de datos directamente.
11. Un método implementado por computadora de acuerdo con la reivindicación 1, que además comprende moverse en el cuadro conceptual en donde dicho movimiento comprende: recibir una señal para acceder los datos complejos en el cuadro conceptual; leer uno o más mapeos asociados con dichos datos complejos; y recuperar datos escalonados de uno o más cuadros de datos utilizando dichos mapeos.
12. Un método implementado por computadora de acuerdo con la reivindicación 11, que además comprende desplegar los datos escalonados en el cuadro conceptual.
13. Un medio legible por computadora accesible a un sistema de computación y que codifica un programa de computadora para llevar a cabo el método definido en la reivindicación 1.
14. Un sistema para modelar el cuadro conceptual que comprende: un módulo para la modelación de datos para agregar datos complejos a un cuadro, y almacenar los datos complejos en uno o más cuadros de datos; un módulo de expansión de búsqueda para expandir una búsqueda de cuadro conceptual para incluir una o más búsquedas del cuadro de datos; y un módulo portador para recuperar datos complejos en un cuadro conceptual.
15. Un sistema de acuerdo con la reivindicación 14, que además comprende un módulo de exhibición para desplegar los resultados de dicho módulo de expansión de la búsqueda y dicho módulo portador.
16. Un medio legible por computadora accesible al sistema de computación y que codifica un programa de computadora para modelar datos en un cuadro conceptual que comprende: recibir una señal para almacenar uno o más valores de datos; analizar una estructura del cuadro conceptual; determinar uno o más mapeos para uno o más cuadros de datos; y almacenar los datos en uno o más cuadros de datos.
17. Un medio legible por computadora de acuerdo con la reivindicación 16, en donde el programa de computadora además comprende la expansión de búsqueda del cuadro conceptual, en donde la expansión comprende: recibir una búsqueda de un cuadro conceptual; analizar una estructura del cuadro conceptual; aplicar una o más reglas de expansión a la búsqueda; y emitir la búsqueda.
18. Un medio legible por computadora de acuerdo con la reivindicación 16, en donde el programa de computadora además comprende moverse a través de un cuadro conceptual, en donde dicho movimiento comprende: recibir una señal para acceder los datos complejos en un cuadro conceptual; leer uno o más mapeos asociados con dichos datos complejos; y recuperar los datos de escalonamiento de uno o más cuadros de datos utilizando dichos mapeos.
MXPA05012291A 2004-12-15 2005-11-15 Acceso a datos complejos. MXPA05012291A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/013,619 US7890532B2 (en) 2004-12-15 2004-12-15 Complex data access

Publications (1)

Publication Number Publication Date
MXPA05012291A true MXPA05012291A (es) 2006-06-19

Family

ID=35559324

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05012291A MXPA05012291A (es) 2004-12-15 2005-11-15 Acceso a datos complejos.

Country Status (10)

Country Link
US (1) US7890532B2 (es)
EP (1) EP1672540A1 (es)
JP (1) JP2006172446A (es)
KR (1) KR101213798B1 (es)
CN (1) CN1790324B (es)
AU (1) AU2005225020B2 (es)
BR (1) BRPI0504995A (es)
CA (1) CA2526045C (es)
MX (1) MXPA05012291A (es)
RU (1) RU2406115C2 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104498A1 (en) * 2006-10-25 2008-05-01 International Business Machines Corporation Dynamically Merging Columns Within a Table
US9317494B2 (en) * 2007-04-03 2016-04-19 Sap Se Graphical hierarchy conversion
WO2009090437A1 (en) * 2008-01-16 2009-07-23 SZILÁGYI, Zoltàn Database and a method for creating thereof
KR100926336B1 (ko) * 2008-02-29 2009-11-10 나문수 관계 기반 애플리케이션 매핑 방법 및 이를 실현시키기위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US8001155B2 (en) 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
US8200668B2 (en) * 2008-06-24 2012-06-12 Microsoft Corporation Scalar representation for a logical group of columns in relational databases
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US8868545B2 (en) * 2011-12-29 2014-10-21 Teradata Us, Inc. Techniques for optimizing outer joins
WO2015085291A1 (en) 2013-12-06 2015-06-11 Ab Initio Technology Llc Source code translation
US9483545B2 (en) 2014-05-30 2016-11-01 International Business Machines Corporation Grouping data in a database
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN111930532B (zh) * 2020-07-09 2023-11-17 智盈未来(西安)信息技术有限公司 航电数据集成方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713821A (ja) * 1993-06-29 1995-01-17 Hitachi Software Eng Co Ltd データの編集方法
JP3779431B2 (ja) * 1997-06-13 2006-05-31 富士通株式会社 リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体
US6061690A (en) * 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
US6122644A (en) * 1998-07-01 2000-09-19 Microsoft Corporation System for halloween protection in a database system
JP2001056810A (ja) 1999-06-07 2001-02-27 Kawasaki Steel Systems R & D Corp データベースアクセスシステム
JP3211956B2 (ja) * 1999-08-31 2001-09-25 勲 清水 データベースシステム
US6564203B1 (en) * 2000-02-24 2003-05-13 Oracle Corporation Defining instead-of triggers over nested collection columns of views
US6892204B2 (en) * 2001-04-16 2005-05-10 Science Applications International Corporation Spatially integrated relational database model with dynamic segmentation (SIR-DBMS)
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
US6931391B2 (en) * 2002-06-21 2005-08-16 Microsoft Corporation Systems and methods for generating prediction queries
US7152073B2 (en) * 2003-01-30 2006-12-19 Decode Genetics Ehf. Method and system for defining sets by querying relational data using a set definition language
US7433886B2 (en) 2003-10-24 2008-10-07 Microsoft Corporation SQL language extensions for modifying collection-valued and scalar valued columns in a single statement
RU36541U1 (ru) 2003-12-23 2004-03-10 Григорьев Евгений Александрович Объектно-ориентированная система управления реляционными базами данных

Also Published As

Publication number Publication date
AU2005225020B2 (en) 2010-09-30
RU2005139141A (ru) 2007-06-20
EP1672540A1 (en) 2006-06-21
JP2006172446A (ja) 2006-06-29
KR101213798B1 (ko) 2012-12-20
US20060129572A1 (en) 2006-06-15
US7890532B2 (en) 2011-02-15
CN1790324B (zh) 2010-06-16
CN1790324A (zh) 2006-06-21
KR20060067812A (ko) 2006-06-20
CA2526045A1 (en) 2006-06-15
RU2406115C2 (ru) 2010-12-10
BRPI0504995A (pt) 2006-09-12
AU2005225020A1 (en) 2006-05-04
CA2526045C (en) 2013-03-12

Similar Documents

Publication Publication Date Title
MXPA05012291A (es) Acceso a datos complejos.
US6618732B1 (en) Database query handler supporting querying of textual annotations of relations between data objects
CN101084494B (zh) 用于管理计算机环境中的工作流的方法和设备
US6831668B2 (en) Analytical reporting on top of multidimensional data model
US7925658B2 (en) Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
EP0727070B1 (en) Semantic object modeling system and method for creating relational database schemas
US6618733B1 (en) View navigation for creation, update and querying of data objects and textual annotations of relations between data objects
US8886617B2 (en) Query-based searching using a virtual table
US6609132B1 (en) Object data model for a framework for creation, update and view navigation of data objects and textual annotations of relations between data objects
EP1918827A1 (en) Data processing
US20080016041A1 (en) Spreadsheet-based relational database interface
US20060206312A1 (en) Systems and methods for retrieving data
US9785725B2 (en) Method and system for visualizing relational data as RDF graphs with interactive response time
KR20040086268A (ko) 역사적 및 현재 버전 법률 본문을 제공하는 동적 법률데이터베이스
US20050165812A1 (en) Data store supporting creation, storage and querying of data objects and textual annotations of relations between data objects
US20110246535A1 (en) Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment
US7421450B1 (en) Database extensible application development environment
US20080313153A1 (en) Apparatus and method for abstracting data processing logic in a report
US20050278306A1 (en) Linked logical fields
Yannakoudakis The architectural logic of database systems
Bai Practical database programming with Visual Basic. NET
EP1965313A1 (en) Data processing
EP1304630A2 (en) Report generating system
Zykin Formation of hypercube representation of relational database
CN114428777A (zh) 数据库扩展方法和***

Legal Events

Date Code Title Description
FG Grant or registration