CodeGym/Java-Kurse/All lectures for DE purposes/Fortgeschrittene Kenntnisse im Bereich Datenbanken

Fortgeschrittene Kenntnisse im Bereich Datenbanken

Verfügbar

1.1 Prinzip des Vorlesungsaufbaus

Sie und ich haben unsere Bekanntschaft mit Datenbanken von unten begonnen . Dies ist ein Merkmal meines persönlichen Ansatzes, Menschen zu unterrichten. Wenn ich über neue Themen spreche, erkläre ich Ihnen immer zuerst, wie Sie bestimmte Tools in der Praxis anwenden können. Und schon wenn ich weiß, dass jemand weiß, wie man sie benutzt, fange ich an zu erzählen, wie alles funktioniert.

Es gibt mehrere Gründe für diesen Ansatz, aber der Hauptgrund ist, dass die wertvollste und am meisten fehlende Ressource im Lernprozess die Motivation der Schüler ist .

Dieser Ansatz unterscheidet sich geringfügig von dem, den wir von Schulen und Universitäten gewohnt sind. Aber alles ist klar: Wenn man in der Schule oder an der Universität studiert, setzt man die richtigen Prioritäten: Lernen ist in diesem Moment das Wichtigste im Leben.

Wenn Sie sich im Erwachsenenalter selbst weiterbilden, müssen Sie Ihr Studium oft bereits mit Arbeit, Hausarbeit, Betreuung von Kindern oder älteren Eltern verbinden. Und hier steht das Lernen oft nicht an erster Stelle.

Es geht um Prioritäten. Sogar in der Welt der Startups gibt es ein solches Konzept: Fail Fast, so schnell wie möglich scheitern . Es klingt seltsam, macht aber tatsächlich sehr viel Sinn: Die Aufgabe eines Startups besteht darin, schnell zu überprüfen, ob seine Hypothese richtig ist. Und wenn dies nicht der Fall ist, müssen Sie keine Jahre Ihres Lebens damit verbringen. Es ist besser, so früh wie möglich zu verstehen, dass für eine bestimmte Dienstleistung oder ein bestimmtes Produkt keine Nachfrage besteht.

Beim Unterrichten von Java und SQL verfolge ich den gleichen Ansatz: Ich gebe Ihnen die Möglichkeit, so früh wie möglich zu verstehen, ob Sie sich von der Programmierung beeilen oder nicht . Wenn Sie gerne programmieren und selbst herausfinden konnten, wie man mit Schleifen und Arrays arbeitet, dann haben Sie mit Hilfe von Mentoren und einem gut durchdachten Programm alle Chancen, Ihr Studium abzuschließen und einen Job zu finden.

Aber eine andere Tatsache ist nicht weniger wichtig: In ein paar freien Tagen können Sie verstehen, dass Programmieren nichts für Sie ist. Möglicherweise sind Sie einfach nicht daran interessiert, und das ist in Ordnung . Sie müssen also nicht Monate Ihres Lebens damit verbringen.

Nur 40 % der Absolventen arbeiten in der Fachrichtung, die sie an der Universität erworben haben. Denken Sie darüber nach: Die Leute haben 5-6 Jahre lang studiert und 60 % von ihnen haben beschlossen, nicht in ihrem Fachgebiet zu arbeiten. Ja, ein Teil der gewonnenen Erkenntnisse wird noch genutzt, etwa die Hälfte davon jedoch nicht.

Darin liegt der Wert des Fail-Fast-Konzepts – so früh wie möglich zu erkennen, dass ein bestimmter Beruf, eine bestimmte Person oder ein bestimmtes Hobby nicht für Sie geeignet ist. Und verschwenden Sie nicht Ihre Zeit und Energie damit. Auf lange Sicht ist das eine sehr gute Strategie.

1.2 SQL und alles, alles, alles

Wir sind mit der philosophischen Einführung fertig und kehren zum Erlernen von SQL zurück.

SQL-Sprache und DBMS sind etwas unterschiedliche Dinge. Die SQL-Sprache selbst ist eine Art Standard, der beschreibt, was in SQL-Abfragen an die Datenbank geschrieben werden kann. DBMS sind bereits Implementierungen dieses Standards. Einige DBMS implementieren einige Funktionen des Standards, andere andere und so weiter.

Je teurer das DBMS, desto mehr Funktionen des Standards implementiert es. Außerdem implementieren viele DBMS häufig ihre eigenen einzigartigen Funktionen außerhalb der SQL-Standards. Manchmal führt dies zu Portabilitätsproblemen: SQL-Abfragen, die für ein DBMS geschrieben wurden, funktionieren möglicherweise nicht gut für ein anderes.

Java hat auch eine ähnliche Situation. Wenn ein Java-Programm unter Windows geschrieben wird, funktioniert es unter Linux nicht normal. Um dieses Problem zu lösen, führt Java spezielle Klassen ein, die für verschiedene Betriebssysteme unterschiedliche Implementierungen haben. Beispiel: Path-Klasse mit Implementierungen von WindowsPath, LinuxPath usw.

