Zuallererst empfehle ich die wissenschaftliche Arbeit, in der Dr. Edgar Frank Codd 1970 den relationalen Rahmen für die Öffentlichkeit veröffentlichte, dh ein relationales Datenmodell für große gemeinsame Datenbanken . Dort stellt Dr. Codd in Abschnitt 1.1 „Einführung“ selbst fest, dass:
Dieses Papier befasst sich mit der Anwendung der Elementarbeziehungstheorie auf Systeme, die den gemeinsamen Zugriff auf große Banken formatierter Daten ermöglichen.
© Vereinigung für Computermaschinen. Mitteilungen der ACM , Band 13, Ausgabe 6 (S. 377-387), Juni 1970.
Also, ja, die Begriffe Relation und (daher) Relational stammen aus einem mathematischen Hintergrund. Dr. Codd - der neben seiner akademischen und wissenschaftlichen Qualifikation über 20 Jahre Erfahrung in der Datenverarbeitung und -verarbeitung verfügt - stellte sich die enormen Vorteile der Anwendung der Relation (natürlich ein abstraktes Konstrukt) im Bereich der Datenverwaltung vor .
Ich bin kein Mathematiker, aber im Grunde genommen ist eine Beziehung eine Assoziation zwischen Mengen , wobei eine Menge eine Sammlung von Elementen ist ( diese externe Ressource gibt eine Definition der mathematischen Beziehung , die dazu beitragen kann, sie aus einer anderen Perspektive zu verstehen). Bei der Arbeit mit einem SQL-Datenbankverwaltungssystem (der Kürze halber DBMS) ist eine bekannte Annäherung einer Beziehung eine Tabelle . In diesem Fall erfolgt die Zuordnung zwischen den Typen ihrer Spalten . Bei SQL-Plattformen, die DOMAIN-Unterstützung bieten (z. B. Firebird und PostgreSQL ), tritt die Zuordnung offensichtlich zwischen demfür die Spalten der betreffenden Tabelle festgelegte Domänen ; In den folgenden Abschnitten finden Sie wichtige Details.
In dieser Hinsicht werde ich noch einmal Dr. Codd zitieren, der in Abschnitt 1.3, „Eine relationale Sicht der Daten“, behauptet:
Der Begriff Relation wird hier in seinem akzeptierten mathematischen Sinn verwendet. Bei gegebenen Mengen S 1 , S 2 , ⋯, S n (nicht notwendigerweise verschieden) ist R eine Beziehung zu diesen n Mengen, wenn es sich um eine Menge von n- Tupeln handelt, von denen jedes sein erstes Element von S 1 hat , sein zweites Element von S 2 und so weiter. 1 Wir werden beziehen S j als j - ten Domäne von R . Wie oben definiert, R gesagt haben Grad n. Beziehungen vom Grad 1 werden oft genannt unären , Grad 2 binärer , Grad 3 ternärer und den Grad n n-ary .
1 Genauer gesagt ist R eine Teilmenge des kartesischen Produkts S 1 × S 2 × S 3 ≤ × S n .
© Vereinigung für Computermaschinen. Mitteilungen der ACM , Band 13, Ausgabe 6 (S. 377-387), Juni 1970.
Und ich stimme anderen Antworten darin zu, dass es sehr wichtig ist, darauf hinzuweisen, dass Dr. Codd einige Anpassungen an der mathematischen Relation vorgenommen hat, um das Beste aus der Datenverwaltung herauszuholen. Diese werden in dem zuvor erwähnten Artikel und erläutert in seiner umfangreichen Bibliographie .
Beziehung und Beziehung
Eine Situation , lohnt sich der Erziehung ist , dass, wenn sie mit diesen Themen beschäftigen, es Verwirrung wegen der Ähnlichkeiten entstehen können , die die alltägliche (nicht-mathematischen, nicht-technische) sind in Bezug auf Definitionen der Begriffe Beziehung und Beziehung -Welche, als nicht Englisch als Muttersprache finde ich besonders verständlich -.
Die Entity-Relationship-Sicht und das relationale Modell
Ein weiterer Faktor, von dem ich denke, dass er ebenso Verwirrung stiften kann (und der eng mit den technischen Konnotationen der beiden oben genannten Begriffe zusammenhängt), ist, dass ein Student oder Praktiker beim Erlernen des Entwurfs von Datenbanken in der Regel zuerst in die von Dr Peter Pin-Shan Chen in der Entity-Relationship- Sicht von Daten (1976 veröffentlicht), die zwei verschiedene Implementierungen (dh die Entität und die Beziehung ) vorschlägt , um ein konzeptuelles Schema abzugrenzen , und dann erst nach der Definition des Schemas stabil ist, wird der Student oder Praktiker mit relationalen Begriffen und Instrumenten (z. B. der Beziehung ) bekannt gemacht, wenn er das erklärtlogischer Aufbau der dazugehörigen Datenbank. Innerhalb des konzeptuellen Bezugsrahmens enthält die Beziehung Konnotationen, die dem alltäglichen Sinn des Wortes viel näher sind.
Dann trägt dieser Umstand vielleicht auch zum Beziehungs- und Beziehungsproblem bei - aber die Abfolge, zuerst das konzeptionelle Schema zu definieren und anschließend das entsprechende logische Design zu deklarieren, ist natürlich angemessen, wie ich in den folgenden Abschnitten ausführlicher erläutern werde.
Antworten auf jede Ihrer Unterfragen
Ich bin der Meinung, dass es wirklich relevant ist, diese drei Unterfragen aufgenommen zu haben, da sie einen breiteren Kontext für die Stelle schaffen, so dass sie nicht übersehen werden sollten. Auf diese Weise können die Teilfragen , abgesehen von der ausschließlichen Auseinandersetzung mit der Frage, warum die Begriffe Relation und Relational verwendet werden (was sicherlich sehr wichtig ist und der Titel des Beitrags ist, aber nicht der gesamte Beitrag), dazu beitragen, den Anwendungsbereich von besser zu verstehen die Beziehung und das relationale Modell, wenn man in ein ganzes Informationsmanagementprojekt involviert ist (ziemlich relevant, da dies eine Site über Datenbankadministration ist) und daher auf verschiedenen Abstraktionsebenen arbeitet. Auf diese Weise werde ich meine Meinung zu den folgenden Einzelheiten teilen.
Unterfrage Nr. 1
Warum wird zum Beispiel eine Person als "Beziehung" angesehen? Im Englischen ist eine Beziehung ein Substantiv, das beschreibt, wie zwei Entitäten verbunden sind. Es bezieht sich nicht auf die Entitäten selbst. Im Kontext relationaler Datenbanken bezieht sich "Beziehung" auf die Entitäten selbst. Warum?
Konzeptionelle Ebene
In einem gegebenen Geschäftsumfeld Person kann ein betrachten Entitätstyp je nachdem , wie die Menschen , die dort arbeiten (Business - Experten und Datenbank - Designer) conceptualize es. Ja, in diesem Geschäftsumfeld gibt es möglicherweise unterschiedliche interessante Eigenschaften in Bezug auf den Entitätstyp " Person ", z. B. Name , Geburtsdatum , Geschlecht usw.
Darüber hinaus kann die Person kann Entitätstyp bestimmte halten Beziehung (oder Vereinigung oder Verbindung ) Typen mit sich selbst oder anderen Entität; Beispiel: Person kann einem Entitätstyp mit dem Namen UserProfile zugeordnet sein , der wiederum seine eigenen interessanten Eigenschaften hat, z. B. Benutzername und Passwort .
Aber (a) die Entitätstypen, (b) ihre entsprechenden Eigenschaften, (c) die Beziehungstypen zwischen Entitätstypen und (d) die Beziehungen zwischen den Eigenschaften selbst sind Begriffe, die zu dem bestimmten Geschäftsumfeld „gehören“, in dem sie sich befinden von Bedeutung erachtet. Hierbei handelt es sich um Geräte, die von Datenbankdesignern verwendet werden, die eng mit Geschäftsexperten zusammenarbeiten , um in der Entwurfsphase ein kontextspezifisches konzeptionelles Schema zu definieren .
Auf konzeptioneller Ebene arbeiten wir also im Wesentlichen mit der Struktur der Ideen, die im realen Interessenssegment entstehen, dh (1) Prototypen von Dingen und (2) Prototypen von Beziehungen zwischen Prototypen von Dingen , mit denen wir nicht arbeiten (3) Beziehungen - Einsatz dieses letzten Begriffs im Sinne des relationalen Datenrahmens -.
Logische Ebene
Nach Person wurde als Entitätstyp auf der konzeptionellen Ebene genau abgegrenzte, und wenn man will , eine relationale Datenbank implementieren , dass die Bedeutung vermittelt Person und alle damit verbundenen Konzepte, dann können die Fakten über Entitäten dieser Art aufgrund verwaltet werden einer mathematischen Beziehung auf der logischen Ebene , und nutzen Sie die naturwissenschaftlichen Operationen, die an diesem abstrakten Konstrukt durchgeführt werden können (dh definieren, beschränken und manipulieren).
Ja, man kann eine gewisse Beziehung nennt Person , wenn die logische Anordnung einer Datenbank definiert, sondern dass das „reale Welt“ -Konzept von nicht verwandelt Person in eine Beziehung, nähert man sich als solche wegen der Vorteile , die erhalten werden , wenn Informationen verwalten B. relationale Algebraoperationen anwenden, um neue Beziehungen abzuleiten (und man leitet daher „neue“ Informationen ab). Diese Vorteile werden deutlicher, wenn man berücksichtigt, dass die Entitäten eines bestimmten Typs eine Menge bilden und die Werte einer bestimmten Eigenschaft auch eine Menge bilden.
Und ja, wie in den vorhergehenden Absätzen und auch in anderen Antworten erwähnt, ist einer der wichtigsten Aspekte einer Beziehung die Verbindung , die zwischen ihren Domänen besteht - diese werden normalerweise verwendet, um die Eigenschaften von Entitäts- oder Zuordnungstypen darzustellen, die Teil von sind ein konzeptionelles Schema -. Angenommen, wir haben die folgende (ternäre) Beziehung deklariert:
Salary (PersonNumber, EffectiveDate, Amount)
… Und nehmen wir an, dass in der fraglichen Geschäftsumgebung das Tupel (i) für eine bestimmte Entität steht , dh eine Instanz eines Entitätstyps aus dem anwendbaren konzeptionellen Schema, und (ii) dessen SQL-Gegenstück a ist Reihe -
... würde die Bedeutung tragen
- "Das Gehalt, das an die Person gezahlt wird, die von PersonNumber
x
am EffectiveDate identifiziert wurde, y
entspricht dem Betrag von z
" .
Dementsprechend ist - um die Dinge näherungsweise zu beschreiben - die Verbindung zwischen den drei Domänen von höchster Wichtigkeit, sie hängen alle zusammen (und ja, eine unäre Beziehung würde nur eine Domäne betreffen). Die Verbindung zwischen allen Werten einer bestimmten Domäne ist ebenfalls sehr wichtig, da sie eine Menge eines genauen Typs darstellen . Außerdem muss der Inhalt jedes Tupels der Salary
Beziehung in die Struktur der oben dargestellten Behauptung passen .
Konzeptionelle Ebene Beziehungen und logische Ebene Beziehungen
Wie gezeigt, habe ich mich jetzt mit der Datenbankverwaltung auf zwei verschiedenen Abstraktionsebenen befasst, nämlich der konzeptionellen und der logischen - und es gibt noch eine niedrigere Ebene, die als physische Ebene bezeichnet wird. etc.-.
Also, in Übereinstimmung mit den Begriffen erklärte vor, auf der logischen Ebene arbeitet man ausschließlich mit (a) mathematischen Beziehungen, wobei (b) die konzeptionellen Beziehungen oder Verbände vertreten durch (c) die Werte , die in den Tupeln solcher mathematischen Beziehungen, und diese Werte werden normalerweise über FOREIGN KEY-Beschränkungen abgegrenzt, damit sie die anwendbaren Beziehungen genau wiedergeben können.
Und ja, assoziative Entitäten, dh Instanzen von Beziehungstypen mit einem Kardinalitätsverhältnis von vielen zu vielen (M: N), können über die Tupel einer einzelnen mathematischen Beziehung vermittelt werden - mit den entsprechenden Bedingungen, die in geeigneter Weise für deklariert wurden Kurs-.
Unterfrage Nr. 2
Ich verstehe, dass das relationale Modell dem hierarchischen Modell und dem Netzwerkmodell folgte. Aber in diesen Modellen haben die Entitäten auch Beziehungen zueinander. Warum also dieses Modell das relationale Modell nennen? Gibt es einen genaueren Ausdruck? Oder sollten wir vielleicht sagen, dass alle drei Modelle relationale Modelle sind, aber die hierarchischen und Netzwerkmodelle spezifische Typen relationaler Modelle sind?
Netzwerk- und hierarchische DBMS gingen ihrer formalen theoretischen Unterstützung voraus
Es ist angebracht, darauf hinzuweisen, dass die theoretische Unterstützung im Zusammenhang mit den hierarchischen Ansätzen und den Netzwerkansätzen in der Tat im Hinblick auf zuvor vorhandene DBMS geschaffen wurde, um unter anderem die Solidität von (1) diesen Arten zu testen und festzustellen von Software und (2) die verknüpften Datenverwaltungspraktiken - aus meiner Sicht ein verkehrtes Phänomen -.
Im Vergleich zum relationalen Rahmen unvollständig
Davon abgesehen gibt es zwar hierarchische und Netzwerk-DBMS, die vor dem relationalen Modell erstellt wurden, und selbst wenn Dr. Codd jeden dieser Ansätze als „Modell“ bezeichnet, ist keiner so definiert wie der relationale Rahmen. Das relationale Paradigma liefert wissenschaftliche Konstrukte für die (i) Definition, (ii) Einschränkung und (iii) Manipulation von Daten, und den hierarchischen und Netzwerkansätzen mangelt es an vollständiger theoretischer Unterstützung, um alle drei Arten von Konstrukten abzudecken, die zuvor erwähnt wurden.
Netzwerk- und hierarchische Funktionen
Wie bereits erwähnt, handelt es sich bei den Entitäts- und Beziehungstypen um Geräte auf konzeptioneller Ebene. Sie gehören nicht zu den hierarchischen oder Netzwerkansätzen, von denen jeder bestimmte Mechanismen zur Darstellung der folgenden Aspekte bietet:
Das Netzwerkparadigma beinhaltet zwei Geräte zur Datendarstellung, dh Knoten und Bögen (und dieses Merkmal impliziert natürlich zwei verschiedene Arten von Datenmanipulationsoperationen), die im Gegensatz zu dem relationalen Modell (gemäß dem Informationsprinzip ) nur ein Konstrukt erfordern (die Beziehung) verdeutlicht die unnötige Komplexität, die das Arbeiten in einem Netzwerk mit sich bringt. Da beispielsweise auf zwei Darstellungsinstrumente zurückgegriffen wird, erlegt der Netzwerkansatz eine unpraktische Abfrageverzerrung auf , die die Datenmanipulation behindert.
Die hierarchische Ansicht schlägt ihrerseits vor, die Daten durch (physische!) Dateien darzustellen, die aus Datensätzen bestehen (die wiederum aus Feldern bestehen ), die in einer dreifachen Anordnung angeordnet sind. dh ein übergeordneter Datensatz , der über Zeiger mit möglicherweise vielen untergeordneten Gegenstücken verkettet ist , wodurch ein physischer Zugriffspfad in Bezug auf die Datenmanipulation erzeugt wird. Dieser Ansatz ist auch ungünstig, weil er eine Verflechtung zwischen konzeptionellen und physikalischen Aspekten darstellt, so dass die Änderungen in den physikalischen Speicheranordnungen eine Reorganisation der Datenstrukturen erfordern, was wiederum Änderungen in den betreffenden Datenmanipulationsoperationen erforderlich macht.
Wie gezeigt, schreiben die hierarchischen Ansichten und die Netzwerkansichten den zu verwaltenden Daten ihre Konstrukte vor, während das relationale Modell vorschlägt, die Daten elegant in ihrer natürlichen Struktur mit Hilfe von Mengen zugehöriger Fakten zu verwalten (von denen n nachfolgende Arten von Mengen nicht erwartet werden) die Entwurfsphase kann abgeleitet werden und so weiter!).
Das relationale Modell hat keine Untermodelle
Und ganz wichtig ist, dass weder die hierarchische noch die Netzwerkansicht bestimmte Arten von relationalen Modellen sind. Es handelt sich lediglich um andere Paradigmen, denen jemand folgen kann, um (a) DBMS zu erstellen und (b) Datenbanken zu erstellen und Netzwerkansätze gelten seit Jahrzehnten als obsolet.
Unterfrage Nr. 3
Was ist, wenn wir eigenständige Entitäten haben, die sich nicht aufeinander beziehen? Sagen Sie, Person, Tür und Baum. Ist der Begriff "Relation (al)" noch gültig?
Ja, es ist perfekt anwendbar, wenn man (1) Informationen über diese Entitätstypen durch angepasste mathematische Beziehungen verwaltet und (2) die anwendbaren relationalen Operationen auf der logischen Ebene in einer bestimmten Datenbank ausführt, die mit Unterstützung eines bestimmten relationalen DBMS verwaltet wird .
Es spielt keine Rolle, ob die Entitätstypen auf konzeptioneller Ebene keine Beziehungstypen mit anderen Entitätstypen aufweisen (und es ist erwähnenswert, dass ein Entitätstyp eine Beziehung mit einem Verhältnis von 1 zu 0 zu 1 oder zu vielen Kardinalitäten aufweisen kann mit sich selbst), und somit vermittelt oder erzwingt man keine Beziehung zwischen den Werten der Tupel der betrachteten Beziehungen.