Cos'è un Database
  I database o banche dati o base dati sono collezioni di
dati, tra loro correlati, utilizzati per rappresentare una
porzione del mondo reale.
  Sono strutturati in modo tale da consentire la gestione
dei dati stessi in termini di inserimento, aggiornamento,
ricerca e cancellazione delle informazioni.
  Esempi di utilizzo del database...
- 
- 
- 
- 
Anagrafe degli studenti di Roma3 con curriculum
Archivio di una biblioteca con gestione dei prestiti
CRM
La discoteca di casa
1
DBMS (Data Base Management System)
  È il software per la creazione e la
manipolazione di un database.
  DBMS personali e professionali: Access,
MySql, Oracle, DB2.
  Definisce gli utenti e gli amministratori di
un database
  Fornisce meccanismi di sicurezza,
protezione e controllo dell’integrità dei dati
2
Progettare e realizzare un Database
3
Utenti e amministratori del DB
  DBA, Database Administrator: gestisce gli
accessi, predispone tabelle, indici, viste,
ottimizza lo spazio disco, effettua i backup e i
restore.
  Programmatori: scrivono applicazioni che
utilizzano i dati del DB
  Utenti finali del DB : utilizzano le applicazioni
che permettono di interrogare il DB
  Sistemisti : verificano il corretto funzionamento
dei sistemi hw e sw su cui gira il DBMS
4
Database Relazionali
  Ideati dalla IBM negli anni ’70: da allora
sono il modello più diffuso.
  Si basa su alcuni concetti fondamentali
tipicamente matematici (Algebra relazionale)
  Concetto di dato, informazione, tabella e
relazione.
 Modelli alternativi: gerarchico, reticolare, ad
oggetti
5
L’organizzazione in Tabelle
  La tabella è la struttura dati fondamentale di un
database relazionale.
  Con le tabelle si rappresentano le entità e le
relazioni dello schema concettuale.
  E’ composta da record (righe o tuple) e da campi
(colonne o attributi):
-  Ogni record rappresenta una istanza (o occorrenza o
tupla) dell’entità/relazione
-  Ogni campo rappresenta un attributo dell’entità/
relazione
  Per ogni campo viene individuato un suo
dominio (tipo di dati): alfanumerico, numerico,
data, booleano, etc.
6
Campi chiave e relazioni
  L’insieme dei campi i cui valori identificano
univocamente un record all’interno di una
tabella è detto Chiave Primaria. Quando la
chiave primaria è composta da un solo campo,
si parla di campo chiave.
  Esempi di campo chiave: matricola, codice
fiscale, etc.
  Quando non è possibile trovare un campo
chiave tra gli attributi di una entità, si definisce
un campo di tipo ID numerico che si autoincrementa (contatore)
7
Vincoli di integrità
  L’integrità referenziale (referential integrity) è
un insieme di regole del modello relazionale che
garantiscono l’integrità dei dati quando si hanno
relazioni associate tra loro attraverso la chiave
esterna: queste regole servono per rendere
valide le associazioni tra le tabelle e per
eliminare gli errori di inserimento, cancellazione
o modifica di dati collegati tra loro.
8
Gli indici
  Un indice è una struttura dati realizzata per
migliorare i tempi di ricerca dei dati.
  I campi di una tabella per cui è necessario
effettuare ricerche o operazioni di join possono
essere “indicizzati”.
  In assenza di indice, la ricerca del valore di un
campo avviene in maniera sequenziale sui
record della tabella.
  Livello fisico: gli indici sono strutture dati fisiche
gestite dal db, dipendono dal DBMS utilizzato .
  Indici vengono generati automaticamente dal db
per i campi definiti come chiave.
9
Esempio di tabelle correlate
Campo ID/Chiave
Campo ID/Chiave
Campo Testo
Campo Numerico
Campo Testo
Campo Data
Campo Booleano
Chiave
Esterna
Relazione 1:n
10
La normalizzazione delle relazioni
  Nella definizione della struttura di una relazione occorre
evitare la ripetizione e la ridondanza dei dati per non
creare problemi nella fase di manipolazione della tabella
con operazioni di modifica o cancellazione di righe.
  La normalizzazione è un processo con il quale le tabelle
vengono trasformate in modo tale che ogni tabella
corrisponda a un singolo oggetto della realtà
rappresentata con il modello di database: le regole della
normalizzazione sono definite per evitare l’inconsistenza
dei dati e le anomalie nelle operazioni di aggiornamento.
11
Il linguaggio SQL
• SQL (Structured Query Language) è il linguaggio
che permette di effettuare le operazioni per estrarre
e manipolare i dati da un database.
• E’ lo standard tra i sistemi relazionali : viene usato
in tutti i prodotti DBMS come set di comandi per
l’utente della base di dati
Tipi di istruzioni SQL
  DDL: permette di definire la struttura delle
relazioni del database
  DML: permette di modificare i dati contenuti
nel db, con le operazioni di inserimento,
variazione e cancellazione
  DCL: permette di gestire il controllo degli
accessi e i permessi per gli utenti
  Query Language: permette di porre
interrogazioni al db
13
Istruzioni di DDL
Il Data Definition Language (DDL) permette di creare e
cancellare intere tabelle, di definire degli indici, specificare
vincoli e integrità referenziali
 Esempi:
 CREATE TABLE : crea una nuova tabella nel DB
 ALTER TABLE : modifica la struttura di una tabella
 DROP TABLE : cancella una tabella dal DB
 CREATE INDEX : crea un indice su una certa tabella
 DROP INDEX : elimina l’indice specificato
14
DML : manipolazione di tabelle
Inserimento:
INSERT INTO Tabella
VALUES (value1, value2,....)
Cancellazione:
DELETE FROM Tabella
WHERE column_name = some_value
Aggiornamento:
UPDATE Tabella
SET column_name = new_value
WHERE column_name = some_value
15
Query language : L’istruzione SELECT
SELECT [DISTINCT] (*|Espr [[AS] Nuovo
Nome ] {, Espr [[AS] Nuovo Nome]})
FROM Tabella [Ide] {, Tabella[Ide]}
[WHERE Condizione]
[GROUP By Attributo {, Attributo}]
[HAVING Condizione]
16
Il join di tabelle
  La relazione tra tabelle si realizza
sfruttando le chiavi esterne (foreign key)
nelle operazioni di join (collegamento tra
tabelle).
  Il join combina più tabelle in una tabella
unica con tutte le possibili combinazioni di
valori (in matematica viene chiamato
Prodotto Cartesiano) e su questa filtra le
righe per produrre i risultati desiderati
17
Il Join naturale
Es. Lista di studenti e degli strumenti che stanno
studiando
SELECT s.class, s.name, s.id, m.type ;
FROM student s, music m ;
WHERE s.id=m.id ORDER BY class, name
Result