![]() |
Datenbank: unklar • Zugriff über: .Net
Welche Datenbank - zum 1256sten mal
Hallihallo,
Ich bin auf der Suche nach einem deuen Datenbanksystem. Wie sich herausgestellt hat ist die Sache schwerer als ich dachte. Ich habe noch keine DB gefunden, die alle meine Anforderungen entspricht: Diese wären:
Deshalb ist es nötig, dass in der Embedded Version ca. 10 - 15 User gleichzeitig auf die DB zugreifen können. Folgendes habe ich bisher rausgefunden (bitte berichtigt mich bitte wenn etwas falsch sein sollte).
Der Preis spielt erstmal kein Rolle. Danke |
Re: Welche Datenbank - zum 1256sten mal
Moin: Kurz zu Firebird:
Es ist kein Problem die Server-Version auf einem Anwenderrechner laufen zu lassen. Die Geschwindigkeit ist bei heutigen Rechnern kein wirkliches Argument. Damit hast Du den Mehrbenutzerzugriff. Normalerweise nimmt man den Rechner, der im Nichtkundenbereich dauernd läuft. Grüße // Martin |
Re: Welche Datenbank - zum 1256sten mal
MySQL (Kann ab V4.1 Unicode als UCS2 oder UTF8)
MS-SQL (MSDE bzw. SQLExpress als "kleine" Version) Aber jeder DB kann man Unicode "teilweise" beibringen indem man alle Daten UTF8-Codiert speichert. |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
Wenn nicht, können mehrere MSDE....? Zitat:
Steh ich vielleicht aufm Schlauch? ;) |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Hauptsächlich bei Ämtern, und auch bei manchen Firmen wo die EDV "outgesourct" ist stellt das ein Problem dar. Angenommen in einer Firma werden nur Notebooks verwendet, die nie an ihrem Arbeitsplatz bleiben. In diesem Fall würde ich auch einen eigenen Rechner brauchen. |
Re: Welche Datenbank - zum 1256sten mal
Hi,
ich hab hier mal einen weiteren Vorschlag, allerdings bin ich mir bei der direkten .net Unterstützung nicht ganz sicher. Aber solltest eigentlich über ODBC-Bridges an so ziemlich jede DB rankommen (womit .net Java ein Stückchen näher käme). Schau einfach mal bei ![]() Gruß Der Unwissende |
Re: Welche Datenbank - zum 1256sten mal
Manchmal muss man Kunden aber zu ihrem Glück zwingen. Du kannst ja nicht in ein Autohaus gehen und sagen:"Ich will ein Auto, aber auf Tanken hab ich kein Bock". Geht nun mal nicht.
oder auch "Ich will keine Wartungsintervalle einhalten"... "Klar, aber wundern Sie sich nicht, wenn das Auto nicht lange hält" So ist es auch hier: Ein normaler Anwender-PC, auf dem sich die DB befindet, mag ja auf den ersten Blick kostengünstig und bequem sein, aber lass doch einfach mal eins der user-GAUe passieren: -Virus -Festplatte im Eimer -Aus Versehen Neustart etc. Ich würde zumindest *einen* PC etwas robuster ausstatten (also nicht die billig-HD nehmen, sondern vielleicht SCSI), das Software-Raid von Windows aktivieren (oder gleich ne kleine Raid-Karte) und den ohne Grafikschnickschnack in die Ecke stellen. Das muss nun wirklich kein Server sein, nur stabil muss er nun mal sein. Darauf einen wartungsarmen MSSQL (mein Favorit, aber FB und PostgreSQL sind wohl gleichwertig) draufpacken und fertig. Und wenn die DB mal hängt (was immer mal vorkommen kann), dann wird der Resetknopf gedrückt und gut ist: Bei richtigen DB (also *nicht* mysql) ist es nämlich so, das die DB garantiert nicht zerballert ist, bloss weil man den Resetknopf gedrückt hat. Beim Neustart wird die DB ganz brav geladen und der Zustand vor dem Rest wieder hergestellt. Dann noch ein paar Maintenance-Jobs per Timer (checkpoint setzen, backup etc.) und schon haben die ihre Ruhe. Du musst dann nur gelegentlich per Admintool nachschauen, ob alles ok ist. Soweit ich das weiss (bitte korrigieren) ist ein sichere Transaktionskapselung mit 'Embedded Servern' doch gar nicht möglich, weil eben viele Server auf eine Datei zugreifen. Das geht nie 100% gut. Du *musst* irgendwo eine zentrale Serverinstanz installieren, die sich auf die DB setzt und sie 100% wasserdicht abschottet und eine zentrale Transaktionskapselung vornimmt. Imho geht das nicht mit clientseitigen DBs (siehe Access). Ich sage meinen Kunden: Kaufen Sie sich einen zusätzlichen PC, zur Not packen wir den ins Budget, wenn der Financial Controller mauert (was die gerne tun). Der Wert (max 1000 Euronen) entspricht 1-2 Tagessätzen, und die verbringt man allemal damit, eine DB-Havarie aus o.g. Gründen wieder zu korrigieren. |
Re: Welche Datenbank - zum 1256sten mal
hast Du mal die NexusDB angeschaut?
![]() Edit: Zum Thema Server, ich arbeite mit der NexusDB und man hat 2 möglichkeiten, entweder einen Server laufen lassen ( was du ja nicht möchtest ) oder eben den Pfad angeben wo die DB liegt. Das sollte meines Wissens nach auch mit der Trial gehen. |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Das Problem ist, dass unsere bestehende Software auf Foxpro aufsetzt, wo die DB-Dateien eben auf einem Fileserver liegen. Lt. Erfahrungen unseres Helpdesks würden die Meisten unserer Kunden kein Update mehr kaufen wollen/dürfen, wenn ein eigener Server benötigt wird. (hier ist wohl der Kunde König) Zitat:
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
Zitat:
Falle es direkt nicht unterstütz kann man ja es vor dem Schreiben in eine Verträgliche (UTF8) Form wandeln. Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
Uups :duck: also ich nutze NexusDB V2, ist eigentlich ähnlich wie der FlashFiler von TurboPower. Hatte bisher aber immer nur C/S und kann dir deshalb nicht sagen ob Userverwaltung geht wenn kein Server läuft. |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Es geht um 10-15 Rechner ? Dann käme für mich sowieso (egal wie) ein Fileserver zum Einsatz. Denn ich kann doch nicht wegen eines Stolperers oder eines Klammeraffen-Testers :mrgreen: am "Fileserver" 14 Leute zum Nichtstun zwingen inkl. Datenverlust usw. Gleichzeitig ist es aber auch nicht nötig bei 2 Rechnern noch einen dritten als Filserver zu "verschwenden". Ah, roter Kasten : ja, fast vergessen : FlashFiler. Da ist wirklich alles in der EXE drin. Das ist eine gute Idee ! Aber leider nur fast. :lol: Es wird nicht mehr offiziell weiterentwickelt und bei SourceForge tut sich auch nicht sehr viel. |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Ich kann an den Gegebenheiten leider nichts ändern (probiert hab ichs INTENSIV) Zitat:
Sonst komm ich da nicht mit. |
Re: Welche Datenbank - zum 1256sten mal
Moin zusammen,
Dann wird ein Rechner, der halt nicht vom aktuen Superuser verwendet wird so eingerichtet, das Windows die Hintergrundprozesse und den Cache bevorzugt hehandelt. Die aktuellen Rechner sind deutlich schnell genug um damit verzögerungsfrei zu arbeiten. Das ist einfach kein praktisches Problem. Jedenfalls nicht unter 20 Rechnern die daran hängen. Letzlich haben daher die Kunden mit ihrer Haltung da banal recht. Und ein Firebird Server-Setup bekommt man dann auch in seine eigene Setuproutine rein. Damit ist es für den Kunden dann Wartungsfrei bis auf die regelmäßgen Backups, aber da kamm man wahrscheinlich auch noch was machen. Grüße // Martin |
Re: Welche Datenbank - zum 1256sten mal
Ich schau mir inzwischen
![]() Ist zwar kein C/S System, aber hat schon Jemand Erfahrungen mit der Version 5? |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Wenn dann irgendwann Sicherheit vorrangig wird, verschiebt man die MSDE auf einen eigenen Rechner, biegt die Zugriffe der Clients (IP-Adresse) einfach um und fertig. Wenn dann mal der grosse Bruder ran soll, besorgt man sich die Lizenz und ist wieder im Grünen. Die MSDE ist 'berühmt' wegen ihrer Skalierbarkeit. Nennt sich "Salamitaktik". :mrgreen: Denn im Endeffekt kriegen die Kunden dann das, was sie laut 'Helpdesk' derzeit ablehnen. Aber eins muss man den Kunden eben vermitteln: Wer den Nachfolger einer Pferdekutsche will, der muss eben Benzin tanken statt Hafer zu füttern. Tja. |
Re: Welche Datenbank - zum 1256sten mal
Desktop DBMSse im Mehrbenutzerbetrieb? :shock: Autsch!
Für .Net sehe ich da eigentlich nur SQL Server 2005 Express (alzaimar's MSDE ;) und Oracle Express (bis auf weiteres aber nur Beta!) Alles andere würde dir keine wünschenswerte Option auf einen größeren Server ermöglichen. Mit viel Auge zudrücken gibt es noch Firebird. Eins sollte dir nach all den Kommentaren hier klar geworden sein: Mehrere Prozesse auf eine DB Datei zugreifen zu lassen ist alles andere witzig. Stelle es einfach als no-go dar. Für solche Friemeleien würde ich nie meinen Kopf hinhalten wollen. |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
In Firebird tut sich viel. Die 2.0 Version ist deutlich verbessrt, was Hochlast und maximale Tabellengrößen angeht. Auch vom Sprachumfang tut sich entscheidentes z.B. Inserts mit Generatorwertrückgabe. Da kann man schon getrost die Augen auf machen.
Das Grundproblem ist derzeit sicher noch, dass man bei FB in Jahresabständen das gesamte Serversystem tauschen muß, aber da ist eine OpenSource-Entwicklung natürlich etwas ungesteuerter. Grüße // Martin |
Re: Welche Datenbank - zum 1256sten mal
VistaDB kann man sich auch mal ansehen. Das System bietet einen DB-Server an sowie eine eingebettete Datenbank. Die Datenbank ist sowohl für NET, als auch für WIN32 geeignet. Die Doku für Delphi ist etwas besch(eiden), die Leistung jedoch nicht schlecht.
:coder: |
Re: Welche Datenbank - zum 1256sten mal
@Garby: Es hilft kein Jammern und Stöhnen, sorry. Aber wenn 10-15 Leute auf eine Datenbank zugreifen wollen, klappt das NUR mit einem Datenbank Server. Vergiss mal ganz schnell den Quatsch mit Embedded MySQL Server, der ist nämlich nicht Multiuserfähig. Punkt.
Installier beim Chef den Firebird Server, oder besser noch den SQL Server der aber wohl wieder wegen Lizenzgebühren wegfällt, und sag ihm er darf ja nie seinen Rechner ausschalten oder sonstige Dummheiten mit anstellen, da sonst 15 Leute im Betrieb nicht mehr arbeiten können. Vielleicht ändert er da ja seine Meinung. Ich versteh dein Problem ganz wohl. Du hast Vorgaben, an die Du dich zu halten hast. Nur leider ist es nun mal in der Datenbankwelt so, dass in Multiuser Systemen ein Datenbankserver her muss. Alles Andere ist grob fahrlässig (Einsatz von Access im Netz o.ä.) |
Re: Welche Datenbank - zum 1256sten mal
Spätmoin,
Ist den bei FoxPro wirklich ein Fileserver heute noch notwendig? Selbst das bekommt eine flotte Arbeitsstation locker hin. Dann bekommt die halt etwas mehr Ram. Man darf nicht vergessen, das die Rechner aus der FoxPro-Hochzeit nur 20%-10% der heutigen Leistung hatten. Grüße // Martin |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Bei einem vollen SQL Server fallen pro Server und pro Client Lizenzen an. |
Re: Welche Datenbank - zum 1256sten mal
Hallo,
eure Argumente haben alle etwas für sich. Sicher möchte ich auch am liebsten nur ein Client-Server System anbieten. Das Hauptaugenmerk bei dieser Anwendung liegt zum Einen bei der einfachen Skalierbarkeit und zum Anderen bei der Möglichkeit unser bestehendes Programm (Foxpro) einfach, und ohne großen Personalaufwand unsererseits, einem Update zu unterziehen. @Jelly: Deinem Vorschlag mit dem Einen Rechner, der immer gestartet bleiben muss kann ich aus 2 Gründen nichts abgewinnen:
Noch was zu Fileserver DBs: Mir wurde z.B. vom TurbeDB Support folgendes versichert: Zitat:
Zitat:
Klar werde ich diese Aussagen in diversen Stresstests prüfen. Trotzdem tendiere ich im Moment dazu, den Datenbankzugriff offen zu gestalten. d.h. vorerst bieten wir eine lokale DB (TurboDB bzw. VistaDB) und einen Server (evtl. Firebird) an. Dies hat den weiteren Vorteil: Einige unserer Kunden möchten die Daten auf ihrem hauseigenen DBMS liegen haben. Es wäre mit dieser Architektur relativ einfach neue Datenbanksysteme zu unterstützen. P.S. Mir ist klar was das für einen Aufwand mit sich bringt ;) |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
Ich dachte auch eher daran eine Komplettpaket (Hardware, Linux, Firebird) anzubieten. Andere Systeme zu unterstützen ist sozusagen ein "Zuckerl". Zitat:
So hab ichs nämlich vor ;) |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
![]() Mit RO/DA bekommst du IMHO sogar eine Lizenz für embedded NexusDB dazu, die könntest du gleich darin laufen lassen. Nach außen sieht man nur den DA Service, nicht die DB. ;) Dadurch müssen deine Clients nicht wissen welche DB dahintersteckt. Ich bin selbst kein Pro was DA angeht, meine Projekte liefen leider schon an bevor ich davon hörte. :wall: Aber für zukünftige Entwicklungen werden ich es wohl auch einsetzen. :) Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Weil aber der Anteil unserer Kunden mit eigenem (und auch verwendbarem) DB Server in der Minderheit, sind werden wir eine solche Entwicklung eher bei Bedarf (und evtl. einer kleinen Unkostenbeteiligung) entwickeln. @Elvis: DataAbstract schau ich mir mal näher an, danke. |
Re: Welche Datenbank - zum 1256sten mal
ZEOS !
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Gibts ZEOS auch für .NET/C# ?
|
Re: Welche Datenbank - zum 1256sten mal
@Bernhard: Ja tut es natürlich nicht, aber wenn man im Dialekt mit Firebird-Fyracle und Oracle als Orientierung hat, dann
ist damit schon ein interessantes Duo abgedeckt. @Garby: Weiss es leider nicht. Zeos liegt im Quellcode vor, habe aber bisher keine NET-Erfahrung. Grüße // Martin |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
Berhards Einwand gilt aber immernoch und ich kenne da als Lösung nur DA. (Gibt aber sicher noch andere) nHibernate als ORPF kommt auch mit ein paar Dialekten DBs klar... |
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Re: Welche Datenbank - zum 1256sten mal
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 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