Der zweite Teil des Problems wird mit Hilfe der Versionierung gelöst. Alle erfolgreichen Innovationen aus verschiedenen Sprachen oder DBMS werden dem neuen JDK- oder SQL-Standard hinzugefügt. Sie wissen bereits, dass es verschiedene Versionen des JDK gibt und je neuer die Version ist, desto mehr Funktionen hat sie. Dasselbe gilt auch für SQL.

In der SQL-Sprache gibt es mehrere Versionen ihres Standards, die nach Jahr benannt sind:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Gute Nachrichten : Wir werden diese Standards nicht studieren. Erstens wird es Jahre dauern, dies alles zu studieren und zu meistern. Und zweitens sind diese Standards wie Android-Versionen: Nur fünf bis zehn Jahre nach der Veröffentlichung verbreitet sich der Standard massiv.

In Datenbanken mit großen Datenmengen benötigen Menschen Zuverlässigkeit und Stabilität. „Es funktioniert, nicht anfassen“ ist das Motto eines jeden, der mit Datenbanken arbeitet. Und der Übergang zu einer neuen Datenbankversion erfolgt alle 5 Jahre, wenn alle Vorteile einer solchen Lösung bereits offensichtlich sind.

1.3 Jenseits der Klammern

Wie ich oben sagte, dauert es Jahre, ein Datenbankprofi zu werden. Ein Profi weiß viele Dinge, die wir nicht studieren werden. Aber ich werde ein wenig darüber sprechen, was sich sonst noch in den Datenbanken befindet.

Fast alle modernen Datenbanken unterstützen:

1 Verfahrenssprache (PL)

RDBMS unterstützen die Möglichkeit, Prozeduren und Funktionen zu schreiben, die auf SQL Server ausgeführt werden, und können bei Abfragen viele Dinge mit Daten tun. Zum Beispiel habe ich einmal PL-SQL-Abfragen an den Oracle-Server geschrieben, der als Antwort auf die Abfrage ... eine HTML-Seite mit Daten generierte. Ja, du kannst.

2 Ereignisse (Trigger)

Alle modernen DBMS unterstützen den Mechanismus von Ereignissen, die in der SQL-Sprache Trigger genannt werden. Ein Auslöser tritt als Reaktion auf eine Aktion auf. Sie können beispielsweise alle Versuche, in die Datenbank zu schreiben, abfangen und in neuen Zeilen den genauen Zeitpunkt ihrer Änderung hinzufügen.

3 Protokollierung

Moderne Datenbanken versuchen, superschnell zu sein, daher werden oft alle Änderungen (neue Zeilen, gelöschte Zeilen, geänderte Zeilen) zunächst in eine spezielle Datei namens Protokoll geschrieben. Und erst nach einiger Zeit führt der SQL-Server diese Datensätze mit der Hauptdatenbank zusammen.

In mancher Hinsicht ähnelt dies dem Verhalten des Garbage Collectors in Java: Auch er markiert zunächst einfach Objekte als gelöscht und führt während Leerlaufzeiten eine Speicherbereinigung und -optimierung durch.

4 Plugins

Für das DBMS sowie für viele Programme können Sie eigene Plugins schreiben. Mit solchen Plugins können Sie einzigartige Datentypen und Funktionen für die Arbeit mit ihnen hinzufügen oder das Standardverhalten des DBMS ändern. Dies ist besonders nützlich, wenn Sie mit einer Open-Source-Datenbank arbeiten und einige Fehler auftreten.

5 Verteilte Arbeit (Cluster)

Ein typisches Szenario für einen modernen SQL-Server ist ein Cluster aus mehreren Servern. Die einfachste Möglichkeit besteht darin, Daten auf einen Server zu schreiben und von einer Gruppe von Servern zu lesen. In diesem Fall können Sie verschiedene Szenarien für die Datenbanksynchronisierung zwischen SQL-Servern konfigurieren.

6 Sharding

Wenn viele Daten vorhanden sind, werden sie in verschiedene Datenbanken aufgeteilt. Bis hin zur Tatsache, dass eine Tabelle in Teilen in verschiedenen Datenbanken gespeichert werden kann.

Das Sharding kann vertikal und horizontal erfolgen. Vertikales Sharding bedeutet, dass die Tabelle sozusagen durch vertikale Linien zerschnitten wird, während horizontales Sharding in horizontale Linien zerschnitten wird.

Wir haben beispielsweise beschlossen, alle Daten in der Tabelle nach Jahren zu unterteilen: für 2019 – eine Tabelle, für die Daten von 2020 – die zweite und so weiter. Dabei handelt es sich um horizontales Sharding.

7 Schieben Sie den Nicht-Schieber

In einem bestimmten Stadium der Entwicklung von Datenbanken begann man, ihnen immer mehr Geschäftslogik hinzuzufügen. Alles begann mit Prozeduren, Funktionen, der Generierung von Webseiten durch Server und endete mit der Hinzufügung der Unterstützung für fast alle gängigen Sprachen zum DBMS: Python, JavaScript und sogar Java und C++.

Klingt cool, bis Sie sich mit den Details befassen: Wollen Sie Ihre Webanwendungs-Geschäftslogik wirklich in Java schreiben, die in einem SQL-Server ausgeführt wird, wo es kein JDK, keine Java-Bibliotheken, Frameworks, wenig Speicher und jede Menge davon gibt? andere Einschränkungen?

Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare