| Autor |
Beitrag |
bo_91
      
Beiträge: 43
Win XP - Win8
C#, PHP, VB, Java
|
Verfasst: 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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: 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 
      
Beiträge: 43
Win XP - Win8
C#, PHP, VB, Java
|
Verfasst: 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
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: 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.
|
Verfasst: 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
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: 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
      
Beiträge: 100
Win XP | Debian | Ubuntu
C# | PHP | VB.NET
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
      
Beiträge: 1340
Erhaltene Danke: 120
Win 10
RIO, CE, Lazarus
|
Verfasst: 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
      
Beiträge: 1054
Windows XP Pro, Vista
Visual Studio 2008
|
Verfasst: 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 
      
Beiträge: 43
Win XP - Win8
C#, PHP, VB, Java
|
Verfasst: 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
|
Verfasst: Do 19.02.09 15:50
bo_91 hat folgendes geschrieben : | | 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
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Do 19.02.09 21:37
matze hat folgendes geschrieben : | 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
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: 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 
      
Beiträge: 43
Win XP - Win8
C#, PHP, VB, Java
|
Verfasst: 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.
Bernhard Geyer hat folgendes geschrieben : |
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
|
Verfasst: 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 
      
Beiträge: 43
Win XP - Win8
C#, PHP, VB, Java
|
Verfasst: Mo 23.02.09 15:04
DeddyH hat folgendes geschrieben : | | 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
|
Verfasst: Mo 23.02.09 15:10
|
|
lothi
      
Beiträge: 114
Erhaltene Danke: 3
|
Verfasst: 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.
|
|