Native XML databases support support schema evolution to some extent. In
particular, stored documents are not required to match any schema at
all. Thus, you could store a series of documents with an evolving schema
in a native XML database without any problems and (probably) with no
What native XML databases do not appear to support is application
transparency. For example, suppose you store a complete address in an
<Address> element. Suppose you then decide to change your schema and
store the address in <Street>, <City>, and <Country> elements. Your
application must be aware of the difference and query both forms. In
other words, although the schema evolution doesn't cost anything in
terms of database performance, it is not transparent to the application.
(I suppose it would be possible to define a mapping layer on top of the
database, but this would clearly be an expensive thing to do. I am also
not aware of any native XML databases that do such a thing.)
I have two other comments:
1) I don't entirely agree with the statement, "frequent evolution of a
database schema significantly decreases performance of a database
system." Changing a relational database schema can be a very expensive
operation, since it requires changes to every row for which the schema
is changed. In the sense that it might require the database to be
offline during schema update, it decreases performance. However, it
seems quite reasonable that, except for this offline time, many schema
changes shouldn't decrease performance.
2) Your question would be a good question for the XML:DB mailing list:
ravi saxena wrote:
> IS there an XML solution to this problem?
> Flexible Scheme Evolution in Relational Database Model
> In a typical database management system a concept of database
> schema provides full information about a logical organization of
> database structures. The principal requirement of logical database
> consistency states that in every moment of time contents of a
> database must be consistent with the respective database schema. The
> queries submitted to a database must be syntactically consistent with a
> database schema as well. The idea of scheme evolution refers to the
> changes in a database scheme over a certain period of time. It would be
> convenient to modify a database schema depending on users' requirements.
> The conventional query languages, like for instance SQL, does not allow
> for references to a number of different versions of the same database
> schema. Unfortunately, the frequent modifications of database schema
> require restructuring of database contents and modification of user
> applications. As the result, frequent evolution of a database schema
> significantly decreases performance of a database system and requires
> continuous upgrades of user applications.
> The objective of this project is to propose architecture for database
> system where frequent evolution of database scheme has no significant
> impact on performance of the system and it is transparent to users'