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
- Test a risposta multipla con 10 domande. Tempo a disposizione: 1h.
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