Subject Re: [Firebird-general] Firebird - RDBMS ?
Author Ann W. Harrison
Anjesh Tuladhar wrote:
> Is Firebird RDBMS??
> What should the database exhibit in order to be called RDBMS?

A relational database is a database management system that represents
data in a format described by Dr. E.F. Codd in the early 1970s.

Essentially, the theory says that data exists as elements - a number, a
name, a date - which are understood in domains - the domain of integers,
the domain of phone numbers, the domain of names of countries, etc.
Think of those domains as sets - in the mathematical sense of unordered,
distinct, elements of a common type. Values from one domain can be
related to elements from another domain, based on common semantics. For
example, the elements related to a person might be name, address, phone
number, and birth date. That set of elements is called a tuple (now
commonly called a row or a record). A set of tuples of the same
structure is called a relation (now commonly called a table).

The semantics - the meaning - of the data in a relational database is in
the data, not in the structure or access semantics. Data is referenced
by value, not by position. Tuples are linked by common values from
common domains. Fields (columns) within a tuple are referenced by
name, not by position.

Note the word "represents" in the first sentence. Codd's rules are
quite clear that the data can actually be stored any way that's
convenient to it database manager, as long as it is represented to the
user in the format described.

To the extent that any existing database is relational, Firebird is. We
have some features (arrays for one) that violate some rules - in that
case the rule that data elements are atomic. We certainly don't support
all the set operations that Codd described in later operations - there's
no table divide operation, for example.

A database management system is software that manages data. To be
called a database manager, the software should, in my opinion, support
concurrent updates by multiple users with the following behavior.

1) actions are contained in discrete series called transactions.

2) actions taken within a transaction are not visible outside the
transaction until the transaction completes successfully.

3) all the actions of a transaction succeed or fail as a unit.

4) within a transaction, all actions see the same state of data.


Regards,


Ann