3 - Emmagatzematge en SGBD tradicionals
( VOLUNTARI )
Per a il·lustrar l'emmagatzematge en SGBD tradicionals, ens centrarem en un SGBD Relacional, concretament en PostgreSQL, que ja l'havíem utilitzat amb anterioritat.
Tenim 3 possibilitats bàsiques de guardar informació XML en un SGBD Relacional:
- Guardar el document XML en un camp BLOB o CLOB (que en PostgreSQL és TEXT). Evidentment podrem guardar el document, però realment el SGBD no ens està oferint cap utilitat. La utilització posterior serà molt pesada: no es pot fer cap tipus de consulta dins del document XML, i per tant estaríem obligats a fer tota la feina en el programa que accedesca al document (el programa Java).
-
Transformació (mapatge) de l’estructura de dades del document XML cap al model relacional, per guardar les dades en taules. La idea principal d’aquesta opció és observar l’estructura del document XML, amb els elements i atributs que apareixen i efectuar la conversió al model relacional. Ens donarà molta feina per a fer el mapatge, encara que després es podran fer consultes molt elaborades. Mirem un exemple, on en principi sembla prou fàcil passar de l'estructura jeràrquica del document XML a taules del model relacional
Les taules que quedarien en el Model Relacional serien:
Com comentàvem, la informació quedarà ben guardada i consultar les dades serà fàcil i potent (amb SQL), però duu l'inconvenient d'una gestió del mapatge total. I encara que el mecanisme sembla simple, no sempre és senzill fer aquesta conversió, ja que el model relacional i el XML parteixen de conceptes molt diferents:
-
-
El model relacional està basat en dades bidimensionals sense jerarquia ni ordre, mentre que el model XML està basat en arbres jeràrquics on l’ordre és rellevant.
-
En un document XML poden haver dades repetides, mentre el model relacional fuig de les repeticions.
-
Les relacions i les estructures dins dels documents XML no sempre són òbvies.
-
I, a més, què passa si necessitem tenir el document XML de nou? Fer el procés invers no sempre és trivial. Un dels conceptes difícils és determinar quines dades eren atributs i quines eren elements.
-
- Utilitzar eines específiques per al tractament de la informació XML. Només es podrà fer en SGBD XML habilitats. Aquest serà el punt que tractarem.
En els següents subapartats farem un resum de les possibilitats que ens ofereix PostgreSQL com a XML habilitat.
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 2.5