Datenbanken Checkpoint

Einführung

Dieser Kontrollpunkt soll Ihnen helfen zu bewerten, was Sie aus unseren Einführungsartikeln zu Datenbanken gelernt haben, in denen wir Datenbanken definiert und gängige Datenbankmanagementsysteme vorgestellt haben. Sie können diesen Kontrollpunkt nutzen, um Ihr Wissen zu diesen Themen zu testen, Schlüsselbegriffe und Befehle zu überprüfen und Ressourcen für kontinuierliches Lernen zu finden.

A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.

In diesem Kontrollpunkt finden Sie zwei Abschnitte, die die zentralen Ideen aus den Einführungsartikeln zusammenfassen: eine kurze Erklärung dessen, was eine Datenbank ist (einschließlich Unterkapitel zu relationalen und nicht-relationalen Datenbanken) und einen Abschnitt darüber, wie Sie mit Ihrem DBMS über die Befehlszeile oder grafische Benutzeroberflächen interagieren können. In jedem dieser Abschnitte gibt es interaktive Komponenten, um Ihr Wissen zu testen. Am Ende dieses Kontrollpunkts finden Sie Möglichkeiten für kontinuierliches Lernen über Datenbankmanagementsysteme, vollständig verwaltete Datenbanken und das Erstellen Ihrer Apps mit Backend-Datenbanken.

Ressourcen

Was ist eine Datenbank?

A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.

Begriffe, die man kennen sollte

Definieren Sie die folgenden Begriffe und verwenden Sie die Dropdown-Funktion, um Ihre Arbeit zu überprüfen.

Replication

Replikation bezieht sich auf die Praxis der Synchronisierung von Daten über mehrere separate Datenbanken. Diese Praxis bietet Redundanz, verbessert die Skalierbarkeit und reduziert Lese-Latenzen.

Sharding

Database Sharding ist eine architektonische Praxis, bei der Daten in Chunks, sogenannte logische Shards, aufgeteilt werden, die über separate Knoten, sogenannte physische Shards, verteilt sind. Weitere Informationen zu dieser Praxis finden Sie in unserem Artikel über Understanding Database Sharding.

Es gibt drei gemeinsame relationale Modelle, die für Datenbanksysteme verwendet werden:

Relational Model Relationship
One-to-one In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table).
One-to-many In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table).
Many-to-many In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship.

Diese relationalen Modelle strukturieren, wie Datenbanken miteinander in Beziehung stehen.

Es gibt zwei Kategorien für das Datenbankmanagement: relationale und nicht-relationale Datenbanken. In den folgenden Unterabschnitten erfahren Sie mehr über jeden Typ und die gängigen DBMS für diese Typen.

Relationale Datenbanken

A relational database organizes information through relations, which you might recognize as a table.

Überprüfen Sie sich selbst

What are the elements that make up a relation?

A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.

What is the difference between a primary key and a foreign key?

A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.

Wenn Informationen in einer Datenbank gespeichert und in Beziehung gesetzt werden, können sie über Abfragen abgerufen werden, die eine strukturierte Anfrage nach Informationen stellen. Viele relationale Datenbanken verwenden die Structured Query Language, die oft als SQL bezeichnet wird, um Abfragen an die Datenbank zu verwalten.

Sie können SQL Einschränkungen verwenden, wenn Sie Ihre Datenbank entwerfen. Diese Einschränkungen legen fest, welche Änderungen an den Daten in der Tabelle vorgenommen werden können.

Überprüfen Sie sich selbst

Why might you impose constraints on your database?
  • Geschäftsregeln: Einschränkungen ermöglichen es Datenbankadministratoren, sicherzustellen, dass die Datenbank mit definierten Richtlinien und Verfahren übereinstimmt, die den Geschäftsanforderungen und -erwartungen entsprechen.
  • Datenschutz: Die Dateneingabe ist anfällig für Eingabefehler, daher bieten Einschränkungen zusätzliche Parameter, um korrekte Daten sicherzustellen.
