Salta ai contenuti. | Salta alla navigazione

Strumenti personali

BASI DI DATI E LABORATORIO

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2022/2023
Docente
GIACOMO PIVA
Crediti formativi
10
Periodo didattico
Secondo Semestre
SSD
INF/01

Obiettivi formativi

Fornire agli studenti una conoscenza dettagliata dei sistemi si basi di dati dal punto di vista sia teorico sia pratico.

Le principali conoscenze acquisite saranno:
- architetture dei sistemi di gestione delle basi di dati
- progettazione concettuale e logica di una base di dati
- introduzione al livello fisico di una base di dati: strutture dati e indici
- linguaggio SQL
- architettura client-server a tre livelli nelle applicazioni Web con basi di dati
- linguaggio HTML e PHP


Le principali abilità acquisite saranno:
- capacità di progettare basi di dati utilizzando il modello relazionale
- capacità di implementare e interrogare basi di dati relazionali utilizzando SQL
- capacità di realizzare interfacce Web a basi di dati relazionali utilizzando PHP

Prerequisiti

Aver superato l'esame dell'insegnamento "Programmazione e Laboratorio".

È inoltre utile avere acquisito le conoscenze di base dell'insegnamento di "Algoritmi e Strutture Dati"

Contenuti del corso

Introduzione alle Basi di Dati e utenti di basi di dati
Basi di Dati ed utenti di basi di dati. Concetti ed architettura di un sistema di basi di dati, modelli dei dati, schemi, istanze; architettura a tre livelli ed indipendenza dei dati. Linguaggi ed interfacce. Architetture client/server.

Modello ER e Modello EER
Entità, associazioni, attributi, rapporti di cardinali, specializzazioni, generalizzazioni, reticoli, categorie e notazioni di diagramma più comuni.

Modello relazionale
Vincoli di dominio, di chiave e sui valori nulli. Integrità sulle entità, referenziale e chiavi esterne. Superchiavi e chiavi. Gestione delle violazioni dei vincoli.

Algebra relazionale
operazioni unarie e binarie, espressioni; operazioni di selezione, proiezione, unione, intersezione, differenza, prodotto cartesiano, join interna ed esterna, equijoin e thetajoin, divisione.

Traduzione dei modelli ER ed EER nel modello relazionale

Il linguaggio SQL
Tipi di dato e definizione dei dati in SQL; create table, specifica di vincoli di base, istruzioni di modifica drop ed alter; interrogazioni fondamentali: struttura select-from-where, alias e variabili di tupla, operatori di confronto, ordinamento. Comandi di insert, update e delete.

Interrogazioni complesse in SQL
valore NULL e logica a tre valori, query nidificate e nidificate e correlate; funzioni exists e in, join interne ed esterne, funzioni di aggregazione, clausole group by e having; peculiarità di MySQL.


Gestione degli accessi in mysql (4 ore)
tabella user, host e db. Modifica ed inserimento di utenti e dei privilegi. Tipi di privilegi. Comandi di GRANT e REVOKE.

Cenni sul protocollo http e architettura a tre livelli
Metodi GET e POST. Apache + MySQL + PHP

Il linguaggio html5, xhtml 1.0 strict, fogli di stile CSS

Il linguaggio PHP
Modalità di connessione a database mediante php. Esecuzione di interrogazioni e gestione dei risultati.

Metodi didattici

Lezioni frontali su tutti gli argomenti del corso.

Lezioni di laboratorio in aula di informatica con esercitazioni guidate su SQL, PHP, mysql+php.

Modalità di verifica dell'apprendimento

Prova scritta sugli argomenti del corso, costituita da 3-4 esercizi da risolvere. Tempo a disposizione: 2h

Progetto di Laboratorio (individuale oppure a coppie) secondo le specifiche di massima fornite durante il corso.

Il voto di ciascuna prova è nell'intervallo canonico universitario.
Il voto finale è dato dalla media pesata dei voti conseguiti nelle 2 prove con eventuale arrotondamento per eccesso.

Testi di riferimento

Elmasri, Navathe, Sistemi di Basi di Dati - Fondamenti, Pearson
Education, Database System Concepts Seventh Edition, Avi Silberschatz, Henry F. Korth, S. Sudarshan - https://www.db-book.com/db7/index.html e dispense fornite dal docente