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