Databases, Part 2

Course taught within the Bachelor programme in Computer Science at Sapienza University of Rome.

Basi di Dati, Modulo 2

Instructors

Course facts sheet

  • Sapienza course ID: 1015887
  • Number of credits: 12 (Part 1: 6; Part 2: 6)
  • Language of lectures: Italian

Objectives

General goals. To introduce students to scalable methodologies for the design and development of database software applications.

Specific goals. To introduce students to formalised and scalable methodologies for the conceptual analysis and design of database applications, and to standard technologies for the development of relational databases.

Knowledge and understanding. Students will acquire fundamental methodological skills in the design of medium-large database applications (in particular for what concerns: a) requirements elicitation; b) conceptual analysis; c) design of the relational database and main use-cases), and their development (using relational DBMSs and the SQL language).

Applying knowledge and understanding. Students will be able to proficiently apply the acquired skills in the actual design of medium-large database applications.

Critical and judgmental skills. Students will be able to take autonomous and rational decisions during the various phases of the design process of an actual database application.

Communication skills. Students will be able to interact proficiently with final customers (for what concerns requirements elicitation) and with other designers (for what concerns the design process of medium-large software systems).

Learning skills. Students will be able to extend their skills in the subjects of this course, by the autonomous reading of technical documentation concerning the design of database applications.

Programme

Part A

  • Introduction to key concept of software design and engineering
  • Requirement elicitation
  • Conceptual analysis via UML class diagrams, UML use-case diagrams, informal (i.e., textual) as well as formal (i.e., based on suitable extensions of first-order logic) specifications of external constraints and of class and use-case operations.

Part B

  • Design of a relational database schema with constraints from the output of the conceptual analysis.
  • The SQL language to create, manipulate and query relational databases: base and user-defined types and domains, select-from-where-group by-having-order by queries, aggregate functions, nested queries, set operators, insert/delete/update instructions, create/drop domain/table instructions, key and foreign key constraints, check constraints, triggers, views, access control, transactions, indexes.
  • Design of class and use-case operations via pseudo-code with embedded SQL.

Students enrolled in course editions before a.y. 2023/2024 can still browse Toni Mancini’s old website.