Welcome back. So now, we're going to talk about the relational data model. In the relational model or in a relational database, the database consists of a set of relations, and each relation you can think of it as a table, as shown in the figure here. So a table has a set of columns and a set of rows. The columns represents the entities you store in the database. Sorry, the rows represent the entities you store in the database and the columns represent the attributes of these objects. So a relational database basically, is a set of relation. So the tuples in a relation are not following a specific order and since it's a set, so the set of relations, there is no duplicate relations in the database. So each table or each relation in the database has a set of attributes and these represent the columns again. So each column has a domain. So this domain is the domain of value of this column. So we say like, domain of column I, and then the cardinality of this domain, is the set of values that this domain represent. So an example of that is, you have a table like this. This is a student table. So that is a relation, the student relation. You have a set of rows, these represent the students. Then you have a set of columns and each column represents an attribute of the student. So the first column is the ID of the student, second one is the name, the third one is the major of the student. So we have, for example, a student with ID 1111, and the name of the student, let's say student one, and the major is computer science and engineering and so on and so forth. So this table will have all the information of all the students. So we will use the term relation and table interchangeably in the course. So for a relational database, or for a database in general, you need a query language to query the data in the database, to retrieve the information in the database. In a relational database, there are two different kind of languages. The first type of languages is a procedural language and the second kind is a declarative language. So a procedural language or operational language, is a language that instructs the database system how to perform a sequence of operations to get the final result of the query. While on the other hand, a declarative language, it basically tells the user, use that language to tell the database or the database system what they want. What kind of data they want to retrieve and then the database system figures out a sequence of operations that find this data for the user, or retrieve this data for the user. So an example of a procedural language is relational algebra, and an example of the declarative language is SQL and also relational calculus.