Access Datenbankverwaltung - Frage zu größerem Projekt

Gepi87

Lt. Commander
Registriert
Nov. 2007
Beiträge
1.099
Hi,

Ich habe eine Grundlegende Frage zu Microsoft Access. Einerseits habe ich mit diesem Programm noch nie gearbeitet, habe allerdings großes Interesse an Datenbanverwaltungen und schon erste Erfahrungen mit Excel.... Sagen wirs mal so, sobald ich eine Aufgabe bekomme, finde ich einen Weg um diese zu lösen.

Diesmal ists allerdings eine sehr große Aufgabe und mich würde interessieren, ob es mit Access möglich wäre, diese zu lösen:

Ich arbeite nebenher in einer Firma, die Datensätze von Kunden verwaltet. Diese Datensätze kommen von einer anderen Firma und müssen dann importiert werden. Derzeit arbeitet die Firma mit einem Steinzeitprogramm, was irgendwann mal in den 90ern Programmiert wurde und die Herstellerfirma gibt es seit einigen Jahren nicht mehr. somit kam mir die Idee, mal etwas neun Wind in das alte verstaubte System zu bringen.

Die wichtigsten Aufgaben wären:
  • Datensätze (pdf Format) in die Datenbank importieren
  • Im Datensatz nach Schlüsselwörtern suchen und diese einem bestimmten Kunden (Vorhandener Datensatz) zuordnen oder ansonsten einen neuen Erstellen.
  • Die Möglichkeit weitere Eigenschaften, bzw Notizen dem Datensatz hinzufügen zu können.
  • Serienbriefe für Kunden erstellen, die bestimmte Eigenschaften erfüllen.
  • Automatisch für jeden Datensatz einen Verlauf erstellen (Alte Datensätze behalten, Verlauf der Aktionen im Datensatz speichern)
  • Die Datensätze müssten auch Filterbar sein für bestimmte Eigenschaften, wie zb Adresse, letzte Kontaktaufnahme durch den Kunden, oder der Firma, ... usw
  • Mit der Datenbank arbeiten dann insgesamt drei verschiedene Abteilungen, wo dann auch jede ihr eigens User-Interface haben sollte.
  • Es sollte auch möglich sein gewisse Abfragen, Suchergebnisse bzw Verläufe der Dateneingabe aus der Datenbank raus zu speichern, bzw zu drucken.
Insgesamt geht es da um ca 150.000 Kunden-Dateien, die teilweise mehrere Datensätze mit Infos und entsprechenden Verläufen beinhalten. Wie eben die Datenbank der Firma in den letzten 30 Jahren gewachsen ist.

Bitte keine Kommentare wie "Genau deswegen gibt es Access!" oder so :freaky:

Für mich wäre das ein Projekt für die nächsten Monate, besser gesagt zumindest mal für 2022.

Was sagen die Profis nun zu diesem Projekt? Ist es möglich im Laufe eines Jahres die Datenbankverwaltung auf so ein Niveau zu erlernen, bzw die Umsetzung im Access mit einem übersichtlichen GUI? Und ist Access zu so einen Funktionsumfang überhaupt fähig?
 
Ich kenne nur Projekte wo man von Access wegmigriert aber noch nie gehört das man noch was neu auf Access aufbaut... :cool_alt:
Was hättest Du den für Alternativen an Technologien? Eine webbasierte Lösung mit einer zentralen SQL Datenbank wäre keine Option?

Datensätze aus PDF importieren kann je nach Struktur des PDFs einfach oder sehr kompliziert sein, Rest liest sich weitgehend nach Standard Anforderungen wobei für die Datenübernahme man erfahrungsgemäss - vorallem bei älteren Programmen - oft einmalig viel Zeit und Mühe investieren muss um das in eine saubere Datenstruktur zu überführen/migrieren.
 
Wenn du da kein Inselprojekt haben willst, solltest du vielleicht eher in Richtung Postgres oder MariaDB schauen.
Wenn du Access Datenbanken auf ein netzlaufwerk legst, kommst du schnell zu Latenzprobleme. Jet ist jetzt auch nicht die tollste Datenbankengine und concurrency ist in Access zwar nicht verboten, aber auch nicht gerade stabil.


Gepi87 schrieb:
Datensätze (pdf Format) in die Datenbank importieren
sind sie maschinenlesbar?
falls nicht, musst du dir halt im worst case parser bauen, der dir halt aus der PDF die informationen die du brauchst holt. PDFs sind ein grauenhaftes Format, dass definitiv nicht gut für Freude an der Arbeit ist.

Gepi87 schrieb:
  • Im Datensatz nach Schlüsselwörtern suchen und diese einem bestimmten Kunden (Vorhandener Datensatz) zuordnen oder ansonsten einen neuen Erstellen.
