Models and languages
Database design is a process of modeling an enterprise in the real world. In fact, a database itself is a model of the real world that contains selected information needed by the enterprise. Many models and languages—some formally and mathematically defined, some informal and intuitive—are used by designers. Below is a list of the ones that we present in this tutorial
- The Unified Modeling Language (UML) was designed for software engineering of large systems using object-oriented (OO) programming languages. UML is a very large language; we will use only a small portion of it here, to model those portions of an enterprise that will be represented in the database. It is our tool for communicating with the client in terms that are used in the enterprise and for communicating with a database developer whose job it is to implement the database modeled.
- The Entity-Relationship (ER) model is used in many database development systems. There are many different graphic standards that can represent the ER model. Some of the most modern of these look very similar to the UML class diagram, but may also include elements of the relational model.
- The Relational Model (RM) is the formal model of a database that was developed for IBM in the early 1970s by Dr. E.F. Codd. It is largely based on set theory, which makes it both powerful and easy to implement in computers. All modern relational databases are based on this model. We will use it to represent information that does not (and should not) appear in the UML model but is needed for us to build functioning databases.
- Relational Algebra (RA) is a formal language used to symbolically manipulate elements of the relational model. As the name suggests it is an algebra like the familiar algebra that operates on numbers, but this one operates on relations that have the data in our relational database.
- The table model is an informal set of terms for relational model objects. These are the terms used most often by database developers.
- The Structured Query Language (SQL, pronounced “sequel” or “ess-que-ell”) is used to build and manipulate relational databases. It is a declarative, rather than a procedural, programming language. In a declarative language, statements express/describe/declare what is to be done, rather than provide the specifics of how something is to be done as is the case in procedural languages. Internally, database systems translate SQL to relational algebra. There is a standard for SQL, but database vendors vary in how closely they implement it. This website emphasises the standard and thus examples presented can be executed on all relational database systems with some minor (if necessary at all) changes.