DE3821551C2 - Datenverarbeitungsvorrichtung - Google Patents

Datenverarbeitungsvorrichtung

Info

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
Application number
DE3821551A
Other languages
English (en)
Other versions
DE3821551A1 (de
Inventor
Shunichiro Nakamura
Harumi Minemura
Tatsuo Minohara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP62155731A external-priority patent/JPH0782451B2/ja
Priority claimed from JP62239371A external-priority patent/JPH0760406B2/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE3821551A1 publication Critical patent/DE3821551A1/de
Application granted granted Critical
Publication of DE3821551C2 publication Critical patent/DE3821551C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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)
  • Software Systems (AREA)
  • Computing 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)

  1. 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,
  2. 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.
DE3821551A 1987-06-23 1988-06-22 Datenverarbeitungsvorrichtung Expired - Fee Related DE3821551C2 (de)

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)

* Cited by examiner, † Cited by third party
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
EP0522488B1 (de) * 1991-07-10 2002-02-20 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
DE69429651T2 (de) * 1993-10-18 2002-09-19 Sony Corp Informationsverwaltungsverfahren, datenaufzeichnungsträger und -verfahren, informationswiederauffindungsverfahren und -gerät
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
US8032496B2 (en) * 2003-09-06 2011-10-04 Oracle International Corporation Method and mechanism for row versioning
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
DE3821551A1 (de) 1989-01-05
US5058002A (en) 1991-10-15
GB2207264A (en) 1989-01-25
GB8814848D0 (en) 1988-07-27

Similar Documents

Publication Publication Date Title
DE3821551C2 (de) Datenverarbeitungsvorrichtung
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2415900A1 (de) Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen
DE2324731A1 (de) Festzustandsspeicher fuer mehrdimensionalen zugriff
DE19627472A1 (de) Datenbanksystem
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE3224034A1 (de) Mehrprozessorensystem
EP0010198A2 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
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
DE602005002062T2 (de) Optimierung der Sperrgranularität mittels Bereichssperren
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE202015104128U1 (de) Datenzugriffssystem
DE19534819B4 (de) Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE3518818C2 (de)
DE2718551B2 (de)
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE19715723A1 (de) Array-Verfahren
DE102019106724A1 (de) Effiziente Datenverarbeitung
DE3822324C2 (de) Vorrichtung zum Zerlegen des Prioritätswertes
EP0012207B1 (de) Speicherhierarchie mit Ladungsverschiebungsspeicher
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE3534080C2 (de)
DE2261586B2 (de) Speichereinrichtung

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