Autor Beitrag
bo_91
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Mi 11.02.09 09:44 
Hallo,

Ich habe gerade mit einem etwas grösseren Projekt begonnen welches dann später verkauft wird und dann per Setup vom Benutzer selbst installiert wird. Meine Frage ist nun für welche Datenbank sollte ich mich entscheiden? Ich habe bis jetzt Microsoft, Mysql und eine einfache Accesss DB im Auge jedoch sollten diese in einer Kompaktversion Installierbar sein so das der Benutzer selbst nie die Datenbank anfassen muss. Eine weitere bedingung ist das es rechtlich keine Probleme gibt bei der Redistribution von wegen zusätzlichen Lizenzen oder so...

Wie Ihr warscheinlich gemerkt habt ist das komplettes Neugebiet für mich und ich bin euch für eure Empfehlungen, Hinweise und Erklärungen dankbar.


mfg
bo91
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 11.02.09 09:52 
Microsoft: Hier gibt es soweit ich weiß eine kostenlose Express Variante, jedoch muss man dann immernoch einiges per Hand einstellen, also nicht so einfach.
MySQL: Soweit ich weiß für kommerzielle Zwecke _NICHT_ kostenlos, auch wenn das gerne geglaubt wird.
Access: Bin ich mir nicht so sicher. Muss man das nicht auch, zusammen im Office Paket, kaufen?

Ebenfalls kostenlos wäre noch Firebird (basierend auf Interbase). Glaube, dass dies auch für kommerzielle Zwecke gilt.

_________________
PROGRAMMER: A device for converting coffee into software.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mi 11.02.09 10:05 
PostgreSQL ist OpenSource, wie es mit der Distribution aussieht, kann ich dir allerdings nicht sagen.
Zu Access: Für die Weitergabe einer Datenbank benötigt man kein Office. Man braucht nur die Schnittstellenkomponenten und ggf eine Runtime, die es für Umme gibt. Aber die braucht man nur, wenn man die Datenbankoberfläche verwendet.

Wobei man vielleicht überdenken sollte, wie sicher die DB sein muss und mit welchen Datenmengen, Usern und Netzwerken man rechnen muss.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
bo_91 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Mi 11.02.09 10:32 
Die Datenmenge sollte eigendlich nicht riesig sein...Die Datenbank wird nur Lokal verwedet dh. 1 User = mein Programm greift darauf zu...

Kann man die Einstellugen bei Microsofts Express Variante nicht aus dem eigenen Installer machen bezw. das ganze automatisieren?
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mi 11.02.09 10:49 
Hm, man könnte wohl die Installation aus dem InstallSetup anstossen, dann musst du nur bei deiner Anwendung noch die Eingabe des PW's und Usernamen abfordern und ggf Registryeinträge vornehmen. Das sollte man ja in einer kleinen Exe unterbringen können. Wie weit man die Express-Version weitergeben darf, kann ich dir auch nicht sagen.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
MaoaM
Hält's aus hier
Beiträge: 2

Win XP Home, Win Vista Ult, Debian 4.0
Turbo Delphi, C# VS 2008 Expr.
BeitragVerfasst: Mi 11.02.09 10:56 
Eine andere Möglichkeit wäre die Verwendung von SQLite, ist relativ klein und als Embedded Datenbank konzipiert. ADO.Net-Wrapper existiert auch.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 11.02.09 11:47 
Also ich würde dir Firebird empfehlen. Da gibt es eine Embedded-Variante, die für dich genau das Richtige sein dürfe.
Alternativ kannst du auch noch die AbsoluteDatabase verwenden. Ich bin ein großer Fan dieser Komponenten.

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Skiller-1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 100

Win XP | Debian | Ubuntu
C# | PHP | VB.NET
BeitragVerfasst: Mi 11.02.09 16:33 
Zitat:
Die Datenmenge sollte eigendlich nicht riesig sein...Die Datenbank wird nur Lokal verwedet dh. 1 User = mein Programm greift darauf zu...


Kann mich auch irren aber ...
Ich finde das schreit doch förmlich nach einer Objektdatenbank und diese dann mit hilfe von XmlSerializer gespeichert.

_________________
~ Wer Rechtschreibfehler findet darf sie behalten ~
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 11.02.09 17:24 
Ic
Zitat:
h finde das schreit doch förmlich nach einer Objektdatenbank und diese dann mit hilfe von XmlSerializer gespeichert.
Dann scheine ich taub zu sein

_________________
Markus Kinzler.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mi 11.02.09 20:02 
Ich kann eigentlich nur Advantage empfehlen. Die ist bis 5 User auch für kommerzielle Produkte kostenlos. Und ist aus meiner Sicht sehr einfach zu bedienen.
Ich denke einmal lokal betrieben werden sich Datenbanken nicht sehr in der Geschwindigkeit unterscheiden, aber ich finde das die Advantage DB irre schnell ist.
Feldnamen können länger als 32 Zeichen sein. (Das finde ich bei Firebird grauenvoll). Feldnamen können beim Zugriff geschrieben werden wie man will. (wie bei Delphi Bezeichnern).
Der absolute Hammer, finde ich, ist die gleichzeitige Freitextsuche in Strings und Memos eines Datensatzes ohne das man die Feldnamen angeben muss die durchsucht werden sollen.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Handycommander
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1054

Windows XP Pro, Vista
Visual Studio 2008
BeitragVerfasst: Do 12.02.09 22:21 
Ich würd zu SQLite greifen...
Ist ne super DB... nutze diese auch regelmäßig!

MfG Tobi
bo_91 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Do 19.02.09 15:45 
Hab mir mal die SQLite DB angeschaut und habe festgestellt das diese wohl ausscheidet...
von wikipedia:
Zitat:
..daher fehlen Funktionen wie Referentielle Integrität (FOREIGN KEY) oder die Möglichkeit...



