[PHP] XML versus Database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Waar gaat jullie voorkeur zoal naar uit en waarom; XML-documenten die geparsed worden via de PHP XML-functies of de oude vertrouwde (My)SQL queries?

Zelf denk ik dat het werken met XML-documenten bv. sneller en overzichtelijker is dan het werken met dbase queries.

Acties:
  • 0 Henk 'm!

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Je hebt toch beide nodig?

Na verandering parse je met php xml, xml -> xhtml?

Of mis ik wat?

Huur mij in als freelance SEO consultant!


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
XML is geen database, en moet je dus ook niet gebruiken als database.

XML is er imo vooral voor uitwisseling van gegevens, een database is er om gegevens op een zodanige manier op te slaan dat de integriteit ervan bewaard wordt.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 10-07 16:50

dawuss

gadgeteer

whoami schreef op 03 december 2003 @ 13:03:
XML is geen database, en moet je dus ook niet gebruiken als database.

XML is er imo vooral voor uitwisseling van gegevens, een database is er om gegevens op een zodanige manier op te slaan dat de integriteit ervan bewaard wordt.
Heeel mooi verwoord :)
Dit is precies hoe ik erover denk.
Bovendien is een database veel schaalbaarder en kan die taak worden uitbesteed aan een fysiek andere databaseserver.

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Ik zou hiervan iig de eerste vier hoofdstukken even doorlezen:

http://www.rpbourret.com/xml/XMLAndDatabases.htm

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja ik weet ook wel dat XML geen Database is, maar je kan bv. wel XML-documenten gebruiken om data in op te slaan en vervolgens kun je die data er dan weer via functies gemakkelijk eruit destilleren, sorteren etc.

Voorbeeld:

<messageboard>
<message>
Hallooooo!
</message>
</messageboard>

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
Verwijderd schreef op 03 december 2003 @ 13:12:
Ja ik weet ook wel dat XML geen Database is, maar je kan bv. wel XML-documenten gebruiken om data in op te slaan en vervolgens kun je die data er dan weer via functies gemakkelijk eruit destilleren, sorteren etc.
Dat kan je met databases en SQL ook.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Ja ik weet ook wel dat XML geen Database is, maar je kan bv. wel XML-documenten gebruiken om data in op te slaan en vervolgens kun je die data er dan weer via functies gemakkelijk eruit destilleren, sorteren etc.
Ja dat kan inderdaad, alleen zal bij een grote site de performance wel een stuk lager liggen.
Waarom zou je xml willen gebruiken voor iets waar het niet voor bedoelt is?
imo is een database hier veel geschikter voor en kun je xml beter gebruiken voor de "overdracht" van gegevens

Acties:
  • 0 Henk 'm!

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 17-09 16:30

MAZZA

Barbie is er weer!

whoami schreef op 03 december 2003 @ 13:19:
[...]

Dat kan je met databases en SQL ook.
Ja.. Dus je zou XML ook als DB kunnen zien. Ik weet dat het niet zo is maar volgens jouw en zijn redenatie dus wel ;)

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

MAZZA schreef op 03 december 2003 @ 13:25:
[...]

Ja.. Dus je zou XML ook als DB kunnen zien. Ik weet dat het niet zo is maar volgens jouw en zijn redenatie dus wel ;)
Je kan dat ook met simpele tekstbestandjes. Tekstbestanden in een folder zijn dus ook een database:P Dat iets kan, wil niet zeggen dat het geschikt is.. :P
Schrijf een simpel quicksort algoritme en je kan een heel eind komen. :)

* gorgi_19 gaat graag door op deze drogredenatie :)

Maar als ik me goed herinner, moest je eerst het hele XML-bestand inlezen,voor je er wat mee kon doen. Laat dat ding eens 50.000 'records' zijn.. :X

[ Voor 38% gewijzigd door gorgi_19 op 03-12-2003 13:29 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik gebruik XML nu voor het cachen van de gegevens die ik uit de database nodig heb. Ik update deze gegevens alleen als dit nodig is (wanneer er iets op de site veranderd wordt). De enige keer dat ik nu naar een database query is bij een zoek functie op de site en bij het updaten van de gegevens. Ik gebruik de xml 'niet' als database. Ik voer er namelijk geen enkele query op uit (mischien een XPath query, maar dat is een ander verhaal). Ik vind deze combinatie van beide erg goed werken.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

nofi, maar een mysql query zal toch echt sneller zijn dan een XPath query...

in 99% van de gevallen is een serialized array in mysql even practisch als xml, alleen is de uitwisseling wat tricky (maar kan wel door een simpele array2xml() )

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
chem schreef op 03 december 2003 @ 18:57:
nofi, maar een mysql query zal toch echt sneller zijn dan een XPath query...

in 99% van de gevallen is een serialized array in mysql even practisch als xml, alleen is de uitwisseling wat tricky (maar kan wel door een simpele array2xml() )
Ja maar GEEN query is nog altijd sneller dan 1 MySQL query Als het hier gaat om document-centric XML files die mbv XSLT naar (X)HTML omgetoverd moeten worden, zijn de XPath queries die gedaan moeten worden slechts bedoeld om de XML om te vormen naar iets presenteerbaars, m.a.w. iets wat pas na je voorgestelde "array2xml()" komt.

Dit lijkt mij het geval, niet? Bedenk je overigens ook, dat je je tranformatie-resultaat ook gewoon kunt cachen als statische XHTML files.

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

In de context van Michali, waarbij hij een mysql query in een xml file bewaard ter cache, is een serialized cache in een mysql-tabletje sneller dan een xml file inlezen.

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
chem > en waarom zou een XPath query op een DBMS die XML opslaat langzamer zijn dan een een SQL query op MySQL (buiten het feit dat MySQL snel is)?

Natuurlijk, als de XML gewoon een file is, lijkt het me logisch. Echter, als er ook een DBMS achter zit zou het best sneller/even snel kunnen zijn. En als je dus XML nodig hebt zelfs [em]waarschijnlijk[/em] sneller.

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
chem schreef op 03 december 2003 @ 19:13:
In de context van Michali, waarbij hij een mysql query in een xml file bewaard ter cache, is een serialized cache in een mysql-tabletje sneller dan een xml file inlezen.
oh waar staat dat dan? (ik neem voor het gemak maar even aan dat je mysql result set bedoeld maar dan nog zie ik dat nergens.) het zou best zo kunnen zijn dat er voordat er xml van gemaakt wordt nog een hele zooi processing plaats heeft, bijvoorbeeld, wanneer er data-centric informatie uit de database moet worden samengesmeed tot een meer document-georienteerde xml file. maarja dat dat het geval is staat ook nergens :P

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
Sendy schreef op 03 december 2003 @ 19:16:
chem > en waarom zou een XPath query op een DBMS die XML opslaat langzamer zijn dan een een SQL query op MySQL (buiten het feit dat MySQL snel is)?

Natuurlijk, als de XML gewoon een file is, lijkt het me logisch. Echter, als er ook een DBMS achter zit zou het best sneller/even snel kunnen zijn. En als je dus XML nodig hebt zelfs [em]waarschijnlijk[/em] sneller.
Wat bedoel je nu? Met XPath kan je geen records uit een database uitlezen. Als je XML in een DB zit, zal je eerst dat record moeten ophalen, en dan in de XML met XPath moeten zoeken.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
chem schreef op 03 december 2003 @ 19:13:
In de context van Michali, waarbij hij een mysql query in een xml file bewaard ter cache, is een serialized cache in een mysql-tabletje sneller dan een xml file inlezen.
Ja, maar op een serialized cache kan ik geen XSL tranformatie uitvoeren. Dan moet ik die data weer mbv. PHP eerst omzetten naar XML. Denk niet dat het dan sneller uitvalt.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
whoami schreef op 04 december 2003 @ 08:34:
[...]


Wat bedoel je nu? Met XPath kan je geen records uit een database uitlezen. Als je XML in een DB zit, zal je eerst dat record moeten ophalen, en dan in de XML met XPath moeten zoeken.
Als je een native XML database hebt lijkt XPath me daarvoor een uitstekende query language.

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Michali schreef op 04 december 2003 @ 12:37:
[...]


Ja, maar op een serialized cache kan ik geen XSL tranformatie uitvoeren. Dan moet ik die data weer mbv. PHP eerst omzetten naar XML. Denk niet dat het dan sneller uitvalt.
Kijk dat bedoel ik 8)

Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Genoil schreef op 04 december 2003 @ 12:41:
[...]


Als je een ntiave XML database hebt lijkt XPath me daarvoor een uitstekende query language.
De TS heeft het hier over het gebruik van XML dmv PHP functies. Als dan een applicatie zoals bv een gastenboek wordt gebruikt dan is een 'gewone' database zeker sneller.

Wanneer een native XML database wordt gebruikt zou dit uiteraard anders kunnen liggen, aangezien ik me voor kan stellen dat de database intern allerlei pointers/caching technieken toepast om xpath queries sneller te kunnen behandelen. Ik heb echter nog nooit een benchmark gezien tussen 'traditionele' databases en echte xml databases (voor zover aanwezig).

Nog terug naar de originele vraag, de TS geeft ook overzichtelijkheid aan als voordeel, in welk opzicht is dit?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Nu online
Ik vind zelf XML veel makkelijker voor het opslaan van documenten (artikelen, documentatie, handleidingen, etc.) dan relationele databases. Voor websites die voor een groot deel uit zulke pagina's bestaan lijkt XML me vanwege de hiërarchische documentstructuur ook een veel beter medium dan een relationele database.

Een gestructureerd document in een SQL database bewerken is bepaald geen pretje. Nu is XML ook nog wel wat anders dan een Word-documentje, maar met een beetje fatsoenlijke editor is het nog wel redelijk makkelijk te doen (de overhead van de XML codes ten op zichte van de tekt die je schrijft is wat mij betreft nog net acceptabel).

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Orphix schreef op 04 december 2003 @ 12:51:
[...]
Nog terug naar de originele vraag, de TS geeft ook overzichtelijkheid aan als voordeel, in welk opzicht is dit?
Ja het word zo onderhand wel interessant om nou eens te weten wat er precies in die XML files/database staat om er een goed oordeel over te kunnen vellen. Wanneer het om document-centric data gaat (zoals Soultaker ook zegt) is een XML file veel leesbaarder/overzichtelijker dan een zooi records in een RDBMS. Gaat het meer om repeterende chucks data (zoals dit forum), dan maakt dat weinig verschil en is een RDBMS zowieso veel flexibeler in het gebruik.

Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Het vervelende is dat er geen XML DBMS'sen lijken te zijn. Er is wel een adapter ('middleware') oplossing, maar dat lijkt me weer niet sneller dan een DBMS die native XML en XPath snapt.

[ Voor 8% gewijzigd door Sendy op 04-12-2003 18:06 ]

Pagina: 1