trabait: dynamische abfragen

hallo zusammen,

leider besitze ich sehr viel gefährliches Halbwissen, was Datenbanken programmieren usw angeht. Darum möchte ich gern ein paar Fragen loswerden bevor ich ggf. zu falschen Entschlüssen gelange.

als Admin in einem Unternehmen benutzen wir eine ERP Software auf SQl Grundlage.
Diese Datenbank verwaltet alle Prozesse ABER, Abfragen (Qs) müssen über Anforderung an den Programmierer gestellt werden und sind letztlich nur irgendwelche Listenausgaben.
Problem ist das diese Listen Grundlage für weitere Berechnungen sind.
D.h. aktuell werden diese Listen in Excel-Importiert um daraus neue Qs zu erstellen.
Ich kann mir beim besten Willen nicht vorstellen das dies Sinn und Zweck einer DB sein soll.
Es sollte doch möglich sein, diese Abfragen als dynamische Tabellen auszu geben um dann weitere Suchfilter hinzu zu fügen.
Villt. halte ich mich zu Allgemein gerne Beantworte ich weitere Fragen um mein grundlegendes Verständnis von DB`s zu erweitern.

thx euer Traba

  1. Hello Traba,

    es ist bei Datenbankabragen, die eine Menge > 1 Tupel ergeben, immer zu beachten, wie mit dieser Liste umgegangen wird. Da eine Liste mit z.B. 2000 Ergebnissätzen selten auf einer Seite angezeigt werden kann, muss man also "blättern".

    Wenn man dabei keine Fehler produzieren will, also keine Datensätze doppelt debei haben oder andere aus Versehen auslassen will, muss man in einer _statischen_ Ergebnismenge blättern. Nur diese gibt die Gewähr, dass sie sich während des Blätterns nicht ändert.

    Diese Liste nennt man auch "Snapshot".

    In einer Datenbank, auf die viele Benutzer Zugriff haben, muss man damit rechnen, dass sich während der Durchsicht durch den einen User bereits schon wieder etwas ändert (veranlasst durch andere User) bei den bereits gesichteten Datensaätzen oder den noch zu sichtenden.

    Eine derart "dynamische" Abfrage, bei der man sich also nicht die Ergebnismenge merkt, sondern die Abfragevorschrift, nennt man auch "Dynaset" oder "dynamische Abfrage". Dynamische Abfragen zur Bearbeitung konkurrenzfest zu machen, ist extrem aufwändig und hält auch meistens den Verkehr auf.

    Die die möglichen Abfragevorschriften bereitszustellen, um z.B. über eine HTTPs-Schnittstelle mit dem Browser auf den Datenbestand zugreifen zu können, ist allerdings nicht so unendlich schwer. Eine solche Schnittstelle sollte ein guter Programmierer in zwei bis drei Tagen relativ wasserdicht herstellen können. Mit deren Hilfe könnten die Anwender sich die Daten dann selber bereitstellen und die Bedingungen vorher festlegen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. hi,

      Die die möglichen Abfragevorschriften bereitszustellen, um z.B. über eine HTTPs-Schnittstelle mit dem Browser auf den Datenbestand zugreifen zu können, ist allerdings nicht so unendlich schwer. Eine solche Schnittstelle sollte ein guter Programmierer in zwei bis drei Tagen relativ wasserdicht herstellen können. Mit deren Hilfe könnten die Anwender sich die Daten dann selber bereitstellen und die Bedingungen vorher festlegen.

      Seitennummer, Suchkriterium (*): Ein Fall für'n Cookie, der länger als eine Session lebt. Zwei Möglichkeiten: Entweder alles (*) im Cookie speichern oder über eine ID serverseitig referenzieren.

      Hotti

      1. Hello Hotti,

        Die die möglichen Abfragevorschriften bereitszustellen, um z.B. über eine HTTPs-Schnittstelle mit dem Browser auf den Datenbestand zugreifen zu können, ist allerdings nicht so unendlich schwer. Eine solche Schnittstelle sollte ein guter Programmierer in zwei bis drei Tagen relativ wasserdicht herstellen können. Mit deren Hilfe könnten die Anwender sich die Daten dann selber bereitstellen und die Bedingungen vorher festlegen.

        Seitennummer, Suchkriterium (*): Ein Fall für'n Cookie, der länger als eine Session lebt. Zwei Möglichkeiten: Entweder alles (*) im Cookie speichern oder über eine ID serverseitig referenzieren.

        Welche Seitennummer willst Du dir merken und wofür?

        Wenn es um verlässliche Reproduzierbarkeit geht, ist das Thema "Listenabfragen" eine Wissenschaft für sich. Da hilft eine Seitennummer alleine überhaupt nicht.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. da dieses Thema weiterhin sehr aktuell für mich ist hier nochmal ein paar Fragen.
          Eine HTTP Schnittstelle braucht wahrscheinlich auch eine Grundlage (Server?, bietet sich Intranet an?)
          Große Auswertungen führen uns im moment an die Hardwareleistungsgrenze daher ist eine Hardwareerweiterung um umgänglich.
          Welche besonderen Hardware-Anforderungen würde eine HTTPS Schnittstelle stellen. (Ich vermute mehr Ram und mehr Kerne)
          Müßte auf den Clients zusätzlich Software installiert werden?
          Was kostet ein guter Programmierer üblicher Weise pro Auftrag Stunde?

          1. Hello,

            da dieses Thema weiterhin sehr aktuell für mich ist hier nochmal ein paar Fragen.

            Eine HTTP Schnittstelle braucht wahrscheinlich auch eine Grundlage (Server?, bietet sich Intranet an?)

            Wie groß ist denn die Firma? Wieviele Benutzer müssen auf die Daten gleichzeitig zugreifen können?

            Zunächst einmal müsste das DBMS benannt werden. Vielleicht gibt es dafür ja schon fertige Abfragetools, die den sicheren Zugriff ermöglichen.

            Große Auswertungen führen uns im moment an die Hardwareleistungsgrenze daher ist eine Hardwareerweiterung um umgänglich.

            Für eine Lösung mittels Browser benötigt man neben dem Datenbankserver auf jeden Fall einen Webserver.

            Welche besonderen Hardware-Anforderungen würde eine HTTPS Schnittstelle stellen. (Ich vermute mehr Ram und mehr Kerne)

            Eigentlich nur doe passende Webserver-Einrichtung und ein Zertifikat dafür. Da es sich um eine Intranetlösung handeln wird, kann man sich das auch selber basteln. Es geht dabei ja nur darum, dass Leute, die Zugriff auf das Intranet haben, aber keine Berechtigung, sich diese nicht erschleichen können.

            Müßte auf den Clients zusätzlich Software installiert werden?

            Vermutlich nicht.

            Was kostet ein guter Programmierer üblicher Weise pro Auftrag Stunde?

            Man sollte für diese Aufgabenstellung mit 60 bis 90 Euro/Stunde rechnen zuzügliche Nebenkosten.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
    2. Hello Tom,

      vielen dank für deine ausführliche Erläuterung!
      Mit der HTTPs-Schnittstelle rennst du bei mir offene Tore ein.
      Natürlich würden mich Vor -und Nachteile, Voraussetzungen und Zugriffszeiten interessieren.

      1. Hello,

        vielen dank für deine ausführliche Erläuterung!
        Mit der HTTPs-Schnittstelle rennst du bei mir offene Tore ein.
        Natürlich würden mich Vor -und Nachteile, Voraussetzungen und Zugriffszeiten interessieren.

        Dann will ich die Gedanken und Erfahrungen dazu gerne noch weiter ausführen:

        Der Zugriff auf Datenbestände sollte in einer Firma (also auch innen!) nur in einem abgeschlossenen Bereich oder über ein gesichtertes Protokoll stattfinden können. Daher meien Forderung nach HTTPS, was ja heutzutage leicht zu erfüllen ist.

        Insbesondere die Herstellung der Zugangsberechtigung ("Passwortübertragung", Sessionkey) müssen bereits sicher sein.

        Jeder Zugriff auf empfindliche Daten muss registtriert werden können.
        Der Zugriff sollte daher nicht mehr direkt auf Tabellen der Datenhaltung erfolgen, sondern über Stored Procedures. Diese lassen nur vergefertigte Zugriffsmodelle zu und ermöglichen auch in einfachen DBMS ein Select-Monitoring.

        Zugriffsrechte auf Daten sollten nicht nur horizontal einstellbar sein, sondern auch vertikal. Horizontal können die meisten DBMS von Haus aus. Vertikal ist häfig mit einem Eingriff in das Datenmodell verbunden. Dies ist dann aber selbst bei einfachen DBMS mit den eben erwähnten Stored Procedures leicht herstellbar.

        Wenn diese Basisfunktionalitäten hergestellt sind, dann kann man konfigurierbare Abfragen mit einem einfachen Browser vorbereiten und diese dann ausführen. Man könnte im Sinne der Datensicherheit auch die Ergebnismengen beschränken und Zugriffskreise bilden.

        Als Beispiel: Ein Außendienstmitarbeiter des Gebietes A muss seine Kunden sehen (listen) und bearbeiten können, aber bei den Kunden aus den anderen Kreisen nur feststellen können, ob diese schon existieren, also gezielte Stichproben nehmen können. Wenn Ein Kunde aus dem Kreis C also im Kreis A auch anfragt, wird das bemerkt, ohne das der AD aber vollständige Einsicht bekommt.

        Die Schnittstelle für HTTPS->Datenbank zu erstellen ist wohl nachher nicht mehr so schwer. Das wird hier ja tagtäglich vorgeführt. Zuerst mus aber das Datenbankkonzept nebst Datenmodell mit den Geschäftsregeln stehen.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de