DE3821551A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE3821551A1
DE3821551A1 DE3821551A DE3821551A DE3821551A1 DE 3821551 A1 DE3821551 A1 DE 3821551A1 DE 3821551 A DE3821551 A DE 3821551A DE 3821551 A DE3821551 A DE 3821551A DE 3821551 A1 DE3821551 A1 DE 3821551A1
Authority
DE
Germany
Prior art keywords
relation
cluster
disk storage
tuples
page
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.)
Granted
Application number
DE3821551A
Other languages
English (en)
Other versions
DE3821551C2 (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

Description

Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem und insbesondere auf ein Verfahren zum Speichern von Datenbanken und zum Bearbeiten von Dateizugriffen für die Verwendung in einem relationalen Datenbankver­ waltungssystem (Datenbank-Managementsystem DBMS).
Vor weiteren Ausführungen kann es für ein besseres Verständnis der Erfindung helfen, einen allge­ meinen Ausblick auf den Stand der Technik der relationalen Datenbankverwaltungssysteme zu geben. 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 be­ zeichnet, 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 Datenbankverwaltungssystems gezeigt, das in einer Anlage anwendbar ist, bei der eine Vielzahl von Datenverarbeitungseinheiten 28 a-28 d über ein Netzwerk 29 mit einer Vielzahl von Scheiben­ speichereinheiten 2 g-2 j verbunden ist, wobei eine Relation aufgeteilt in der Vielzahl von Scheibenspeichereinheiten 2 g-2 j derart ge­ speichert wird, daß die Vielzahl von Datenver­ arbeitungseinheiten 28 a-28 d parallelen Zugriff zu jeder der in der Relation enthaltenen Daten hat. In diesem Schema wird es horizontale Unter­ teilung 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 genannt) aufweist, in der Praxis möglich, die Relation in der Weise zu speichern, daß jede der Scheibenspeicherein­ heiten gleichmäßig viele Tupel aufweisen kann, wenn die zu speichernden Tupel in einen Scheiben­ speicher gelegt werden, der gegenwärtig die kleinste Anzahl von gespeicherten Tupel hat.
Mit einer derartig gleich verteilten Relation kann die Vielzahl von Datenverarbeitungseinheiten 28 a-28 d Daten von jedem der Scheibenspeicher 2 g-2 j in einem weiten gleichmäßigen Zeitintervall einlesen und mit dieser Anordnung tritt nicht ein derartiger Fall auf, daß eine bestimmte Datenver­ arbeitungseinheit noch nicht das Lesen von Daten beendet hat, während andere schon Daten während eines Datenbearbeitungsvorganges eingelesen haben, wodurch folglich eine erhöhte Datenverarbeitungs­ geschwindigkeit möglich wird.
Dies ist eine typische Konstruktion der horizon­ talen Unterteilung in einem relationalen Daten­ bankverwaltungssystem und dies betrifft ein Unterteilungssystem, 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 Verarbeiten mit hoher Zugriffsgeschwindigkeit zu bestimmten Tupel in einer Relation in der Praxis nicht unter Ausnutzung der Clusterindizes erzielt werden kann.
Als nächstes wird Bezug genommen auf Fig. 8, die schematisch eine typische übliche Daten­ verarbeitungseinheit zeigt. In dieser Figur ist ein elektronischer Computer oder Hauptrahmen 15, eine Scheibenspeichereinheit 16, die mit dem Hauptrahmen verbunden ist, eine Relation 11, die in einer mit dem Scheibenspeicher 16 verbundenen Datenbank enthalten ist, und ein Clusterindex 12, der der Relation 11 zugeordnet ist, dargestellt. Dieser Clusterindex 12 ist beispielsweise 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", über­ setzt von Toshiyasu Kunii, veröffentlicht von Nippon Computer Kyokai; S. 71, Zeilen 15 bis 79, Zeile 17) offenbart ist. Obwohl kein spezieller Bezug auf den Clusterindex in dieser Literatur genommen wird, ist offensichtlich das, was als "B-Baum" bezeichnet ist, der Clusterindex. Im allgemeinen wird eine Anordnung derart vorge­ nommen, daß Tupel in einer Relation 11 in Übereinstimmung 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) zu gegeben 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, wobei sie in acht Seiten 13 a-13 h aufgeteilt ist und in dem Scheibenspeicher 16 gespeichert ist. Ein Zeiger 14 a bestimmt eine Seitenzahl mit einem darin gespeicherten Zeiger 14 b und der Zeiger 14 b bezeichnet die Seitenzahlen 13 a-13 h 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 14 a, 14 b bestimmt werden.
Entsprechend der oben beschriebenen relationalen Datenbank können alle umfaßten Daten in Form einer Tabelle verwaltet werden. Diese Tabelle wird als Relation bezeichnet. Die jeweiligen Daten in den jeweiligen Reihen einer Relation werden als Tupel bezeichnet. Jeder Posten (Spalte) einer Relation nennt sich Attribut. Entsprechend dem Beispiel nach Fig. 6 werden eine Relation mit dem Bezugszeichen 11, Tupel mit den Bezugs­ zeichen 17 a-17 j und Attribute mit den Bezugs­ zeichen 18 a-18 d gezeigt. In einer relationalen 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 folgenden 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 18 d "Alter" mit dem Tupel "Hauptabteilung" unter dem Attribut 18 b des "Namens der Abteilung" erzielt wird. In diesem Beispiel ist das Attribut 18 b "Name der Abteilung" ein Schlüssel.
Wenn bei einer üblichen Datenbankverarbeitungs­ einheit gemäß Fig. 8 eine Verarbeitung an einem Cluster von Tupel, wie sie im Sinne ihres Bereichs in Zusammenhang mit dem Wert des Schlüssels für den Clusterindex definiert sind, durchgeführt wird, bezieht sich der Hauptrahmen 15 auf die Zeiger 14 a, 14 b der Clusterindizes 12, dann prüft er, auf welcher Seite der relevante Tupelcluster gespeichert ist und liest die Tupel zusammen seitenweise aus der Scheibenspeichereinheit 16 zum Verarbeiten aus. Da der Cluster von Tupel, wie sie in ihrem Bereich in Übereinstimmung mit dem Schlüsselwert der Cluster­ indizes definiert sind, seitenweise zusammengesetzt und in der Scheibenspeichereinheit 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 vor­ handen sind.
Beispielsweise ist es in Fig. 9 aufgrund eines Clusters von Tupel, wie sie mit dem Schlüsselwert im Bereich von 99 bis 190 allein in der Seite 13 b vorhanden sind, ausreichend, nur die Seite 13 b 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 er­ zielt werden kann, ist es schwierig, die Datenver­ arbeitung nach dem Stand der Technik, die von einem einzigen Hauptrahmen 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 Daten­ verarbeitung aufgetaucht ist.
Unter Berücksichtigung dieser Nachteile eines relationalen Datenbankverwaltungssystems nach dem Stand der Technik ist es wünschenswert, eine wirksame Lösung zu finden, die die den Anlagen nach dem Stand der Technik eigenen unvermeidbaren Probleme überwindet.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Verbesserung in einem relationalen Daten­ bankverwaltungssystem vorzusehen, die eine ge­ wünschte horizontale Unterteilung einer Daten­ bank gestattet und wobei eine gleichmäßige Unter­ teilung einer Relation mit Clusterindizes er­ möglicht wird und die eine schnellere Verarbeitung an einem Cluster von Tupel vornimmt, wie sie in ihrem Bereich mit den Schlüsselwerten der Clusterindizes in einer relationalen Datenbank definiert sind.
Gemäß der vorliegenden Erfindung wird eine Ver­ besserung in einem horizontalen Unterteilungssystem einer Datenbank erreicht, wobei, wenn eine Relation mit Clusterindizes, die eine B-Baumstruktur auf­ weisen, in eine Mehrzahl von Plattenspeicher­ einheiten gespeichert wird und wenn eine physische Seite in der Plattenspeichereinheit mit einer Vielzahl von Tupel in der Relation gefüllt ist, wird die Seite in zwei Seiten derart geteilt, daß eine der so geteilten Seiten in eine Platten­ speichereinheit gespeichert wird, die gegen­ wärtig die kleinste Anzahl von Seiten aufweist, die die Tupel für die Relation enthält, wodurch eine gleichmäßige horizontale Unterteilung er­ zielt wird. Wenn bei dieser Anordnung der hori­ zontalen Unterteilung einer Datenbank gemäß der Erfindung eine Vielzahl von Tupel in einer Relation mit Clusterindizes in einer Platten­ speichereinheit gespeichert wird und wenn eine die Tupel speichernde physische Seite aufgefüllt ist, kann die Seite in zwei geteilt werden und danach werden diese Tupel in einer der so ge­ teilten halben Seite gespeichert, wobei die andere halbe Seite einer Plattenspeichereinheit zugeführt wird, die gegenwärtig die geringste Anzahl von Seiten aufweist, wobei ein gleichmäßiger Status der Unterteilung erhalten bleibt, bei dem eine im allgemeinen gleiche Anzahl von Tupel automatisch in dem Plattenspeicher gespeichert wird.
Weiterhin können mit der Anordnung der Datenver­ arbeitungseinheit entsprechend der vorliegenden Erfindung die Clusterindizes einer Relation in einem Hauptplattenspeicher eines Hauptver­ arbeitungssystems enthalten sein und eine auf der Grundlage einer Seite verteilten Relation kann aufgeteilt in einem Nebenspeicher gespeichert werden, der operativ mit einer Mehrzahl von Neben­ verarbeitungseinheiten verbunden ist, wobei die Verarbeitung an einem Cluster von Tupel, wie sie in ihrem Bereich in Verbindung mit Schlüsselwerten der Clusterindizes definiert sind, parallel und bei einer hohen Geschwindigkeit seitens der Neben­ verarbeitungseinheiten durchgeführt werden kann.
Aufgrund der vorliegenden Erfindung kann mittels einer derartigen Anordnung, die ein Cluster von Tupel, wie in ihrem Bereich in Verbindung mit Schlüsselwerten der Clusterindizes definiert, auf der Basis von Seiten aufgeteilt, in mit einer Mehrzahl von Nebenverarbeitungseinheiten ver­ bundenen Nebenplattenspeichern speichert, eine Verarbeitung an einem derartigen Cluster von Tupel parallel durchgeführt werden, wodurch eine hohe Datenverarbeitungsgeschwindigkeit bewirkt wird.
Wie schon oben erwähnt, kann mit einer derartigen vorteilhaften Anordnung gemäß der Erfindung, bei der eine Relation selbst mit Clusterindizes horizontal und gleichmäßig unterteilt werden kann, wobei eine Mehrzahl von Datenverarbeitungseinheiten gleichzeitig einen Zugriff zu einer Mehrzahl von Plattenspeichern haben, zusätzlich zu einer hohen Verarbeitungsgeschwindigkeit unter Inanspruchnahme des Vorteils der Clusterindizes eine Wirkung derart erzielt werden, daß jede Datenverarbeitungseinheit Daten in einem gleichmäßigen Zeitintervall für die Verarbeitung einer vollständigen Datensatz­ suche einlesen kann, wodurch das Einlesen von Daten in einem minimalen Zeitraum ermöglicht wird.
Weiterhin kann mittels der Vorteile entsprechend der vorliegenden Erfindung derart, daß die Verar­ beitung an einem Cluster von Tupel, wie in ihrem Bereich in Verbindung mit Schlüsselwerten der Clusterindizes definiert sind, parallel durch eine Mehrzahl von Nebenverarbeitungseinheiten durchgeführt werden kann, eine vorteilhafte Wirkung dahingehend erzielt werden, daß die Verarbeitung 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 Zeichnung dargestellt und werden in der nach­ folgenden Beschreibung, die die Merkmale der Erfindung offenbar werden läßt, näher erläutert. Bei der Zeichnung haben die gleichen Teile gleiche Bezugszeichen.
Fig. 1 ist eine erläuternde schematische Ansicht, die den allgemeinen Zustand der Unterteilung einer Relation mit Clusterindizes mittels eines bevor­ zugten Ausführungsbeispiels 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 das erfindungsgemäße Verfahren mittels eines bevorzugten Ausführungs­ beispiels zeigt,
Fig. 4 ist ein Blockdiagramm einer Daten­ verarbeitungseinheit 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 13 a-13 e gespeichert gesehen werden, die aus einer physischen Speichereinheit in Plattenspeichereinheiten 2 a-2 d 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 13 a des Plattenspeichers 2 a gespeichert ist, während die Tupel, die Schlüsselwerte von 73 bis 186 haben, dann in der Seite 13 b des Plattenspeichers 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 3 c der Plattenspeichereinheit 2 e gespeichert sind, und wenn dann Tupel mit diesem Schlüsselwert von 1 bis 100 in diese Seite 3 c 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 3 c gespeichert, während Tupel mit Schlüssel­ werten von 51 bis 100 in einer anderen Seite 3 d gespeichert werden. Es sei bemerkt, daß es ein bestimmter Plattenspeicher 2 f ist, der zum Speichern der Seite 3 d 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 2 g-2 j mit den Datenver­ arbeitungseinheiten 28 a-28 d 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 3 a-3 d (im folgenden "Nebenprozessoren" genannt) und eine Reihe von mit den Nebenprozessoren verbundenden Sekundär- oder Nebenplattenspeichereinheiten 4 a-4 d (im folgenden "Nebenplatteneinheiten" genannt) vorgesehen. Ebenfalls gezeigt werden ein gemeinsamer Speicher 5, zu dem der Hauptprozessor und die Nebenprozessoren 3 a-3 d über einen gemeinsamen Bus 6 Zugriff haben, eine Mehrzahl von lokalen Speichern 7 a-7 d, auf die die Nebenprozessoren 3 a-3 d über lokale Busleitungen 8 a-8 d zugreifen, eine Mehrzahl von Unterbrechungs-Signalleitungen 9 a-9 d, die für die Kommunikation zwischen Haupt- und Nebenprozessoren 3 a-3 d ü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 4 a-4 d 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 4 a-4 d 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 13 a-13 h aufgeteilt werden. Die Seiten 13 a-13 e können in der Nebenplatten­ einheit 4 a, die Seiten 13 b und 13 c in der Neben­ platteneinheit 4 b, die Seiten 13 d und 13 h in der Nebenplatteneinheit 4 c und die Seiten 13 f und 13 g in der Nebenplatteneinheit 4 d gespeichert werden. Beispielsweise können Tupel mit einem Schlüsselwert kleiner als 99 in Seite 13 a der Nebenplatteneinheit 4 a und solche mit einem Schlüsselwert im Bereich von 99 bis 190 in Seite 13 b der Nebenplatteneinheit 4 b ge­ speichert werden. Ein Zeiger 14 a ist mit der Zahl einer Seite in der Hauptplatteneinheit versehen, in der ein Zeiger 14 b gespeichert ist und ein Zeiger 14 b 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 14 a, 14 b 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 13 c bis 13 f aufgeteilt ist, die jeweils in den Nebenplatteneinheiten 4 b, 4 c, 4 a und 4 d 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 14 a, 14 b 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 3 a-3 d einzu­ schreiben, der einen Inhalt der Verarbeitung, eine Seitenzahl und so weiter umfaßt, über die Unterbrechungs-Signalleitungen 9 a-9 d nach­ einander jeden der Nebenprozessoren 3 a-3 d zu unterbrechen und um jeden der Nebenprozessoren 3 a-3 d von dem Vorhandensein einer durchzuführenden Verarbeitung zu informieren. Jeder der Neben­ prozessoren 3 a-3 d 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 4 a-4 d ausliest. Dieses Auslesen und Verarbeiten einer Seite aus diesen Nebenplatteneinheiten 4 a-4 d kann seitens der Nebenprozessoren 3 a-3 d 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 9 a-9 d, um die Beendigung der Verarbeitung mitzuteilen. Nachdem alle Nebenprozessoren 3 a-3 d 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 3 a-3 d, Nebenplatteneinheit 4 a-4 d, lokale Speicher 7 a-7 d, lokale Busleitungen 8 a-8 d und Unterbrechungssignalleitungen 9 a-9 d 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 3 a-3 d eine Hauptplatten­ einheit 2 und jeweils eine Nebenplatteneinheit 4 a-4 d vorgesehen sind, ist es selbstverständlich, daß auch zwei oder mehrere zugeordnet sein können.

