Sei sulla pagina 1di 41

Basi di Dati

docente: Michele Melchiori


email: michele.melchiori@unibs.it

INTR-SI 1
Basi di Dati

Materiale didattico di supporto (slide), news, esiti di


esami:

Piattaforma di e-learning UNIBS

INTR-SI 2
Presentazione del corso
Obiettivi

Fornire conoscenze su:

• Concetti e modelli per le Basi di Dati

• Metodi e strumenti e per la progettazione BD

• Interrogazione delle BD e integrazione con le applicazioni

LABORATORIO: acquisire esperienza su sw specifici per le basi di


dati.

Esercitazioni specifiche: ing. Maddalena Germinario


INTR-SI 3
Modalità di esame
Modalità standard
Sempre possibile
Tema d’esame scritto su:
1) Argomenti di teoria (peso 1/3)
2) Esercizi di progetto e interrogazione di BD (peso 2/3)

Modalità progetto (da confermare più avanti nel semestre)


Solo per frequentanti che chiudono completamente l’esame di
BD entro la Sessione di Luglio 2021;

1) Tema d’esame scritto solo su Argomenti di teoria (peso 1/3)


2) Progetto di gruppo sulla progettazione e realizzazione di una
applicazione software di BD e presentazione (peso 2/3)
INTR-SI 4
Testo adottato
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone
BASI DI DATI: MODELLI E LINGUAGGI DI
INTERROGAZIONE
McGraw-Hill Italia

INTR-SI 5
Introduzione
Base di Dati (informalmente): è una collezione organizzata di
dati
Alcuni Tipi di Basi di Dati:
Tradizionali: Basi di dati numerici e testuali
Basi di dati multimediali
Geographic Information Systems (GIS)
Data Warehouse, data lake
Real time (controllo di processi industriali)
NoSQL, ad esempio per applicazioni Big Data (MongoDB, Cassandra,
SAP HANA,…)

Alcuni settori di impiego: Aziende, SettoreFinanziario, Web, Medicina,


Scientifico, SocialNetworks, Telefonico, ECommerce, Automotive, ...
A supporto di sistemi AI e processi di data science.

INTR-SI 7
Sistema Informativo
Contestualizziamo il concetto di base di dati:

Ogni organizzazione è dotata di un Sistema Informativo: un insieme


di
- risorse, umane e materiali
- di attività e di strumenti
per gestisce informazioni necessarie a raggiungere gli scopi
dell’organizzazione stessa

SISTEMA: per indicare che è un insieme organizzato di risorse,


attività e strumenti che interagiscono tra essi per conseguire obiettivi

INFORMATIVO: per precisare che è finalizzato alla gestione delle


informazioni
INTR-SI 8
Funzioni di un Sistema Informativo

 Raccolta, acquisizione

 Archiviazione, conservazione
di informazioni
 Elaborazione

 Distribuzione e scambio

INTR-SI 9
Informazioni gestite da SI

 Riguardano il funzionamento dell’organizzazione (es.,


clienti, prodotti, fatture, fornitori, personale,…)

 Organizzate su livelli gerarchici e relativi alle varie unità


dell’organizzazione

 Costituiscono la base per effettuare attività operative e


prendere decisioni (business intelligence)

INTR-SI 10
Codifica delle informazioni

 Nelle attività standardizzate dei sistemi informativi,


sono state introdotte col tempo forme di
organizzazione e codifica delle informazioni.

 Ad esempio, nei servizi anagrafici sono state


introdotte, nel tempo, informazioni sempre più
precise per identificare una persona:
» nome e cognome;
» estremi anagrafici;
» codice fiscale;

INTR-SI 11
Dati e informazioni

 dato : ciò che è immediatamente presente alla


conoscenza prima di ogni elaborazione (valore o
misura).

 informazione : notizia, elemento che consente di


avere conoscenza più o meno esatta di fatti,
situazioni, modi di essere (interpretazione di dati).

INTR-SI 12
Dati e informazioni

 Quindi, i dati sono fatti elementari, informazioni


codificate, che hanno bisogno di essere interpretati
per fornire conoscenza

