Il documento che carico qui sotto e rendo liberamente disponibile è una dispensa tecnica che raccoglie appunti e lezioni (datate tra aprile e maggio 2016) riguardanti la gestione dei database relazionali, il linguaggio SQL e i fondamenti delle reti informatiche. Il testo funge da guida pratica per l’utilizzo di strumenti come MySQL, PhpMyAdmin e server Apache.
Riassunto dei contenuti principali.
1. Architettura dei Database e SQL.
Il manuale descrive la struttura gerarchica di un database, composto da tabelle, righe e campi. Vengono approfonditi i motori di memorizzazione, con particolare enfasi su Inno DB e le sue proprietà ACID (Atomicità, Coerenza, Isolamento, Durabilità), fondamentali per garantire transazioni corrette.
Le operazioni SQL trattate includono:
- DML (Data Manipulation Language): Istruzioni per interrogare (SELECT), inserire (INSERT), aggiornare (UPDATE) e cancellare (DELETE) i dati.
- DDL (Data Definition Language): Comandi per modificare la struttura delle tabelle (ALTER TABLE) e gestire i set di caratteri (COLLATE, VARCHAR, INT) .
- Funzioni Avanzate: Utilizzo di JOIN (Inner, Left, Right) per combinare tabelle, subquery, clausole di raggruppamento (GROUP BY) e ordinamento (ORDER BY) .
- Manutenzione: Procedure di backup tramite DUMP (MySql dump) e ottimizzazione delle tabelle con OPTIMIZE e REPAIR.
2. Reti e protocolli.
Una sezione significativa è dedicata al funzionamento dei server e della comunicazione in rete:
- Protocolli Internet: Differenze tra IPv4 (32 bit) e IPv6 (128 bit), e il ruolo del TCP/IP (con controllo errori) rispetto all’UDP (senza controlli, usato per streaming) .
- Servizi di Rete: Funzionamento del DNS per la risoluzione dei nomi, DHCP per l’assegnazione dinamica degli IP e NAT per la traduzione degli indirizzi tramite router.
- Porte e Servizi Applicativi: Elenco delle porte standard come la 80/443 per il Web (Apache), la 3306 per MySQL e i protocolli mail SMTP, POP e IMAP.
3. Concetti di amministrazione e sviluppo.
Il documento tocca temi sistemistici come:
- Sicurezza: Gestione dei permessi utenti tramite il comando GRANT.
- Scalabilità: Introduzione ai concetti di Cluster, Repliche (Master-Slave) e l’uso di Proxy (come Cloudflare) per gestire il traffico.
- Sviluppo Web: Accenni all’uso di AJAX per aggiornamenti dinamici delle pagine e al formato JSON per lo scambio dati.
