DATABASES AND WEB PROGRAMMING A - L

Academic Year 2019/2020 - 3° Year
Teaching Staff Credit Value: 12
Scientific field: ING-INF/05 - Information processing systems
Taught classes: 70 hours
Exercise: 30 hours
Term / Semester: 1° and 2°

Learning Objectives

  • DATA-BASE

    The course covers the fundamental concepts of database systems management and design. Topics include: data models (ER and relational); query languages (SQL);
    implementation techniques of database management systems (index structures and query processing); noSQL databases.

    In particular, the module addresses relational databases and implementation techniques based on the SQL language. The NO-SQL approach is introduced by pointing out relevant differences in data modelling.

    The learning objectives are:
    a) To understand and use the main technologies for database management.

    b) To design, starting from user requirements, a relational database (and not), from a conceptual, logical and physical perspective.

    c) To use SQL language for performing efficient queries.

  • Web Programming

    The module deals with the methodological tools for the design of modern web-based information systems (Web Information Systems). In particular the module covers concepts for designing and developing back-end (server-side programming) and front-end (client-side programming), of a web application. Particular emphasis will be given to the development of "responsive" front-ends according to user-experience optimization criteria. The module covers also advanced design and implementation techniques based on the Model-View-Controller (MVC) architectural pattern.


Course Structure

  • DATA-BASE

    Lectures, hands-on exercises, laboratory and seminars.

  • Web Programming

    Lectures, hands-on exercises, laboratory and seminars.


Detailed Course Content

  • DATA-BASE

    1) Models and Languages for Database Management

    - Fundamentals of Database Management Systems (DBMS)
    - Relational Model: basic concepts, integrity constraints and keys.
    - SQL language: data definition, data modification, queries, views, transactions. - Advanced SQL: triggers and procedures
    - An example of relational DMBS: MySQL.
    - NO-SQL database: MongoDB

    2) Design of databases

    - Conceptual design: E/R model, conceptual design strategies, quality verification.
    - Logical design: restructuring of the E / R schemes, translation into the relational model.
    - Physical design: storage structures for tables and indices. Hashing techniques. Query execution and optimization
    - Database normalization: normal forms (Boyce-Codd, third normal form)
    - Data warehousing: multidimensional data models, data mart, ETL procedures, OLAP operators

  • Web Programming

    Foundations of web programming and server-side development

    • HTML 5, CSS and Document Object Model (DOM)*
    • Apache-MySQL-Php (AMP)
    • PHP language
    • HTML and PHP: forms, sessions, cookies*
    • PHP: Variables*, Arrays*, Procedures*, Interaction with HTML Form*, GET e POST methods*, sessions*, cookies*
    • Database access with PHP

    Web information Systems (WIS) design and client-side application development

    • Design principles of front-end interfaces to support the user-experience (UX)
    • Client side programming: JavaScript, jQuery, AJAX
    • Javascript: forms, functions*, objects*, properties and methods, object model (window, document, form objects)*, events*
    • Page manipulation: CSS Selectors*, Positition selectors and operations with objects (DOM manipulation)*, events and object-event functions*
    • AJAX: fetch ,HTML/JSON responses
    • The MVC (Model-View-Controller) pattern: examples of software design within an MVC-based framework
    • Web Apps security (SQL injections)

    Non-relational databases

    • MongoDB, Redis: cache examples

    * Minimum required knowledge for passing the exam.


Textbook Information

  • DATA-BASE

    1. Basi di dati - 4/ed, Modelli e linguaggi di interrogazione. Di: Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Casa editrice: Mc-Graw-HIll

    2. High Performance MySQL: Optimization, Backups, and Replication (2011). Di Baron Schwartz e altri, Casa editrice: O'Reilly

  • Web Programming

    Programmazione Web lato server (2011). Di: Della Mea, Di Gaspero, Scagnetto, Casa editrice: APOGEO

    Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (2014). Di: Robin Nixon, Casa editrice: O'Reilly

    Instructor notes