• Non ci sono risultati.

Fondamenti di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica"

Copied!
59
0
0

Testo completo

(1)

Fondamenti di

Informatica

Prof. Fenza Giuseppe

DBMS – Introduzione ai DBMS

• Sez. 7.5: Introduzione

• Sez. 22.1: I criteri di archiviazione

• Sez. 20.4, 20.5: Come si usano, DB online

• Sez. 18.2, 22.2, 22.3: Query

(2)

Fogli elettronici (Excel) e DBMS

(Access)

• I Fogli Elettronici (documenti Excel) sono adatti a

– Trattare piccole quantità di dati – prevalentemente di tipo numerico – con elevate dipendenze reciproche

• es: bilancio di un’azienda dove, cambiando il valore in una cella si modificano a cascata i valori presenti in tante altre celle

• Inoltre i fogli elettronici

– hanno notevoli capacità analitiche, grazie alla disponibilità di funzioni predefinite e alla facilità di costruirne nuove

– permettono di visualizzare i dati attraverso grafici e diagrammi, aiutando l’analista nella ricerca di trends

(3)

Fogli elettronici (Excel) e DBMS (Access)

• Al contrario, i fogli elettronici sono poco adatti per svolgere

operazioni di

ricerca di informazioni in archivi

a cui accedono contemporaneamente anche migliaia di

utenti

• Spesso, infatti, è necessario “trattare”

grandi quantità di dati

di

tipo molto diversificato

(testi, numeri, date, immagini, …)

correlati, ma poco dipendenti gli uni dagli altri

es:

schedario di una biblioteca

, dove l’inserimento o

l’eliminazione di un volume non ha effetti sulle informazioni

che riguardano altri libri

(4)
(5)

Definizione di DB e di DBMS

BASE DI DATI (DB=Database)

•Collezione di dati (tipicamente molto corposa)

memorizzati in un computer

– organizzati in forma strutturata

condivisi tra più utenti (anche migliaia) e da questi accessibili contemporaneamente

sui quali è possibile operare efficientemente ricerche e aggiornamenti

DBMS (Data Base Management System)

•Software che permette di gestire un Database (es.: memorizzare, cancellare, aggiornare o interrogare i dati)

(6)

Organizzazione di una Base di Dati

Tutti i dati sono memorizzati in tabelle

• ogni tabella memorizza (in righe e colonne) informazioni su un

insieme di “oggetti” che hanno identica struttura (es. un insieme

di studenti, di libri, di film, di CD, …)

• righe (dette record, ennuple o tuple) ognuna corrispondente a un singolo dato (1 libro, 1 studente, …)

• colonne (detti campi o attributi), corrispondenti a singole informazioni relative ai dati (es. matricola, data di nascita, …)

Tabella con informazioni su una popolazione di STUDENTI

Matricola Cognome Nome Data di Nascita

276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971

(7)

DBMS Relazionali: creazione di un DB

Per utilizzare un DBMS

bisogna

costruire le tabelle che lo compongono

.

Stabilire

proprietà di validità delle tabelle

(chiavi,

vincoli di integrità), per evitare l'inserimento di dati

palesemente sbagliati

Creare gli

strumenti di lavoro

:

• Interrogazioni o Queries

• Maschere

• Report

(8)

Linguaggi per basi di dati

• Per accedere ai dati, un DBMS mette a disposizione linguaggi e

interfacce diverse

Linguaggi testuali interattivi (SQL)

Interfacce amichevoli (QBE senza linguaggio testuale)

Comandi (simili ad SQL) immersi in un linguaggio di

programmazione tradizionale, in questo caso detto ospite

(Pascal, C, Cobol, etc.)

Comandi (simili ad SQL) immersi in un linguaggio di

programmazione ad hoc, con altre funzionalità (p.es. per grafici

o report) e con l’ausilio di strumenti di sviluppo (p. es. gestione di maschere)

(9)

I Protagonisti

