![]() |
Datenbank: Access • Version: 2007 • Zugriff über: ADOConnection
Datenbank Auswahl
Hallo zusammen,
Ich arbeite derzeit an einem sehr umfangreichen Datenbank-Projekt, dass die Organisation unseres Schwimmvereins deutlich vereinfachen soll. Wir haben die Datenbank derzeit mit Access konstruiert und diese umfasst mehr als 50 Tabellen. Das ganze System soll später auf unserem Server liegen und mittels Desktop-Anwendung von bis zu 10 Trainern/ Benutzern gleichzeitig angesteuert werden. Ziel ist es zum einen Mitglieder zu verwalten, die Ausbildung, Wettkämpfe und Kurse, bzw. Module zu steuern und einen E-Mail-Client für newsletter zu implementieren. Das ganze soll dann optisch auf vordermann gebracht werden, ein wenig windows 7 style, und mit ein paar extras (wie kalender) versehen werden- also nen haufen arbeit. Für mich ist Datenbank-Programmierung in diesem großen Sinne Neuland (vorher mal eine recht kleine Kontakt-verwaltung geschrieben), doch wir sind zu Dritt und haben auch nicht großartigen Druck, mit dem Zeitpunkt der Fertigstellung. Die Frage die ich mir stelle ist, wie ich ein solches System am besten realisiere. Sollte ich das ganze über ADO abwicklen, da hab ich mich gerade eingelesen? Ist der Aufbau über Access der richtige? was muss ich in Bezug auf Sicherheit und der Realisierung beachten,... komponentenentwicklung ist natürlich dann der nächste punkt, aber es geht zunächst erstmal darum, dass ich nich direkt am anfang das falsche system ausgewählt habe und ich mein delphi-projekt nach 3 monaten in die Tonne kloppen kann. Euch schon mal vielen dank |
AW: Datenbank Auswahl
Also Access würde ich imho nicht empfehlen, da die DB sehr langsam wird, wenn mehrere User darauf zugreifen (zumindest meiner Erfahrung nach). Ich denke, dass Access selbst für so etwas auch nicht vorgesehen ist. PostgreSQL oder MySQL eignen sich da beispielsweise schon besser. Interessant sind sicherlich auch NoSQL-Datenbank, wie CouchDB. Welche man wählt hängt dann wiederrum von vielen Faktoren ab, aber entscheident wäre es, wenn eh ein Server am laufen ist, dass es die DB ein Client/Server-System ist. Diese Datenbanken können auch mit einer größeren Anzahl an gleichzeitigen Zugriffen ohne Probleme fertig werden, es sei denn der Programmierer macht noch Fehler :mrgreen:
|
AW: Datenbank Auswahl
bei 10 erwarteten Benutzern würde ich auf keinen Fall Access verwenden, sondern einen richtigen Server. Google mal nach Firebird oder zur Not auch MS-SQL Express (ist kostenlos von MS).
|
AW: Datenbank Auswahl
Hier mal noch eine kleine Liste der normalen Client/Server-Datenbanken, die nicht unbedingt vollständig sein muss:
|
AW: Datenbank Auswahl
Firebird wäre eine gute Wahl. Mit D2010 Prof solltest du damit bereits Zugriffskomponeneten haben, ansonstenist FibPlus als Zugriffskomponente empfehlenswert, aber nicht kostenlos.
|
AW: Datenbank Auswahl
Ich würde mir gleich überlegen ob es wirklich noch eine "normale" C/S-Desktopanwendung sein muss? Über kurz oder lang kommt die Anfoderung das von "Zu Hause" über den Browser abfragen zu können. Hier wäre gleich die überlegung ob man es mit der Webtechnik seiner Vorliebe realisiert.
|
AW: Datenbank Auswahl
Wobei man hier auch wieder einen Webservice einrichten könnte ;) Klar, ist wieder etwas mehr Aufwand, aber eine Browseranwendung fühlt sich einfach nicht so wie eine normale Desktopanwendung an. Ebenso ist man im Browser immer noch etwas eingeschränkt (in so fern man es mit JavaScript/HTML/CSS/serverseitigen Skriptsprache löst).
|
AW: Datenbank Auswahl
Hi super,
Danke für die vielen und schnellen Antworten. Bei MySQL hab ich an verschiedenen Stellen gelesen, dass Verknüpfungen der Datenbanken schwierig erscheint, oder überhaupt nicht durchgeführt wird, aber da lasse ich mich gern eines bessern belehren. wie sieht das bei firebird aus? Ich denke eine Desktop-Anwendung wäre schneller und stabiler, da vom visuellen her das programm schon einiges abverlangen wird und viele methoden aufgerufen werden sollen (unabhängig von datenbank-abfragen). der server läuft über ein linux-system (ich glaube debian) wäre das dabei nicht auch ein problem, wenn ich das ganze strickt Delphi-basiert aufbauen will? |
AW: Datenbank Auswahl
MySQL kann in der Zwischenzeit mit Trigger und Foreign Keys (-> InnoDB) umgehen, ergo solltest da weniger Probleme haben. Seit genau welcher Version weiß ich gerade auswendig nicht, aber da nimmst halt einfach die neueste und gut is :mrgreen: Über Firebird kann ich leider keine Aussage machen, da ich damit noch nie gearbeitet habe. PostgreSQL soll insgesamt auch sehr mächtig sein, wobei ich darüber auch nur was gehört hab :)
Stabiler? Wenn eine Webanwendung gut programmiert ist, dann ist die auch stabil ;) In der Zwischenzeit sind auch alle JavaScript-Engines ausreichend schnell für schöne Applikationen -- vorausgesetzt man nutzt einen modernen Browser. Wenn du unter Linux was programmieren willst, dann kannst du das mit Lazarus machen (IDE für FreePascal, was unter sehr vielen System compilieren kannst). |
AW: Datenbank Auswahl
Hab mich glaube falsch ausgedrückt, ich will die Anwendung halt nicht auf dem Server laufen lassen, weil ich das ganze mit Delphi verwirklichen will, da kenn ich mich, sagen wir einigermaßen, aus.
Für die Webanwendung müsste ich das ganze doch auch über den Server laufen lassen und habe meine Client-Anwendungen die bestimmte Routinen abgreifen und dem User zur Verfügung stellen. Ich hatte im Kopf, dass die berechtigten Nutzer das Programm auf Ihrem Heimpc haben und dann die Datenbank abrufen. Das ganze Programm läuft dann über den eigenen Rechner und die Verbindung zum Server kann allein von dem Datenbank-Transfer genutzt werden. Ich hab so das Gefühl, das ich beim Programmieren einer Webanwendung noch mehr gewohnten Boden unter den Füßen verliere |
AW: Datenbank Auswahl
Zitat:
|
AW: Datenbank Auswahl
Die Idee der Webanwendung ist natürlich nicht ganz schlecht, da es eben so ist, dass der Cheffe unterwegs in Italien halt noch schnell via Smartphone etwas ändern könnte :mrgreen: Aber wenn das nicht die Anforderung ist, dann reicht mit Sicherheit vorerst mal eine Dephianwendung mit einer passenden Datenbank. Das einzige was vielleicht ein Problem machen könnte ist die Bandbreite, wobei ich eben nicht weiß, wo der Server platziert ist. Aber für 10 Personen dürfte das an sich auch noch okay sein.
|
AW: Datenbank Auswahl
Die Sicherheit ist halt die nächste Frage. Die ist bei einer solchen Realisierung halt etwas schwieriger zu gewährleisten. Bankverbindungen werden wir nicht aufnehmen, aber die daten die bei uns drin stehen werden, reichen auch aus, um genügend interessant für andere zu sein, E-mails, Adressen, Alter, Verwandtschaften,...
Eine sichere Verbindung ist eine Sache, nur muss das ganze auch auf dem Server genügend abgeschottet sein. @ S.H.A.R.K.: Schön wäre das sicherlich, wenn man so flexibel würde, nur das Einarbeiten in den Rest ist mir wahrscheinlich schon genug. Ich würde das wahrscheinlich auf Version 2.0 verschieben, auch wenn dann das ganze Projekt grundlegend überarbeitet werden müsste. |
AW: Datenbank Auswahl
Für so einen Zweck würde ich keine Webanwendung machen. Am Server einen Terminalserver installieren, und schon kann man die Application übers Internet von überall ausführen. Browseranwendungen bieten nicht den Bedienungskomfort von guten "lokalen" Oberflächen, zumindest ist mir noch keine untergekommen. Webanwendungen sind m.E. nur sinnvoll, wenn auch völlig Aussenstehende zugreifen sollen, wie z.B. bei einem Webshop.
Firebird als Datenbank kann ich sehr empfehlen. Hat Erweiterungen zum SQL Standard, die das Programmieren wesentlich erleichtern, und ist sehr schnell. Nachteil: Für Gross-Kleinschreibungsinsensitive Sortierung muss man tricksen. Dass man da nicht daran gedacht hat, benutzspezifische Sortierfolgen direkt zu unterstützen, verstehe ich nicht. Eine solche SQL-Erweiterung "Create Collation" wäre mit mimimalem Programmieraufwand realisierbar. |
AW: Datenbank Auswahl
Die Frage bleibt, wie das mit der Sicherheit aussieht?
Wie regel ich den Datenzugriff für mehrere Benutzer (gleichzeitig) und einer Desktop-Anwendung, ohne dabei nahezu freien Zugang von Fremden auf die sensible Daten zu ermöglichen? |
AW: Datenbank Auswahl
z.B.
MS-Sqlserver Port 1433 offenlassen Rechte in der Datenbank vergeben Per ADO-zugreifen Nur allzu umfangreiche Listenansichten solltest Du bei einer dünnen Anbindung vermeiden. |
AW: Datenbank Auswahl
Oder über anderen Port Verschlüsseln/Tunneln (Zedebee, stunnel, ...)
|
AW: Datenbank Auswahl
Mit einem Terminal Server kannst Du den Zugriff auf das Verzeichnisse der Platte, wo die Anwendung liegt, beschränken, und die Programmverzeichnisse mit read only Berechtigung ausstatten. Zugang über Benutzername und Password so wie auf einem lokalen Rechner geschützt.
|
AW: Datenbank Auswahl
Zitat:
![]() ![]() Zum Thema Datensicherheit und der Anbindung von "Außenstellen" an die Datenbank wäre OpenVPN noch eine gute Lösung (Win/Linux). Unterstützt intern eine Art DHCP-Server für verbundene Benutzer und darüber lässt sich dann alles tunneln (RDP / Firebird / MySQL). Man hat allerdings einmalig den Aufwand der Zertifikatserstellung. Wenn es aber erstmal läuft erfordert es aber keinerlei Wartung mehr. Außer vielleicht ab und zu die Schlüssel/Zertifikate zu erneuern. |
AW: Datenbank Auswahl
Bißchen OT, aber sehr hilfreich :)
Ich habe das beim Studium der Firebird Doku offenbar übersehen, obwohl ich gezielt nach so einer Möglichkeit gesucht habe.:shock: Aber auch in einem anderen Thread, den ich zum Thema Zeichensätze und Sortierung hier im Forum eröffnet habe, ist kein Hinweis auf diese relativ neue Möglichkeit gepostet worden. Danke. Ein Grund mehr, Firebird einzusetzen :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz