it-swarm.com.de

Worauf bezieht sich der Begriff "Projektion" in einer SQL-Abfrage (oder Ansichtsdefinition)?

In Oracle-Dokument The Query Optimizer habe ich unter View Merging die folgenden Informationen gefunden

Die Optimierung für das Zusammenführen von Ansichten gilt für Ansichten, die nur Auswahlen, Projektionen und Verknüpfungen enthalten. Das heißt, zusammenführbare Ansichten enthalten keine Mengenoperatoren, Aggregatfunktionen, DISTINCT, GROUP BY, CONNECT BY usw. (Hervorhebung von mir)

Ich kann jedoch nur raten, worauf sich eine solche Projektion tatsächlich bezieht.

15

In der relationalen Algebra bedeutet Projektion das Sammeln einer Teilmenge von Spalten zur Verwendung in Operationen, d. H. Eine Projektion ist die Liste der ausgewählten Spalten.

In einem Abfrageoptimierungsschritt manifestiert sich die Projektion als Puffer- oder Spoolbereich einer Beschreibung, die eine Teilmenge der Spalten aus der zugrunde liegenden Tabelle oder dem zugrunde liegenden Operator enthält, oder als logische Ansicht basierend auf den Spalten, die von nachfolgenden Operationen verwendet werden.

In einer Ansicht entspricht eine Projektion der Liste der Spalten, die in der der Ansicht zugrunde liegenden Abfrage ausgewählt wurden.

Projektion bezieht sich auf die Teilmenge der Menge aller Spalten in einer Tabelle, die zurückgegeben werden soll. Sie kann von 0 ** bis zum kompletten Satz reichen.

Eine Tabelle enthält zwei "Mengen", die den beiden Dimensionen einer Tabelle entsprechen. Jede Tabelle enthält eine Reihe von Spalten sowie eine Reihe von ) Zeilen . Jeder einzelne Wert in einer Tabelle befindet sich an einem bestimmten Schnittpunkt dieser beiden * Mengen **. Ihr Wert wird jedoch nicht gefunden, wenn Sie zu einer Adresse wie T6 "gehen", wie Sie es mit Excel tun würden.

Relationalen Tabellen ist keine Reihenfolge inhärent. Das ist wichtig zu merken. Um Ihren einzelnen Wert abzurufen, wählen Sie stattdessen eine Teilmenge der Spalten (in diesem Fall eine) und eine Teilmenge der Zeilen (in diesem Fall eine) aus. Um eine Teilmenge einer Spalte aus allen verfügbaren auszuwählen, müssen Sie nur den Namen sowie den Tabellennamen kennen. Der Spaltenname ist in seiner Tabelle eindeutig.

Sobald Sie die Spalte ausgewählt haben, in der sich Ihr Wert befindet, müssen Sie die bestimmte Zeile auswählen, in der er sich befindet. Zeilen haben jedoch keine Namen wie Spalten. Wir geben eine Zeile so an. . . Nun, wir nicht genau. . . Wir geben etwas an, das wir über den Wert wissen, den wir suchen. Sie müssen etwas wissen, das (buchstäblich) mit dem Wert zusammenhängt, den Sie suchen. Wenn Sie genügend verwandte Informationen angeben können, können Sie möglicherweise die Anzahl der zurückgegebenen Zeilen auf die gesuchte reduzieren.

Stellen Sie sich vor, ein Student hätte seinen Rucksack verloren. Nehmen wir an, ein Mann hat es verloren. Er ruft Fundbüro an und die anwesende Frau sagt: "Ja, wir haben ein paar Dutzend Rucksäcke. Können Sie das beschreiben?" Sie sagen "Nun, es ist blau?". Darauf antwortet sie: "Fragst du mich oder sagst du es mir?" Sie sagen: "Mal sehen, ähm, oh ja! Es enthielt mein Mathe-1010-Buch." "Gut, jetzt bist du auf vier." Dann erinnerst du dich, dass du deine Freundin Lucy in 15 Minuten treffen sollst, und das löste eine weitere Erinnerung aus - an die Zeit, als du in Mathe 1010 gelangweilt warst und schrieb - in echten kleinen Buchstaben auf der Unterseite des Rucksacks: "Ich liebe Lucy ". Sie dreht sie um und sagt ganz sicher: "Der dritte sagt 'Ich liebe Lucy' darauf. Komm und nimm es auf, Ricky ."

Projektion könnte mit der Aussage verglichen werden, was Sie verloren haben - einen Rucksack. Auswahl kann mit der Beschreibung seiner Attribute verglichen werden: Es ist blau, enthält ein Mathe-1010-Buch und enthält "Ich liebe Lucy" "auf der Unterseite geschrieben.

Sie machen dasselbe mit SQL. Erstens, welche Art von Informationen Sie sehen möchten. Zweitens Kriterien, die beschreiben, welche oder welche Sie sehen möchten. Diese werden als Prädikate oder Wahrheitsaussagen bezeichnet. Sie gelten für ein oder mehrere Mitglieder des Sets. Wenn dies nicht der Fall ist, geben sie keine Werte zurück.

* Die SQL-Implementierungen einiger Anbieter bieten Mittel, um diese Regeln zu brechen, z. B. verschachtelte Tabellen in Oracle. Zweidimensionale Standardtabellen sind jedoch immer noch die vorherrschende Form.

** C.J. Date schrieb einen sehr interessanten Artikel mit dem Titel "A Table With No Columns". Ich fand es sehr lesenswert, da ich die meisten seiner vielen "Schriften" -Artikel schreibe. Ich kann sie nur empfehlen!

13
user6612