What are the five constraints that are formally defined by the SQL standard?
  • PRIMARY KEY erfordert, dass jeder Eintrag in der angegebenen Spalte sowohl eindeutig als auch nicht NULL ist, und ermöglicht es Ihnen, diese Spalte zu verwenden, um jede einzelne Zeile in der Tabelle zu identifizieren.
  • FOREIGN KEY erfordert, dass jeder Eintrag in der angegebenen Spalte bereits in einer bestimmten Spalte aus einer anderen Tabelle vorhanden sein muss.
  • UNIQUE verbietet das Hinzufügen von Duplikaten zu den angegebenen Spaltenwerten.
  • CHECK definiert eine Anforderung für eine Spalte, bekannt als Prädikat, das jeder eingegebene Wert erfüllen muss.
  • NOT NULL verbietet das Hinzufügen von NULL-Werten zu den angegebenen Spalten.

Einige Open-Source-Relationale Datenbankverwaltungssysteme, die mit SQL erstellt wurden, sind MySQL, MariaDB, PostgreSQL und SQLite. Setzen Sie Ihr Lernen über relationale Datenbanken fort, indem Sie Verständnis relationale Datenbanken und vergleichen Sie gängige relationale DBMS mit SQLite vs MySQL vs PostgreSQL: Ein Vergleich von relationalen Datenbankverwaltungssystemen.

Begriffe für relationale Datenbanken kennen

Durch jeden der Artikel haben Sie ein Vokabular über relationale Datenbanken entwickelt. Definieren Sie jeden der folgenden Begriffe und verwenden Sie dann die Dropdown-Funktion, um Ihre Arbeit zu überprüfen.

Constraint

A constraint is any rule applied to a column or table that limits what data can be entered into it.

Data Types

A data type dictates what kind of entries are allowed in a column.

Object Database

Eine Objektdatenbank verwendet objektorientierte Strukturen für Informationen. PostgreSQL ist eine relationale Datenbank, die einige Funktionen von Objektdatenbanken integriert.

Serverless

A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.

Sie können eine serverlose Funktion schreiben, um das Ausführen einer serverlosen Anwendung zu üben.

Signed and Unsigned Integers

Einige numerische Datentypen sind vorzeichenbehaftet, was bedeutet, dass sie sowohl positive als auch negative Zahlen darstellen können, während andere unvorzeichenbehaftet sind und nur positive Zahlen darstellen können.

Jetzt, da Sie über relationale Datenbanken Bescheid wissen, können Sie ihre Gegenstücke verstehen: nichtrelationale Datenbanken.

Nichtrelationale und NoSQL-Datenbanken

Wenn Sie Daten auf eine unstrukturierte Weise speichern müssen, bietet eine nichtrelationale Datenbank ein alternatives Modell. Da eine nichtrelationale Datenbank kein SQL verwendet, wird sie manchmal als NoSQL-Datenbank bezeichnet.

Es gibt verschiedene verfügbare Optionen für eine nicht-relationale Datenbank, wie zum Beispiel Schlüssel-Wert-Speicher, spaltenorientierte Datenbanken, Dokumentenspeicher und Graphdatenbanken. Jedes dieser Modelle befasst sich mit möglichen Problemen bei der Verwendung einer relationalen Datenbank, einschließlich horizontaler Skalierung, eventueller Konsistenz zwischen Knoten und dem Management unstrukturierter Daten.

Begriffe für nicht-relationale Datenbanken, die Sie kennen sollten

Jedes der nicht-relationalen Datenbankmodelle hat spezifische Funktionen, die es einzigartig machen. Definieren Sie den Typ des Modells und verwenden Sie die Dropdown-Funktion, um Ihre Arbeit zu überprüfen.

Key-value databases

Schlüssel-Wert-Datenbanken speichern und verwalten assoziative Arrays, die Schlüssel-Wert-Paare enthalten, wobei der Schlüssel ein eindeutiger Identifikator ist, der seinen zugehörigen Wert abruft.

Columnar databases

