DE3382808T2 - Datenbankzugriffsverfahren mit einem benutzerfreundlichen Menü - Google Patents
Datenbankzugriffsverfahren mit einem benutzerfreundlichen MenüInfo
- Publication number
- DE3382808T2 DE3382808T2 DE3382808T DE3382808T DE3382808T2 DE 3382808 T2 DE3382808 T2 DE 3382808T2 DE 3382808 T DE3382808 T DE 3382808T DE 3382808 T DE3382808 T DE 3382808T DE 3382808 T2 DE3382808 T2 DE 3382808T2
- Authority
- DE
- Germany
- Prior art keywords
- path
- database
- paths
- segments
- user
- 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
Links
- 238000000034 method Methods 0.000 title claims description 14
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
- Die vorliegende Erfindung betrifft ein Datenbankverwaltungssystem und insbesondere ein Datenbankzugriffsverfahren, das einem Benutzer ohne Kenntnisse oder Erfahrung im Bereich der Datenverarbeitung einen einfachen Zugriff auf Daten in der Datenbank mit Hilfe eines benutzerfreundlichen Menüs ermöglicht.
- Nähere Informationen zu Datenbanksystemen können der Veröffentlichung von C.J. DATE mit dem Titel An introduction to database systems , Vol 1, Dritte Ausgabe, herausgegeben von der Addison-Wesley Publishing Company, 1981, entnommen werden. Als Hintergrund für den Gegenstand der Erfindung wird auf Teil 3 dieser Veröffentlichung mit den Kapiteln 15 bis 22 verwiesen, in denen das hierarchische Konzept der Datenbankverwaltung beschrieben wird, das der vorliegenden Erfindung zugrunde liegt.
- Zu Beispielzwecken wird die Sprache DL/I (Data Language I) verwendet, eine von der International Business Machines Corp. für Datenverarbeitungsanwendungen entwickelte Datenverarbeitungs sprache. DL/I verwendet Programmkommunikationsblöcke (PCBs) als Mittel, um die Speicherung sowie den Zugriff auf Daten in Massenspeichereinheiten zu steuern. Diese PCBs, deren Anzahl und Zeichen je nach den Anforderungen der Endbenutzer unterschiedlich sind, werden von einem Datenbankverwalter erstellt. PCBs können auf periodischer Basis vom Datenbankverwalter hinzugefügt oder aktualisiert werden. Ein Programmierer schreibt ein oder mehrere Programme, die diese PCBs verwenden, um Daten auf einer Massenspeichereinheit wie z.B. einem Plattenstapel zu speichern oder darauf zuzugreifen.
- Angenommen, das Unternehmen, für das das System entworfen wird, stellt Teile für Haushaltsgeräte her. In diesem Unternehmen benötigen vermutlich eine Reihe von Mitarbeitern Zugriff auf die Datenbank. Der Betriebsleiter muß die Lagerbestands- und Bestellmengen kennen, um zu bestimmen, welche Teile in welcher Stückzahl hergestellt werden müssen. Der Werksmeister muß die Auslastung an jedem Fertigungsstandort kennen, um zu bestimmen, wann Maschinen zu Wartungszwecken heruntergefahren werden können und wann das Bedienpersonal frei nehmen kann. Für eine Abfrage, die vom Benutzer des Datenbankverwaltungssystems gestellt wird, wird gewöhnlich mehr als ein PCB für den Zugriff auf die gewünschte Information benötigt. Der Programmierer ist somit dafür verantwortlich, daß Programme unter Berücksichtigung der Abfragen geschrieben werden, die von verschiedenen Benutzern des Datenbankverwaltungssystems gestellt werden können. Es versteht sich, daß der Programmierer nicht alle möglichen Arten von Abfragen in seinem Programm berücksichtigen kann, und wenn ein Benutzer Zugriff auf Informationen in einer Weise wünscht, die von den existierenden Programmen nicht unterstützt wird, muß der Programmierer ein neues Programm schreiben, das auf die Art der Abfragen des Benutzers zugeschnitten ist. Dieser Ansatz kann einen hohen Kosten- und Zeitaufwand verursachen und kommt im Falle zeitkritischer Informationen von vornherein nicht in Frage.
- Daher besteht ein Gegenstand der vorliegenden Erfindung darin, ein verbessertes Datenbankzugriffsverfahren bereitzustellen, das einem Benutzer einen einfachen Zugriff auf Daten ermöglicht, auch wenn kein spezifisches Programm unter Verwendung der für den Datenzugriff erforderlichen PCBs geschrieben wurde.
- Mit der in Patentanspruch 1 offenbarten Erfindung wird dies dadurch erreicht, daß zuerst automatisch ein Datenverzeichnis von Eingangsdatenbanken angezeigt wird und dann auf eine bestimmte Abfrage hin automatisch der beste Zugriffspfad zu einem Element ausgewählt wird. Im spezielleren Sinn betrifft die Erfindung ein Verfahren, das zuerst automatisch aus Definitionen von Datenbankbeschreibungen und Programmkommunikationsblöcken (PCB) eine Gruppe von Eingangsdatenbanken konstruiert, die sich auf die unterschiedlichen Zugriffspfade beziehen, die für den Zugriff auf die gewünschten Informationen auf eine Benutzerabfrage hin verwendet werden können, wobei jede der auf physikalischen Beziehungen oder logisch definierten Datenbeziehungen basierenden Eingangsdatenbanken eine einzelne hierarchische Struktur aufweist, aus der jeder physikalische und logische Pfad ersichtlich ist, der von einem physikalischen Stammsegment mit konsolidierten, doppelten logischen und physikalischen Pfaden aus zugänglich ist. Die Eingangsdatenbanken werden dem Urheber der Abfrage in Form eines Menüs angezeigt, aus dem der Benutzer Segmentfelder und PCBs auswählen kann, die zur Konstruktion der Eingangsdatenbanken verwendet wurden. Anschließend werden alle möglichen Zugriffspfade mit Blick auf die in der Abfrage abzurufenden Segmente bewertet, und der optimale Zugriffspfad wird automatisch entsprechend den gewichteten Prioritäten basierend auf den Schlüsselwerten, die den Segmenten jedes Pfads zugeordnet wurden, ausgewählt.
- Hierbei wird darauf hingewiesen, daß - wenn sich ein Auswahlkriterium in einer Abfrage auf ein Feld bezieht, das einen DL/I-Sekundärindex aufweist - die zu verwendende hierarchische DL/I-Struktur und der zu verwendende PCB anders als im üblichen Fall sind. Ebenso müssen eine abweichende Struktur und ein anderer PCB verwendet werden, wenn sich eine Abfrage auf den Schlüssel eines logischen Elters bezieht. Die Erfindung hält den Urheber der Abfrage von einer solchen, für ihn möglicherweise nicht nachvollziehbaren Problematik fern, indem sie alle möglichen Zugriffspfade zu den DL/I-Segmenten bewertet, die in einer Abfrage abgerufen werden sollen.
- Im folgenden wird die Erfindung unter Bezugnahme auf die Zeichnungen beschrieben, in denen:
- Fig. 1 eine bildliche Darstellung der funktionalen Anwendung der Sprache DL/I und der Verbesserung gemäß der vorliegenden Erfindung zeigt,
- Fig. 2A, 2B und 2C vereinfachte Darstellungen von drei PCBs zeigen, die für ein Teilefertigungsunternehmen generiert werden könnten,
- Fig. 3 ein Flußdiagramm zur Herstellung der Eingangsdatenbank gemäß der Erfindung zeigt, und
- Fig. 4 ein Flußdiagramm zur Auswahl der PCBs für die Datenbankabfrage gemäß der Erfindung zeigt,
- Fig. 1 zeigt eine funktionale Anwendung von DL/I (Data Language I), in der PCBs 11 von einem Datenbankverwalter 10 erstellt werden und ein Programmierer 12 ein Programm 13 unter Verwendung der PCBs für die Speicherung von bzw. für den Zugriff auf Daten in einer Massenspeichereinheit 14 wie z.B. einem Plattenstapel schreibt.
- In Fig. 2A, 2B und 2C sind drei der zahlreichen PCBs, die vom Datenbankverwalter für dieses Unternehmen gene riert werden können, in vereinfachter Form dargestellt. In Fig. 2A beginnt die Hierarchie der PCBs mit der Teileidentifikation, die typischerweise ein alphanumerisches Zeichen ist. Ausgehend von der Teileidentifikation kann auf Informationen über den Lagerbestand oder Lagervorrat, auf für die betreffende Bestandsnummer eventuell generierten, technischen Änderungsmitteilungen sowie auf den (die) Fertigungsort(e) der Teile zugegriffen werden. Darüber hinausgehend könnte mit diesem PCB nicht nur auf die Bestandsmengen, sondern auch auf Informationen über den Lagerort der Vorräte zugegriffen werden, und hinsichtlich der technischen Änderungsmitteilungen könnte auch ermittelt werden, von welchen Technikern diese erstellt wurden. Eventuell sind einige dieser Informationen geschützt und nicht für allebenutzer verfügbar, und wenngleich Zugriffsbeschränkungen ein Merkmal von DL/I sind, sind sie für den Gegenstand der Erfindung nicht von Bedeutung und werden daher nicht weiter diskutiert. Aus Fig. 2A ist ersichtlich, daß der PCB ein Indizierschema ist. Jede Ebene dieses Schemas wird als segment bezeichnet.
- Fig. 2B zeigt einen weiteren PCB, der seinen Ausgangspunkt am Fertigungsstandort hat und zur Teileidentifikation führt. Mit diesem PCB kann ermittelt werden, welche Teile an jedem Fertigungsstandort hergestellt werden. In einem kleinen Unternehmen kann der Fertigungsstandort eine Werkzeugmaschine innerhalb des Werks bezeichnen und in einem großen Unternehmen sogar einen gesonderten geographischen Standort. Der in Fig. 2B gezeigte PCB kann als invertierte Teilmenge des PCB aus Fig. 2A betrachtet werden. Fig. 2C zeigt ein drittes Beispiel für einen PCB, der seinen Ausgangspunkt am Lagerstandort hat, von dem aus auf Informationen über die Lagervorräte und die zugehörige Teileidentifikation zugegriffen werden kann. Dar- über hinaus ist der Zugriff auf Lieferangaben, wie z.B. Ablaufplanung, Bestimmungsort und Frachtführer, möglich. Andere PCBs könnten typischerweise personalbezogene Angaben enthalten und Zugriff auf Schichtpläne, Urlaubspläne o.ä. bieten.
- Die vorliegende Erfindung bietet nun einem Benutzer 15 (Fig. 1) ohne Kenntnisse oder Erfahrung im Bereich der Datenverarbeitung die Möglichkeit, über PCBs 11 auf Daten im Massenspeicher 14 zuzugreifen. Dieser Vorgang wird automatisch innerhalb von zwei Operationen durchgeführt.
- Das System gestattet eine logische sowie physikalische Verbindung der PCBs für den Zugriff auf Informationen in Antwort auf die Benutzerabfrage. Die physikalische Verbindung der Segmente ist in den in Fig. 2A und 2B veranschaulichten PCBs impliziert. Fig. 2C veranschaulicht eine logische Verbindung. In diesem PCB ist der Fertigungsort nicht physikalisch mit dem Bestands-/Teileidentifikationssegment verbunden, statt dessen ist er logisch mit diesem Segment verbunden. Diese logische Verbindung ermöglicht eine Verbindung mit anderen PCBs wie z.B. mit dem in Fig. 2A gezeigten PCB. Auf diese Weise kann eine Anzahl von Pfaden erstellt werden, um auf die gewünschte Information auf eine Benutzerabfrage hin zuzugreifen.
- Bei der ersten Operation liest das System die physikalische DL/I-Datenbankbeschreibung (DBD), die logische DBD und die PCB-Quellenanweisungen, die alle von DL/I ebenfalls benutzt werden. Auf der Basis dieser Informationen erstellt das system ein Datenverzeichnis und konsolidiert die möglichen Zugriffspfade in Eingangsdatenbanken. Die nächste Operation wird online durchgeführt. Das System bewertet alle möglichen Zugriffspfade, die für eine Abfrage in Frage kommen, gewichtet sie anhand ihrer Effizienz und wählt den besten Zugriffspfad aus.
- Die erste vom System durchgeführte Operation ist im Flußdiagramm von Fig. 3 dargestellt. Im ersten, durch Block 20 veranschaulichten Schritt werden alle physikalischen DBDs gelesen, und anschließend wird in Block 21 eine Eingangsdatenbank für jede physikalische Datenbankbeschreibung (DBD) erstellt. Eine Eingangsdatenbank wird durch ein Strukturglied (ein benanntes Hauptelement) im Datenverzeichnis beschrieben. Jedes Segment und Feld wird durch eine Zeile in einem Strukturglied beschrieben.
- Der nächste Schritt in Block 22 besteht darin, alle Sekundärindex-DBDs zu lesen, die indexierten Felder in den Eingangsdatenbank-Strukturgliedern aufzufinden und in Block 23 die Indexzielsegmente entsprechend der Definition des indexierten Feldes zu speichern. In Block 24 werden alle logischen DBDs gelesen, und die physikalische Quelleneingangsdatenbank für jede DBD wird lokalisiert. Dies bedeutet, daß die physikalische Datenbank, dessen Stamm der Ursprung des Stamms der logischen Datenbank ist, lokalisiert wird.
- Wie in Entscheidungsblock 25 veranschaulicht wird, muß das System nun eine Einscheidung treffen. Jedes Segment in der logischen DBD kann ihren Ursprung in der Eingangsdatenbank haben oder auch nicht. Ist dies der Fall, wird wie in Block 26 angegeben eine zusätzliche Zeile im Anschluß an die physikalische Segmentzeile hinzugefügt. Andernfalls wird ein neues Segment an der korrekten hierarchischen Position wie durch Block 27 angegeben eingetragen. Zwei Segmente mit einem gemeinsamen Ursprung werden zusammen mit zwei aufeinanderfolgenden Zeilen behandelt. Verknüpfte Segmente werden als zwei einzelne Teile behandelt. Für jedes auf diese Weise hinzugefügte logische Segment wird das Ursprungssegment in einer anderen Eingangsdatenbank lokalisiert, und die Felder werden daraus wie durch Block 28 angegeben kopiert.
- Als nächstes werden in Block 29 alle Programmspezifikationsblöcke (PSBs; ein PSB enthält mehrere PCBs) und die in ihnen enthaltenen PCBs gelesen, um die Eingangsdatenbank und die Segmente zu finden, auf die jeder Block verweist. Anschließend wird in Block 30 die PCB-Identifikation für jedes Segment aufgezeichnet. Die PCB-Identifikation umfaßt den PSB- Namen sowie die PCB-Nummer. Wenn mehrere PCBs auf ein Segment - physikalisch oder logisch - verweisen, werden neue Segmentzeilen erstellt, eine pro Segment und PCB. Wenn ein PCB eine sekundäre Verarbeitungsseguenz (Sekundärindex) verwendet, wird dies in einer Segment-PCB-Zeile erfaßt, und die PCB- Identifikation wird für das indexierte Feld wie in Block 31 angegeben aufgezeichnet.
- An diesem Punkt werden alle Eingangsdatenbanken abgetastet, und diejenigen Segmente, auf die kein PCB verweist, sowie Eingangsdatenbanken, die keine Segmente enthalten, auf die verwiesen wird, werden wie in Block 32 angegeben eliminiert. Schließlich wird eine Gruppe von Feldquerverweis-Strukturgliedern erzeugt, d.h. ein Strukturglied für jedes Feld im Datenverzeichnis, wie durch Block 33 angegeben. Jedes erzeugte Strukturglied zeigt jede Eingangsdatenbank, jedes Segment und jede PCB-Identifikation, mit deren Hilfe das Feld gefunden werden kann.
- Die zweite vom System durchgeführte Operation ist in Fig. 4 dargestellt, doch bevor mit einer Diskussion dieser Figur fortgefahren wird, müssen bestimmte Begriffsdefinitionen vorgenommen werden. Die Erfindung bietet Menüs, mit deren Hilfe ein Benutzer Eingangsdatenbanken, Segmente und Felder auswählen kann. Wenn der Benutzer ein Segment identifiziert, identifiziert er das erste Segment aus einer Gruppe von gleichwertigen Segmenten, die in der oben beschriebenen Eingangsdatenbankoperation zusammengefaßt sind. Jedes dieser gleichwertigen Segmente ist intern durch einen Segmentnamen und eine PCB-Identifikation gekennzeichnet. Diese Kombination definiert einen Pfad von Segmenten vom Stamm zum benannten Segment. Sind auf diese Weise zwei gleichwertige Kombinationen aus Segmentname/PCB-Identifikation gleichwertig, werden die definierten Pfade als kongruent bezeichnet.
- Ein Teilpfad eines Pfades besitzt ausgehend vom Stamm die gleiche PCB-Identifikation und die gleichen Segmentnamen wie der Pfad, ist jedoch kürzer als dieser. Von einer Überlappung von zwei Pfaden spricht man, wenn ein Teilpfad vorhanden ist, der beiden gemeinsam ist.
- Wenn die Pfade auf ihrer gesamten Länge eine gemeinsame physikalische Quelle verwenden, ihre zugehörigen Segmente jedoch in entgegengesetzter Reihenfolge vorliegen, werden sie als entgegengesetzte Pfade bezeichnet. Im Sinne dieser Definition (a) müssen alle in einem Pfad verwendeten Felder im anderen Pfad vorhanden sein, (b) werden paarige Segmente als identisch betrachtet, sofern nicht ihre logischen Eltern mit ihren physikalischen Eltern übereinstimmen und (c) können einer oder beide Pfade in einer sekundären Datenstruktur vorhanden sein, die mit einem Sekundärindex verknüpft ist. Diese Beziehung zwischen Pfaden ist von entscheidender Bedeutung. Bei jedem logischen Pfad oder Sekundärindexpfad, der in puncto Zugriffseffizienz nützlich sein soll, muß das zugehörige Stammschlüsselfeld vom Benutzer in einem Auswahlkriterium angegeben sein. Wenn der Benutzer den zugehörigen Stammschlüssel angegeben hat, enthält der identifizierte Pfad ein Segment, das in diesem Stamm seinen Ursprung hat; ansonsten ist dies nicht der Fall.
- Wie aus Block 40 in Fig. 4 hervorgeht, wird für jedes vom Benutzer angegebene Segment der definierte Pfad betrachtet, und jeder derart definierte Teilpfad wird in den längsten Pfad konsolidiert. Für jedes vom Benutzer identifizierte Feld werden dann in Block 41 alle in Frage kommenden Zugriffspfade anhand der Feldquerverweis-Strukturglieder lokalisiert. Dies sind die Kandidatenpfade. Ist ein Kandidatenpfad nicht entgegengesetzt, sondern ein Teilpfad eines entgegengesetzten Pfads, wird er in Entscheidungsblock 42 so erweitert, daß er entgegengesetzt ist (siehe Block 43); andernfalls geschieht dies nicht. Alle Kandidatenpfade außer solchen, die entweder kongruent mit bzw. oder entgegengesetzt zu einem vom Benutzer identifizierten Pfad sind, werden wie in Block 44 angegeben eliminiert.
- An diesem Punkt in der Operation werden für jeden identifizierten Pfad alle Kandidaten entweder als kongruent oder als entgegengesetzt betrachtet. In Block 45 wird jeder Kandidat abhängig davon gewichtet, ob er einen primären physikalischen Schlüssel, primären logischen Schlüssel oder einen Sekundärindex mit einer Gleichheits- oder Bereichsbeziehung verwendet. Die nächste Priorität gilt der Kongruenz gegenüber Entgegengesetztheit. Schließlich wird der identifizierte Pfad in Relation zu den anderen Kandidaten gewichtet. Jeder der obigen Faktoren wird halb so stark wie der vorangegangene Faktor gewichtet.
- Zur Auswahl eines PSB werden in Block 46 die den in jedem PSB enthaltenen Kandidatenpfaden zugewiesenen Gewichte summiert, und in Block 47 wird der höchste PSB gewählt. Alle nicht in diesem PSB enthaltenen Kandidaten werden eliminiert. In Block 47 wird eine Konsistenzprüfung durchgeführt, um sicherzustellen, daß alle als überlappend identifizierten Pfade beim gewählten PSB immer noch überlappen; ist dies nicht der Fall, wird dieser PSB verworfen und statt dessen der nächstbeste gewählt. Der Benutzer wird benachrichtigt, wenn kein zufriedenstellender PSB verfügbar ist, und die Verarbeitung endet bei Entscheidungsblock 48.
- Für jeden identifizierten Pfad wird der einzig beste kongruente Pfad und der einzig beste entgegengesetzte Pfad (sofern vorhanden) ermittelt, wie durch Block 49 angegeben wird. Der kongruente und identifizierte Pfad können identisch sein.
- Erfordert die vom Benutzer definierte Abfrage ein Zählen, Summieren oder eine sonstige Berechnung, die von der hierarchischen Reihenfolge der Segmente in einem identifizierten Pfad abhängig ist, und überlappt der betreffende Pfad keinen anderen Pfad in der Abfrage, wird ein entgegengesetzter Pfad mit hoher Priorität anstelle des identifizierten Pfads abgerufen. Dieses Verfahren wird als Pfadinvertierung bezeichnet und durch die Folge von Blöcken 50, 51 und 52 in Fig. 4 angegeben. Wenn eine oder beide dieser Bedingungen falsch sind und ein entgegengesetzter Pfad mit hoher Priorität verfügbar ist, wird er abgerufen, um Stammschlüssel des identifizierten Pfads oder des kongruenten Pfads zu erhalten. Diese werden verwendet, um nur diejenigen Elemente abzurufen, die die Auswahlkriterien in zufriedenstellender Weise erfüllen können. Diese Option ist weniger effizient als die Pfadinvertierung und wird als Stammschlüsselwiederherstellung bezeichnet, wie durch Block 53 angegeben wird. Obgleich sie weniger effizient ist, ist sie immer noch weitaus besser als ein vollständiges Durchsuchen der Datenbank.
- Zusammenfassend ist zu sagen, daß die Erfindung ein Verfahren zur Verbesserung eines Datenbankverwaltungssystems bietet, das sowohl physikalische als auch logische DBDs sowie alle PCBs zwecks Erstellung eines Datenverzeichnisses liest. Dieses Datenverzeichnis beschreibt Eingangsdatenbanken, die dem Benutzer online in Form von Menüs angezeigt werden. Ausgehend von den Auswahlkriterien des Benutzers werden Zugriffspfade aus dem Datenverzeichnis ermittelt.
Claims (6)
1. Ein Datenbankzugriffsverfahren zur Vereinfachung der
Aufgabe des Zugriffs auf gewünschte Informationen in
Antwort auf eine Benutzerabfrage und unter Verwendung
der Data Language/I (DL/I) in einem hierarchischen
Datenbankverwaltungssystem des Typs, der vom Benutzer
angegebene Auswahlkriterien in Verbindung mit
entsprechenden, von einem Datenbankverwalter erstellten
Programmkommunikationsblöcken (PCB) (11) für eine beliebige zu
verwendende hierarchische Datenstruktur erfordert, wobei
das Verfahren durch folgende Schritte gekennzeichnet
ist:
Automatisches Konstruieren eines Datenverzeichnisses aus
Beschreibungen einer Ursprungsdatenbank (14) und PCB-
Anweisungen, Hauptelementen oder Einträgen der aus
Eingangsdatenbanken gebildeten Datenverzeichnisses, wobei
die Eingangsdatenbanken mit Hilfe folgender Schritte
erstellt werden:
Lesen (20) der physikalischen und logischen
Datenbankbeschreibungen (DBD) und der PCB-Daten,
Einrichten (21) einer Eingangsdatenbank pro
physikalischer DBD,
Lokalisieren (24) der Eingangsdatenbank mit dem
Stammsegment für jede logische DBD, und
Auffinden (25-31) der Eingangsdatenbank und Segmente,
auf die jede PCB-Anweisung verweist,
wodurch eine Gruppe von Querverweis-Eingangsdatenbanken
erzeugt wird, die das Datenverzeichnis bilden und wobei
jede eine einzige hierarchische Struktur aufweist, die
jeden physikalischen und logischen Pfad zeigt, der von
einem physikalischen Stammsegment aus mit
konsolidierten, doppelten logischen und physikalischen Pfaden
zugänglich ist,
Darstellen der Eingangsdatenbanken für den Urheber der
Abfrage (15) in Form eines Menüs, aus dem Segmentfelder
und PCBs, aus denen die Eingangsdatenbanken konstruiert
wurden, vom Benutzer ausgewählt werden können,
in Antwort auf eine Benutzerabfrage automatisches
Auflisten (41, 42, 44) der in Frage kommenden Zugriffspfade
zu den abzurufenden Segmenten, und
automatisches Auswählen (45-49) des optimalen
Zugriffspfads entsprechend den gewichteten Prioritäten basierend
auf den Schlüsselwerten, die den Segmenten jedes Pfads
zugeordnet wurden.
2. Das Verfahren gemäß Patentanspruch 1, in dem der Schritt
des Konstruierens eines aus Eingangsdatenbanken
gebildeten Datenverzeichnisses weiterhin den Schritt des
Eliminierens (32) solcher Segmente umfaßt, auf die nicht
durch PCBs verwiesen wird, sowie solcher
Eingangsdatenbanken, die keine Segmente enthalten, auf die verwiesen
wird.
3. Das Verfahren gemäß den oben genannten Patentansprüchen
1 oder 2, in dem der Auflistungsschritt die folgenden
Schritte umfaßt:
Identifizieren (41, 42) von Kandidatenpfaden als in
Frage kommende Pfade für den Zugriff auf die gewünschte
Information für jedes vom Benutzer gewählte Segment, und
Eliminieren (44) aller Kandidatenpfade mit Ausnahme
solcher Pfade, die Segmente aus dem Stammsegment zu einem
benannten Segment enthalten, die als kongruent
bezeichnet werden, und solcher Pfade, die ein Stammsegment
gemeinsam verwenden, bei denen die Segmente jedoch in
entgegengesetzter Reihenfolge vorliegen und die als
entgegengesetzt bezeichnet werden.
4. Das Verfahren gemäß Patentanspruch 1, 2 oder 3, in dem
der Auswahlschritt die folgenden Schritte umfaßt:
Zuordnen (45) eines Gewichts zu jedem möglichen
Zugriffspfad, abhängig davon, ob er einen primären
physikalischen Schlüssel, einen primären logischen Schlüssel
oder einen Sekundärindex verwendet und kongruent ist,
und
Summieren (46) der den in Frage kommenden Zugriffspfaden
zugeordneten Gewichte mit dem
Programmspezifikationsblock, der einen oder mehrere PCBs mit der höchsten
gewichteten Summe umfaßt, die gewählt wurde.
5. Das Verfahren gemäß Patentanspruch 4, bei dem sich die
zugeordneten Gewichte für jeden nachfolgenden Faktor um
diepotenz2reduzieren.
6. Das Verfahren gemäß Patentanspruch 4 oder 5, bei dem der
Auswahlschritt weiterhin die folgenden Schritte umfaßt:
Durchführen einer Konsistenzprüfung, um sicherzustellen,
daß die als überlappend identifizierten Pfade bei einem
gewählten PSB immer noch überlappen,
Zurückweisen (47, 48) des gewählten PSB und Verwenden
des nächsten PSB, wenn eine Überlappung nicht gefunden
wurde, und Ermitteln (49) des besten kongruenten Pfads
und des einzig besten entgegengesetzten Pfads (falls
vorhanden) für jeden Kandidatenpfad,
wenn die vom Benutzer definierte Abfrage ein Zählen,
Summieren oder eine andere Berechnung erfordert, die von
der hierarchischen Reihenfolge von Segmenten in einem
identifizierten Pfad abhängig ist, und wenn dieser Pfad
keinen anderen Pfad in der Abfrage überlappt, Abrufen
(51, 52) eines entgegengesetzten Pfads (sofern
vorhanden) mit hoher Priorität anstelle des identifizierten
Pfads, doch
wenn eine oder beide dieser Bedingungen falsch ist und
ein entgegengesetzter Pfad mit hoher Priorität verfügbar
ist, Abrufen (53) des entgegengesetzten Pfads mit hoher
Priorität, um Stammschlüssel des identifizierten Pfads
zu erhalten, damit die Elemente, welche die
Auswahlkriterien erfüllen können, abgerufen werden können.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/459,792 US4531186A (en) | 1983-01-21 | 1983-01-21 | User friendly data base access |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3382808D1 DE3382808D1 (de) | 1996-10-10 |
DE3382808T2 true DE3382808T2 (de) | 1997-03-13 |
Family
ID=23826175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3382808T Expired - Lifetime DE3382808T2 (de) | 1983-01-21 | 1983-11-10 | Datenbankzugriffsverfahren mit einem benutzerfreundlichen Menü |
Country Status (4)
Country | Link |
---|---|
US (1) | US4531186A (de) |
EP (1) | EP0114221B1 (de) |
JP (1) | JPS59140571A (de) |
DE (1) | DE3382808T2 (de) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4829427A (en) * | 1984-05-25 | 1989-05-09 | Data General Corporation | Database query code generation and optimization based on the cost of alternate access methods |
US4769772A (en) * | 1985-02-28 | 1988-09-06 | Honeywell Bull, Inc. | Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases |
JPS62173545A (ja) * | 1986-01-27 | 1987-07-30 | Hitachi Ltd | デ−タデイクシヨナリ・デイレクトリの維持管理方式 |
JP2644728B2 (ja) * | 1986-01-27 | 1997-08-25 | 株式会社日立製作所 | データディクショナリ・ディレクトリシステム |
US4879648A (en) * | 1986-09-19 | 1989-11-07 | Nancy P. Cochran | Search system which continuously displays search terms during scrolling and selections of individually displayed data sets |
US5206949A (en) * | 1986-09-19 | 1993-04-27 | Nancy P. Cochran | Database search and record retrieval system which continuously displays category names during scrolling and selection of individually displayed search terms |
US4862498A (en) * | 1986-11-28 | 1989-08-29 | At&T Information Systems, Inc. | Method and apparatus for automatically selecting system commands for display |
US5257374A (en) * | 1987-11-18 | 1993-10-26 | International Business Machines Corporation | Bus flow control mechanism |
US4887206A (en) * | 1987-12-29 | 1989-12-12 | International Business Machines Corporation | Automated system for estimating impact on inventory cost due to an engineering change to a component |
US5142674A (en) * | 1988-03-08 | 1992-08-25 | International Business Machines Corporation | Interchange object data base index which eliminates the need for private copies of interchange documents files by a plurality of application programs |
US5121477A (en) * | 1988-04-08 | 1992-06-09 | International Business Machines Inc. | System for interactively creating action bar pull-down windows of a user interface for use at program run time |
US5513332A (en) * | 1988-05-31 | 1996-04-30 | Extended Systems, Inc. | Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween |
US5065347A (en) * | 1988-08-11 | 1991-11-12 | Xerox Corporation | Hierarchical folders display |
US5167011A (en) * | 1989-02-15 | 1992-11-24 | W. H. Morris | Method for coodinating information storage and retrieval |
US4932021A (en) * | 1989-04-03 | 1990-06-05 | At&T Bell Laboratories | Path learning feature for an automated telemarketing system |
US5442783A (en) * | 1990-01-22 | 1995-08-15 | Motorola, Inc. | Method and apparatus for transferring data base information |
JPH0415839A (ja) * | 1990-05-10 | 1992-01-21 | Toshiba Corp | 分散データベース管理装置 |
US5317729A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Method for the storage of multi-versioned data with retrieval based on searched query |
GB9023096D0 (en) * | 1990-10-24 | 1990-12-05 | Int Computers Ltd | Database search processor |
US5301317A (en) * | 1992-04-27 | 1994-04-05 | International Business Machines Corporation | System for adapting query optimization effort to expected execution time |
US5412806A (en) * | 1992-08-20 | 1995-05-02 | Hewlett-Packard Company | Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database |
US5675784A (en) * | 1995-05-31 | 1997-10-07 | International Business Machnes Corporation | Data structure for a relational database system for collecting component and specification level data related to products |
US5913205A (en) * | 1996-03-29 | 1999-06-15 | Virage, Inc. | Query optimization for visual information retrieval system |
US6081798A (en) * | 1996-04-24 | 2000-06-27 | International Business Machines Corp. | Object oriented case-based reasoning framework mechanism |
US6266663B1 (en) | 1997-07-10 | 2001-07-24 | International Business Machines Corporation | User-defined search using index exploitation |
US6278994B1 (en) | 1997-07-10 | 2001-08-21 | International Business Machines Corporation | Fully integrated architecture for user-defined search |
US6219662B1 (en) | 1997-07-10 | 2001-04-17 | International Business Machines Corporation | Supporting database indexes based on a generalized B-tree index |
US6285996B1 (en) | 1997-07-10 | 2001-09-04 | International Business Machines Corp. | Run-time support for user-defined index ranges and index filters |
US6192358B1 (en) | 1997-07-10 | 2001-02-20 | Internatioanal Business Machines Corporation | Multiple-stage evaluation of user-defined predicates |
US6253196B1 (en) | 1997-07-10 | 2001-06-26 | International Business Machines Corporation | Generalized model for the exploitation of database indexes |
US6278990B1 (en) | 1997-07-25 | 2001-08-21 | Claritech Corporation | Sort system for text retrieval |
US5940819A (en) * | 1997-08-29 | 1999-08-17 | International Business Machines Corporation | User specification of query access paths in a relational database management system |
US6014664A (en) * | 1997-08-29 | 2000-01-11 | International Business Machines Corporation | Method and apparatus for incorporating weights into data combinational rules |
US6618718B1 (en) | 1997-10-14 | 2003-09-09 | International Business Machines Corporation | Apparatus and method for dynamically generating query explain data |
US6389425B1 (en) | 1998-07-09 | 2002-05-14 | International Business Machines Corporation | Embedded storage mechanism for structured data types |
US6381711B1 (en) * | 1998-10-20 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for unified, pre-addressed, context-sensitive reporting |
US6381607B1 (en) | 1999-06-19 | 2002-04-30 | Kent Ridge Digital Labs | System of organizing catalog data for searching and retrieval |
US7699701B2 (en) * | 2001-07-05 | 2010-04-20 | Dbs Limited Partnership | Method and system for providing real time sports betting information |
US20030050994A1 (en) * | 2001-07-27 | 2003-03-13 | Robert Pollack | Method of aggregating, classifying, reporting and cross-tabbing data in real time |
US7296183B2 (en) * | 2004-01-23 | 2007-11-13 | Microsoft Corporation | Selectable data field consistency checking |
US7526486B2 (en) | 2006-05-22 | 2009-04-28 | Initiate Systems, Inc. | Method and system for indexing information about entities with respect to hierarchies |
AU2007254820B2 (en) | 2006-06-02 | 2012-04-05 | International Business Machines Corporation | Automatic weight generation for probabilistic matching |
US7685093B1 (en) * | 2006-09-15 | 2010-03-23 | Initiate Systems, Inc. | Method and system for comparing attributes such as business names |
US8356009B2 (en) * | 2006-09-15 | 2013-01-15 | International Business Machines Corporation | Implementation defined segments for relational database systems |
US7698268B1 (en) * | 2006-09-15 | 2010-04-13 | Initiate Systems, Inc. | Method and system for filtering false positives |
US8359339B2 (en) * | 2007-02-05 | 2013-01-22 | International Business Machines Corporation | Graphical user interface for configuration of an algorithm for the matching of data records |
US8515926B2 (en) | 2007-03-22 | 2013-08-20 | International Business Machines Corporation | Processing related data from information sources |
US8423514B2 (en) * | 2007-03-29 | 2013-04-16 | International Business Machines Corporation | Service provisioning |
US8429220B2 (en) * | 2007-03-29 | 2013-04-23 | International Business Machines Corporation | Data exchange among data sources |
US8321393B2 (en) * | 2007-03-29 | 2012-11-27 | International Business Machines Corporation | Parsing information in data records and in different languages |
US8370355B2 (en) * | 2007-03-29 | 2013-02-05 | International Business Machines Corporation | Managing entities within a database |
EP2193415A4 (de) | 2007-09-28 | 2013-08-28 | Ibm | Verfahren und system zur analyse eines systems für den abgleich von datensätzen |
US8713434B2 (en) | 2007-09-28 | 2014-04-29 | International Business Machines Corporation | Indexing, relating and managing information about entities |
AU2008304255B2 (en) * | 2007-09-28 | 2013-03-14 | International Business Machines Corporation | Method and system for associating data records in multiple languages |
US20100042953A1 (en) * | 2008-08-18 | 2010-02-18 | Douglas Albert Stewart | Method, computer, and computer program for displaying a hierarchical navigation scheme |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4042912A (en) * | 1975-06-19 | 1977-08-16 | Honeywell Information Systems Inc. | Database set condition test instruction |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
US4205371A (en) * | 1975-11-03 | 1980-05-27 | Honeywell Information Systems Inc. | Data base conversion system |
US4422158A (en) * | 1980-11-28 | 1983-12-20 | System Development Corporation | Method and means for interrogating a layered data base |
US4445171A (en) * | 1981-04-01 | 1984-04-24 | Teradata Corporation | Data processing systems and methods |
-
1983
- 1983-01-21 US US06/459,792 patent/US4531186A/en not_active Expired - Lifetime
- 1983-11-10 DE DE3382808T patent/DE3382808T2/de not_active Expired - Lifetime
- 1983-11-10 EP EP83111218A patent/EP0114221B1/de not_active Expired - Lifetime
- 1983-12-12 JP JP58232898A patent/JPS59140571A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
US4531186A (en) | 1985-07-23 |
EP0114221B1 (de) | 1996-09-04 |
JPH0330896B2 (de) | 1991-05-01 |
EP0114221A3 (de) | 1987-04-15 |
EP0114221A2 (de) | 1984-08-01 |
DE3382808D1 (de) | 1996-10-10 |
JPS59140571A (ja) | 1984-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3382808T2 (de) | Datenbankzugriffsverfahren mit einem benutzerfreundlichen Menü | |
DE69533193T2 (de) | Paralleles verarbeitungssystem zum durchlaufen einer datenbank | |
DE68925746T2 (de) | Versionen-Verwaltungswerkzeug | |
DE3688529T2 (de) | Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation. | |
DE60208778T2 (de) | Datenstruktur für informationssysteme | |
DE68926849T2 (de) | Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank | |
DE69031758T2 (de) | Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess | |
DE3855706T2 (de) | Automatisierte Rechnung von Materialien | |
DE69128958T2 (de) | Schneide- und Klebefilterung von unbegrenzten, dynamischen, unmodifizierbaren Datenströmen | |
DE69736748T2 (de) | Editierumgebung für objektmodelle und verfahren zu deren anwendung | |
DE3752196T2 (de) | Vorrichtung für Datenverarbeitungsverteilung über eine Mehrzahl von Steuerungsorten | |
EP0910829B1 (de) | Datenbanksystem | |
EP1258812B1 (de) | Virtuelle Datenbank heterogener Datenstrukturen | |
DE69904588T2 (de) | Datenbankzugangswerkzeug | |
EP0855062B1 (de) | Informationssystem und verfahren zur speicherung von daten in einem informationssystem | |
DE69610509T2 (de) | Spezifizierende indexierungen für datenbanken | |
DE3855212T2 (de) | Verfahren zur Berechnung eines transitiven Abschlusses | |
DE19513308A1 (de) | Dreidimensionales Dateisystem unter Verwendung einer virtuellen Knotenarchitektur | |
WO2002007495A1 (de) | System zur unterstützung einer fehlerursachenanalyse | |
DE19955718A1 (de) | Paralleler Datenbank-Support für Workflow-Management-Systeme | |
DE10251440A1 (de) | Reproduzierbare Auswahl von Elementen in einer Hierarchie | |
DE69123493T2 (de) | Verarbeitungsverfahren und Gerät um einen Dateinamen von einem logischen zu einem richtigen Namen zu erstellen | |
DE19534819B4 (de) | Verfahren und Vorrichtung zum Konfigurieren einer Datenbank | |
DE69027524T2 (de) | Verfahren und System zur automatischen Steuerung der Verteilung von Datenobjekten | |
EP1166228B1 (de) | Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |