Duplikate finden per Abfrage

Wenn man lange genug mit einer Datenbank arbeitet, legt man früher oder später einen Datensatz mit redundanten Daten an. Ob es sich um einen Kunden handelt, der zum zweiten Mal in der Kunden-Tabelle erscheint oder um eine Kategorie in der Kategorientabelle – schützen können Sie sich davor nur durch das Festlegen entsprechender eindeutiger Indizes. Diese sorgen für die Meldung eines Fehlers, wenn jemand versucht, das oder die betroffenen Felder eines neuen Datensatzes mit bereits vorhandenen Daten zu füllen. Manchmal vergisst man das jedoch. Dann lautet die Aufgabe: Duplikate finden! Wie das gelingt, zeigt der vorliegende Artikel.

Weiterlesen

Löschweitergabe in der Praxis

Die Löschweitergabe ist eines der Features der referentiellen Integrität. Bei aktivierter referentieller Integrität bewirkt die Löschweitergabe immer etwas, unabhängig davon, ob Sie die Löschweitergabe aktiviert haben oder nicht. Wenn Sie diese aktiviert haben, löscht sie die mit dem zu löschenden Datensatz verknüpften Datensätze ebenfalls. Wenn Sie sie deaktiviert haben, sorgt sie dafür, dass bereits mit anderen Datensätzen verknüpfte Datensätze nicht mehr gelöscht werden können. In diesem Artikel schauen wir uns das im Detail an und erläutern anhand von Beispielen, wann Sie die Löschweitergabe aktivieren sollten und wann nicht.

Weiterlesen

Inkonsistente Verknüpfungen finden

Inkonsistenzen in einem Datenbestand können an verschiedenen Stellen entstehen. Die eine Möglichkeit sind Inkonsistenzen, die in Folge von Duplikaten auftreten – also wenn Sie beispielsweise eine Kategorie in zwei verschiedenen Schreibweisen anlegen. Andere Inkonsistenzen treten bei verknüpften Daten zwischen zwei Tabellen auf, deren Beziehung nicht mit referentieller Integrität definiert ist. Hier kann es sein, dass das Fremdschlüsselfeld Werte enthält, die gar nicht im Primärschlüsselfeld der verknüpften Tabelle auftauchen. Dieser Artikel zeigt, wie Sie solche Inkonsistenzen im Datenbestand aufdecken.

Weiterlesen

Verwaiste Datensätze auffinden

Unter verwaisten Datensätzen verstehen wir solche Datensätze, die nicht über eine Beziehung mit einem Datensatz der anderen an dieser Beziehung verknüpften Tabelle verknüpft sind. Manchmal sind solche Datensätze harmlos und werden unter Umständen sogar noch gebraucht. Manchmal handelt es sich dabei um Karteileichen, die man lieber entsorgen sollte. Für beide Fälle gibt es die gleiche Technik, um verwaiste Datensätze aufzufinden. Dieser Artikel zeigt, wie Sie Abfragen zum Auffinden verwaister Datensätze erstellen.

Weiterlesen

Verknüpfte Daten löschen bei referentieller Integrität

Wenn Sie die Beziehung zweier Tabellen mit referentieller Integrität definiert haben und dabei die Löschweitergabe nicht aktiviert ist, können Sie Daten aus der Tabelle mit dem an der Beziehung beteiligten Primärschlüsselfeld nicht ohne weiteres löschen. Manchmal ist das aber dennoch erwünscht – beispielsweise, wenn die Daten zuvor in ein Archiv übertragen wurden. Wie Sie die Daten dann löschen, stellen wir in diesem Artikel vor.

Weiterlesen

Inkonsistente Duplikate finden per Abfrage

Wenn Sie ein Datenmodell antreffen, das nicht vollständig normalisiert ist, kann es sein, dass dieses aufgrund seiner Beschaffenheit das Speichern von Duplikaten erlaubt. Das ist insbesondere interessant, wenn diese Daten in Tabellen vorliegen, die nicht der dritten Normalform entsprechen. Das bedeutet beispielsweise, dass Sie zu einer Bestellung in einer Bestellungen-Tabelle auch den Kunden inklusive Kundennummer und weiteren Kundendaten angeben. Bevor Sie eine solche Bestellungen-Tabelle in eine Bestellungen- und eine Kundentabelle aufteilen, sollten Sie sicherstellen, dass es keine Inkonsistenzen in den vermutlich bereits vorhandenen Duplikaten gibt und diese gegebenenfalls korrigieren. Um inkonsistente Daten in dieser Form zu finden, verwenden wir am einfachsten eine Abfrage. Wie Sie diese formulieren, zeigt Ihnen dieser Artikel.

Weiterlesen

Reflexive Daten in Abfragen

Im Artikel “Reflexive Daten in Tabellen” haben wir gezeigt, wie Sie reflexiv verknüpfte Daten in einer oder mehreren Tabellen verwalten können. Um sinnvoll auf diese Daten zugreifen zu können, müssen Sie entsprechende Abfragen formulieren. Damit ermitteln Sie dann beispielsweise alle Elemente der obersten Hierarchie-Ebene oder auch alle Elemente, die zu einem übergeordneten Element gehören. Die für die beiden im oben genannten Artikel vorgestellten Datenmodelle für Daten in reflexiven Beziehungen benötigen unterschiedliche Abfragen, die wir in diesem Artikel vorstellen.

Weiterlesen

Laufende Summen in Abfragen

Immer wieder taucht die Frage auf, wie man in Access die Inhalte von Zahlenfelder mehrerer Datensätze aufsummiert. Unter Excel ist das einfach – dort trägt man einfach die Summe aus der Summe bis zur vorherigen Zeile plus dem Wert der aktuellen Zeile ein. ändert man Werte, ändern sich auch die Summen. Im Artikel “Laufende Summen in Tabellen” haben wir uns angesehen, wie dies mit einem zusätzlichen Feld in Tabelle gelingt. In diesem Artikel schauen wir uns an, wie dies unter Access unter Verwendung von Abfragen gelingt.

Weiterlesen

Unterabfragen als Feldinhalt

Dass gespeicherte Abfragen selbst wieder als Pseudotabellen in andere Abfragen integriert und dort mit anderen Tabellen verknüpft werden können, dürfte Ihnen bekannt sein. Weniger verbreitet jedoch sind jene Abfragen, die ungespeichert als SQL-Ausdruck zur Berechnung von Feldinhalten und Bedingungen dienen. Diese mit den Schlagwörtern Unterabfrage oder Subselect bezeichneten Ausdrücke sind Gegenstand dieses Beitrags.

Weiterlesen