Datenbank

SQL: Aggregierende Funktionen

Aggregatfunktionen wie COUNT, SUM, AVG, MIN und MAX fassen die Werte vieler Zeilen zu einem Wert zusammen – für die ganze Tabelle oder mit GROUP BY je Gruppe. Mit HAVING filterst Du nach diesen Ergebnissen. Der Artikel zeigt außerdem, wie NULL-Werte, Verbünde (JOIN) und Prozentrechnungen die Ergebnisse beeinflussen, wie Du mit Aggregaten weiterrechnest (z. B. Deckungsbeitrag), Streuung und Zeitdauern auswertest und welche Fehler typisch sind.

Einfache Abfragen mit Selektion und Projektion (SQL-DQL)

Der am häufigsten benötigte SQL-Befehl ist der SELECT-Befehl. In diesem Grundlagenartikel werden die Bestandteile Projektion und Selektion sowie die einzelnen Clauses einfacher SELECTs beschrieben. Dazu gehören Spaltenaliase, Bedingungen mit Mustern, Bereichen und NULL – samt der typischen Stolperfallen bei Postleitzahlen, Datumswerten und Umlauten. Sortieren und Begrenzen behandelt ein eigener Artikel.

„Let’s Meet-Datenbank“ Beispielumsetzung  Teil 1: Modellierung

Dies ist der erste Teil (Modellierung) einer Beispiellösung für die Let’s Meet“ Datenbank-Lernsituation. Es führen viele Wege zum Ziel – der einzig richtige ist der Weg, den man selbstständig gegangen ist. Daher ist diese Variante bestenfalls als eine Ideenskizze zu verstehen, die genutzt werden kann, wenn man nicht mehr weiterkommt. Einige Schritte habe ich bewusst etwas umständlicher realisiert, um so bestimmte Techniken des Datenbankentwurfs bzw. Abfragetechniken darstellen zu können.

Modellierung einer Datenbank: Entity-Relationship-Modell

Im konzeptuellen Modell wird die innere Struktur der Daten erfasst, die in einer Datenbank persistiert werden sollen. Auf Basis des so erstellten ER-Modells kann später entschieden werden, welches Datenmodell zur Speicherung der vorliegenden Struktur am geeignetsten ist. Der Artikel erklärt die Chen-Notation mit allen Beziehungsarten (auch rekursiv, mehrfach und mit Attributen) und zeigt Schritt für Schritt, wie man aus einem Anforderungstext oder einem Beleg ein ER-Diagramm entwickelt, Zeiträume und Messwerte modelliert und Schlüssel kennzeichnet.

Maria aus dem Container

Mit MariaDB lassen sich besonders leicht Container aufsetzen und mit Daten befüllen. In diesem Tutorial werden Voraussetzungen für den Container zusammengetragen, die nötigen Befehle zusammengestellt. Und das Ergebnis kann sich sehen lassen: MariaDB-Container sind nur halb so groß wie MySQL-Container und nur ein Viertel der MS-Boliden.

Befüllter MS-SQL-Datenbankcontainer auf Knopfdruck

Datenbankserver lassen sich auf so ziemlich jedem Betriebssystem aufsetzen. Es ist jedoch häufig wichtig, unterschiedliche Server, definierte Datenbestände oder reproduzierbare Systemumgebungen auf Knopfdruck zu erstellen: für diese Anwendungsfälle spielen Container eine herausragende Rolle. Im folgenden Infotext wird kurz beschrieben, wie ein Container mit einem MS-SQL-Server aufgesetzt und benutzt werden kann. Es werden Voraussetzungen für den Container zusammengetragen, die nötigen Dateien erstellt und Befehle genannt. Am Ende können wir individuelle versionierbare Datenbanken auf Knopfdurck zur Verfügung stellen. Oder, um es zu buzzworden: “Infrastructure as Code”.

Lernsituation: Migration der Let’s Meet-Datenbank

Es ist nur noch eine Gesamtübersicht einer Datenbank in einer Tabelle vorhanden. Aus diesen Daten soll die ursprüngliche DB wiederhergestellt werden. Diese soll modelliert, importiert und im Bestand normalisiert werden. (DB Entwurf, Normalisierung, SQL-DDL, SQL-DML, Container, DBMS-Frontends und -Backends).

Der logische Datenbankentwurf mit dem Relationenmodell

Im logischen Modell legen wir uns fest, wie die logische Verknüpfung der Daten untereinander umgesetzt werden soll. Im Relationenmodell erfolgt dies über Schlüsselattribute. Dieser Artikel erklärt die unterschiedlichen Wege, Schlüsselattribute zu bestimmen, die Transformationsregeln, um die Beziehungstypen des Entity-Relationship-Modells in Schlüsselbeziehungen umzusetzen, führt Constraints ein, die Attributen im logischen Modell zugeordnet werden, und zeigt an Beispielen, wie man aus einem Anforderungstext oder einem Beleg ein Relationenmodell in der dritten Normalform entwickelt.

Anomalien und deren Vermeidung durch Normalisierung eines Relationenschemas

Bei einem schlechten Design einer Datenbank werden Informationen mehrfach gespeichert (Redundanz) – und es ergeben sich schnell Inkonsistenzen beim Einfügen, Aktualisieren und Löschen von Daten – die „Anomalien“. Eine Best-Practice-Sammlung, um dies durch Design zu verhindern, stellen die Normalformen dar. Dieser Artikel beschreibt die erste (1NF, Atomarität), zweite (2NF, Unabhängigkeit der Attribute von Teilschlüsseln) und dritte (3NF, Unabhängigkeit von Nichtschlüsselattributen) Normalform und die Schritte, wie man ein Relationenschema entsprechend umwandelt.