it-kram

Kram, Zeugs und Gedöns zu so IT-Sachen

Wozu ein DBMS verwenden?

Auf den ersten Blick scheint es wesentlich einfacher alle aufkommenden Daten einfach in Textdateien oder auf Karteikarten zu schreiben. Bei genauerer Betrachtung entstehen dabei aber folgende Probleme (die ein DBMS optimalerweise nicht hat).

Redundanz

Daten würde mit hohe Wahrscheinlichkeit mehrfach gespeichert werden bzw. es würden von einem Datensatz viele Kopien existieren.

Ausgehend von einer Bibliotheksverwaltung auf Papier müsste für jedes verliehene Buch der Zettel mit den Informationen zum Buch und der Zettel mit den Informationen zum Leihenden kopiert und zusammen abgeheftet werden.

Inkonsistenz

Heiratet der Leihende nun und ändert dadurch seinen Nachnamen müssten alle Leihvorgänge des Leihenden herausgekramt werden und die Zettel mit seinen Informationen müssten aktualisiert werden. Wird das bei irgendeinem vergangenen Leihvorgang vergessen, so ist der Datenbestand inkonsistent.

Fehlende Zugriffsbeschränkungen / Sicherheitsprobleme

In einer auf Textdatei basierenden Datenbank lässt sich eine feine Zugriffsteuerung sehr schwer realisieren. Beispielsweise sollen Personen X Daten nur lesen dürfen, Personen Y Daten auch schreiben und ändern dürfen und Personen Z  sollen ebenfalls alle Daten lesen können, aber nur neue Daten anlegen dürfen (also bestehende Daten nicht ändern dürfen) und so weiter…

Integritätsverletzungen

Darüber hinaus sollen für bestimmte Vorgängen z.B. Vorbedingungen erfüllt sein. Also Peter darf zwar grundlegend Daten schreiben, aber eben nur wenn die bestehende Daten Bedingung X und Y erfüllen.

Beispiel: “Peter darf nur Bücher ausleihen wenn er einen Bibliotheksausweis besitzt und keine Leihfristen überzogen hat.”

Probleme bei Mehrbenutzerbetrieb

Einfach Dateien werden bspw. nichts zwangsläufig bei einem Zugriff gelockt/gesperrt. Bearbeiten nun zwei Mitarbeiter der Bibliothek die gleiche Kundendatei, dann wird derjenige der als letztes speichert alle Änderungen des anderen Mitarbeiters überschreiben.

Verlust von Daten

Werden einzelnen Dateien zu Leihvorgängen beschädigt oder zerstört, dann existieren eher keine Mechanismen zu einer konsistenten Datenwiederherstellung.

Hohe Entwicklungskosten

Bei jeder neuen Entwicklung muss erst einmal eine neue Datenbank mit entsprechenden Schnittstellen und so weiter entwickelt werden. Das kostet natürlich Zeit und Geld.

Korrektheit von Algorithmen

Eine Anforderung an eine Algorithmus ist die Korrektheit. Scheint selbstverständlich, ja.

“Mit dem Testen von Algorithmen und Computerprogrammen kann man das Vorhandensein von Fehlern beweisen, aber nicht die Abwesenheit von Fehlern.” — Edsger Wybe Dijkstra

Weitgehend gilt ein Algorithmus als korrekt, wenn dieser die Eigenschaften der Endlichkeit und Determiniertheit erfüllt. Also mit dem aus der Eingabe resultierenden Ergebnis stoppt bzw. terminiert.

Genauer betrachtet wird dann noch zwischen “partieller Korrektheit” und “totaler Korrektheit” unterschieden.

Partiell korrekt gilt ein Algorithmus dann, wenn bei gültiger Eingabe das richtige Ergebnis berechnet wird. Von totaler Korrektheit wird dann gesprochen, wenn der Algorithmus dann auch noch terminiert.

Eigenschaften von Algorithmen

Ein Algorithmus ist ganz allgemein beschrieben ein Verfahren zur Lösung eines Problems.

Sinnvolle Algorithmen sind nur möglich wenn mindestens ein Eingangswert und ein Ausgangswert vorhanden sind. Darüber hinaus besitzen Algorithmen folgende Eigenschaften.

Endlichkeit

Ein Algorithmus muss unabhängig von der Eingabe nach einer endlichen Zahl von Schritten terminieren/anhalten. Endlosschleifen sind also unzulässig.

Determiniertheit

Ein Algorithmus muss bei gleichen Startbedingungen auch immer zum gleichen Ergebnis führen. Liefert ein bestimmter Algorithmus mit dem Eingabewert 4 das Ergebnis 8, dann muss das Ergebnis mit diesem Eingabewert immer 8 lauten.

Effektivität

Ein Algorithmus kommt mit den zur Verfügung stehenden Ressource aus. Nutzt also möglichst wenig Speicher und verursacht eine möglichst geringe Netzlast.

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.