Spaltenorientierte Datenbanken sind spaltenorientiert, was bedeutet, dass sie Daten in Spalten speichern. Die Daten erscheinen in Reihenfolge der Datensätze, wobei der erste Eintrag in einer Spalte mit dem ersten Eintrag in anderen Spalten zusammenhängt.

Document-oriented databases

Auch als Dokumentenspeicher bekannt, handelt es sich dabei um NoSQL-Datenbanken, die Daten in Form von Dokumenten speichern. Jedes Dokument enthält Metadaten zur Strukturierung der Daten, und eine API oder Abfragesprache kann verwendet werden, um Dokumente abzurufen.

Graph databases

Graphdatenbanken sind eine Unterkategorie von Dokumentenspeichern, und diese Art von Datenbank hebt die Beziehungen zwischen Dokumenten hervor.

Sie können Ihr Wissen darüber überprüfen, welche populären nicht-relationalen Datenbankmanagementsysteme mit dem jeweiligen Datenbankmodell übereinstimmen, mithilfe der interaktiven Dropdown-Funktion.

Überprüfen Sie sich selbst

Vergleichen Sie das folgende Datenbankmanagementsystem mit seinem operationellen Datenbankmodell.

  • Redis
  • Couchbase
  • Cassandra
  • OrientDB
  • MongoDB
  • Neo4j
  • MemcacheDB
  • Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model Example DBMSs
Key-value store Redis, MemcacheDB
Columnar database Cassandra, Apache HBase
Document store MongoDB, Couchbase
Graph database OrientDB, Neo4j

Ob Sie eine relationale oder eine nicht-relationale Datenbank verwenden, Sie bauen wahrscheinlich eine Anwendung, die ein Datenbankmanagementsystem als Teil ihres Stapels enthält.

Erstellen eines Anwendungsstapels

Das Datenbankmanagementsystem wird in der Regel als wesentlicher Bestandteil einer größeren Anwendung bereitgestellt. Diese Anwendungen werden manchmal als Stapel bezeichnet, wie der LAMP-Stack oder der Elastic-Stack.

Überprüfen Sie sich selbst

Verwenden Sie die Dropdown-Funktion, um die Antworten zu erhalten.

What makes up a LAMP stack?

LAMP ist ein Akronym für die Technologie, die diesen Stack ausmacht:

  • Linux-Betriebssystem
  • Apache-Webserver
  • MySQL-Datenbank
  • PHP für die Verarbeitung dynamischer Inhalte

Es gibt andere L*MP-Optionen, wie zum Beispiel den LEMP-Stack, bei dem E für Nginx steht, oder den LOMP-Stack, bei dem O für OpenLiteSpeed steht.

What makes up Elastic stack?

Der Elastic Stack basiert auf Elasticsearch, das sowohl eine Suchmaschine als auch eine dokumentenorientierte Datenbank ist.

Wenn Sie einen entfernten Server mit Ihrem Anwendungsstack einrichten, wird empfohlen, Ihre Daten zu verschlüsseln, um Ihr System vor bösartigen Eingriffen zu schützen. Sie können die Kommunikation mithilfe von Transport Layer Security (TLS) verschlüsseln, wodurch Daten in Bewegung in einen Geheimtext umgewandelt werden, der nur von der richtigen Chiffre entschlüsselt werden kann. Die statischen Daten, die in Ihrer Datenbank gespeichert sind, bleiben unverschlüsselt, es sei denn, Sie verwenden ein DBMS, das eine Verschlüsselung der Daten im Ruhezustand bietet.

Zur Verwaltung Ihrer Datenbank können Sie dies entweder direkt über die Befehlszeilenschnittstelle oder über eine grafische Benutzeroberfläche tun.

Verwendung der Befehlszeile mit Ihrem DBMS