Esempio
‘Mario’ ’275’ su un foglio di carta sono due dati.
Se il foglio di carta viene fornito in risposta alla
domanda “A chi mi devo rivolgere per il problema X;
qual è il suo numero di telefono?”, allora i dati
possono essere interpretati ed arricchire la
conoscenza.

INTR-SI 13
Caratteristiche dei Dati

Sono una risorsa strategica per le organizzazioni

 Possibilità di rappresentazione precisa

 Possibilità di elaborazione automatica

INTR-SI 14
Sistema Informatico

Sottoinsieme del sistema informativo finalizzato al


trattamento AUTOMATICO dell’informazione.

L’esistenza del sistema informativo è in parte


indipendente dalla sua automatizzazione.

Il sistema informatico è quindi la parte del sistema


informativo che gestisce informazioni per mezzo della
tecnologia informatica.

INTR-SI 15
Collocazione dei Sistemi Informativi

Gerarchia di sistemi:

Contesto Sistema Sistema Sistema Informatico


Sistema
di Business Azienda Organizzativo Informativo (con Tecnologia
dell’Informazione, ICT)

INTR-SI 16
Collocazione dei Sistemi Informativi

 Contesto di business: comprende l’azienda e tutto


ciò che influisce sul suo successo (concorrenti, fattori
ambientali, fornitori, clienti, etc.)
 Sistema azienda: strutture organizzative e processi
aziendali (o di business) collegati, per la produzione di
servizi / prodotti in un contesto di business per clienti
interni o esterni all’organizzazione.
 Processo aziendale (o di business): insieme di
attività che utilizzano risorse (informazioni, materiali,
persone) per fornire servizi/prodotti ai clienti

INTR-SI 17
Collocazione dei Sistemi Informativi

 Sistema Organizzativo: insieme di risorse e regole per


lo svolgimento di processi aziendali (o di business)
 Sistema Informativo: dedicato alla gestione ed
elaborazione delle informazioni utilizzate dai processi
aziendali
 Sistema informatico: porzione automatizzata del SI
che gestisce informazioni mediante IT
 Tecnologie della informazione (IT): hardware
(calcolatori, workstation, reti di comunicazione, supporti
di memorizzazione, apparati di trasmissione) e software
(di base, applicativo)
INTR-SI 18
Schema generale dei SI

PROCESSO 1 PROCESSO 2 ... PROCESSO N

DBMS

BASE DI DATI

INTR-SI 19
Schema generale dei SI
 Processi di elaborazione: automatizzano attività aziendali e
sono costituiti da programmi scritti in opportuni linguaggi di
programmazione

 Base di dati

 Tecnologia DBMS (Data Base Management System) per la


CONDIVISIONE della BD da parte dei processi
» organizzazione logica dei dati (secondo un modello
definito)
» accesso regolato e standardizzato ai dati (linguaggi di
interrogazione, sicurezza e integrità dei dati)

INTR-SI 20
Processi di elaborazione

 Un processo di elaborazione esegue operazioni/azioni


sulla base dei dati
 Modalità di esecuzione dei processi di elaborazione:
» Batch (differita)
» On-line (immediata)
 Classificazione
» Ruolo nel SI: funzioni primarie, funzioni di servizio
» Azione sulla BD: funzioni di aggiornamento, funzioni
di interrogazione

INTR-SI 21
Base di Dati
(Una definizione più precisa)
 Raccolta di dati:
» strutturati e permanenti
» raggruppati in insiemi omogenei in relazione tra loro
(classi)
» organizzati con la minima ridondanza
» per essere usati da applicazioni diverse
» in modo controllato

– RAPPRESENTATI CON UN FORMATO PREDEFINITO


– ASSOCIAZIONI
– SUPPORTA USI MOLTEPLICI
– CONTROLLO DI SISTEMA SW (DBMS) per una
gestione efficiente e per proteggerli da utenti non
autorizzati, da accessi concorrenti, da malfunzionamenti
hw/sw INTR-SI 22
DBMS - Data Base Management System
(Sistema di gestione di basi di dati)

Sistema (prodotto software) in grado di gestire