Geht.
Gepi87 schrieb:
  • Die Möglichkeit weitere Eigenschaften, bzw Notizen dem Datensatz hinzufügen zu können.
Geht.
Gepi87 schrieb:
  • Serienbriefe für Kunden erstellen, die bestimmte Eigenschaften erfüllen.
Musst dir halt eine Anwendung für schreiben. Ist aber ein Standardding und ist in unter 4h schaffbar, wenn du in Programmiersprache X weißt wie du anwendungen baust, mit Datenbanken arbeitest und emails verschickst
Gepi87 schrieb:
  • Automatisch für jeden Datensatz einen Verlauf erstellen (Alte Datensätze behalten, Verlauf der Aktionen im Datensatz speichern)
https://www.postgresql.org/docs/9.1/wal-intro.html ;)
Gepi87 schrieb:
  • Die Datensätze müssten auch Filterbar sein für bestimmte Eigenschaften, wie zb Adresse, letzte Kontaktaufnahme durch den Kunden, oder der Firma, ... usw
Kommt dann halt auf deine Application an.
Gepi87 schrieb:
  • Mit der Datenbank arbeiten dann insgesamt drei verschiedene Abteilungen, wo dann auch jede ihr eigens User-Interface haben sollte.
Spaetestens hier: Nimm auf gar keinen Fall Access
Gepi87 schrieb:
  • Es sollte auch möglich sein gewisse Abfragen, Suchergebnisse bzw Verläufe der Dateneingabe aus der Datenbank raus zu speichern, bzw zu drucken.
Da muss halt die Anwendung entsprechend gebaut werden.


Wie schon oben an mehreren stellen: Mit Access wird das Projekt bestenfalls interessant. Betrieb und Nutzung aber eher.. Grenzwertig
Eine Datenbak ist nur etwas zur Datenhaltung. Du brauchst immer noch ein Frontend, was die gewuenschten Funktionen anbietet. Such dir eine Programmiersprache und Frameworks aus, ueberleg dir ein gescheites Datenmodell und los
 
Zuletzt bearbeitet:
Grundlegend musst du Unterscheiden zwischen Datenbank und UI.
Eine Datenbank speichert effektiv nur Daten und erlaubt dir auf diese zuzugreifen und diese effizient und schnell zu filtern.

Für den Endnutzer wird das Filtern, Drucken, Sortieren usw. aber über ein UI abgewickelt, welches dann auf die Datenbank zugreift. Da ist natürlich Grundlegend erstmal die Frage wie die Daten aktuell verwaltet werden. Kann man die exportieren, kann man die Datenbank weiter nutzen?
Falls ja musst du ja effektiv nur noch die Datenbank weiter nutzen mit neuem UI/Schnittstellen oder eben auf eine andere Umstellen.
Der Rest ist programmierbar, bzw. es gibt sicherlich schon Lösungen dafür.
 
Danke für die vielen raschen Antworten.
Pako1997 schrieb:
Da ist natürlich Grundlegend erstmal die Frage wie die Daten aktuell verwaltet werden. Kann man die exportieren, kann man die Datenbank weiter nutzen?

Ja die Datenbank wird meines Wissens nach mit Medix verwaltet, falls es das gibt.

madmax2010 schrieb:
Spaetestens hier: Nimm auf gar keinen Fall Access
Ok ... vermutlich liegt es generell am UI, was es seit 30 Jahren gibt und das einzige was ich bisher von dem System wirklich kennen gelernt hab.
 
Access ist keinesfalls so schlecht wie von den Gurus immer wieder gerne kolportiert! Microsoft Access wird gerne zum Prototyping von z.B. Großrechneranwendungen verwendet - die grundlegende Programmlogik, einschließlich aller Masken (Formulare) und Berichte, ist sehr schnell realisierbar.
Bis zu 25 User sollten kein Problem darstellen - heutige Rechner sind erheblich schneller als die 16-Bit Kisten von 1985!
Ich komme von COBOL und Access ist wahrlich ein Zauberkasten.
 
ella_one schrieb:
Ich komme von COBOL und Access ist wahrlich ein Zauberkasten.
Ja aber mehr so einer der Sorte Gruselzauberkasten. Ja aus Sicht von jemandem der aus der COBOL und Mainframeecke kommt mag das eine tolle Erfindung gewesen sein aber Access als Datenbankbackend zu misshandeln auf das diverse Anwendungen und Nutzer zugreifen und wo man von 150.000 Kunden spricht wo jeder Kunde zig Felder und Werte und n:m Beziehungen zu Produkten/Dienstleistungen und ggf. anderen Kunden haben kann... da kann man ggf. Access als reine Modellierung nehmen um Beziehungen, Funktionen abzubilden aber für die reale Umsetzung sollte man ggf. etwas besser passendes nehmen.

