In this course, you will achieve expertise in two topics, database modeling and database design. Databases are the fundamental technology adopted in all information systems worldwide, since they allow organizing, storing and retrieving digital data that are useful for both personal activities and decisions, and for core activities of enterprises and public administrations. Digital data managed in databases are at the basis of a huge amount of digital services and apps we use every day.
Referring to the modeling capability, the course introduces two models widely adopted to represent databases, the Relational model and the Entity relationship model. The Relational model is used by the majority of software systems that manage databases, while the Entity relationship model, that is provided of an user friendly diagrammatic representation, is adopted in the early stage of the database design process.
Referring to the design capability, the database design process starts usually with a natural language or pictorial description of user requirements; it is worthwhile to represent initially such description using the Entity Relationship model, that is understandable by users, and provides a rich set of semantic characteristics of data. The result of the design activity at this stage is a database schema. After that, the design can proceed translating the Entity Relationship schema into a logical schema in the relational model. Such translation has to be performed using several practical rules that have the goal to optimize the relational schema w.r.t. queries and transactions performed by users. Once obtained the logical schema, one can add to relations (last step) data that represent, in our case, the students, courses and exams.
The course assumes you are familiar with basic mathematical concepts such as set, subset, table, function, and domain of a function.
By the end of this course, you will be able to:
- Model a piece of the real world around you, expressed usually by a text in natural language, in terms of the Relational model and the Entity Relationship model. This ability can be used when your aim is to use a database, and also when you want to understand a complex reality around you.
- Design a reasonably complex database, that represents a piece of real world, by means of the two steps procedure shown above.
The course consists of five Sections. Each Section consists of 4 to 9 video-lectures. Each video-lecture consists of a methodology video, during which several exercises are proposed. When an exercise is proposed, you can pause the video, and once you have conceived a solution, you can watch the video and compare the solution with the one provided. If you want, you can also use the booklet, that is an accurate transcription of the video lessons. When an exercise is proposed, you can conceive a solution, and then you turn the page and compare the solution in the booklet with your solution. The whole set of concepts that are discussed in the course can be divided into three blocks: 1) Basic concepts, 2) Models and 3) Design methods. Let us go in more depth for specific parts. Part 1 - Introduction to Databases: in this section you will learn the basic concepts on database modeling and design, with specific reference to the two models dealt with in the course, the Relational model and the Entity relationship model, and the two phases of database design, Conceptual design and Logical design; Part 2 – Entity Relationship model: in this section you will learn the basic constructs of the Entity relationship model such as entity, relationship, attribute, is-a relation and generalization. You will also learn the diagrammatic representations of constructs, and you will start to design simple schemas and related diagram
Basic knowledge of set theory, basic knowledge of mathematical functions and relations.