JavaRush /Java-Blog /Random-DE /Wir analysieren Datenbanken und die SQL-Sprache – „Java-P...

Wir analysieren Datenbanken und die SQL-Sprache – „Java-Projekt von A bis Z“

Veröffentlicht in der Gruppe Random-DE
Ein Artikel aus einer Serie über das Erstellen eines Java-Projekts. Sein Ziel ist es, Schlüsseltechnologien zu analysieren, das Ergebnis ist das Schreiben eines Telegram-Bots. Der Einführungsteil ist hier . Aloha, Softwareentwickler. Heute sprechen wir über Datenbanken und die SQL-Sprache. „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 1Für wen ist dieser Artikel gedacht? Ja, an alle, die Interesse haben. Einige können ihre Reise mit diesem Artikel beginnen, andere können ihr Gedächtnis mit interessanten Fakten auffrischen. Dieser Teil wird rein theoretisch sein. Bevor wir Ihnen erklären, was Datenbanken und SQL-Syntax sind, müssen wir verstehen und festlegen, warum wir sie untersuchen werden. An dieser Stelle werden wir NUR über SQL-Datenbanken sprechen: NoSQL wird in dieser Artikelserie nicht berücksichtigt.

Datenbank: Was ist das?

„Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 2Eine Datenbank (im Folgenden DB genannt) ist ein Ort, an dem strukturierte Daten gespeichert werden , die mithilfe einer Abfragesprache abgerufen werden können. Datenbanken können Informationen in großen Mengen nicht nur speichern, sondern auch verarbeiten und ändern. Als Hinweis: Versuchen Sie, eine Reihe von Werten in Excel anhand einiger Kriterien schnell zu ändern. Im Prinzip nichts Kompliziertes. Nicht wie in unserer nicht digitalisierten realen Welt. Beispielsweise das Umbenennen von Fahrspuren, Straßen, Städten. Wenn alles virtuell wäre und in die Datenbank eingegeben würde, wäre es normalisiert, es wären ein paar Kleinigkeiten. Ohnehin leiden viele Speichermedien darunter, dass sie sich nicht automatisch wechseln lassen. SQL für Datenbanken ist in diesem Zusammenhang eine Sprache, die die Datenbank versteht und entsprechend reagiert. Nehmen wir an, die Umbenennung der Stadt wäre nicht schwierig; die Umbenennung von Dnepropetrowsk in Dnipro würde ungefähr so ​​aussehen:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Alle nachfolgenden Anfragen an das System würden bereits den Namen ergeben, den wir benötigen.

Warum werden Datenbanken benötigt?

Wie ich bereits sagte, können Sie mithilfe von Datenbanken Daten speichern. Aber was sind diese Daten? Um es anhand eines realen Beispiels zu verstehen, können wir über einige Anwendungen sprechen. Zum Beispiel etwa der gleiche Telegram-Bot. Wir möchten wissen, wie viele Leute den Bot nutzen. Wie lässt sich das umsetzen? In einer regulären Java-Anwendung können Sie viele eindeutige Elemente erstellen – ein Set, das den Spitznamen oder die Chat-ID des Benutzers speichert. Ob das funktioniert? Wille. Genau so lange, bis die Java-Anwendung gestoppt wird und sobald sie erneut gestartet wird, ist die Menge der eindeutigen Elemente leer. Das heißt, die Daten, die in der laufenden Anwendung gespeichert waren, sind einfach verschwunden. Was können Sie dagegen tun? Sie können die Speicherung des Systemstatus (Daten) von einer Java-Anwendung an einen anderen Ort verschieben. Sie können diese im CSV-Format in einer regulären Datei auf Ihrem Computer speichern. Sie können dies in einer Zeile in einer separaten Datei tun. Sie können dies tun und diese Daten dann überschreiben, bevor die Java-Anwendung stoppt. Allerdings ist die Garantie, dass die Aufnahme gelingt, bei weitem nicht annähernd 100 %ig, denn man kann einfach das Netzkabel des Servers herausziehen und die Aufnahme findet nicht statt. Dieser Ansatz hat einen erheblichen Nachteil: Es gibt keine Funktionalität zum Abrufen, Aggregieren und Suchen von Informationen auf Dateiebene. Ja, natürlich können Sie eine Datei lesen und Objekte dafür erstellen, aber Sie müssen JEDES Mal alle Daten in die Anwendung pumpen. Und davon kann es viele geben, zum Beispiel ein paar Gigabyte. Dies kann durch die Speicherung der Daten in einer Datenbank vermieden werden. Auf welche Weise? Durch Tabellen und Beziehungen zwischen ihnen. Darauf basieren alle relationalen Datenbanken.

