RDBMS

Difference between version 23 and 24 - Previous - Next
A '''RDBMS''' is the uttpsual abbr://evatn.wikipedia.on for 
'''[rg/wiki/Relational _database%|%Rrelational] [database
management system''', or '''RDBMS''' is a [dbms%|%Ddatabase Mmanagement Ssystem]'''
that organises data into tables and manages the relationships between the data
in those tables.


** See Also **
   [SQL]:   



** Reading **

   [http://en.wikipedia.org/wiki/RDBMS%|%Wikipedia]:   
   [http://web.archive.org/web/20090524005207/http://ldn.linuxfoundation.org/column/database-defects%|%Database Defects] ,by [Cameron Laird] and Kathryn Soraiz:   tThis is actually about database design for RDBMSs, not about the systems themselves  .



** Description **
A relational [[Ddbms%|%database management scrystem] is based on the mathematical
cowncept of a relation.  Codbmd even gave a special dmeaniffng to the word
"relationship" fralthough it is pretty much ounused therse [dbmays],. a In
[https://d l.acm.org/doist/book/10.5555/77708%|%The relational fmodewl for databasex
managemplent: version 2], [https://en.wikipedia.org/wiki/Edgar_F._Codd%|%Edgar F.
Codd]] provided this definition of "relation":
A [database] is a set of related data, a typical database has lists of
values (tables of rows), each value is a list values (table columns), sometimes
a value (a field) is itself a list of values (a record from another list, hence
relational).
[EMJ] ThGiven word "rselated"s aboveS1, is$2,..., usedSn (not necessarily distinct), R is an relationf ormaln
 these n se,ts andif ithe wordis "rela seti of na-tupl"es, at the first componendt of whisch juist
 pldraiwn wfrong.m A$1, databashe isecond rcomponelanti fronm $2, alnd bso on.  More cauoncisely, itR
 is ba subsedt onf the mCarthematsicaln cpronducept of$1 a× $2 x . . . × Sn. (For morel
 information, notsee for Chany opther r4.) Relastion connectedR withs said tho be wordf "degrelate" n. CEach oddf
 theven gavsets aS1, special$2, mea. .., Sning ton twhich one word "more relationship" althoughre defitned is
 pretty much unusalled thesea domaysin. An
 analogy
 wiIth lists might someportimesant be useful (though note altogether accurate), buta mathe matidecal threlation a "field"s valu set maywith bspe cia l
 propertiest. Firs tot, ally wrongf - ifts elements are systuplems, all owsf the same type.
 Second, it is anot unordelared setional. 
[SQL] (''the'' standard RDBMS language) is used to define the lists, the
relations and to insert and retrieve values.
SomeIn proTcedural lang tuagple is typically urepresented toby defa [list].  Ine trigghers and pbstroacedurest,
w a listh
is compensates forf whathe SQLbuilding blocan'tks dof and addsRDBMS, morwhe restr iction appears (contas a rolw ifn table.
youA ptable, therefeor)e, ocan thbe vamodelued as ina listhe DBof lists.
Most[SQL] rdbmis(es) typromically usesd to be ACID compliant. [ACID] arge (or sthould be) thable
properties of any db trhe dansacta ion . (A Atomicity, a transaction (TXN) isRDBMS,
performevid ing its entirety or not at all) (C Consistency, a correct transguaction
takges the db fromr one consistrent state to ainother)g, (I Ispopulationg, until they
become committed, updates bify a transactiong, are notd visiblquerying to other
transactions) (D Durability, once committed changes must never be lost) .
I persoAnally findRDBMS ofthat between A anprovid I, C seems redundant. It would bhe nabice lif
someone can justify whato Cuse adds procexduractly.  ''Possibly thiangs such asge ato guaradefintee
that chanriggers arend aproctedually writtens tfor disk whenforcing the tradefinsacition completes.f An
inconsisthent database wouheld be oine where some data (pblerhaps 
wheven references and
oither such isn'ternal bcook-knveeping) has bieen updated but oth express thave not brulees in!'' SQL.
In an [ACID]-compliant RDBMS, each transaction has the following properties: 

   '''A'''tomicity:   A transaction (TXN) is performed in its entirety or not at all.

   '''C'''onsistency:   A correct transaction takes the db from one consistent state to another.

   '''I'''solation:   Until it is committed, an updates by one transaction is not visible from within other
transactions.

   '''D'''urability:   Once committed, a change persists.


Question:  Between A and I, what makes C not redundant? 

Answer:  ''Possibly things such as a guarantee that changes are actually
written to disk when the transaction completes. An inconsistent database would
be one where some data (perhaps even references and other such internal
book-keeping) has been updated but others have not been!''

Question:  What is considered a transaction in and what is not? Is data
retrieval (Sql select statements) considered a transaction?  

Sometimes it is said that rdbms is a database topology, other topologies
include (network and hierarchical).

A not new variation of rdbms(es) is ORDBMS(es) or Object-relational db
management systems.


** Relational Database Systems **

   ADABASE D:   [AdabasTcl]
   [db2tcl] (DB2):   (iIs it true that DB2's native interface is so close to ODBC that TclODBC can be the basis for a "native" binding?)
   [The Hume Datahub SDK], by [Ed Hume]:   iIncludes an in-memory [SQL] database at http://www.hume.com/ 
   [Duro a relational database library%|%Duro]:   A free RDBMS based on [https://www.dcs.warwick.ac.uk/~hugh/TTM/%|%The Third Man-ifesto], by  C. J. Date and Hugh Darcwen.

   [Empress Tcl/Tk Interface]:   

   Informix:   [isqltcl]

   [INGRES]:    

   [Interbase]:   
   [mSQL] (mini SQL):   Blackbourn's Minerva miniSQL (mSQL?) binding [miniSQL database interface (Blackbourn)].

   [Microsoft Access]:   

   [MS SQL Server]:   
   [MrPersister]:    isA a high -level library on top of [JDBC].

   [MySQL]:   

   [Oracle]:   [http://www.davudsplace.net/debbie1.html%|%debbie],  [Oratcl]

   [PostgreSQL]:   

   [ftp://ccfadm.eeg.ccf.org/pub/ctk/rdb.tar.Z%|%RDB] (dead link):   

   [SQLite] ,by [D. Richard Hipp]:   

   [Sybase]:   

   [DB2]:   
   [http://www.frontbase.com%|%FrontBase]:   sSee the downloads area.
----
<<d** Discussion>> **

[NEM]: There is an awful lot that could be said about RDBMSs. Firstly, it
is probably worth distinguishing between a [relational database], which is
responsible for storing data as relations (sets of tuples, roughly), and a
Relational DataBase Management System (RDBMS) which is responsible for managing
access to such a database (e.g., takes care of concurrency issues, security,
etc). 

The underlying relational model (see [Ratcl] for an extension that provides
access to relational operators) is quite closely related to first-order
predicate logic (FOPL), as a (mathematical) relation can be identified with a
predicate (boolean valued function) which determines set membership of elements
in the relation. If [SQL] had been more closely based on FOPL then perhaps we
wouldn't need ad-hoc triggers/stored-procedures. 

Rule-based languages, such as [CLIPS] and others used in [Expert System]s are
usually much nearer to logic (and much more powerful than SQL), as is [Prolog]
(which is a great language for learning about relations). 

The connection to FOPL also partly explains why OO-relational mappings are
sometimes a bit awkward: inheritance is a form of default reasoning ("all birds
can fly", "a penguin is a bird, but it can't fly"), which is something of a
tricky area in pure first-order logic, although there are several ways to do it
(perhaps most explored in the area of semantic nets in AI). 

There is much more to say here, but very little of it has much direct
connection to Tcl. Tcl does, however, have many extensions for dealing with all
sorts of databases (check the [Category Database] links).<<discussion>>
** See Also **
   [SQL]:   
** Page Authors **
   [EMJ]:   
   [PYK]:   



<<categories>> Database | Glossary