The course aims to give the knowledge and basic skills for the representation, organization, and querying of databases. The course mainly refers to the relational data model which is widely adopted in commercial and open-source systems. The course thoroughly introduces the relational algebra, the SQL query language, the Entity-Relation model, the normalization of databases: Boyce-Codd and 3NF, transactions and recovery of databases, XML (along with xpath and xquery), the basis of NoSQL data. MySQL in connection to the host language PHP. As NoSQL MongoDB and CouchDB systems will be tested.
General teaching training objectives in terms of expected learning outcomes.
Knowledge and understanding: The course aims to give the knowledge and basic skills for the representation, organization, query of databases.
Making judgments: Through concrete examples and case studies, the student will be able to independently develop solutions to specific problems related to databases.
Communication skills: the student will acquire the necessary communication skills and expressive appropriateness in the use of technical language in the general area of databases.
Learning skills: The course aims, as the goal, to provide students with the necessary theoretical and practical methods to deal independently and solve new problems that may arise during a work activity. For this purpose, different topics will be covered in class by involving students in the search for possible solutions to real problems such as query optimization.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
Learning assessment may also be carried out on line, should the conditions require it.
Introduction to databases: data models, general information about DBMS.
The data model: The relational model. Relationships, attributes, instances of relationship, tuples. Integrity constraints, the key concept. relational algebra: basic and derived operators.
The SQL (Structured Query Language). The data definition language: definition of tables, domains, indexes. Specification of simple integrity constraints. The query language: the join-selection-projection operators, aggregates operators, grouping operator. Nested queries and related, set operators. Recursive queries. The data manipulation language: insertion, deletion and modification of tuples. Definition of views, generic integrity constraints. Controlling access to a data base. Active databases.
Design of databases: Conceptual design; logic design; physical design
Normalization of data bases: Abnormalities. Functional dependencies. Decompositions of diagrams: which store records that preserve the functional dependencies. Normal forms: Boyce-Codd and 3NF.
Basics of XML data
Introduction to NoSQL database.
Other suggested books: