There are many types of databases and relational databases are one of them. A relational database is a distinctive type of database which is based on the so-called relational model of data organization. The data in these databases are organized into a set of relations that have certain connections between them. Every relation in these databases has a primary key which represents an attribute by which each record can be uniquely identified. The relation can sometimes have an external key used to establish a connection with other relations.
The management of relational databases is realized through a system of relational databases. There are many systems like that and some of the most popular ones include – Altibase, Oracle Database, MySQL, Microsoft SQL Server etc. Almost all of these systems use SQL language in order to manage data.
Relational model as a term was first used in the 70s. The inventor of this term is Edgar Codd – an IBM manager working in the hard disk production sector. Edgar Codd was dissatisfied with the so-called navigational model and created several projects focused on the relational model. In these works he explained the advantages of using the new model and he also suggested using a completely new computer language which served as a base for SQL. IBM was the first company that developed management systems for relational databases – IBM Business Systems 12 and PRTV.
Some of the basic elements of this model include – n-tuple, attribute, relation and domain. N-tuple is defined as an organized set of n elements. An attribute represents the name which is used to identify each element of single n-tuple in the relational model. A relation is defined as a set of n-tuples that have the same attributes by which their elements are identified. They also take the values from the same domains. Relational databases have two types of relations – base and derived relations. The first ones can be found in the database (stored in the hard disk or on other similar data storage device. Derived relations are relations that are obtained by reading and combining of data from one or more base relations. Finally, a domain represents a set of values that each n-tuple can have. These domains can be pre-defined or semantic. The first ones are already present in the database language. Semantic domains are defined by the user.
We have mentioned the primary and the external key as very important elements of these relations. Each relation must have one or more attributes and their values identify each n-tuple in that specific relation. This attribute or a group of attributes are called the primary key of the relation. When there is only one attribute identifying the n-tuple we are talking about a simple primary key and if there are two or more attributes we are talking about a complex primary key. The external key represents an attribute or a group of attributes of some relation which is not a primary key.
The so-called formalisms for handling the data which are an integral part of the relational model are – relational algebra and relational account. Query languages which are part of specific systems for managing relational databases are based on one of these two formalisms or a combination of them.
Relational algebra includes – projection, restriction, relational union, intersection, difference and Cartesian product. Relational account includes – relational account of n-tuples and relational account domain.
When we talk about query languages we should mention that these languages are used for communication with the relational database. In other words, they are used to create relational schemas and for updating and read data from a relation. They can be classified as languages produced by upgrading procedural programming languages, languages based on the relational account domain or n-tuples, languages based on relational algebra and languages based on a combination of relational account and relational algebra. The most used query language today is SQL (Structured Query Language) developed in the late 80s in the 20th centuries. This query language is the final phase of the development of query languages by IBM. Prior to SQL, IBM used SEQUEL and SQUARE.
According to some statistics the following companies are the top five manufacturers of systems for managing relational databases – Altibase, Oracle, IBM, SAP, Microsoft and Teradata.