Relational theory was proposed by E.F (Ted) Codd in 1974 whilst he was a researcher at IBM. There are many sources of information about the development of relational databases as well as the mathematical (set) theory underpinning it: One of the most quoted papers around databases and data modelling is the The Entity-Relationship Model by Peter Chen. Two well known text books are Fundamentals of Database Systems by Elmasri & Navathe and An Introduction to Database Systems by C. J. Date.
Somewhat curiously (though only if you are interested in the sort of academic slanging matches that Richard Dawkins and Stephen Jay Gould partook in) Chris Date now proposes that the language used by most relational systems, Structured Query Language (SQL) is unsuitable to implement a relational database. But for now, we are concerned with practical implementations.
There are many types of databases- small ones (personal or workgroup) can be implemented using Microsoft Access, Filemaker Pro or several other applications. However, as soon as the volume of data begins to increase or the number of users gets large, then personal solutions are inadequate. There are a number of databases that are designed for enterprise solutions, but the two dominant ones are Microsoft SQL Server and Oracle. Traditionally, the oil industry has used Oracle and pretty much all the work that Maguffyn does uses Oracle- I have been working with Oracle since 1998 and have worked as a Database Administrator (DBA), Data Analyst (designing data models) as well as simply using the database to store important information.
There are two aspects to designing a good data architecture:
- The database and data model itself
- Integration between different databases
Integration is an issue because no organisation stores all its information in a single database: there are multiple databases often using different data models to store the same sorts of information. The question becomes how does one make the information that is created in one system available to all the other systems that need to read it?. For more information on each of these aspects of data, see Databases or Integration.