Habt ihr mit der Microsoft Express Variante gute Erfahrungen gemacht?

mfg
bo_91
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 19.02.09 15:50 
user profile iconbo_91 hat folgendes geschrieben Zum zitierten Posting springen:
Habt ihr mit der Microsoft Express Variante gute Erfahrungen gemacht?

Nein. Sobald Du ein Laufwerk komprimierst, ist vorbei mit MSSQL. Ich würde Dir auch zu Firebird raten, das ist kostenlos, darf kommerziell vertrieben werden und ist auch als Embedded-Variante zu betrieben, hier allerdings nur im Singleuser-Betrieb.
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Do 19.02.09 21:37 
user profile iconmatze hat folgendes geschrieben Zum zitierten Posting springen:
Also ich würde dir Firebird empfehlen. Da gibt es eine Embedded-Variante, die für dich genau das Richtige sein dürfe.


Aber wichtig: Eine Firebird-Datenbank kann nicht auf einem Netzwerklaufwerk liegen, auch in der embedded-Version nicht.

twm
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Do 19.02.09 22:56 
Nachteile diverse DBMS:

MS SQL Server (Express): Riesige Windows-Updates die auch mal permanent Fehl schlagen können ("Ihr Programm ist schuld das immer so komische Updates kommen")

MySQL: Sehr teuer für ein Closed Source Programm. Je Verteilung eine Serverlizenz oder für 20-50k€ eine Firmenlizenz - pro Jahr

SQLite: Nicht gerade fix wenn es um Updates von Datensätzen geht.

ADS Local Server: Remote Desktopbetrieb/Citrix (Was ja häufiger bei Firmenkunden vorkommen kann) benötigt eine Serverlizenz. Keine Unicode!


Bau dein Programm lieber so auf das eine DesktopDB (Accuracer, Absolut DB, ...) für dein "Schmalspurbetrieb" verwendet werden kann und bei größeren Installationen auf eine richtigen SQL Server zugegriffen werden kann (Stichwort: Bridge-Pattern)
bo_91 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Mo 23.02.09 14:25 
Hallo

Vielen Dank für eure Antworten, hätte gerne früher wieder gepostet hatte jedoch ein wenig zu tun. Ich habe jetzt jede DB mal ein wenig angeschaut trotzdem bin ich immer noch von MySQL begeistert, da ich diese DB schon kenne.

user profile iconBernhard Geyer hat folgendes geschrieben Zum zitierten Posting springen:

MySQL: Sehr teuer für ein Closed Source Programm. Je Verteilung eine Serverlizenz oder für 20-50k€ eine Firmenlizenz - pro Jahr
MySQL steht ja unter anderem auch unter GPL darf man sie dann nicht auch Komerziell frei einsetzen? Bei mir würden ja nicht sehr viele User darauf Zugreifen (user < 10)


Wikipedia meint dazu:
Zitat:
MySQL:
MySQL Server ist eine freie Software, die unter der General Public License (GPL) steht. Da MySQL AB/Sun das volle Copyright an den Quellcodes besitzen, ist die Software alternativ auch unter einer kommerziellen Lizenz verfügbar (Duales Lizenzsystem).

GPL:
# Das Programm darf ohne jede Einschränkung für jeden Zweck genutzt werden. Kommerzielle Nutzung ist hierbei ausdrücklich erlaubt.
# Kopien des Programms dürfen kostenlos oder auch gegen Geld verteilt werden, wobei der Quellcode mitverteilt oder dem Empfänger des Programms auf Anfrage zum Selbstkostenpreis zur Verfügung gestellt werden muss. Dem Empfänger müssen dieselben Freiheiten gewährt werden – wer z. B. eine Kopie gegen Geld empfängt, hat weiterhin das Recht, diese dann kommerziell oder auch kostenlos zu verbreiten. Lizenzgebühren sind nicht erlaubt. Niemand ist verpflichtet, Kopien zu verteilen, weder im Allgemeinen, noch an irgendeine bestimmte Person – aber wenn er es tut, dann nur nach diesen Regeln .[2]


Neu kommen folgende Anforderungen hinzu:
- Bilder in der DB abspeichern
- mitelmässige Datengrösse
- ev. remote DB
- Backupmöglichkeit
- ev. mehrere user < 10



Was meint ihr dazu?


Zuletzt bearbeitet von bo_91 am Mo 23.02.09 14:45, insgesamt 1-mal bearbeitet
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.02.09 14:31 
Bernhard hat ja ausdrücklich von ClosedSource geschrieben. Wenn Du natürlich Deinen Quellcode mit weitergibst, sollte es keine Probleme geben.
bo_91 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43

Win XP - Win8
C#, PHP, VB, Java
BeitragVerfasst: Mo 23.02.09 15:04 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Bernhard hat ja ausdrücklich von ClosedSource geschrieben. Wenn Du natürlich Deinen Quellcode mit weitergibst, sollte es keine Probleme geben.


Wenn ich das jetzt richtig verstehe müsste ich wenn ich MySQL mit meinem Programm mitliefere spätistens auf anfrage den Quellcode meines Programms herausgeben?


mfg
bo_91
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.02.09 15:10 
So steht es da.
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Mo 23.02.09 15:33 
Zitat:

Die Datenmenge sollte eigendlich nicht riesig sein...Die Datenbank wird nur Lokal verwedet dh. 1 User = mein Programm greift darauf zu...


Nicht riesig ist schwierig zu definieren aber auch für mich schreit das nach XML.
Ausserdem gibs ja auch noch die system.data.sqlserverce.dll mit der man ein Server direkt mitgeben kann. Kann man bei MS herunterladen.