Objects, XML, Databases: A Synergistic triangle of the Programming Circle
Three technologies, (Objects, XML, Databases) that have evolved independently seem to be flowing toward a synergistic union. An Object is about behavior. An XML is about structure. A Database is about collections. A Program is like a golden braid that weaves through these aspects.
Although objects have structure they are seen by their behaviors and defined by the functions they encapsulate hiding their structure. These behaviors are sometimes dependent on their surroundings, environments, or their containers. As a result they are less transportable.
An XML is fundamentally a constrained data structure with rules governing their relationship and binding. Owing to its conceptual structure the syntax of XML is a mere convenience. Whether you define a "c" structure or a "java" class or an "xml" definition they communicate the same data with almost no loss of information. XML is eminently transportable as data tends to be self contained and eventually gets wrapped by object behaviors.
tables, columns, rows, sql are all apparent aspects of a database management system. What is more subtle to grasp is the role of collections in databases. How to store, search, retrieve, manipulate, and aggregate collections is the bread and butter of databases.
Why is it important to see them this way
Programs live as objects, get transported as XML and become dormant as databases. The more these three aspects are treated in a uniform way the simpler programs are. It is not to say that there are not differences among these three aspects to treat them totally the same. But the role of architecture is to seek and apply what is common.