DE19715723A1 - Array-Verfahren - Google Patents
Array-VerfahrenInfo
- Publication number
- DE19715723A1 DE19715723A1 DE19715723A DE19715723A DE19715723A1 DE 19715723 A1 DE19715723 A1 DE 19715723A1 DE 19715723 A DE19715723 A DE 19715723A DE 19715723 A DE19715723 A DE 19715723A DE 19715723 A1 DE19715723 A1 DE 19715723A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- search
- vector
- vectors
- digital
- 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.)
- Ceased
Links
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
Description
Die Erfindung betrifft ein Verfahren zur Optimierung
der Zugriffsgeschwindigkeit von auf einem Speicherme
dium abgelegten digitalen Daten, wobei das Verfahren
zur Ausführung auf einem digitalen Rechner geeignet
ist.
Bisherige Datenbanksysteme weisen den gravierenden
Nachteil auf, daß viele Daten gleichzeitig in mehreren
Dateien gespeichert sind, wodurch zusätzlich Speicher
platz benötigt und die Aktualisierung der Daten
erschwert wird. So muß beispielsweise bei einer Adreß-
datei eine Namensänderung in allen diese Informationen
enthaltenden Dateien gleichzeitig durchgeführt werden.
Wird hierbei irrtümlich, z. B. durch einen Schreibfeh
ler, in einer Datei etwas falsch geändert, so ist die
gesamte Datenmenge inkorrekt (inkonsistent). Des
weiteren ist bei jeder Suchabfrage immer der gesamte
Inhalt der bearbeiteten Dateien beteiligt, d. h. auch
die nicht benötigten Daten. Dies verlängert die
erforderliche Rechenzeit und erhöht den Speicherbedarf.
Die Mehrzahl der heute verwendeten Datenbanken basieren
auf dem hierarchischen Datenmodell, dem Netzwerk-Daten
modell oder dem relationalen Datenmodell. Während die
ersten beiden Datenmodelle eine baum- bzw. netzförmige
Struktur aufweisen, beruht das relationale Datenmodell
auf Tabellen. Dabei werden alle Informationen einer
Datenbank, also sowohl die Objekte wie auch ihre Bezie
hungen auf die gleiche Art durch Tabellen dargestellt.
Beziehungen zwischen Objekten sind vorhanden, wenn ein
Wert in mehreren Relationen vorkommt. Erst bei einer
Anfrage an die Datenbank werden vorhandene Beziehungen
aktiviert. Die Durchführung von Abfragen ist relativ
aufwendig, denn die Relationen unterstützen keinen
schnellen Suchalgorithmus. Entweder müssen die einzel
nen Tupel sequentiell nach einem Merkmal durchsucht
werden, oder der Algorithmus muß effizienzsteigernde
Hilfdatenstrukturen selbst erzeugen.
Bei Verwendung bisheriger Datenbanksysteme wird die
Verkürzung der Rechenzeit im allgemeinen durch Verwen
dung leistungsfähiger Hochleistungsrechner bewerkstel
ligt, die jedoch eine natürliche Leistungsgrenze
aufweisen und aus wirtschaftlichen Gründen nur in
wenigen Fällen zum Einsatz kommen können. Insbesondere
bei der Online-Abfrage von Datenbankinformationen in
Netzwerkdatenbanken ist aber eine Minimierung der
Rechenzeit unbedingt erforderlich, um unnötige Warte
zeiten Online und damit erhöhte Abfragekosten zu
vermeiden.
Aufgabe der vorliegenden Erfindung ist es daher, ein
verbessertes Zugriffverfahren auf digitale Daten zu
schaffen, welches insbesondere für den Online-Betrieb
in Netzwerkdatenbanken geeignet ist.
Diese Aufgabe wird erfindungsgemäß mit den Merkmalen
des Anspruchs 1 gelöst.
Dabei sieht ein zur Ausführung auf einem digitalen
Rechner geeignetes Verfahren zur Optimierung der
Zugriffsgeschwindigkeit von auf einem Speichermedium
abgelegten digitalen Daten vor, daß die Daten in einem
Datenfeld strukturiert abgelegt sind, Suchvektoren für
Datengruppen zunächst logisch miteinander und
anschließend mit dem Datenfeld verknüpft werden. Auf
diese Weise werden zunächst lediglich Suchvektoren
miteinander verknüpft, d. h. die zu bewegende Datenmenge
ist zunächst relativ klein. Erst am Ende der
Verknüpfungsoperation wird der resultierende Vektor mit
dem Datenfeld verknüpft und die entsprechenden Daten,
die jeweils nur einmal vorhanden sind, ausgelesen.
Dadurch, daß lediglich kleine Datenmengen bewegt werden
und daß lediglich logische Verknüpfungen und keine
sequentiellen Abfragen erfolgen, ist es möglich, in
sehr kurzer Zeit ein gewünschtes Abfrageergebnis bei
verhältnismäßig großen Datenmengen zu erhalten. Auf
diese Weise können auch weniger leistungsfähige
Rechenanlagen zum Verwalten und Abfragen komplexer
Datenbestände verwendet werden. Das Datenfeld kann
dabei zeilenförmig aufgebaut sein, wobei jede Zeile
alle gewünschten Informationen über einen Eintrag
enthält. Dabei ist es vorteilhaft, daß die Datenfelder
statisch sind, d. h. die maximale Anzahl der
eintragbaren Datensätze bereits vorgegeben ist. Bei
einem Datenfeld, das noch nicht seinen Endzustand
erreicht hat, werden die verbleibenden freien Zeilen
durch Nullen markiert. Die Erstellung von Suchvektoren
erfolgt durch Gruppierung von Daten, wie beispielsweise
Länderzugehörigkeit, etc. Die Suchvektoren werden im
Vorfeld erstellt und stehen bei der Abfrage bereits zur
Verfügung.
Vorteil des beschriebenen Verfahrens ist es, daß ein
konventioneller digitaler Rechner als schnelle Online-
Datenbank genutzt werden kann. Dabei sind keine
"Superrechner" erforderlich, da die Zugriffsgeschwin
digkeit auch bei komplexen Abfragen sehr hoch ist und
der Speicherbedarf im Vergleich zu konventionellen
Datenbanken sehr klein ist. Dies beruht darauf, daß
alle Daten nur einmal auftauchen, weshalb die bewegte
Datenmenge gering ist. Ein weiterer Vorteil ist es, daß
Suchvektoren erstellt werden können, ohne den Daten
bankbestand zu blockieren. D.h., während bei konventio
nellen Datenbanken bei der Erstellung von Key-Feldern
für die Datenabfrage zumindest ein Teil der Daten für
gewisse Zeit blockiert ist, geht beim vorliegenden
Verfahren der normale Mehrbenutzer (Multiuser) Betrieb
weiter, während neue Suchvektoren erstellt bzw.
aktualisiert werden. Damit ist das Verfahren bestens
für den Betrieb in einer Multiuser-Netzwerkdatenbank
geeignet. Außerdem sind mit dem Array-Verfahren
Abfragen durchführbar, die in einer konventionellen
Datenbank, die mit Key-Feldern arbeitet, nicht möglich
sind. So können beispielsweise alle Aussteller auf
einer Messe mit dem entsprechenden Suchvektor in
kürzester Zeit ermittelt werden, ohne daß diese
Information notwendigerweise im Datenfeld selbst
vorhanden ist.
Eine vorteilhafte Weiterbildung des erfindungsgemäßen
Verfahrens sieht vor, daß jeweils ein Suchvektor beste
hend aus Nullen und Einsen einem Suchbegriff zugeordnet
ist. Bei einer Länderabfrage, in der alle Einträge aus
Deutschland gefunden werden sollen, weist beispiels
weise der Suchvektor jeweils dort Einsen auf, wo
entsprechende Einträge im Datenfeld vorhanden sind,
wogegen andere Ländereinträge eine Null im Suchvektor
aufweisen. Bei einer gegebenen Wortbreite des
Prozessors von b bits können so Abfragen mit einer
einzigen CPU-Instruktion abgefragt werden. Durch die
Verwendung von Suchvektoren mit Nullen und Einsen
reicht die normale Wortbreite des Prozessors, z. B. 32
bit, in der Regel aus, um bereits eine sinnvolle
Abfrage durchzuführen. Die Datensätze der Suchvektoren
sind nämlich durchschnittlich um den Faktor n × 103 bit
kleiner als diejenigen Datensätze bei sequenziellen
Abfragen komplexer Begriffe in konventionellen
Datenbanken. Auch ist die logische Verknüpfung von
Nullen und Einsen wesentlich maschinennäher als die
Verwendung komplexer Suchbegriffe. Schließlich ist die
sehr gute Komprimierbarkeit der Suchvektoren vorteil
haft bei Netzwerkabfragen. Somit wird durch die
Verwendung derartiger Suchvektoren die Rechen- und
Übertragungsgeschwindigkeit erhöht und der
Speicherbedarf verringert.
Des weiteren sieht eine vorteilhafte Ausführungsform
vor, daß bei der logischen Verknüpfung der Suchvektoren
zunächst ein Validierungsvektor vorgeschaltet wird.
Dies heißt, daß nur an Stellen, wo gültige Einträge
vorhanden sind, Einsen stehen und ansonsten Nullen im
Validierungsvektor auftauchen. Dies ist beispielsweise
dann erforderlich, wenn alte Einträge ungültig gemacht
werden sollen. Dann würde vor diesem Datensatz im
Validierungsvektor eine Null stehen.
Weiterhin ist es vorteilhaft, wenn sämtliche Suchvekto
ren in den Arbeitsspeicher geladen werden. Dies erhöht
die Berechnungsgeschwindigkeit und verkürzt somit die
Rechenzeit. Das Verfahren ist selbst mit einer
Standard-Hardware-Ausstattung durchführbar, da die
Suchvektoren nur einen sehr geringen Speicherbedarf
aufweisen.
Außerdem sieht eine vorteilhafte Weiterbildung des
erfindungsgemäßen Verfahrens vor, daß die Suchvektoren
bei Neueinträgen in die Datenbank automatisch angepaßt
werden. Dies bedeutet, daß bei jedem Neueintrag eine
Überprüfungsroutine durchlaufen wird, die entsprechende
Suchbegriffe bei diesem einen Eintrag abfragt und
entsprechend Einsen bzw. Nullen dem jeweiligen Suchvek
tor zuweist. Es können aber auch die Ergebnisvektoren,
die aus einer Verknüpfung von Suchvektoren bei einer
früheren Abfrage hervorgegangen sind, z. B. Mailingliste
'97, als neuer Suchvektor abgelegt werden.
Weiterhin sieht eine vorteilhafte Ausführungsform des
erfindungsgemäßen Verfahrens vor, daß die digitalen
Daten auf einem Festspeicher als nicht flüchtigen
Speichermedium abgelegt werden. Dies kann
beispielsweise eine Festplatte, ein Datenband, CD-ROM,
EPROM oder Diskette sein.
Schließlich ist vorteilhafterweise die Verwendung eines
derartigen Verfahrens auf einem digitalen Rechner
(Server) in einem Netzwerk zur Online-Abfrage einer
Netzwerkdatenbank vorgesehen, da gerade bei Online-
Abfragen hohe Zugriffs- und Abfragegeschwindigkeiten
erforderlich sind, um unnötige Kosten aufgrund
Rechenzeit bzw. Hardwareeinsatz zu vermeiden. Außerdem
wird hierdurch ein effizienter Mehrbenutzer-Betrieb
gewährleistet. Die Suchvektoren können ohne Eingriff in
das Datenfeld erstellt werden, wodurch die
Ausfallzeiten gering sind.
Im Folgenden wird die Erfindung anhand eines Beispiels
näher erläutert. Darin wird von einem Adressenfeld mit
n Datensätzen ausgegangen. Bei der Abfrage wird
zunächst der Validierungsvektor mit n Zeilen vorge
schaltet, der für jeden gültigen Eintrag eine Eins
aufweist. Im vorliegenden Beispiel ist das Adressenfeld
mit n Einträgen voll besetzt. Bei der Abfrage wird
zunächst der Validierungsvektor vorgeschaltet und durch
"und" mit einem ersten Suchvektor, der die im Adressen
feld aufgelisteten Abonnenten auflistet, logisch
verknüpft. Des weiteren wird ein Suchvektor, der die im
Adressenfeld aufgelisteten Teilnehmer am
Lastschriftverfahren anzeigt, ebenfalls durch "und"
verbunden. Der resultierende Vektor wird dann mit dem
Adressenfeld verknüpft und als Ergebnis erhält man die
gewünschten Datensätze.
Adressenfeld
Adressenfeld
Suchvektoren
gültiger Eintrag und Abonnement und Lastschriftverfahren
gültiger Eintrag und Abonnement und Lastschriftverfahren
Falls die diversen Suchvektoren an "ungültigen"
Stellen ohnehin mit Nullen vorbesetzt sind, wird
kein Validierungsvektor benötigt.
Claims (8)
1. Verfahren geeignet zur Ausführung auf einem
digitalen Rechner zur Optimierung der Zugriffs
geschwindigkeit von auf einem Speichermedium
abgelegten digitalen Daten, wobei die Daten in
einem Datenfeld strukturiert abgelegt sind und
wobei Suchvektoren zunächst logisch miteinander
und anschließend mit dem Datenfeld verknüpft
werden.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß jeweils ein Suchvektor bestehend aus Nullen
und Einsen einem Suchbegriff zugeordnet ist.
3. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß ein Validierungsvektor vorgibt, ob ein
Datensatz gültig ist oder nicht.
4. Verfahren nach Anspruch 3,
dadurch gekennzeichnet,
daß bei der logischen Verknüpfung der Suchvek
toren zunächst der Validierungsvektor vorge
schaltet wird.
5. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß sämtliche Suchvektoren in den Arbeitsspei
cher geladen werden.
6. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß die Suchvektoren bei Neueinträgen in die
Datenbank automatisch angepaßt werden.
7. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß die digitalen Daten auf einem Festspeicher
als Speichermedium abgelegt werden.
8. Verwendung eines Verfahrens nach Anspruch 1 auf
einem digitalen Rechner in einem Netzwerk zur
Online-Abfrage in einer Netzwerkdatenbank.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19715723A DE19715723A1 (de) | 1997-04-15 | 1997-04-15 | Array-Verfahren |
PCT/EP1998/000932 WO1998047081A1 (de) | 1997-04-15 | 1998-02-18 | Auswahlverfahren für digitale daten |
AU62971/98A AU6297198A (en) | 1997-04-15 | 1998-02-18 | Digital data selection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19715723A DE19715723A1 (de) | 1997-04-15 | 1997-04-15 | Array-Verfahren |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19715723A1 true DE19715723A1 (de) | 1998-11-12 |
Family
ID=7826580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19715723A Ceased DE19715723A1 (de) | 1997-04-15 | 1997-04-15 | Array-Verfahren |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU6297198A (de) |
DE (1) | DE19715723A1 (de) |
WO (1) | WO1998047081A1 (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1049030A1 (de) | 1999-04-28 | 2000-11-02 | SER Systeme AG Produkte und Anwendungen der Datenverarbeitung | Methode und Apparat zur Klassifizierung |
AU7100600A (en) * | 1999-09-03 | 2001-04-10 | Whamtech, L.P. | Index relational processor |
EP1182577A1 (de) * | 2000-08-18 | 2002-02-27 | SER Systeme AG Produkte und Anwendungen der Datenverarbeitung | Assoziativspeicher |
US9177828B2 (en) | 2011-02-10 | 2015-11-03 | Micron Technology, Inc. | External gettering method and device |
PT1288792E (pt) | 2001-08-27 | 2012-02-29 | Bdgb Entpr Software Sarl | Método para indexar automaticamente documentos |
US9158833B2 (en) | 2009-11-02 | 2015-10-13 | Harry Urbschat | System and method for obtaining document information |
US8321357B2 (en) | 2009-09-30 | 2012-11-27 | Lapir Gennady | Method and system for extraction |
US9213756B2 (en) | 2009-11-02 | 2015-12-15 | Harry Urbschat | System and method of using dynamic variance networks |
US9152883B2 (en) | 2009-11-02 | 2015-10-06 | Harry Urbschat | System and method for increasing the accuracy of optical character recognition (OCR) |
US10671944B2 (en) | 2016-12-06 | 2020-06-02 | Amazon Technologies, Inc. | Method for selling and searching for items |
WO2018106511A1 (en) * | 2016-12-06 | 2018-06-14 | Amazon Technologies, Inc. | Method for selling and searching for items |
US10824964B2 (en) | 2016-12-06 | 2020-11-03 | Amazon Technologies, Inc. | Method for selling and searching for items |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3425844A1 (de) * | 1984-07-13 | 1986-01-16 | Telefonbau Und Normalzeit Gmbh, 6000 Frankfurt | Verfahren zum schnellen auffinden von bestimmten, von einer fernmeldevermittlungsanlage oder datenverarbeitungsanlage produzierten datensaetzen in einem datenspeicher |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1989004013A1 (en) * | 1987-10-09 | 1989-05-05 | Nucleus International Corporation | A relational database representation with relational database operation capability |
US5377348A (en) * | 1992-06-04 | 1994-12-27 | International Business Machines Corporation | System for searching a data base by creating a marking matrix in which two dimensional patterns control the search and selection |
-
1997
- 1997-04-15 DE DE19715723A patent/DE19715723A1/de not_active Ceased
-
1998
- 1998-02-18 AU AU62971/98A patent/AU6297198A/en not_active Abandoned
- 1998-02-18 WO PCT/EP1998/000932 patent/WO1998047081A1/de active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3425844A1 (de) * | 1984-07-13 | 1986-01-16 | Telefonbau Und Normalzeit Gmbh, 6000 Frankfurt | Verfahren zum schnellen auffinden von bestimmten, von einer fernmeldevermittlungsanlage oder datenverarbeitungsanlage produzierten datensaetzen in einem datenspeicher |
Also Published As
Publication number | Publication date |
---|---|
WO1998047081A1 (de) | 1998-10-22 |
AU6297198A (en) | 1998-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69533193T2 (de) | Paralleles verarbeitungssystem zum durchlaufen einer datenbank | |
DE3743890C2 (de) | ||
EP0910829B1 (de) | Datenbanksystem | |
DE69434096T2 (de) | Verfahren und System, um mit einer graphischen Benutzerschnittstelle in einer Datenbank zu suchen | |
DE69533786T2 (de) | Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren | |
DE69530595T2 (de) | System und verfahren für die x.500-datenbanknorm | |
DE19734413C1 (de) | Verfahren zum Aufrüsten einer Datenbank | |
DE60035432T2 (de) | System zur verwaltung der rdbm fragmentierungen | |
DE3821551C2 (de) | Datenverarbeitungsvorrichtung | |
DE10028688A1 (de) | Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten | |
DE69935657T2 (de) | Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten | |
DE69628374T2 (de) | Datenverwaltungssystem | |
EP0523269A1 (de) | Computersystem zur Datenverwaltung | |
DE19926116A1 (de) | Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank | |
WO1997015015A2 (de) | Informationssystem und verfahren zur speicherung von daten in einem informationssystem | |
DE19959765B4 (de) | Datei-Editor für mehrere Datenuntermengen | |
DE19715723A1 (de) | Array-Verfahren | |
DE2610411A1 (de) | Datenverarbeitungsanlage | |
DE2934344A1 (de) | Datenverarbeitungssystem mit einem datenbank-verwaltungssystem | |
EP1276056B1 (de) | Verfahren zum Verwalten einer Datenbank | |
DE19645128C2 (de) | Verfahren zum Verwalten von Dokumenten sowie Gerätetreiber zur Durchführung des Verfahrens | |
DE10048478C2 (de) | Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen | |
DE19538448A1 (de) | Datenbankmanagementsystem sowie Datenübertragungsverfahren | |
EP1204917B1 (de) | Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers | |
EP1515244A2 (de) | Abbildung einer Klassenhierarchie auf ein relationales Datenbanksystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |