DE60036303T2 - Methode und modell für dynamische anfragen - Google Patents

Methode und modell für dynamische anfragen Download PDF

Info

Publication number
DE60036303T2
DE60036303T2 DE60036303T DE60036303T DE60036303T2 DE 60036303 T2 DE60036303 T2 DE 60036303T2 DE 60036303 T DE60036303 T DE 60036303T DE 60036303 T DE60036303 T DE 60036303T DE 60036303 T2 DE60036303 T2 DE 60036303T2
Authority
DE
Germany
Prior art keywords
user
query model
query
model
database
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.)
Expired - Lifetime
Application number
DE60036303T
Other languages
English (en)
Other versions
DE60036303D1 (de
Inventor
Steven W. Los Gatos Santa Clara BOGRETT
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.)
Google LLC
Original Assignee
Computer Associates Think Inc
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 Computer Associates Think Inc filed Critical Computer Associates Think Inc
Publication of DE60036303D1 publication Critical patent/DE60036303D1/de
Application granted granted Critical
Publication of DE60036303T2 publication Critical patent/DE60036303T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • 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/248Presentation of query results
    • 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/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
  • Stored Programmes (AREA)
  • Compounds Of Unknown Constitution (AREA)

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft allgemein das Gebiet der analytischen Datenverarbeitung und insbesondere ein dynamisches Abfragemodell und ein Verfahren zum Ausführen benutzerangepasster Datenbankabfragen.
  • ALLGEMEINER STAND DER TECHNIK
  • Systeme für wirtschaftliche Intelligenz begannen weitgehend als Entscheidungsunterstützungssysteme (Decision Support Systems – DSS) und Managementunterstützungssysteme (Executive Information Systems – EIS). Die Entscheidungsunterstützungssysteme (DSS) und Managementunterstützungssysteme (EIS) waren Systeme mit Wertzuwachs, die zusätzliche Information aus existierenden Online-Transaktionsverarbeitungssystemen (OLTP) bereitstellten.
  • Während sich die Systeme für wirtschaftliche Intelligenz weiterentwickelten, integrierten sie die Funktionalität der Entscheidungsunterstützungssysteme (DSS) mit der Funktionalität der Managementunterstützungssysteme (EIS) und fügten Online-Tools für die analytische Verarbeitung (OLAP) und Managementberichterstattungstools hinzu. Diese hybriden Systeme für wirtschaftliche Intelligenz haben sich allmählich von der Großrechnerumgebung zu einer Umgebung mit verteilten Servern/Desktops weiterentwickelt, um umfangreicheren Benutzerzugriff zu erlauben.
  • Kürzlich hat das Entstehen zentralisierter Datenlager (Data-Warehouse) sowie so genannter Daten-Marktstände (Datamart) eine dramatische Steigerung an verfügbaren Daten geschaffen, die darauf warten, analysiert, genutzt und innerhalb einer Organisation verteilt zu werden. Derartige Datenlager und Daten-Marktstände wurden jedoch typisch für die Informationslieferung und nicht für Transaktionsverarbeitung optimiert. Datenlager und Daten-Marktstände boten daher nur beschränkte Lösungen, um gespeicherte Daten in nützliche und strategisch taktische Information umzuwandeln. Gleichzeitig dazu traten die Systeme für wirtschaftliche Intelligenz in den Vordergrund, indem sie ausgeklügelte Analysetools zum Analysieren großer Mengen gespeicherter Informationen boten, um effektive Planung und Beschlussfassung innerhalb einer Organisation zu unterstützen.
  • Die Systeme für wirtschaftliche Intelligenz und anderen analytischen Tools stellen typisch vordefinierte Abfragemodelle bereit, um neue Benutzer und andere Datenkonsumenten beim Erzielen von Daten aus einer Datenbank zu unterstützen. Ein Problem bei solchen vordefinierten Abfragemodellen besteht jedoch darin, dass sie generisch sind und nicht spezifisch für die benutzerspezifischen Anforderungen geeignet sind. Um spezifisch relevante Information zu erzielen, muss ein Benutzer selbst eine benutzerdefinierte Abfrage schreiben, was gewöhnlich fortgeschrittene Datenbankkenntnisse erfordert. Obwohl alle Benutzer in der Lage sind, bestimmte Informationen unter Einsatz vordefinierter Abfragemodelle zu erzielen, sind die meisten Benutzer nicht in der Lage, Information zu erzielen, die für sie spezifisch relevant ist.
  • US 5 410 693 betrifft ein Datenbanksystem, auf dem mehrere Abfragepakete gespeichert sind. Das Erzeugen und das Ändern der Abfragepakete ist nur auf bestimmte zugelassene Benutzer beschränkt, wie zum Beispiel Datenbankverwalter. Andere, nicht befugte Benutzer können Abfragepakete weder anlegen noch ändern.
  • US 5 701 453 betrifft ein Datenbanksystem, bei dem ein Datenbankverwalter ein Softwareschema anlegt, das spezifiziert, welche Tabellen für einen Endbenutzer verfügbar sind, und das die Beziehungen zwischen Spalten dieser Tabellen spezifiziert. Ein Endbenutzer kann ein Formular oder einen Bericht konzipieren, indem er einen Satz von Feldern aus einer Liste verfügbarer Spalten für ein bestimmtes logisches Schema auswählt.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt ein dynamisches Abfragemodell und ein Verfahren bereit, die im Wesentlichen die Nachteile und Probleme in Zusammenhang mit den früheren Systemen und Verfahren eliminieren oder verringern. Insbesondere werden vordefinierte Abfragemodelle für Benutzer zum Anpassen an die benutzerspezifischen Anforderungen bereitgestellt. Das erlaubt es den Benutzern, vordefinierte Abfragen schnell und einfach an ihre spezifischen Erfordernisse anzupassen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung weist ein Verfahren zum Erzeugen von Datenbankabfragen, das Speichern eines vordefinierten Abfragemodells zum Abfragen einer Datenbank auf. Ein zugänglicher Abschnitt des vordefinierten Abfragemodells wird für einen Benutzer auf Anfrage angezeigt. Benutzeredits an dem zugänglichen Abschnitt des vordefinierten Abfragemodells werden empfangen und verwendet, um ein benutzerangepasstes Abfragemodell zu erzeugen. Eine Abfrage wird dann basierend auf dem benutzerangepassten Abfragemodell ausgelöst.
  • Genauer genommen und in Übereinstimmung mit einer besonderen Ausführungsform der vorliegenden Erfindung ist die Anzeige eine graphische Ansicht zugänglicher Datenelemente, die das vordefinierte Abfragemodell definieren. Eine graphische Ansicht zugänglicher Datenelemente weist zugängliche Tabellen, Spalten und Tabellen sowie Verbindungen zwischen Tabellen auf. Bei dieser und anderen Ausführungsformen kann ein benutzerangepasstes Abfragemodell Daten banktabellen, Datenbankspalten und Datenbankverbindungen aufweisen, die in dem vordefinierten Abfragemodell fehlen oder unterschiedlich sind.
  • Die technischen Vorteile der vorliegenden Erfindung umfassen das Bereitstellen eines verbesserten Portals für wirtschaftliche Intelligenz, das es Abfragemodellen erlaubt, intelligenter erzeugt und innerhalb einer Organisation genutzt zu werden. Insbesondere erlaubt es das Portal für wirtschaftliche Intelligenz, Standardabfragemodelle zu bauen und ändern, indem eine graphische Ansicht von Datenelementen verwendet wird. Soweit möglich, werden spezifizierte Daten innerhalb eines Abfragemodells automatisch verlinkt. Abfragen können daher leicht definiert und später von Benutzern ohne spezialisierte Datenbankkenntnisse geändert werden.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung umfasst das Bereitstellen eines Abfragemodells und Verfahrens, die es Benutzern erlauben, leicht aussagekräftige Information zu erzielen und analysieren. Insbesondere werden die vordefinierten Abfragemodelle Benutzern zum Anpassen und Anpassen an die benutzerspezifischen Anforderungen bereitgestellt. Unerfahrene Benutzer und andere Informationskonsumenten können daher Abfragen abändern, um sie an ihre eigenen Erfordernisse anzupassen. Das erleichtert die robuste Datenanalyse durch alle Benutzer und erlaubt es unerfahrenen Benutzern, verfügbare Information effektiv zu verwenden, um Operationen innerhalb ihrer Organisation zu verbessern.
  • Weitere technische Vorteile der vorliegenden Erfindung ergeben sich für den Fachmann aus den folgenden Figuren, der Beschreibung und den Ansprüchen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Zum besseren Verstehen der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgende Beschreibung verbunden mit den begleitenden Zeichnungen Bezug genommen, wobei gleiche Bezugszeichen gleiche Teile darstellen und in welchen:
  • 1 ein Blockschaltbild ist, das ein Portal für wirtschaftliche Intelligenz gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 2 ein Flussdiagramm ist, das ein Verfahren zum Initialisieren des Portals für wirtschaftliche Intelligenz der 1 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 3 ein Flussdiagramm ist, das ein Verfahren zum Erzeugen vordefinierter Abfragemodelle in dem Portal für wirtschaftliche Intelligenz der 1 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 4 ein Flussdiagramm ist, das ein Verfahren zum Verbreiten und Warten von Clientanwendungen in dem Portal für wirtschaftliche Intelligenz der 1 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 5 ein Flussdiagramm ist, das ein Verfahren zum Erzeugen und Ausführen eines Abfragemodells basierend auf einem vordefinierten Abfragemodell gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 6 ein Blockschaltbild ist, das das Funktionieren des modularen Abfragemotors der 1 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 7 ein Flussdiagramm ist, das das Funktionieren des modularen Abfragemotors der 6 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 8 ein Blockschaltbild ist, das ein multidimensionales Speichermodell gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 9 ein Blockschaltbild ist, das beispielhafte Daten für das multidimensionale Speichermodell der 8 veranschaulicht,
  • 10 ein Flussdiagramm ist, das ein Verfahren zum Erzeugen des multidimensionalen Speichermodells der 8 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 11 ein Bildschirmdiagramm ist, das eine Anzeige zusammengehörender Ansichten in dem Portfolio der 1 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht, und
  • 12 ein Bildschirmdiagramm ist, das Fensterregisterreiter zum Navigieren zwischen zusammengehörenden Ansichten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 veranschaulicht ein Portal für wirtschaftliche Intelligenz 10 gemäß einer Ausführungsform der vorliegenden Erfindung. Allgemein beschrieben stellt das Portal für wirtschaftliche Intelligenz 10 einen Datenzugang und gemeinsame Informationsnutzung in einem Unternehmen bereit sowie ausgeklügelte multidimensionale Analysetools. Die Analysetools sind weitgehend automatisiert und intuitiv, um es einer großen Auswahl von Benutzern zu erlauben, gespeicherte Information bei strategischen Beschlüssen zu verwen den. Derart maximiert das Portal für wirtschaftliche Intelligenz 10 den Nutzen von Entscheidungsunterstützung, den die Benutzer von ihren Daten erhalten, während die Kosten des Umsetzens und Verwaltens des Systems minimiert werden.
  • In der in 1 veranschaulichten Ausführungsform setzt das Portal für wirtschaftliche Intelligenz 10 eine dreischichtige verteilte Architektur um, die eine Datenbankebene 12, eine Serverebene 14 und eine Clientebene 16 aufweist, die durch ein oder mehrere Netzwerke 18 verbunden sind. Die Server- und Clientebene 14 und 16 basieren auf Java, um das Internetkommunikationsprotokoll (TCP/IP), multiple Client- und Serverplattformen, gemeinsame Verbindungen mit einer großen Vielfalt an Datenquellen sowie komplette Skalierbarkeit des Portals 10 unternehmensweit zu unterstützen. Zusätzlich stellen die auf Java basierende Serverebene 14 und Clientebene 16 eine offene API-Architektur bereit, die weitgehend anpassbar und zum Verarbeiten strukturierter Daten in Datenbanken sowie unstrukturierter Daten geeignet ist. Das Client-/Servernetzwerk 18 weist ein firmeninternes Intranet auf, während das Server-/Datenbanknetzwerk 18 Abschnitte öffentlicher und privater Netzwerke umfasst. Es ist klar, dass das Portal für wirtschaftliche Intelligenz 10 implementiert werden kann, indem andere geeignete Architekturen, Programmiersprachen und Links verwendet werden.
  • Unter Bezugnahme auf 1 weist die Datenbankebene 12 eine oder mehrere Datenbanken 20 auf. Wie unten ausführlicher beschrieben, sind die Datenbanken 20 jeweils als ein Aliasname dargelegt, der die ganze Information enthält, die erforderlich ist, um sich an eine Datenbank 20 anzuschließen, darunter das Datenbank-Logon. Der Gebrauch von Datenbank-Aliasnamen beugt dem direkten Benutzerzugriff auf die native Datenbank vor, um die Integrität in der Datenbank 20 zu wahren. Für die veranschaulichende Ausführungsform können die Datenbanken 20 jeweils eine Datenbank sein, die mit Java-Datenbankverbindung (JDBC) oder Objektdatenbankverbindung (ODBC) kompatibel ist sowie ein geeignetes Datenlager oder ein geeigneter Daten-Marktstand.
  • Die Serverebene 14 weist einen oder mehrere Server 30 auf. Die Server 30 weisen jeweils einen Satz auf Java basierender Anwendungen auf, die auf verschiedenen Plattformen funktionieren können. Wie unten ausführlicher beschrieben, stellen die Server 30 hierarchische Sicherheit, zentralisierte Verwaltung, schnellen gemeinsamen Multithread-Datenzugang und multidimensionale Datenanalyse für das Portal für wirtschaftliche Intelligenz 10 bereit.
  • Der Server 30 weist einen Katalog 32, einen Katalogmanager 34, einen Sicherheitsmanager 36, einen Abfragengenerator 38, ein Datenbankzugriffssystem 40, einen Cache-Manager 42, einen multidimensionalen Modellmanager 44 und einen Clientadministrator 46 auf. Der Katalog 32 enthält alle Konfigurationen, Dokumente und Arbeitsprodukte, die von Administratoren und Benutzern des Portals für wirtschaftliche Intelligenz 10 angelegt werden. Das zentralisiert das Management der Dokumente, eliminiert redundante und überholte Kopien auf Clientsystemen, erlaubt es, Dokumente unternehmensweit gemeinsam zu nutzen und stellt ununterbrochene Sicherheit für die Dokumente bereit. Der Katalogmanager 34 verwaltet alle gemeinsam genutzten Informationen innerhalb des Servers 30. Es ist klar, dass solche Konfigurationen, Dokumente und Arbeitsprodukte anders geeignet gespeichert und innerhalb des Portals für wirtschaftliche Intelligenz 10 verwaltet werden können.
  • Der Katalog 32 weist einen oder mehrere Datenbank-Aliasnamen 50, Benutzerprofile 52, Sicherheitsgruppen 54 und vordefinierte Abfragemodelle 56 auf, die von einem Systemadministrator konfiguriert werden. Ferner weist der Katalog 32 ein oder mehrere Portfolios 58 auf, die zusammengehörende Ansichten 60 speichern, die von einem Systembenutzer angelegt werden. Wie oben beschrieben, enthalten die Datenbank-Aliasnamen 50 jede Information, die erforderlich ist, um sich an die Datenbanken 20 anzuschließen. Der Gebrauch von Datenbank-Aliasnamen 50 verhindert den direkten Zugriff des Benutzers auf die Datenbank, um die Datenintegrität in den nativen Datenbanken 20 zu wahren und erlaubt es Benutzern ohne technische Kenntnisse, in aller Sicherheit auf Firmendaten zuzugreifen, ohne eine Verletzung der Integrität fürchten zu müssen. Zusätzlich dienen die Datenbank-Aliasnamen 50 auch dazu, Verbindungen mit den physischen Datenbanken 20 gemeinsam zu nutzen und dadurch die Anzahl von Datenbankanschlüssen zu verringern, die erforderlich ist, um eine große Anzahl von Clients zu unterstützen.
  • Die Benutzerprofile 52 definieren jeweils einen spezifischen Privilegienbereich für einen Benutzer und eine oder mehrere Sicherheitsgruppen 54, zu welchen ein Benutzer zugreifen kann. Die Benutzerprofile 52 werden von einem Systemadministrator erzeugt und gewartet. Die Sicherheitsgruppen 54 setzen ein hierarchisches Sicherheitsmodell mit Sicherheitsbefugnissen und Privilegien um, die jeder Gruppe 54 von einem Systemadministrator zugewiesen werden. Eine Administratorsicherheitsgruppe wird bereitgestellt, um Administratoren den kompletten Zugriff auf das System zu erlauben, darunter die Befugnisse zum Hinzufügen, Ändern und Löschen von Sicherheitsgruppen 54 sowie Benutzerprofilen 52 in dem System. Die endgültigen Sicherheitsbefugnisse und Privilegien, die einem Benutzer zufallen, ist die Einheit seiner oder ihrer individuellen Befugnisse, wie sie in dem Benutzerprofilen 52 definiert sind, sowie der Befugnisse jeder Sicherheitsgruppe 54, zu der er oder sie gehört. Derart wird das Enthüllen der Systemmerkmale für Benutzer über den weitgehenden Gebrauch von Erlaubnissen oder Privilegien kontrolliert, die den Sicherheitsgruppen 54 oder einzelnen Benutzerprofilen 52 gewährt oder vorenthalten werden. Während die Administratoren daher eventuell die Fähigkeit haben, sich an Datenbanken 20 anzuschließen und Benutzer hinzuzufügen oder zu löschen, können Power-Benutzer diese Befugnis eventuell nicht haben. Statt dessen können Power-Benutzer Zugang zu einem kompletten Bereich von Datenanalyse- und Zusammmenarbeitsfeatures haben, während Informationskonsumenten nur Berichte oder Tabellen einsehen und anpassen können, die zuvor von einem Administrator oder Power-Benutzer definiert wurden.
  • Die vordefinierten Abfragemodelle 56 sind eigenständige logische Modelle bestimmter Datenbanken, die erstellt werden, um das Anlegen einer Abfrage durch Benutzer, die technisch weniger bewandert sind, einfach und intuitiv zu gestalten. Die vordefinierten Abfragemodelle 56 nehmen ferner abstrakte Daten aus einer Datenbank 20 und enthüllen nur die Abschnitte der Datenbank 20, die für die Gruppe oder Gruppen von Benutzern relevant sind, die das bestimmte Abfragemodell 56 benutzen werden. Die vordefinierten Abfragemodelle 56 enthalten relevante Tabellen aus einer Datenbank, Felder innerhalb der Datenbanktabellen und Links zwischen den Datenbanktabellen, die gemeinsam eine Abfrage definieren. Die vordefinierten Abfragemodelle 56 bilden die Grundlage für alle Abfragen, die durch Benutzer angelegt werden. Derart kontrolliert das vordefinierte Abfragemodell 56 die Elemente in jeder beliebigen Datenbank 20, auf die eine bestimmte Gruppe von Benutzern zugreifen kann. Zusätzlich erstellen die vordefinierten Abfragemodelle 56 Mechanismen, die eventuell den Typ der Abfragen einschränken, der durch eine bestimmte Gruppe von Benutzern gemacht werden kann. Insbesondere definieren die Mechanismen das Maximum an Computerressourcen oder Regler, die verwendet werden können, um die Abfragen auszuführen, und zulässige Verbindungen zwischen Tabellen, um unkontrollierten oder bösartigen Abfragen vorzubeugen, die sich auf die Integrität des Portals für wirtschaftliche Intelligenz 10 auswirken könnten.
  • Die Portfolios 58 stellen ein Datensystem zum Speichern von Ansichten 60 dar, die die Benutzer angelegt oder erzielt haben. Zusätzlich können die Portfolios 58 zum internen Erzeugen von Ansichten 60 zum Beispiel Ansichten 60 von Textverarbeitungsdokumenten, Kalkulationstabellen und Webseiten enthalten. Die Portfolios 58 sind jeweils eine zusammengesetzte Datei, die eine Sammlung von Ansichten 60 oder andere verwandte Datensätze wiederherstellen kann. Die Ansichten 60 können direkt innerhalb des Portfolios 58 gespeichert oder miteinander in dem Portfolio 58 verlinkt sein.
  • Der Zugriff auf die Portfolios 58 wird durch erstellte Sicherheitsparameter für Benutzer und zusätzlich durch die Anleger der Ansichten 60 in dem Portfolio 58 bestimmt. Bei einer Ausführungsform sehen die Benutzer die Portfolios 58, für die sie keine Zugriffsprivilegien haben, nie. Zusätzlich können die Portfolios 58 benutzerspezifisch sein, um automatische Bekanntgabe an dazugehörende Benutzer bereitzustellen, wenn die Ansichten 60 innerhalb des Portfolios 58 aktualisiert oder anderswie geändert wurden. Derart wird die Sicherheit in den Betrieb des Systems integriert wird, was die Zusammenarbeit und die gemeinsame Nutzung von Daten innerhalb eines Unternehmens erleichtert.
  • Die Ansichten 60 stellen Daten zum Anzeigen einer großen Vielfalt von Formaten, wie zum Beispiel Tabellen, Graphiken, Berichte, Pivots und Webseiten bereit. Die Ansichten 60 können entweder Live-Ansichten sein, die aktuelle Daten darstellen oder Schnappschussansichten von Daten in einem bestimmten Zeitpunkt sein. Zusätzlich und wie unten ausführlicher beschrieben, können Live-Ansichten 60 zum automatischen Aktualisieren in regelmäßigen Abständen programmiert werden, zum Aktualisieren beim ersten Öffnen und dergleichen, Schnappschussansichten 60 können eingestellt werden, um frühere Schnappschüsse zu überschreiben oder eine Sequenz von Schnappschüssen oder überlagernde Ansichten 60 für historische Analyse anzulegen. Die Ansichten 60 und Portfolios 58 können privat von einem Benutzer gespeichert oder verteilt oder gemeinsam von einer oder mehreren Sicherheitsgruppen 54 benutzt werden, um die Zusammenarbeit und Beschlussfassung zu erleichtern.
  • Der Sicherheitsmanager 36 verwaltet die Sicherheit in dem Portal für wirtschaftliche Intelligenz 10. Insbesondere umfasst der Sicherheitsmanager 36 vordefinierte Sicherheitsaufgaben zum Erzeugen und Warten von Benutzerprofilen 52 und Sicherheitsgruppen 54. Der Sicherheitsmanager 36 stellt auch eine Sicherheitshierarchie bereit, die es Benutzerprofilen 62 und Sicherheitsgruppen 54 erlaubt, Privilegien von Parent-Klassen zu übernehmen. Derart kann ein Systemadministrator leicht die Sicherheit für das Portal für wirtschaftliche Intelligenz 10 erstellen und warten.
  • Der Abfragengenerator 38 stellt graphische Ansichten von Datenbankelementen bereit, um Systemadministratoren und Power-Benutzer beim Definieren der Abfragemodelle 56 zu unterstützen. Die vordefinierten Abfragemodelle 56 definieren jeweils die Datenbankverbindung, die Familie von Tabellen und Spalten, die aus der Datenbank enthüllt werden, die zulässigen Verbindungstypen und -kombinationen, Metadaten, Ausführungsregeln und Aliasnamen für die Abfrage. Die vordefinierten Abfragemodelle 56 können später angepasst werden und von einem großen Bereich von Benutzern benutzt werden, um geschützte, sichere Abfragen auszuführen.
  • Das Datenbankzugriffsystem 40 weist Funktionalität und Software zum Zugreifen und Abfragen der Datenbanken 20 sowie zum Zurückgeben von Abfragenergebnissen zu dem Server 30 zur Handhabung, Analyse und Berichterstattung durch Benutzer auf. Bei der veranschaulichten Ausführungsform weist das Datenbankzugriffsystem 40 einen Abfragenplaner 72, einen SQL-Generator 74, einen Verbindungsmanager 76 und eine Java-Datenbankverbindung (JDBC) 78 auf.
  • Der Abfragenplaner 72 löst geplante Abfragen aus. Wie oben besprochen, kann jede Ansicht 60, darunter die Daten und Berechnungen, die in der Ansicht 60 enthalten sind, eingestellt werden, um sich ausgehend von der Datenbank 20 gemäß mehreren Optionen zu aktualisieren, darunter spezifische Terminpläne. Das erlaubt es, die Ansichten 60 leicht zu aktualisieren, so dass sie den laufenden Stand der Daten wiedergeben und die Benutzer können immer mit der neuesten Information arbeiten. Zusätzlich können Schnappschussansichten 60 automatisch geplant werden, um eine historische Sammlung von Schnappschussansichten 60 zu schaffen, die auf der gleichen Abfrage basieren. Eine Ansicht 60 kann daher zum Beispiel für Aktualisierungen um 10:00 abends jeden Montag, Mittwoch und Freitag geplant werden und automatisch an eine Gruppe von Benutzern über ein gemeinsames Portfolio 58 verteilt werden.
  • Der SQL-Generator 74 empfängt benutzerangepasste oder nicht benutzerangepasste Abfragemodelle von einem Benutzer und erzeugt eine Text-SQL-Abfrage zum Ausführen durch den Verbindungsmanager 76. Derart werden Abfragemodelle, die von Benutzern graphisch angezeigt und editiert wurden, automatisch wieder in ausführbare Datenbankanweisungen umgewandelt und danach ausgeführt. Das erlaubt es unerfahrenen Benutzern und anderen Informationskonsumenten mit wenig oder keinen Programmierkenntnissen, das Portal für wirtschaftliche Intelligenz 10 komplett zu benutzen und von ihm zu profitieren.
  • Bei einer Ausführungsform weist der SQL-Generator 74 dialogsspezifische Generator und einen SQL-Syntaxbaum auf, um Text-SQL zu erzeugen. Die dialogsspezifischen Generatoren entsprechen den verschiedenen Typen von Datenbanken 20, auf die in Zusammenhang mit dem Portal für wirtschaftliche Intelligenz 10 zugegriffen wird oder die verwendet werden. Die dialogsspezifischen Generatoren können zum Beispiel Oracle, Sybase, DB2 und MS SQL-Generator enthalten.
  • Der Verbindungsmanager 76 empfängt Text-SQL-Abfrageanfragen von dem SQL-Generator 74 und kommuniziert mit den Datenbanken 20, um die angeforderten Abfragen durch die Java Datenbankverbindung (JDBC) 78 auszuführen. Bei der veranschaulichten Ausführungsform weist der Verbindungsmanager einen modularen Abfragemotor 80 auf, der einen intelligenten Datensatz 82 und eine Bibliothek von Datentreibern 84 enthält. Wie unten ausführlicher beschrieben, führen die Datentreiber 84 jeweils eine vordefinierte Datenbankoperation aus. Der intelligente Datensatz 82 wählt Datentreiber 84 aus und bestellt sie aus der Bibliothek nach Bedarf, um eine Abfrageanfrage durchzuführen. Die Datenbankzugriffsverfahren sind daher genormt und der Datensatz braucht daher nicht für jede Anwendung getrennt angepasst zu werden.
  • Der Cachemanager 42 enthält einen Cache 90, der mehrere Seiten 92 und einen Prozess-Thread 94 aufweist. Der Cachemanager 42 empfängt Daten, die aus den Datenbanken 20 als Reaktion auf Abfrageanfragen extrahiert werden und speist sie in die Seiten 92 ein. Der Cachemanager 42 läuft asynchron zu dem Prozess-Thread 94, der den Cache 90 treibt, um Daten in die Seiten 92 einzuspeisen. Es ist klar, dass die Daten anderswie geeignet empfangen, gespeichert und ursprünglich von dem Server 30 verarbeitet werden können.
  • Der multidimensionale Modellmanager 44 erzeugt und manipuliert multidimensionale Speichermodelle 100. Wie unten ausführlicher beschrieben, verwendet das multidimensionale Speichermodell 100 eine nicht sparse Architektur zum Mininieren der Größe des Modells 100. Die verringerte Größe des Modells 100 verbessert die Verarbeitungszeiten und erlaubt effiziente Pivot- und Drilloperationen während der Datenanalyse. Zusätzlich verwendet das Modell 100 eine offene Architektur, um es zu erlauben, Berechnungen dynamisch nach dem Aufbauen des Modells auszuführen. Die Benutzer können daher neue Berechnungen anlegen, um Datenschnittstellen zu analysieren, die während der Originaldefinition der Modelle 100 nicht vorweggenommen wurden. Das verringert Zeit und Ressourcen, die zum Unterstützen von Pivot- und Drilloperationen erforderlich sind.
  • Der Clientadministrator 46 stellt eine zentrale Stelle bereit, von der ausgehend das Portal 10 die Clientadministration verwaltet. Der Clientadministrator 46 stellt eine Null-Administrations-Architektur bereit, die automatisch das Verbreiten von Clientanwendungen verwaltet, um die Benutzerleistung zu maximieren und den Netzwerkverkehr zu minimieren und gleichzeitig sicherzustellen, dass immer die jüngsten Anwendungen von den Clients verwendet werden.
  • Die Clientebene 16 weist mehrere Clients 110 auf. Die Clients 110 können lokal oder voneinander und von dem Server 30 entfernt sein. Bei einer Ausführungsform stellen die Clients 110 dem Server jeden Zugriff, darunter Systemadministration bereit. Wie oben beschrieben, werden alle Funktionen des Clients 110 von einem robusten Satz aus Befugnissen, die in dem Server 30 gespeichert sind, kontrolliert. Befugnisse werden sowohl einzelnen Benutzern als auch Sicherheitsgruppen von Benutzern gewährt. Derart wird die robuste Funktionalität des Portals für wirtschaftliche Intelligenz 10 entsprechend kontrolliert und an alle Benutzer unternehmensweit zugeteilt, ohne technisch weniger bewanderten Benutzern allzu komplex zu erscheinen.
  • Der Client 110 weist eine Client-API 112 sowie eine graphische Benutzerschnittstelle (GUI) 114 auf. Bei der veranschaulichten Ausführungsform ist der Client 110 mit allen Komponenten aus Java-Stücken oder „Java-Beans" konzipiert. Bei dieser Ausführungsform und wie unten ausführlicher beschrieben, identifiziert der Client seine Bestandteile, wenn er eine Verbindung mit dem Server 30 erstellt. Das erlaubt eine effiziente Verwaltung des Clients 110 und die Integration zusätzlicher Funktionalität in den Client 110.
  • Die Client-API 112 weist einen Satz von Java-Klassen auf, die definieren, wie der Client 110 mit dem Server 30 kommuniziert. Da die Client-API 112 es jedem Javaprogramm erlaubt, mit dem Server 30 zu kommunizieren, kann ein Unternehmen effizient zusätzliche Anpassungsfähigkeiten für seine Clients 110 hinzufügen.
  • Die graphische Benutzerschnittstelle 114 weist einen Satz von Verwaltungs-Paneelen 116, einen Satz von Benutzer-Paneelen 118 und einen Satz von Assistenten 120, einen Abfrageverfasser 122, einen Satz von Viewern 124 und einen Property Inspector 126 auf. Die administrativen und Benutzer-Paneele 116 und 118 stellen graphische Anzeigen zum Führen von Administratoren und Benutzern durch ihre jeweiligen Operationen bereit.
  • Die Assistenten 120 unterteilen die Anlegungsprozesse in einen oder mehrere logische Schritte und führen die Administrationen und Benutzer durch den Anlegungsprozess. Das unterstützt unerfahrene Benutzer und andere Informationskonsumenten ohne ausführliche Programmierkenntnisse beim Ausführen von Abfragen und Analysieren von Ergebnissen. Derart können alle Benutzer innerhalb eines Unternehmens effizient das Portal für wirtschaftliche Intelligenz 10 zum Extrahieren aussagekräftiger Daten benutzen und dadurch ihren Einsatzbereich innerhalb eines Unternehmens verbessern.
  • Der Abfragenverfasser 122 spezifiziert, woher Daten kommen, welche stichhaltigen Daten anzuzeigen sind und wie sie zu speichern sind. Der Abfragenverfasser 122 stellt eine graphische Ansicht vordefinierter Abfragemodelle 56 bereit, um es Benutzern zu erlauben, intuitiv die Modelle 56 zu verstehen und abzuändern, so dass sie ihren besonderen Erfordernissen entsprechen. Bei einer Ausführungsform erlaubt es der Abfragenverfasser 122 den Benutzern, nur die Datenelemente in einem Modell 56 zu sehen, für die sie Privilegien besitzen. Der Abfrageverfasser 122 speichert Benutzeredits an einem vordefinierten Abfragemodell 56 als benutzerangepasstes Abfragemodell 128, das von dem Server 30 geladen und ausgeführt werden kann.
  • Der Viewer 124 legt eine Kombination von Datenansichten für Tabellen, Graphiken, Berichte, Pivots, Webseiten und dergleichen an. Der Viewer 124 erlaubt es Benutzern, einfach von einer beliebigen Ansicht 60 von Daten zu einer anderen umzuschalten und Daten zu sortieren und filtern. Die Ansichten 60 können auch zu HTML zur Veröffentlichung auf einem Web-Server oder zum gemeinsamen Nutzen in dem Katalog 32 exportiert werden. Wie oben beschrieben, können die Datenansichten 60 live oder Schnappschüsse sein. Die Ansichten 60 oder Portfolios 58 aus Ansichten 60 können privat innerhalb einer einem einzelnen Benutzer gehörenden Katalogzone gespeichert werden oder unter einer oder mehreren Sicherheitsgruppen 54 verteilt und gemeinsam genutzt werden, um die Zusammenarbeit und Beschlussfassung zu erleichtern.
  • Innerhalb des Viewers 124 zeigt ein Tabellen-Viewer 130 Information als eine Reihe von Spalten und Zeilen an. Eine Tabellenansicht dient typisch als Ausgangspunkt zum Entwickeln von Ideen, denn sie stellt eine Gesamtvorstellung der Organisationsart von Information bereit. In der Tabellenansicht können Benutzer Filter hinzufügen, berechnete Felder hinzufügen und zusammenfassende und Zwischensummeninformation hinzufügen. Spalten können anders angeordnet, verborgen oder anderswie geändert werden. Der Inhalt kann sortiert und auf verschiedenen Niveaus angezeigt werden.
  • Ein Bericht-Viewer 132 zeigt Daten in einem Berichtformat an. Eine Berichtansicht stellt ein robustes Bandberichts format bereit und erleichtert das automatische Berichterzeugen und -verteilen. Die Benutzer können nach ihrem Gutdünken die Felder und Spalten in einer interaktiven graphischen Designübersicht eines Berichts anordnen und Berechnungen, Zwischensummen, Gruppierungen, Kopfteile, Fußzeilen, Titel und Graphiken hinzufügen.
  • Ein Graphik-Viewer 134 zeigt graphische Ansichten von Daten in einer großen Vielfalt von 2D- und 3D-Formaten an. Diese Formate können zum Beispiel Balken-, Kreisdiagramme mit Sektoren, Liniendiagramme, Streuungsdiagramme und Radargraphen umfassen. Während der Arbeit mit einer Graphik können Benutzer den Typ oder den Inhalt der Graphik durch Herausfiltern von Daten unter Einsatz eines Untersatzes der Originaldaten ändern und multidimensionale Daten zeichnen. Die graphische Ansicht kann auch „on the fly" geändert werden, indem die Aufzeichnungen in einer anderen Reihenfolge sortiert und die Eigenschaften der Graphik geändert werden.
  • Ein Pivot-Viewer 136 stellt Pivot-Ansichten bereit, die multidimensionale oder gewürfelte Daten gemäß mehreren Dimensionen oder gewürfelte Daten gemäß mehreren Dimensionen anzeigen. Das erlaubt es Benutzern, Information entlang disparater Dimensionen zu betrachten (slice and dice), um unterschiedliche Perspektiven zu den Aktivitäten und der Leistung eines Unternehmens zu erhalten. Die Pivot-Ansicht unterstützt Hierarchien in den mehreren Dimensionen, was es Benutzern erlaubt, Drill-Down, Drill-Up und Drill-Through-Analyse durchzuführen. Wie unten ausführlicher beschrieben, werden die multidimensionalen Ansichten ausgehend von dem multidimensionalen Speichermodell 100 erzeugt.
  • Ein Browser-Viewer 138 stellt einen eingebauten, plattformübergreifenden Web-Browser bereit. Das erlaubt es den Benutzern, auf Arbeitsprodukte und Internet- oder Intranet-Umgebungen auf Web-Basis zuzugreifen. Berichte oder Ob jekte, die in anderen Ansichten angelegt wurden, können zu HTML exportiert werden, um auf Web-Sites veröffentlicht oder über die Browser-Schnittstelle angezeigt zu werden.
  • Der Property Inspector 126 erlaubt es den Benutzern, die Anzeigeeigenschaften einer bestimmten Ansicht zu wechseln. Bei einer Ausführungsform hat der Property Inspector 126 keinen Modus. Bei dieser Ausführungsform wendet der Property Inspector 126 die Änderungen noch auf dem Bildschirm an und erlaubt es den Benutzern, mit verschiedenen Konfigurationen und Attributen zu experimentieren, bevor der Property Inspector 122 geschlossen wird.
  • Gemeinsam fügen der Client 110 und der Server 30 des Portals für wirtschaftliche Intelligenz 10 eine strategische Schicht zu einer Unternehmensinformationsstruktur hinzu und stellen eine einzige Eingabestelle für integrierte Abfrage, Berichterstattung und Analyse bereit, die inhärent für einen weiten Bereich von Benutzern ausdehnbar sind. Da das Portal für wirtschaftliche Intelligenz 10 komplett unternehmensweit integriert werden kann, erleichtert das Portal 10 unternehmensweite Routine-Analyseweitergabe und die gemeinsame Nutzung von Information. Daher sind viel mehr Leute innerhalb eines Unternehmens in der Lage, Daten, die bereits für das Unternehmen existieren, regelmäßig und nutzbringend zu verwenden.
  • 2 ist ein Flussdiagramm, das ein Verfahren zum Initialisieren des Portals für wirtschaftliche Intelligenz 10 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Unter Bezugnahme auf 2 beginnt das Verfahren in Schritt 200, in dem ein Systemadministrator die Benutzerprofile 52 definiert. Wie oben beschrieben, stellen die Benutzerprofile 52 Benutzern Befugnisse bereit, Features innerhalb des Systems zu verwenden. Dann definiert der Systemadministrator in Schritt 202 Sicherheitsgruppen 54. Wie oben beschrieben, sind die endgültigen Sicherheits befugnisse und Privilegien, die dem Benutzer zufallen, die Einheit aller seiner oder ihrer individuellen Befugnisse, wie sie in den Benutzerprofilen 52 definiert sind sowie die Befugnisse jeder Sicherheitsgruppe 54, zu der er oder sie gehört.
  • Danach erzeugt der Systemadministrator in Schritt 204 einen Datenbank-Aliasnamen 50 für jede der Datenbanken 20. Die Datenbank-Aliasnamen 50 beugen dem direkten Benutzerzugriff auf Datenbanken vor, um die Datenintegrität zu wahren und es technisch nicht bewanderten Benutzern zu erlauben, sicher auf Firmendaten zuzugreifen, ohne die Verletzung der Integrität der Daten zu befürchten. Die Datenbank-Aliasnamen dienen auch zum gemeinsamen Nutzen von Verbindungen mit den physischen Datenbanken 20 und dadurch zum Reduzieren der Anzahl von Datenbankverbindungen, die erforderlich ist, um eine große Anzahl von Clients 110 zu unterstützen.
  • Dann erzeugt der Systemadministrator in Schritt 206 die vordefinierten Abfragemodelle 56 unter Einsatz des Abfragegenerators 38. Die vordefinierten Abfragemodelle 56 kontrollieren die Elemente in einer Datenbank 20, auf die ein bestimmter Satz von Benutzern Zugriff erhält. Zusätzlich schränken die vordefinierten Abfragemodelle 56 die Abfragentypen ein, die ausgeführt werden können, und definieren das Maximum an Computerressourcen, das zum Ausführen der Abfragen und der zulässigen Verbindungen zwischen Tabellen verwendet werden kann, um unkontrollierten oder bösartigen Abfragen vorzubeugen.
  • Schritt 206 führt zu dem Ende des Prozesses, durch das der Systemadministrator das Portal für wirtschaftliche Intelligenz 10 für den Gebrauch innerhalb eines Unternehmens einrichtet. Als Teil dieses Einrichtungsprozesses wurden Befugnisse und Abfragen für Benutzer definiert, um den Zugriff auf und die Verteilung von Daten innerhalb des Systems zu kontrollieren.
  • 3 ist ein Flussdiagramm, das ein Verfahren zum Erzeugen der vordefinierten Abfragemodelle 56 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dieser Ausführungsform werden spezifizierte Daten innerhalb des Modells automatisch so weit wie möglich verlinkt. Zusätzlich werden Datenbankelemente graphisch für den Systemadministrator angezeigt, um das Erzeugen der Abfragemodelle 56 zu erleichtern.
  • Unter Bezugnahme auf 3 beginnt das Verfahren in Schritt 220, in dem der Abfragegenerator 38 automatisch für einen Systemadministrator die Tabellen und Spalten einer Datenbank 20, für die eine Abfrage zu erzeugen ist, identifiziert und anzeigt. Dann wählt der Systemadministrator im darauf folgenden Schritt 222 einen Untersatz der Tabellen und Spalten für ein vordefiniertes Abfragemodell 56 aus.
  • Der Abfragegenerator 38 geht weiter zu dem Beschlussfassungsschritt 224 und bestimmt, ob die Datenbank 20 Full Foreign Key (FK)/Primary Key (PK) Information hat. Full Foreign Key/Primary Key-Information erlaubt es, Daten in getrennten Tabellen automatisch zu verbinden. Wenn die Datenbank 20 daher komplette Foreign Key/Primary Key-Information enthält, führt der Ja-Zweig des Entscheidungsschritts 224 zum Schritt 226, in dem Child-Tabellen automatisch mit den Parent-Tabellen in dem vordefinierten Abfragemodell 56 unter Einsatz von Foreign Key/Primary Key-Information verlinkt werden. Schritt 226 führt zu dem Ende des Prozesses. An diesem Punkt kann das vordefinierte Abfragemodell 56 gespeichert, werden oder weitere Edits können durch den Systemadministrator ausgeführt werden.
  • Unter Rückkehr zum Entscheidungsschritt 224 und wenn komplette Foreign Key/Primary Key-Information nicht verfügbar ist, führt der Nein-Zweig des Entscheidungsschritts 224 zum Entscheidungsschritt 228. Im Entscheidungsschritt 228 bestimmt der Abfragegenerator 38, ob die komplette Primary Key-Information von der Datenbank 20 her verfügbar ist. Die Bereitstellung der kompletten Primary Key-Information erlaubt es den Parent- und Child-Tabellen, durch eine Datenbanktabellensuche bestimmt zu werden. Wenn daher komplette Primary Key-Information verfügbar ist, führt der Ja-Zweig des Entscheidungsschritts 228 zum Schritt 226, in dem die Datenbanktabellensuche ausgeführt wird, um Parent- und Child-Tabellen zu bestimmen. Nach dem Bestimmen der Parent- und Child-Tabellen, werden sie automatisch verlinkt, um das vordefinierte Abfragemodell 56 zu erzeugen. Das vordefinierte Abfragemodell kann dann gespeichert oder von dem Systemadministrator weiter editiert werden.
  • Unter Rückkehr zum Entscheidungsschritt 228 und wenn komplette Primary Key-Information nicht verfügbar ist, führt. der Nein-Zweig des Entscheidungsschritts 228 zum Entscheidungsschritt 230. Im Entscheidungsschritt 230 bestimmt der Abfragegenerator ob eindeutige Indexinformation, die Parent- und Child-Tabellen identifizieren kann, von der Datenbank 20 verfügbar ist. Wenn solche eindeutige Indexinformation verfügbar ist, führt der Ja-Zweig des Entscheidungsschritts 230 zum Schritt 226. Im Schritt 226 wird die eindeutige Indexinformation verwendet, um die Datenbank nach Parent- und Child-Tabellen zu durchsuchen. Der Abfragegenerator 38 linkt dann automatisch die Child- und Parent-Tabellen, um das vordefinierte Abfragemodell 56 zu erzeugen. Das vordefinierte Abfragemodell kann dann gespeichert oder von dem Systemadministrator weiter editiert werden.
  • Unter Rückkehr zum Entscheidungsschritt 230 und wenn die eindeutige Indexinformation von der Datenbank 20 nicht verfügbar ist, führt der Nein-Zweig des Entscheidungsschritts 230 zum Schritt 232. In Schritt 232 identifiziert der Systemadministrator manuell und linkt Child- und Parent-Tabellen, um das vordefinierte Abfragemodell 56 zu erzeugen. Derart werden die vordefinierten Abfragemodelle 56 so weit wie möglich automatisch mit minimalem Eingriff des Administrators erzeugt. Es ist klar, dass die Datenbanktabellen und andere Elemente in anderer Art geeignet verlinkt werden können.
  • 4 ist ein Flussdiagramm, das ein Verfahren zum Ausbreiten und Warten von Clientanwendungen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dieser Ausführungsform werden die Clientanwendungen zentral verbreitet und von dem Server 30 unter Einsatz eines dünnen Boot-Strap-Applets, das ursprünglich zum Downloaden von Javaklassen verwendet wird, die die Clientanwendungen bilden, zu dem Client 110 verbreitet und gewartet. Danach erfolgen alle Upgrades der Clientsoftware automatisch durch den Server 30 beim Initialisieren einer neuen Session durch den Client 110. Ein Teil der Installations-/Aktualisierungsvorgehensweise umfasst das Downloaden einer Manifest File, in der alle Namen und Versionen aller Module und Ressourcen auf einem Client 110 aufgelistet sind.
  • Unter Bezugnahme auf 4 beginnt das Verfahren in Schritt 250, in dem eine neue Verbindung mit dem Server 30 durch den Client 110 aufgebaut wird. In Schritt 252 überträgt der Boot-Strap-Agent auf dem Client 110 die Manifest File des Benutzers zu dem Server 30.
  • Der Server 30 geht weiter zu Schritt 254 und vergleicht die Versionen aller Module und Ressourcen, die in der Manifest File aufgelistet sind, mit aktuellen Versionen der entsprechenden Dateien in dem Server 30. Im Entscheidungsschritt 256 bestimmt der Server 30 basierend auf dem Vergleich, ob einige oder alle der Module oder Ressourcen veraltet sind. Wenn einige oder alle der Module oder Ressourcen veraltet sind, führt der Ja-Zweig des Entscheidungsschritts 256 zum Schritt 258. Im Schritt 258 erzeugt der Server 30 ein inkrementelles Aktualisieren für den Client 110. Das inkrementelle Aktualisieren umfasst nur die Module, die aktualisiert werden müssen.
  • Im Schritt 260 überträgt der Server dann das inkrementelle Update zu dem Client 110. Im Schritt 262 aktualisiert der Client 110 die Anwendungen auf der Client-Seite basierend auf dem inkrementellen Update. In Schritt 264 wird dann eine neue Session für den aktualisierten Client 110 gestartet. Unter Rückkehr zum Entscheidungsschritt 256 und wenn keine der Clientanwendungen veraltet ist, führt der Nein-Zweig des Entscheidungsschritts 256 ebenfalls zu dem Schritt 264, in dem eine neue Session gestartet wird. Derart bestimmt der Server 30, welches Modul (oder welche Javaklassen) wenn überhaupt veraltet, fehlend oder obsolet sind, und schiebt dann selektiv die richtigen Module gemeinsam mit einem aktualisierten Manifest zu der Maschine des Benutzers. Die Benutzer brauchen daher die Clientsoftware nie manuell zu aktualisieren und können problemlos zwischen verschiedenen Workstations wechseln, um sich anzumelden, ohne dass ihre Anwendungen und Datendateien auf jeder Station neu installiert werden müssen. Zusätzlich ist die Ausführung des Clients 110 schnell und immer aktuell, während die Verwaltung zentral gewartet wird, und der Netzwerkverkehr wird minimiert.
  • 5 ist ein Flussdiagramm, das ein Verfahren zum Anpassen und Ausführen eines Abfragemodells basierend auf einem vordefinierten Abfragemodell 56 gemäß einer Ausführungsform der vorliegenden Erfindung ist. Bei dieser Ausführungsform werden vordefinierte Abfragemodelle 56 erzeugt und auf dem Server 30 von einem Administrator gewartet und den Benutzern auf Anfrage und nach Prüfen der Zugriffsprivilegien bereitgestellt.
  • Unter Bezugnahme auf 5 beginnt das Verfahren in Schritt 280, in dem der Server 30 eine Anfrage von einem Benutzer nach einem vordefinierten Abfragemodell 56 erhält. Dann bestimmt der Server in Schritt 282 einen zugänglichen Abschnitt des vordefinierten Abfragemodells 56 basierend auf den Privilegien des Benutzers. Der zugängliche Abschnitt ist ein Abschnitt des Abfragemodells 56, den der Benutzer anzeigen kann. Bei einer besonderen Ausführungsform kann der zugängliche Abschnitt des vordefinierten Abfragemodells 56 auch der Abschnitt des Abfragemodells sein, der vom Benutzer editiert werden kann. Das Bestimmen des zugänglichen Abschnitts des vordefinierten Abfragemodells 56 kann verwirklicht werden, indem die Privilegien des Benutzers in Zusammenhang mit dem Abfragemodell bestimmt und dann der zugängliche Abschnitt basierend auf den Privilegien des Benutzers bestimmt wird.
  • Beim Bestimmen des zugänglichen Abschnitts des vordefinierten Abfragemodells 56 kann der Server 30 auch einen geschützten Abschnitt des vordefinierten Abfragemodells 56 bestimmen. Der geschützte Abschnitt ist der restliche oder der andere geeignete Abschnitt des vordefinierten Abfragemodells 56. Wie unten ausführlicher beschrieben, kann der Abfrageverfasser 122 den geschützten Abschnitt des vordefinierten Abfragemodells verbergen oder anderswie Edits an dem geschützten Abschnitt des vordefinierten Abfragemodells verhindern.
  • Dann lädt der Server 30 in Schritt 284 das vordefinierte Abfragemodell 56 zu dem Client 110 herunter. Im Schritt 286 zeigt der Anfragenverfasser 122 den zugänglichen Abschnitt des vordefinierten Abfragemodells 56 für den Benutzer an. Bei einer Ausführungsform zeigt der Abfrageverfasser 122 eine graphische Ansicht zugänglicher Datenelemente an, die das vordefinierte Abfragemodell 56 definieren. Beim Anzeigen des zugänglichen Abschnitts kann der Abfrageverfasser 122 den geschützten Abschnitt des vordefinierten Abfragemodells 56 verbergen, um einem Editieren und/oder Anzeigen dieses Abschnitts vorzubeugen.
  • Der Abfrageverfasser 122 geht weiter zu Schritt 288 und empfängt Benutzeredits an dem vordefinierten Abfragemodell 56. Benutzeredits können die Auswahl oder Rückgängigmachung der Auswahl von Datenbankentabellen, Spalten in den Datenbankentabellen und Verbindungen zwischen den Datenbankentabellen enthalten. Dann erzeugt der Abfrageverfasser 122 in Schritt 290 ein benutzerangepasstes Abfragemodell 128 basierend auf Benutzeredits an dem zugänglichen Abschnitt des vordefinierten Abfragemodells 56. Im Schritt 292 erfolgt ein Upload des benutzerangepassten Abfragemodells 128 zu dem Server 30 zur Ausführung.
  • Im Schritt 294 erzeugt der SQL-Generator 74 automatisch eine Datenbankabfrage basierend auf dem benutzerangepassten Abfragemodell 128. Die Datenbankabfrage weist Text-SQL auf, das von dem Verbindungsmanager 76 zum Ausführen der Abfrage ausgeführt werden kann. Im Schritt 296 empfängt der Server 30 die Ergebnisse der Abfrage. Wie oben beschrieben, werden die Abfrageergebnisse anfänglich in dem Server 30 durch den Cachemanager 42 gespeichert.
  • Im Entscheidungsschritt 298 und wenn die Abfrage multidimensionale Analyse aufweist, führt der Ja-Zweig des Entscheidungsschritts 298 zu Schritt 300, in dem ein multidimensionales Speichermodell 100 basierend auf den Ergebnissen erzeugt wird. In Schritt 302 wird das multidimensionale Speichermodell 100 verwendet, um Pivot-, Drill-Through- und andere Ansichten wie vom Benutzer gefordert zu erzeugen.
  • Unter Rückkehr zum Entscheidungsschritt 298 und wenn die multidimensionale Analyse nicht angezeigt ist, führt der Nein-Zweig des Entscheidungsschritts 298 zu dem Schritt 304, in dem die angeforderten eindimensionalen Ansichten basierend auf den Abfrageergebnissen erzeugt werden. Die Schritte 302 und 304 führen jeweils zum Entscheidungsschritt 306. Im Entscheidungsschritt 306 bestimmt der Server 30, ob das benutzerangepasste Abfragemodell 128 für den späteren Gebrauch gespeichert wird. Wenn der Benutzer wünscht, das Abfragemodell 128 zu speichern, führt der Ja-Zweig des Entscheidungsschritts 306 zu Schritt 308, in dem das Abfragemodell in ein ausgewähltes Portfolio 58 des Benutzers oder einer Sicherheitsgruppe 58, zu der der Benutzer Zugang hat, gespeichert. Schritt 308 und der Nein-Zweig des Entscheidungsschritts 306 führen jeweils zum Entscheidungsschritt 310.
  • Im Entscheidungsschritt 310 bestimmt der Server 30, ob die Abfrageergebnisse als ein historischer Schnappschuss gespeichert werden sollen. Wenn ein Benutzer entscheidet, die Ergebnisse als einen Schnappschuss zu speichern, führt der Ja-Zweig des Entscheidungsschritts 310 zu dem Schritt 312, in dem die Abfrageergebnisse in ein ausgewähltes Portfolio 58 gespeichert werden. Schritt 312 führt zu dem Ende des Prozesses, durch welchen ein vordefiniertes Abfragemodell 56 für einen Benutzer zum Anpassen und Anpassen an benutzerspezifische Anforderungen bereitgestellt wird. Das vordefinierte Abfragemodell 56 wird unter Einsatz einer graphischen Ansicht von Datenelementen angezeigt und geändert. Das erleichtert die robuste Datenanalyse durch alle Benutzer und erlaubt es unerfahrenen Benutzern, verfügbare Information effektiv zu nutzen, um die Operationen in ihrem Unternehmen zu verbessern.
  • 6 ist ein Blockschaltbild, das Details des Abfragemotors 80 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dieser Ausführungsform weist der Abfragemotor 80 eine Bibliothek mit Datentreibern 84 sowie einen intelligenten Datensatz 82 auf, der als Reaktion auf eine Abfrageanfrage betrieben werden kann, um aus der Bibliothek erforderliche Datentreiber 84 zum Ausführen der Anfrage zu identifizieren. Der intelligente Datensatz 82 kann ferner betrieben werden, um die erforderliche Reihenfolge der Datentreiber 84 zum Ausführen der Anfrage zu bestimmen, eine Treiberkette zu erzeugen, die die erforderlichen Datentreiber in der erforderlichen Reihenfolge enthält, und die Datentreiber 84 in der Treiberkette in der Reihenfolge auszuführen.
  • Unter Bezugnahme auf 6 erzeugt der intelligente Datensatz 82 eine Treiberkette 320 als Reaktion auf eine Abfrageanfrage. Die Treiberkette 320 enthält Datentreiber 322, die erforderlich sind, um die verlangte Anfrage durchzuführen. Die Datentreiber 322 werden dynamisch aus der Bibliothek verfügbarer Datentreiber 84 ausgewählt und von dem intelligenten Datensatz 82 basierend auf der Abfrageanfrage geordnet. Bei einer Ausführungsform werden die Datentreiber 84 in der Bibliothek von einer Basisklasse abgeleitet, für die alle Schnittstellenverfahren den nächsten Treiber in der Kette abrufen. Bei dieser Ausführungsform hat jeder Datentreiber eine Kettenpriorität zum Platzieren in einer gleichen relativen Position innerhalb der Kette 320. Wie hier verwendet, bedeutet der Begriff jeder jeden einzelnen mindestens eines Untersatzes der identifizierten Elemente.
  • Für die veranschaulichte Ausführungsform umfasst die Treiberkette 320 die Datentreiber D1, D2, D3 und D4. Der Datentreiber D1 führt einen Datenbankabrufvorgang auf, der die verlangten Aufzeichnungen zurückgibt. Die zurückgegebenen Aufzeichnungen werden dann von dem Datentreiber D2 sortiert und von dem Datentreiber D3 indexiert. Der Datentreiber D4 führt dann die verlangte Suche an den sortierten und indexierten Datenaufzeichnungen aus. Derart verwendet der modulare Abfragemotor 80 genormte Zugriffsverfahren zum Ausführen der Datenbankabfragen. Das Portal 10 braucht daher nicht für besondere Datenbankabfragen angepasst zu werden, und die Kosten zum Bereitstellen und Warten des Portals 10 für wirtschaftliche Intelligenz werden verringert.
  • 7 ist ein Flussdiagramm, das den Betrieb des modularen Abfragemotors 80 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Unter Bezugnahme auf 7 beginnt das Verfahren in Schritt 340, in dem eine Abfrageanfrage von dem intelligenten Datensatz 82 empfangen wird. In Schritt 342 wählt der intelligente Datensatz 82 dann dynamisch Datentreiber 84, die zum Ausführen der Abfrageanfrage erforderlich sind, aus der Bibliothek aus.
  • In Schritt 344 bestimmt der intelligente Datensatz 82 die Reihenfolge der Datentreiber 84, die zum Ausführen der Anfrage erforderlich ist. In Schritt 346 baut der intelligente Datensatz 82 dynamisch eine Treiberkette auf, die die erforderlichen Datentreiber in der erforderlichen Reihenfolge zum Ausführen der Datenabfrage aufweist.
  • Dann führt der intelligente Datensatz in Schritt 348 die Treiberkette aus, um die Abfrageanfrage auszuführen. Innerhalb der Treiberkette werden die Datensätze 82 in der Reihenfolge ausgeführt, wobei jeder einen nächsten Treiber 84 in der Kette nach dem Abschluss seiner eigenen Ausführung abruft. Der Abfragemotor 80 und der Datensatz 82 sind daher von der Anwendung unabhängig und können leicht geändert werden, um neue Funktionalitäten zu unterstützen, indem Datentreiber 84 zu der Bibliothek hinzugefügt und die intelligenten Datensätze 82 gemäß ihrer Funktionalität programmiert werden.
  • 8 ist ein Blockschaltbild, das Details eines multidimensionalen Speichermoduls 100 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dieser Ausführungsform verwendet das Speichermodell 100 eine nicht sparse Architektur, um die Größe jedes Modells 100 zu minimieren. Zusätzlich verwendet das Speichermodell 100 eine offene Architektur, um es zu erlauben, Berechnungen dynamisch nach dem Aufbauen des Modells 100 auszuführen.
  • Unter Bezugnahme auf 8 weist das multidimensionale Speichermodell 100 einen Slot 360 für jede Dimension und einen Slot 362 für eine berechnete Dimension auf. Die dimensionalen Slots 360 enthalten Einträge und dazugehörende Datenwerte, die aus der Datenbank extrahiert werden, während die Slots 362 der berechneten Dimension Daten enthalten, die basierend auf extrahierten Daten berechnet werden.
  • Für die veranschaulichte Ausführungsform enthält jeder Dimensions-Slot 360 einen Einträgespeicher 370 und einen Dimensionsspeicher 372. Der Einträgespeicher 370 enthält einen Satz nicht sparser Einträge 374 für die entsprechende Dimension. Vorzugsweise sind nur nicht sparse Einträge enthalten. Die Einträge 374 stellen kombinatorische dimensionale Werte dar und jeder identifiziert einen dazugehörenden Datenwert 376. Bei einer Ausführungsform enthält jeder Eintrag 374 einen Pointer auf einen dazugehörenden Datenwert 376. Alternativ können die Datenwerte 376 gemeinsam mit den Einträgen 374 in dem Einträgespeicher 378 gespeichert werden. Der Gebrauch von Pointern und getrennter Speicherung der Datenwerte 376 verbessert jedoch die Effizienz und die Verarbeitungsgeschwindigkeit des multidimensionalen Speichermodells 100.
  • Der Dimensionsspeicher 372 enthält Datenwerte 376, die mit Einträgen 374 in dem Einträgespeicher 370 verbunden sind. Die Datenwerte 376 stellen eindeutige dimensionale Werte für jede Dimension dar.
  • Ein Satz interdimensionaler Links 380 wird für jeden nicht sparsen Eintrag 374 bereitgestellt. Jede interdimensionale Link identifiziert eine Schnittstelle zwischen nicht sparsen Einträgen 374 in verschiedenen dimensionalen Slots 360. Der Satz interdimensionaler Links 380 enthält einen oder mehrere interdimensionale Links. Bei einer Ausführungsform sind die interdimensionalen Links 380 bidirektional, um effizientes Durchqueren zwischen den dimensionalen Slots 360 in jede Richtung ausgehend von einem Eintragspunkt zu erlauben.
  • Die interdimensionalen Links 380 identifizieren kollektiv alle Schnittstellen zwischen nicht sparsen Eingaben 374 in den dimensionalen Slots 360. Alle Schnittstellen, die nicht gespeicherte leere Schnittstellen aufweisen, können daher aus den nicht sparsen Eingaben 374 und dem Durchqueren der interdimensionalen Links 380 bestimmt werden. Insbesondere wird eine Null-Schnittstelle zwischen Datenbankeinträgen in einer ersten und einer zweiten Dimension durch das Fehlen von Datenbankeinträgen in dem Modell oder das Fehlen interdimensionaler Links 380, die den Eintrag 374 in der ersten Dimension mit dem Eintrag in der zweiten Dimension verbinden, bestimmt. Nicht sparse Schnittstellen zwischen Einträgen 374 in einer ersten und einer zweiten Dimension werden durch Durchqueren der interdimensionalen Links 380 von dem spezifizierten Eintrag in der ersten Dimension zu dem spezifizierten Eintrag in der zweiten Dimension bestimmt und dann durch Erzielen des Datenwerts 376, der mit dem Eintrag 374 in der zweiten Dimension verbunden ist. Die Daten und Information, die durch Durchqueren des interdimensionalen Speichermodells 100 erzielt werden, werden zur weiteren Verarbeitung wie unten ausführlicher beschrieben ausgegeben.
  • Die berechnete Dimension 362 enthält einen Satz berechneter Werte 382. Die berechneten Werte 382 sind Werte, die aus vordefinierten Berechnungen abgeleitet werden, die von einem Benutzer gleichzeitig mit dem multidimensionalen Speichermodell 100 verlangt werden. Während das multidimensionale Speichermodell 100 daher eine offene Architektur bereitstellt, um Berechnungen nach seinem Anlegen zu erlauben, werden gleichzeitige Berechnungen, die von dem Benutzer mit dem Modell verlangt werden, vorberechnet und gespeichert, um das Verarbeiten nach dem Anlegen des Modells 100 zu minimieren und die Geschwindigkeit der multidimensionalen Analyse zu verbessern.
  • 9 ist ein Blockschaltbild, das beispielhafte Daten 400 und ein beispielhaftes multidimensionales Speichermodell 402 für die beispielhaften Daten 400 veranschaulicht. Unter Bezugnahme auf 9 enthalten die beispielhaften Daten 400 Dimensionen C1 und C2 und eine berechnete Dimension C3. Die Dimension C1 enthält eindeutige Eintragswerte A, B und C, während die Dimension C2 eindeutige Eintragswerte D, E, F, G und H enthält. Die berechnete Dimension C3 enthält berechnete Datenwerte 1, 2, 3, 4, 5 und 6, die verschiedenen vordefinierten Berechnungen entsprechen.
  • Das beispielhafte Speichermodell 402 enthält dimensionale Slots 404 für Dimensionen C1 und C2 und den berechneten dimensionalen Slot 406 für die berechnete Dimension C3. In dem dimensionalen Slot 404 von C1 enthält der dimensionale Speicher 410 eindeutige dimensionale Werte A, B und C. Der Einträgespeicher 412 enthält Einträge, mit welchen die Datenwerte verbunden sind, und Pointer zu den Datenwerten. In ähnlicher Weise enthält der dimensionale Slot 404 für C2 eindeutige Datenwerte D, E, F, G und H in dem dimensionalen Speicher 414. Der Einträgespeicher 416 enthält Einträge, die mit Datenwerten verbunden sind, und Pointer zu den Datenwerten. Interdimensionale Links 420 identifizieren Schnittstellen zwischen Einträgen und daher Daten in den Dimensionen C1 und C2. Die berechnete Dimension 406 enthält berechnete Datenwerte 1, 2, 3, 4, 5 und 6, die mit vordefinierten Schnittstellen von Daten in den Dimensionen C1 und C2 verbunden sind.
  • Aus dem beispielhaften Speichermodell 402 kann zum Beispiel bestimmt werden, dass sich die Eintragswerte A und D in den Dimensionen C1 und C2 dadurch schneiden, dass sie durch interdimensionale Links 420 verbunden sind. Es kann ferner bestimmt werden, dass sich die Eintragswerte C und D nicht schneiden, da sie nicht durch interdimensionale Links 420 verbunden sind. Einträge sind durch interdimensionale Links verbunden, wenn ein Link oder eine Reihe interdimensionaler Links die Einträge verbinden.
  • 10 ist ein Flussdiagramm, das ein Verfahren zum Erzeugen und Verwenden des multidimensionalen Speichermodells 100 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Unter Bezugnahme auf 10 beginnt das Verfahren in Schritt 440, in dem das multidimensionale Speichermodell 100 durch den Manager 44 für multidimensionales Modell als Reaktion auf eine Abfrageanfrage erzeugt wird und auf Ergebnissen der Abfrageanfrage beruht. Die Abfrageanfrage spezifiziert die Dimensionen und Datendimensionen für das multidimensionale Speichermodell 100.
  • Bei einer Ausführungsform erzeugt der Manager 44 für multidimensionales Modell das multidimensionale Speichermodell 100, indem er zuerst Datenaufzeichnungen von der Quelle holt. Für jede Datenaufzeichnung werden dann die dimensionalen Werte und die Datenwerte geholt. Dann bestimmt der Manager 44 für multidimensionales Modell für jeden dimensionalen Wert einer Datenaufzeichnung, ob der dimensionale Wert in dem Einträgespeicher 370 gegenwärtig ist, und in diesem Fall kann er verwendet werden. Ist der dimensionale Wert nicht in dem Einträgespeicher 370 gegenwärtig, wird ein Eintrag 374 für den dimensionalen Wert in dem Einträgespeicher 370 angelegt, und der entsprechende Datenwert 376 wird in dem Dimensionsspeicher 372 gespeichert. In beiden Fällen werden die Dimensionen dann von links nach rechts durchquert, um interdimensionale Links 380 für die Einträge 374 in dem Einträgespeicher 370 anzulegen. Existierende Links werden wieder verwendet, während fehlende Links angelegt werden. Zusätzlich und für die Dimension am weitesten rechts werden von dem Manager 44 für multidimensionales Modell geholte Datenwerte für die Aufzeichnung hinzu gefügt. Es ist klar, dass das multidimensionale Speichermodell 100 anderswie geeignet erzeugt werden kann.
  • Nach dem Erzeugen des multidimensionalen Speichermodells 100 geht man von Schritt 440 zu Schritt 442 weiter. In Schritt 442 empfängt der Manager 44 für multidimensionales Modell eine Ansichtanfrage für einen Untersatz der spezifizierten Dimensionen und/oder Datendimensionen. Dann bestimmt der Manager 44 für multidimensionales Modell in Schritt 444 die Durchquerungen, die erforderlich sind, um die Ansicht aus dem Speichermodell 100 zu erzeugen und einen Startpunkt für jede Durchquerung. Die Durchquerungen werden von den spezifizierten Dimensionen definiert, und der Startpunkt wird auf Eintrag basierend darauf bestimmt, wie das Modell 100 organisiert ist.
  • Bei einer Ausführungsform holt der Manager 44 für multidimensionales Modell eine erste und eine nächste Aufzeichnung unter Einsatz einer rekursiven Bewegung von unten nach oben und rechts nach links aus dem multidimensionalen Speichermodell 100. Bei dieser Ausführungsform positioniert der Manager 44 für multidimensionales Modell zum Holen der ersten Aufzeichnung eine erste Dimension, die zum Anzeigen ausgewählt wird, auf den ersten Einträgespeicherwert. Danach werden alle Parent-Einträge, nämlich die links von dem ersten Eintrag, auf ihren ersten Einträgespeicherwert positioniert. Child-Einträge, die rechts von der ausgewählten Dimension liegen, werden ebenfalls auf ihren ersten Eintragssteuerwert positioniert. Für die erste Aufzeichnung holt der Manager 44 für multidimensionales Modell dann Werte für dimensionale Einträge an diesen Positionen. Zum Holen der nächsten Aufzeichnung versucht der Manager 44 für multidimensionales Modell, den am weitesten rechts liegenden Child-Eintrag in der Ansicht zu bewegen. Lässt sich der am weitesten rechts liegende Child-Eintrag bewegen, wird er neu positioniert, und die Datenwerte werden an den laufenden Positionen innerhalb des multidimensionalen Speichermo dells 100 geholt. Lässt sich der am weitesten rechts liegende Child-Eintrag nicht bewegen, versucht der Manager 44 für multidimensionales Modell, den Parent-Eintrag dieses Child-Eintrags zu bewegen, nämlich den Eintrag unmittelbar links von dem Child-Eintrag. Lässt sich der Parent-Eintrag bewegen, wird er neu positioniert und die Datenwerte werden an ihren laufenden Positionen in dem multidimensionalen Speichermodell 100 geholt. Lässt sich der Parent-Eintrag nicht bewegen, wird versucht, den Parent-Eintrag dieses Parent-Eintrags zu bewegen, nämlich den Eintrag unmittelbar links neben dem ersten Parent-Eintrag, und der Vorgang wird wiederholt, bis keine Parent-Einträge verbleiben. In diesem Zeitpunkt ist das Ende des Prozesses erreicht. Es ist klar, dass die Durchquerungen und Startpunkte innerhalb des multidimensionalen Speichermodells 100 anderswie geeignet bestimmt werden können.
  • Man geht weiter zu Schritt 446 und der Manager 44 für multidimensionales Modell durchquert das multidimensionale Speichermodell 100 von dem Eintragspunkt über verbindende multidimensionale Links 380, um die Existenz und/oder den Wert an einer spezifizierten Schnittstelle zu bestimmen. In Schritt 448 bestimmt das multidimensionale Speichermodell 100 jeden Wert an der spezifizierten Schnittstelle. Dann bestimmt der Manager 44 für multidimensionales Modell in Schritt 448, ob zusätzliche Durchquerungen für das Modell 100 existieren. Existieren zusätzliche Durchquerungen, kehrt der Ja-Zweig des Entscheidungsschritts 450 zu Schritt 446 zurück und die restlichen Durchquerungen werden ausgeführt und die Schnittstellenwerte werden berechnet, bis alle Durchquerungen abgeschlossen sind. Der Nein-Zweig des Entscheidungsschritts 450 führt dann zu Schritt 452.
  • In Schritt 452 werden Daten und Information, die aus dem multidimensionalen Speichermodell 100 ausgegeben werden, summiert und sortiert. Es ist klar, dass das multidimensionale Speichermodell anderswie konfiguriert werden kann, um die Daten vorzusortieren und zusammenzufassen. Durch Trennen der Durchquerungsoperation von dem Zusammenfassen und Sortieren wird jedoch die Verarbeitungseffizienz verbessert.
  • Dann wird in Schritt 454 die Informationsausgabe aus dem multidimensionalen Speichermodell 100 graphisch für den Benutzer in einer geforderten Ansicht von den Viewern 124 auf dem Client 110 angezeigt. Der Prozess geht weiter zu dem Entscheidungsschritt 456, wenn zusätzliche Ansichten verlangt werden, der Ja-Zweig kehrt zu Schritt 442 zurück, in dem die Ansichtsanfrage und spezifizierten Dimensionen empfangen werden, und der Prozess wird wiederholt, bis alle verlangten Ansichten abgeschlossen und für den Benutzer angezeigt wurden. In diesem Punkt führt der Nein-Zweig des Entscheidungsschritts 456 zu dem Ende des Prozesses. Derart stellt das Portal 10 für wirtschaftliche Intelligenz ein multidimensionales Speichermodell 100 mit verringerter Größe und verbesserten Verarbeitungsgeschwindigkeiten bereit, das effizient Pivot- und Drill-Operationen während der Datenanalyse unterstützt. Zusätzlich kann ein Benutzer neue Berechnungen anlegen, um Datenschnittstellen zu analysieren, die während der Originaldefinition des Modells nicht vorweggenommen wurden. Das verringert den Zeit- und Ressourcenaufwand, der zum Unterstützen von Pivot- und Drill-Operationen erforderlich ist. Die zusätzlichen Ansichten können Pivot-Ansichten und Daten-Drilling für Analyse mit hoher und niedriger Ebene enthalten.
  • 11 ist ein Bildschirmdiagramm, das eine Anzeige des dazugehörenden Fensters 480 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Unter Bezugnahme auf 11 weist das Anzeigefenster 480 eine Menüleiste 486 auf, die mehrere Pulldown-Menüs 488 enthält, die entlang einer oberen Kante des Anzeigefensters 480 angeordnet sind. Eine Toolsleiste 490 ist unmittelbar unter der Menüleiste 486 angeordnet.
  • Das Anzeigefenster 480 enthält ferner ein Katalogfenster 492 und ein Portfoliofenster 494 neben dem Katalogfenster 492. Das Katalogfenster 492 zeigt eine Dateihierarchie innerhalb des Katalogs 332 an. Das Portfoliofenster 494 zeigt die Ansichten an, die durch das Aktionsportfolio verlinkt sind.
  • Innerhalb des Portfoliofensters 494 wird jede der Ansichten getrennt in einem getrennten Anzeigefenster 496 angezeigt. Das Speichern der Ansichten in getrennten Dateien, die durch das Portfolio verlinkt sind, und das Anzeigen der dazugehörenden Ansichten innerhalb des Portfoliofensters 494 erlauben es, verwandte Dokumente leicht miteinander zu organisieren und effizient für einen Benutzer anzuzeigen. Insbesondere stellt das Portfoliofenster 494 ein gemeinsames Fenster mit einer Single Data Interface (SDI) bereit. Die getrennten Anzeigefenster 496 werden innerhalb des gemeinsamen Fensters in einer Multiple Data Interface (MDI) angezeigt. Es ist klar, dass andere Typen verwandter Komponenten getrennt gespeichert und miteinander zum Anzeigen durch eine Verbunddatei verlinkt werden können.
  • 12 ist ein Bildschirmdiagramm, das ein Anzeigefenster 500 veranschaulicht, das Anzeigeschaltflächen zum Navigieren zwischen zusammengehörenden Anzeigen in einem Portfolio gemäß einer Ausführungsform der vorliegenden Erfindung enthält. Unter Bezugnahme auf 12 enthält das Anzeigefenster 500 eine Menüleiste 502 mit mehreren Pulldown-Menüs 504, die entlang einer Oberkante des Anzeigefensters 500 angeordnet sind. Eine Toolsleiste 506 ist unmittelbar unter der Menüleiste 502 angeordnet. Das Anzeigefenster 500 enthält ein Katalogfenster 508 und ein Portfoliofenster 510, wie oben in Zusammenhang mit dem Katalogfenster 492 und dem Portfoliofenster 494 beschrieben.
  • Bei der veranschaulichten Ausführungsform sind die Ansichtfenster 512 mit dem Portfoliofenster 510 maximiert, um ein optimiertes Ansehen bereitzustellen. Um das Navigieren zwischen den maximierten Fenstern zu erlauben, werden Ansichtschaltflächen 514 als Reaktion auf das Maximieren eines Fensters 512 bereitgestellt und als Registerreiter an einer Oberkante des Portfoliofensters 510 angezeigt. Die Ansichtschaltflächen 514 können jeweils bedient werden, um ein dazugehörendes Fenster 512 als das aktive Fenster als Reaktion auf das Aktivieren anzuzeigen. Das erlaubt es dem Benutzer, schnell und einfach zwischen Fenstern zu navigieren. Die Benutzer brauchen daher nicht ständig Fenster zu bewegen, schließen, öffnen und neu zu dimensionieren, um verwandte Daten anzusehen, die in getrennten Dateien gespeichert sind. Die Ansichtschaltflächen können anderswie angezeigt oder als Reaktion auf andere geeignete Ereignisse erzeugt werden. Die Ansichtschaltflächen können zum Beispiel jedes Mal erzeugt werden, wenn ein erstes Fenster zumindest wesentlich von der Anzeige durch ein darüber liegendes Fenster verborgen wird. Sobald ein Benutzer anzeigt, dass ein Fenster maximiert, positioniert oder angezeigt werden sollte, um ein Fenster zu verdecken, kann eine Ansichtschaltfläche 514 für das abzudeckende Fenster erzeugt werden. Die Ansichtschaltflächen 514 können unabhängig von einem entsprechenden Fenster positioniert werden. Sie können daher neben oder entfernt von einem entsprechenden Fenster angezeigt werden.
  • Obwohl die vorliegende Erfindung mit mehreren Ausführungsformen beschrieben wurde, können für den Fachmann verschiedene Änderungen und Modifikationen vorgeschlagen werden. Die vorliegende Erfindung soll alle solche Änderungen und Modifikationen, die in den Geltungsbereich der anliegenden Ansprüche fallen, enthalten.

