BASI DI DATI E WEB

Attività formativa monodisciplinare
Codice dell'attività formativa: 
21019

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2018/2019
Insegnamento (nome in italiano): 
BASI DI DATI E WEB
Insegnamento (nome in inglese): 
DATA BASES AND WEB
Tipo di attività formativa: 
Attività formativa Caratterizzante
Tipo di insegnamento: 
Obbligatoria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
2
Anno accademico di offerta: 
2019/2020
Crediti: 
9
Responsabile della didattica: 

Altre informazioni sull'insegnamento

Modalità di erogazione: 
Didattica Convenzionale
Lingua: 
Italiano
Ciclo: 
Secondo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
72
Ambito: 
Ingegneria informatica
Materiali didattici: 
Prerequisiti

Non ci sono precedenze obbligatorie. Il corso assume che si disponga delle conoscenze di base di informatica.

Obiettivi formativi

Al termine del corso lo studente avrà chiari i principi fondamentali relativi all'uso e progettazione di basi di dati relazionali. Viene inoltre trattato il tema dello sviluppo di applicazioni Web, descrivendo le tecnologie disponibili.

Per quanto riguarda l''uso delle basi di dati, il corso inizialmente illustra i costrutti di base del modello relazionale e poi presenta i linguaggi di interrogazione, iniziando con la trattazione dei linguaggi formali e poi arrivando a trattare in profondità il linguaggio SQL. Segue poi la parte del corso dedicata alla progettazione di basi di dati per specifici domini, utilizzando come strumento il modello Entità-Relazioni.
Per quanto riguarda le tecnologie Web, lo studente acquisirà una conoscenza dei concetti di base nelle lezioni e acquisirà poi una visione concreta del funzionamento di queste tecnologie all'interno di alcune sessioni di laboratorio.

Contenuti dell'insegnamento

INTRODUZIONE AL CORSO
Il sistema informativo nell'azienda
Caratteristiche dei DBMS e concetto di transazione
Utenti, strumenti e moduli di un DBMS
TEORIA RELAZIONALE
Il modello relazionale dei dati, sua definizione (informale e formale) e concetti fondamentali
Algebra relazionale: operazioni unarie e binarie
Interrogazioni in algebra relazionale e loro ottimizzazione
Calcolo relazionale: definizione, equivalenza fra algebra relazionale e calcolo relazionale
Datalog: definizione, interrogazioni ricorsive, specifica di vincoli di integrità,
Relazioni tra i poteri espressivi dei linguaggi formali presentati
LINGUAGGI PER BASI DI DATI
Introduzione a SQL: standardizzazione di SQL, domini SQL, vincoli e semplice definizione di tabelle
SQL come DDL: integrità referenziale, definizione di schemi e loro modifica, cataloghi relazionali
Interrogazioni SQL semplici, interrogazioni con ordinamenti e raggruppamenti, Interrogazioni SQL complesse
Comandi di modifica e viste in SQL
Aspetti evoluti del DDL: indici e vincoli di integrità generici, controllo dell'accesso, viste e controllo dell'accesso, transazioni (cenni)
SQL per la programmazione: funzioni SQL, SQL Embedded, ODBC/ADO e JDBC, procedure
PROGETTAZIONE DI BASI DI DATI
Fasi della progettazione
Le astrazioni nella progettazione dei dati
Il modello Entità-Relazioni: definizione, associazioni, identificatori e gerarchie, proprietà delle gerarchie
Il ciclo di progettazione: fasi di progettazione, strategie, qualità di un progetto concettuale
Progettazione logica: fasi del progetto logico, eliminazione delle gerarchie, gestione degli identificatori, gestione degli attributi, gestione delle associazioni, normalizzazione (cenni)
Progettazione fisica (cenni)

PROGETTAZIONE DI APPLICAZIONI WEB
Tecnologie lato client
Tecnologie lato server
Modelli di sviluppo
Caratteristiche della piattaforma Java e sue evoluzioni
Caratteristiche delle tecnologie Microsoft per il Web
Modelli avanzati di sviluppo di applicazioni, basati su Web service

Testi di riferimento

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone: "Basi di dati", McGraw Hill Italia (copre sia questo insegnamento, sia Basi di dati 2)

Metodi didattici

Lezioni, esercitazioni, sessioni di laboratorio in aula informatica.

Modalità verifica profitto e valutazione

L'esame consiste in una prova scritta, tipicamente strutturata in un esercizio di progettazione concettuale e logica, 3 esercizi di scrittura di interrogazioni su un sistema relazionale e 2 domande ed esercizi che coprono le competenze relative alle tecnologie Web. Il tempo a disposizione per lo svolgimento della prova è di norma pari a 2,5 ore.
Per gli studenti che frequentano il corso è anche possibile superare l'esame mediante prove in itinere, una offerta a metà del corso e l'altra a fine corso, ciascuna su metà del programma.
E' anche offerta la possibilità di sviluppare un elaborato, su un tema scelto dallo studente.

Altre informazioni

Sito web del corso: https://cs.unibg.it/bdweb.html

Prerequisites

There are no formal requirements. It is expected that students have already acquired all the basic computer science concepts.

Educational goals

The course illustrates the fundamental concepts on the use and design of relational databases. Modern technologies for the development of Web applications are also covered by the program.

Course content

INTRODUCTION TO THE COURSE
The information system in a company
Characteristics of DBMSs and the concept of transaction
Users, tools and modules of a DBMS
RELATIONAL THEORY
The relational data model, its definition (informal and formal) and basic concepts
Relational algebra: unary and binary operations
Queries in relational algebra and their optimization
Relational calculus: definition, equivalence between relational algebra and relational calculus
Datalog: definition, recursive queries, specification of integrity constraints,
Relations between the expressive power of the formal languages
LANGUAGES FOR DATABASES
Introduction to SQL: SQL standards, SQL domains, constraints and simple definition of tables
SQL as a DDL: referential integrity, schema definition and modification, relational catalogs
Simple SQL queries, queries with sorting and grouping, complex SQL Queries
Update commands and views in SQL
Advanced aspects: generic indexes and integrity constraints, access control, views
SQL Programming: SQL functions, Embedded SQL, ODBC / ADO, JDBC, SQL procedures
DESIGN OF DATABASES
Stages of the design
The abstractions in the design of data
The Entity-Relationship model: definition, associations, identifiers and hierarchies, properties
The design cycle: strategies, quality of a conceptual design
Logical design: logical phases of the project, the elimination of hierarchies, management of identifiers, attribute management, association management, normalization (outline)
Physical design (outline)

DESIGN OF WEB APPLICATIONS
Client-side technologies
Server-side technologies
Development models
Features of the Java platform and its evolution
Features of Microsoft technologies for the Web
Advanced models of development of applications based on Web services

Textbooks and reading lists

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone: "Database systems", McGraw Hill (freely available as PDF)

Teaching methods

Lectures presenting the concepts and the resolution of exercises, lab sessions.

Assessment and Evaluation

Written exam. It is offered the opportunity to develop a small project.

Further information