DATABASES AND WEB PROGRAMMING M - Z
Academic Year 2019/2020 - 3° Year- DATABASES AND WEB PROGRAMMING: Concetto SPAMPINATO
- WEB PROGRAMMING: Concetto SPAMPINATO and Carmelo PINO
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