Claims (2)

1. Verfahren zum Speichern einer in einer Datenbank enthaltenen Relation in eine Mehrzahl von Plattenspeichereinheiten durch horizontale Unterteilung der Relation auf der Grundlage von Tupel zur Verwendung in einem relationalen Datenbankverwaltungs­ system, dadurch gekennzeichnet, daß, wenn bei Speicherung der Clusterindizes aufweisenden Relation in die Mehrzahl von Plattenspeichereinheiten eine physische Seite in einer Plattenspeichereinheit vollständig mit einer Vielzahl von Tupel der Relation gefüllt wird, dann wird die Seite in zwei geteilt, wobei die eine Hälfte der so ge­ teilten Seite in einer Plattenspeichereinheit gespeichert wird, die gegenwärtig die kleinste Anzahl von die Tupel der Relation enthaltenden Seiten aufweist.
2. Datenverarbeitungsvorrichtung mit einem Hauptprozessor, mindestens einem mit dem Hauptprozessor verbundenen Hauptplatten­ speicher, einer Mehrzahl von Nebenprozessoren, die von dem Hauptprozessor gesteuert werden, und einer Mehrzahl von operativ mit dem jeweiligen Nebenprozessor verbundenen Neben­ plattenspeichern, dadurch gekennzeichnet, daß der mindestens eine Hauptplattenspeicher in Form einer B-Baum-Struktur Clusterindizes für Attribute oder eine Kombination von Attributen einer in einer relationalen Datenbankverarbeitung zu verarbeitende Relation speichert, und daß die Mehrzahl von Nebenplattenspeicher aufgespalten eine Relation einer Datenbank speichert, die auf der Grundlage einer Seite für einen Cluster­ index in der Weise unterteilt ist, daß die Mehrzahl von Nebenprozessoren parallel eine Vielzahl von Verarbeitungen an einem Cluster von Tupel, wie sie in ihrem Bereich in Zusammenhang mit einem gegebenen Schlüssel­ wert des Clusterindex definiert sind, durchführen.
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 true DE3821551A1 (de) 1989-01-05
DE3821551C2 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
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 富士写真フイルム株式会社 画像データ供給システム
US5446881A (en) * 1992-09-25 1995-08-29 At&T Corp. Database storage and retrieval method using a declining stage size and repetitive searches
US5530854A (en) * 1992-09-25 1996-06-25 At&T Corp Shared tuple method and system for generating keys to access a database
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
CN1117321A (zh) * 1993-10-18 1996-02-21 索尼公司 信息管理方法、数据记录媒体、数据记录方法、信息检索方法和信息检索装置
JP3085085B2 (ja) * 1994-05-09 2000-09-04 三菱電機株式会社 データアクセス装置及び分散データベースシステム
GB2300937B (en) * 1994-05-09 1997-08-20 Mitsubishi Electric Corp Data access apparatus and distributed data base system
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
JPH11513160A (ja) * 1996-07-08 1999-11-09 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 反復探索実行方法
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
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

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DE-Z.: Elektronik 17, 1984, S. 39-44 *
DE-Z.: Elektronische Rechenanlagen, 23. Jg., 1981, H. 2, S. 61 bis 71 *
W.K. Gilo: Rechnerarchitektur, Springer-Verlag Berlin-Heidelberg-New York, 1981 *

