Was sind die praktischen Gründe für das Erlernen der relationalen Algebra?

7

Das Erlernen der Formulierung abfrageähnlicher Ausdrücke in der relationalen Algebra ist ein traditioneller Bestandteil vieler, vielleicht der meisten Kurse "Einführung in Datenbanken".

Dies wird normalerweise durch die Behauptung gerechtfertigt, dass die relationale Algebra die mathematische Grundlage für relationale Datenbanken im Allgemeinen und für SQL im Besonderen ist, mit der Implikation, dass es wichtig ist, sie zu kennen.

Es scheint mir jedoch, dass das Formulieren von Ausdrücken in der relationalen Algebra im Grunde dasselbe ist wie das Formulieren von Abfragen in SQL, und dass beide Aufgaben den gleichen Denkprozessen zugrunde liegen. Insbesondere kann ich nicht wirklich erkennen, dass das Wissen um relationale Algebra das Schreiben von SQL-Abfragen erleichtert oder umgekehrt. Ich frage mich daher, ob das Lehren der relationalen Algebra nur eine Art historischer Kater ist oder ob es tatsächlich spezifische Vorteile hat, es zu wissen.

Meine Frage lautet also: "Gibt es spezifische praktische Vorteile für die Kenntnis der relationalen Algebra, die von ausreichender Bedeutung sind, damit sich das Unterrichten lohnt?"

Glauben Sie als Datenbankadministrator, dass relationale Algebra für Ihre Karriere wichtig ist oder war?

Eine Art Unterfrage ist, ob die Zeit, die für das Erlernen der relationalen Algebra aufgewendet wird, durch das Erlernen von mehr SQL effektiver genutzt werden kann.

Gordon Royle
quelle

Antworten:

9

Als Codd das relationale Modell definierte, definierte er eine Reihe von Operatoren, die auf Beziehungen angewendet werden konnten. Bei der Angabe einer relationalen Algebra, ähnlich wie bei der Angabe einer ganzzahligen Algebra, können wir Symbole anstelle von Beziehungen verwenden, um Abfragen zu lösen. Diese Operatoren unterliegen denselben algebraischen Eigenschaften wie ganzzahlige Algebraoperatoren (+, -, *, /). Infolgedessen können wir bestimmte Gesetze annehmen, die immer für eine Beziehung gelten, jede Beziehung, die diese Operation durchläuft. Zum Beispiel wissen wir in der Ganzzahlalgebra, dass Addition und Multiplikation assoziativ sind , indem wir die Gruppierung von Operanden ändern und nicht das Ergebnis ändern können:

a + (b + c) = (a + b) + c

In ähnlicher Weise wissen wir in der relationalen Algebra, dass die natürliche Verknüpfung assoziativ ist, und wissen daher, dass die Verknüpfung A der Verknüpfung B in beliebiger Reihenfolge ausgeführt werden kann. Diese Eigenschaften und Gesetze ermöglichen es, Abfrageformulierungen neu zu schreiben und garantiert die gleichen Ergebnisse zu erzielen. Das Buch Angewandte Mathematik für Datenbankprofis enthält wichtige Informationen zu den verschiedenen Umschreibregeln, mit denen Sie dieselbe Abfrage auf unterschiedliche Weise präzise formulieren können. In einer perfekten Welt hätte jede Formulierung, die das gleiche Ergebnis liefert, die gleiche Leistung. Ein moderner Optimierer ist zwar eine erstaunliche Software, aber nicht perfekt. Wenn Sie also eine Abfrage auf eine Weise formuliert haben und eine schlechte Leistung erzielen, haben Sie die Fähigkeit, sie auf eine andere Weise zu formulieren und zu kennenes hat die gleiche Semantik. Ein weiterer praktischer Vorteil besteht in der Angabe von Datenbankeinschränkungen. Wenn Sie die relationale Algebra verstehen, können Sie zunächst den einfachsten Weg zur Formulierung der Einschränkung bestimmen. Zweitens können Sie durch die Formulierung der Einschränkung in der formalen Logik sofort jede Unklarheit in der Absicht der Experten für Geschäftsfächer klären, die die Geschäftsregel in losem Englisch formuliert haben, und Fehler vermeiden.

Es war Leonardo da Vinci, der sagte:

Wer das Üben ohne Theorie liebt, ist wie der Seemann, der ohne Ruder und Kompass an Bord geht und nie weiß, wo er werfen darf.

Auf die gleiche Weise kann ein Datenpraktiker, der die Grundlagen der relationalen Theorie nicht versteht, die Technologie nicht so vollständig beherrschen wie mit diesem Verständnis. Einige großartige Referenzen zur relationalen Algebra sind die Einführung in die relationale Algebra von SIRA_PRISE und die SQL- und relationale Theorie von CJ Date . Das Buch von Date zeigt, wie praktisch es ist, relationale Algebra zu verstehen, damit Sie viel genauere SQL-Abfragen schreiben können. SQL hat viele Macken und Fallstricke, und ein fundiertes Verständnis der Funktionsweise im Vergleich zu den ursprünglichen relationalen Algebra-Operatoren hilft wirklich dabei, die Fallstricke zu erkennen und zu vermeiden.