SQL: eine Sprache, die Datenbanken verstehen

Es gibt Datenbankverwaltungssysteme (im Folgenden als DBMS bezeichnet), und die Sprache, die sie verstehen, ist SQL. SQL ist eine Programmiersprache zur Manipulation und Verwaltung von Datenbanken. Um zu verstehen, wie das funktioniert, schauen wir uns die Abbildung an: „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 3Der Benutzer sendet SQL-Abfragen an das DBMS, das DBMS versteht, was zu tun ist, führt es aus, und wenn die Anforderung darin bestand, Daten abzurufen, gibt es diese zurück. Daher müssen wir als Entwickler die SQL-Abfragesprache beherrschen. Sie könnten denken: „Oh, eine andere Sprache. Mit Gottes Hilfe verstehe ich Java hier kaum und Sie bieten mir sofort eine andere Sprache an.“ Das stimmt nicht: SQL wurde als Spezifikationssprache für ein DBMS erfunden, damit Buchhalter, die weit von Datenbanken und Programmierung im Allgemeinen entfernt sind, in dieser Sprache schreiben können. Das bedeutet, dass es nicht so schwer sein wird, es zu lernen. Die Hauptsache ist ÜBEN-ÜBEN-ÜBEN. Heute gibt es Theorie, im nächsten Artikel geht es um die Praxis. Da es sich bei einer relationalen Datenbank um einen Satz zweidimensionaler Array-Tabellen und Beziehungen zwischen ihnen handelt, wird die Arbeit um sie herum funktionieren. Wenn wir über ein Beispiel sprechen, können wir zwei Tabellen zeigen – „Länder“ und „Städte“ und wie sie miteinander verbunden sind. „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 4In diesem Stadium ist es für uns wichtig zu verstehen, dass es sich bei den Datensätzen in der Tabelle um Daten zu einem Objekt aus der Java-Welt handelt. Diese beiden Tabellen können in Java beispielsweise so beschrieben werden:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Nun, ist es nicht wunderschön, oder? Die Datenbank kann beliebig viele Tabellen speichern. In unserem Fall sind es zwei davon.

Tabellenstruktur

Ich denke, dass jeder auf die eine oder andere Weise mit Excel-Tabellen in Berührung gekommen ist, und Sie verstehen die Begriffe Zeile und Spalte . Im Kontext von Datenbanken sprechen wir eher von Datensätzen und Feldern: „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 5So stellt sich heraus, dass jedes Objekt der City-Klasse ein Datensatz in einer Tabelle in der Datenbank ist.

Primärschlüssel

„Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 6Es kommt häufig vor, dass Felder in Datenbanken die gleichen Werte haben. Zum Beispiel soziale Netzwerke, in denen mehr als eine Person anhand des Vor- und Nachnamens und sogar des Vatersnamens gefunden werden kann. Und relationale Datenbanken erfordern ein eindeutiges Feld, das für den Zugriff auf einen Datensatz verwendet werden kann. Dies wird als erster Schlüssel oder Primärschlüssel bezeichnet. Typischerweise wird als solcher Schlüssel das Feld ID(id) verwendet – die Abkürzung für Identifier. Aus diesem Grund müssen Sie jeder Tabelle ein ID- Feld hinzufügen .„Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 7

Externer Schlüssel

