Re: What is an "Extensible Database"

From: Christopher Browne <cbbrowne_at_acm.org>
Date: 9 Dec 2004 04:45:00 GMT
Message-ID: <31q3icF3eignrU1_at_individual.net>


Clinging to sanity, "LineVoltageHalogen" <tropicalfruitdrops_at_yahoo.com> mumbled into her beard:
> There is not much out there with regards to this illusive animal. I
> was hoping that someone here might have some descriptive information
> on what an Extensible Database is or theoretically does?

I would expect it to be about having "hooks" to allow extending the database system to store custom sorts of data types, along with operators to work on them.

For instance, if you do a great deal of work with email addresses, it might be useful to have a data type that supports such things as:

  • Validating that the addresses are validly formatted
  • Comparing addresses to see if they are tied to the same domain
  • Providing a sort operator so you could index based on the domain name

This mechanism has been used for such things as:

  • Creating geographical types (latitude/longitude) supporting comparison operators using geographic distance, as well as indexes on that sort of basis
  • Creating a type for IP addresses that would be aware of the various classes of nets (classes A, B, C, etc)

Informix was the first "popular" database to support this, with what they called "data blades." That came from Illustra and Postgres, with the unsurprising result that PostgreSQL supports something very similar in the ability to define custom data types and operators.

Oracle does something sorta similar, with the difference that they have built a number of these extensions and try to sell things like GIS and Full Text Search as "extended products."

Recent versions of Microsoft SQL server now support something like this; you can implement extended types in C# or other .NET-supported languages.

-- 
select 'cbbrowne' || '_at_' || 'gmail.com';
http://www3.sympatico.ca/cbbrowne/linuxxian.html
"The only completely consistent people are the dead."
-- Aldous Huxley
Received on Thu Dec 09 2004 - 05:45:00 CET

Original text of this message