Claims (22)

  1. Verfahren zum Erzeugen von Datenbankabfragen, das Folgendes aufweist: Speichern eines vordefinierten Abfragemodells (56) zum Abfragen einer Datenbank (20), dadurch gekennzeichnet, dass das Verfahren ferner Folgendes aufweist: Anzeigen (286) eines zugänglichen Abschnitts des vordefinierten Abfragemodells (56) für einen Benutzer, Empfangen (288) von Benutzeredits an dem zugänglichen Abschnitt des vordefinierten Abfragemodells (56); Erzeugen (290) eines an den Benutzer angepassten Abfragemodells (128) basierend auf Benutzeredits an dem zugänglichen Abschnitt des vordefinierten Abfragemodells (56), und Auslösen einer Abfrage der Datenbank (20) basierend auf dem benutzerangepassten Abfragemodell (128).
  2. Verfahren nach Anspruch 1, wobei das Anzeigen (286) des zugänglichen Teils des vordefinierten Abfragemodells (56) das Anzeigen einer grafischen Ansicht von zugänglichen Datenelementen aufweist, die das vordefinierte Abfragemodell (56) definieren.
  3. Verfahren nach Anspruch 1, wobei die grafische Ansicht zugänglicher Datenelemente zugängliche Tabellen, Spalten in den Tabellen und Verbindungen zwischen den Tabellen aufweist.
  4. Verfahren nach Anspruch 1, das ferner Folgendes aufweist: Empfangen (280) einer Anfrage von dem Benutzer für das vordefinierte Abfragemodell (56); Bestimmen von Privilegien des Benutzers für das vordefinierte Abfragemodell (56), und Bestimmen (282) des zugänglichen Abschnitts des vorde finierten Abfragemodells (56) basierend auf den Privilegien des Benutzers.
  5. Verfahren nach Anspruch 1, das ferner das Anzeigen nur des zugänglichen Abschnitts des vorbestimmten Abfragemodells (56) für den Benutzer aufweist.
  6. Verfahren nach Anspruch 1, das ferner Folgendes aufweist: Empfangen einer Abfrage (280) von dem Benutzer für das vorbestimmte Abfragemodell (56), Bestimmen von Privilegien des Benutzers für das vorbestimmte Abfragemodell, Bestimmen eines geschützten Abschnitts des vordefinierten Abfragemodells (56) basierend auf den Privilegien des Benutzers, und Verbergen des geschützten Abschnitts des vordefinierten Abfragemodells (56) vor dem Anzeigen für den Benutzer.
  7. Verfahren nach Anspruch 1, das ferner Folgendes aufweist: Empfangen (280) einer Anfrage von dem Benutzer für das vorbestimmte Abfragemodell (56), Bestimmen von Privilegien für den Benutzer für das vorbestimmte Abfragemodell (56), Bestimmen eines geschützten Abschnitts des vorbestimmten Abfragemodells (56) basierend auf den Privilegien des Benutzers, und Verbieten von Edits an dem geschützten Abschnitt des vorbestimmten Abfragemodells (56) durch den Benutzer.
  8. Verfahren nach Anspruch 1, wobei das benutzerangepasste Abfragemodell (128) Datenbanktabellenverbindungen aufweist, die im Vergleich zu dem vorbestimmten Abfragemodell (56) modifiziert sind.
  9. Verfahren nach Anspruch 1, wobei das benutzerangepasste Abfragemodell (128) eine Datenbanktabelle aufweist, die in dem vordefinierten Abfragemodell (56) fehlt.
  10. Verfahren nach Anspruch 1, das ferner Folgendes aufweist: Empfangen einer Anfrage von dem Benutzer zum Editieren des vorbestimmten Abfragemodells (56), und Anzeigen für den Benutzer einer grafischen Ansicht mindestens eines zugänglichen Abschnitts von Datenelementen in der Datenbank (20).
  11. Verfahren nach Anspruch 1, das ferner Folgendes aufweist: Automatisches Erzeugen (294) einer Datenbankabfrage basierend auf dem benutzerangepassten Abfragemodell, und Auslösen der Datenbankabfrage.
  12. System zum Erzeugen von Datenbankabfragen, das Folgendes aufweist: Mittel zum Speichern eines vorbestimmten Abfragemodells (56) zum Abfragen einer Datenbank (20), dadurch gekennzeichnet, dass das System ferner Folgendes aufweist: Mittel zum Anzeigen an einem Client eines zugänglichen Abschnitts des vordefinierten Abfragemodells (56) für einen Benutzer, Mittel zum Empfangen von Benutzeredits von dem Client an dem zugänglichen Abschnitt des vordefinierten Abfragemodells (56), Mittel zum Erzeugen eines benutzerangepassten Abfragemodells (128) basierend auf Benutzeredits an dem zugänglichen Abschnitt des vorbestimmten Abfragemodells und Mittel zum Auslösen einer Abfrage der Datenbank (20) basierend auf dem benutzerangepassten Abfragemodell (128).
  13. System nach Anspruch 12, wobei das Mittel zum Anzeigen des zugänglichen Abschnitts des vorbestimmten Abfragemodells (56) Mittel zum Anzeigen einer grafischen Ansicht zugänglicher Datenelemente aufweist, die das vordefinierte Abfragemodell (56) definieren.
  14. System nach Anspruch 12, wobei die grafische Ansicht zugänglicher Datenelemente zugängliche Tabellen, Spalten in den Tabellen und Verbindungen zwischen Tabellen aufweist.
  15. System nach Anspruch 12, das ferner Folgendes aufweist: Mittel zum Bestimmen von Privilegien des Benutzers für das vorbestimmte Abfragemodell (56), und Mittel zum Bestimmen des zugänglichen Abschnitts des vorbestimmten Abfragemodells (56) basierend auf den Privilegien des Benutzers.
  16. System nach Anspruch 12, wobei das System eingerichtet ist, um für den Benutzer nur den zugänglichen Abschnitt des vordefinierten Abfragemodells (56) anzuzeigen.
  17. System nach Anspruch 12, das ferner Folgendes aufweist: Mittel zum Bestimmen von Privilegien des Benutzers für das vordefinierte Abfragemodell (56), Mittel zum Bestimmen eines geschützten Abschnitts des vordefinierten Abfragemodells (56) basierend auf den Privilegien des Benutzers, und Mittel zum Verbergen des geschützten Abschnitts des vordefinierten Abfragemodells (56) gegen Anzeigen für den Benutzer.
  18. System nach Anspruch 12, das ferner Folgendes aufweist: Mittel zum Bestimmen von Privilegien des Benutzers für das vorbestimmte Abfragemodell (56), Mittel zum Bestimmen eines geschützten Abschnitts des vorbestimmten Abfragemodells (56) basierend auf den Privilegien des Benutzers, und Mittel zum Verbieten von Edits an dem geschützten Abschnitt des vorbestimmten Abfragemodells (56) durch den Benutzer.
  19. System nach Anspruch 12, wobei das benutzerangepasste Abfragemodell (128) Datenbanktabellenverbindungen aufweist, die im Vergleich zum vordefinierten Abfragemodell (56) modifiziert sind.
  20. System nach Anspruch 12, wobei das benutzerangepasste Abfragemodell (128) eine Datenbanktabelle aufweist, die in dem vorbestimmten Abfragemodell (56) fehlt.
  21. System nach Anspruch 12, das ferner Folgendes aufweist: Mittel zum Empfangen einer Anfrage von dem Benutzer zum Editieren des vorbestimmten Abfragemodells (56), und Mittel zum Anzeigen für den Benutzer einer grafischen Ansicht mindestens eines zugänglichen Abschnitts von Datenelementen in der Datenbank (20).
  22. System nach Anspruch 12, das ferner Folgendes aufweist: Mittel zum automatischen Erzeugen (74) einer Datenbankabfrage basierend auf dem benutzerangepassten Abfragemodell (128) und Mittel zum Auslösen (76) der Datenbankabfrage.
