The course provides a complete overview of the techniques and tools required for the design and development of databases, applied to real examples using the most common software tools
Syllabus
- Requirements analysis. Conceptual databases design. The Entity-Relationship diagrams. (about 12 teaching hours)
- Logical database design. Restructuring and optimization of ER diagrams. Switching from conceptual model to logical model. (about 12 teaching hours)
- Data types in SQL. Operators and expressions in SQL. User management and permissions in a DBMS. Creating and editing tables in SQL. Table constraints. Referential integrity constraints. (about 10 teaching hours)
- Inserting data with SQL. Deleting data with SQL. Updating data with SQL. (about 2 teaching hours)
- Basic SQL queries. Advanced queries: internal and external joins between tables. Advanced queries: subqueries. Advanced queries: grouping. Advanced queries: union, intersection, difference. (about 12 teaching hours)
- Advanced SQL Concepts: views. Advanced SQL Concepts: procedures. Advanced SQL Concepts: triggers. Interfacing with programming languages: Java /JDBC. Interfacing with programming languages: PHP. (about 12 teaching hours)
Prerequisites
Base knowledge of imperative programming concepts
Teaching methods
Lectures are mainly practical, and include the interactive development of examples; students are encouraged to participate to the lectures by making questions and discussing the solutions adopted in the developed examples
Assessment methods
The final evaluation involves the development of a project (in group) and a possible oral exam (individual). The project to be developed consists of a database, to be designed and implemented together with a series of related queries. The oral exam starts from the discussion of the project and aims to verify the achieved level of teamwork and the individual contribution to the project