Sei sulla pagina 1di 19

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 dellintegrit 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
Lorganizzazione 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) dellentit/relazione
- Ogni campo rappresenta un attributo dellentit/
relazione
Per ogni campo viene individuato un suo
dominio (tipo di dati): alfanumerico, numerico,
data, booleano, etc.
6
Campi chiave e relazioni
Linsieme dei campi i cui valori identificano
univocamente un record allinterno 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 auto-
incrementa (contatore)

7
Vincoli di integrit
Lintegrit referenziale (referential integrity)
un insieme di regole del modello relazionale che
garantiscono lintegrit 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 Numerico

Campo Testo
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 linconsistenza
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
lutente 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 lindice 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 : Listruzione 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

Potrebbero piacerti anche