Читать книгу LearnXML5 - hagbard 123 - Страница 6
4:Datenbankabfragen
ОглавлениеUm die Funktionsweise von DB Abfragen etc zu verstehen sollte man vielleicht zuerst einmal
den Aufbau verstehen , und die Wirkungsweise der einzelnen Komponenten
--------------------------------------------------------------------------------
Eine Datenbank muss immer irgendwo hinterlegt sein das zugehörige Abfragemodul muss auch irgendwo gespeichert sein und mit der Datenbank kommunizieren d.h. Daten müssen ausgetauscht werden was in der Regel über ein script oder eine Routine(kleines Programm)
erfolgt nun muss diese Routine die Eingabe des Users aufnehmen und verarbeiten d.h. prüfen
ob der nachgefragte Datensatz vorhanden ist!
Also vergleicht er die Eingabe mit den hinterlegten Daten diese müssen also verfügbar sein! normalerweise laufen Scripte aber clientseitig sind also vorgeladen auf den PC des Users ,die Datenbank muss also im nächsten schritt abgefragt werden ,diese liegt aber auf einem Server und wird nicht zum client übermittelt "!(logischerweise)also muss die abfrage auch serverseitig
laufen was sie auch tut (gewöhnlich)
Die Kommunikation zwischen client und Server muss also ein ständiges hin und her sein
bezieht man jetzt die transferrate der Leitung ,,die Leistung des Servers und die Größe der jeweiligen Datenbank mit ein kommt man zum folgerichtigen Ergebnis das so eine abfrage
unter umständen ziemlich lange dauern kann!!!
Dies zu umgehen ist XML in Verbindung mit Javascript hervorragend geeignet wie wir gelesen
haben kann man in xml dateninseln erschaffen und sie in html anzeigen mittels einer id eine
feste variable zuweisen und sie speichern (verarbeiten) mit javascript kann man hervorragend
eine suchroutine schreiben !
Javascript lauft clientseitig wird also immer vollständig geladen und gecached wenn man es
nicht vermeidet also liegt der Schluss doch nahe einen weg zu wählen mit dem man die
vorteile einer serverseitigen Datenbank und einer clientseitigen abfrage paaren kann mit dem
einfachen Handling von xml!!!!!!!
Dies alles ohne ASP,JSP,CGI oder PHP einsetzen zu müssen dieser weg hat noch einen
anderen Vorteil , nämlich die Aktualisierung aber dazu später mehr Die Suchroutine sollte die
Abfragen ausführen ,dazu kann man zwei Möglichkeiten wählen
1)man gibt die Suchbegriffe fest vor und hinterlegt sie in einer Datei
2)man lässt die Routine die Datenbank durchsuchen
Ersteres hat den Vorteil dass man keine sql abfrage durchzuführen braucht also einfach mittels eines jscripts die suchmaske vorgibt ,außerdem kann man falsche oder fehlerhafte
sucheingaben abfangen indem man diese vorsieht in der Routine! die zweite Möglichkeit
durchforstet die db direkt(mittels sql oder asp) muss also nicht extra aktualisiert werden, findet
aber auch lediglich begriffe die exakt angegeben wurden für was man sich entscheidet ist
letztendlich geschmacksache! aber back to XML Dies ist die einfache Definition einer
Datensammlung bib ist die Bibliothek in dieser befindet sich das Erscheinungsjahr des Buches ,der titel,author und publisher,sowie Name und lastname(Nachname)des Autors wie direkt ins Auge fällt ist der author und lastname identisch, des Weiteren Publisher und Name sind gleich
bzw. haben den gleichen Inhalt! dies ist eine relativ einfache art und weise Suchbegriffe für
dateninseln zu verbinden in diesem fall ist author und Nachname ein begriff,folglich kann
dieser Eintrag gefunden werden wenn nach author oder Nachname gesucht wird!
<bib > < book year="1990">
< title> Erlauterungen zur Datenbank </title>
< author> <lastname> Mann </lastname> </author>
< publisher> <name> Thomas </name > </publisher>
< /book>
</bib>
Nun ist dies natürlich erst der Anfang - wir können also XML Dokumente transformieren und als HTML oder reinen Text ausgeben.
Nun können wir noch einen Schritt weitergehen und diese Daten doch auch gleichzeitig in Flash und/oder php/asp weiterverwerten?! So haben wir doch lediglich einen Bruchteil der Arbeit die wir sonst hätten- oder nicht.
Dies reicht natürlich nicht aus und deshalb gehen wir bis ins extrem und verwenden unsere
XML Rohdaten als Datenbasis (dbms) und voila! EINMAL schreiben - beliebig oft und in beliebigen Format weiterverwenden, dies ist Effektivität.
Fangen wir also an: Als erstes Fragen wir uns was in einer Artikeldatei stehen sollte?
Da wäre einmal der Name der Artikel, die Artikelnummer, der Einzelpreis, eine kurze
Beschreibung,dies reicht fürs erste einmal aus denke ich
Jetzt müssen wir weiter überlegen wie wir die Artikeldaten darstellen wollen? als Liste als
Tabelle geordnet oder ungeordnet?
Wir nehmen einmal eine Listenform
Zu überlegen ist auch noch die Rangordnung der Ausgabe d.h. welche Daten sollen als erstes
stehen ,sollen alle Daten ausgegeben werden oder nicht sollen sie geordnet sein? wenn ja
nach welchen Kriterien? Der einfachheit halber stellen wir sie sortiert und in einer geordneten
Listenform dar
Da wir jetzt also wissen wie wir die Daten darstellen wollen können wir daran gehen den
Aufbau der Datei zu planen und loszulegen
Fangen wir mit der DTD an.
In einer DTD werden alle Strukturangaben gemacht, festgelegt welche Daten in der XML
Datei später erscheinen , wie oft sie erscheinen , ob sie doppelt sein dürfen , welche Attribute
sie haben und welche Tags verwendet werden können Nun gibt es verschiedene
Möglichkeiten zur Verwendung einer DTD, einfach eine vorgefertigte nehmen oder aber eine
eigene entwerfen. Wir wollen es ja lernen und entwerfen deshalb eine eigene!
Eine DTD wird immer !!! wie folgt aufgebaut <?!ELEMENT TAG (Attribut)> in unserem Fall
also:
<?!ELEMENT artikel (#PCDATA)>
PCDATA bedeutet , das der Inhalt schon geparst ist und im fertigen Format ausgegeben wird
Da dieser einfache Aufbau bei weitem nicht ausreicht für eine Artikeldatei müssen wir noch
einige Elemente definieren und einbauen in unsere DTD Dazu wieder die Frage ,aus was
besteht ein Artikel?
siehe oben Artikelnamen Artikelpreis Artikelnummer Artikelbeschreibung um uns einiges an
Schreiberei zu sparen kürzen wir diese aber ab
Artikelnamen = aname Artikelpreis = aDM und aeuro Artikelnummer = anummer
Artikelbescheibung = abeschr
das ganze sieht dann wie folgt aus
<?!ELEMENT artikel (aname,aeuro?,aDM?,abeschr*,anummer)>
Das Element Artikel besteht aus Name,Preis in DM und Euro ,Beschreibung und Nummer Die
Symbole hinter dem Attribut haben verschiedene Bedeutungen: aname = Der Name muss
enthalten sein wenn nichts dahinter steht aeuro? = Darf nur einmal enthalten sein bei einem Fragezeichen abeschr* = Darf null oder mehrmals enthalten sein gekennzeichnet durch den
Stern anummer | = Kann muss aber nicht enthalten sein | ist das Zeichen für oder Damit hätten
wir unsere erste kleine DTD kreiert in der alle relevanten Daten strukturiert sind Als nächsten
Schritt entwerfen wir die XML Datei in der die Daten enthalten sind In einer XML Datei ist
genaustens darauf zu achten dass alle Tags abgeschlossen werden sollte dies nicht der Fall
sein kommt es zu einer Fehlermeldung!!
Fangen wir also an: Als erstes Fragen wir uns was in einer Artikeldatei stehen sollte?
Da wäre einmal der Name der Artikel, die Artikelnummer, der Einzelpreis, eine kurze
Beschreibung,dies reicht fürs erste einmal aus denke ich
Jetzt müssen wir weiter überlegen wie wir die Artikeldaten darstellen wollen? als Liste als
Tabelle geordnet oder ungeordnet?
Wir nehmen einmal eine Listenform
Zu überlegen ist auch noch die Rangordnung der Ausgabe , d.h. welche Daten sollen als
erstes stehen ,sollen alle Daten ausgegeben werden oder nicht sollen sie geordnet sein? wenn
ja nach welchen Kriterien? Der einfachheit halber stellen wir sie sortiert und in einer geordneten Listenform dar.
Da wir jetzt also wissen wie wir die Daten darstellen wollen können wir daran gehen den
Aufbau der Datei zu planen und loszulegen
Fangen wir mit der DTD an.
In einer DTD werden alle Strukturangaben gemacht, festgelegt welche Daten in der XML
Datei später erscheinen , wie oft sie erscheinen , ob sie doppelt sein dürfen , welche Attribute
sie haben und welche Tags verwendet werden können Nun gibt es verschiedene
Möglichkeiten zur Verwendung einer DTD, einfach eine vorgefertigte nehmen oder aber eine
eigene entwerfen. Wir wollen es ja lernen und entwerfen deshalb eine eigene!
Eine DTD wird immer !!! wie folgt aufgebaut <?!ELEMENT TAG (Attribut)> in unserem Fall
also:
<?!ELEMENT artikel (#PCDATA)>
PCDATA bedeutet , das der Inhalt schon geparst ist und im fertigen Format ausgegeben wird
Da dieser einfache Aufbau bei weitem nicht ausreicht für eine Artikeldatei müssen wir noch
einige Elemente definieren und einbauen in unsere DTD Dazu wieder die Frage ,aus was
besteht ein Artikel?
siehe oben Artikelnamen Artikelpreis Artikelnummer Artikelbeschreibung um uns einiges an
Schreiberei zu sparen kürzen wir diese aber ab
Artikelnamen = aname Artikelpreis = aDM und aeuro Artikelnummer = anummer
Artikelbescheibung = abeschr
das ganze sieht dann wie folgt aus
<?!ELEMENT artikel (aname,aeuro?,aDM?,abeschr*,anummer)>
Das Element Artikel besteht aus Name,Preis in DM und Euro ,Beschreibung und Nummer Die
Symbole hinter dem Attribut haben verschiedene Bedeutungen: aname = Der Name muss
enthalten sein wenn nichts dahinter steht aeuro? = Darf nur einmal enthalten sein bei einem Fragezeichen abeschr* = Darf null oder mehrmals enthalten sein gekennzeichnet durch den
Stern anummer | = Kann muss aber nicht enthalten sein | ist das Zeichen für oder Damit hätten
wir unsere erste kleine DTD kreiert in der alle relevanten Daten strukturiert sind Als nächsten
Schritt entwerfen wir die XML Datei in der die Daten enthalten sind In einer XML Datei ist
genaustens darauf zu achten dass alle Tags abgeschlossen werden sollte dies nicht der Fall
sein kommt es zu einer Fehlermeldung!!