Progettisti e realizzatori di DBMS (a volte questa figura è svolta

dall'Amministratore della Base di Dati)

Amministratori della base di dati (DBA)

Progettisti e Programmatori di applicazioni

Utenti

utenti finali (terminalisti): eseguono applicazioni predefinite (transazioni)

utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi

(10)

Amministratore della Base di Dati

• Persona o gruppo di persone responsabile di

Progettare

Controllare centralmente il sistema

Amministrare e gestire il sistema

Garantire elevate prestazioni e alta affidabilità del sistema

Gestire le autorizzazioni di accesso ai dati

Definirne e modificare la struttura del DB

• Tutto questo mediando le esigenze degli utenti, spesso

(11)

Progettisti e Programmatori di applicazioni

Progetta e realizza i programmi per l’accesso ai dati

Scrive le transazioni per il terminalista

(12)

DataBase Management System (DBMS)

Un DBMS è un Sistema Software che gestisce collezioni di dati:

Grandi e persistenti

Condivise garantendo

Affidabilità

Privatezza

Efficienza ed efficacia

(13)

Le Basi di Dati sono … grandi e persistenti

• Il DB è di dimensioni molto maggiore della memoria centrale dei

sistemi di calcolo utilizzati

i dati devono quindi essere gestiti in memoria di massa

il limite è solo quello fisico dei dispositivi

• Il DB è persistente cioè i dati hanno un tempo di vita indipendente

dalle singole esecuzioni dei programmi che li utilizzano

(14)

Le Basi di Dati sono ... condivise

• Il DB è condiviso, cioè applicazioni e utenti diversi devono

poter accedere a dati comuni, anche contemporaneamente.

• In questo modo

Si riduce la ridondanza

Si evita l’inconsistenza. Si ha inconsistenza di dati quando in un

dato momento esistono due o più versioni di uno stesso dato che

non presentano lo stesso livello di aggiornamento.

Ø Questo si verifica quando un programma accede e aggiorna solo la propria copia di un dato, lasciando inalterate le altre copie dello stesso dato.

(15)

Gestione degli Accessi Condivisi

Problematiche legate alla “condivisione”

Alcune operazioni non interferiscono l’una con l’altra

(es.: la lettura di un estratto conto da più parti)

•Altre operazioni vanno eseguite non simultaneamente (prelievo e deposito di denaro). In questo caso c’è un meccanismo di “blocco” di un’operazione mentre è in corso un’altra operazione critica.

•Il DB può anche essere distribuito in più parti (luoghi fisicamente lontani)

(16)

I DBMS garantiscono ... affidabilità

Affidabilità (per le basi di dati):

resistenza a malfunzionamenti hardware e software

Il DBMS garantisce l’affidabilità dei dati, cioè è capace di

conservare praticamente intatto il contenuto della base di

dati, anche in presenza di guasti hardware e software.

• Presenta meccanismi sofisticati di backup/recovery con i quali è

(17)

I DBMS garantiscono ... privatezza

Per ogni utente è specificato il tipo di operazione che può

effettuare (autorizzazione dell’accesso)

accesso in lettura / scrittura / eliminazione / esecuzione

• Ad esempio, in un Database bancario:

Un cliente può leggere il suo estratto conto, ma non modificarlo,

se non tramite un’operazione di prelievo.

Un cliente non può leggere l’estratto conto di altri.

Lo sportellista può leggere e modificare solo alcune informazioni

sul conto di un cliente (non può cioè eseguire tutte le operazioni; ad esempio non può modificare l’importo del fido assegnato).

Il Direttore può leggere e modificare tutti i campi del conto

(18)

I DBMS debbono essere ... efficienti

Il

DBMS usa efficientemente le risorse disponibili

svolge tutte le operazioni utilizzando un insieme di

risorse di spazio (memoria principale e secondaria)

e di tempo (di esecuzione e di risposta) che sia

accettabile per gli utenti

rende produttive le attività degli utilizzatori,

offrendo servizi e funzionalità articolate, potenti e

flessibili

mette a disposizione un insieme di

strumenti

software che rendono veloce l’accesso ai dati

(19)

TABELLE

Per utilizzare un DBMS

bisogna innanzitutto costruire le

tabelle che lo compongono

.

Per prima cosa bisogna identificare il

tipo di informazione

(es. libri) da memorizzare e quali sono le sue

proprietà

(es.

titolo, autore, pagine, … ) pertinenti per l’applicazione.

Ad ogni proprietà (colonna o campo) va poi assegnato un

nome

, una

lunghezza

e una

categoria di dati

• Un’applicazione semplice può presentare anche una sola

tabella, ma più

spesso un DB è composto da più tabelle

,

(20)

TABELLE: Excel vs DB

• Nei fogli elettronici la posizione della cella è fondamentale: – A1, B5, etc.

• La struttura della tabella non è importante nei fogli elettronici:

– Nei DB è fondamentale perché la struttura identifica i vari dati.

• In un foglio elettronico le singole celle possono ospitare diversi tipi di

dati

– Nei database il formato, il tipo e la lunghezza va dichiarato

(21)
(22)

Le relazioni tra tabelle

• Per collegare tra loro le tabelle è necessario un campo CHIAVE che

identifica univocamente ogni record.

– Carta di Identità, – Codice fiscale

– Matricola per lo studente, – Etc..

• Il collegamento tra le tabelle è realizzato mediante il meccanismo della

CHIAVE ESTERNA

– I valori della chiave primaria della tabella principale sono duplicati

(23)

Tipi di Chiave

• Genericamente una chiave è un insieme di campi che identificano un

record;

CHIAVE PRIMARIA:

– È unica; – Non è nulla

(24)
(25)

Tipi di relazioni

Relazione uno a uno:

a un record della prima tabella

corrisponde un solo record della seconda;

Relazione uno a molti:

a un record della prima tabella

corrispondono più record della seconda;

Relazione molti a molti:

a più record della prima

(26)

Chiave

Chiave: insieme di campi che identifica

univocamente ogni singola riga di una tabella

Il vincolo di chiave deve essere soddisfatto da tutte

le istanze possibili dei dati

Non esistono

Non sono esistiti

Non esisteranno mai

due record con valori uguali in tutti i campi della

chiave

(27)

Esempio

• Es: in un Database di persone, in cui ad ogni persona viene associato

il proprio codice fiscale

non ci sono (non ci sono state e non ci saranno mai) due righe con lo stesso valore sul campo chiave Codice Fiscale…

… proprio perchè, nel mondo reale,

non ci sono

non ci sono state

non ci saranno mai

(28)

Esistenza delle chiavi

Una relazione, in quanto insieme matematico, per

definizione non può contenere tuple uguali

Ogni relazione ha almeno una chiave: l’insieme di

tutti i suoi attributi …

Una relazione possiede

almeno una chiave

,

ma potrebbe averne

anche più di una

.

La chiave

garantisce

l'accessibilità

a tutti i valori in una base

di dati e la loro univoca

identificabilità

.

permette di

stabilire "efficacemente" gli agganci

tra relazioni

diverse

(29)

Esempio

• Es: in un Database di studenti, Matricola è una chiave in quanto

(30)

Esempio di chiave (alternativa)

• ma anche Cognome+Nome+Nascita è chiave, in quanto

Non esistono 2 studenti che hanno uguali, contemporaneamente, nome, cognome e data di nascita

Si noti che non sono sufficienti ad essere chiave i campi

Cognome o Nome o Nascita

(31)

Esempio di NON CHIAVE

Nome+Corso non è una chiave,

in quanto nella relazione

compaiono due tuple (le ultime due) fra loro uguali (infatti è

possibile che due studenti con lo stesso nome di battesimo

seguano lo stesso corso)

(32)

Attenzione alle FALSE CHIAVI

• In questa particolare istanza non ci sono tuple uguali sui campi

Cognome e Corso:

– Per questa ISTANZA della relazione, Cognome+Corso

sembrerebbe essere una chiave minimale.

• Ma questa non è una proprietà sempre vera

– Infatti potrebbero iscriversi, in futuro, allo stesso corso studenti

(33)

Chiavi e valori nulli

In presenza di valori nulli, una chiave non garantisce

di poter identificare ogni singola tupla

di realizzare facilmente i riferimenti ad altre relazioni

TUTTI I CAMPI CHE FORMANO LA CHIAVE DEVONO PRESENTARE VALORI NON NULLI

• Quando ci sono più chiavi candidate?

Tra tutte le chiavi va scelta una chiave che viene definita

CHIAVE PRIMARIA.

(34)

Campo CONTATORE (o ID)

• Nel caso in cui

non è possibile individuare una chiave (molto raro)

si vuole inserire qualche valore NULLO in campi della chiave

si è in presenza di una chiave con molti campi e si vuole utilizzare una chiave più ‘‘snella’’

• si può utilizzare un campo extra con funzione di Chiave.

Tale campo (di tipo numerico) è detto CONTATORE o ID

Il DBMS assegna automaticamente al campo ID di ogni tupla, al momento del suo inserimento nella tabella, un valore intero (il suo numero progressivo di inserimento) diverso da quello già

(35)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(36)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(37)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(38)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(39)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(40)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(41)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(42)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(43)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(44)

Esempio

• La carriera dello studente con matricola 276545 è ricostruita

(45)

Vincoli di integrità

• Più in generale, esistono istanze di basi di dati che,

pur

essendo sintatticamente corrette

• …

non rappresentano informazioni ammissibili

per

l’applicazione di interesse

(46)
(47)

Una base di dati "scorretta": 1’ motivo

VALORI NON AMMISSIBILI

(48)

COMBINAZIONE NON AMMISSIBILE

(49)

DUPLICAZIONE NON AMMISSIBILE

(50)

Una base di dati "scorretta": 4’ motivo

INDESIDERABILE (valore assente in Corsi) INDESIDERABILE (valore assente in Studenti)

(51)

Vincolo di integrità

• Per evitare situazioni come le precedenti è stato introdotto il

concetto di vincolo d'integrità

Un vincolo d'integrità è una proprietà che è soddisfatta dalle

istanze che rappresentano informazioni corrette

Ad uno schema di Base di Dati associamo un insieme di vincoli

e consideriamo corrette (o lecite o ammissibili) le istanze che

(52)

Tipi di vincoli

Vincoli intrarelazionali

il loro soddisfacimento è definito rispetto ad una singola tabella

(relazione) di una Base di Dati

primi tre casi dell'esempio precedente

Vincoli interrelazionali

il loro soddisfacimento è definito rispetto a più di una tabella

(relazione) di una Base di Dati

quarto caso, nel quale l'anomalia è rimossa imponendo che uno

studente compaia nella relazione ESAMI solo se compare in quella STUDENTI. Analogamente, il corso per essere associato allo studente deve esistere nella relazione CORSI

I principali Vincoli Interrazionali sono i Vincoli d'Integrità Referenziale

(53)

Vincoli di tupla

I

vincoli di tupla

(casi 1 e 2 dell'esempio) esprimono

condizioni sui valori della singola tupla

Quando il vincolo riguarda il dominio di un singolo campo

si parla di

vincolo di dominio

ciò corrisponde a limitazioni sul dominio dell'attributo (caso 1)

un vincolo di tupla si implementa tramite

un'espressione

booleana

(1) "Un voto è un numero intero compreso tra 18 e 30":

• (Voto

³

18) AND (Voto

£

30)

(2) "O non c'è la lode O il voto è 30", cioè che la lode è

ammessa solo se il voto è 30:

(54)

Violazione vincolo di integrità referenziale

Quale agente ha rilevato l’infrazione?

(55)

Violazione vincolo di integrità referenziale

A chi appartiene l’auto oggetto dell’infrazione?

(56)

Vincolo di integrità referenziale

• È opportuno definire vincoli di integrità referenziale fra:

(Vincolo 1)

l’attributo AGENTE della tabella INFRAZIONI e

l'attributo Matricola, chiave della tabella AGENTI

(Vincolo 2)

gli attributi PROV e NUMERO della tabella INFRAZIONI

gli attributi PROV e NUMERO, chiave della tabella AUTO

(57)

Vincolo di integrità referenziale

• Un vincolo di integrità referenziale (“foreign key”) tra

– gli attributi X di una tabella R1 e

un’altra tabella R2

impone che i valori degli attributi X di R1 devono avere

esattamente un unico record corrispondente in R2.

• Ciò significa che gli attributi X in R1 devono corrispondere a una

chiave in R2

– Più record della tabella R1 possono però puntare allo stesso

(58)

Esempio (caso 1 – tabella corretta)

vincolo integrità referenziale fra

l’attributo AGENTE (X)

(59)

Esempio (caso 2 – tabella corretta)

vincolo integrità referenziale fra

gli attributi PROV e

NUMERO (X) della tabella INFRAZIONI (R

1

) e la tabella

AUTO (R

2

)

Riferimenti

Documenti correlati

● Fare riferimento alla pagina del corso per sapere di volta in volta quale è il proprio turno.. Per evitare i disagi che si sono verificati negli anni precedenti non saranno

This paper reviews the major (Calcium, Phosphorus, Potassium, Sodium, Chlorine, Sulphur, Magnesium) and the trace elements (Iron, Copper, Cobalt, Iodine, Manganese, Zync,

Available Open Access on Cadmus, European University Institute Research Repository.... European

Fig.. ste aree della Sardegna le cavità minerarie e le grotte di miniera sono di primaria importanza per molte specie di pipistrelli che trovano rifu- gio nel loro interno. La

In discussing Northanger Abbey it is essential to see that the problems Catherine, the heroine, has in understanding herself and her experience are not different from the problems

Jean Guiguet specifically identifies Virginia Woolf with her six protagonists: She is in love with words, like Bernard: in love with books, like Neville: a lover of action, like

Simona scarsa medio-bassa medio-tardiva rotonda blu scuro Sofia scarsa medio-elevata medio-precoce ovale blu scuro Speranza medio-scarsa media intermedia rotonda

Secondo Bobbio, questa impostazione, nella misura in cui prevede che la funzione del potere politico (del diritto positivo) sia quella di rafforzare e garantire,