Also Published As

Publication number Publication date
GB8814848D0 (en) 1988-07-27
DE3821551C2 (de) 1994-04-28
GB2207264A (en) 1989-01-25
US5058002A (en) 1991-10-15

Similar Documents

Publication Publication Date Title
DE3821551A1 (de) Datenverarbeitungssystem
EP0910829B1 (de) Datenbanksystem
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE3232675A1 (de) Verfahren zur steuerung des datenzugriffs in einem rechner und daten-kontrollsystem zur durchfuehrung des verfahrens
DE60118973T2 (de) Verfahren zum abfragen einer struktur komprimierter daten
DE1499182A1 (de) Elektrische Datenverarbeitungsanlage
DE2415900A1 (de) Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen
DE602005002062T2 (de) Optimierung der Sperrgranularität mittels Bereichssperren
DE19515020A1 (de) Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
DE2547035A1 (de) Datenverarbeitungseinrichtung
DE3518818C2 (de)
DE19534819A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE1171650B (de) Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung
DE19715723A1 (de) Array-Verfahren
EP0965090B1 (de) Datenbanksystem und verfahren zum betrieb eines datenbanksystems
DE10063512B4 (de) Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank
DE19538448A1 (de) Datenbankmanagementsystem sowie Datenübertragungsverfahren
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
EP0012207A1 (de) Speicherhierarchie mit Ladungsverschiebungsspeicher
EP0548398A1 (de) Verfahren zur Verwaltung von Programmen und Daten sowie Computersystem zur Durchführung des Verfahrens
DE2041171A1 (de) Anordnung zur Speicherung von Daten
EP2037375B1 (de) Verfahren zum Betreiben von Datenbanken
DE2451984C2 (de) Datenverarbeitungsanlage

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