Hi Uwe,
bis jetzt hatten wir unsere Bibliothek als .txt-Datei zur Titelabfrage
im Netz. Die Anzahl der Datensätze beträgt im Moment knapp 5.000
(ca. 1,5 MB bei 6 Feldern - Autor, Titel, Verlag, etc.).
Die Ladezeiten sind sehr lang.
insbesondere sind sie ziemlich sicher direkt proportional zur Größe der
Datei. Damit kannst Du, falls Dir die Wachstumsgeschwindigkeit der Liste
bekannt ist, eine Abschätzung für die Entwicklungs der Zugriffsdauer treffen.
Welche Art der Datenquelle
Quelle? Ich vermute, Du meinst eher "Speichermethode"?
In jedem Fall lautet meine Antwort "eine baumartige" (weil dann die Suchdauer
nur noch proportional zum Logarithmus der Datenmenge ist).
und welche Art der Abfrage ist hier zu empfehlen?
Die Abfrage ist eher das untergeordnete Problem - die ergibt sich aus der
Art der Speicherung praktisch automatisch.
Sven hat Dir zu einer Datenbank geraten; nach meiner geratenen Vorstellung
der Eigenschaften Deiner Bücherliste tue ich dasselbe.
Wobei Du bedenken solltest, daß
- dies Deine Zugriffs-Software stark beeinflussen wird (Denken in SQL ist
etwas Anderes als Denken in einer normalen algorithmischen Sprache), - Du von der Datenbank alleine noch gar nichts hast - erst durch die
Definition geeigneter Indexbaumstrukturen wird die Sache besser, dann
aber gleich um mehrere Zehnerpotenzen (hier lohnt es sich also, gründ-
lich nachzudenken) - irgendwer diese Daten wahrscheinlich auch pflegen möchte (und hierbei
wahrscheinlich mit einem SQL-basierten Interface eleganter weg kommt
als mit der bisherigen Lösung - es sei denn, es wurde bisher nur neue
Bücher angefügt und keine alten gelöscht)
Gerade der letzte Punkt sollte Dich beschäftigen: Möchtest Du die Möglich-
keit haben,
- von mehreren Plätzen aus simultan Änderungen am Bücherbestand durchführen
und/oder - simultan den Bestand ändern und in ihm suchen
zu können? Für ersteres bräuchtest Du Datenbank-Transaktionen, für letzteres
wäre sie auch nicht verkehrt.
Ich halte die vermutlichen Anforderungen Deiner Anwendung für eher niedrig;
deshalb würde ich die Menge der verwendbaren Datenbanken nicht einschränken
wollen (auch wenn mein persönlicher Favorit dafür mySQL wäre).
Wenn Du in einer Dir geläufigen Sprache einen gut dokumentierten Zugang zu
einer Dir verfügbaren Datenbank hast, dann kannst Du loslegen.
Viele Grüße
Michael