@Gepi87 Dein Vorhaben in allen Ehren aber mal von der technischen Diskussion abgesehen: Das jetzige Produkt erfüllt mehr oder weniger seinen Zweck und alle Mitarbeiter die es kennen, wissen damit umzugehen und diejenigen, die eure IT betreuen wissen zumindest grob was zu tun ist wenn es irgendwo klemmt durch jahrelangen Schmerz Erfahrung damit.
Folgende Fragen solltest du dir stellen:
  • Was kann deine neue Iteration, was die alte Lösung nicht kann?
  • Ist der Zugewinn groß genug, dass du auch die Entscheider im Unternehmen zu einer Migration überzeugt bekommst?
  • Die reine Entwicklung ist nicht alles. Entwicklung von Tests (unit, function, integration) u.v.a. Dokumentation für Admins und Anwender wollen erstellt werden. Bedenke den Aufwand bitte.
  • Bedenke den Aufwand für die Umschulung/Umgewöhnung der Anwender und der Techis/Admins.
  • Die alles entscheidende Frage ist aber: Was ist in 1/5/10 Jahren wenn du ggf. nicht mehr bei der Firma bist. Wird der Sourcecode dir gehören oder der Firma? Wird dein Code so sauber und dokumentiert sein, dass dies jederzeit Dritte übernehmen können?

Versteh mich nicht falsch, als Lernprojekt ist das eine tolle Idee wenn auch eine recht große aber entwickeln ist nur ein Aspekt der Sache...
 
  • Gefällt mir
Reaktionen: Lawnmower und Gepi87
Ok, Danke für die verständliche Erklärung. Der Aufwand wird auf jeden Fall enorm und da stell ich mir auch die Frage, ob so ein Projekt nur utopische Ideologie ist, oder sich wirklich rentieren würde. In diesem Fall ist es wohl besser diese Idee ad acta zu legen und generell die Datenbankverwaltung anhand kleinerer Projekte zu erlernen. Sollte ich dann in ein zwei Jahren noch in der Firma sein, könnte man das Thema wieder aufgreifen, aber aktuell sieht es wohl nach einer sehr unwirtschaftlichen Idee aus.

Danke auf jeden Fall für die vielen Inputs :cool_alt:
 
Bitte versteh meinen Beitrag nicht falsch, ich will dir das nicht unbedingt ausreden aber du solltest dir eben über die Ausmaße bewusst sein. Mag aber auch confirmation bias bei mir sein, da ich in einem Bereich tätig bin der sehr hohe Anforderungen an IT stellt was Zuverlässigkeit und Qualität angeht, daher stelle ich sehr hohe Ansprüche.
Es schadet aber auch nicht, sich an gewisse Konventionen zu halten wenn man möchte, dass die geschriebene Software auch von und/oder mit anderen zusammen weiter entwickelt werden kann. Gute Grundlagenlektüre wäre z.B. von Robert Cecil Martin "clean code", kann aber sein, dass die aktuelle Ausgabe einen etwas anderen Titel trägt^^. Wenn es in Richtung Datenbanken gehen soll wurde mir "High Performance MySQL" von Silvia Botros und Jeremy Tinley empfohlen wobei das afaik entsprechende Grundlagenkenntnisse voraussetzt und ja, das bezieht sich auf MySQL aber vieles davon lässt sich vermutlich auf MariaDB übertragen und manches auch auf PostgreSQL oder muss eben speziell dafür sich etwas suchen.
 
  • Gefällt mir
Reaktionen: Lawnmower
Bevor du dich für ein System entscheidest, solltest du prüfen, ob die grundlegenden Anforderungen überhaupt abgedeckt werden können. Du musst experimentieren.
Eine Herausforderung sehe ich z.B. in der Volltextsuche der geladenen PDF-Dokumente. Ich weiss nicht, ob das in MS-Access möglich ist.
In MS-SQL Server (kostenpflichtig u. nur eine Option wenn in der Firma Datenbanken administriert werden können) gibt es Filetables. Hier kann ein PDF-Dokument (o. eine komplette Ordnerstruktur) geladen werden. Jetzt muss nur noch die Volltextsuche für diese Tabelle aktiviert werden u. es können sehr einfach via SQL Suchergebnisse angezeigt werden.

Ich sehe diese Anforderung als wichtig u. du solltest prüfen, ob deine System-Wahl das kann.
Wir benutzen in unserer Firma sehr oft MS-Access. Allerdings nicht als Datenbank, sondern nur die GUI. Es geht sehr schnell eine Oberfläche zu entwickeln. Allerdings kann solch eine Applikation nur als Remote-App (Terminalserver) verwendet werden, da MS-Access über WAN grausam langsam ist.

Es spielen also noch einige andere Faktoren eine bedeutende Rolle (Serverlandschaft der Firma, Datenbank-Adminstrator vorhanden?, Ist es ein LAN o. WAN-Umgebung?)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Lawnmower und snaxilian
Zurück
Oben