Teoria e Pratica dei Database Relazionali con SQL
What you'll learn
- Il modello concettuale: il Modello Relazionale dei Dati
- Il modello logico: i Diagrammi Entità-Relazione
- Il modello fisico: il linguaggio SQL per creare un database (Data Definition Language)
- Il modello fisico: il linguaggio SQL per manipolare i dati in un database (Data Manipulation Language)
- Il modello fisico: il linguaggio SQL per interrogare i dati di un database (Data Query Language)
- Il modello fisico: il linguaggio SQL per gestore le transazioni in database (Transaction Control Language)
Requirements
- Non è richiesto nessun particolare requisito, tranne l'utilizzo base di un sistema operativo come Mac OS, Windows, o Linux.
Description
"Teoria e Pratica dei Database Relazionali, con SQL", è un corso pensato come una miscela di teoria e di pratica per consentirti di imparare, in un tempo ragionevole, ad utilizzare un database relazionale attraverso il linguaggio SQL.
Lo scopo del corso è acquisire tutte le competenze di base necessarie per utilizzare un database relazionale, in settori quali la data science, il web development, gli embedded systems ed il cloud computing.
Il corso è diviso in tre livelli principali, ciascuno dei quali traccia un percorso ideale dalla teoria del modello relazionale dei dati fino alla pratica dei DBMS e del linguaggio SQL.
Il primo livello del corso è rivolto ad acquisire la conoscenza del modello concettuale che sta alla base di tutti i database relazionali.
In questa prima fase, andremo quindi conoscere il Modello Relazionale dei Dati, ed introdurremo i concetti di relazione, di attributo, di data type, di tupla, di normalizzazione, e di chiave, secondo il modello teorico di Edgar Codd, che forma la base teorica indispensabile per la comprensione dei database relazionali.
Nel secondo livello del corso, passeremo invece al modello logico di organizzazione e di rappresentazione dei dati, cioè un modello di descrizione meno astratto rispetto al precedente, che è fondamentale nella fase di analisi e di progettazione dei database relazionali.
In questa seconda fase andremo a conoscere il Modello Entità-Relazione, che ci consente anche di rappresentare graficamente il livello logico di un database. Impareremo i concetti di entità, di relazione, di cardinalità e di modalità. Impareremo anche conoscere e ad utilizzare le relazioni uno-ad-uno, uno-a-molti, e molti-a-molti, e altri elementi fondamentali per la definizione di un modello logico dei dati, come le entità attributive e le entità associative.
Nel terzo livello del corso passeremo al modello fisico di un database relazionale, ed andremo ad utilizzare un vero schema di database per eseguire tutte le attività pratiche necessarie per la conoscenza e e la pratica nell'utilizzo di un vero database relazionale.
In questa terza fase, attraverso le lezioni di varie sezioni del corso, impareremo il linguaggio standard SQL, applicandolo ad un caso concreto sul quale applicheremo la teoria, e sperimenteremo la pratica.
Relativamente al linguaggio SQL, studieremo in particolare:
Data Definition Language
Data Manipulation Language
Data Query Language
Transaction Control Language
Come sistema per la gestione dei database, durante il corso utilizzeremo SQLite, la più famosa libreria per la gestione di database relazionali, disponibile per molti linguaggi di programmazione. Utilizzeremo anche SQLite Studio, un programma gratuito per accedere in modo interattivo ai database SQLite.
Who this course is for:
- Questo corso ha lo scopo di fornire una solida conoscenza di base dei database relazionali, da un punto di vista teorico, concettuale, logico e pratico.
- Vengono fornite basi teoriche, illustrazioni pratiche, ed esercitazioni per verificare la conoscenza acquisita durante il corso.
Instructor
Mi chiamo Alessandro Bemporad. Sono un software engineer con oltre 30 anni di esperienza nel settore dell'Information Technology. Ho lavorato per molti anni come developer, come business analyst, poi come software architect, e infine come Technical Manager in grandi aziende di IT.
Nel 2019 ho fondato e lavoro in Artebinaria, un'azienda che realizza soluzioni di augmented reality su piattaforme Apple, e di cloud computing.
Negli anni, mi sono occupato di progettazione e sviluppo di sistemi software di grandi dimensioni, nei settori Banking, Healthcare e Industria, ed ho gestito moltissimi team di sviluppo. Ho progettato e sviluppato sistemi software in molti linguaggi di programmazione ed ambienti di sviluppo, come Java, Python, C/C++, C#, Ruby e Go. Ho tenuto per anni corsi di Object-Oriented Analysis & Design e di Advanced Java presso grandi aziende, e presso Oracle University.
Ho anche utilizzato per molti anni modelli di gestione dei progetti agili, come Scrum e Kanban.
E' un mio desiderio poter trasmettere la mia esperienza attraverso corsi di sviluppo del software, dedicati a chi si avvicina adesso a questo mondo, oppure a chi vuole approfondire gli aspetti di quello che è già il proprio lavoro.