Saturday, March 3, 2018

Textual description of firstImageUrl

Relationale Datenbank - Wikipedia


A relationale Datenbank ist eine digitale Datenbank, die auf dem relationalen Datenmodell basiert, wie von EF Codd 1970 vorgeschlagen. [1] Ein Softwaresystem, das zur Verwaltung relationaler Datenbanken verwendet wird, ist ein relationales Datenbankverwaltungssystem ( RDBMS). Praktisch alle relationalen Datenbanksysteme verwenden SQL (Structured Query Language) zur Abfrage und Pflege der Datenbank. [2]

Relationales Modell [ edit ]

Dieses Modell organisiert Daten in einer oder mehreren Tabellen (oder "Beziehungen") von Spalten und Zeilen, wobei jeder Zeile ein eindeutiger Schlüssel zugeordnet ist. Zeilen werden auch als Datensätze oder Tupel bezeichnet. [3] Spalten werden auch als Attribute bezeichnet. Im Allgemeinen stellt jede Tabelle / Relation einen "Entitätstyp" dar (z. B. Kunde oder Produkt). Die Zeilen repräsentieren Instanzen dieses Entitätstyps (wie "Lee" oder "Chair") und die Spalten, die Werte repräsentieren, die dieser Instanz zugeordnet sind (wie Adresse oder Preis).

Jede Zeile in einer Tabelle hat einen eigenen eindeutigen Schlüssel. Zeilen in einer Tabelle können mit Zeilen in anderen Tabellen verknüpft werden, indem eine Spalte für den eindeutigen Schlüssel der verknüpften Zeile hinzugefügt wird (solche Spalten werden als Fremdschlüssel bezeichnet). Codd zeigte, dass Datenbeziehungen beliebiger Komplexität durch eine einfache Menge von Konzepten dargestellt werden können. [ Zitat benötigt ]

Ein Teil dieser Verarbeitung beinhaltet die konsequente Auswahl oder Änderung eines und nur eines Zeile in einer Tabelle. Daher haben die meisten physischen Implementierungen einen eindeutigen Primärschlüssel (PK) für jede Zeile in einer Tabelle. Wenn eine neue Zeile in die Tabelle geschrieben wird, wird ein neuer eindeutiger Wert für den Primärschlüssel generiert. Dies ist der Schlüssel, den das System hauptsächlich für den Zugriff auf die Tabelle verwendet. Die Systemleistung ist für PKs optimiert. Andere, natürlichere Schlüssel können auch als alternative Schlüssel (AK) identifiziert und definiert werden. Häufig werden mehrere Spalten benötigt, um eine AK zu bilden (dies ist ein Grund, warum normalerweise eine einzelne Ganzzahlspalte zum PK gemacht wird). Sowohl PKs als auch AKs können eine Zeile innerhalb einer Tabelle eindeutig identifizieren. Zusätzliche Technologie kann angewendet werden, um eine weltweit eindeutige ID, eine weltweit eindeutige Kennung, sicherzustellen, wenn breitere Systemanforderungen bestehen.

Die Primärschlüssel innerhalb einer Datenbank werden verwendet, um die Beziehungen zwischen den Tabellen zu definieren. Wenn eine PK zu einer anderen Tabelle migriert, wird sie zu einem Fremdschlüssel in der anderen Tabelle. Wenn jede Zelle nur einen Wert enthalten kann und die PK in eine reguläre Entitätstabelle migriert, kann dieses Entwurfsmuster entweder eine Eins-zu-Eins-Beziehung oder eine Eins-zu-Viele-Beziehung darstellen. Die meisten relationalen Datenbankdesigns lösen viele-zu-viele-Beziehungen auf, indem sie eine zusätzliche Tabelle erstellen, die die PKs der beiden anderen Entitätstabellen enthält. Die Beziehung wird zu einer Entität. Die Auflösungstabelle wird dann entsprechend benannt und die beiden FKs werden zu einer PK zusammengefasst. Die Migration von PKs zu anderen Tabellen ist der zweite Hauptgrund, warum vom System zugewiesene Ganzzahlen normalerweise als PKs verwendet werden. Es gibt normalerweise weder Effizienz noch Klarheit bei der Migration einer Reihe anderer Spaltenarten.

Beziehungen [ edit ]

Beziehungen sind eine logische Verbindung zwischen verschiedenen Tabellen, die auf der Grundlage der Interaktion zwischen diesen Tabellen erstellt werden.

Transaktionen [ edit ]

Damit ein Datenbankverwaltungssystem (DBMS) effizient und genau arbeiten kann, muss es ACID-Transaktionen verwenden. Gespeicherte Prozeduren edit ]