collezioni di dati che siano (anche):
» grandi di dimensioni (molto) maggiori della
memoria centrale dei sistemi di calcolo utilizzati
» persistenti con un periodo di vita indipendente
dalle singole esecuzioni dei programmi che le
utilizzano
» condivise utilizzate da applicazioni diverse
garantendo affidabilità e privatezza. Come ogni
prodotto informatico, un DBMS deve essere efficiente
ed efficace.
INTR-SI 23
Condivisione

MOTIVAZIONI per condividere basi dati in una


organizzazione tra diversi uffici/settori:

 Ogni organizzazione è suddivisa in settori o comunque


svolge più attività. A ciascun settore o funzione aziendale
corrisponde un (sotto-)sistema informativo.

 Possono esistere sovrapposizioni fra i dati di interesse dei


vari settori (es., l’anagrafica dei fornitori è di interesse sia
del Magazzino che della Contabilità).

 La base di dati è quindi una risorsa integrata e


condivisa fra i vari settori aziendali.
INTR-SI 24
Condivisione (segue)
CONSEGUENZE:
 L’integrazione e la condivisione permettono di ridurre
la ridondanza (evitando ripetizioni) e, di
conseguenza, le possibilità di incoerenza (o
inconsistenza) fra i dati.

 Poiché la condivisione dei dati non è mai totale i


DBMS prevedono meccanismi di definizione della
privatezza dei dati e di limitazioni all’accesso
(autorizzazioni).

 La condivisione richiede un opportuno coordinamento


negli accessi contemporanei ai dati: controllo della
concorrenza. INTR-SI 25
Ruoli

 Progettisti di BD e amministratore di BD (DBA)

 Progettisti e programmatori di applicazioni

 Utenti:
» finali, eseguono applicazioni predefinite
» casuali, usano linguaggi interattivi

INTR-SI 27
Ruoli

Analista/Progettista

Modelli grafici di rappresentazione


Base
Dati INTR-SI 28
Ruoli
Utente (finale)

Utente (casuale)

console SQL
applicazione

tool di
DBMS
amministrazione

Amministratore BD

INTR-SI 29
Rappresentazione dei dati nei DBMS

 I DBMS introducono rappresentazioni dei dati a livelli di


astrazione diversi

 Questo meccanismo consente di realizzare l’indipendenza dei


dati dalla loro rappresentazione fisica.

 In pratica questo significa che, i programmi software, e gli utenti,


fanno riferimento ad una rappresentazione di livello più astratto
(livello più alto), e la rappresentazione fisica (livello più basso)
può essere modificata senza necessità di modificare quella su
cui operano i programmi.

 Per definire rappresentazioni dei dati, è necessario introdurre il


concetto di modello dei dati.
INTR-SI 30
Modello dei dati
 insieme di costrutti, possibilmente grafici, utilizzati per
rappresentare la struttura dei dati di interesse

 componente fondamentale: meccanismi di strutturazione


(o costruttori di tipo)

 come nei linguaggi di programmazione sono presenti


meccanismi che permettono di definire nuovi tipi di dato a
partire da tipi più semplici, così ogni modello dei dati
dispone di particolari costruttori

 ad esempio, il modello relazionale prevede il costruttore


relazione, che permette di organizzare i dati in insiemi
omogenei

INTR-SI 31
Modello dei dati
ESEMPIO

attributo

entità

associazione

costruttori del modello schema (struttura dei dati di interesse)


=regole di composizione INTR-SI 32
Schemi e istanze

In ogni base di dati è caratterizzata da due aspetti:

 lo schema: sostanzialmente invariante nel tempo,


descrive la struttura dei dati (aspetto intensionale);
(DESCRITTO SECONDO UN MODELLO DI DATI)

 l’istanza: costituita dai valori attuali dei dati, che


possono variare molto nel corso del tempo (aspetto
estensionale);

INTR-SI 33
Due tipi (principali) di modelli

 Modelli logici: utilizzati nei DBMS per


l’organizzazione dei dati; ad essi fanno riferimento i
programmi; sono indipendenti dalle strutture fisiche;
Esempi: relazionale, ad oggetti; (modelli di interesse
storico, ma superati: reticolare, gerarchico)

 Modelli concettuali: permettono di rappresentare i


dati in modo indipendente dal sistema (DBMS);
descrivono concetti della porzione di mondo reale di
interesse; sono utilizzati nelle fasi preliminari di
progettazione;
il più noto è il modello Entity-Relationship
INTR-SI 34
Architettura ANSI-SPARC a 3 livelli
• Proposta di architettura standardizzata per DBMS

utente applicazione applicazione utente utente

Schema Schema Schema


esterno esterno esterno
livelli di astrazione

Schema logico

Schema interno (fisico)

BD
(istanza) INTR-SI 35
Architettura ANSI/SPARC: schemi

schema logico: descrizione dell’intera base di dati nel


modello logico “principale” del DBMS

schema fisico: rappresentazione dello schema logico


per mezzo di strutture fisiche di memorizzazione

schema esterno: descrizione di parte della base di


dati in un modello logico (“viste” parziali, derivate,
anche in modelli diversi)

INTR-SI 36
Architettura ANSI/SPARC:
Indipendenza dei dati

fisica: il livello logico e quello esterno sono indipendenti


da quello fisico; in base a questa proprietà è possibile
modificare, entro certi termini, le strutture fisiche di
memorizzazione senza alterare gli schemi logico e
esterni

logica: il livello esterno è indipendente da quello logico


» aggiunte di schemi esterni o modifiche a essi non
richiedono modifiche del livello logico;
» modifiche allo schema logico (es. aggiunte di elementi)
che lascino inalterato lo schema esterno sono
trasparenti (cioè possono essere apportate senza
dover modificare nulla sul livello esterno) INTR-SI 37
Classificazioni di DBMS
 Modello dei dati: DBMS relazionali, DBMS Object-
Oriented, (DBMS reticolari, DBMS gerarchici),
NoSQL (vari modelli dei dati: grafo, albero,
associativo,…)

 Numero di utenti: DBMS mono-utente (tipicamente


su PC) vs. DBMS multi-utente (più utenti
concorrentemente)

 Numero di siti su cui la BD è distribuita: centralizzato


(su un solo calcolatore) vs. distribuito (BD e DBMS
su molteplici calcolatori)
INTR-SI 38
Linguaggi per interagire con le Basi di
Dati

 Testuali interattivi (SQL)


 Con comandi immersi in un linguaggio ospite (Pascal, C,
Cobol)
 Con comandi immersi in un linguaggio ad hoc (Oracle
PL/SQL)
 Con interfacce amichevoli non testuali (Access)

INTR-SI 39
SQL, un linguaggio testuale di
interazione con la base dati
Richiesta (QUERY):

SELECT Corso, Aula, Piano


FROM Aule A, Corsi C
WHERE A.Nome = C.Aula
AND Piano="Terra"

Risultato:
Corso Aula Piano
Reti N3 Terra
Sistemi N3 Terra

INTR-SI 40
Codice SQL “immerso“ in linguaggio general
purpose (es., embedded SQL in Pascal)
write('nome della citta''?'); readln(citta);
EXEC SQL DECLARE P CURSOR FOR
SELECT NOME, REDDITO
FROM PERSONE
WHERE CITTA = :citta ;
EXEC SQL OPEN P ;
EXEC SQL FETCH P INTO :nome, :reddito ;
while SQLCODE = 0 do begin
write('nome della persona:', nome, 'aumento?');
readln(aumento);
EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO +
:aumento
WHERE CURRENT OF P
EXEC SQL FETCH P INTO :nome, :reddito
end;
EXEC SQL CLOSE CURSOR P
INTR-SI 41
SQL immerso in linguaggio ad hoc
(Oracle PL/SQL)
declare Stip number;
begin
select Stipendio into Stip
from Impiegato
where Matricola = '575488'
for update of Stipendio;
if Stip > 30 then
update Impiegato set Stipendio = Stipendio * 1.1 where Matricola = '575488';
else
update Impiegato set Stipendio = Stipendio * 1.15 where Matricola = '575488';
end if;
commit;
exception
when no_data_found then
insert into Errori
values('Non esiste la matricola specificata',sysdate);
end;
INTR-SI 42
Interazione grafica (Microsoft Access)

INTR-SI 43

Potrebbero piacerti anche