Prerequisiti: nessuno. Obiettivi: imparare ad utilizzare il linguaggio SQL a livello professionale; essere preparati ad utilizzare SQL con Java (JDBC, Servlet, JSP), C, PL/SQL ed altri linguaggi di programmazione.
1. Caratterizzazione generale di DBMS (Data Base Management Systems, sistemi di gestione delle base di dati). Le funzioni principali di un database. La figura del DBA - Database Administrator.
2. Linguaggi utilizzati nell'ambito di DBMS:
- DDL - Data Definition Language,
- DML - Data Manipulation Language,
- DCL - Data Control Language.
3. Modo di operare di un DBMS.
4. Obiettivi di un database (ridondanza dei dati, indipendenza dei dati, sicurezza, recupero, concorrenza).
5. I modelli logici di organizzazione di un DBMS :
- gerarchico (IMS-DL/I),
- reticolare (IDMS/R),
- relazionale - RDBMS Relational DBMS (DB/2, Oracle, SQL Server, Informix, MS Access, MS FoxPro).
6. Modello di dati relazionale:
- tabelle (righe, colonne (campi), dati) e le loro proprietà;
- chiavi:
- chiavi candidate,
- chiave primaria ( primary key ) di una tabella, chiavi alternative;
- chiavi esterne ( foreign keys );
- cenni sugli operatori relazionali;
- vincoli di integrità;
- 12 regole di Codd.
7. Cenni sulla progettazione dei database , sull'analisi dei dati e sulla normalizzazione delle tabelle.
8. SQL - Structured Query Language (il linguaggio delle interrogazioni strutturate). Gli standard ANSI SQL-92 (SQL2) e SQL-99 (SQL3). DML di SQL e le query:
- istruzione SELECT . FROM, clausola WHERE;
- operatori aritmetici, di confronto, logici, di insieme, altri;
- operatori IN, BETWEEN, LIKE, IS, caratteri jolly % e _ ; operatore di concatenazione ||;
- logica a 3 livelli di SQL, valori TRUE, FALSE e NULL; operatore (predicato) IS (NOT) NULL;
- espressioni e condizioni;
- combinare le query: operatori UNION e UNION ALL.
9. Funzioni aggregate (su insiemi) COUNT(), SUM(), AVG(), VARIANCE(), STDDEV(); altre funzioni di SQL.
10. Le clausole di SQL: WHERE, STARTING WITH, ORDER BY, GROUP BY, HAVING, combinazioni di clausole.
11. Combinazioni di tabelle corrispondenti (equi-join) e non corrispondenti; istruzioni RIGHT/LEFT INNER JOIN e OUTER JOIN, combinazione di una tabella con sé stessa (self-join).
12. Subquery (subselect) , utilizzo degli operatori IN, (NOT) EXISTS, ANY (SOME), ALL.
13. DDL di SQL:
- istruzioni CREATE/DROP TABLE,
- istruzionI ALTER TABLE . ADD/MODIFY.
14. Gestione e ripristino dei dati , istruzioni INSERT, DELETE, UPDATE; transazioni, utilizzo delle struzioni ROLLBACK e COMMIT per annullare/confermare le modifiche, uso di SAVEPOINT.
15. Le view (viste), utilizzo delle istruzioni CREATE/DROP VIEW, SELECT, INSERT, INPUT, UPDATE, DELETE con le view.
16. Utilizzo degli indici per velocizzare la ricerca dei dati.