DATABASES AND WEB PROGRAMMING M - Z

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

  • DATABASES AND WEB PROGRAMMING

    The course covers the fundamental concepts of management and design of database systems.
    Topics include data models (ER and relational); query languages (SQL);
    implementation techniques of database management systems (index structures and nd query processing); noSQL databases.
    In particular, it refers to relational databases and implementation techniques based on the SQL language.

    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, and web information retrieval techniques such as scraping and crawling.


Course Structure

  • DATABASES AND WEB PROGRAMMING

    Lectures, hands-on exercises, laboratory and seminars.

  • WEB PROGRAMMING

    Lectures, hands-on exercises, laboratory and seminars.


Detailed Course Content

  • DATABASES AND WEB PROGRAMMING

    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*, procedures* and assertions
    • An example of relational DMBS: MySQL.
    • NO-SQL database: MongoDB

    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: third normal form* and Boyce-Codd
  • WEB PROGRAMMING

    Foundations of web programming and server-side development

    • HTML 5, CSS e Document Object Model (DOM)*
    • Web Server, Web Client, Web Application, Client-side vs. Server-side processing
    • PHP: Variables*, Arrays*, Procedures*, Interaction with HTML Form*, GET e POST methods*, sessions*, cookies*
    • Database SQL HTML with PHP*

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

    • Analysis and design of interactive processes based on the requirements of the information system*
    • Design principles of front-end interfaces to support the user-experience (UX)
    • Javascript: Procedures*, Objects*, Methods and properties, prototypes*, Dynamic HTML*, Object model (window, document, form)*, events*
    • Jquery: CSS Selectors*, Positition selectors and operations with objects (DOM manipulation)*, events and object-event functions*
    • AJAX: XMLHttpRequest, Ajax function on jQuery, HTML responses, XML and JSON
    • The MVC (Model-View-Controller) pattern: examples of software design within an MVC-based framework
    • Web Apps security (SQL injections, HTML/JS injections)
    • Web Information Retrieval: retrieving contents with crawling and scraping in PHP e Javascript

     

    * Minimum required knowledge for passing the exam.


Textbook Information

  • DATABASES AND WEB PROGRAMMING

    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

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

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