MySQL-Grundlagen im Zusammenhang mit Zahlen-1

  1. Was sind die drei wichtigsten Datenbankparadigmen?

Die drei wichtigsten Datenbankparadigmen sollen die Rationalität und Effizienz der Datenbankstruktur sicherstellen und umfassen hauptsächlich:

  1. Erste Normalform: Stellen Sie sicher, dass jede Zelle nur einen Wert hat, um Datenredundanz zu vermeiden.

  1. Zweite Normalform: Nicht-Primärschlüsselspalten müssen vom Primärschlüssel abhängen, um Anomalien und Redundanz bei der Datenaktualisierung zu vermeiden.

  1. Dritte Normalform: Es dürfen keine Abhängigkeiten zwischen Nicht-Primärschlüsselspalten bestehen, um Datenredundanz zu vermeiden.

Die Einführung dieser Normalisierungskonzepte kann das Design der Datenbank standardisieren und die Genauigkeit, Konsistenz und Effizienz der Daten sicherstellen.

Beigefügt:

Eine Zelle bezieht sich auf einen Schnittpunkt in einer Datenbanktabelle, der sich am Schnittpunkt von Zeilen und Spalten befindet und zum Speichern eines Datenelements verwendet wird. In einer relationalen Datenbank besteht eine Tabelle normalerweise aus mehreren Zeilen und Spalten. Jede Zelle stellt den Schnittpunkt dieser Zeilen und Spalten dar und wird zum Speichern der Daten verwendet, die dem Schnittpunkt der Zeile und Spalte entsprechen.

Beispielsweise kann in einer Schülerinformationstabelle jede Zelle ein bestimmtes Attribut eines Schülers darstellen, z. B. Name, Alter, Geschlecht, Schülernummer usw.

Die Zelle ist die kleinste Datenspeichereinheit in der Datenbanktabelle und gleichzeitig die grundlegendste Einheit für die Datenverarbeitung. Beim Entwerfen und Verwalten einer Datenbank muss jede Zelle klar definiert werden, um die Genauigkeit und Konsistenz der Daten in der Tabelle sicherzustellen.

  1. Stellen Sie die vier Hauptmerkmale von Transaktionen vor

  1. Atomarität: Entweder werden alle Transaktionen erfolgreich ausgeführt, oder alle Transaktionen schlagen fehl und werden zurückgesetzt.

  1. Konsistenz: Vor und nach der Ausführung einer Transaktion sollten die Daten in der Datenbank konsistent bleiben. Beispiel: Fremdschlüsseleinschränkungen in einer relationalen Datenbank. Einfügungs- oder Aktualisierungsvorgänge müssen Fremdschlüsseleinschränkungen erfüllen, andernfalls kommt es zu Dateninkonsistenzen.

  1. Isolation: Mehrere Transaktionen sollten voneinander isoliert sein und jede Transaktion sollte nichts von der Existenz und dem Betrieb anderer Transaktionen wissen.

  1. Haltbarkeit: Nachdem eine Transaktion festgeschrieben wurde, sollten ihre Änderungen dauerhaft in der Datenbank gespeichert werden.

Abkürzung: ACID

A-Atomizität: Eine Transaktion ist ein unteilbares „Atom“, das heißt, die Transaktion ist entweder vollständig abgeschlossen oder überhaupt nicht abgeschlossen, ohne Zwischenzustand.

C-Konsistenz: Das Ergebnis der Transaktionsausführung muss sein, dass die Datenbank von einem Konsistenzzustand in einen anderen Konsistenzzustand wechselt. Alle Fehler, die während der Transaktionsausführung auftreten, müssen auf den Zustand vor Beginn der Transaktion zurückgesetzt werden.

I-Isolation: Wenn mehrere Transaktionen ausgeführt werden, ist jede Transaktion voneinander isoliert und stört sich nicht gegenseitig.

D- Haltbarkeit: Nach Abschluss der Transaktion müssen die Daten in der Datenbank gespeichert bleiben und können nicht verloren gehen, selbst wenn das System abstürzt oder ausgeschaltet wird.

  1. Es gibt vier häufig verwendete Transaktionsisolationsstufen

Es gibt vier Transaktionsisolationsstufen: nicht festgeschriebenes Lesen, festgeschriebenes Lesen, wiederholbares Lesen und serialisiertes Lesen

