Netzwerk Datenbank

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

    Netzwerk Datenbank

    Hallo Com,

    nach langer Recherche im www bin ich mir noch nicht sicher über folgendes Problem einer "Netzwerk Datenbank".
    Ich möchte einfach nur eine DB (z.B. Access(-File)), welche auf einem Netzwerkspeicher liegt und auf die alle PCs (ca. 2-5) im Netzwerk zugreifen können.
    Dazu schrieben User im www, dass das so nicht geht, sondern nur über eine Client-Server Anwendung gemanagt werden kann.
    Gibt es dazu empfehlenswerte Literatur oder Examples? Im Endeffekt möchte ich nur, dass wenn ein PC ein Datensatz ändert,
    dieser bei allen anderen autom. auch geändert wird.
    Meine Frage bei einer Server-Client Architektur wäre auch, wie der Server "aussieht" - ist das dann ein PC? Kann das auch ein Netzwerkspeicher (NAS) sein? ...?

    Vielen Dank
    natürlich kann man DBs ins Netz stellen, und mehrere User greifen drauf zu.
    Allerdings nimmt man in dem Fall üblicherweise eine Server-DB, also keine Access-Datei, sondern glaub Access kann das auch, dass man da Datenbanken iwie installiert.
    MySql und SqlServer werden übrigens hauptsächlich auf Servern genutzt, MySql kann sogar gar nicht dateibasiert.

    Nun weiß ich garnix über Netzwerke, aber ich täte denken, wenns in deim Netzwerk Freigaben gibt, wo die Computer sich gegenseitig auf Platte grabschen können, und da packste die Access-Datei hin - imo müsste das gehen.

    Was anneres ist deine Idee, dass alle Clients automatisch benachrichtigt werden, sobald sich was ändert.
    Das geht normal nicht, normal ist eine Datenbank passiv, also sie bedient Anfragen, aber kommt nicht auf die Idee, selbst iwelche Infos zu verschicken.
    Einzig mir bekannte Ausnahme ist hier SqlServer, der unterstützt ein Feature namens "SqlDependancy", wo gewissermaßen Events an die Clients verschickt werden.
    Ist aber ziemlich advanced.
    Ohne SqlDependancy müssten die Clients halt mw. jede Sekunde pollen, also abfragen, ob Änderungen vorliegen - ich glaube fast, das wäre kaum komplizierter als in die SqlDependanciererei einzusteigen.

    ErfinderDesRades schrieb:

    wenns in deim Netzwerk Freigaben gibt, wo die Computer sich gegenseitig auf Platte grabschen können, und da packste die Access-Datei hin

    So in die Richtung habe ich gedacht.
    Also wäre eine Lösung des gegenseitigen "Bescheid sagen" eine kleine TCP IP Anwendung?! Sozusagen auf dem Main-PC läuft der Server und alle anderen verbinden sich als Client.
    Wenn sich die DB dann ändert, geht die Info an den Server und dieser gibt jedem Client den Befehl des "Neu ladens der DB"....
    ja, und vlt. gehts auch mit named Pipes - die brauchen weniger Resourcen.
    in VersuchsChat mit leistungsfähigem Server issn Sample

    Nur die DB kann auch dem named-Pipe-Server kein Bescheid geben, also im Client musste was einbauen, was erst die DB ändert, und dann dem NamedPipeServer bescheid gibt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Einer der Hauptgründe weshalb man sich schnell gegen AccessDbs auspricht: man hat ganz schnell ganz wenig Ahnung, unter den Augen anderer ... und ganz schnell ganz viel Ahnung, wenn man von Serven spricht(ist sicher auch Milieu bezogen).

    Ich geh bei meiner Antwort mal davon aus, dass es um ein Intranet geht?
    Dann gibt es wahrsch einen PC in diesem Netzwerk, der als Server dient, (User melden sich auf ihrem Client an, wählen ob sie mit ihrem Serverprof arbeiten wollen oder mit ihrem lokalen Prof, arbeiten sie mit Server-Prof, werden Datein (Word, Excel etc eben im ServerProf gespeichert, also auf der FestPlatte des PCs der als Server im Netz läuft.)).

    Falls das Netzwerk ohne solche einen Server läuft, dann ist es eben ein normaler PC, indem Fall wällt der User eben aus ob er auf seiner lokalen Platte speichert oder auf dem Freigeebnn laufwerk.


    - Leg also deine AccessDb auf das freigegbene Laufwerk des Server-PC.

    - als nächstes muss jeder User Schreibrechte bekommen, und zwar auch auf den Ordner in dem die AccessDB liegt, das ist einer der häufigsten Irttümer/fehler, bei solch einer Konstelalltion. Schreibrechte weil:
    beim Zugriff auf die AccessDB wird einer mdf erstellt, diese existiert nur solang wie die Db im Zugriff ist.(bin jetzt nicht sicher ob sie mdf heist). Dort hinein muss der Server schreiben können, dass UserXY sich angemeldet hat.

    - Dann die Aufteilung von Frontend und Backend. Das ist einer der häufigsten Gründe, weswegen Access im Netzwerk so verschriene ist. Ohne dies Aufteilung, warten warten warten.... (ist weniger Komplex als es sich anhört oder häufig beschr. wird, Das Backend behält die Tabellen, das Frontend bekommt nur die Querys, Forms reports Module, es ist angebracht das Frontend auf den Clients zu verteilen )
    JonDonym
    Eine Anonymisierung-Tool, das nicht nur deine IP verdeckt, sondern deine History, BrowserTyp, Windows-Version etc.
    Das Tool hat ca. 5 FreeKaskaden und ca. 10 Premium. Minimum 5 EUR für ein Volumen von 650MB.
    Hallo,

    Wen du einen richtigen Server hast, benutze Sharepoint Acces Services, dann hast du aus deiner Acces Datenbanck eine Mehrbenutzerfähige Anwendung erstellt (Sharepoint Foundation müsste ausreichen und ist kostenlos).

    Ansonsten Portiere versuche es mit einen MSSQL-Server (auch hier ist die Express dition zwar kostenlos, aber leider nur auf für GB beschränkt (Pro DB), was aber in den meisten fällen ja schon ausreichen sollte).

    LG, Herbrich