-
Die vorliegende Erfindung betrifft
Computerdatenbanken im Allgemeinen und im Besonderen die Darstellung
von Informationen auf Anzeigevorrichtungen unterschiedlicher Größen.
-
Traditionellerweise hatten Anzeigevorrichtungen
für Computersysteme
die selbe ungefähre
Größe. Zum
Beispiel besteht die übliche
Anzeigevorrichtung aus einem Monitor, dessen Gesamtabmessungen denjenigen
von benutzerorientierten Fernsehgeräten ähnlich sind. Die Größe von normalen
Monitorbildschirmen (etwa 13 bis 19 Zoll in der Diagonale) wurde
(implizit oder explizit) von den meisten Schnittstellenentwicklern
vorausgesetzt. Das Ergebnis davon ist, das viel der früheren Arbeit
an Schnittstellen (im Besonderen Schnittstellen zu Informationssystemen)
nicht gut auf Anzeigen skalierbar ist, die kleiner als die gewöhnliche
Größe sind.
-
Beispiele, auf die dies zutrifft,
sind mobile Computer, Pen-Computer und PDAs. Die derzeit kleinen
Anzeigegrößen dieser
Maschinen führen
zu dem Problem, dass man versuchen muss, große Mengen von Daten in einem
sehr eingeschränkten
Bereich darzustellen, und zwar, ohne Klarheit und Kohärenz zu
opfern. Klarerweise besteht eine Lösung darin, einfach alle Daten
auf dem Bildschirm darzustellen und den Benutzer (unter Verwendung
von beispielsweise Scrolleisten) durch die gesamten Informationen
navigieren zu lassen. Jeder, der auf diese Art bereits große Mengen
von Daten durchscrollen musste, weiß, wie frustrierend dieses
Verfahren werden kann. Darüber
hinaus hat dieser Ansatz den Effekt, dass es den Benutzer sehr schnell
verwirrt, vor allem in Situationen, wo die Informationseinheiten,
die durchgehend auf dem Bildschirm dargestellt werden, logisch nicht
miteinander in Beziehung stehen.
-
Auf dem Gebiet des Hypertext sind
die relevanten Forschungsgebiete mehr von der Art, den Benutzern
zu helfen, ihre Position zu verfolgen, während sie die Hypertext-Informationen
lesen. In diesem Zusammenhang wurde die Verwendung von Übersichtsdiagrammen
vorgeschlagen (siehe zum Beispiel, J. Nielsen, The art of navigating
through hypertext (Die Kunst der Navigation durch Hypertext), Communications
of the ACM, 33(3), März
1990). Dies ist eine Technik, um eine Ansicht der Informationen
auf hohem Niveau vorzusehen. Übersichtsdiagramme
werden jedoch nicht automatisch erzeugt, bieten Informationen über das
gesamte Dokument und sind nicht von irgendwelchen datenbankbezogenen
Informationen abhängig.
-
Auf dem Gebiet der Datenbank-Schnittstellen
lag bisher der Schwerpunkt auf der Schaffung von einfach anwendbaren
Schnittstellen. Zum Beispiel schuf die graphische Schnittstelle
PICASSO ein Werkzeug für unerfahrene
Benutzer, um Datenbank-Abfragen graphisch einzugeben und Informationen über die
Semantik ihrer Abfrage zu erhalten (siehe H. -J. Kim, H. F. Korth,
und A. Silberschatz, PICASSO: a graphical query language (PICASSO:
Eine graphische Abfragesprache), Software Practice und Experience,
18(3): 169–203,
März 1988).
-
Der Entwickler von QBE (Query by
example, Abfrage durch Beispiel) schuf eine Schnittstelle, die es Benutzern
gestattet, eine Datenbank visuell durch Vorgeben eines Beispiels
für die
Art der Antwort, die sie suchten, abzufragen (siehe M. M. Zloof.
OBE/QBE: A language for office und business automation (OBE/QBE: Eine
Sprache für
Büro- und
Geschäftsautomatisierung),
IEEE Computer, S. 13–22,
Mai 1981).
-
Andere Systeme wie etwa OdeView verwenden
semantische Verknüpfungen,
um dem Benutzer mögliche
Abfragepfade anzubieten (siehe R. Agrawal, N. H. Gehani, und J.
Srinivasan, Odeview: The Graphical Interface to Ode (Odeview: Die
graphische Schnittstelle zu Ode), Proceedings of ACM-SIGMOD 1990 International
Conference an Management of Data, Atlantic City, New Jersey, S.
34–43,
Mai 1990). Diese Systeme zeigen dem Benutzer jedoch alle möglichen
Pfade an, und beschränken
die Pfade nicht auf die relevanten. Sie verwenden auch keine Schwelle,
um die Relevanz zu bestimmen. Dies trifft auch auf andere Systeme
wie etwa ISIS (siehe P. C. Kanellakis, K. J. Goldman, S. A. Goldman
und S. B. Zdonik, Isis: Interface for a semantic information system
(Isis: Schnittstelle für
ein semantisches Informationssystem), Proceedings of ACM-SIGMOD 1986
International Conference on Management of Data, Austin, 1985).
-
US
5,428,776 offenbart ein graphisches Benutzersystem für die Abfrage
einer relationalen Datenbank. Die graphische Abfrage besteht aus
Abfragetabellen, die verarbeitet werden, um eine Ausgabe von Mengen von
Abfragetabellen zu erzeugen, welche dann angezeigt wird.
-
US
5,546,517 offenbart ein System zur automatischen Spezifizierung
des Seiteninhaltes und der Verknüpfungen
zwischen Seiten für
ein Hypermedia-Dokument.
-
Ein hauptsächliches Ziel der vorliegenden
Erfindung ist es, den Prozess zu automatisieren, wie Informationen
optimal auf einer kleinen Computeranzeige angezeigt werden.
-
Ein weiteres Ziel der vorliegenden
Erfindung ist es, Informationen über
eine verbundene Teilmenge von all den Daten zu jeweils einem Zeitpunkt
anzuzeigen.
-
Ein weiteres Ziel der vorliegenden
Erfindung ist es, miteinander in Beziehung stehende Teilmengen von
Daten zu priorisieren, um zu bestimmen, wie die Informationen anzuzeigen
sind.
-
Gemäß der vorliegende Erfindung
wird ein Verfahren zum Senden von Daten von einer Datenbank an eine
Ausgabevorrichtung eines Computers mit einer vorbestimmten Anzeigegröße vorgesehen,
wobei die Datenbank eine Vielzahl von Tabellen zum Festhalten der
Daten besitzt, und die Datenbank ein Schema besitzt, das Beziehungen
zwischen den Tabellen anzeigt, wobei die Tabellen Attribute besitzen,
und die Attribute die Daten beinhalten, wobei das Verfahren umfasst:
Verarbeiten
einer Abfrage der Datenbank, wobei die Abfrage Abfragetabellen enthält;
Bestimmen
von Gewichten für
jedes Paar von Abfragetabellen, wobei die Gewichte das Auftreten
der Paare von Abfragetabellen in früheren Abfragen anzeigen;
Bestimmen
von Mengen von Paaren von Abfragetabellen auf Basis der Gewichte;
Auswählen der
Mengen in Abhängigkeit
von der vorbestimmten Anzeigegröße der Ausgabevorrichtung
des Computers; und
Senden einer beliebigen der ausgewählten Mengen,
welche in der Abfrage angegebene Abfragetabellen enthält, an die
Ausgabevorrichtung des Computers.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird eine Vorrichtung zum Senden von Daten
von einer Datenbank an eine Ausgabevorrichtung eines Computers mit
einer vorbestimmten Anzeigegröße vorgesehen,
wobei die Datenbank eine Vielzahl von Tabellen zum Festhalten der
Daten besitzt, und die Datenbank ein Schema besitzt, das Beziehun gen
zwischen den Tabellen anzeigt, wobei die Tabellen Attribute besitzen,
und die Attribute die Daten beinhalten, umfassend:
Mittel zum
Verarbeiten einer Abfrage der Datenbank, wobei die Abfrage Abfragetabellen
enthält;
Mittel
zum Bestimmen von Gewichten für
jedes Paar von Abfragetabellen, wobei die Gewichte das Auftreten der
Paare von Abfragetabellen in früheren
Abfragen anzeigen;
Mittel zum Bestimmen von Mengen von Paaren
von Abfragetabellen auf Basis der Gewichte;
Mittel zum Auswählen der
Mengen in Abhängigkeit
von der vorbestimmten Anzeigegröße der Ausgabevorrichtung
des Computers; und
Mittel zum Senden einer beliebigen der ausgewählten Mengen,
welche in der Abfrage angegebene Abfragetabellen enthält, an die
Ausgabevorrichtung des Computers.
-
Die vorliegende Erfindung sieht ein
Verfahren zur Darstellung von Informationen an Anzeigevorrichtungen
verschiedener Größen vor.
Im Besonderen erlaubt der Ansatz einem Benutzer, sehr kleine Anzeigeoberflächen, wie
etwa jene, die in mobilen Computern und persönlichen digitalen Assistenten
(PDAs) zu finden sind, zu verwenden. Die Nützlichkeit dieses Verfahrens
besteht darin, dass es bestimmt, welche Informationen der Benutzer
wahrscheinlich zur selben Zeit betrachten wollen wird, und es damit
die Menge von Daten, die zu einem beliebigen Zeitpunkt dargestellt
werden müssen,
reduziert. Der Ansatz kann auf jegliche Kombination aus Bildschirmgröße und Informationsverteilung
(d. h. die Größe der Datenelemente)
abgestimmt werden.
-
Große Schemata (bestehend aus
zahlreichen Tabellen) sollten in Teilmengen aufgeteilt werden, von welchen
eine jede eine kleinere Anzahl von Tabellen enthält. Natürlich muss jede Teilmenge klein
genug sein, so dass sie bequem auf einem kleinen Bildschirm dargestellt
werden kann. Ein Merkmal des Ansatzes ist, dass jede Teilmenge Tabellen
enthält,
die auf eine Weise logisch miteinander zusammenhängen. Die tatsächliche Natur
der "Beziehung" kann von vielen
Faktoren abhängen,
basiert jedoch derzeit auf einer Menge von Abfragen, die der Benutzer
als "wahrscheinlichste" Abfragen festgelegt
hat.
-
Zusätzliche Vorteile und Merkmale
der vorliegenden Erfindung werden aus der folgenden Beschreibung
und den angefügten
Ansprüchen
in Verbindung mit den beiliegenden Zeichnungen offensichtlich werden, in
welchen:
-
1 ein
Funktions-Blockfließdiagramm
ist, das die Top-Level-Funktionen
für die
Ausführung
des Verfahrens zur Darstellung von Informationen an Anzeigevorrichtungen
verschiedener Größen zeigt;
-
2 ein
Entity-Relationship-Diagramm ist, das ein Datenbankschema als ein
Beispiel dafür
zeigt, wie tabellenverknüpfte
Schema-Subkomponenten
(Table Connected Schema Sub-components, TCSSs) bestimmt werden;
-
3 ein
Ablaufdiagramm ist, das zeigt, wie eine Menge von Tabellen bei der
Bestimmung der TCSSs ausgewählt
wird;
-
4 ein
Ablaufdiagramm ist, welches das Verfahren zeigt, durch welches eine
Tabelle zum Fokus einer Abfrage gemacht wird;
-
5 ein
Ablaufdiagramm ist, welches das Verfahren zum Entfernen des Fokus
von einer Tabelle zeigt;
-
6 ein
Entity-Relationship-Diagramm ist, das ein Datenbankschema mit beispielhaften
Beziehungs- und Attributwerten zeigt;
-
7 ist
eine PDA-Anzeige, die als ein Beispiel für die Ausgabe der vorliegenden
Erfindung dient; und
-
8 ist
ein Netzwerkdiagramm, das Tabellen zeigt, die über ein Netzwerk in separaten
Datenbanken abgelegt sind, welches an einen Drucker und das Internet
angeschlossen ist.
-
Wie in 1 dargestellt,
besteht das Verfahren aus der Durchführung der folgenden Schritte:
-
- 1. Darstellung des Schemas in der Form eines gewichteten
Graphen G. Dieser Schritt wird bei Block 20 durchgeführt.
- 2. Verwendung von Verknüpfungsabfragen,
sofern vorhanden, aus der Menge von häufig ausgeführten Abfragen, Kanten zu erzeugen,
die zu dem Graphen G gehören.
Dieser Schritt wird bei Block 30 durchgeführt.
- 3. Finden eines Schwellenwertes t, so dass nach der Beschneidung
des Graphen durch Weglassen von Kanten mit Gewichten niedriger als
t die größten verknüpften Sub-Schemata,
die aus dem beschnittenen Graphen erhalten werden, vollständig auf
dem Bildschirm angezeigt werden können. Dies ist ein iteratives
Verfahren. Dieser Schritt wird bei Block 40 durchgeführt.
- 4. Einzelne Tabellen können
zum Fokus gemacht werden, was den Beziehungen in Bezug auf eine
gegebene Tabelle Nachdruck verleiht. Dieser Schritt wird bei Block 50 durchgeführt.
- 5. Schließlich
kann der Fokus auch von Tabellen entfernt werden, die anfänglich zum
Fokus gemacht wurden. Block 60 führt diesen Schritt aus.
-
Block 50 und Block 60 sind
optionale Schritte für
die vorliegende Erfindung. Sie können
hinzugefügt werden,
um die Funktionalität
der vorliegenden Erfindung zu erhöhen, doch auch wenn sie hinzugefügt werden,
ist es möglich,
sie nicht jedesmal auszuführen.
Das unten stehende Material beschreibt jeden der Schritte in größerem Detail.
-
Graphische Darstellung
des Schemas
-
Angenommen, es ist eine Menge von
Abfragen verfügbar,
die ein Benutzer häufig
an einer Datenbank durchführt.
Typischerweise würden
viele dieser Abfragen Verknüpfungsoperationen
zwischen mehreren Tabellen einschließen. Man betrachte die Darstellung
des Datenbank-Schemas durch einen gewichteten Graphen G, der aus
Knoten {N} und Kanten {E} besteht. Jede Spalte in jeder Tabelle
des Schemas (d. h., jedes Attribut) wird durch einen Knoten in diesem
Graphen dargestellt. Jegliche binäre Verknüpfungsoperation, die ein Paar von
Attributen einschließt,
kann durch eine Kante (mit Gewicht 1) zwischen den Attributen (d.
h. Knoten in dem Graphen) in der Verknüpfung dargestellt werden. Werden
mehrere Abfragen in Betracht gezogen, wenn es bereits eine Kante
zwischen zwei Attributen gibt, wird das Gewicht der Kante um eins
erhöht.
-
Der Pseudocode für dieses Verfahren zur Erzeugung
eines gewichteten Graphen G lautet wie folgt:
-
-
Der so konstruierte Graph stellt
die Stärke
der Beziehungen zwischen Spalten von Tabellen in dem Datenbankschema
dar.
-
Beschneiden des Graphen
-
Wenn dieser Graph einmal konstruiert
ist, wird der Graph dann beschnitten, indem alle Kanten, deren Gewicht
unter irgendeinem ausgewählten
Schwellenwert liegt, weggelassen werden. Der Schwellenwert wird auf
eine iterative Weise gewählt,
so dass die größte resultierende
Teilmenge von Tabellen noch in den verfügbaren Bildschirmbereich hineinpasst.
-
Der resultierende Graph wird verarbeitet,
um Mengen von Tabellen auszuwählen,
die durch zumindest eine Kante, deren Gewicht den Schwel lenwert übersteigt,
mit einander verbunden sind. Jede Menge von solchen verbundenen
Tabellen bildet das, was als tabellenverknüpfte Schema-Subkomponente (Table Connected Schema
Sub-component, TCSS) bezeichnet wird. Es ist anzumerken, dass der
Begriff der verbundenen Subkomponenten in dem Graphen nicht der
selbe ist wie die herkömmliche
Bedeutung des Begriffes in der Graphentheorie. Hier wird die Tatsache,
dass individuelle Knoten des Graphen zu einer übergeordneten Tabelle gehören, ausgenützt. Zwei
Tabellen werden verbunden, wenn es eine Kante zwischen beliebigen
ihrer Komponentenknoten (d. h. Spalten) gibt.
-
In dem folgenden Pseudocode wird
der Mechanismus beschrieben, um tabellenverknüpfte Schema-Subkomponenten
(Table Connected Schema Sub-components, TCSSs) zu erhalten:
-
-
-
Ein Beispiel ist in 2 gezeigt. Das Schema enthält 6 Tabellen
und jede Tabelle (R1 100, R2 102,
R3 104, R4 106,
R5 108, R6 110)
enthält
wie dargestellt Spalten (a1, a2 etc.).
Die Spalten, zwischen welchen Kanten gezogen sind (sowohl durchgehende
als auch punktierte Linien) entsprechen den Verknüpfungspfaden,
die von einem Satz von SQL-Abfragen gegen diese Tabellen abgeleitet
sind. Zum Beispiel gibt es einen Verknüpfungspfad 112 zwischen
R1·a1 und R2·a1. Die Zahl über jeder Kante zeigt das Gewicht
der Kante an. Zum Beispiel hat der Verknüpfungspfad 112 das
Gewicht 114 von "3". Der diesem Schema
entsprechende Graph enthält
17 Knoten (einen für
jede Spalte in jeder Tabelle in dem Schema), und 6 Kanten, wie in 2 eingezeichnet. Bei einem
gegebenen Schwellenwert von 3 sind die drei einzigen Kanten, die
mindestens diesen Wert enthalten, als durchgehende Linien in 2 dargestellt: Verknüpfungspfad 112,
Verknüpfungspfad 116,
und Verknüpfungspfad 118.
Die Kanten mit punktierten Linien sind diejenigen, deren Gewicht
niedriger als der Schwellenwert sind. Ein solcher Graph ergibt drei
Tabellen, die Subkomponenten enthalten: S1 mit
den Tabellen R1 100, R2 102
und R4 106; S2 mit
den Tabellen R3 104 und R5 108;
und S3 mit Tabelle R6 110
allein.
-
Es ist einzusehen, dass die vorliegende
Erfindung nicht auf die Situation beschränkt ist, in der die Datenbank
sich nur auf einem Computer befindet, sondern auch die Situation
mit einschließt,
in der die Datenbank und ihre Tabellen über mehrere Computer verteilt
sein können.
Auch ist die vorliegende Erfindung nicht auf den Fall beschränkt, dass
die abzufragenden Tabellen in nur einer Datenbank enthalten sind.
Stattdessen können
diese auch in mehreren Datenbanken zu finden sein.
-
Durch geeignetes Auswählen des
Schwellenwertes (in Abhängigkeit
von den Gewichten der Kanten und der Vernetzung der Knoten in dem
ursprünglichen
Graphen, sowie auch von der Anzeigegröße) kann eine Menge von verbundenen
Schema-Subkomponenten konstruiert werden, so dass jede Menge von
Tabellen in einen Anzeigebildschirm passt. Es ist anzumerken, dass
diese Tabellen logisch mit einander verbunden sind, da sie von häufig auftretenden
Verknüpfungspfaden
zwischen ihnen abgeleitet sind. Wenn man in Betracht zieht, dass
die Verknüpfungspfade
selbst aus einer Zusammenstellung von häufig verwendeten Abfragen erhalten
wurden, wird erwartet, dass diese Tabellengruppierungen die Informationen
darstellen, die ein Benutzer zusammen sehen möchte. Wenn die anfänglich gewählte Schwelle
zu hoch ist, kann es viele Subkomponenten geben, die sehr wenige
Tabellen zusammen enthalten. Daher wird der Schwellenwert reduziert,
bis ein geeigneter Wert gefunden wird.
-
Es ist auch anzumerken, dass es viele
Subkomponenten gibt, von welchen jede nur eine einzelne Tabelle
enthält,
wenn keine Verknüpfungsinformationen
verfügbar
sind, d. h., es wird gleich viele TCSSs wie Tabellen in dem Schema
geben: Dies entspricht der Situation, in welcher die Vorverarbeitung
nicht in der Lage war, natürliche
Gruppierungen von Tabellen in dem Schema zu liefern. Der Benutzer
kann auswählen,
entweder die Tabellen einzeln zu betrachten oder alle Tabellen gemeinsam
zu betrachten und traditionelle Verfahren zur Navigation (wie etwa
Scrolleisten) zu verwenden.
-
3 zeigt,
wie die richtige Menge von Tabellen, die angezeigt werden sollen,
ausgewählt
wird. Der Startblock 200 zeigt an, dass die Verarbeitung
bei Block 210 beginnt. Block 210 setzt den Schwellenwert
auf das niedrigste Kantengewicht. Block 220 liest alle
TCSS von Graph G ein. Der Entscheidungsblock 230 untersucht,
ob die größte TCSS
in die Größe der Anzeigeausgabe
des Computers hineinpasst. Wenn dies nicht der Fall ist, erhöht der Block 240 die
Schwelle um 1. Der Entscheidungsblock 250 untersucht, ob
die Schwelle größer ist
als das höchste
Kantengewicht. Wenn nicht, kehrt die Verarbeitung zu Block 220 zurück. Wenn
das Schwellengewicht größer ist
als das höchste
Kantengewicht, kann die größte TCSS
nicht angezeigt werden (Block 255) und die Verarbeitung
endet bei Block 270.
-
Wenn der Entscheidungsblock 230 bestimmt,
dass die größte TCSS
in die Größe der Anzeigeausgabe des
Computers hineinpasst, dann zeigt Block 260 die Tabellen
an, die sich in der TCSS befinden. Die Verarbeitung endet dann bei
dem Abschlussblock 270.
-
Fokus zu einer
Tabelle hinzufügen
-
Für
jede der angezeigten Tabellen werden nur diejenigen Spalten, die
an Verknüpfungen
zwischen den verschiedenen Tabellen beteiligt sind, an dem Bildschirm
angezeigt. Wenn dem Benutzer einmal eine Gruppe von miteinander
in Beziehung stehenden Tabellen angezeigt wird, gibt es eine Option,
um eine spezifische Tabelle zum Fokus zu machen. Eine Tabelle zum
Fokus zu machen, schließt
ein, dass alle Spalten der gegebenen Tabelle, und darüber hinaus
alle anderen Spalten (die zu anderen Tabellen gehören), die
eine Kante mit den Spalten, die zur Tabelle im Fokus gehören, gemeinsam
haben, angezeigt werden. Dies führt
dazu, dass all die Tabellen mit Spalten, welche Kanten mit den Spalten
der Tabelle im Fokus gemeinsam haben, angezeigt werden. Die zusätzlichen
Tabellen, die nun angezeigt werden, sind diejenigen, welche Kanten
mit den Spalten der Tabelle im Fokus gemeinsam haben – unabhängig vom
Gewicht der eingeschlossenen Kante.
-
Auf diese Weise könnte ein Benutzer durch das
gesamte Schema navigieren, indem er unterschiedliche Tabellen zum
Fokus macht. Natürlich
kann ist auch ein Durchscrollen durch den Bildschirm oder ein zweiter
Schwellenwert zum Beschneiden der Anzahl der angezeigten Elemente
möglich,
wenn eine bestimmte Tabelle zum Fokus gemacht wird und zu viele
zugehörige
Tabellen angezeigt werden sollen. Die Idee dahinter, eine Tabelle
zum Fokus zu machen, besteht darin, Interesse an allen anderen Tabellen
zu zeigen, die logisch mit dieser fokussierten Tabelle in Beziehung
stehen.
-
Unter nochmaliger Bezugnahme auf 2 werden zum Beispiel bei
der Anzeige der Subkomponente S2 nur die
Tabellen R3 104 und R5 108
auf dem Bildschirm angezeigt. Wenn nun R3 104
zum Fokus gemacht wird, sind die zusätzlichen Tabellen, die neben
den ursprünglichen
zwei Tabellen angezeigt werden, R4 106, R6 110 und R1 100,
da alle diese Tabellen Kanten mit Spalten in R3 104
gemeinsam haben.
-
4 zeigt
dieses Verfahren, eine Tabelle T zum Fokus zu machen. Der Startblock 300 zeigt
an, dass die Verarbeitung bei Block 310 beginnt. Der Block 310 liest
den Graphen G ein. Der Entscheidungsblock 320 bestimmt,
ob es weitere Kanten in dem Graphen gibt. Wenn es keine weite ren
gibt, dann fügt
der Block 330 die Tabelle T zu der Menge von Tabellen im
Fokus hinzu, und die Verarbeitung für diesen Aspekt der Erfindung endet
bei Abschlussblock 340.
-
Wenn der Entscheidungsblock 320 bestimmt,
dass es weitere Kanten in dem Graphen gibt, dann liest der Block 350 die
Kante E ein. Als Nächstes
bestimmt der Entscheidungsblock 360, ob diese Kante E die
Tabelle T einschließt.
Wenn dies nicht der Fall ist, dann kehrt die Verarbeitung zu Entscheidungsblock 320 zurück. Wenn
der Entscheidungsblock 360 bestimmt, dass die Kante E die
Tabelle T einschließt,
dann erhält Block 370 die
andere Tabelle T1, die in die Kante E eingeschlossen ist. Die Verarbeitung
wird bei Entscheidungsblock 380 fortgesetzt.
-
Wenn der Entscheidungsblock 380 bestimmt,
dass T1 angezeigt wird, dann kehrt die Verarbeitung zu Entscheidungsblock 320 zurück. Wenn
dies nicht der Fall ist, dann zeigt der Block 390 T1 an
und fügt
T1 zu der Liste hinzu, wie von T eingeführt.
-
Entfernen des
Fokus von einer Tabelle
-
Wenn eine Tabelle als der Fokus entfernt
wird, werden alle Tabellen, die Kanten mit Gewichten enthalten,
welche niedriger sind als der Schwellenwert, den die Tabelle im
Fokus in die Anzeige eingebracht hat, entfernt. Da es nicht garantiert
ist, dass der Benutzer Tabellen in der umgekehrten Reihenfolge,
in der sie zum Fokus gemacht wurden, aus dem Fokus entfernt, wird
die Reihenfolge, in der die Tabellen zum Fokus gemacht wurden, aufrecht
erhalten, so dass sie in der umgekehrter Reihenfolge rückgängig gemacht
werden können. Dies
ist in gewisser Weise Hypertext-Navigationssystemen ähnlich,
d. h., die Navigation eines Schemas auf diese Weise ist eng verwandt
mit einem Stapel von Durchläufen.
-
Die Nachbarn ersten Grades einer
Tabelle T sind definiert als alle anderen Tabellen, deren Spalten eine
Kante mit Spalten aus T gemeinsam haben. Dies ist ein Schema, in
welchem eine Tabelle zum Fokus zu machen einschließt, alle
Nachbarn ersten Grades dieser Tabelle anzuzeigen. Man könnte diesen
Begriff erweitern und alle Nachbarn n-ten Grades anzeigen, wobei
n ein einstellbarer Parameter ist.
-
5 zeigt
dieses Verfahren, um den Fokus von einer Tabelle T zu entfernen.
Der Startblock 400 zeigt an, dass die Verarbeitung bei
Entscheidungsblock 410 beginnt. Wenn der Entscheidungsblock 410 bestimmt, dass
die Tabellen im Fokus die Tabelle T nicht enthalten, dann verzweigt
die Verarbeitung zu Block 450, der unten besprochen wird.
Wenn der Entscheidungsblock 410 bestimmt, dass die Tabellen
im Fokus die Tabelle T enthalten, dann geht die Verarbeitung bei
Block 420 weiter, der die nächste Tabelle T1 von
den Tabellen im Fokus einliest.
-
Der Entscheidungsblock 430 bestimmt,
ob die Tabelle T die selbe ist wie Tabelle T1.
Wenn sie nicht die selben sind, dann verzweigt die Verarbeitung
zu Block 450. Wenn T die selbe wie T1 ist,
dann entfernt Block 440 für jede Tabelle T2,
die von Tabelle T1 eingeführt wurde,
die Tabelle T2 aus der Liste der angezeigten
Tabellen. Der Block 450 zeigt die Liste von Tabellen an
und die Verarbeitung für
diesen Aspekt der Erfindung endet bei Abschlussblock 460.
-
Beispiel
-
Das folgende Beispiel verwendet die
Tabellen R1 510, R2 512, R3 514, R4 516 mit
den in 6 dargestellten
Beziehungen (diese Beziehungen sind den in 2 dargestellten ähnlich).
-
Tabelle
R1 kann die folgenden Werte annehmen:
-
Tabelle
R2 kann die folgenden Werte annehmen:
-
Tabelle
R3 kann die folgenden Werte annehmen:
-
Tabelle
R4 kann die folgenden Werte annehmen:
-
-
Ein Benutzer kann nun anfordern,
dass Daten aus den Tabellen R1, R2, R3, und R4 an den Bildschirm des
PDA des Benutzers gesendet werden, indem er die folgende Abfrage
angibt:
-
SELECT DISTINCTROW R1.[Personalgruppe],
R1.[Personal-ID],
R2.[Gehalt], R4.[Name des Beschäftigten],
R4.[Telefonnummer Arbeit],
R3. [Wohnort], R3. [Wohnadresse],
R3.
[Telefonnummer Heim],*
-
FROM ((R1 INNER JOIN R2 ON R1. [Personalgruppe]
_
R2. [Personalgruppe]) INNER JOIN R3 ON R1. [Personal-ID]
_
R3.[Personal-ID]) INNER JOIN R4 ON (R4.[Personal-ID] _
R3.
[Personal-ID]) AND (R1. [Personal-ID] = R4. [Personal-ID])
-
ORDER BY R1.[Personalgruppe];
-
Die oben gezeigte Abfrage führt dazu,
dass die folgenden vier Pfade, jeweils mit einem Gewicht von 1,
erzeugt werden:
(R1.Personalgruppe, R2.Personalgruppe)
(R1.Personal-ID,
R3.Personal-ID)
(R3.Personal-ID, R4.Personal-ID)
(R1.
Personal-ID, R4.Personal-ID)
-
Die Abfrage wird in Übereinstimmung
mit dem oben offenbarten Verfahren verarbeitet, um die Ergebnisse 580 anzuzeigen,
die wie in 7 dargestellt,
auf den Bildschirm 590 des PDA 600 passen.
-
Eine Ausführungsform besitzt einen SQL-Parser,
der bei einer gegebenen Menge von Abfragen (Select-Abfragen) Mengen
von Verknüpfungspfaden
in der Form Ri·Ai,
Rk, Al ... erzeugt.
Jede solche Menge enthält Attribute,
die zusammen in einer einzelnen Abfrage vorkommen und eine Kante
für jedes
Paar in der Menge beisteuern. Unter Verwendung der oben angeführten Mengen
von erzeugten Verknüpfungspfad-Informationen und
der Metadaten eines Schemas (d. h. Namen von Tabellen und von deren
Spalten) erzeugt ein weiteres Programm den Graphen, der die Pfadinformationen
beschreibt. Bei einer gegebenen Schwelle (derzeit ein ganzzahliger
Wert) erzeugt dieses Programm dann die verschiedenen Sub-Komponenten
des Graphen mit Informationen zur Tabellengruppierung. Es gibt auch
eine Kommandozeilen-Schnittstelle, die es unterschiedlichen Tabellen
gestattet, zum Fokus zu werden (und in der Folge diese zu entfernen).
Der gesamte oben angeführte
Code läuft
unter UNIX, jedoch ist die vorliegende Erfindung nicht auf diese
spezielle Software beschränkt:
-
Zum Beispiel kann eine weitere Ausführungsform
unter Windows 3.1 laufen. Bei einem gegebenem Schema und einem gegebenen
Schwellenwert bestimmt das Programm die größte verbundene Subkomponente
und zeigt diese am Bildschirm an. Durch Verwendung von Mausinteraktionen können unterschiedliche Tabellen
auf die früher
besprochene Weise zum Fokus gemacht werden (und später auch
aus dem Fokus entfernt werden).
-
8 ist
ein Netzwerkdiagramm, das Tabellen zeigt, welche in separaten Datenbanken über ein
lokales Netzwerk gespeichert sind, das an einen Drucker und an das
Internet angeschlossen ist. Ein Benutzer an dem Computer 650 kann
Informationen abfragen, die in Tabellen enthalten sind, welche in
der Datenbank 660 auf dem Computer 662 und in
der Datenbank 670 auf dem Computer 672 enthalten
sind. Diese Ausführungsform
kann das beschriebene Verfahren verwenden, um Informationen, die über ein
Netzwerk (wie etwa das Internet 680) gesendet werden sollen,
zu priorisieren. In dieser Situation kann die Ausführungsform
Informationen an den Benutzer an dem Computer 650 senden,
welche der Benutzer wahrscheinlich als Erstes sehen wollen wird.
Die Ausführungsform
kann auch die Ausgabe auf einen in einem lokalen Netzwerk 700 vorhandenen
Drucker 690 lenken.