Die Transaktionsisolationsstufe ist der Mechanismus, den das Datenbankverwaltungssystem zur Steuerung des gleichzeitigen Zugriffs verwendet. Es definiert den Grad der Isolation zwischen mehreren gleichzeitigen Transaktionen.

  1. Nicht festgeschrieben lesen: Auf dieser Ebene kann eine Transaktion Daten lesen, die noch nicht von einer anderen Transaktion festgeschrieben wurden. Diese Ebene ist am anfälligsten für Probleme wie Dirty Reads und Phantom Reads.

  1. Festgeschrieben lesen: Auf dieser Ebene kann eine Transaktion nur Daten lesen, die von einer anderen Transaktion festgeschrieben wurden. Mit dieser Ebene können Dirty-Read-Probleme vermieden werden, es können jedoch Phantom-Read-Probleme auftreten.

  1. Wiederholbares Lesen: Diese Ebene stellt sicher, dass die Ergebnisse immer konsistent sind, wenn eine Transaktion dieselben Daten mehrmals liest. Dadurch können Dirty-Read- und Phantom-Read-Probleme vermieden werden, es können jedoch nicht wiederholbare Leseprobleme auftreten.

  1. Serialisierbar: Diese Ebene ist die höchste Isolationsebene, die Parallelitätsprobleme durch Sperren von Daten vermeidet. Alle Transaktionen werden nacheinander ausgeführt, wodurch alle Parallelitätsprobleme vermieden werden, die Leistung der Datenbank jedoch erheblich beeinträchtigt wird.

Isolationsstufen von niedrig bis hoch erhöhen den Grad der Isolation zwischen Transaktionen, führen aber gleichzeitig auch zu Leistungseinbußen. Daher ist es notwendig, die geeignete Isolationsstufe basierend auf spezifischen Geschäftsszenarien und Leistungsanforderungen auszuwählen.

  1. 4 Arten von Problemen, die bei der Steuerung der Parallelität von Datenbanktransaktionen auftreten können

  1. Dirty Read: Bedeutet, dass eine Transaktion die nicht festgeschriebenen geänderten Daten einer anderen Transaktion liest. Wenn die andere Transaktion ein Rollback durchführt, sind die gelesenen Daten ungültig, was sehr schwerwiegende Folgen hat und die Konsistenz der Daten zerstört.

  1. Phantomlesung: bedeutet, dass in derselben Transaktion dieselbe Abfrage zu unterschiedlichen Zeiten eine unterschiedliche Anzahl von Ergebnissen zurückgibt. Wenn beispielsweise in einer Transaktion die SELECT-Anweisung zum ersten Mal ausgeführt wird, um die Anzahl der Zeilen abzufragen, die die Bedingungen erfüllen, sind das Ergebnis 2 Zeilen. Bei der nachfolgenden Operation fügt jedoch eine andere Transaktion eine dritte Zeile mit Daten ein erfüllt die gleichen Abfragebedingungen. Wenn diese Transaktion die SELECT-Anweisung erneut ausführt, sind das Ergebnis 3 Zeilen, was einem Phantom-Lesevorgang entspricht.

  1. Wiederholbares Lesen: bedeutet, dass die Ergebnisse immer konsistent sind, wenn eine Transaktion dieselbe Abfrage mehrmals ausführt. Wenn eine andere Transaktion während der Transaktionsabfrage Daten ändert, liest die Transaktion die Änderungsergebnisse nicht.

  1. Nicht wiederholbares Lesen: bezieht sich auf eine Transaktion, die dieselben Daten mehrmals liest, aber während dieses Vorgangs ändern andere Transaktionen die Daten, was dazu führt, dass jede Abfrage unterschiedliche Ergebnisse zurückgibt.

Der Hauptgrund für diese Probleme ist eine falsche Transaktionsisolationsstufe oder eine lockere Kontrolle der Transaktionsgleichzeitigkeit. Daher ist es notwendig, beim gleichzeitigen Zugriff eine geeignete Isolationsstufe zu wählen, um das Auftreten dieser Probleme zu vermeiden.

Zur Vereinfachung:

