Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Konsistenz-Tests mit Datenbanken/RDBMSs?

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650

    Konsistenz-Tests mit Datenbanken/RDBMSs?

    Kann man eigentlich zu einer Datenbank Konsistenz-Regeln angeben, die dann vom RDBMS überprüft bzw. bei der Eingabe nicht zugelassen werden?

    Überprüfungen wie beispielsweise ob ein vergangenes Datum existiert und wirklich in der Vergangenheit liegt, sollten ja möglichst immer durchgeführt werden, aber die Frage dabei ist ob die Überprüfungen vom RDBMS oder oder einem vorgeschalteten Programm vorgenommen werden können/sollen.

  2. #2
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Na klar, das ist ja eines der Hauptargumente die für eine Datenbank sprechen. Das bedeutet nämlich, dass du die Prüfungen im Programm vereinfachen kannst. Wenn es nicht zulässig ist, erzeut dir die Datenabnk eine Fehlermeldung oder leitet Gegenmaßnahmen ein. Bereits beim Entwurf einer Tabelle kannst du erste Bedingungen definieren.

    Bleibt für dich die Frage, welche Datenbank du nimmst. Ich würde zu PostgreSQL oder Firebird tendieren. Ist eben Geschmackssache.

    Ob MySQL das mittlerweile beherrscht, müssen dir andere erklären.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Aha, und funktioniert das zuverlässig; erkennt z. B. PostgreSQL dass es den 29.3.2003 nicht gab, aber dass es einen 29.3.2000 gab?

    Und kann man auch eigenschaften benachbarter Datensätze überprüfen, beispielsweise ob sich der Wert von foo um max. 10 % von einem auf den (datumsmäßig) nächsten in der Datenbank eingetragenen Datensatz geändert hat?

  4. #4
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    29.02.2003, das sollte kein Prog vor Probleme stellen andernfalls ist das Spielkram.

    Also du kannst auch Regeln aufsetzen, wi z. B.
    • NOT NULL es muss ein Wert vorhanden / eingegeben sein
    • dass ein Feld nur einen bestimmten Wert annehmen kann, z. B. m oder w für männlich / weiblich
    • Dass ein Datensatz (z. Statistik) nur angelegt werden kann, wenn die darin enthaltene Kundenummer in der Kundendatei existiert
    • dass ein Kunde nicht aus der Kundendatei gelöscht werden kann, wenn noch ein Statistiksatz existiert.
    Wenn du noch nie oder wenig mit Datenbanken zu tun hattest, solltest du dir ein Buch zulegen, es sei denn du kommst mit den Ausführungen im Netz klar. Es lohnt sich.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Danke.
    Datenbanken kenne ich aus Vorleseungen/Büchern und nur wenig aus der Praxis.
    Kann PostgreSQL denn bei einem Datensatz low <= open <= high, low <= close <= high und zudem bei einigen Werten eine maximale Schwankung von 90 % von einem Datensatz zu den benachbarten checken?

  6. #6
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Original geschrieben von nobody0
    low <= open <= high, low <= close <= high
    Sorry, da muss ich passen. Diese Bedingungen kamen in meinem Selbststudium (noch) nicht vor.

    Ich hoffe da kann jemand anderes in die Bresche springen.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  7. #7
    Registrierter Benutzer
    Registriert seit
    20.08.2001
    Beiträge
    79

    Re: Konsistenz-Tests mit Datenbanken/RDBMSs?

    Original geschrieben von nobody0
    Kann man eigentlich zu einer Datenbank Konsistenz-Regeln angeben, die dann vom RDBMS überprüft bzw. bei der Eingabe nicht zugelassen werden?

    ... aber die Frage dabei ist ob die Überprüfungen vom RDBMS oder oder einem vorgeschalteten Programm vorgenommen werden können/sollen.
    In teuren RDBMS geht das alles, was PostgreSQL kann musst du in der Doku nachlesen. Prinzipiell sollte man Integritätsbedingungen natürlich von der Datenbank überprüfen lassen, wenns geht, und nicht vom Benutzerprogramm. Du willst ja i.d.R. mehrere Anwendungen auf die gleiche Datenbank zugreifen lassen, dann müsstest du die Integritätsbedingungen überall überprüfen.

    http://www.db.fmi.uni-passau.de/publ...S/Kapitel5.pdf
    http://www.db.fmi.uni-passau.de/publ...EIS/index.html

    MfG Xare

  8. #8
    Registrierter Benutzer
    Registriert seit
    21.06.1999
    Beiträge
    677
    Selbstverständlich sind beliebige Konsistenzprüfungen mit PostgreSQL möglich. Ich würde aber nur wirklich wichtige Prüfungen automatisieren. Grundsätzlich gibt es

    a) Eingebaute CONSTRAINT Mechanismen, wie z.B. CHECK, FOREIGN KEY, PRIMARY KEY. Soche Constraints sind unbedingt zu empfehlen. Insbesondere FOREIGN KEY Constarints sind lebenswichtig; eine Datenbank, die das nicht unterstützt, solltest Du nicht ernsthaft in Erwägung ziehen.

    a) Beliebige Constraints sind möglich über Trigger. Idee: werfe eine Exception, wenn die Bedingung verletzt ist. Das würde ich nur mit Bedacht einsetzen, weil das die Wartung der Datenbank erschweren kann.

    In der PostgreSQL Doku findest Du dazu alles was du brauchst:
    http://www.postgresql.org/docs/7.4/s...nstraints.html

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •