SQL: Anleitungen und Praxiswissen | Seite 10 | mironsoft Blog
SQL
-
29.09.2025
Datenmodellierung mit Entity-Relationship-Diagrammen ist der Schritt vor jeder einzelnen CREATE TABLE Anweisung: Entitaeten, Attribute und Beziehungen werden zuerst konzeptionell festgelegt, bevor sie in konkrete Tabellen und Fremdschluessel uebersetzt werden. Dieser Beitrag erklaert Entitaeten, Attribute, Beziehungstypen und Kardinalitaetsnotation an einem durchgehenden Beispiel eines Bibliothekssystems und zeigt den vollstaendigen Weg vom Diagramm zur SQL-DDL.
-
25.09.2025
Magento Catalog SQL: catalog_product_entity, EAV-Attributtabellen, Kategoriezuordnung, Lagerbestand mit MSI, konfigurierbare Produkte und ein vollständiger Query für Produkt + Name + Preis + Status + Stock in einer Abfrage.
-
24.09.2025
MVCC erlaubt es einer Datenbank, jeder Transaktion eine konsistente Momentaufnahme der Daten zu zeigen, ohne dass Lesevorgänge Schreibvorgänge blockieren oder umgekehrt. Statt Zeilen zu sperren, verwaltet die Datenbank mehrere Versionen jeder Zeile gleichzeitig, PostgreSQL und InnoDB lösen das auf unterschiedliche Weise, mit direkten Folgen für Vacuum, Purge und die Auswahl des Isolation Levels.
-
21.09.2025
Ein FULL OUTER JOIN liefert alle Zeilen aus beiden beteiligten Tabellen, unabhängig davon, ob ein passendes Gegenstück auf der jeweils anderen Seite existiert, und füllt fehlende Werte mit NULL auf. Nicht jede Datenbank unterstützt diese Operation jedoch nativ: MySQL kannte bis vor kurzem keinen eigenen FULL-JOIN-Syntax, und auch in älteren Versionen anderer Systeme fehlt die Funktion teilweise vollständig. Dieser Artikel zeigt, wie sich ein FULL OUTER JOIN zuverlässig über eine Kombination aus LEFT JOIN, RIGHT JOIN und UNION nachbilden lässt, welche Alternative mit LEFT JOIN und NOT EXISTS in bestimmten Fällen vorzuziehen ist, und wo typische Korrektheits- und Performance-Fallen bei der Emulation lauern.
-
20.09.2025
Ein normaler Index beschleunigt das Finden von Zeilen anhand einer Filterbedingung, verlangt danach aber in den meisten Fällen einen zusätzlichen Zugriff auf die eigentliche Tabelle, um die restlichen angefragten Spalten zu holen. Dieser zusätzliche Sprung, oft Key Lookup oder Bookmark Lookup genannt, kostet bei vielen Treffern spürbar Zeit. Ein Covering-Index enthält alle für eine Abfrage benötigten Spalten bereits selbst und macht den Lookup dadurch vollständig überflüssig, ein Effekt, der als Index-Only-Scan bezeichnet wird.
-
20.09.2025
Ein Deferred Constraint verschiebt die Prüfung eines Foreign Keys, Unique- oder Exclude-Constraints vom Zeitpunkt jedes einzelnen Statements auf das Ende der Transaktion. Dieser Beitrag zeigt, wie DEFERRABLE INITIALLY DEFERRED und SET CONSTRAINTS funktionieren, wie sich zirkuläre Fremdschlüssel und Primary-Key-Swaps damit erst sauber umsetzen lassen, und welche Vendor-Unterschiede in der Praxis zu beachten sind.
-
18.09.2025
Jede neue Datenbankverbindung kostet Speicher, CPU-Zeit und Zeit fuer den Verbindungsaufbau selbst. Connection Pooling haelt eine begrenzte Anzahl wiederverwendbarer Verbindungen offen und verhindert, dass eine Anwendung unter Last mehr Verbindungen oeffnet, als die Datenbank verkraften kann. Wer Pool-Groesse falsch dimensioniert, produziert entweder Verbindungsfehler oder verschenkt Kapazitaet.
-
18.09.2025
Ein ETL-Skript, das beim ersten Testlauf funktioniert, aber beim zweiten Lauf doppelte Datensätze erzeugt oder bei einem Teilfehler die Zielquelle in einem inkonsistenten Zustand hinterlässt, ist keine Seltenheit. Claude hilft, diese Fallstricke von Anfang an zu vermeiden, indem es Idempotenz, Fehlerbehandlung und Datenqualitätsprüfungen direkt in die generierte Extraktions-, Transformations- und Ladelogik einbaut. Dieser Artikel zeigt den kompletten Entwicklungsprozess an einem realistischen Migrationsbeispiel.
-
14.09.2025
Ein automatisch hochzaehlender Primaerschluessel klingt nach einem einheitlichen Konzept, ist es aber nicht. MySQLs AUTO_INCREMENT, PostgreSQLs SERIAL und Sequences, SQL Servers IDENTITY und Oracles Sequence-Objekte unterscheiden sich in Semantik, Nebenlaeufigkeit und Migrationsverhalten so stark, dass ein blinder Wechsel zwischen den Systemen zu Luecken, Kollisionen oder falschen Annahmen im Anwendungscode fuehrt.
-
13.09.2025
CID, vier Isolation Levels mit konkreten Anomalien, MVCC-Snapshot-Reads und echte Race Conditions im Magento-Shop — plus bewährte Lösungspatterns mit SELECT FOR UPDATE, optimistischem Locking und SAVEPOINT.