Todd Everett
quelle
Vielen Dank für Ihre nachdenkliche Antwort. Wäre es dann fair zu sagen, dass die Beherrschung der relationalen Algebra für ein tiefes Verständnis oder die Implementierung der Abfrageoptimierung und der komplexen Abfrageformulierung wichtiger ist als für die gelegentliche / grundlegende Verwendung von SQL?
Gordon Royle
1
Ja, dem würde ich zustimmen. Ich denke jedoch, dass jede Einführung in den Datenbankkurs relationale Algebra vermitteln muss, damit die Schüler die Grundlagen verstehen, die zu SQL geführt haben. Das Unterrichten von nur SQL wäre wie eine Einführung in die Klasse des Industriedesigns, in der nur ein CAD / CAM-Tool unterrichtet wird, und die Schüler nicht zuerst mit den Grundprinzipien des Industriedesigns vertraut gemacht werden.
Todd Everett
@LearningFast & ToddEverett RA in seiner einfachsten Form ist viel einfacher und unkomplizierter zu argumentieren (einschließlich Entwerfen, Abfragen und Einschränken) (auch intern wie Optimieren) als SQL, eine sehr schlecht gestaltete Sprache. Mit der richtigen Wahl von 'Beziehung' und Operatoren auf ihnen ist es offensichtlich, dass RA-Ausdrücke 1: 1 mit Prädikatenlogikausdrücken sind, dh mit ihnen austauschbar sind. Prädikatenlogik ist die Sprache der Präzision von Wissenschaft (einschließlich Informatik), Ingenieurwesen (einschließlich Softwareentwicklung) und Mathematik. (Siehe meine RA dba.stackexchange & stackoverflow Antworten.)
philipxy
Etwas spät zur Party - vor vielen Jahren habe ich einen OU-Kurs für relationale Datenbanken abgeschlossen, der sich mit relationaler Algebra befasste. Dieses Verständnis und das Wissen, was die SQL in jeder Phase aus den Tabellen abrufen würde, ermöglichten es mir, den größten Teil meiner Amateur-SQL neu zu schreiben, und in einigen Fällen stieg die Geschwindigkeit von 20 Minuten auf einige Sekunden. Aber dann hat mich mein Arbeitgeber für ein paar Jahre von der Datenbankarbeit
befreit
1
@ DarrenBartrup-Cook Passiert den Besten von uns. Das menschliche Gedächtnis ist eine Hündin.
NoName
4

Ich bin der festen Überzeugung, dass Sie als DBA erfolgreich sein können, ohne einen formalen Kurs in relationaler Algebra zu belegen, genauso wie Sie ein erfolgreicher Programmierer sein können, ohne einen formalen Kurs in diskreter Mathematik zu belegen. Die Notwendigkeit , einen Kurs in relationaler Algebra zu belegen, hängt sehr stark von Ihrem Karriereweg / Ihren Zielen ab. Siehe diese Frage zum Programmieren von StackExchange. Das OP wollte einen Master in Algorithmen usw. bekommen. Ich würde sagen, es ist ziemlich offensichtlich, dass er diskrete Mathematik lernen und beherrschen muss. Wenn Ihr Ziel darin besteht, eine Datenbank-Engine zu schreiben oder Teil des Kernteams zu sein, das an einer wichtigen relationalen Datenbank-Engine arbeitet, würde ich dringend empfehlen, relationale Algebra, Statistiken und dergleichen zu beherrschen.

Abgesehen davon helfen Ihnen die Erkenntnisse, die Sie beim Studium der relationalen Algebra gewonnen haben, höchstwahrscheinlich zu verstehen, warum sich Abfragen so verhalten, wie sie sind. Dies ist für die Fehlerbehebung hilfreich, wenn nichts anderes. Das Erforschen und Studieren der formalen Studien zur relationalen Logik wird Ihnen auch auf andere Weise helfen.

Zum Beispiel habe ich nicht viel formales Wissen in der relationalen Theorie, aber ich kann eine anständige Abfrage zusammen hacken und ein anständiges allgemeines Gespür dafür haben, wie man gute Lösungen entwirft. Davon abgesehen habe ich Probleme, wirklich einige hervorragende Antworten von Benutzern wie MDCCL zu erhalten, weil ich der Notation und / oder den Konzepten nicht wirklich vollständig folgen kann. Ich weiß nicht, ob MDCCL eine formelle Ausbildung hat oder nicht, aber ich bin der Meinung, dass eine stärkere theoretische Grundlage mir die Möglichkeit geben würde, auf MDCCL-Niveau zu spielen.

Dies ist nur ein Beispiel, das den tatsächlichen Wert der relationalen Algebra usw. zeigt. Sie muss nicht unbedingt direkt auf SQL angewendet werden, sondern Sie können das Wissen auf einer höheren Ebene verdauen.

MDCCL Ich hoffe, es ist in Ordnung, wenn ich Sie in dieser Antwort anrufe. Wenn Sie in diesem Beitrag nicht erwähnt werden möchten, lassen Sie es mich wissen und ich werde Sie bearbeiten.

Erik
quelle
Vielen Dank für Ihre Antwort. Ich glaube auch, dass es möglich ist, ein anständiger DBA zu sein, ohne die Theorie der relationalen Algebra zu kennen. Deshalb war ich daran interessiert, die Motivation für den Unterricht zu untersuchen. Zwischen den beiden Antworten bin ich viel klarer als zuvor (aber ich kann nicht zwei Antworten gleichzeitig akzeptieren).
Gordon Royle