Dirty Read bedeutet, dass eine Transaktion nicht festgeschriebene Daten einer anderen Transaktion liest; Phantom Read bedeutet, dass dieselbe Abfrage zu unterschiedlichen Zeiten eine unterschiedliche Anzahl von Ergebnissen zurückgibt; wiederholbares Lesen bedeutet, dass die Gesamtzahl der Ergebnisse beim mehrmaligen Lesen derselben Daten konsistent ist; nicht -Wiederholbares Lesen bezieht sich auf das mehrmalige Lesen derselben Daten, aber andere Transaktionen ändern die Daten während des Vorgangs, was jedes Mal zu unterschiedlichen Abfrageergebnissen führt. Der Hauptgrund für diese Probleme ist eine falsche Transaktionsisolationsstufe oder eine unzureichende Parallelitätskontrolle. Um diese Probleme zu vermeiden, muss eine geeignete Isolationsstufe ausgewählt werden.

  1. 2 Möglichkeiten zum Teilen

In Datenbanken gibt es zwei gängige Aufteilungsmethoden: horizontale Aufteilung und vertikale Aufteilung.

  1. Horizontale Aufteilung (Sharding): Teilen Sie eine große Tabelle zeilenweise in mehrere kleine Tabellen auf. Jede kleine Tabelle kann einen Teil der Daten speichern, wodurch der Speicherdruck und der Abfragedruck einer einzelnen Datenbank verringert werden.

  1. Vertikale Partitionierung: Teilen Sie eine große Tabelle entsprechend den Geschäftsfunktionen oder Spalten in mehrere kleine Tabellen auf, wodurch die Anzahl der Zeilen in einer einzelnen Tabelle reduziert und die Abfrageeffizienz verbessert wird.

  1. Hybride Aufteilung: kombiniert die ersten beiden Methoden zur Aufteilung sowohl nach der Anzahl der Zeilen als auch nach der Anzahl der Spalten und ermöglicht so eine flexiblere Datenaufteilung und -verwaltung.

  1. Dynamische Aufteilung: Nach Strategien wie dem Lastausgleich kann eine dynamische Aufteilung und Verwaltung von Daten durch dynamisches Erstellen und Löschen von Datenbanken oder Tabellen erreicht werden, wodurch eine bessere Anpassung an sich ändernde Datenmengen und Zugriffsmengen erreicht wird.

  1. Datenbankübergreifende Abfrage: Verwenden Sie Daten aus mehreren Datenbanken durch gemeinsame Abfrage, um eine gleichzeitige Abfrage mehrerer Datenquellen zu erreichen und so den Geschäftsanforderungen besser gerecht zu werden.

Jede Aufteilungsmethode hat ihre Vor- und Nachteile sowie anwendbaren Szenarien. Die konkrete Wahl muss anhand der tatsächlichen Situation bewertet und entschieden werden.

Für das Sharding von Datenbanken und Sharding-Tabellen kann sowohl die horizontale als auch die vertikale Aufteilung verwendet werden.

Bei der horizontalen Aufteilung wird eine große Tabelle oder Datenbank horizontal in mehrere kleine Tabellen oder Datenbanken aufgeteilt, um den Speicher- und Abfragedruck einer einzelnen Tabelle oder Datenbank zu verringern. Durch die horizontale Aufteilung in Unterdatenbanken und Untertabellen können Daten nach bestimmten Regeln in verschiedene Datenbanken oder Tabellen aufgeteilt werden, wobei jede Datenbank oder Tabelle nur einen Teil der Daten enthält.

Bei der vertikalen Aufteilung wird eine große Tabelle oder Datenbank entsprechend den Spalten oder Geschäftsfunktionen in mehrere kleine Tabellen oder Datenbanken unterteilt, um die Redundanz und Komplexität einer einzelnen Tabelle oder Datenbank zu verringern. Durch die vertikale Aufteilung in Unterdatenbanken und Untertabellen können Sie eine lange Datentabelle vertikal in mehrere kurze Datentabellen aufteilen, wobei jede Tabelle nur einige Spalten enthält, oder eine große Anwendung in mehrere kleine aufteilen. Relativ unabhängige Anwendungen reduzieren die Größe und Komplexität einzelner Anwendungen.

Daher können in praktischen Anwendungen je nach spezifischer Situation horizontale Aufteilung, vertikale Aufteilung oder eine Kombination aus beiden verwendet werden, um eine groß angelegte Datenspeicherung und -verwaltung zu erreichen.

Guess you like

Origin blog.csdn.net/samsung_samsung/article/details/129749223