Sie haben begonnen, die Linux-Befehlszeile mit unseren Einführungsartikeln zu Cloud-Servern zu verwenden und einen Webserver mit den Einführungsartikeln zu Webserver-Lösungen konfiguriert. Durch die Artikel zu Datenbanken haben Sie die Vertrautheit mit der Befehlszeile weiterentwickelt, indem Sie Befehle wie:

  • grep zum Suchen von Klartextdaten nach einem bestimmten Text oder einer Zeichenkette verwendet haben.
  • netstat, um die Netzwerkkonfiguration mit den Flaggen -lnp zur Anzeige von lauschenden Sockets (-l), numerischen Adressen (-n) und der PID sowie dem Namen des Programms für jeden Socket (-p) zu überprüfen.
  • systemctl zur Steuerung des systemd-Dienstes.

Sie haben auch mit den Befehlszeilentools experimentiert, die mit verschiedenen Datenbankverwaltungssystemen geliefert werden, um mit der Datenbankinstallation zu interagieren. Das CLI-Tool ermöglicht es Ihnen, Befehle auf dem Datenbankserver auszuführen und interaktiv von Ihrem Terminalfenster aus zu arbeiten. In der folgenden Tabelle sind gängige DBMSs und ihre zugehörigen CLI-Tools aufgeführt:

DBMS CLI tool
MongoDB MongoDB shell
MySQL mysql
PostgreSQL psql
Redis redis-cli

Es gibt auch Befehlszeilenclients von Drittanbietern für einige Datenbankverwaltungssysteme, wie zum Beispiel Redli für Redis.

Wenn Sie die Befehlszeile verwenden, um mit Ihrem Datenbanksystem zu arbeiten, öffnen Sie eine datenbankspezifische Server-Eingabeaufforderung, die in der Regel mit Ihrem Benutzerkonto für dieses Datenbankverwaltungssystem verbunden ist. Wenn Sie beispielsweise eine MySQL-Server-Eingabeaufforderung öffnen und sich mit Ihrem MySQL-Benutzer anmelden würden, würden Sie eine Datenbankaufforderung wie folgt anzeigen:

Jeder Befehlszeilenclient für DBMS hat seine eigene Syntax für Befehle.

Nachdem Sie sich mit SQL-Constraints vertraut gemacht haben, könnten Sie diese Constraints mit einer MySQL-Datenbank durch Ausführen dieser Befehle verwenden:

  • CREATE DATABASE, um eine Datenbank zu erstellen.
  • USE, um eine Datenbank auszuwählen.
  • CREATE TABLE, um eine Tabelle mit Spezifikationen für die Spalten und die auf diese Spalten angewendeten Constraints zu erstellen.
  • ALTER TABLE mit ADD, um Constraints zu einer vorhandenen Tabelle hinzuzufügen, und mit DROP CONSTRAINT, um ein Constraint aus einer vorhandenen Tabelle zu löschen.

Sie können Ihre MySQL-Datenbankkenntnisse mit der How To Use SQL-Serie weiterentwickeln.

Mit Redis haben Sie Redis mit den folgenden Befehlen installiert und gesichert und mit Umbenennungsbefehlen experimentiert:

  • auth zur Authentifizierung von Clients für den Datenbankzugriff.
  • exit und quit, um die Redis-CLI-Eingabeaufforderung zu verlassen.
  • get zum Abrufen des Schlüsselwerts.
  • ping zum Testen der Konnektivität.
  • set zum Festlegen von Schlüsseln.

Und im MongoDB-Shell haben Sie binäres JSON (bekannt als BSON) verwendet, um CRUD-Operationen mit den folgenden Methoden der Abfragefilterung durchzuführen:

  • count-Methode, um die Objektanzahl in einer angegebenen Sammlung zu überprüfen.
  • deleteOne, um das erste Dokument zu entfernen, das den Spezifikationen entspricht.
  • deleteMany, um mehrere Objekte auf einmal zu entfernen.
  • find, um Dokumente in Ihrer MongoDB-Datenbank abzurufen, mit der pretty-Druckfunktion, um die Zeilen besser lesbar zu machen.
  • insertOne-Methode, um einzelne Dokumente zu erstellen.
  • insertMany-Methode, um mehrere Dokumente in einer einzigen Operation oder Sammlung einzufügen.
  • ObjectId-Objektdatentyp zum Speichern von Objektidentifikatoren.
  • updateOne, um ein einzelnes Dokument mit angegebenen Schlüsseln zu aktualisieren.
  • updateMany aktualisiert jeden Datensatz in einer Sammlung, der den angegebenen Filtern entspricht.

