XAO Foundation Server
Version: 1.06XAO::FS is the XAO Foundation server.
License: Perl Artistic License
Operating System: Linux
The following description summarizes a set of design meetings held by XAO Inc.
Usually from both developer and management point of view it is easier to think of a data piece as of some kind of closed entity with some content and probably some methods for manipulating that content. This is what is generally referred to as an object.
More often then not such an object would include references to other objects or will contain a list of some data objects. For example a customer can contain all orders placed by that customer and each order in turn can contain descriptions and prices of all the products in that order.
It would be nice to use a relational database to store all the data because relational databases are generally fast, reliable, available on wide range of platforms and in all price ranges, can be accessed via network, usually have various kinds of monitoring and visualisation tools and so on. And probably the biggest advantage is that there is a lot of people who has experience with some kind of relational database -- MySQL, Oracle, Sybase or something along these lines.
The biggest limitation of relational databases though is the fact that each table in the database is what the name suggest -- just a 2-dimensional table with rows and columns. This is not enough to represent the data structure mentioned above naturally -- a developer would have to create a set of tables and include reference columns (foreign keys) into these tables to relate data rows in different tables into some kind of global data layout.
This is natural for relational databases, in fact this is where the name "relational" comes from. But nonetheless developers have to keep in mind all index fields and relations between tables in order to do something useful with the data. Changing data layout can become a nightmare too.