DE3821551A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- 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
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
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.
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)
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)
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 |
-
1988
- 1988-06-13 US US07/206,324 patent/US5058002A/en not_active Expired - Fee Related
- 1988-06-22 DE DE3821551A patent/DE3821551C2/de not_active Expired - Fee Related
- 1988-06-22 GB GB08814848A patent/GB2207264A/en not_active Withdrawn
Non-Patent Citations (3)
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 |