|
Associative Model
The Associative Model is based upon a simple
subject-verb-object syntax that has strong parallels in the
sentences of English and many other languages. You have to
stretch the meaning of "verb" just a little but some example
sentences that fit the Associative Model would be:
Red is a
Colour
Mary is a
Vegetarian
Vegetarians eat
Plants
An Associative database has two fundamental data structures.
There is a set of "Items" and a set of "Links" that connect them
together. In the "Item" structure entries have a unique
identifier, a name and a type. Each entry in the "links"
structure also has a unique identifier together with the
identifiers for the relevant "source", "verb" and "target" (the
Subject, verb and object from our sentences). This can be
illustrated with the following two diagrams. For clarity, the
question of item type has been ignored in this illustration.
The Associative model structure is economical with storage
space as there is no need to hold available "spaces" for data
that is not available even if it is a normal part of a given
data set. This contrasts with relational databases. A relational
database stores a minimum of a single "null" byte for missing
data items in any given row. Some relational databases reserve
the maximum space for a given column in every row. The
Associative database makes the storage of "custom" data for
different users or for other varying needs straightforward and
"inexpensive" in terms of maintenance or network resources. If
there is a need to store different data about, say, different
customers or customer groups in different countries then an
Associative database can manage this more efficiently than a
relational database.
The Associative model differentiates between what it calls
Entities and Associations. An entity is defined as being
discrete and having an independent existence. An association is
something that depends upon one or more other things. An example
may help with this. A person or company is an entity while a
supplier or a customer or an employee are associations - their
existence depends upon the role being played at any one time.
Indeed it is possible for an Entity to have multiple business
roles simultaneously, each being recorded as an association. If
circumstances change, one or more of the associations may die
away but the entity would endure. The difference may seem a
little moot at first but is designed to simplify rather than
complicate the data model.
The Associative model stores meta-data (data that describes
the data) within the same structures as the data itself. The
meta data describes both the structure of the database and how
the different types of data can interrelate. You will probably
have noticed the parallels with XML. The claim for Associative
model databases is that, as with XML tool kits, generic programs
can be written to interact with and manipulate the data while,
when using a more conventional relational database, programs
have to be custom written to reflect the data contained. You
have to understand the data and the structure of the database to
write anything other than the simplest program accessing data
within a relational database.
The simple data structures described above need something
more to deliver a database capable of storing the variety of
data that a modern business requires together with the security
and control that is essential for an Internet implementation. An
Associative database is comprised of a number of "chapters" and
a user's view of the content of a database is controlled by his
or her "Profile". A Profile is a list of Chapters. The database
designer consigns the various elements to specific Chapters and
the user Profile restricts access to the relevant Chapters for a
given user. If some links exist between items in chapters inside
and outside of a particular user Profile then those links are
not visible to that user. The combination of Chapters and
Profiles can simplify the tailoring of the database to
particular users or subject groups. Data that is relevant to one
user group could be invisible to another and indeed may be
replaced by an alternate data set.
Drop
in an email or fill
query form
to save your costs.
|