Databases (2014/2015)



Course code
4S00037
Credits
12
Coordinator
Alberto Belussi
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 6 I sem. Carlo Combi
Tecnologie per le basi di dati 3 II sem. Alberto Belussi
Laboratorio 3 II sem. Sara Migliorini

Lesson timetable

II sem.
Activity Day Time Type Place Note
Tecnologie per le basi di dati Monday 11:30 AM - 1:30 PM lesson Lecture Hall C  
Tecnologie per le basi di dati Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall A  
Laboratorio Tuesday 2:30 PM - 5:30 PM laboratorio Laboratory Delta  
I sem.
Activity Day Time Type Place Note
Teoria Monday 11:30 AM - 1:30 PM lesson Lecture Hall A  
Teoria Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall D  

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 design of data-intensive web applications. In particular, this module will be focused on a methodology for the logical design of a web application that interacts with a database system (DBMS).
Moreover, the approach Model-View-Controller (MVC-2 servlet centric) will be illustrated and applied to some examples. Finally, the main issues concerning the treatment of multimedia datasets in a DBMS will be presented.

LAB
----
The “Lab” ("Laboratorio" in italian) of this course has the aim to provide the student with the necessary concepts and methods for the implementation of a database and its applications. In particular, this module will be focused on the usage of a specific DBMS for the creation, management and manipulation of a database by means of SQL commands. Moreover, some general techniques for the implementation of web applications will be presented. In particular a MVC-2 architecture based on several technologies will be illustrated and used to show the implementation of some practical examples.

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. Languages for data definition: SQL as DDL. Table creation and integrity constraints definition in SQL.
* 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, view and conflict equivalence, the two-phase locking. Access methods (indexes): primary and secondary indexes, B-+tree, hashing based access methods.
* Web Server: basic internet, basic HTML (form), basic HTTP.
* Information systems on the Web: techniques for the interaction between a DBMS and a HTTP server (CGI, Servlet, JSP); JDBC library and Java data beans; the architecture proposed by the MVC-2 approach.
* a methodology for the logical design of a data-intesive web application.
* XML
* features of multimedia data: compression techniques and indexing

LAB
-----
1. Introduction to DBMS PostgreSQL: connection to a database, table creation, insert, update and alter table.
2. PostgreSQL: integrity constraints, reactions to contraints violations.
3. PostgreSQL: simple SQL queries.
4. PostgreSQL: complex SQL queries.
5. HTML: structure of an HTML document, main tags, tables.
6. HTML: form.
7. Servlet Engine on an application server. Examples of simple servlets.
8. Servlet and JDBC. Connection to a DBMS PostgreSQL. Simple servlet of the interaction with a DBMS.
9. Web application development in Java context and in other platforms
10. The Model View Controller approach for Web applications
12. multimedia datasets in web applications, css and javascript.

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).

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 R. Elmasri, S.H. Navathe Sistemi di Basi di Dati: Fondamenti (Edizione 6) Pearson 2011 978-88-7192-628-5
Laboratorio D. Geary, C. Horstmann Core JavaServer Faces (Edizione 3) Prentice Hall 2010 978-0-13-701289-3