Sie werden wahrscheinlich CRUD-Operationen verwenden, um mit Ihren Daten in vielen Datenbankverwaltungssystemen zu interagieren.

Überprüfen Sie selbst

What does CRUD stand for?

CRUD ist ein Akronym, das die folgenden vier grundlegenden Datenoperationen beschreibt:

  • Create
  • Read
  • Update
  • Delete

Obwohl Sie sich dafür entscheiden können, Ihre Datenbank direkt über die Befehlszeile zu verwalten, können Sie auch eine grafische Benutzeroberfläche (GUI) für viele gängige Datenbankverwaltungssysteme verwenden.

Verwendung einer grafischen Benutzeroberfläche

Es gibt viele verschiedene GUI-Tools, um mit Ihrer Datenbank zu arbeiten, wenn Sie sich gegen die Verwendung des entworfenen CLI-Tools entscheiden.

Um die MySQL-Verwaltung über das Web zu handhaben, können Sie phpMyAdmin verwenden, indem Sie es auf verschiedenen Betriebssystemen installieren und absichern oder eine Remote-Verbindung zu einer verwalteten MySQL-Datenbank herstellen. Sie können auch MySQL Workbench verwenden, um eine Verbindung zu einem MySQL-Server herzustellen.

Ähnlich wie phpMyAdmin ist pgAdmin eine Web-Benutzeroberfläche zur Verwaltung von PostgreSQL. Sie können es im Servermodus installieren und konfigurieren oder es verwenden, um automatische Backups mit pgAgent zu planen.

Für MongoDB könnten Sie in Betracht ziehen, MongoDB Compass als grafische Benutzeroberfläche zu verwenden, um auf Ihre Datenbank zuzugreifen.

Ob Sie sich für die Verwendung der Befehlszeile oder einer grafischen Benutzeroberfläche entscheiden, Sie haben nun die notwendigen Tools, um Ihr Datenbanksystem zu verwalten.

Was kommt als Nächstes?

Mit einem besseren Verständnis von Datenbanken und gängigen Datenbankverwaltungssystemen können Sie Ihre Daten speichern und verwalten oder eine Anwendung erstellen, die ein Datenbanksystem verwendet.

Wenn Sie mehr über die Arbeit mit spezifischen Datenbankverwaltungssystemen erfahren möchten, können Sie unserer Reihe „Wie man SQL verwendet“ und „Wie man Daten mit MongoDB verwaltet“ folgen. Wenn Sie Probleme mit MySQL haben, können Sie mit „Wie man Probleme in MySQL diagnostiziert“ debuggen. Bei MongoDB-Problemen bewerten Sie, wie Ihre Probleme mit „Wie man CRUD-Operationen in MongoDB durchführt“ zusammenhängen.

Wenn Sie bereit sind, Ihre Apps mit Datenbanken zu erstellen, versuchen Sie, diesen Anleitungen für gängige Anwendungsstapelaufbauten zu folgen:

Wenn Sie es bevorzugen, Ihre Apps mit vollständig verwalteten Datenbanken zu erstellen, werfen Sie einen Blick auf die DigitalOcean-Angebote für verwaltete MongoDB-Cluster, MySQL oder PostgreSQL-Hosting und verwalteten Redis. Sie können auch eine beliebte Datenbankoption für eine Installation mit einem Klick im DigitalOcean Marketplace wählen.

Mit Ihrem neu erworbenen Wissen über Datenbanken können Sie auch Ihre Cloud-Reise mit Containern und Sicherheit fortsetzen. Wenn Sie es noch nicht getan haben, schauen Sie sich unsere Einführungsartikel zu Cloud-Servern und Webservern an.

Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint