Programma del corso

INTRODUCTION TO INFORMATION SYSTEMS
Information systems, information and data. The impact of information systems on the company. Databases and database management systems. Data models. Schemes and instances. Abstraction levels in DBMSs. Data independence. Database languages ​​and users.

PART ONE: THE RELATIONAL MODEL
The relational model: structures of the relational model; relations and tables; relations and databases; integrity constraints; keys; referential integrity constraints;
relational algebra operators: union, intersection and difference; selection and projection; join.

SQL: data types in SQL; data definition in SQL; data manipulation in SQL; SELECT, INSERT and UPDATE queries, set queries; join queries; nested queries.

PART TWO: DATABASE DESIGN
Methodologies and models for the project: methodologies and models for the project; introduction to design; notes on the life cycle of information systems; notes on design methodologies and databases; the Entity-Relationship model.
Logical design: overview of performance analysis on E-R schemes; restructuring of E-R schemes; redundancy analysis; elimination of generalizations; choosing the main identifiers; translation towards the relational model; entities and many-to-many associations; one-to-many associations; entity with external identifier; one-to-one associations; translations of complex schemes; normalization.

PART THREE: NoSQL database features and utilities; CAP theorem; types of NoSQL databases; main solutions.

RECOMMENDED BOOK
Atzeni, Ceri, Paraboschi, Torlone, Database Systems - Concepts, Languages and Architectures, McGraw-Hill