Databases (2015/2016)



Course code
4S00037
Credits
12
Coordinator
Alberto Belussi
Other available courses
Other available courses
    Academic sector
    ING-INF/05 - INFORMATION PROCESSING SYSTEMS
    Language of instruction
    Italian
    Teaching is organised as follows:
    Activity Credits Period Academic staff Timetable
    Teoria 6 I semestre Alberto Belussi
    Laboratorio 3 II semestre Roberto Posenato
    Tecnologie per le basi di dati 3 II semestre Alberto Belussi

    Lesson timetable

    II semestre
    Activity Day Time Type Place Note
    Laboratorio Tuesday 2:30 PM - 4:30 PM lesson Lecture Hall B from Apr 4, 2016  to Jun 10, 2016
    Laboratorio Tuesday 4:30 PM - 6:30 PM lesson Lecture Hall B from Mar 15, 2016  to Mar 15, 2016
    Laboratorio Wednesday 2:30 PM - 4:30 PM laboratorio Laboratory Delta  
    Tecnologie per le basi di dati Monday 11:30 AM - 1:30 PM lesson Lecture Hall A  
    Tecnologie per le basi di dati Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall A  
    I semestre
    Activity Day Time Type Place Note
    Teoria Monday 11:30 AM - 1:30 PM lesson Lecture Hall C from Oct 5, 2015  to Oct 6, 2015
    Teoria Monday 11:30 AM - 1:30 PM lesson Lecture Hall B from Oct 12, 2015  to Jan 29, 2016
    Teoria Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall A  

    Learning outcomes

    Module: Database theory
    -----------------------------
    The first part of the course, called “Databases Theory”, has the aim to provide the student with the necessary concepts and methods for the design of a database and its applications. In particular, it will be focused on the methodologies for the conceptual and logical design of a database and for the successive database implementation on database systems. Moreover, some general techniques for the implementation of database systems will be presented and the fundamental characteristics of the query language SQL and of the relational algebra will be illustrated.

    Module: Database technology
    ----------------------------------
    The second part of the course has the aim to provide the student with the necessary concepts and methods for the effective usage of relational database systems (RDBMS). In particular, this module will focus on: transactions, concurrency control techniques, recovery management, indices, techniques for interacting with a RDBMS from a Java program (JDBC) and methodologies for the design of data-centric web applications. Finally some concepts regarding current approaches for modeling semi-structured data will be presented (XML and XML schema).

    LAB
    ----
    The goal of this module is to introduce students to the main aspects of the following topics:

    - Introduction to relational data stream management system (RDBMS) PostgreSQL.
    - Introduction to the use of SQL in PostgreSQL.
    - Query Optimization.
    - Introduction to the transaction.
    - Introduction to Python Language.
    - Data base access from application written in Java/Python.
    - Introduction to Flask (Python) micro framework for developing of simple data base based web applications.

    The main technologies exploited during the course are based on Python language. Python will be introduced during the course.
    To attend the course in a productive way, a student has to be confident with object-oriented programming.

    Syllabus

    Module: Database theory
    ------------------------------
    * Introduction to database managemente systems (DBMS): architectures and functionalities of a DBMS. Phisical and logical data independence. Data models. Concepts of model, schema and instance of a database. Languages for database systems. DBMS vs. file system.
    * Conceptual database design: conceptual data models. The Entity-Relationship model (ER). Elements of the ER model: entities, attributes, relationships, ISA hierarchies and cardinality constraints.
    * Logical database design: logical data models, the relational data model. Elements of the relational data models: relations and integrity constraints. Mapping between conceptual schemas in ER model and logical schema in the relational model.
    * Interacting with a database system: languages for the definition, querying and update of a database. The relational algebra. SQL: select-from-where statement, join in SQL, the GROUP BY and ORDER BY clauses, using subqueries. SQL for update: INSERT, DELETE and UPDATE statements. Views.

    Module: Database technology
    ----------------------------------
    * The internal architecture of a DBMS. Transactions. Transactions properties. The concurrency control: schedules, the two-phase locking. Access methods (indexes): primary and secondary indexes, B-+tree, hashing based access methods. Query execution and optimization.
    * Techniques for the interaction between a DBMS and an application; JDBC library; the architecture proposed by the MVC-2 approach.
    * XML, XML schema, UML for XML data design (hints).

    LAB
    -----
    - Introduction to relational data stream management system (RDBMS) PostgreSQL.
    - Introduction to the use of SQL in PostgreSQL.
    - Query Optimization.
    - Introduction to the transaction.
    - Introduction to Python Language.
    - Data base access from application written in Java/Python.
    - Introduction to Flask (Python) micro framework for developing of simple data base based web applications.

    Assessment methods and criteria

    Written test for every module. The final grade is obtained by computing the weighted average of the grade obtained in the Theory modules (3/4) and the grade obtained in the Lab module (1/4).

    The exams are scheduled as follows: two exams in June/July 2016, one exam in September 2016 and one exam in February 2017. Also intermediate exams are scheduled for the Theory modules: one in March 2016 and one in June 2016.

    Reference books
    Activity Author Title Publisher Year ISBN Note
    Teoria P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Basi di dati (Edizione 4) McGraw-Hill 2014 978-88-386-6587-5
    Teoria E. Baralis, A. Belussi, G. Psaila Basi di dati - Temi d'esame svolti (Edizione 1) Progetto Leonardo Società Editrice Esculapio Bologna 1999 B135655713
    Teoria R. Elmasri, S.H. Navathe Sistemi di Basi di Dati: Fondamenti (Edizione 6) Pearson 2011 978-88-7192-628-5

    STUDENT MODULE EVALUATION - 2015/2016