Just nu tillverkar jag en VB applikation. Ingenting webbrelaterat alltså. Har nu fått höra att jag bör använda XML som databas till denna. Rätt mig om jag har fel men är inte XML för webben endast? Tror att du kan få lite svar på dina frågor här: > Just nu tillverkar jag en VB applikation. Ingenting webbrelaterat alltså. Har nu fått höra att jag bör använda XML som databas till denna. Rätt mig om jag har fel men är inte XML för webben endast? Från ovan nämnda rapport: Jag fick också ett sådant uppdrag, eller rättare sagt - jag föreslog XML för att jag ville lära mig använda den tekniken. Efter mycket bekymmer och en hel del lärdom återgick jag till MDB. > Med MDB kan du lätt bygga SQL-frågor och köra dem i Access (kanske en orättvis jämförelse, XML är ju bara ett filformat och har inte någon databasmotor bakom sig) Tack alla för bra svar. Kan du förklara för mig då Håkan. Naturligtvis är det så att om detta är ett relativt enkelt projekt så bör Access vara den bästa (dvs enklaste) lösningen. > Du får gärna tala om detta för att de som tillverkar just XML databaser. Vilket både är bra och att rekomenderar i de fall man arbertar just mer hierarkisk data. >> [Skrivet av vb_jonas] Med MDB kan du lätt bygga SQL-frågor och köra dem i Access (kanske en orättvis jämförelse, XML är ju bara ett filformat och har inte någon databasmotor bakom sig) > Om du (handen på hjärtat) kan säga att ingen annan än din applikation någonsin kommer att vilja läsa/skriva till din databas tycker jag att du ska köra access. >> Du får gärna tala om detta för att de som tillverkar just XML databaser. Vilket både är bra och att rekomenderar i de fall man arbertar just mer hierarkisk data. >> Om du (handen på hjärtat) kan säga att ingen annan än din applikation någonsin kommer att vilja läsa/skriva till din databas tycker jag att du ska köra access. > - kontoutgrag kan exempelvis vara en nodlista hos transaktioner som kan vara en nodlista hos konto som kan vara en nodlista hos kontohavare som kan vara en nodlista hos bank osv osv... Jo det är fullt möjligt att se kontoutdrag som en del i en hierarki. Läger till artikeln på listan över kvällsläsning... Och du menar allvarligt att det skulle vara en bra lösning? Om Adam flyttar ifrån Eva och får ett nytt telefonnummer då? Då ska du helt plötsligt ändra på två platser. I vilket fall som helst så har du ju ingen som helst logisk modell över din data med detta. Vad du gjort är ju i princip försöka beskriva en relationsdatabas i ett xml-träd på något halvbra sätt. Du kan ju lika bra gå steget ut och ha följande struktur:Har fått XML på halsen
Min tanke har varit att använda en *.mdb fil som datalagring (databas) i min applikation.
Vad är bäst, vad är rätt?Sv: Har fått XML på halsen
http://www.df.lth.se/~mikaelb/xml/xml-rapport.htmlSv: Har fått XML på halsen
XML har ingenting med webbben att göra, den bara används mycket i samband med webbapplikationer. XML beskriver data genom att märka upp den i ett hierarkiskt träd av taggar, ingenting annat. XML kan absolut inte användas som en databas, möjligen kan man tänka sig att använda XML som någon form av enkel datalagring, helst då statisk sådan (t ex en cache av data).
> Vad är bäst, vad är rätt?
Rätt är att använda en relationsdatabas, vilket du tyvärr inte kan eftersom det inte finns några sådana. Då får en SQL databas duga, t ex SQL Server, Oracle eller som du själv nämner Access (som ej är i närheten av de andra dock). MSDE som är en desktop-variant av SQL Server 2000 skulle jag isf hellre rekommendera.Sv: Har fått XML på halsen
"Idag använder man relationsdatabaser för att skapa dynamiska webbsidor, man skulle kunna tänka sig att använda XML som databasformat. En nackdel med XML som databasformat är att det är ett textfilsformat och att binär information som t.ex. flyttal lagras på ett ineffektiv sätt (Olofsson 2002). En annan nackdel är att det är strikt hierarkiskt och att detta framtvingar redundans. Förmodligen kommer man att fortsätta att använda relationsdatabaser för stora databaser, men XML för små. Förmodligen kommer man kunna få svaret på en SQL-fråga direkt i ett XML-språk, vilket sedan kan presenteras med XSLT."
Man kan inte jämföra relationsdatabaser med XML, de har ingenting med varandra att göra. För det första liknar XMLs datalagring den hierarkiska datamodellen, en av de äldre och sämre datamodeller som relationsmodellen utvecklades för att ersätta i början på 70-talet. För det andra (vilket egentligen borde varit det första kanske) så är XML ingenting annat än det som nämns i texten, ett textformat för att märka upp data för att beskriva den. XML är inte en datamodell och ger ingen möjlighet att användas som en databas, vare sig den är stor eller liten.Sv: Har fått XML på halsen
Tre fördelar med MDB (rätta mig om jag har fel):
Stora databaser blir jättestora i XML + de tar lång tid att ladda och spara eftersom man (såvitt jag förstod) enklast läser in hela filen i ett sjok
Med MDB kan du lätt bygga SQL-frågor och köra dem i Access (kanske en orättvis jämförelse, XML är ju bara ett filformat och har inte någon databasmotor bakom sig)
MDB'n har all information om data och dataformat lättillgänglig i en och samma fil, ingen risk för omatchad data
Det pågår tydligen ett projekt med att slimma XML-filerna, nån som vet hur det går med det?Sv: Har fått XML på halsen
Nej, det är ingen orättvis jämförelse, det är en omöjlig jämförelse. Dock verkar det finnas en massa personer som tror att man kan jämföra dem. XML har ingenting med databaser att göra. Det är inte heller ett filformat utan bara ett språk för att beskriva data genom att märka upp den med taggar. Visst, man lagrar ofta den i filer. Men det är ingen databas. Det har inga metoder för att hantera data, det har ingen funktionalitet för bevarande av dataintegritet.Sv: Har fått XML på halsen
Nu vet jag mer om XML.Sv: Har fått XML på halsen
>> Just nu tillverkar jag en VB applikation. Ingenting webbrelaterat alltså. Har nu fått höra att jag bör använda XML som databas till denna. Rätt mig om jag har fel men är inte XML för webben endast?
> XML kan absolut inte användas som en databas, möjligen kan man tänka sig att använda XML som någon form av enkel datalagring, helst då statisk sådan (t ex en cache av data).
Du får gärna tala om detta för att de som tillverkar just XML databaser. Vilket både är bra och att rekomenderar i de fall man arbertar just mer hierarkisk data.
http://www.softwareag.com/tamino/
http://exist-db.org/
http://xml.apache.org/xindice/
bara för att nämna ett par...
Det är en vanlig missuppfattning att RDBMS (typ SQL Server, Oracle, Interbase osv) är det enda som finns på marknaden, faktum är att det finns andra typer av databashanterare tex ODBMS eller XML-databaser.
>> Vad är bäst, vad är rätt?
>Rätt är att använda en relationsdatabas, vilket du tyvärr inte kan eftersom det inte >finns några sådana. Då får en SQL databas duga, t ex SQL Server, Oracle eller som >du själv nämner Access (som ej är i närheten av de andra dock).
Jag vill inte vara oartig men har du någon som helst aning om vad du talar om?
Samtliga ovanstående är just relationsdatabaser. Sv: Har fått XML på halsen
>Tre fördelar med MDB (rätta mig om jag har fel):
Så gärna.
>Stora databaser blir jättestora i XML + de tar lång tid att ladda och spara eftersom >man (såvitt jag förstod) enklast läser in hela filen i ett sjok
Detta beror på vilken parser du använder (de två vanligaste typerna är DOM och SAX, det du skriver är relativt sant för en DOM parser). Huvudsakligen är detta dock en fråga som systemdesign. Om du har byggt ett bra objektlager i botten på din applikation har du kanske inte behov av att ladda hela databasen och spara hela databasen varje gång du ändrar någon data i ditt program.
>Med MDB kan du lätt bygga SQL-frågor och köra dem i Access (kanske en orättvis >jämförelse, XML är ju bara ett filformat och har inte någon databasmotor bakom sig)
För närvarande finns språk som XPath, XPointer och XQuery som kan hjälpa dig att lera upp XMLdata. Naturligtvis har inte allt lika högoptimerat som för en RDBMS (som SQL server) vilket kan vara ett resultat av att XML bara funnits i en fem år.
>MDB'n har all information om data och dataformat lättillgänglig i en och samma fil, >ingen risk för omatchad data
Jag hör att du aldrig fått korrupt data i din Access databas :) Grattis...
Jag skulle vilja påstå att detta är just XMLs styrka. ALL din data kommer/kan att finnas i en fil som du kan öppna med i princip vilken texteditor som helst och då se all data. Accessfilen kan du öppna med access. Vad händer om du vill att någon på Mac ska köra din databas?
mvh
/H
// kanske skulle skriva en artikel om xml?Sv: Har fått XML på halsen
Vad är enklast?
Att skapa min applikation (VB) med en *.mdb fil som jag sedan distribuerar till en kund med PC.
...eller
Att skapa min applikation (VB) med en XML fil som jag sedan distribuerar till en kund med PC.
Behöver slutanvändaren installera en databas i botten på sin PC för att nyttja XML filen? Detta behövs ju inte i MDB filens fall.
Är XML en relationsdatabas och är redundans av data möjlig att undvika?Sv: Har fått XML på halsen
Om du (handen på hjärtat) kan säga att ingen annan än din applikation någonsin kommer att vilja läsa/skriva till din databas tycker jag att du ska köra access.
Om du kan tänka dig att andra vill använda sig av din data så kan XML vara ett mycket starkt alernativ.
Att undvika redundans är en designfråga och inte en lagringsfråga.
Vad gäller installation kan man säga följande:
För att kunna använda XML (på ett vettigt sätt) behöver du en DOM eller SAX parser. Sådana finns till istort sett alla kända operativsystem med api mot istort sett alla kända (frekvent använda) programmeringsspråk.
Denna behöver du kanske installera (under windows får du med en domparser när du installerar IE, så om du ser till att dina användare har en moderna IE så kommer de också att ha en modern parser)
För att kunna använda Access behöver du en windowsburk (för att se till att allt funkar här behöver du tillse att användaren har rätt MDAC)
Mitt råd är: Känner du dig bekväm med Access så använd den (eller ännu helre MSDE, som faktiskt är en "riktig" databashanterare). Sv: Har fått XML på halsen
Världen är faktiskt inte alls så hierarkisk som vissa, XMLs förespråkare framförallt, verkar tro. Men eftersom XML använder en hierarkisk modell så måste man trycka in datan i en hierarkisk vy för att kunna använda den, och då tror folk den är hierarkisk. Ett exempel som jag sett är ett kontoutdrag från en bank. Är det hierarkiskt? Inte som jag ser det iaf. Visst går det att representera det hierarkiskt, men det går lika bra att ha det i relationer (tabeller), och man tjänar framförallt ingenting på att ha det hierarkiskt. Tvärtom så kan relationsmodellen hantera både hierarkisk och icke-hierarkisk data.
> Det är en vanlig missuppfattning att RDBMS (typ SQL Server, Oracle, Interbase osv) är det enda som finns på marknaden, faktum är att det finns andra typer av databashanterare tex ODBMS eller XML-databaser.
Och för 30 år sedan fanns hierarkiska databaser och nätverksdatabaser. Relationsmodellen uppfanns för att lösa de problem som fanns i dessa modeller. XML som databas är bara ett nytt försök med hierarkiska databaser och det har precis samma problem som de hade för 30 år sedan (XML i sig har iofs inget med databaser att göra, jag menar här XML-databaser). Det är en vanlig missuppfattning att ODBMS har någon definierad datamodell överhuvudtaget bakom sig, vilket den inte har. Det har snackats om objektdatabaser och objekt-relationsdatabaser i 10 år, men fortfarande har ingen lyckats definiera vad det är och vilken datamodell de bygger på.
>> Rätt är att använda en relationsdatabas, vilket du tyvärr inte kan eftersom det inte finns några sådana. Då får en SQL databas duga, t ex SQL Server, Oracle eller som du själv nämner Access (som ej är i närheten av de andra dock).
> Jag vill inte vara oartig men har du någon som helst aning om vad du talar om?
> Samtliga ovanstående är just relationsdatabaser.
Eh, ja, jag har en viss aning. Dock ser jag att du inte har det. Och jag vill inte heller vara oartig. Nej, de är inte relationsdatabaser, de är databashanteringssystem (DBMS) som bygger på SQL (även om de inte följer standarden fullt), vilken bygger på relationsmodellen men inte följer den så som den borde.
Jag rekommenderar dig till att börja med att läsa första kapitlet i C. J. Dates "An Introduction To Database Systems" som väldigt tydligt och enkelt beskriver vad en databas är, varför man använder dem och vilka problem de löser. För att förstå vad relationsmodellen innebär och varför den är överlägsen räcker det egentligen att läsa Dr E. F. Codds första artikel om relationsmodellen, "A relational model of data for large shared data banks" från 1970, där problemen med hierarkiska databaser beskrivs samt hur relationsmodellen löser dessa problem.Sv: Har fått XML på halsen
> För närvarande finns språk som XPath, XPointer och XQuery som kan hjälpa dig att lera upp XMLdata. Naturligtvis har inte allt lika högoptimerat som för en RDBMS (som SQL server) vilket kan vara ett resultat av att XML bara funnits i en fem år.
SQL är inte bra och effektivt för att det är ett 'högoptimerat' språk som funnits i snart 30 år. Det är effektivt därför att det använder mängdlära med relationsalgebra för att operera på mängder av data, vilket är teorier som funnits betydligt längre än 30 år.
> Jag hör att du aldrig fått korrupt data i din Access databas :) Grattis...
Har man det så har man designat fel. Med XML däremot har man inte samma möjligheter att implementera dataintegritet som med SQL DBMSer.
> Jag skulle vilja påstå att detta är just XMLs styrka. ALL din data kommer/kan att finnas i en fil som du kan öppna med i princip vilken texteditor som helst och då se all data.
Återigen, XML har ingenting med filer att göra. Det går utmärkt att spara i filer, precis som vilken textdata som helst dock.Sv: Har fått XML på halsen
> Om du kan tänka dig att andra vill använda sig av din data så kan XML vara ett mycket starkt alernativ.
Jag ser fortfarande ingen anledning att välja XML för att lagra data gentemot en Access-databas (eller något bättre alternativ), men jag måste säga att detta uttalande verkligen förbryllar mig. Hur ska du upprätthålla någon dataintegritet i dina XML-filer med flera applikationer och användare som utnyttjar dem?
> Att undvika redundans är en designfråga och inte en lagringsfråga.
Helt korrekt, eftersom redundans är en logisk fråga och lagring en fysisk. Dock ger XML dig inte möjlighet att undvika det som relationsmodellen gör.Sv: Har fått XML på halsen
> Världen är faktiskt inte alls så hierarkisk som vissa, XMLs förespråkare framförallt, verkar tro. Men eftersom XML använder en hierarkisk modell så måste man trycka in datan i en hierarkisk vy för att kunna använda den, och då tror folk den är hierarkisk. Ett exempel som jag sett är ett kontoutdrag från en bank. Är det hierarkiskt? Inte som jag ser det iaf. Visst går det att representera det hierarkiskt, men det går lika bra att ha det i relationer (tabeller), och man tjänar framförallt ingenting på att ha det hierarkiskt. Tvärtom så kan relationsmodellen hantera både hierarkisk och icke-hierarkisk data.
Eftersom jag till största delen lever i en objektorienterad värld som faktiskt ÄR väldigt hierarkisk till sin karaktär så är XML en väldigt naturligt modell för mig.
- kontoutgrag kan exempelvis vara en nodlista hos transaktioner som kan vara en nodlista hos konto som kan vara en nodlista hos kontohavare som kan vara en nodlista hos bank osv osv... Jo det är fullt möjligt att se kontoutdrag som en del i en hierarki.
>> Det är en vanlig missuppfattning att RDBMS (typ SQL Server, Oracle, Interbase osv) är det enda som finns på marknaden, faktum är att det finns andra typer av databashanterare tex ODBMS eller XML-databaser.
>Och för 30 år sedan fanns hierarkiska databaser och nätverksdatabaser. Relationsmodellen uppfanns för att lösa de problem som fanns i dessa modeller. XML som databas är bara ett nytt försök med hierarkiska databaser och det har precis samma problem som de hade för 30 år sedan (XML i sig har iofs inget med databaser att göra, jag menar här XML-databaser). Det är en vanlig missuppfattning att ODBMS har någon definierad datamodell överhuvudtaget bakom sig, vilket den inte har. Det har snackats om objektdatabaser och objekt-relationsdatabaser i 10 år, men fortfarande har ingen lyckats definiera vad det är och vilken datamodell de bygger på.
för 60 år sedan försökte man flyga fortare än ljudet och dog... Jag skulle vilja påstå att relationsdatabaser bygger på en modell som visat sig vara den enklaste att implementera.
>>> Rätt är att använda en relationsdatabas, vilket du tyvärr inte kan eftersom det inte finns några sådana. Då får en SQL databas duga, t ex SQL Server, Oracle eller som du själv nämner Access (som ej är i närheten av de andra dock).
>> Jag vill inte vara oartig men har du någon som helst aning om vad du talar om?
>> Samtliga ovanstående är just relationsdatabaser.
>Eh, ja, jag har en viss aning. Dock ser jag att du inte har det. Och jag vill inte heller vara oartig. Nej, de är inte relationsdatabaser, de är databashanteringssystem (DBMS) som bygger på SQL (även om de inte följer standarden fullt), vilken bygger på relationsmodellen men inte följer den så som den borde.
Då undrar jag vad du som är certifierad hos Microsoft tycker om att de kallar just SQL-Server en RDBMS, liksom Oracle kallar Oracle 9 för en RDBMS, liksom IBM DB2 osv osv...
http://www.microsoft.com/sql/techinfo/administration/2000/RDBMSperftuning.asp
http://otn.oracle.com/products/integration/htdocs/adapters/dbadapter.htm
http://www-3.ibm.com/software/data/db2/
... if it walks like a duck...
> Jag rekommenderar dig till att börja med att läsa första kapitlet i C. J. Dates "An Introduction To Database Systems" som väldigt tydligt och enkelt beskriver vad en databas är, varför man använder dem och vilka problem de löser. För att förstå vad relationsmodellen innebär och varför den är överlägsen räcker det egentligen att läsa Dr E. F. Codds första artikel om relationsmodellen, "A relational model of data for large shared data banks" från 1970, där problemen med hierarkiska databaser beskrivs samt hur relationsmodellen löser dessa problem.
Lovar utan förbehåll att göra detta. Jag har kollat på din sida och du verkar ju kunna en del så det är möjligt att jag har helt fel, och i så fall ber jag om ursäkt.
Jag kommer dock helhjärtat att tro att det enbart finns en sanning och att denna skulle bygga på relationsdatabaser.
Jag tro att olika system kräver olika lösningar oavsett vad det står i artiklar från 1970. Jag tro dock fortfarande på att 640k borde vara fullt tillräckligt för ett grafiskt OS :)
> Quidquid latine dictum sit, altum viditur
Yabba Dabba Doo Sv: Har fått XML på halsen
>> Om du kan tänka dig att andra vill använda sig av din data så kan XML vara ett mycket starkt alernativ.
> Jag ser fortfarande ingen anledning att välja XML för att lagra data gentemot en Access-databas (eller något bättre alternativ), men jag måste säga att detta uttalande verkligen förbryllar mig. Hur ska du upprätthålla någon dataintegritet i dina XML-filer med flera applikationer och användare som utnyttjar dem?
Exempelvis med en XMLdatabas :) (fast de fanns ju inte :)
>> Att undvika redundans är en designfråga och inte en lagringsfråga.
> Helt korrekt, eftersom redundans är en logisk fråga och lagring en fysisk. Dock ger XML dig inte möjlighet att undvika det som relationsmodellen gör.
Varför inte? På vilket sätt KRÄVER XML redundans?Sv: Har fått XML på halsen
Ja, som sagt, man kan välja att se det mesta som hierarkier, men jag ser inte vad det tillför mot att se det som relationer. Något som möjligen kan sägas vara en 'sann hierarki' kan väl vara ett organisationsschema, men det går lika bra att representera i relationsmodellen. Problemet är att XML kan bara lagra data som kan ses som hierarkisk. Hur representerar du t ex ett nätverk i XML (eller den hierarkiska modellen i allmänhet)?
> för 60 år sedan försökte man flyga fortare än ljudet och dog... Jag skulle vilja påstå att relationsdatabaser bygger på en modell som visat sig vara den enklaste att implementera.
Jag förstår inte riktigt vad du vill ha sagt med detta. Om relationsmodellen är enklast att implementera (vilket jag väl håller med om, även om det är ett konstigt sätt att uttrycka sig på och absolut inte förklarar varför relationsmodellen är överlägsen) så förstår jag inte vaför man vill förespråka något annat?
> Då undrar jag vad du som är certifierad hos Microsoft tycker om att de kallar just SQL-Server en RDBMS, liksom Oracle kallar Oracle 9 för en RDBMS, liksom IBM DB2 osv osv...
Jag säger att de förskönar sanningen. Som jag sa tidigare, de är databashanterare som bygger på SQL, vilken i sin tur bygger på relationsmodellen.
Innan du får möjlighet att läsa de referenser jag gav så rekommenderar jag följande artikel, där Fabian Pascal beskriver mycket av det jag försöker säga på ett mycket bättre sätt än vad jag någonsin kan:
http://www.tdan.com/sms_issue24.htm
Jag klipper in svaren från ditt andra inlägg här för att slippa två trådar.
>> Jag ser fortfarande ingen anledning att välja XML för att lagra data gentemot en Access-databas (eller något bättre alternativ), men jag måste säga att detta uttalande verkligen förbryllar mig. Hur ska du upprätthålla någon dataintegritet i dina XML-filer med flera applikationer och användare som utnyttjar dem?
> Exempelvis med en XMLdatabas :) (fast de fanns ju inte :)
Jodå, naturligtvis finns de, det sa jag inget om. Däremot hävdar jag att de är långt underlägsna relationsdatabaser (eller SQL databaser) i vad de ger för möjligheter för att arbeta med data samt att upprätthålla dataintegritet.
>>> Att undvika redundans är en designfråga och inte en lagringsfråga.
>> Helt korrekt, eftersom redundans är en logisk fråga och lagring en fysisk. Dock ger XML dig inte möjlighet att undvika det som relationsmodellen gör.
> Varför inte? På vilket sätt KRÄVER XML redundans?
XML kräver inte att man har redundans, jag säger bara att man inte har lika bra möjligheter att undvika det som med relationsmodellen (vilken kräver att man ej har det). Du har två personer, Adam och Eva, vilka bor tillsammans. I sitt hem har de en telefon med telefonnummer 123. Adam har dessutom en mobiltelefon med telefonnummer 456. Eva har en mobiltelefon med telefonnummer 789. Du ska skapa en databas över personer och deras telefonnummer. Hierarkiskt blir det förmodligen något liknande detta:
Adam
123
456
Eva
123
789Sv: Har fått XML på halsen
>>>> Att undvika redundans är en designfråga och inte en lagringsfråga.
>>> Helt korrekt, eftersom redundans är en logisk fråga och lagring en fysisk. Dock ger XML dig inte möjlighet att undvika det som relationsmodellen gör.
>> Varför inte? På vilket sätt KRÄVER XML redundans?
>XML kräver inte att man har redundans, jag säger bara att man inte har lika bra möjligheter att undvika det som med relationsmodellen (vilken kräver att man ej har det). Du har två personer, Adam och Eva, vilka bor tillsammans. I sitt hem har de en telefon med telefonnummer 123. Adam har dessutom en mobiltelefon med telefonnummer 456. Eva har en mobiltelefon med telefonnummer 789. Du ska skapa en databas över personer och deras telefonnummer. Hierarkiskt blir det förmodligen något liknande detta:
Adam
123
456
Eva
123
Det finns massor av sätt att strukturera detta.
Ett skulle kunna vara :
<code>
<?xml version="1.0"?>
<people>
<person>
<name>Adam</name>
<contact>
<item type="phone" id="h1">123</item>
<item type="cell">456</item>
</contact>
</person>
<person>
<name>Eva</name>
<contact>
<item ref="h1"/>
<item type="cell">789</item>
</contact>
</person>
</people>
</code>
... med reservation för felstavning...
Har du tänkt på att en av de vanligaste indextyperna i RDBMSer är B-Tree... Hierarkiskt eller hur :)Sv: Har f&amp;amp;amp;amp;#229;tt XML p&amp;amp;amp;amp;#229; ha
<code>
<?xml version="1.0"?>
<db>
<contacts>
<item type="phone" id="h1">123</item>
<item type="cell" id="c1">456</item>
<item type="cell" id="c2">789</item>
</contacts>
<people>
<person>
<name>Adam</name>
<contact>
<item ref="h1"/>
<item ref="c1"/>
</contact>
</person>
<person>
<name>Eva</name>
<contact>
<item ref="h1"/>
<item ref="c2"/>
</contact>
</person>
</people>
</db>
</code>
Men det enda du har gjort då är att designa en relationsdatabas logiskt korrekt (den är iofs inte helt korrekt), med ett xml-dokument som den fysiska implementationen av denna. Det är helt OK att göra det och om du bara har ett system som tillhandahåller funktioner för att applicera predikatlogik, mängdlära samt upprätthålla dataintegriteten i detta dokument kan du 'i princip' kalla det en relationsdatabas (OK, det är en bit kvar, men ändå). För en användare av en relationsdatabas är det ointressant vad som finns under den logiska nivån. Eller det borde vara så, det är ett av problemen med SQL DBMSer. Dock säger jag inte att man ska använda XML till detta eftersom det inte alls lämpar sig för det.
> Har du tänkt på att en av de vanligaste indextyperna i RDBMSer är B-Tree... Hierarkiskt eller hur :)
Nu ska vi inte blanda ihop det logiska skiktet och det fysiska. Relationsmodellen har ingenting med index att göra, hierarkiska eller ej.