Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einfache lokale Datenbank – bitte um Entscheidungshilfe! (https://www.delphipraxis.net/200609-einfache-lokale-datenbank-%96-bitte-um-entscheidungshilfe.html)

Andreas13 7. Mai 2019 10:50

Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hallo Community,

ich bräuchte eine relativ kleine und einfache LOKALE Datenbank, mit etwa folgenden Eigenschaften:

- KEINE Client-Serveranwendung,
- KEINE SQL-Abfragen, sondern einfacher indexsequentieller Zugriff
- Primär für Windows 32-Bit-Anwendungen (später evtl. 64-Bit),
- Lizenzfreie Benutzung,
- ca. 10 verknüpfte Tabellen,
- Relativ wenig Daten je Tabelle: maximal 500 – 800 Datensätze,
- Relativ wenig Datenfelder je Tabelle: 5 – 15 Felder,
- Gespeicherte Datentypen: Extended, Integer, ShortString, evt. kleine Graphiken,
- alle Zugriffe & die komplette Datenbankanwendung sollen in die EXE oder DLL gelinkt werden können,
- Relativ einfacher Zugriff von Delphi aus,

Ich benutze Delphi XE5 Professional.

Welche Datenbank sollte ich dazu verwenden?
Gibt es irgendwo ein für Delphi XE geeignetes Tutorium oder eine Art aktuelle Programmier-Anleitung?

Für Tipps, Hinweise & Empfehlungen wäre ich sehr dankbar!

Gruß

Andreas

haentschman 7. Mai 2019 11:06

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Moin...:P
Zitat:

KEINE SQL-Abfragen
:gruebel: Wieso? Jede vernünftige Datenbank im Freeware Bereich kann SQL.
Zitat:

einfacher indexsequentieller Zugriff
...wie soll ich mir das vorstellen? Erklär mal...:wink:

Neumann 7. Mai 2019 11:19

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Warum kein SQL? Das macht das Leben doch leichter.

Man kann natürlich mit z.B. Clientdatsets abeiten, das sind nur Tabellen die man laden oder speichern kann.

Wenn doch etwas SQL sein darf, dann SQLite oder Firebird oder..

Schokohase 7. Mai 2019 11:20

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Da fällt mir z.B. TMS Aurelius ein.

Statt
Delphi-Quellcode:
Query1.Sql.Text := 'SELECT I.ID AS INVOICE_ID, I.INVOICE_TYPE, I.INVOICE_NO, I.ISSUE_DATE, I.PRINT_DATE, ' + 
  'C.ID AS CUSTOMER_ID, C.CUSTOMER_NAME, C.SEX, C.BIRTHDAY, N.ID AS COUNTRY_ID, N.COUNTRY_NAME' + 
  'FROM INVOICE AS I INNER JOIN CUSTOMER AS C ON (C.ID = I.CUSTOMER_ID) ' + 
  'LEFT JOIN COUNTRY AS N ON (N.ID = C.COUNTRY_ID)' + 
  'WHERE I.ID = :INVOICE_ID;'
Query1.ParamByName('INVOICE_ID').AsInteger := 1;
Query1.Open;
ShowMessage(Format('Invoice No: %d, Customer: %s, Country: %s',
  [Query1.FieldByName('INVOICE_NO').AsInteger,
  Query1.FieldByName('CUSTOMER_NAME').AsString,
  Query1.FieldByName('COUNTRY_NAME').AsString]));
schreibt man
Delphi-Quellcode:
Invoice := Manager1.Find<TInvoice>(1);
ShowMessage(Format('Invoice No: %d, Customer: %s, Country: %s',
  [Invoice.InvoiceNo, Invoice.Customer.Name, Invoice.Customer.Country.Name]));
Ich wüßte jetzt nicht, warum SQL hier das Leben einfacher machen sollte, es geht ja auch ohne (das SQL im Vordergrund auftaucht)

Bernhard Geyer 7. Mai 2019 11:22

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Kein SQL, Kein Multiuser-Zugriff?

Wieso dann überhaupt "Datenbank"?
Dann würde ich die Daten als XML-Datei speichern.
Bei der Datenmenge ist selbst XML schnell genug.

ConstantGardener 7. Mai 2019 11:28

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
...bei nicht kommerzieller Nutzung ist NexusDb Embedded kostenfrei ohne Quelltext. Kann natürlich mehr als du eigentlich willst/brauchst aber erfüllt sonst alle deine Ansprüche.
SQLite sollte aber auch gehen.

cu cg

mkinzler 7. Mai 2019 11:29

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Ich wüßte jetzt nicht, warum SQL hier das Leben einfacher machen sollte, es geht ja auch ohne (das SQL im Vordergrund auftaucht
Auch hier erfolgt der eigentliche Zugriff per SQL.

Schokohase 7. Mai 2019 11:30

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Zitat von mkinzler (Beitrag 1431728)
Zitat:

Ich wüßte jetzt nicht, warum SQL hier das Leben einfacher machen sollte, es geht ja auch ohne (das SQL im Vordergrund auftaucht
Auch hier erfolgt der eigentliche Zugriff per SQL.

Nochmal:

es geht ja auch ohne (das SQL im Vordergrund auftaucht

heißt:

Ja, irgendwo wird da mit SQL gewerkelt, aber ich bekomme bei der Programmierung davon nichts mit

Delbor 7. Mai 2019 12:01

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hi Andreas
Zitat:

Zitat von Andreas13 (Beitrag 1431718)
- alle Zugriffe & die komplette Datenbankanwendung sollen in die EXE oder DLL gelinkt werden können,

Das klingt danach, dass du nach einer existierenden Datenbankanwendung fragst. Also zum Beispiel sowas wie SQLite Personal.
Damit könntest du deine Datenbank und deren Tabellen entwerfen. Frag mich aber nicht, ob mit der Personal-Edition auch Beziehungen zwischen den Tabellen erstellt werden können - ich benutze das Ding nur, um die Tabellen, die ich per Code mit Delphi erstellt habe, anzuzeigen.

SQLite findest du hier. Tutorials, um mit Delphi SQLite-Datenbanken zu arbeiten, findest du bei Delphi-Treff(ganz unten)oder bei Onkel Google

Gruss
Delbor

Der schöne Günther 7. Mai 2019 12:51

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
SQLite erfüllt alle Kriterien.

http://docwiki.embarcadero.com/RADSt...te_mit_FireDAC

haentschman 7. Mai 2019 13:30

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

SQLite erfüllt alle Kriterien
...echt jetzt?
Zitat:

KEINE SQL-Abfragen
:zwinker:

Vieleicht sollten wir mal den TE zu Wort kommen lassen. :zwinker:

freimatz 7. Mai 2019 15:21

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Zitat von ConstantGardener (Beitrag 1431727)
...bei nicht kommerzieller Nutzung ist NexusDb Embedded kostenfrei ohne Quelltext.

Nehmt nie Fremdkomponenten ohne Quelltext. Nie:!:

ConstantGardener 7. Mai 2019 17:10

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
@freimatz: Würde ich auch nie tun! Man kann NexusDb ja auch mit Source kaufen! Die Kriterien die der TE hat klingen aber eher nach Hobby-Projekt, da könnte man ohne Source evtl. auskommen, oder eben später den Source nachlizensieren. Btw. ist die Frage ob einem der Source einer kompletten DB-Engine was nützt wenn es um mehr geht als evtl. auf eine höhere Version von Delphi upzudaten? Das ist kein dünnes Brett!

Andreas13 7. Mai 2019 22:15

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hallo,

zunächst danke für die zahlreichen Tipps und Anregungen!

Zitat:

Zitat von haentschman (Beitrag 1431721)
KEINE SQL-Abfragen
Wieso? Jede vernünftige Datenbank im Freeware Bereich kann SQL.
Zitat:
einfacher indexsequentieller Zugriff

...wie soll ich mir das vorstellen? Erklär mal...

Ich muß wohl mein Zeugnis erklären: Meine letzten Datenbank-Programmiererfahrungen sind zugegebenermaßen „etwas“ veraltet und stammen aus jener Zeit, als BTree-Isam Datenbanken mit „indexsequenziellem Zugriff“ die damaligen SQL-Systeme wie Oracle etc. bezüglich ihres Zeitverhaltens um mehrere Zehnerpotenzen geschlagen haben. Ich war mit der BTree-Isam/BTree-Schell-Bibliothek der damaligen ENZ-EDV_Beratung extrem zufrieden. Diese zeigte selbst bei 100-tausend Datensätzen ein Echtzeitverhalten, während man bei SQL-Systemen eine Kaffeepause einlegen musste. Daher hat sich bei mir eingebrannt, daß SQL-Abfragen langsam sind.

Ich weiß sehr wohl, daß mein DB-Wissen veraltet ist. Daher habe ich mich doch an die Experten gewandt!

Zitat:

Zitat von Neumann (Beitrag 1431724)
Warum kein SQL? Das macht das Leben doch leichter.

Natürlich habe ich nichts gegen Arbeitserleichterung durch SQL und damit verbundene einfachere Datenzugriffe.

Zitat:

Zitat von haentschman (Beitrag 1431737)
Vieleicht sollten wir mal den TE zu Wort kommen lassen.

Wofür steht das Kürzel TE? Ist mir leider nicht geläufig…


Die Hinweise auf SQLite-Datenbank erscheinen mir im Moment am meisten erfolgversprechend für mein kleines DB-Projekt.

Nochmal herzlichen Dank Euch allen!

Gruß

Andreas

IBExpert 7. Mai 2019 23:29

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Zitat von Andreas13 (Beitrag 1431759)
Zitat:

Zitat von haentschman (Beitrag 1431737)
Vieleicht sollten wir mal den TE zu Wort kommen lassen.

Wofür steht das Kürzel TE? Ist mir leider nicht geläufig…

Das ist im allgemeinen in solchen Diskussionen eine schöne Abkürzung für
das deutsch-englische Wort "Thread Ersteller"
oder wie man in der Kneipe sagen würde "Wer hat denn damit angefangen ...."

haentschman 8. Mai 2019 06:06

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Moin...8-)
Zitat:

Daher hat sich bei mir eingebrannt, daß SQL-Abfragen langsam sind.
...auch mit den Prozessoren auf den Boards hat sich einiges getan. :thumb: Ich würde dir empfehlen, dich wieder an SQL anzunähern. Ich würde dir aber empfehlen eine Datenbank zu nehmen die eine Datei darstellt...wie Firebird z.B. Ansonsten kommt es auf den Einsatzzweck an...

TigerLilly 8. Mai 2019 07:16

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
@Andreas13: Du hast echt die Qual der Wahl. Von SQLite, AdvantageDB, ClientdataSets, über XML, JSON, NOSQL uvm bis hin zu MSSQL embedded und natürlich C/S-Datenbanken gibt es wirklich vieles.

BTW: Aurelius ist keine Datenbank, das ist ein ORM + kann mit vielen Datenbanken.

Aber: Wie du selbst sagst, ist dein Wissen aus B-Tree-Zeiten (kenn ich auch, war echt gut!) + da hat sich seither wirklich, wirklich viel getan. Verschaff dir zuerst einen Überblick und spiel dich mit dem Komponenten, die Delphi mit hat. Bring dich auf den aktuellen technischen Stand, dann kannst du die Entscheidung leichter treffen.

Sonst schränkst du dich ein (kein SQL!), obwohl das nicht nötig wäre.

Vielleicht magst du auch beschreiben, was du vorhast, dann können dir die Experten hier viele Vorschläge machen, aus denen du die besseren dann aussuchen kannst.

hans65 8. Mai 2019 08:02

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Vielleicht ist NexusDB nicht die schlechteste Alternative, wenn man deren Wurzeln einmal ansieht:
https://www.nexusdb.com/support/index.php?q=node/506

"While NexusDB is a completely newly designed product its conceptual foundations date back to 1986. At this time, ENZ, a German company, created a product called BTreeFiler for Turbo Pascal. BTreeFiler was a file-based database system which used the server purely as a file server. In time, Turbo Power sold BTreeFiler under license for ENZ. Turbo Power eventually bought BTreeFiler outright from ENZ."

Achso, wenn schon TurboPower BTreeFile genannt wird, dann gibt es ja auch noch das hier als Opensource:
https://sourceforge.net/projects/tpbtreefiler/

TigerLilly 8. Mai 2019 12:10

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Das gibt es ja auch noch:
https://www.elevatesoft.com/products

Andreas13 8. Mai 2019 21:46

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
@TigerLilly
Vielen Dank für Deine wertvollen Hinweise & Ratschläge!

Zitat:

Zitat von hans65 (Beitrag 1431769)
Vielleicht ist NexusDB nicht die schlechteste Alternative, wenn man deren Wurzeln einmal ansieht:
https://www.nexusdb.com/support/index.php?q=node/506

Achso, wenn schon TurboPower BTreeFile genannt wird, dann gibt es ja auch noch das hier als Opensource:
https://sourceforge.net/projects/tpbtreefiler/

Danke für den tollen Tipp: NexusDB ist in der Tat die Nachfolgerin der einstigen B-Tree-Isam-Datenbankbibliothek. Habe bereits eine Demoversion installiert und bin noch beim Austesten. Im Moment ist dies mein Favorit.

Lieder lässt sich
https://sourceforge.net/projects/tpbtreefiler/
Mit Delphi XE5 Nicht mehr kompilieren. Habe in den letzten Monaten bereits viel Zeit in die „Wiederbelebung“ investiert, leider ohne Erfolg.

Auch die vollmündige Versprechung für Delphi XE2
https://onedrive.live.com/?id=F5BB35AE00415BC7%21279&cid=F5BB35AE00415BC7
ist leider nicht (mehr) funktionstüchtig.

Vielen Dank & Gruß

Andreas

scrat1979 8. Mai 2019 22:42

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Da kostenlos kein Kriterium ist (oder habe ich es überlesen?) werfe ich auch mal Absolute Database in den Raum. Compiliert direkt in die EXE, benutze ich für einige kleine Projekte seit Jahren und bin voll zufrieden!

hans65 9. Mai 2019 07:15

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Eigentlich werden alle TurboPower-Komponenten zeitnah aktualisiert (https://github.com/TurboPack) und auch über GetIt angeboten. Deshalb dachte ich, das betrifft auch BTreeFiler. Aber genau dieses eine Produkt wird nicht gepflegt. Kennt jemand den Grund?

TigerLilly 9. Mai 2019 07:38

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Na ja, manche Sachen kommen einfach in die Jahre.

Schau dir mal MS SQL Express mit Tools an. Kostet nix, ich leicht zu verwenden und sowas von genial. Oder wie schon genannt Advantage, NexusDB etc.

Kleb nicht an dem, was du kennst!
Prüfe alles kritisch, was älter als 2 Jahre ist.

mkinzler 9. Mai 2019 07:52

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Für seine Zwecke dann doch eher MSSQL compact. Oder halt SQLite oder FireBird embedded. Das letztere hat den Vorteil, dass die Datenbank auch vom entsprechenden großen DBMS weiterverwendet werden kann (Programm bedarf hierfür auch keine Änderung).

TigerLilly 9. Mai 2019 08:05

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Für seine Zwecke dann doch eher MSSQL compact
Ich habe den bewusst nicht angeführt, weil ich finde, dass es zum kennenlernen einfacher ist, wenn du eine eigenständige Umgebung hast + was ausprobieren kannst, bevor es ans programmieren geht.

Aber im Kern geht´s darum, dass es viel und gutes NEUES gibt + dass sich die Lernkurve bezahlt macht.

Delphi.Narium 9. Mai 2019 08:16

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Ob die Datenbank nun SQL kann oder nicht, ist doch eigentlich wurscht.

Wenn man kein SQL nutzen will, dann nimmt man halt 'ne Komponente, die ein Nachfahre von TDataSet ist und nutzt dort Locate, Append, Edit, Post ... Damit kann man alles wesentliche erledigen. Wie es letztlich datenbankseitig umgesetzt wird, sollte dem Entwickler eigentlich egal sein. (Man kann also durchaus ohne SQL auf z. B. Oracle zugreifen und damit vollständige Datenbankanwendungen schreiben, ohne auch nur 'nen Hauch von Ahnung von SQL zu haben ;-))

Und wenn es schon ohne "richtige Datenbank" sein soll, nehme man z. B. TClientDataSet, TDbf, KbmMemTable ... und hat damit jeweils dateibasierte Datenbanken, die keine zusätzliche Databaseengine benötigen. Alles, was gebraucht wird, wird in die Exe einkompiliert.

Achso: gehöre auch zu den "alten Säcken", die aus den "Vor-SQL-Zeiten" stammen, aber deshalb möchte ich bei 'ner Datenbankanwendung trotzdem nicht auf SQL verzichten. Meine Erfahrung: Mit SQL ist vieles leichter und wenn SQL mal langsam ist, hat man was falsch gemacht. Und das dann SQL vorzuwerfen, ist der falsche Ansatz.

jobo 9. Mai 2019 08:24

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Kaum ein paar Worte geschrieben, schon timeout, neues Login und schon dutzende neue Beitrage, wie auch immer, hier mein Senf

ot
Ich bin ja kein Freund davon, den TE die Anforderungen im Mund rumzudrehen, daher ot, aber ich finde die Anmerkungen von TiggerLilly ganz treffend.

Dazu noch von mir:
1. was ist genial an MSSQL Express? (reine Neugier, vlt. nützt es auch dem TE)
2. alle 2 Jahre prüfen find ich ok, aber das ist kein Selbstzweck, ich mag Systeme (und Unternehmen) die für langlebige Verfahren stehen.
3. MS steht nun nicht unbedingt für 2., besonders was "gelegentliche Wechsel der favorisierten, supporteten Connectivity" angeht
4. Der Schritt Richtung SQL mag ratsam sein (für mich sowieso), aber eine file basierte Technologie? Dann lieber eine, die "seamless" zum Server mutieren kann (z.B. Firebird). Technologiewechsel, Umlernen, Protokollprobleme entfallen. (Filebasierte Datenbanken benötigen m.E. eine unnötige und mindestens historisch anfällige Zwischenschicht)
5. Der TE will "32, vielleicht auch später 64 bit". Da klingt etwas von vorausschauen durch, m.E. ist die Grundanforderung nach einer filebasierten, seqentiellen DB aber nett gesagt das Gegenteil, recht old school
6. "vielleicht auch kleine Bilder", dann später doch auch große, und weil sie lokal so leicht zerstört werden können, selbst versehentlich, kommen sie natürlich in die DB, nicht daneben und dann geht es langsam dahin, das System, das eigentlich fast nichts können muss..
7. aus 6. und unbekanntem Einsatzweck heraus ergäbe sich vielleicht auch noSQL DB, allgemein dokumentbasierte oder Mischsysteme als Alternative.

(Für den TE, bitte einfach als Hinweise, Denkanstöße ansehen und mit dem wirklichen Einsatzzweck/Perspektive abgleichen)
/ot

MichaelT 9. Mai 2019 11:06

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Die heißen heute NexusDB, wenn ich mich nicht irre. (ehem. Flash Filer)

Zitat:

Zitat von hans65 (Beitrag 1431829)
Eigentlich werden alle TurboPower-Komponenten zeitnah aktualisiert (https://github.com/TurboPack) und auch über GetIt angeboten. Deshalb dachte ich, das betrifft auch BTreeFiler. Aber genau dieses eine Produkt wird nicht gepflegt. Kennt jemand den Grund?


Andreas13 9. Mai 2019 23:47

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hallo zusammen,

Zitat:

Zitat von scrat1979 (Beitrag 1431819)
Da kostenlos kein Kriterium ist (oder habe ich es überlesen?) werfe ich auch mal Absolute Database in den Raum. Compiliert direkt in die EXE, benutze ich für einige kleine Projekte seit Jahren und bin voll zufrieden!

@scrat1979 (Michael Kübler)

10^3 x Danke Michael: das war der entscheidende Tipp für mein Vorhaben!
Zunächst habe ich NexusDB getestet: Leider ist es für einen mich als Datenbank-Anfänger viel zu komplex und vor allem sehr umständlich in der Handhabung.
„Absolute Database“ Absolute Database ist wohl die Lösung für meine Aufgabenstellung. Sie ist einfach in der Benutzung, (fast) alle Demos funktionieren und sind sehr informativ. Die Hilfedatei war/ist für mich eine wirkliche Hilfe.


Zitat:

Zitat von jobo (Beitrag 1431837)

6. … , nicht daneben und dann geht es langsam dahin, das System, das eigentlich fast nichts können muss..

Ihr DB-Experten arbeitet bestimmt mit weltweit verteilten Datenbanken oder im Bereich von BigData. Meine Anwendung ist nur „Very Little Data“. Damit Ihr meinen DB-Bedarf neben der obigen Kurzspezifikation besser verstehen könnt, folgt kurz mein Projekt.

Als Ingenieur erstelle ich seit Jahrzehnten technische-wissenschaftliche Berechnungen aus dem Bereich der mechanischen, thermischen und chemischen Verfahrenstechnik und der Anlagenplanung, die ich als Funktion über DLL‘s in Excel einbinde. Meine „Programme“ sind daher keine eigenständigen Programme mit eigener Oberfläche, sondern laufen als „Bestandteil“ von Excel. Der Benutzer gibt seine Eingangsdaten in Excel ein, schickt die Funktion ab, und die Ergebnisse der oft recht umfangreichen Berechnungen landen gleich in der Excel-Tabelle.

Diese Berechnungen benötigen als Input meistens eine große Anzahl diverser Stoffdaten wie z. B. Dichte, Viskosität, Wärmeleitfähigkeit, Wärmekapazität, Oberflächenspannung, Dampfdruck, kritische Daten etc. Etliche dieser Stoffdaten sind Funktionen der Temperatur, des Druckes und der Konzentration der einzelnen Komponenten (Diese Zusammenhänge liegen oft in Form empirischer Gleichungen mit zahlreichen Koeffizienten vor). Darüber hinaus werden auch noch Kenndaten diverser Apparate (Wärmeaustauscher, Behälter, Destillationskolonnen, Rohleitungen, Pumpen, Gebläse, etc.) benötigt, die z. T. genormt sind (= umfangreiche Tabellen) und oft vom Druck im System abhängen (z. B. Wandstärke der Rohleitungen, Behälter etc.). Bei manchen Aggregaten (z. B. Pumpen, Gebläse, etc.) steckt ihr Betriebsverhalten in diversen Diagrammen (z.B. „Kennlinien“) etc. Hinzu kommen noch diverse chemische Analysendaten (z. B. Rohstoffe, Hilfsstoffe, Endprodukt, Abfallstoffe etc.), die für den jeweiligen Prozeß relevant sind.

All diese Daten (und oft noch mehr) werden in meinen Berechnungen benötigt. Da ich die Programmierung – als NICHT-Informatiker – lediglich als Hobby und zugleich zur Erstellung von Arbeitserleichterungen („Tools“) für die Verfahrens-& Chemie-Ingenieure praktiziere, brauche ich eine hohe Zuverlässigkeit und vor allem Beständigkeit. Auch ich stamme noch aus „MS-DOS-Zeiten“ und habe bereits mehrere Systemwechsel (… CP/M, MS-DOS, Windows-16-Bit, Windows32-Bit) hinter mir, und konnte jedes Mal ein Scherbenhaufen meiner früheren Programmier-Arbeit erleben und alles wieder von vorne beginnen: Deswegen war / ist Beständigkeit für mich extrem wichtig.

@TigerLilly: Ich kann meine Software-Entwicklungen nicht alle zwei Jahre umstellen, weil damit täglich gearbeitet wird...

Ich habe eine relativ „große“ Sammlung (= für Euch nur „Very Little Data“) oben genannter Stoff- und Apparate- und Anlagen-Daten, vorwiegend in Excel und auch in Access. Und diese Daten möchte ich in einer einfach zu handhabenden Datenbank so ablegen, daß meine Berechnungsroutinen die erforderlichen Daten direkt aus dieser Datenbank holen können.

Daher hat Jo (@jobo) Recht, indem er feststellt, daß meine DB „eigentlich fast nichts können muss..“.

Noch einmal vielen Dank für die lehrreiche Diskussion und die wertvollen Anregungen. Ich habe viel von Euch gelernt!

Gruß
Andreas

hoika 10. Mai 2019 00:04

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hallo,
was spricht dann nicht für XML?
Es soll ja nur gelesen werden, wie ich es verstanden habe. (?)
Und der Nutzer soll das auch nicht so leicht ändern können (?)

jobo 10. Mai 2019 06:28

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Andreas, vielen Dank für die Infos. Klingt nach einem spannenden Arbeitsumfeld.
Mit Big Data habe ich eigentlich nichts zu tun, ein 3 stelliger Millionenbereich, darüber bin ich meinen Anwendungen noch nicht hinaus gekommen.
Eine Datenbank zu wechseln (Migration) ist an sich auch nicht so ein Problem, egal wie groß oder klein. Es dreht sich häufig um die Frage, wie tief sie im Code und in anderen Prozessen verstrickt ist oder auch DB spezifische Fähigkeiten im Programm genutzt werden. Also eher eine Frage von "Big Code". Was muss alles umgestellt werden, wenn das aktuelle Produkt Probleme bereitet.

So wie du es beschrieben hast, sehe ich da auch sowas wie XML, eher noch JSON. Dann kannst Du die Daten mit (fast) jedem Texteditor verwalten- es gibt jedenfalls sehr geeignete-, als Resource in Dein Programm einbauen oder was auch immer.

Andreas13 10. Mai 2019 08:57

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
@ hoika
Hallo Heiko,
Zitat:

Zitat von hoika (Beitrag 1431884)
was spricht dann nicht für XML?
Es soll ja nur gelesen werden, wie ich es verstanden habe. (?)
Und der Nutzer soll das auch nicht so leicht ändern können (?)

2 x Ja: Der Nutzer soll nur lesen können, nichts verändern. Allerdings sollen die Informationen nicht als Klartext, sondern mindestens binär (besser: verschlüsselt) gespeichert werden, da sich oft vertrauliche, proprietäre Meßdaten etc. darunter befinden. Der Anwender soll die Daten zwar benutzen, aber nicht einsehen können.
Mit XML habe ich bisher überhaupt keine Erfahrung…

@ jobo
Hi Jo,
Zitat:

Zitat von jobo (Beitrag 1431886)

So wie du es beschrieben hast, sehe ich da auch sowas wie XML, eher noch JSON. Dann kannst Du die Daten mit (fast) jedem Texteditor verwalten- es gibt jedenfalls sehr geeignete-, als Resource in Dein Programm einbauen oder was auch immer.

Das Problem ist bei JSON (und auch wohl bei XML) auch die Speicherung der Daten im Klartex-Format:
Zitat:

Der Nutzer soll nur lesen können, nichts verändern. Allerdings sollen die Informationen nicht als Klartext, sondern mindestens binär (besser: verschlüsselt) gespeichert werden, da sich oft vertrauliche, proprietäre Meßdaten etc. darunter befinden. Der Anwender soll die Daten zwar benutzen, aber nicht einsehen können.
@ Delphi.Narium
Zitat:

Und wenn es schon ohne "richtige Datenbank" sein soll, nehme man z. B. TClientDataSet, TDbf, KbmMemTable ... und hat damit jeweils dateibasierte Datenbanken, die keine zusätzliche Databaseengine benötigen. Alles, was gebraucht wird, wird in die Exe einkompiliert.
Auch TDbf (neueste Version tdbf701.zip, Stand: November 2015) habe ich getestet, doch – weiß Gott warum – liefert das Demo-Programm gleich beim Start eine „Access violation“. Daher habe ich es nicht weiterverfolgt. Nach diesem letzten (?) Mißerfolg habe ich mich schließlich an Euch gewandt und um Hilfe gebeten.

Danke & Gruß
Andreas

jobo 10. Mai 2019 09:53

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Verschlüsselst Du denn die Absolut DB Files bzw. deren Inhalte oder andere Formate?
Oder reicht die "Fremdheit" des Formats schon an sich?

Ich nehme an, in den Daten liegt zumindest zum Teil das Firmen Know How, aber auch JSON kann man ja wie jeden Text verschlüsseln.
Wir setzen JSON auch als Datentransferformat ein. Das geht auch ganz gut mit
>kleinen Bildern
>oder großen Bildern
Für Bilder oder allgemein Binärdaten ist sowieso ein Codierung wie z.B. bei Mailattachments notwendig (Mime Codierung).

FaTaLGuiLLoTiNe 10. Mai 2019 11:06

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Also wenn du wirklich nur reine Stammdaten hast, die vom Benutzer weder ergänzt noch geändert werden können und du am liebsten überhaupt keine weiteren externen Dateien haben möchtest, dann wäre es vielleicht zu überlegen, ob du deine Daten nicht lieber in vernünftigen Objektstrukturen, Listen und Dictionaries verwalten solltest, die beim Programmstart initialisiert werden. Oder evtl. als XML/JSON-Datei(en), die als Resource mit einkompiliert werden.

//edit: Ich sehe gerade, das mit den Resourcen hat jobo ja bereits vorgeschlagen.

Sherlock 10. Mai 2019 11:48

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Und XML erlaubt auch verschlüsselte Daten. So lange sie als Base64 vorliegen, sind alle Chiffrate zulässig. https://de.wikipedia.org/wiki/XML-Encryption
Über die Dateigröße könnte man sich Gedanken machen...

Sherlock

Frickler 10. Mai 2019 17:52

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Zitat von jobo (Beitrag 1431902)
Verschlüsselst Du denn die Absolut DB Files bzw. deren Inhalte oder andere Formate?
Oder reicht die "Fremdheit" des Formats schon an sich?

Absolute Database bietet verschiedene Verschlüsselungen (u.a. AES256). Die ganze Datenbank ist eine Datei (wie bei Access oder Firebird), aber es ist eine "dumme Datenbank", ohne Views, SPs, Trigger usw. SQL CRUD geht aber (zusätzlich zum ISAM Zugriff).

P.S.: SQLite kann auch verschlüsselt werden mit DISQLite oder LiteDac/UniDac. Ist aber beides nicht kompatibel zum offiziellen Standard (der ziemlich teuer ist), d.h. zum Entschlüsseln muss jeweils wieder die Bibliothek verwendet werden.

scrat1979 10. Mai 2019 23:25

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Zitat:

Zitat von Frickler (Beitrag 1431940)
Zitat:

Zitat von jobo (Beitrag 1431902)
Verschlüsselst Du denn die Absolut DB Files bzw. deren Inhalte oder andere Formate?
Oder reicht die "Fremdheit" des Formats schon an sich?

Absolute Database bietet verschiedene Verschlüsselungen (u.a. AES256). Die ganze Datenbank ist eine Datei (wie bei Access oder Firebird), aber es ist eine "dumme Datenbank", ohne Views, SPs, Trigger usw. SQL CRUD geht aber (zusätzlich zum ISAM Zugriff).

P.S.: SQLite kann auch verschlüsselt werden mit DISQLite oder LiteDac/UniDac. Ist aber beides nicht kompatibel zum offiziellen Standard (der ziemlich teuer ist), d.h. zum Entschlüsseln muss jeweils wieder die Bibliothek verwendet werden.

Natürlich ist AbsouteDatabase nicht die eierlegende Wollmilchsau, aber insbesondere IMHO für den Anfang und für kleine Projekte absolut Top! Der reibungslose Zugriff mit den entsprechenden Komponenten ist insbesondere auch für Anfänger sehr gut geeignet. Ich benutze es bei meinem Server für eine Termindatenbank mit ca. 60-130 Terminen pro Tag. Das Einlesen von 3 Monaten in eine entsprechende Objektliste, welche danach durch das Netzwerk gejagt wird, geht sehr schnell. Für andere Projekte benutze ich selbst auch Firebird mit den IBDAC-Komponenten. Auch spitze - vor allem die spätere Skalierbarkeit natürlich von Vorteil.

Schönes Wochenende

Andreas13 11. Mai 2019 15:50

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Hallo zusammen,

in den letzten 2 Tagen habe ich mich intensiv mit Euren Tipps & Vorschlägen beschäftigt und so manches ausprobiert. Da ich mich weder mit SQL, XML noch mit JSON auskenne, aber mit „Absoute Database“ sehr rasch beachtliche Fortschritte erzielen konnte, steht meine Wahl für meine 08/15-DB-Anforderungen fest: Es ist Absoute Database. Absolute Database

Der mitgelieferte DBManager und die Hilfedatei AbsDbManualwar waren für mich extrem hilfreich, die Demo-Programme sind funktionstüchtig, verständlich und einfach nachvollziehbar. Auch die Verschlüsselung der gesamten Datenbank (8 verschiedene Algorithmen) ist durch einen Mausklick erledigt. Nach ein paar Stunden Studium der Demos & eigenes Probieren konnte ich als DB-Anfänger bereits ein kleines (aber für mich wichtiges) Projekt in groben Zügen funktionierend realisieren.

Da ich kein Datenbank-Experte werden will, sondern die DB-Tools lediglich als ein (wichtiges) Hilfsmittel zur Speicherung und Wiederfindung meiner Daten benutzen möchte, bin ich mit dieser Lösung extrem zufrieden. Ich habe viel mehr bekommen, als ich ursprünglich erhofft habe.

Ich danke Euch ALLEN noch einmal ganz herzlich für Eure tatkräftige und effektive Unterstützung!

Gruß & ein schönes Wochenende
Andreas

johndoe049 11. Mai 2019 16:39

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Wenn du es ganz einfach als Komplettlösung haben willst:

MyVisualDatabase.

Kannst dir einfache Anwendungen zusammenklicken. Datenbankverschlüsselung kostet extra über einen Toolanbieter. Infos in deren Forum.


Übrigens:
Der Datenbankdesinger kann sehr praktisch Datenbankverknüpfungen visualsieren. Ist zwar auf SQLite Basis, aber kleines günstiges Tool um sich mal einen Prototypen zum basteln zusammenzuklicken.

haentschman 12. Mai 2019 04:50

AW: Einfache lokale Datenbank – bitte um Entscheidungshilfe!
 
Moin...8-)
Zitat:

Kannst dir einfache Anwendungen zusammenklicken
...da stellen sich mir die Nackenhaare hoch. :roll: Ich habe mit einer Anwendung zu tun die das reichlich gemacht hat. :kotz: Was kostet es mehr wenn man es gleich richtig macht. Es macht etwas mehr Aufwand, aber es ist wartbar! :thumb:
PS: Das gilt auch für eine Datenbank. Man sollte sich auch über z.B. Normalisierung schlau machen. https://de.wikipedia.org/wiki/Normal...ng_(Datenbank)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz