Inhalt
- Wofür sind Datenbanken gut?
- Fünf Arten von Daten
- Drei Organisationsebenen
- NULL und EINZIGARTIG
- SQL
- Beitreten
- Schlüssel und Indizes
- Entitätsbeziehungen
- Normalisierung
- Herzliche Glückwünsche!
Charles ist ein Software-Ingenieur und College-Professor, der sich für Technologie, Medizin, Wirtschaft und Ernährung interessiert.
Wofür sind Datenbanken gut?
Die meisten Leute werden sagen, dass sie Daten speichern. Das ist nicht wahr.
Datenbanken sind schrecklich beim Speichern von Daten. Wenn Sie nur Daten speichern möchten, verwenden Sie Dateien. Komprimieren Sie die Dateien und erstellen Sie redundante Sicherungen. Eine Datenbank nimmt leicht das 10-fache des Speicherplatzes ein.
Datenbanken eignen sich gut zur Beantwortung von Fragen. Zu diesem Zweck verwenden sie zusätzlichen Arbeitsspeicher und Speicherplatz, um die Geschwindigkeit zu verbessern. Zwischen Geschwindigkeit und Raum gewinnt die Geschwindigkeit immer, bis Ihnen der Raum ausgeht.
In diesem Tutorial werde ich grundlegende Datenbankkonzepte behandeln, damit Sie die von Ihnen verwendeten Datenbanken verstehen und hoffentlich Probleme und Funktionsanforderungen effektiver kommunizieren können. Lass uns anfangen.
Fünf Arten von Daten
Der kleinste Teil einer Datenbank wird als Feld bezeichnet. Daten in einem Feld sind einer von fünf Grundtypen.
- Zeichenfolgentypen werden als CHAR, VARCHAR, VARCHAR2 implementiert. Der Unterschied zwischen diesen Typen ist nur wichtig, wenn Sie ein DBA sind. Alle Zeichenfolgen werden zum Speichern von allem verwendet, was Sie auf einer Tastatur eingeben können. Abhängig von der verwendeten Software kann eine Zeichenfolge bis zu 1000 Zeichen lang sein. Zeichenfolgen sind die gebräuchlichste und wichtigste Art von Daten, und Sie können sie für alles verwenden, aber manchmal ist eine besser geeignete, spezialisiertere Art verfügbar.
- Ganzzahlen, auch INT genannt, werden zum Zählen verwendet, ausdrücken, welche oder wie viele. Sie werden auch häufig als Indizes verwendet, die später erläutert werden.
- Gleitkommazahlen, auch NUMBER genannt, werden für Messungen verwendet, um auszudrücken, wie viel oder für die allgemeine Mathematik.
- Daten, die mit den Typen DATE oder DATETIME dargestellt werden, werden für Kalender- oder Zeitplaninformationen verwendet. Geburtstage, Hochzeiten, Stundenpläne, Arbeitspläne, Termine und Reservierungen verwenden DATEN, um einen Zeitpunkt anzugeben, zu dem etwas passiert ist oder passieren soll.
- Binäre große Objekte, im Datenbankjargon auch als BLOBs bezeichnet, werden zum Speichern von Objekten verwendet, die für eine Zeichenfolge zu groß sind oder ist in einem speziellen Format nicht mit Text kompatibel.BLOBs können komprimierte Daten, Bilder, Töne oder Filme enthalten und Hunderte von MB speichern.
Drei Organisationsebenen
Relationale Datenbanken bestehen aus Tabellen, die aus Datensätzen bestehen, die aus Feldern bestehen.
- Felder sind das, was wir gerade mit den fünf Arten von Daten behandelt haben. Jedes Feld hat einen Namen und einen Typ.
- Aufzeichnungen existieren in Tabellen. Eine Tabelle kann 0 oder mehr Datensätze enthalten, aber keine zwei Datensätze können exakt gleich sein.
- Tabellen Jeder hat einen Namen und eine Liste von Feldern. Jeder Datensatz in der Tabelle besteht aus einer Reihe dieser Felder.
NULL und EINZIGARTIG
Standardmäßig kann jedes Feld NULL sein, was bedeutet, dass die Daten fehlen. Wenn die Daten im Feld benötigt werden, können Sie sie als NICHT NULL markieren. Wenn ein Feld NICHT NULL ist, können Sie es auch als EINZIGARTIG markieren. Dies bedeutet, dass jeder Datensatz in dieser Tabelle einen anderen Wert für dieses Feld haben muss.
UNIQUE wird in großen Datenbanken sehr geschätzt, da Sie so garantieren können, dass Sie entweder eine oder null Antworten zurückerhalten, niemals zwei oder mehr. In einer Tabelle mit Millionen von Datensätzen kann das Fehlen dieser Garantie leicht zu Seiten und Datenseiten führen, wenn Sie nur nach einem Feld suchen.
SQL
Strukturierte Abfragesprache (SQL) ist das Mittel, um Fragen an Ihre Datenbank zu stellen. Das wichtigste SQL ist eine SELECT-Anweisung, mit der Sie, wie der Name schon sagt, eine Teilmenge Ihrer Daten auswählen und in einen Bericht aufnehmen können.
Eine SELECT-Anweisung besteht aus drei Teilen.
- Der erste Teil ist das Schlüsselwort SELECT, gefolgt von einer Liste von Feldern. In diesen Feldern soll Ihre Antwort aussehen.
- Der zweite Teil ist das Schlüsselwort FROM, gefolgt von einer Liste von Tabellen. Diese Tabellen teilen SQL mit, wo unter den möglicherweise Hunderten von Tabellen in Ihrer Datenbank nach Daten gesucht werden soll.
- Der dritte und optionale Teil ist das Schlüsselwort WHERE, das Sie sich als "wenn" vorstellen können. Wenn die WHERE-Klausel fehlt, werden alle möglichen Antworten zurückgegeben. Falls vorhanden, beschränkt die WHERE-Klausel die Antworten auf diejenigen, die als wahr bewertet werden.
Fügen Sie dazu ein paar Falten für die Bequemlichkeit hinzu. Wenn die Liste der Felder nach SELECT durch * ersetzt wird, sind alle zutreffenden Felder Teil Ihrer Antwort. Wenn die Liste der Felder durch COUNT ( *) ersetzt wird, gibt Ihre Antwort eine Ganzzahl an, wie viele Antworten den logischen Test in der WHERE-Klausel bestanden haben.
SELECT COUNT ( *) FROM LIBRARY_BOOKS;
In diesem Beispiel erfahren Sie, wie viele Datensätze sich in der Tabelle LIBRARY_BOOKS befinden. Sobald Sie SELECT verstanden haben, funktioniert UPDATE genauso, wählt jedoch aus, welche Datensätze geändert werden sollen.
Beitreten
Ein Join ist einfach, wenn Sie eine where-Klausel haben, die die Gleichheit zweier Felder prüft. Normalerweise sind dies Schlüsselfelder in verschiedenen Tabellen, aber sie können auch dasselbe Feld in derselben Tabelle sein.
Die obige Grafik zeigt verschiedene Arten von Verknüpfungen, je nachdem, ob der Test eine Übereinstimmung gefunden hat oder nicht. Dies ist ein schweres Thema, und Sie werden es genauer studieren, wenn Sie viele komplexe SELECT-Anweisungen schreiben.
Schlüssel und Indizes
Nach einem Schlüssel für eine Tabelle suchen Sie, um die gewünschten Datensätze zu finden. Ein Schlüssel ist oft ein Feld, kann aber auch aus mehreren Feldern zusammen bestehen.
Fügen Sie der Tabelle einen Index hinzu, um diese Suche zu beschleunigen. Indizes beschleunigen die Suche, aber das Hinzufügen oder Ändern der Tabellendaten ist langsamer, da Sie die Tabelle aktualisieren und auch den Index aktualisieren müssen. Normalerweise spricht dies für den Index, aber aus Effizienzgründen sollte ein Index so wenige Zahlen und so kleine Felder (in Bytes) wie möglich haben. INT-Indizes sind die besten.
Ein Primärschlüssel ist eine spezielle Art von Schlüssel, bei der jeder Schlüsselwert höchstens einen Datensatz in der Tabelle enthält. Dies ist eine gute Sache für die Effizienz, da die Datenbank die Suche beenden kann, sobald sie einen Datensatz gefunden hat, der mit einem Primärschlüssel übereinstimmt.
Entitätsbeziehungen
- Eins-zu-eins (Datenmodell) - Wikipedia, die freie Enzyklopädie
Eine Eins-zu-Eins-Beziehung ist die einfachste Art und bedeutet, dass für jede Seite höchstens eine Übereinstimmung auf der anderen Seite besteht. Zu den Eins-zu-eins-Beziehungen gehören ein Buch mit dem Umschlag, der linke Schuh rechts und eine Spinne in ihrem Netz. - Eins-zu-viele (Datenmodell) - Wikipedia, die freie Enzyklopädie
Eins-zu-viele-Beziehungen bestehen, wenn eine Seite viele der anderen haben kann, z. B. eine Brieftasche mit vielen Kreditkarten, ein Klassenzimmer voller Schüler und Tasten auf einer Tastatur. - Viele-zu-viele (Datenmodell) - Wikipedia, die freie Enzyklopädie
Viele-zu-Viele-Beziehungen bestehen, wenn Eins-zu-Viele in beide Richtungen gehen. Schüler, die sich für Kurse angemeldet haben, Bilder auf einer Webseite und Freunde, die Freunde haben, sind gute Beispiele.
Normalisierung
Die Datenbanknormalisierung ist sehr trocken und Sie müssen sich nicht so viele Sorgen machen, es sei denn, Sie sind ein DBA. Selbst die meisten Datenbankadministratoren für die meisten Datenbanken müssen nicht viel mehr Normalisierung verstehen als die folgenden.
Es gibt verschiedene Normalisierungsebenen, aber das Wesentliche ist dies. Sie möchten jedes benötigte Datenbit nur einmal, nicht nullmal und nicht zweimal in Ihrer Datenbank speichern.
Angenommen, jedes Buch in der Bibliothek verfügt über ein Bindematerial aus Leder oder Papier und eine Bindefarbe, die für Leder immer schwarz und für Papier immer braun ist. Wenn es viele Bücher jedes Typs gibt, sind Material und Farbe redundante Felder, und für jedes Buch sollte nur eines davon gespeichert werden. Wenn Sie die Verknüpfungen von schwarzem Leder und braunem Papier in eine separate Tabelle einfügen, können Sie diese Daten nicht mehr als einmal speichern.
Was passiert, wenn Sie es mehr als einmal speichern? Natürlich verschwenden Sie Platz, aber das ist nicht das Wichtigste. Sie können auch Fehler oder Auslassungen in Ihre Daten einfügen. Was ist, wenn die Bibliothek aus irgendeinem Grund alle ledergebundenen Bücher verloren hat? Dann wäre die Assoziation von schwarzem Leder nirgends in der Datenbank.
Dies ist der Einfachheit halber ein triviales Beispiel. Stellen Sie sich jedoch vor, eine Datenbank speichert den Namen oder die Telefonnummer einer Person mehrmals. Ein Standort wird möglicherweise aktualisiert und ein anderer mit falschen Informationen belassen.
Um dieses Problem allgemein zu lösen, stellt die Normalisierung die Frage: Gibt es in dieser Tabelle Felder, die vollständig von einem anderen Satz von Nicht-Primärschlüsselfeldern bestimmt werden? (Wird die Buchbindungsfarbe vollständig vom Bindematerial bestimmt?) Wenn dies der Fall ist, möchten Sie diese Felder möglicherweise in einer separaten Tabelle normalisieren.
Herzliche Glückwünsche!
Du hast es bis zum Ende geschafft. Bist du jetzt ein DBA?
Ja, du bist! Aber nur, wenn Sie ein DBA waren, als Sie anfingen zu lesen. Das Einrichten einer kleinen relationalen Datenbank in MySQL oder SQLite ist sehr einfach und kann ohne die minimale Begründung aus diesem Einführungsartikel durchgeführt werden. Wenn Sie wissen, was Sie jetzt tun, werden Sie möglicherweise weniger gefährlich.
Der Weg von hier aus kann Sie zu einem formellen Datenbankkurs, einem Lehrbuch oder einer Videovorlesungsreihe führen oder zumindest zu einer besseren Einschätzung der Daten in den von Ihnen verwendeten Datenbanken und der Arbeit Ihres freundlichen Nachbarschafts-DBA. Sichere Reisen!
Dieser Artikel ist genau und nach bestem Wissen des Autors. Der Inhalt dient nur zu Informations- oder Unterhaltungszwecken und ersetzt nicht die persönliche Beratung oder professionelle Beratung in geschäftlichen, finanziellen, rechtlichen oder technischen Angelegenheiten.