DE60036303T 1999-07-30 2000-07-28 Methode und modell für dynamische anfragen Expired - Lifetime DE60036303T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/364,596 US6581054B1 (en) 1999-07-30 1999-07-30 Dynamic query model and method
US364596 1999-07-30
PCT/US2000/020692 WO2001009768A2 (en) 1999-07-30 2000-07-28 Dynamic query model and method

Publications (2)

Publication Number Publication Date
DE60036303D1 DE60036303D1 (de) 2007-10-18
DE60036303T2 true DE60036303T2 (de) 2008-05-29

Family

ID=23435231

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60036303T Expired - Lifetime DE60036303T2 (de) 1999-07-30 2000-07-28 Methode und modell für dynamische anfragen

Country Status (13)

Country Link
US (1) US6581054B1 (de)
EP (1) EP1228448B1 (de)
JP (1) JP2003519418A (de)
KR (1) KR20020039329A (de)
CN (1) CN1399746A (de)
AT (1) ATE372556T1 (de)
AU (1) AU768084B2 (de)
BR (1) BR0012826A (de)
CA (1) CA2380040A1 (de)
DE (1) DE60036303T2 (de)
IL (1) IL147833A0 (de)
WO (1) WO2001009768A2 (de)
ZA (1) ZA200200533B (de)

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408292B1 (en) * 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US6385604B1 (en) 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
JP3578266B2 (ja) * 2000-01-06 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションの起動方法、アプリケーションの起動のためのソフトウエア・プロダクト
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
US20010047387A1 (en) * 2000-03-27 2001-11-29 Exoplex, Inc. Systems and methods for providing distributed cross-enterprise portals
US7167859B2 (en) * 2000-04-27 2007-01-23 Hyperion Solutions Corporation Database security
US7082427B1 (en) 2000-05-24 2006-07-25 Reachforce, Inc. Text indexing system to index, query the archive database document by keyword data representing the content of the documents and by contact data associated with the participant who generated the document
US7120629B1 (en) 2000-05-24 2006-10-10 Reachforce, Inc. Prospects harvester system for providing contact data about customers of product or service offered by business enterprise extracting text documents selected from newsgroups, discussion forums, mailing lists, querying such data to provide customers who confirm to business profile data
US7003517B1 (en) * 2000-05-24 2006-02-21 Inetprofit, Inc. Web-based system and method for archiving and searching participant-based internet text sources for customer lead data
US7096220B1 (en) 2000-05-24 2006-08-22 Reachforce, Inc. Web-based customer prospects harvester system
US6704740B1 (en) * 2000-08-10 2004-03-09 Ford Motor Company Method for analyzing product performance data
US7330850B1 (en) 2000-10-04 2008-02-12 Reachforce, Inc. Text mining system for web-based business intelligence applied to web site server logs
US7043531B1 (en) 2000-10-04 2006-05-09 Inetprofit, Inc. Web-based customer lead generator system with pre-emptive profiling
US7499948B2 (en) * 2001-04-16 2009-03-03 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
US6993518B2 (en) * 2001-05-24 2006-01-31 International Business Machines Corporation Method and system for systematically diagnosing data problems in a database
US7392546B2 (en) 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US20030009448A1 (en) * 2001-06-14 2003-01-09 Covington Robert C. Method and apparatus for providing user-specific response
US7720842B2 (en) * 2001-07-16 2010-05-18 Informatica Corporation Value-chained queries in analytic applications
US7080066B1 (en) 2001-08-09 2006-07-18 Ncr Corporation Systems and methods for refining a decision-making process via executable sequences
US7174342B1 (en) * 2001-08-09 2007-02-06 Ncr Corp. Systems and methods for defining executable sequences to process information from a data collection
US7672924B1 (en) 2001-08-09 2010-03-02 Teradata Us, Inc. Systems and methods for generating information from a data collection to support decision-making
US7251693B2 (en) * 2001-10-12 2007-07-31 Direct Computer Resources, Inc. System and method for data quality management and control of heterogeneous data sources
EP1442397A4 (de) * 2001-10-24 2006-11-15 Bea Systems Inc Datensynchronisation
US7552135B2 (en) * 2001-11-15 2009-06-23 Siebel Systems, Inc. SQL adapter business service
AUPR894801A0 (en) * 2001-11-20 2001-12-13 Unisearch Limited A system and method for searching data sources
KR20030054110A (ko) * 2001-12-24 2003-07-02 한국전자통신연구원 다중 자바 데이터베이스 연결 캐쉬 시스템 및 그 방법
US8244702B2 (en) * 2002-02-26 2012-08-14 International Business Machines Corporation Modification of a data repository based on an abstract data representation
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US7725560B2 (en) 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
WO2003093964A1 (en) * 2002-05-01 2003-11-13 Bea Systems, Inc. Enterprise application platform
US7447687B2 (en) * 2002-05-10 2008-11-04 International Business Machines Corporation Methods to browse database query information
KR100514139B1 (ko) * 2002-11-30 2005-09-08 삼성에스디에스 주식회사 Odbc에 보안기능을 적용한 쿼리 방법 및 그 장치
US7181450B2 (en) 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US7716167B2 (en) * 2002-12-18 2010-05-11 International Business Machines Corporation System and method for automatically building an OLAP model in a relational database
US7953694B2 (en) * 2003-01-13 2011-05-31 International Business Machines Corporation Method, system, and program for specifying multidimensional calculations for a relational OLAP engine
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) * 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7483904B2 (en) 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US20040167868A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for a virtual content repository
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7810036B2 (en) * 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US20040230679A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for portal and web server administration
US7895191B2 (en) 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US8458164B2 (en) * 2003-07-15 2013-06-04 International Business Machines Corporation Query model tool and method for visually grouping and ungrouping predicates
US20050015361A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Model content provider with reusable components for supporting a plurality of GUI API's
US20050015363A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Method and structure for representing complex query elements in a modelling tool
US20050015368A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Query modelling tool having a dynamically adaptive interface
US8315972B2 (en) * 2003-09-26 2012-11-20 Microsoft Corporation Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
US20050257245A1 (en) * 2003-10-10 2005-11-17 Bea Systems, Inc. Distributed security system with dynamic roles
US20050081055A1 (en) * 2003-10-10 2005-04-14 Bea Systems, Inc. Dynamically configurable distributed security system
US7756822B2 (en) * 2003-12-01 2010-07-13 Sap Ag Operational reporting architecture
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
US20050216451A1 (en) * 2004-02-19 2005-09-29 Urs Enzler Generation of database queries from predefined query strings
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7310637B2 (en) * 2004-05-05 2007-12-18 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology
US20050256899A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. System and method for representing hierarchical data structures
US20050257172A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for filtering for portal and webserver administration
US20050257154A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Graphical association of elements for portal and webserver administration
US20050256906A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for portal and webserver administration-efficient updates
US7707143B2 (en) * 2004-06-14 2010-04-27 International Business Machines Corporation Systems, methods, and computer program products that automatically discover metadata objects and generate multidimensional models
US7480663B2 (en) 2004-06-22 2009-01-20 International Business Machines Corporation Model based optimization with focus regions
US7720858B2 (en) * 2004-07-22 2010-05-18 International Business Machines Corporation Query conditions-based security
US8041728B2 (en) * 2004-09-30 2011-10-18 International Business Machines Corporation Utilization of display profiles with abstract queries
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
US20060116999A1 (en) * 2004-11-30 2006-06-01 International Business Machines Corporation Sequential stepwise query condition building
US7689555B2 (en) * 2005-01-14 2010-03-30 International Business Machines Corporation Context insensitive model entity searching
US7624097B2 (en) * 2005-01-14 2009-11-24 International Business Machines Corporation Abstract records
US8122012B2 (en) * 2005-01-14 2012-02-21 International Business Machines Corporation Abstract record timeline rendering/display
US8095553B2 (en) * 2005-03-17 2012-01-10 International Business Machines Corporation Sequence support operators for an abstract database
CA2519015A1 (en) * 2005-09-13 2007-03-13 Cognos Incorporated System and method of providing relational set operations for olap data sources
US9679031B2 (en) * 2005-09-14 2017-06-13 International Business Machines Corporation Composing abstract queries for delegated user roles
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7444332B2 (en) * 2005-11-10 2008-10-28 International Business Machines Corporation Strict validation of inference rule based on abstraction environment
US7440945B2 (en) * 2005-11-10 2008-10-21 International Business Machines Corporation Dynamic discovery of abstract rule set required inputs
US8180789B1 (en) * 2005-12-05 2012-05-15 Teradata Us, Inc. Techniques for query generation, population, and management
US20080077982A1 (en) * 2006-09-22 2008-03-27 Bea Systems, Inc. Credential vault encryption
US8126887B2 (en) * 2006-09-29 2012-02-28 Business Objects Software Ltd. Apparatus and method for searching reports
US8204895B2 (en) * 2006-09-29 2012-06-19 Business Objects Software Ltd. Apparatus and method for receiving a report
US7899837B2 (en) * 2006-09-29 2011-03-01 Business Objects Software Ltd. Apparatus and method for generating queries and reports
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
JP2008112934A (ja) * 2006-10-31 2008-05-15 Oki Electric Ind Co Ltd 半導体記憶装置及びその製造方法
US8185951B2 (en) * 2006-12-20 2012-05-22 International Business Machines Corporation Method of handling user groups in desktop and web based applications in a heterogeneous authentication environment
US20080168042A1 (en) * 2007-01-09 2008-07-10 Dettinger Richard D Generating summaries for query results based on field definitions
US8140557B2 (en) 2007-05-15 2012-03-20 International Business Machines Corporation Ontological translation of abstract rules
US20090019022A1 (en) * 2007-07-15 2009-01-15 Dawning Technologies, Inc. Rules-based data mining
US20090043788A1 (en) * 2007-08-06 2009-02-12 Panorama Software Inc. Proactive business intelligence
US7809751B2 (en) * 2007-08-27 2010-10-05 Sap Ag Authorization controlled searching
US8316384B2 (en) * 2009-02-18 2012-11-20 Microsoft Corporation Input/output broker model
US9305105B2 (en) * 2009-05-26 2016-04-05 Google Inc. System and method for aggregating analytics data
US8549019B2 (en) * 2009-05-26 2013-10-01 Google Inc. Dynamically generating aggregate tables
US8543591B2 (en) * 2009-09-02 2013-09-24 Google Inc. Method and system for generating and sharing dataset segmentation schemes
US8751544B2 (en) * 2009-09-02 2014-06-10 Google Inc. Method and system for pivoting a multidimensional dataset
CA2684438C (en) * 2009-09-22 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee User customizable queries to populate model diagrams
US8583584B2 (en) * 2009-10-20 2013-11-12 Google Inc. Method and system for using web analytics data for detecting anomalies
US20110119100A1 (en) * 2009-10-20 2011-05-19 Jan Matthias Ruhl Method and System for Displaying Anomalies in Time Series Data
US9785987B2 (en) 2010-04-22 2017-10-10 Microsoft Technology Licensing, Llc User interface for information presentation system
US20110264665A1 (en) * 2010-04-26 2011-10-27 Microsoft Corporation Information retrieval system with customization
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US9946768B2 (en) * 2010-11-02 2018-04-17 Microsoft Technology Licensing, Llc Data rendering optimization
EP2783306A4 (de) * 2011-11-24 2015-07-29 Varonis Systems Inc Systeme und verfahren zur automatischen erzeugung und ausführung von datenbankabfragen
US9128908B2 (en) * 2011-12-19 2015-09-08 Sap Se Converting reports between disparate report formats
US20140081994A1 (en) * 2012-08-10 2014-03-20 The Trustees Of Columbia University In The City Of New York Identifying Content for Planned Events Across Social Media Sites
US9824121B2 (en) * 2012-08-10 2017-11-21 Arris Enterprises Llc Aggregate data streams in relational database systems
US10915541B2 (en) * 2014-07-01 2021-02-09 Verizon Patent And Licensing Inc. Generic API
US10606855B2 (en) 2014-07-10 2020-03-31 Oracle International Corporation Embedding analytics within transaction search
US10585892B2 (en) 2014-07-10 2020-03-10 Oracle International Corporation Hierarchical dimension analysis in multi-dimensional pivot grids
US10303726B2 (en) * 2014-11-13 2019-05-28 Sap Se Decoupling filter injection and evaluation by forced pushdown of filter attributes in calculation models
US10504147B1 (en) * 2015-03-06 2019-12-10 Amazon Technologis, Inc. Enhanced permissions management
US10642990B2 (en) 2015-10-24 2020-05-05 Oracle International Corporation Generation of dynamic contextual pivot grid analytics
CN105912603B (zh) * 2016-04-06 2020-05-29 百度在线网络技术(北京)有限公司 网络空间的业务查询方法及装置
US20180253677A1 (en) * 2017-03-01 2018-09-06 Gregory James Foster Method for Performing Dynamic Data Analytics
CN109284435B (zh) * 2018-03-28 2020-05-26 北京航空航天大学 面向互联网的用户交互痕迹捕获、存储和检索系统及方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210870A (en) 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5212639A (en) 1990-04-05 1993-05-18 Sampson Wesley C Method and electronic apparatus for the classification of combinatorial data for the summarization and/or tabulation thereof
CA2093123A1 (en) 1990-10-31 1992-05-01 Robert Carr Computer documents as compound documents in a notebook metaphor
US5379419A (en) 1990-12-07 1995-01-03 Digital Equipment Corporation Methods and apparatus for accesssing non-relational data files using relational queries
US5481700A (en) 1991-09-27 1996-01-02 The Mitre Corporation Apparatus for design of a multilevel secure database management system based on a multilevel logic programming system
US5359724A (en) 1992-03-30 1994-10-25 Arbor Software Corporation Method and apparatus for storing and retrieving multi-dimensional data in computer memory
WO1994014115A2 (en) 1992-12-01 1994-06-23 Microsoft Corporation A method and system for in-place interaction with embedded objects
US5671379A (en) 1993-01-29 1997-09-23 International Business Machines Corporation System and method for managing windows
US5701453A (en) 1993-07-01 1997-12-23 Informix Software, Inc. Logical schema to allow access to a relational database without using knowledge of the database structure
DE4334336A1 (de) * 1993-10-08 1995-05-04 Mannesmann Ag Gasanalysator mit geregelter Meßgaszuführung und dynamischer Probenverdünnung
US5410693A (en) 1994-01-26 1995-04-25 Wall Data Incorporated Method and apparatus for accessing a database
US5809266A (en) * 1994-07-29 1998-09-15 Oracle Corporation Method and apparatus for generating reports using declarative tools
US5555367A (en) * 1994-09-30 1996-09-10 General Electric Company Method and system for generating computer programs for queries formed by manipulating object-oriented diagrams
DE69523543T2 (de) 1994-12-13 2002-04-04 Microsoft Corp Taskbar mit Startmenü
US5682468A (en) 1995-01-23 1997-10-28 Intergraph Corporation OLE for design and modeling
US5588109A (en) 1995-01-23 1996-12-24 Hewlett-Packard Company User interface for a remote diagnostic device
US5812394A (en) 1995-07-21 1998-09-22 Control Systems International Object-oriented computer program, system, and method for developing control schemes for facilities
US5917483A (en) 1995-09-18 1999-06-29 Oracle Corporation Advanced windows management for a computer system
US5721903A (en) 1995-10-12 1998-02-24 Ncr Corporation System and method for generating reports from a computer database
US5831617A (en) 1995-11-27 1998-11-03 Bhukhanwala; Saumil A. Browsing and manipulating objects using movie like icons
JP3952518B2 (ja) 1996-03-29 2007-08-01 株式会社日立製作所 多次元データ処理方法
US5870756A (en) 1996-04-26 1999-02-09 Fujitsu Limited Interchangeable storage medium containing program for processing data files thereupon to match a data file format to a computer system
DE69736672T2 (de) * 1996-07-24 2007-09-13 Illinois Tool Works Inc., Glenview Beutel mit material für befestigungsstreifen und herstellungsverfahren dafür
US5734380A (en) 1996-09-27 1998-03-31 Adams; James S. Method for controlling the presentation of displays in a multi-window computer environment
US5842199A (en) 1996-10-18 1998-11-24 Regents Of The University Of Minnesota System, method and article of manufacture for using receiver operating curves to evaluate predictive utility
US6047280A (en) 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US5852818A (en) 1996-12-23 1998-12-22 Oracle Corporation Non-recursive method for parameter evaluation within an information management system
US6026399A (en) 1997-05-30 2000-02-15 Silicon Graphics, Inc. System and method for selection of important attributes
US6205447B1 (en) 1997-06-30 2001-03-20 International Business Machines Corporation Relational database management of multi-dimensional data
US5978796A (en) 1997-06-30 1999-11-02 International Business Machines Corporation Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database
US6134541A (en) 1997-10-31 2000-10-17 International Business Machines Corporation Searching multidimensional indexes using associated clustering and dimension reduction information
US5943677A (en) 1997-10-31 1999-08-24 Oracle Corporation Sparsity management system for multi-dimensional databases
US6122628A (en) 1997-10-31 2000-09-19 International Business Machines Corporation Multidimensional data clustering and dimension reduction for indexing and searching
US6380954B1 (en) 1998-02-09 2002-04-30 Reuters, Ltd. Method and system for layout of objects within a perimeter using constrained interactive search

Also Published As

Publication number Publication date
US6581054B1 (en) 2003-06-17
EP1228448A2 (de) 2002-08-07
ZA200200533B (en) 2003-01-16
DE60036303D1 (de) 2007-10-18
AU6501600A (en) 2001-02-19
JP2003519418A (ja) 2003-06-17
AU768084B2 (en) 2003-12-04
BR0012826A (pt) 2004-06-29
CN1399746A (zh) 2003-02-26
EP1228448B1 (de) 2007-09-05
CA2380040A1 (en) 2001-02-08
KR20020039329A (ko) 2002-05-25
WO2001009768A2 (en) 2001-02-08
ATE372556T1 (de) 2007-09-15
WO2001009768A3 (en) 2002-05-30
IL147833A0 (en) 2002-08-14

Similar Documents

Publication Publication Date Title
DE60036303T2 (de) Methode und modell für dynamische anfragen
US6691140B1 (en) Method and system for multidimensional storage model with interdimensional links
US6842758B1 (en) Modular method and system for performing database queries
US8091040B2 (en) Method and system for displaying a plurality of discrete files in a compound file
DE69333408T2 (de) Ein Computer-System und Verfahren zum interaktiven Verwalten eines verteilten Datenbanksystems
DE69031028T2 (de) System zum physikalischen Entwurf von Datenbanken
DE10251440A1 (de) Reproduzierbare Auswahl von Elementen in einer Hierarchie
EP1166228A2 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen
DE112022000886T5 (de) Datenverarbeitungssystem mit manipulation logischer datensatzgruppen
DE69122324T2 (de) Verfahren und gerät zur graphischen befragung einer datenbank
EP1239377A1 (de) Datenorganisationssystem und Verfahren zur Gliederungsstrukturverwaltung und -synchronisation
de S. e Silva et al. An Architecture for Data Warehouse Systems Using a Heterogeneous Database Management System—HEROS

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1228448

Country of ref document: EP

Representative=s name: FELIX RUMMLER, DE

R081 Change of applicant/patentee

Ref document number: 1228448

Country of ref document: EP

Owner name: GOOGLE INC., US

Free format text: FORMER OWNER: COMPUTER ASSOCIATES THINK, INC., ISLANDIA, US

Effective date: 20120829

R082 Change of representative

Ref document number: 1228448

Country of ref document: EP

Representative=s name: FELIX RUMMLER, DE

Effective date: 20120829