BASI DI DATI | Università degli studi di Bergamo - Didattica e Rubrica

BASI DI DATI

Modulo Generico
Codice dell'attività formativa: 
21061-MOD2

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2022/2023
Insegnamento (nome in italiano): 
BASI DI DATI
Insegnamento (nome in inglese): 
DATA BASES
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: 
2023/2024
Crediti: 
5
Responsabile della didattica: 

Altre informazioni sull'insegnamento

Ciclo: 
Secondo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
40
Ore di studio individuale: 
75
Ambito: 
Ingegneria informatica
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.

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.

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)

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, seguito da 3 esercizi di scrittura di interrogazioni su un sistema relazionale. Il tempo a disposizione per lo svolgimento della prova è di norma pari a 2 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/bd.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.

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)

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