Die meisten [ dubious diskutieren der Programmierung innerhalb eines RDBMS wird unter Verwendung von gespeicherten Prozeduren (SPs) durchgeführt. Oft können Verfahren verwendet werden, um die innerhalb und außerhalb eines Systems übertragene Informationsmenge stark zu reduzieren. Zur Erhöhung der Sicherheit kann der Systementwurf nur den gespeicherten Prozeduren und nicht direkt den Tabellen Zugriff gewähren. Grundlegende gespeicherte Prozeduren enthalten die erforderliche Logik, um neue Daten einzufügen und vorhandene Daten zu aktualisieren. Komplexere Prozeduren können geschrieben werden, um zusätzliche Regeln und Logik in Bezug auf die Verarbeitung oder Auswahl der Daten zu implementieren.

Terminologie [ edit ]

Terminologie für relationale Datenbanken

Die relationale Datenbank wurde erstmals im Juni 1970 von Edgar Codd, San Jose Research Laboratory von IBM, definiert. [1] Codd's Die Ansicht, was als RDBMS qualifiziert ist, ist in den 12 Regeln von Codd zusammengefasst. Eine relationale Datenbank ist zum vorherrschenden Datenbanktyp geworden. Neben dem relationalen Modell sind das hierarchische Datenbankmodell und das Netzwerkmodell weitere Modelle.

Die folgende Tabelle fasst einige der wichtigsten Begriffe der relationalen Datenbank und den entsprechenden SQL-Begriff zusammen:

SQL-Begriff Relationaler Datenbankbegriff Beschreibung
Row Tuple oder record Ein Datensatz, der einen einzelnen Artikel darstellt
Spalte Attribut oder Feld Ein etikettiertes Element eines Tupels, z. "Adresse" oder "Geburtsdatum"
Tabelle Relation oder Basisrelvar Eine Gruppe von Tupeln, die die gleichen Eigenschaften haben; eine Reihe von Spalten und Zeilen
Anzeigen oder Ergebnismenge Abgeleitete Relvar Beliebiger Satz von Tupeln; einen Datenbericht aus dem RDBMS als Antwort auf eine Abfrage

Relationen oder Tabellen [ edit ]

Eine Relation wird als eine Menge von Tupeln definiert, die dieselben Attribute haben. Ein Tupel repräsentiert normalerweise ein Objekt und Informationen zu diesem Objekt. Objekte sind typischerweise physikalische Objekte oder Konzepte. Eine Relation wird normalerweise als eine Tabelle beschrieben, die in Zeilen und Spalten organisiert ist. Alle Daten, auf die ein Attribut verweist, befinden sich in derselben Domäne und entsprechen denselben Einschränkungen.

Das relationale Modell gibt an, dass die Tupel einer Beziehung keine bestimmte Reihenfolge haben und die Tupel wiederum keine Reihenfolge für die Attribute auferlegen. Anwendungen greifen auf Daten zu, indem sie Abfragen angeben, die Operationen wie verwenden, zum Auswählen von Tupeln auswählen, -Projekt zum Identifizieren von Attributen, und zum Verknüpfen von Beziehungen. Beziehungen können mithilfe der -Einfügung delete und update -Operatoren geändert werden. Neue Tupel können explizite Werte liefern oder von einer Abfrage abgeleitet werden. In ähnlicher Weise identifizieren Abfragen Tupel zum Aktualisieren oder Löschen.

Tupel sind per Definition einzigartig. Wenn das Tupel einen Kandidaten- oder Primärschlüssel enthält, ist es offensichtlich eindeutig. Es muss jedoch kein Primärschlüssel definiert werden, damit eine Zeile oder ein Datensatz ein Tupel ist. Die Definition eines Tupels erfordert, dass es eindeutig ist, es muss jedoch kein Primärschlüssel definiert werden. Da ein Tupel eindeutig ist, bilden seine Attribute per Definition einen Superkey.

Basis und abgeleitete Beziehungen [ edit ]

In einer relationalen Datenbank werden alle Daten gespeichert und über Beziehungen abgerufen. Relationen, die Daten speichern, werden als "Basisrelationen" und in Implementierungen als "Tabellen" bezeichnet. Andere Beziehungen speichern keine Daten, sondern werden durch Anwendung relationaler Operationen auf andere Beziehungen berechnet. Diese Beziehungen werden manchmal als "abgeleitete Beziehungen" bezeichnet. In Implementierungen werden diese "Ansichten" oder "Abfragen" genannt. Abgeleitete Beziehungen sind insofern zweckmäßig, als sie als eine einzige Beziehung fungieren, obwohl sie Informationen aus mehreren Beziehungen beziehen können. Abgeleitete Beziehungen können auch als Abstraktionsebene verwendet werden.

Domäne [ edit ]

Eine Domäne beschreibt die Menge möglicher Werte für ein bestimmtes Attribut und kann als Einschränkung für den Wert des Attributs betrachtet werden. Mathematisch bedeutet das Anhängen einer Domäne an ein Attribut, dass jeder Wert für das Attribut ein Element der angegebenen Gruppe sein muss. Die Zeichenkette "ABC" ist beispielsweise nicht im Ganzzahlbereich, sondern der Ganzzahlwert 123 . Ein anderes Beispiel für eine Domäne beschreibt die möglichen Werte für das Feld "CoinFace" als ("Heads", "Tails"). Das Feld "CoinFace" akzeptiert daher keine Eingabewerte wie (0,1) oder (H, T).

Einschränkungen [ edit ]

Einschränkungen ermöglichen es, die Domäne eines Attributs weiter einzuschränken. Eine Einschränkung kann beispielsweise ein gegebenes ganzzahliges Attribut auf Werte zwischen 1 und 10 einschränken. Einschränkungen stellen eine Methode zum Implementieren von Geschäftsregeln in der Datenbank dar und unterstützen die nachfolgende Datennutzung in der Anwendungsebene. SQL implementiert die Einschränkungsfunktionalität in Form von Prüfeinschränkungen. Einschränkungen schränken die Daten ein, die in Beziehungen gespeichert werden können. Diese werden normalerweise mit Ausdrücken definiert, die zu einem booleschen Wert führen, der angibt, ob die Daten die Einschränkung erfüllen. Einschränkungen können für einzelne Attribute gelten, für ein Tupel (beschränken Kombinationen von Attributen) oder für eine ganze Beziehung. Da jedem Attribut eine Domäne zugeordnet ist, gibt es Einschränkungen ( Domäneneinschränkungen ). Die zwei Hauptregeln für das relationale Modell sind bekannt als Entitätsintegrität und referentielle Integrität .

Primärschlüssel [ edit ]

Ein Primärschlüssel spezifiziert eindeutig ein Tupel innerhalb einer Tabelle. Damit ein Attribut ein guter Primärschlüssel ist, darf es nicht wiederholt werden. Während natürliche Attribute (Attribute, die zur Beschreibung der eingegebenen Daten verwendet werden) manchmal gute Primärschlüssel sind, werden stattdessen häufig Ersatzschlüssel verwendet. Ein Ersatzschlüssel ist ein künstliches Attribut, das einem Objekt zugewiesen wird, um es eindeutig zu identifizieren (z. B. können in einer Tabelle mit Informationen zu Schülern einer Schule alle eine Schüler-ID zugewiesen werden, um sie zu unterscheiden). Der Ersatzschlüssel hat keine intrinsische (inhärente) Bedeutung, sondern ist eher nützlich, weil er ein Tupel eindeutig identifizieren kann. Ein weiteres häufiges Vorkommen, insbesondere in Bezug auf die N: M-Kardinalität, ist der zusammengesetzte Schlüssel. Ein zusammengesetzter Schlüssel ist ein Schlüssel, der aus zwei oder mehr Attributen innerhalb einer Tabelle besteht, die (zusammen) einen Datensatz eindeutig identifizieren. (Zum Beispiel in einer Datenbank, die sich auf Schüler, Lehrer und Klassen bezieht. Klassen könnten eindeutig durch einen zusammengesetzten Schlüssel ihrer Raumnummer und ihres Zeitfensters identifiziert werden, da keine andere Klasse genau dieselbe Kombination von Attributen haben könnte Tatsächlich kann die Verwendung eines zusammengesetzten Schlüssels wie diesem eine Form der Datenprüfung sein, wenn auch eine schwache.

Fremdschlüssel [ edit ]

Ein Fremdschlüssel ist ein Feld in einer relationalen Tabelle, das mit der Primärschlüsselspalte einer anderen Tabelle übereinstimmt. Fremdschlüssel müssen in der Referenzierungsbeziehung keine eindeutigen Werte haben. Ein Fremdschlüssel kann zum Querverweisen von Tabellen verwendet werden und verwendet effektiv die Werte von Attributen in der referenzierten Beziehung, um die Domäne eines oder mehrerer Attribute in der referenzierenden Beziehung einzuschränken. Das Konzept wird formal beschrieben als: "Für alle Tupel in der referenzierenden Beziehung, die über die referenzierenden Attribute projiziert werden, muss in der referenzierten Relation ein Tupel vorhanden sein, das über dieselben Attribute projiziert wird, so dass die Werte in jedem referenzierenden Attribut mit den entsprechenden Werten in übereinstimmen die referenzierten Attribute. "

Gespeicherte Prozeduren [ edit ]

Eine gespeicherte Prozedur ist ein ausführbarer Code, der der Datenbank zugeordnet ist und im Allgemeinen in dieser gespeichert ist. Gespeicherte Prozeduren erfassen und passen in der Regel gängige Vorgänge an, beispielsweise das Einfügen eines Tupels in eine Beziehung, das Sammeln statistischer Informationen zu Nutzungsmustern oder das Einkapseln komplexer Geschäftslogik und -berechnungen. Häufig werden sie aus Gründen der Sicherheit oder Einfachheit als Anwendungsprogrammierschnittstelle (API) verwendet. Implementierungen gespeicherter Prozeduren in SQL RDBMS ermöglichen es Entwicklern häufig, prozedurale Erweiterungen (oft herstellerspezifisch) der deklarativen Standard-SQL-Syntax zu nutzen. Gespeicherte Prozeduren sind nicht Teil des relationalen Datenbankmodells, werden jedoch bei allen kommerziellen Implementierungen berücksichtigt.

Index [ edit ]

Ein Index ist eine Möglichkeit, einen schnelleren Zugriff auf Daten zu ermöglichen. Indizes können für eine beliebige Kombination von Attributen einer Beziehung erstellt werden. Abfragen, die mithilfe dieser Attribute filtern, können mithilfe des Index nach zufälligen Tupeln suchen, ohne jedes Tupel der Reihe nach überprüfen zu müssen. Dies ist vergleichbar mit der Verwendung des Index eines Buchs, um direkt zu der Seite zu gelangen, auf der die von Ihnen gesuchten Informationen gefunden werden, so dass Sie nicht das gesamte Buch lesen müssen, um das Gesuchte zu finden. Relationale Datenbanken bieten normalerweise mehrere Indexierungstechniken, von denen jede für eine Kombination aus Datenverteilung, Beziehungsgröße und typischen Zugriffsmustern optimal ist. Indizes werden normalerweise über B + -Bäume, R-Bäume und Bitmaps implementiert. Indizes werden normalerweise nicht als Teil der Datenbank betrachtet, da sie als Implementierungsdetails gelten, obwohl Indizes normalerweise von derselben Gruppe verwaltet werden, die auch die anderen Teile der Datenbank verwaltet. Die Verwendung effizienter Indizes für Primär- und Fremdschlüssel kann die Abfrageleistung erheblich verbessern. Dies liegt daran, dass B-Tree-Indizes zu log (n) proportionalen Abfragezeiten führen, wobei n die Anzahl der Zeilen in einer Tabelle ist und Hash-Indizes zu konstanten Zeitabfragen führen (keine Größenabhängigkeit, solange der relevante Teil des Indexes passt Erinnerung).

Relationale Operationen [ edit ]

Abfragen, die an die relationale Datenbank gerichtet werden, und die abgeleiteten Relvars in der Datenbank werden in einem relationalen Kalkül oder einer relationalen Algebra ausgedrückt. In seiner ursprünglichen relationalen Algebra führte Codd acht Beziehungsoperatoren in zwei Gruppen von je vier Operatoren ein. Die ersten vier Operatoren basierten auf den traditionellen mathematischen Mengenoperationen:

  • Der Union-Operator kombiniert die Tupel zweier Beziehungen und entfernt alle doppelten Tupel aus dem Ergebnis. Der Operator der relationalen Union entspricht dem SQL-Operator UNION.
  • Der Kreuzungsoperator erzeugt die Menge von Tupeln, die zwei Beziehungen gemeinsam haben. Der Schnittpunkt wird in SQL in Form des INTERSECT-Operators implementiert.
  • Der Differenzoperator wirkt auf zwei Beziehungen und erzeugt die Menge von Tupeln aus der ersten Beziehung, die in der zweiten Beziehung nicht vorhanden sind. Die Differenz wird in SQL in Form des EXCEPT- oder MINUS-Operators implementiert.
  • Das kartesische Produkt zweier Relationen ist ein Join, der durch keine Kriterien eingeschränkt ist, was dazu führt, dass jedes Tupel der ersten Relation mit jedem Tupel des zweite Beziehung. Das kartesische Produkt wird in SQL als Cross-Join-Operator implementiert.

Die übrigen von Codd vorgeschlagenen Operatoren umfassen spezielle Operationen, die für relationale Datenbanken spezifisch sind:

  • Die Auswahl- oder Einschränkungsoperation ruft Tupel aus einer Beziehung ab, wodurch die Ergebnisse auf diejenigen beschränkt werden, die ein bestimmtes Kriterium erfüllen, d. H. Eine Teilmenge im Sinne der Mengenlehre. Das SQL-Äquivalent der Auswahl ist die SELECT-Abfrageanweisung mit einer WHERE-Klausel.
  • Die Projektionsoperation extrahiert nur die angegebenen Attribute aus einem Tupel oder einer Gruppe von Tupeln.
  • Die für relationale Datenbanken definierte Join-Operation wird oft als bezeichnet natürlicher Join. In dieser Art von Join sind zwei Beziehungen durch ihre gemeinsamen Attribute verbunden. Die Annäherung eines natürlichen Joins durch MySQL ist der Inner-Join-Operator. In SQL verhindert ein INNER JOIN das Auftreten eines kartesischen Produkts, wenn zwei Tabellen in einer Abfrage vorhanden sind. Für jede zu einer SQL-Abfrage hinzugefügte Tabelle wird ein zusätzlicher INNER JOIN hinzugefügt, um ein kartesisches Produkt zu verhindern. Für N Tabellen in einer SQL-Abfrage muss es daher N-1 INNER JOINS geben, um ein kartesisches Produkt zu verhindern.
  • Die Operation der relationalen Division ist eine etwas komplexere Operation, bei der im Wesentlichen die Tupel einer Relation (der Dividende) verwendet werden. eine zweite Beziehung (den Divisor) aufteilen. Der Operator der relationalen Division ist praktisch das Gegenteil des kartesischen Produktoperators (daher der Name).

Seit der Einführung der ersten acht Codd-Modelle wurden weitere Operatoren eingeführt oder vorgeschlagen, einschließlich relationaler Vergleichsoperatoren und Erweiterungen, die Unterstützung für Schachtelung und hierarchische Daten bieten , unter anderen.

Normalisierung [ edit ]

Die Normalisierung wurde erstmals von Codd als integraler Bestandteil des relationalen Modells vorgeschlagen. Es umfasst eine Reihe von Prozeduren, die dazu dienen, nicht einfache Domänen (nichtatomare Werte) und die Redundanz (Duplizierung) von Daten zu beseitigen, wodurch wiederum Datenmanipulationsanomalien und ein Verlust der Datenintegrität verhindert werden. Die gebräuchlichsten Formen der Normalisierung für Datenbanken werden Normalformen genannt.

Verteilte relationale Datenbanken [ edit ]

Die Distributed Relational Database Architecture (DRDA) wurde von einer Arbeitsgruppe von IBM im Zeitraum 1988 bis 1994 entworfen. DRDA ermöglicht die Vernetzung vernetzter relationaler Datenbanken zur Erfüllung von SQL-Anforderungen. [7][8] Die Nachrichten, Protokolle und strukturellen Komponenten von DRDA werden von der Distributed Data Management Architecture definiert.

Referenzen [ edit ]

  1. ^ a [19659904] b Codd, EF [1970)"EinrelationalesDatenmodellfürgroßegemeinsamgenutzteDatenbanken" Mitteilungen der ACM . 13 (6): 377–387. doi: 10,1145 / 362384,362685.
  2. ^ Ambler, Scott. "Relationale Datenbanken 101: Betrachten des Gesamtbildes". [ bessere Quelle
  3. ^ "Überblick über relationale Datenbanken". oracle.com .
  4. ^ "Mit A. M. Turing Award in diesem Frühling zu Ehren". Microsoft PressPass. 1998-11-23. Nach dem Original am 6. Februar 2009 archiviert . 2009-01-16 .
  5. ^ Gray, Jim (September 1981). "Das Transaktionskonzept: Tugenden und Grenzen" (PDF) . Verfahren der 7. Internationalen Konferenz über sehr große Datenbanken . Cupertino, Kalifornien: Tandemcomputer. S. 144–154 . 2006-11-09 .
  6. ^ Gray, Jim und Reuter, Andreas, Verteilte Transaktionsverarbeitung: Konzepte und Techniken . Morgan Kaufmann, 1993. ISBN 1-55860-190-2.
  7. ^ Reinsch, R. (1988). "Verteilte Datenbank für SAA". IBM Systems Journal . 27 (3): 362–389. doi: 10.1147 / sj.273.0362.
  8. ^ Referenz für verteilte relationale Datenbankarchitektur . IBM Corp. SC26-4651-0. 1990.

No comments:

Post a Comment