In unserem Beispiel befindet sich ein solches Feld in der Tabelle „Stadt“, die den Schlüssel aus „Land“ verwendet. Und das funktioniert so: Jede Stadt kennt eine eindeutige Informationskennung für ihr Land, und wenn wir daraus eine Abfrage in der Datenbank erstellen, erhalten wir umfassende Informationen über das Land. Wie Sie im Bild sehen können, besteht eine Beziehung zwischen zwei Tabellen: „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 8Hier wird das Prinzip eines Fremdschlüssels dargestellt.

Welche Abschnitte gibt es in SQL?

Übrigens werden sie in Interviews oft gefragt, was Operationen in SQL sind:
  • DDL (Data Definition Language) ist eine Gruppe von Operatoren, die Tabellen, ihre Struktur und mehr ändern/erstellen. Das heißt, eine Tabelle erstellen, löschen, Felder in Tabellen erstellen/löschen; Erstellen eines neuen Primärschlüssels usw.;
  • DML (Data Manipulation Language) ist eine Gruppe von Operatoren, die Datenänderungen verwalten. Dies sind alles Vorgänge, die Daten in der Datenbank ändern: Hinzufügen, Abrufen, Ändern und Löschen;
  • DCL (Data Control Language) ist ein Mittel zur Bestätigung von Benutzerrechten zum Ausführen von Aktionen. Operationen, um einem bestimmten Benutzer Zugriff und Rechte zu gewähren, damit er DDL/DML-Operationen ausführen kann.

Welche Datentypen gibt es in SQL?

Tabellen können bestimmte Arten von Daten speichern und verarbeiten. Hier wird alles dem ähneln, was wir in Java verwenden. Lassen Sie uns über die wichtigsten sprechen. Davon gibt es nur drei, wir werden je nach Bedarf und/oder Wunsch weitere hinzufügen: „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 9Wie auf dem Bild zu sehen ist, sind dies:
  • INT – Ganzzahlwerte. Wird für einen eindeutigen Bezeichner und für eine einfache Ganzzahl verwendet.
  • VARCHAR ist unser String ;
  • DATE ist unser LocalDate.
Bisher ist alles einfach, oder? Feldtypen werden beim Erstellen der Tabelle angegeben. Es ist klar, dass es nicht möglich sein wird, einen Wert eines anderen Typs in das Feld zu schreiben.

Was sind SQL-Operatoren?

Ein Operator ist ein separater Befehl, der eine Aktion ausführt. Operatoren bestehen aus Sätzen, die wiederum aus Schlüsselwörtern bestehen, die in Abfragen verwendet werden. Schauen wir uns ein Beispiel an: „Java-Projekt von A bis Z“: Analyse von Datenbanken und SQL-Sprache - 10Hier ist es interessanter, hier wurde bereits eine Abfrage erstellt. Was machen die da? Es ist ganz einfach, es heißt: „Nehmen Sie drei Felder (Name, Alter und Erstellungsdatum) aus der Tabelle „Kunden“ und wählen Sie nur die Datensätze aus, in denen „Name“ gleich „Roman“ ist.“

Abschluss

In diesem Artikel haben wir begonnen, Datenbanken zu studieren. Wir haben verstanden, was es ist und warum wir es brauchen. Als nächstes gingen wir die ersten Anzeichen von SQL durch, auf die wir im nächsten Artikel ausführlicher eingehen werden. Wie üblich empfehle ich, sich auf GitHub zu registrieren und meinem Konto zu folgen, um diese Serie und meine anderen Projekte, an denen ich dort arbeite, zu verfolgen.

Hausaufgaben

Um diese Artikelserie über JRTB interessanter zu gestalten, wird es von Zeit zu Zeit Hausaufgaben geben. Ohne die heutige Aufgabe wird beispielsweise der nächste Artikel viel schwieriger zu verstehen sein, da dort viel Übung ansteht. Daher besteht die Aufgabe darin, das MySQL-DBMS auf Ihrem Computer zu installieren und sich entweder über die Konsole oder über andere Lösungen bei der Datenbank anzumelden. Vielen Dank fürs Lesen, bis bald!

Eine Liste aller Materialien der Serie finden Sie am Anfang dieses Artikels.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION