Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Firebird vs. XML - Brauche ich wirklich noch Firebird (https://www.delphipraxis.net/57281-firebird-vs-xml-brauche-ich-wirklich-noch-firebird.html)

Taladan 18. Nov 2005 12:10

Datenbank: Firebird • Version: 1.52 • Zugriff über: Ado.net

Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Huhu zusammen,

nachdem ich mich jetzt ein wenig mit Firebird auseinander gesetzt habe, ist mir aufgefallen, das das weshalb ich umgestiegen bin, Relationen, wohl doch unter einem Dataset.XML.Datenbank möglich ist.

So ist es sinnvoll eine DB einzusetzen?

Was kann wer? XML Firebird
- Datensätze mit ca.3-300 Daten Ja Ja
und Viele ca. 30 Tabellen
- Relation 1:n Ja Ja
- Relation m:n ? Ja
- Einfache Umstruktuirung der Ja Nein (nur über SQL-Befehle)
Datenbankstruktur (z.b. Updates)
- Anweisung für Auswahl ? Ja (Über Select SQL)
bestimmter Datensätze

Kann jemand meine Fragezeichen füllen? Wenn dort auch ein Ja stehen wird, dann brauch ich keine Datenbank, denke ich, oder ist es sinnvoll doch eine DB zu nutzen? Wenn ja, warum? Ich merke nämlich, das die DB doch deutlich mehr Speicher verschlingt, als gedacht. Eine leere Firebird DB mit 5 Tabellen zu je ca. 10 Spalten hat ja bereits 2 MB. Das finde ich echt viel. Vor allem Die Umstrukturierung scheint mir auf die dauer doch sehr umständlich, wenn ich jede kleinigkeit per SQL machen muß. Da ich ja leider keine fertige DB mit liefern kann. Da kommt schon jetzt vorraussichtlich weitere Tabellen dazu.

Was ratet ihr mir?

RavenIV 18. Nov 2005 12:16

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
wie ist es in XML mit:
- suchen
- update eines Datensatzes
- löschen von Datensätzen
- Geschwindigkeit

ich würde dir schon eher zu einer Datenbank raten, z.B. embeddedFirebird.
da brauchst du keinen Server und du kannst trotzdem per SQL darauf zugreifen.

Taladan 18. Nov 2005 12:27

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Update und Löschen unterscheiden nich nicht mit Firebird embetted. Geschwindigkeit ist denke ich nicht so relevant bei der geringen anzahl an Datensätzen (pro Tabelle max. 1000, Schnitt ca. 50).

Suchen, ka, daher steht oben ja auch ein ?. Muß jedoch auch gehen, da ja Relationen 1:n auch eine Suchenfunktion beinhalten muß. Weiß nur leider nicht wie.

Taladan 18. Nov 2005 13:06

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Suchen geht recht einfach über die DataView komponente.

nieurig 18. Nov 2005 13:14

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Hi Taladan,
ich denke der größste Unterschied ist die Tatsache, dass Du bei den .NET DataSets (XML Datenformat) immer zunächst die für die Verknüpfung, Suche und Abfrage benötigten Daten zum Client laden muss.

Wenn Du nur DataSets nutzt, machst ja erst ein
SQL-Code:
select * ....
um den DataSet zu füllen und kannst erst danach Suchen und Verknüpfen.
Ergo: Alle Daten müssen gelesen werden.

Wenn Du eine Datenbank nutzt, übergibt Dir die DB nur die auf die Abfrage passenden Datensätze (Netzwerklast ist geringer, Speicherbedarf im Client kleiner). Auch so Befehle wie GROUP BY, SUM() usw. sind mit den DataSet kaum nachzubilden.

Frohes Schaffen
Niels

Taladan 18. Nov 2005 14:22

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Was mich am meisten stört an einer echten Datenbank, das die Datenbankstruktur so ähm fest ist. Ebenso der Speicherplatz.

Beispiel:
Hab eine Tabelle erstellt, namens Beruf

Beruf:
ID
Bezeichnung
Gehaltsstufe
Typ

Für die erste Auslieferung reicht das völlig. Doch dann kommt der Fall, das nun noch erwartet werden, das bestimmte Berufe auch bestimmte Vorraussetzungen haben. Nicht weiter das Problem:

Vorraussetzungen:
ID
ZU_Beruf
Bezeichung
Wert

Bei dem XML Dataset verändere ich lediglich das Dataset. Schwubs habe ich in meiner Datenbank eine neue Tabelle. Relation gesetzt fertig. Hier kann ich die alten Tabellen weiter verwenden.

Bei einer Datenbank muß ich erst die Tabelle erzeugen, dann umständlich das Dataset neu erstellen und alles andere obrige auch. Ergo, mehr arbeit.

Alles was man in einer XML datanbank macht, muß man bei eienr echten DB zusätzlich machnen. Untoll oder?

Nu geht es weiter mit den Speicherbedarf. Eine einfache XML datei hat bei 5 leeren Tabellen gar keinen (kaum) speicherbdarf. Meine Firebird braucht da schon imense 2 MB!!!

GuenterS 18. Nov 2005 22:14

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Dann versuch mal in XML stored procedures und functions zu verwenden, wird wohl nicht funktionieren.

Weiters wie schaut es mit Transaktionen aus? Was passiert, wenn mehrere Benutzer auf das XML File zugreifen? Kann man gemachte Änderungen einfach durch einen Rollback Befehl wieder rückgängig machen?

Kannst du Aggregat-Funktionen wie Sum, usw. nutzen?

Kannst Du die Datenmenge einschränken, auf gewisse Kriterien?

Ist es einfach möglich, die Rechenleistung die dir beim Parsen/einlesen des XML Files entsteht auf einen anderen, dafür ausgelegten Server zu verlagern?

Tubos 18. Nov 2005 22:21

Re: Firebird vs. XML - Brauche ich wirklich noch Firebird
 
Datenbanken wurden doch genau deswegen eingeführt, damit man nicht direkt auf Dateien zugreifen muss.

Zitat:

Nu geht es weiter mit den Speicherbedarf. Eine einfache XML datei hat bei 5 leeren Tabellen gar keinen (kaum) speicherbdarf. Meine Firebird braucht da schon imense 2 MB!!!
Hast du schon mal drüber nachgedacht dass eine XML-Datei einen z.T. sehr großen Overhead hat?
Nimm beispielsweise folgende Struktur:
Code:
<item>
<nr>1</nr>
<name>Mol</name>
</item>
<item>
<nr>2</nr>
<name>Pferd</name>
</item>
Da ist ja wesentlich mehr Overhead als Daten dabei.
Bei einer Datenbank wird der Overhead zur Indizierung verwendet.
Bei XML ist der Overhead einfach unnötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.

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