Non ci sono precedenze obbligatorie. Il corso assume che si disponga delle conoscenze di base di informatica.
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.
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)
Lezioni, esercitazioni, sessioni di laboratorio in aula informatica.
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.
Sito web del corso: https://cs.unibg.it/bd.html
There are no formal requirements. It is expected that students have already acquired all the basic computer science concepts.
The course illustrates the fundamental concepts on the use and design of relational databases.
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)
Lectures presenting the concepts and the resolution of exercises, lab sessions.
Written exam. It is offered the opportunity to develop a small project.