LE BASI DI DATI
E IL LINGUAGGIO SQL
Basi di dati (database) UA2
Con il termine database si indicano in
informatica gli archivi di dati, organizzati in
modo integrato attraverso tecniche di
modellazione dei dati e gestiti sulle memorie
di massa del computer attraverso appositi
software. A grandi linee possiamo dire che si
tratta di una collezione di archivi ben
organizzati e strutturati che costituiscono
una base di lavoro per utenti diversi che
utilizzano software diversi.
Organizzazione degli archivi
mediante basi di dati
Il database è una collezione di dati
logicamente correlati e condivisi, che ha lo
scopo di soddisfare i fabbisogni informativi
di una specifica organizzazione. I dati sono
gestiti da un unico sistema chiamato DBMS
(DataBase Management System) che ne
permette la gestione e ne regola gli accessi.
Caratteristiche dei DBMS
Un DBMS deve essere in grado di risolvere i
problemi che si presentano con l’approccio
tradizionale e la gestione degli archivi deve avere
le seguenti caratteristiche:
•
•
•
•
•
•
Facilità di accesso
Indipendenza dalla struttura logica e fisica
Eliminazione di ridondanza e di inconsistenza
Integrità dei dati
Controllo della concorrenza
Sicurezza dei dati
DBMS – Facilità di accesso
Il ritrovamento dei dati deve essere facilitato
e svolto con grande velocità anche nel caso
di database molto grandi e con richieste
provenienti contemporaneamente da più
utenti
DBMS – Indipendenza dalla
struttura logica e fisica
Deve essere possibile apportare delle
modifiche alla definizione delle strutture del
database senza modificare il software
applicativo.
Deve
essere
possibile
modificare i supporti con cui i dati sono
registrati e le modalità di accesso alle
memorie di massa senza modifiche alle
applicazioni.
DBMS – Eliminazione di
ridondanza e di inconsistenza
Gli stessi dati non devono comparire più
volte in archivi diversi, in quanto il database
è costituito da archivi integrati. Il database
non può presentare campi uguali con valori
diversi in archivi diversi.
DBMS – Integrità dei dati
Devono essere previsti dei controlli per
evitare anomalie ai dati causate dai
programmi e dalle applicazioni degli utenti.
Le operazioni sui dati vengono eseguite fino
al loro completamento per assicurare la
consistenza dei dati
DBMS – Controllo della
concorrenza
I database possono essere utilizzati da più
utenti. Bisogna garantire che le operazioni
svolte da utenti diversi in modo concorrente
non interferiscano tra loro.
DBMS – Sicurezza dei dati
Devono essere previste procedure di
controllo sia per impedire accessi non
autorizzati ai dati contenuti nel database, sia
per la protezione da guasti accidentali.
I linguaggi per database
Le prestazioni del DBMS vengono attivate
dall’utente usando appositi comandi che
costituiscono a tutti gli effetti un linguaggio,
attraverso il quale l’utente può comunicare
con il sistema di elaborazione che gestisce il
database:
• DDL (Data Definition Language)
• DML (Data Manipulation Language)
• QL (Query Language)
DDL (Data Definition Language)
Linguaggio per la descrizione dei dati, delle
tabelle, delle viste, delle associazioni tra
tabelle, dei vincoli di integrità e dei controlli
relativi alla sicurezza.
Rappresenta lo strumento attraverso il quale
l’utente ordina al DBMS la creazione della
struttura del database
DML (Data Manipulation Language)
E’ il linguaggio per il trattamento (o
manipolazione) dei dati contenuti nel
database e consente le usuali operazioni di
accesso per inserimenti, modifiche o
cancellazioni.
QL (Query Language)
E’ il linguaggio per le interrogazioni al
database e consente il ritrovamento dei dati
che interessano, sulla base dei criteri di
ricerca richiesti dall’utente
Modellazione dei dati UA4
Modellare i dati significa costruire una
rappresentazione
semplificata
della
realtà
osservata o di un problema aziendale,
individuandone gli elementi caratteristici e i legami
intercorrenti tra essi. La progettazione di un
modello di dati avviene a livelli diversi:
• Livello concettuale
• Livello logico
• Livello fisico
Modellazione dei dati – livello
concettuale
Solitamente il problema della realizzazione di un
database viene sottoposto da parte di un cliente, il
quale cerca di descrivere a parole i suoi bisogni.
Per questo motivo la prima analisi consiste nella
ricerca, all'interno della descrizione del problema,
dei termini più significativi, che indicano quali sono
i contenuti del database che si vuole costruire. Al
termine di questa fase viene prodotto uno schema
chiamato Schema E-R che rappresenta in forma
grafica i collegamenti tra gli oggetti astratti
individuati.
Modellazione dei dati – livello
logico
In questa fase si parte dallo schema E-R ottenuto nel livello
precedente, per ottenere un altro schema, detto anche
schema logico. Questo schema spiega concretamente
come realizzare il vero e proprio database cioè gli archivi e
i collegamenti tra gli archivi. A seconda di come si
preferisca realizzare questi collegamenti, si può adottare
un modello a scelta tra i seguenti: modello relazionale,
modello gerarchico, modello reticolare e modello ad
oggetti. Si vedranno più avanti questi modelli, in particolare
il modello logico relazionale e come esso realizza i
collegamenti tra gli archivi.
Modellazione dei dati – livello fisico
In questa fase il problema è individuare la
forma migliore in cui salvare i dati che
costituiscono gli archivi. Per fare ciò è
necessario rispondere a domande come:
dove verranno salvati i dati? Che struttura
avranno i dati nei file? Che file system si
utilizzerà? Quest'ultima fase di solito è
influenzata dal DBMS sul quale è caduta la
scelta, e dal file system usato, e non sarà
trattata.
Modello Entità Associazioni
(Modello E/R)
E’ uno strumento per analizzare le caratteristiche
di una realtà in modo indipendente dagli eventi che
in essa accadono, cioè per costruire un modello
concettuale
dei
dati
indipendente
dalle
applicazioni. Il risultato di questo lavoro è la
definizione di una rappresentazione grafica detta
schema E/R. Gli elementi di un modello entità
associazioni sono:
• Entità
• Associazioni
• Attributi
Modello E/R - Entità
L’entità è un oggetto concreto o astratto che
ha un significato anche quando viene
considerato in modo isolato ed è di interesse
per la realtà che si vuole modellare
Modello E/R - Associazione
L’associazione è un legame che stabilisce
un’interazione tra le entità
Modello E/R - Attributi
Le proprietà delle entità e delle associazioni
sono descritte attraverso gli attributi
• Formato
• Dimensione
• Opzionalità
Modello E/R
Le associazioni possono avere attributi
Si indica con il termine chiave o chiave
primaria un insieme minimale di attributi che
permettono di distinguere tra loro le istanze
di una stessa entità
Associazioni tra entità
La molteplicità di una associazione è il numero di
possibili istanze di un’entità che viene messo in
corrispondenza con un’istanza dell’altra entità che
partecipa all’associazione. Il numero minimo e
massimo di possibili istanze viene espresso da
una coppia di numeri separati da punti (es. 1..N). Il
valore minimo assume di solito i valori 0 o 1. Il
valore massimo è detto cardinalità della
partecipazione all’associazione ed in genere
assume il valore 1 o N.
Associazione 1:1 o biunivoca
Un’associazione si dice uno a uno quando
ogni istanza della prima entità si deve
associare a una sola istanza della seconda
entità e viceversa
Persona
1
1
Corrisponde
Codice
Fiscale
Associazione 1:N
Un’associazione si dice uno a molti quando
ogni istanza della prima entità si può
associare a una o più istanze della seconda
entità, mentre a ogni istanza della seconda
si deve associare una sola istanza della
prima
Conto
Corrente
1
N
Effettuare
Movimento
Associazione N:N
Un’associazione si dice molti a molti se a
ogni istanza della prima entità si possono
associare a una o più istanze della seconda
entità, e a ogni istanza della seconda si
possono associare una o più istanze della
prima
Docente
N
N
Insegnare
Classe
Modello Relazionale UA5
Il modello relazionale rappresenta il
database come un insieme di relazioni
(tabelle). Viene considerato attualmente il
modello più semplice ed efficace, perché è
più vicino al modo consueto di pensare i
dati, e si adatta in modo naturale alla
classificazione e alla strutturazione dei dati.
Caratteristiche Modello Relazionale
• tutte le righe di una tabella contengono lo stesso numero
di colonne
• gli attributi rappresentano informazioni elementari non
scomponibili ulteriormente
• i valori assunti da un campo appartengono al dominio dei
valori possibili
• in una relazione ogni riga è diversa da tutte le altre
• le righe compaiono in una tabella in un ordine non
prefissato
Caratteristiche Modello Relazionale
Una relazione con n colonne si indica come
una relazione di grado n, il nome con il
quale si identifica una colonna si chiama
attributo, l’insieme dei valori che possono
essere assunti da un attributo definiscono il
dominio di quell’attributo, ed il numero delle
n-uple (dette anche tuple) si chiama
cardinalità della relazione.
Caratteristiche Modello Relazionale
a1
a2
……………………
an
b1
b2
……………………
bn
Cardinalità
:
:
z1
z2
:
……………………
Grado
zn
Dallo schema E/R al modello
relazionale
• Ogni entità diventa una tabella
• Ogni attributo dell’entità diventa una colonna della
tabella
• L’identificatore univoco dell’entità diventa la chiave
primaria della tabella
• L’associazione uno a uno diventa una sola tabella che
contiene gli attributi della prima e della seconda entità
• L’associazione uno a molti si ottiene aggiungendo agli
attributi dell’entità che svolge il ruolo a molti,
l’identificatore univoco dell’entità che svolge il ruolo a
uno nell’associazione (chiave esterna)
Dallo schema E/R al modello
relazionale
• L’associazione molti a molti diventa una
nuova tabella composta dagli identificatori
univoci delle due entità e dagli eventuali
attributi dell’associazione. La chiave della
nuova tabella è formata dall’insieme di
attributi che compongono le chiavi delle
due
entità,
oltre
agli
attributi
dell’associazione necessari a garantire
l’unicità delle righe della tabella ottenuta
Le operazioni relazionali
In generale gli operatori relazionali agiscono
su una relazione per ottenere una nuova
relazione. In sostanza le operazioni
relazionali consentono di effettuare le
interrogazioni alla base di dati per ottenere
le informazioni desiderate estraendo da una
tabella una sottotabella, oppure combinando
tra loro due o più tabelle e generando così
nuove relazioni
Le operazioni relazionali
Selezione
La selezione genera una nuova tabella costituita
solo dalle righe della tabella di partenza che
soddisfano una determinata condizione
Codice
Nome
Cognome
Codice
Nome
Cognome
Le operazioni relazionali
Proiezione
La proiezione genera una
nuova tabella estraendo
dalla tabella iniziale solo
alcune colonne
Codice
Nome
Codice
Cognome
Cognome
Le operazioni relazionali
Congiunzione (join interno)
La congiunzione tra due tabelle R e S
combina due relazioni aventi uno o più
attributi in comune, generando una nuova
tabella le cui righe contengono sia gli
attributi di R che quelli di S e abbinano le
sole righe di R e di S con valori identici negli
attributi comuni; gli attributi comuni di R e di
S sono presenti una sola volta nelle righe
della congiunzione
Le operazioni relazionali
Congiunzione (join interno)
A
B
C
1
2
3
6
7
8
9
7
8
5
7
9
B
C
D
2
3
4
2
3
5
2
4
12
7
8
10
A
1
1
6
9
B
2
2
7
7
C
3
3
8
8
D
5
4
10
10
Le operazioni relazionali
Congiunzione (join esterno)
Il join esterno è una congiunzione che
restituisce le righe dell’una e dell’altra
anche se non sono presenti valori uguali per
gli attributi comuni. Il join esterno può essere
left join quando elenca comunque tutte le
righe della prima tabella congiungendo, tra
le righe della seconda, solo quelle per le
quali si trovano valori corrispondenti per gli
attributi comuni
Le operazioni relazionali
Congiunzione (join esterno)
R
A
B
C
B
C
D
1
2
3
2
3
4
6
7
8
2
3
5
9
7
8
2
4
12
5
7
9
7
8
10
R left join S
R right join S
S
R full join S
A
B
C
D
A
B
C
D
A
B
C
D
1
2
3
5
1
2
3
5
1
2
3
5
1
2
3
4
1
2
3
4
1
2
3
4
6
7
8
10
2
4
12
2
4
12
9
7
8
10
6
7
8
10
5
7
9
9
7
8
10
6
7
8
10
9
7
8
10
5
7
9
Integrità referenziale
L’integrità referenziale è 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
tabelle e per eliminare gli errori di inserimento,
cancellazione o modifica). Viene rispettata quando
per ogni valore non nullo della chiave esterna,
esiste un valore corrispondente della chiave
primaria nella tabella associata.
Scarica

Diapositiva 1