DE3821551C2 - Datenverarbeitungsvorrichtung - Google Patents
DatenverarbeitungsvorrichtungInfo
- Publication number
- DE3821551C2 DE3821551C2 DE3821551A DE3821551A DE3821551C2 DE 3821551 C2 DE3821551 C2 DE 3821551C2 DE 3821551 A DE3821551 A DE 3821551A DE 3821551 A DE3821551 A DE 3821551A DE 3821551 C2 DE3821551 C2 DE 3821551C2
- Authority
- DE
- Germany
- Prior art keywords
- relation
- cluster
- page
- tuples
- stored
- 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 - Fee Related
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
-
- 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/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die vorliegende Erfindung bezieht sich auf eine Da
tenverarbeitungsvorrichtung für ein relationales Da
tenbanksystem.
Bei einem bekannten Datenbankverwaltungssystem ist
eine Datenbank in Form einer Sammlung von Tabellen
gemäß Fig. 6 ausgebildet. Eine einzelne Tabelle wird
üblicherweise als Relation 11 bezeichnet, wobei jeder
Posten der Tabelle als Attribut 18 bekannt ist, und
ein Datensatz in dem Attribut nennt sich Tupel 17.
In Fig. 7 ist ein allgemeines Schema eines Datenbank
verwaltungssystems gezeigt, das in einer Anlage an
wendbar ist, bei der eine Vielzahl von Datenverarbei
tungseinheiten 28a bis 28d über ein Netzwerk 29 mit
einer Vielzahl von Scheibenspeichereinheiten 2g bis
2j verbunden ist, wobei eine Relation aufgeteilt in
der Vielzahl von Scheibenspeichereinheiten 2g bis 2j
derart gespeichert wird, daß die Vielzahl von Daten
verarbeitungseinheiten 28a bis 28d parallelen Zugriff
zu jeder der in der Relation enthaltenen Daten hat.
In diesem Schema wird es horizontale Unterteilung
genannt, wenn eine einzelne Relation mittels der
Tupel horizontal unterteilt wird.
Entsprechend dieser horizontalen Unterteilung ist es
in dem Fall, daß eine zu speichernde Relation keine
gehäuften Indizes (im folgenden Clusterindizes ge
nannt) aufweist, in der Praxis möglich, die Relation
in der Weise zu speichern, daß jede der Scheibenspei
chereinheiten gleichmäßig viele Tupel aufweisen kann,
wenn die zu speichernden Tupel in einen Scheibenspei
cher gelegt werden, der gegenwärtig die kleinste An
zahl von gespeicherten Tupel hat.
Mit einer derartig gleich verteilten Relation kann
die Vielzahl von Datenverarbeitungseinheiten 28a bis
28d Daten von jedem der Scheibenspeicher 2g bis 2j in
einem weiten gleichmäßigen Zeitintervall einlesen,
und mit dieser Anordnung tritt nicht ein derartiger
Fall auf, daß eine bestimmte Datenverarbeitungsein
heit noch nicht das Lesen von Daten beendet hat, wäh
rend andere schon Daten während eines Datenbearbei
tungsvorganges eingelesen haben, wodurch folglich
eine erhöhte Datenverarbeitungsgeschwindigkeit mög
lich ist.
Dies ist eine typische Konstruktion der horizontalen
Unterteilung in einem relationalen Datenbankverwal
tungssystem, und dies betrifft ein Unterteilungssy
stem, das hauptsächlich für Relationen geeignet ist,
die keine Clusterindizes haben. Daher kann dieses
Unterteilungssystem nicht bei der Unterteilung einer
Relation mit Clusterindizes angewandt werden, und aus
diesem Grunde tritt ein Problem auf, daß ein Verar
beiten mit hoher Zugriffsgeschwindigkeit zu bestimm
ten Tupeln in einer Relation in der Praxis nicht un
ter Ausnutzung der Clusterindizes erzielt werden
kann.
Als nächstes wird Bezug genommen auf Fig. 8, die
schematisch eine typische übliche Datenverarbeitungs
einheit zeigt. In dieser Figur ist ein elektronischer
Computer oder Hauptrahmen 15, eine Scheibenspeicher
einheit 16, die mit dem Hauptrahmen verbunden ist,
eine Relation 11, die in einer mit dem Scheibenspei
cher 16 verbundenen Datenbank enthalten ist, und ein
Clusterindex 12, der der Relation 11 zugeordnet ist,
dargestellt. Dieser Clusterindex 12 ist beispielswei
se von einer solchen Art, die in der Veröffentlichung
von J. D. Ullman "Principle of Database Systems" §
2.4; herausgegeben von der Computer Science Press
Inc. (japanische Übersetzung: "Database system no
genri", übersetzt von Toshiyasu Kunii, veröffentlicht
von Nippon Computer Koyokai; Seite 71, Zeile 15, bis
Seite 79, Zeile 17) offenbart ist. Obwohl kein spe
zieller Bezug auf den Clusterindex in dieser Litera
tur genommen wird, ist offensichtlich das, was als
"B-Baum" bezeichnet ist, der Clusterindex.
Im allgemeinen wird eine Anordnung derart vorgenom
men, daß Tupel in einer Relation 11 in Übereinstim
mung mit einer einem Clusterindex 12 zugeordneten
Schlüsselzahl sortiert werden, so wie sie in einer
Scheibenspeichereinheit 16 zu speichern sind. In Fig.
9 ist ein Beispiel gezeigt, bei dem Clusterindizes
den Attributen (Schlüssel) zugegeben sind, die als
ganze Zahl im Bereich von 1 bis 1000 ausgebildet
sind. Die Relation 11 kann in Übereinstimmung mit
einer gegebenen Schlüsselnummer sortiert werden, wo
bei sie in acht Seiten 13a bis 13h aufgeteilt ist und
in dem Scheibenspeicher 16 gespeichert ist. Ein Zei
ger 14a bestimmt eine Seitenzahl mit einem darin ge
speicherten Zeiger 14b, und der Zeiger 14b bezeichnet
die Seitenzahlen 13a bis 13h in der Relation 11.
Wenn mit einer derartigen Anordnung eine spezielle
Schlüsselnummer für ein Tupel spezifiziert ist, kann
die Seitenzahl, in der dieses Tupel gespeichert ist,
unverzüglich durch Bezug auf die Zeiger 14a, 14b be
stimmt werden.
Entsprechend der oben beschriebenen relationalen Da
tenbank können alle umfaßten Daten in Form einer Ta
belle verwaltet werden. Diese Tabelle wird als Rela
tion bezeichnet. Die jeweiligen Daten in den jeweili
gen Reihen einer Relation werden als Tupel bezeich
net. Jeder Posten (Spalte) einer Relation nennt sich
Attribut. Entsprechend dem Beispiel nach Fig. 6 wer
den eine Relation mit dem Bezugszeichen 11, Tupel mit
den Bezugszeichen 17a bis 17j, und Attribute mit den
Bezugszeichen 18a bis 18d gezeigt. In einer relatio
nalen Datenbank ist es in der Praxis üblich, daß eine
Verarbeitung auf eine Gruppe von Tupel gerichtet
wird, die in ihrem Bereich definiert sind, der in
Zusammenhang mit bestimmten spezifizierten Attributen
oder mit einer Kombination von Attributen (im folgen
den als "Schlüssel" bezeichnet) spezifiziert ist.
Beispielsweise kann bei einer Relation 11 nach Fig. 6
eine Verarbeitung derart vorgenommen werden, daß ein
Mittelwert des Attributs 18d "Alter" mit dem Tupel
"Hauptabteilung" unter dem Attribut 18b des "Namens
der Abteilung" erzielt wird. In diesem Beispiel ist
das Attribut 18b "Name der Abteilung" ein Schlüssel.
Wenn bei einer üblichen Datenbankverarbeitungseinheit
gemäß Fig. 8 eine Verarbeitung an einem Cluster von
Tupel, wie sie im Sinne ihres Bereiches in Zusammen
hang mit dem Wert des Schlüssels für den Clusterindex
definiert sind, durchgeführt wird, bezieht sich der
Hauptrahmen 15 auf die Zeiger 14a, 14b der Clusterin
dizes 12, dann prüft er, auf welcher Seite der rele
vante Tupelcluster gespeichert ist und liest die Tu
pel zusammen seitenweise aus der Scheibenspeicherein
heit 16 zum Verarbeiten aus. Da der Cluster von Tu
pel, wie sie in ihrem Bereich in Übereinstimmung mit
dem Schlüsselwert der Clusterindizes definiert sind,
seitenweise zusammengesetzt und in der Scheibenspei
chereinheit 16 gespeichert wird, wobei ihr Bereich
ziemlich beschränkt ist, kann es ausreichen, nur die
erforderliche Seite aus der Scheibenspeichereinheit
16 auszulesen, wodurch eine Verarbeitung wesentlich
schneller durchführbar ist als in dem Fall, bei dem
keine Clusterindizes vorhanden sind.
Beispielsweise ist es in Fig. 9 aufgrund eines Clu
sters von Tupel, wie sie mit dem Schlüsselwert im
Bereich von 99 bis 190 allein in der Seite 13b vor
handen sind, ausreichend, nur die Seite 13b von der
Plattenspeichereinheit 16 zu lesen, wodurch eine
schnellere Bearbeitung bewirkt wird.
Obwohl eine Verarbeitung mit hoher Geschwindigkeit
durch die Anwendung von Clusterindizes gemäß einer
üblichen Datenverarbeitungseinheit erzielt werden
kann, ist es schwierig, die Datenverarbeitung nach
dem Stand der Technik, die von einem einzigen Haupt
rahmen per se verwaltet wird, weiter schneller zu
machen - eine Forderung, die aufgrund der in letzter
Zeit steigenden Nachfrage von Datenbankverwaltungen
mit dem stark steigenden Anspruch nach schnellerer
Datenverarbeitung aufgetaucht ist.
Aus DE-Z: Elektronik 17, 24.8.1984, S. 39 bis 44, ist
eine Transputer-Anordnung bekannt, bei der viele
Transputer aneinandergehängt werden können, um belie
big ausdehnbare Dateien zu durchsuchen. Diese Anord
nung ist nicht als Master-Slave-System ausgebildet,
denn alle Transputer-Einheiten haben die gleiche Ka
pazität und arbeiten in Übereinstimmung mit dem in
ihrem eigenen lokalen Speicher gespeicherten Pro
gramm und werden nicht von einem Hauptprozessor ge
steuert. Weiterhin ist in dieser Literaturstelle ein
sogenannter Datenflußprozessor gezeigt, der z. B. zur
Bildverarbeitung dient und bei dem Daten zunächst aus
einem Host-Computer in einen Ring gebracht und in
diesen mit Tokens versehen werden, die angeben, wel
che Operationen mit ihnen durchgeführt werden. Nach
dem Durchlaufen des Adreßringes gelangen die Daten in
einen Prozessorring, in welchem nach jeder Operation
der entsprechende Token entfernt wird. Daten ohne
Token werden in den Host-Computer zurückgebracht.
Dieser Datenflußprozessor stellt somit keine Daten
verarbeitungsvorrichtung für ein relationales Daten
banksystem vom Mast-Slave-Typ dar.
W. K. Gilvoi: Rechnerarchitektur, Springer-Verlag,
Berlin - Heidelberg - New York, 1981, S. 320-322,
zeigt die Struktur von Verbindungseinrichtungen in
Mehrprozessor-Systemen, wobei auch eine sternförmige
Verbindung von 1 bis n Prozessor-Speicher-Paaren über
einen globalen Bus dargestellt ist. Hierzu wird aus
geführt, daß eine derartige Verbindung die Auftrags
zuweisung favorisiere, d. h. eines der Prozessor-Spei
cher-Paare die Rolle der zentralisierten Systemauf
sicht übernehmen könne. Jedoch handelt es sich hier
bei nicht um eine Datenverarbeitungsvorrichtung für
ein relationales Datenbanksystem, bei dem der Haupt
speicher Clusterindizes für Attribute einer Relation
speichert und eine Mehrzahl von Nebenspeichern eine
aufgespaltene Relation speichert, so daß eine Mehr
zahl von Nebenprozessen eine Parallelverarbeitung an
eine durch einen Schlüsselwert eines Clusterindex
definierten Gruppe von Tupeln durchführen kann.
Schließlich wird in DE-Z: Elektronische Rechenanla
gen, 23. Jahrgang, 1981, Heft 2, Seiten 61 bis 71,
die Software-Implementation assoziativer Speicher be
schrieben, die in Form von relationalen Datenbanken
verwendet werden können. Es wird insbesondere ein
Assoziativspeicher dargestellt, der auf individueller
Entities, Mengen und zweistelligen Relationen auf
baut. Für diesen Speicher werden drei verschiedene
Konzepte der Software-Implementation beschrieben,
nämlich ein solches mit Hilfe von Streuspeicherung
(Hashing) und Verwaltung der Konflikthälfte durch
Listen, ein solches mit Hilfe von B- bzw. B*-Bäumen,
und ein solches mit Hilfe von Mikroprogrammierung,
die dazu verwendet wird, einen Rechner mit konventio
neller Hardware um assoziative Fähigkeiten zu erwei
tern. Auch hier erfolgt die Implementation nicht in
der Weise, daß ein Hauptspeicher Clusterindizes für
Attribute einer Relation und eine Mehrzahl von Neben
speichern eine aufgespaltene Relation speichern, der
art, daß eine Mehrzahl von Nebenprozessoren eine Par
allelverarbeitung an einer durch einen Schlüsselwert
eines Clusterindex definierten Gruppe von Tupeln
durchführen kann.
Ausgehend von dem anhand der Fig. 6 bis 9 erläu
terten Stand der Technik ist es die Aufgabe der vor
liegenden Erfindung, eine Datenverarbeitungsvorrich
tung für ein relationales Datenbanksystem zu schaf
fen, mit der zum Speichern und Verarbeiten von in dem
Datenbanksystem enthaltenen Daten, insbesondere einer
Relation (Tabelle) mit unterschiedlichen Datensätzen
(Tupeln) und unterschiedlichen Datenfeldern (Attribu
ten), eine hohe Verarbeitungsgeschwindigkeit erziel
bar ist, wobei eine horizontale Unterteilung der Re
lation mittels Clusterindizes möglich ist.
Diese Aufgabe wird erfindungsgemäß gelöst durch die
im Patentanspruch angegebenen Merkmale.
Die Erfindung betrifft somit eine Datenverarbeitungs
vorrichtung für ein relationales Datenbanksystem,
bestehend aus einem Hauptprozessor, einem mit dem
Hauptprozessor verbundenen Hauptplattenspeicher, der
in Form einer B-Baum-Struktur Clusterindizes für At
tribute oder für eine Kombination von Attributen ei
ner in dem relationalen Datenbanksystem zu verarbei
tenden Relation speichert, einer Mehrzahl von Neben
prozessoren, die von dem Hauptprozessor gesteuert
werden, und einer Mehrzahl von jeweils mit den jewei
ligen Nebenprozessoren verbundenen Nebenplattenspei
chern, die aufgespalten eine Relation des Datenbank
systems speichern, wobei die Relation auf der Grund
lage einer Seite für einen Clusterindex in der Weise
unterteilt ist, daß die Nebenprozessoren parallel
eine Vielzahl von Verarbeitungen an einer Gruppe von
Tupeln, wie sie in ihrem Bereich in Zusammenhang mit
einem gegebenen Schlüsselwert des Clusterindex defi
niert sind, durchführen, wobei, wenn eine Seite voll
ständig mit einer Vielzahl von Tupeln der Relation
gefüllt wird, zur Speicherung der die Clusterindizes
aufweisenden Relation die Seite in einem der Neben
plattenspeicher in zwei Hälften teilbar ist und die
eine Hälfte der so geteilten Seite in demjenigen der
Nebenplattenspeicher speicherbar ist, der gegenwärtig
die kleinste Anzahl von die Tupel der Relation ent
haltenden Seiten aufweist.
Mittels einer derartigen Vorrichtung, die ein Cluster
von Tupel, wie in ihrem in Verbindung mit Schlüssel
werten der Clusterindizes definiert, auf der Basis
von Seiten aufgeteilt in mit einer Mehrzahl von Ne
benverarbeitungseinheiten verbundenen Nebenplatten
speichern speichert, kann eine Verarbeitung an einem
derartigen Cluster von Tupel parallel durchgeführt
werden, wodurch eine hohe Datenverarbeitungsgeschwin
digkeit bewirkt wird.
Mit einer derartigen Vorrichtung, bei der eine Rela
tion selbst mit Clusterindizes horizontal und gleich
mäßig unterteilt werden kann, wobei eine Mehrzahl von
Datenverarbeitungseinheiten gleichzeitig einen Zu
griff zu einer Mehrzahl von Plattenspeichern haben,
kann zusätzlich zu einer hohen Verarbeitungsgeschwin
digkeit unter Inanspruchnahme des Vorteils der Clu
sterindizes eine Wirkung derart erzielt werden, daß
jede Datenverarbeitungseinheit Daten in einem gleich
mäßigen Zeitintervall für die Verarbeitung einer
vollständigen Datensatzsuche einlesen kann, wodurch
das Einlesen von Daten in einem minimalen Zeitraum
ermöglicht wird.
Weiterhin kann, da die Verarbeitung an einem Cluster
von Tupel, wie sie in ihrem Bereich in Verbindung mit
Schlüsselwerten der Clusterindizes definiert sind,
parallel durch eine Mehrzahl von Nebenverarbeitungs
einheiten durchgeführt werden kann, eine vorteilhafte
Wirkung dahingehend erzielt werden, daß die Verarbei
tung an einem Cluster von Tupel, wie sie in ihrem
Bereich definiert sind, parallel und bei einer hohen
Rate durchgeführt werden kann.
Ausführungsbeispiele der Erfindung sind in der Zeich
nung dargestellt und werden in der nachfolgenden Be
schreibung, die die Merkmale der Erfindung offenbar
werden läßt, näher erläutert. In der Zeichnung haben
die gleichen Teile gleiche Bezugszeichen.
Fig. 1 ist eine erläuternde schematische Ansicht,
die den allgemeinen Zustand der Untertei
lung einer Relation mit Clusterindizes mit
tels eines bevorzugten Ausführungsbeispie
les der vorliegenden Erfindung zeigt;
Fig. 2 ist eine erläuternde schematische Ansicht,
die ein Beispiel für das Teilen einer Seite
in einer Relation mittels eines
bevorzugten Ausführungsbeispiels
der vorliegenden Erfindung zeigt,
Fig. 3 ist ein Flußdiagramm, das die Arbeitsweise der
erfindungsgemäßen Datenverarbeitungsvorrichtung mittels
eines bevorzugten Ausführungs
beispiels zeigt,
Fig. 4 ist ein Blockdiagramm einer Daten
verarbeitungsvorrichtung entsprechend
einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung,
Fig. 5 ist eine schematische Ansicht, die
den Zustand einer Unterteilung einer
Relation mit Clusterindizes mittels
eines bevorzugten Ausführungsbeispiels
der vorliegenden Erfindung zeigt,
Fig. 6 ist eine erläuternde schematische
Darstellung, die ein Beispiel einer
typischen Relation in einer relationa
len Datenbank zeigt,
Fig. 7 ist eine schematische Darstellung
eines Beispiels eines Systemaufbaus
bei Anwendung der Erfindung,
Fig. 8 ist eine Blockdarstellung, die einen
allgemeinen Aufbau einer üblichen
Datenverarbeitungseinheit zeigt, und
Fig. 9 ist eine schematische Darstellung, die
eine typische Anordnung zum Speichern
einer Relation mit Clusterindizes bei
einem üblichen Datenverarbeitungssystem
zeigt.
Unter Bezugnahme auf Fig. 1 wird ein typischer
Clusterindex 12 dargestellt.
Jedes der Tupel kann in einer sortierten Reihenfolge
in den Seiten 13a-13e gespeichert gesehen werden,
die aus einer physischen Speichereinheit in
Plattenspeichereinheiten 2a-2d bestehen. In
Fig. 1 ist ein typisches Beispiel einer Speicherung
gezeigt, bei der Clusterindizes Attributen zuge
ordnet sind, die einen Bereich ganzer Zahlen
zwischen 1 und 1000 aufweisen, wobei ein Tupel-
Cluster mit einer kleineren Zahl eines Schlüssel
wertes als 73 beispielsweise in einer Seite 13a
des Plattenspeichers 2a gespeichert ist, während
die Tupel, die Schlüsselwerte von 73 bis 186
haben, dann in der Seite 13b des Plattenspeichers 2b
gespeichert werden. Auf diese Weise kann bei
Spezifizierung eines Schlüsselwertes eines
Tupels von einem Zeiger 14 ein bestimmter Platten
speicher und eine spezifische Seite als zu
einem bestimmten Clusterindex zugehörig ermittelt
werden.
Wenn ein bestimmtes Tupel in einer Clusterindizes
aufweisenden Relation in einer Plattenspeicher
einheit gespeichert wird, wie in dem Flußdia
gramm nach Fig. 3 gezeigt ist, kann auf einen
bestimmten Clusterindex Bezug genommen werden
in Übereinstimmung mit einem Schlüsselwert
eines korrespondierenden Tupels, um einen Platten
speicher und eine zu speichernde Seite zu be
stimmen (Schritt 101), und wenn dieses Tupel in
der so bestimmten Seite gespeichert ist, wird
untersucht, ob die bestimmte Seite gefüllt ist
oder nicht (Schritt 102). Wenn festgestellt wird,
daß die Seite überlaufen würde, wird sie in
zwei geteilt. Eine einer derart geteilten halben
Seite wird in einen Plattenspeicher übertragen,
der gegenwärtig die kleinste Anzahl von ge
speicherten Tupel aufweist (Schritt 103).
Fig. 2 zeigt diese Situation, bei der Tupel
mit einem Schlüsselwert von 1 bis 100 in einer
Seite 3c der Plattenspeichereinheit 2e gespeichert
sind, und wenn dann Tupel mit diesem Schlüsselwert von
1 bis 100 in diese Seite 3c eingespeichert werden
sollen, wird diese Seite in zwei geteilt, da
sie aufgefüllt ist, und Tupel mit Schlüsselwerten
von 1 bis 50 werden in der ursprünglichen
Seite 3c gespeichert, während Tupel mit Schlüssel
werten von 51 bis 100 in einer anderen Seite
3d gespeichert werden. Es sei bemerkt, daß es
ein bestimmter Plattenspeicher 2f ist, der
zum Speichern der Seite 3d ausgewählt wird und
der gegenwärtig die geringste Anzahl von Seiten
bestehend aus Tupel einer Relation aufweist.
Nach Teilen der Seite folgt ein Reorganisations
schritt der Clusterindizes (Schritt 104) und
darauf folgen in Wiederholung die Schritte 101
und folgende. Wenn kein Überlauf der Seiten
in Schritt 102 festgestellt wird, können diese
Tupel in einer bei Schritt 105 festzulegenden
Seite gespeichert werden.
Obwohl eine Erläuterung unter Bezugnahme auf
dieses Ausführungsbeispiel mit einer System
struktur gegeben wurde, die ein die Platten
speichereinheiten 2g-2j mit den Datenver
arbeitungseinheiten 28a-28d verbindendes
Netzwerk 29 aufweist, kann selbstverständlich
jeder Netzwerktyp, wie beispielsweise eines des
Ringtyps oder des Einzelbustyps oder dergleichen,
die zu einem gleichen Ergebnis führen, in der
Praxis angewandt werden.
Fig. 4 zeigt ein Blockdiagramm eines bevorzugten
Ausführungsbeispiels eines Datenverarbeitungs
systems gemäß der Erfindung. Dabei ist eine
Primär- oder Hauptverarbeitungseinheit 1 (im
folgenden "Hauptprozessor" genannt) eine mit dem
Hauptprozessor verbundene Primär- oder Haupt
plattenspeichereinheit 2 (im folgenden "Hauptplatten
einheit" genannt), eine Reihe von Sekundär- oder
Nebendatenverarbeitungseinheiten 3a-3d (im
folgenden "Nebenprozessoren" genannt) und eine
Reihe von mit den Nebenprozessoren verbundenen
Sekundär- oder Nebenplattenspeichereinheiten 4a-4d
(im folgenden "Nebenplatteneinheiten" genannt)
vorgesehen. Ebenfalls gezeigt werden ein gemeinsamer
Speicher 5, zu dem der Hauptprozessor und die
Nebenprozessoren 3a-3d über einen gemeinsamen
Bus 6 Zugriff haben, eine Mehrzahl von lokalen
Speichern 7a-7d, auf die die Nebenprozessoren
3a-3d über lokale Busleitungen 8a-8d zugreifen,
eine Mehrzahl von Unterbrechungs-Signalleitungen
9a-9d, die für die Kommunikation zwischen Haupt-
und Nebenprozessoren 3a-3d über ein Unterbrechungs
signal verwendet werden, und eine Eingangs-/Ausgangs
leitung 10 für die Ein- und Ausgabe von Daten
zwischen einem anderen Computer oder einem externen
Terminal und dem Hauptprozessor. Weiterhin wird
eine mit 11 bezeichnete Relation gezeigt, die in
vorbestimmte Einheiten (z. B. 2 K Byte) (im folgenden
als "Seiten" bezeichnet) eingeteilt sein kann
und aufgeteilt auf der Grundlage dieser Seiten
in den Nebenplatteneinheiten 4a-4d gespeichert werden
kann. Außerdem ist eine Reihe von mit 12 be
zeichneten Clusterindizes für die Relation 11
dargestellt, die in der Hauptplatteneinheit
2 gespeichert ist. Die Clusterindizes weisen
eine B-Baumstruktur auf und die Tupel in der
Relation 11 können in Übereinstimmung mit einem
gegebenen Schlüsselwert zu den Clusterindizes
12 sortiert werden und in eine gewünschte
Anzahl von in die Nebenplattenspeichereinheiten
4a-4d zu speichernden Seiten unterteilt werden.
Fig. 5 ist eine schematische Darstellung,
die beispielhaft die Bereitstellung von Cluster
indizes zu den Attributen (Schlüsseln) zeigt,
die einen Bereich ganzer Zahlen von 1 bis 1000
aufweisen. Die Relation 11 kann in Überein
stimmung mit gegebenen Schlüsselwerten sortiert
und in acht Seiten 13a-13h aufgeteilt werden.
Die Seiten 13a + 13e können in der Nebenplatten
einheit 4a, die Seiten 13b und 13c in der Neben
platteneinheit 4b, die Seiten 13d und 13h in
der Nebenplatteneinheit 4c und die Seiten 13f
und 13g in der Nebenplatteneinheit 4d gespeichert
werden. Beispielsweise können Tupel mit einem
Schlüsselwert kleiner als 99 in Seite 13a
der Nebenplatteneinheit 4a und solche mit
einem Schlüsselwert im Bereich von 99 bis 190
in Seite 13b der Nebenplatteneinheit 4b ge
speichert werden. Ein Zeiger 14a ist mit der
Zahl einer Seite in der Hauptplatteneinheit
versehen, in der ein Zeiger 14b gespeichert ist
und ein Zeiger 14b ist mit der Zahl einer
Nebenplatteneinheit, in der die Relation 11
gespeichert ist und der Zahl einer Seite dieser
Platteneinheit versehen. Wenn mit dieser An
ordnung ein Schlüsselwert eines Tupels spezifiziert
wird, kann eine spezifische Nebenplatteneinheit
und Seite, in der dieses besondere Tupel ge
speichert ist, durch Wegermittlung der Zeiger
14a, 14b zu dem Clusterindex gefunden werden.
Unter Bezugnahme auf Fig. 4 wird die Operation
erläutert, wie ein Cluster von Tupel, die
in ihren Bereichen in Verbindung mit gegebenen
Schlüsselwerten der Clusterindizes definiert
sind, verarbeitet wird. Ein Cluster von in ihrem
Bereich definierten Tupeln ist in eine Vielzahl
von Seiten aufgeteilt und möglichst gleichmäßig
in vier verschiedenen Nebenplattenspeichern
gespeichert. Beispielsweise sei bemerkt, daß
unter Bezugnahme auf Fig. 5 ein Cluster von
Tupel, die Schlüsselwerte zwischen 190 bis 789
aufweisen, in vier Seiten 13c bis 13f aufgeteilt
ist, die jeweils in den Nebenplatteneinheiten
4b, 4c, 4a und 4d gespeichert werden. Wenn eine
Anfrage zur Verarbeitung des Tupelclusters von
einem anderen Computer oder einem externen
Terminal über die Eingangs-/Ausgangsleitung 10
kommt, dann arbeitet der Hauptprozessor 1,
um auf die Zeiger 14a, 14b zu den Clusterindizes
12 Bezug zu nehmen, die Zahlen der Nebenplatten-
Einheiten und der Seiten zu suchen, in denen
der relevante Tupelcluster aufgeteilt gespeichert
ist, in den gemeinsamen Speicher 5 einen Befehl
für jeden der Nebenprozessoren 3a-3d einzu
schreiben, der einen Inhalt der Verarbeitung,
eine Seitenzahl und so weiter umfaßt, über die
Unterbrechungs-Signalleitungen 9a-9d nach
einander jeden der Nebenprozessoren 3a-3d
zu unterbrechen und um jeden der Nebenprozessoren
3a-3d von dem Vorhandensein einer durchzuführenden
Verarbeitung zu informieren. Jeder der Neben
prozessoren 3a-3d arbeitet dann in der Weise,
daß er aus dem gemeinsamen Speicher 5 einen
an sich selbst gerichteten Befehl liest, auf
eine in diesem Befehl enthaltene Seitenzahl
Bezug nimmt und eine relevante Seite aus jeder
der Platteneinheit 4a-4d ausliest. Dieses
Auslesen und Verarbeiten einer Seite aus diesen
Nebenplatteneinheiten 4a-4d kann seitens der
Nebenprozessoren 3a-3d parallel durchgeführt
werden. Nach Beendigung einer derartigen Ver
arbeitung schreibt jeder der Nebenprozessoren
die Verarbeitungsergebnisse in den gemeinsamen
Speicher 5 und unterbricht den Hauptprozessor 1
über die Unterbrechungs-Signalleitungen 9a-9d,
um die Beendigung der Verarbeitung mitzuteilen.
Nachdem alle Nebenprozessoren 3a-3d das Unter
brechungssignal abgegeben haben, liest der
Hauptprozessor 1 alle Verarbeitungsergebnisse
aus dem gemeinsamen Speicher 5 aus und leitet
diese Ergebnisse zu einem anderen Computer oder
einem externen Terminal über die Eingangs-/Aus
gangsleitung 10 weiter.
Anhand der Beschreibung ist ersichtlich, daß die
Aufgabe der Erfindung wirksam gelöst ist und
obwohl die Anzahl der Bauteile wie Nebenprozessor
3a-3d, Nebenplatteneinheit 4a-4d, lokale
Speicher 7a-7d, lokale Busleitungen 8a-8d
und Unterbrechungssignalleitungen 9a-9d gemäß
dem bevorzugten Ausführungsbeispiel der Erfindung
jeweils vier ist, ist es selbstverständlich, daß
auch andere Zahlen vorhanden sein können.
Obwohl zu dem Hauptprozessor 1 und zu jedem
Nebenprozessor 3a-3d eine Hauptplatten
einheit 2 und jeweils eine Nebenplatteneinheit
4a-4d vorgesehen sind, ist es selbstverständlich,
daß auch zwei oder mehrere zugeordnet sein
können.
Claims (2)
- Datenverarbeitungsvorrichtung für ein relationales Datenbanksystem, bestehend aus
- - einem Hauptprozessor (1),
- - einem mit dem Hauptprozessor (1) verbundenen Hauptplattenspeicher (2), der in Form einer B- Baum-Struktur Clusterindizes für Attribute oder für eine Kombination von Attributen einer in dem relationalen Datenbanksystem zu verarbeitenden Relation speichert,
- - einer Mehrzahl von Nebenprozessoren (3a bis 3d), die von dem Hauptprozessor (1) gesteuert werden, und einer Mehrzahl von jeweils mit den jeweili gen Nebenprozessoren (3a bis 3d) verbundenen Nebenplattenspeichern (4a bis 4d), die aufge spalten eine Relation des Datenbanksystems spei chern, wobei die Relation auf der Grundlage ei ner Seite für einen Clusterindex in der Weise unterteilt ist, daß die Nebenprozessoren (3a bis 3d) parallel eine Vielzahl von Verarbeitungen an einer Gruppe von Tupeln, wie sie in ihrem Be reich in Zusammenhang mit einem gegebenen Schlüsselwert des Clusterindex definiert sind, durchführen,
- wobei, wenn eine Seite vollständig mit einer Vielzahl von Tupeln der Relation gefüllt wird, zur Speicherung der die Clusterindizes aufweisenden Relation die Sei te in einem der Nebenplattenspeicher (4a bis 4d) in zwei Hälften teilbar ist und die eine Hälfte der so geteilten Seite in demjenigen der Nebenplattenspei cher (4a bis 4d) speicherbar ist, der gegenwärtig die kleinste Anzahl von die Tupel der Relation enthalten den Seiten aufweist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62155731A JPH0782451B2 (ja) | 1987-06-23 | 1987-06-23 | データベース管理システム |
JP62239371A JPH0760406B2 (ja) | 1987-09-24 | 1987-09-24 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3821551A1 DE3821551A1 (de) | 1989-01-05 |
DE3821551C2 true DE3821551C2 (de) | 1994-04-28 |
Family
ID=26483660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3821551A Expired - Fee Related DE3821551C2 (de) | 1987-06-23 | 1988-06-22 | Datenverarbeitungsvorrichtung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5058002A (de) |
DE (1) | DE3821551C2 (de) |
GB (1) | GB2207264A (de) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5161223A (en) * | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Resumeable batch query for processing time consuming queries in an object oriented database management system |
US5261088A (en) * | 1990-04-26 | 1993-11-09 | International Business Machines Corporation | Managing locality in space reuse in a shadow written B-tree via interior node free space list |
US5440730A (en) * | 1990-08-09 | 1995-08-08 | Bell Communications Research, Inc. | Time index access structure for temporal databases having concurrent multiple versions |
DE69232425T2 (de) * | 1991-07-10 | 2002-10-10 | Hitachi, Ltd. | Sortierverfahren in einer verteilten Datenbank und Zugangsverfahren dazu |
JP2865467B2 (ja) * | 1991-11-22 | 1999-03-08 | 富士写真フイルム株式会社 | 画像データ供給システム |
US5530854A (en) * | 1992-09-25 | 1996-06-25 | At&T Corp | Shared tuple method and system for generating keys to access a database |
US5446881A (en) * | 1992-09-25 | 1995-08-29 | At&T Corp. | Database storage and retrieval method using a declining stage size and repetitive searches |
JP2583010B2 (ja) * | 1993-01-07 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 |
US5440732A (en) * | 1993-02-05 | 1995-08-08 | Digital Equipment Corp., Pat. Law Gr. | Key-range locking with index trees |
US5613105A (en) * | 1993-06-30 | 1997-03-18 | Microsoft Corporation | Efficient storage of objects in a file system |
US5446887A (en) * | 1993-09-17 | 1995-08-29 | Microsoft Corporation | Optimal reorganization of a B-tree |
EP0646882B1 (de) * | 1993-10-04 | 2002-03-20 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum schnellen Zugriff auf Dateneinheiten einer sortierten Liste und Datenbankträger für dieses Verfahren und/oder diese Vorrichtung |
AU681709B2 (en) * | 1993-10-18 | 1997-09-04 | Sony Corporation | Information management method, data recording medium, data recording method, information retrieving method and information retrieving apparatus |
GB2300936B (en) * | 1994-05-09 | 1997-08-20 | Mitsubishi Electric Corp | Data access apparatus and distributed data base system |
JP3085085B2 (ja) * | 1994-05-09 | 2000-09-04 | 三菱電機株式会社 | データアクセス装置及び分散データベースシステム |
JP3699733B2 (ja) * | 1994-08-10 | 2005-09-28 | 株式会社日立製作所 | タプル単位排他制御方式 |
US5530939A (en) * | 1994-09-29 | 1996-06-25 | Bell Communications Research, Inc. | Method and system for broadcasting and querying a database using a multi-function module |
JP3666907B2 (ja) * | 1994-10-20 | 2005-06-29 | 富士通株式会社 | データベース用ファイル格納管理システム |
US5687361A (en) * | 1995-02-13 | 1997-11-11 | Unisys Corporation | System for managing and accessing a dynamically expanding computer database |
US5960194A (en) * | 1995-09-11 | 1999-09-28 | International Business Machines Corporation | Method for generating a multi-tiered index for partitioned data |
US5727197A (en) * | 1995-11-01 | 1998-03-10 | Filetek, Inc. | Method and apparatus for segmenting a database |
US5864855A (en) * | 1996-02-26 | 1999-01-26 | The United States Of America As Represented By The Secretary Of The Army | Parallel document clustering process |
US5826262A (en) * | 1996-03-22 | 1998-10-20 | International Business Machines Corporation | Parallel bottom-up construction of radix trees |
US6157633A (en) * | 1996-06-10 | 2000-12-05 | At&T Wireless Sucs. Inc. | Registration of mobile packet data terminals after disaster |
WO1998001810A2 (en) * | 1996-07-08 | 1998-01-15 | Philips Electronics N.V. | Method for speeding up an iterative search in a list of records residing on a slow background memory |
US6092061A (en) * | 1997-08-15 | 2000-07-18 | International Business Machines Corporation | Data partitioning by co-locating referenced and referencing records |
US6976041B2 (en) * | 2000-09-22 | 2005-12-13 | Fujitsu Limited | Recording medium recorded with program for detecting database operation timing, method of detecting database operation timing, and apparatus for detecting database operation timing |
US6807546B2 (en) * | 2002-08-12 | 2004-10-19 | Sybase, Inc. | Database system with methodology for distributing query optimization effort over large search spaces |
US7941408B2 (en) * | 2003-09-06 | 2011-05-10 | Oracle International Corporation | System, structure, interface, and semantics for implementing row versions: accessing past versions of a data item |
US20070005631A1 (en) * | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Apparatus and method for dynamically determining index split options from monitored database activity |
US7941451B1 (en) * | 2006-08-18 | 2011-05-10 | Unisys Corporation | Dynamic preconditioning of a B+ tree |
US7873672B2 (en) * | 2008-01-24 | 2011-01-18 | Microsoft Corporation | Efficient query processing of DML SQL statements |
US8965921B2 (en) * | 2012-06-06 | 2015-02-24 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4412285A (en) * | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
US4445171A (en) * | 1981-04-01 | 1984-04-24 | Teradata Corporation | Data processing systems and methods |
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4432057A (en) * | 1981-11-27 | 1984-02-14 | International Business Machines Corporation | Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system |
US4611272A (en) * | 1983-02-03 | 1986-09-09 | International Business Machines Corporation | Key-accessed file organization |
US4606002A (en) * | 1983-05-02 | 1986-08-12 | Wang Laboratories, Inc. | B-tree structured data base using sparse array bit maps to store inverted lists |
US4677550A (en) * | 1983-09-30 | 1987-06-30 | Amalgamated Software Of North America, Inc. | Method of compacting and searching a data index |
US4635189A (en) * | 1984-03-01 | 1987-01-06 | Measurex Corporation | Real-time distributed data-base management system |
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 |
US4774657A (en) * | 1986-06-06 | 1988-09-27 | International Business Machines Corporation | Index key range estimator |
US4922417A (en) * | 1986-10-24 | 1990-05-01 | American Telephone And Telegraph Company | Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers |
US4930071A (en) * | 1987-06-19 | 1990-05-29 | Intellicorp, Inc. | Method for integrating a knowledge-based system with an arbitrary database system |
US4930072A (en) * | 1987-08-31 | 1990-05-29 | At&T Bell Laboratories | Method for computing transitive closure |
-
1988
- 1988-06-13 US US07/206,324 patent/US5058002A/en not_active Expired - Fee Related
- 1988-06-22 GB GB08814848A patent/GB2207264A/en not_active Withdrawn
- 1988-06-22 DE DE3821551A patent/DE3821551C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB8814848D0 (en) | 1988-07-27 |
DE3821551A1 (de) | 1989-01-05 |
GB2207264A (en) | 1989-01-25 |
US5058002A (en) | 1991-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3821551C2 (de) | Datenverarbeitungsvorrichtung | |
DE69227948T2 (de) | Verfahren und Gerät um ein dynamisches Lexikon in ein Textinformationsauffindungssystem zu integrieren | |
DE69232425T2 (de) | Sortierverfahren in einer verteilten Datenbank und Zugangsverfahren dazu | |
DE68929132T2 (de) | Datenbankverwaltungssystem und Verfahren hierfür | |
DE69107506T2 (de) | Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen. | |
DE3854688T2 (de) | Expertensystem und Verfahren zum Betrieb eines Expertensystems. | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE2856133C2 (de) | Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher | |
DE69030945T2 (de) | Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung | |
DE2415900A1 (de) | Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen | |
DE2324731A1 (de) | Festzustandsspeicher fuer mehrdimensionalen zugriff | |
DE602005002062T2 (de) | Optimierung der Sperrgranularität mittels Bereichssperren | |
EP3520014B1 (de) | Verfahren und system zum anonymisieren von datenbeständen | |
DE1499182A1 (de) | Elektrische Datenverarbeitungsanlage | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
DE3232675A1 (de) | Verfahren zur steuerung des datenzugriffs in einem rechner und daten-kontrollsystem zur durchfuehrung des verfahrens | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE202015104128U1 (de) | Datenzugriffssystem | |
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 | |
DE3518818C2 (de) | ||
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE202014005278U1 (de) | Einbetten von archivierten Daten in eine Datenquelle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 15/40 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8339 | Ceased/non-payment of the annual fee |