db- sistemi informativi insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed...
TRANSCRIPT
![Page 1: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/1.jpg)
DB- Sistemi Informativi
Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione (azienda o istituzione).
![Page 2: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/2.jpg)
Dato <> Informazione
I dati sono registrazioni della descrizione di una qualsiasi caratteristica della realtà, su un supporto che ne garantisca la conservazione, la comprensibilità e la reperibilità.
L’ informazione produce variazioni nel patrimonio conoscitivo di un soggetto. Proviene dai dati, ma i dati devono essere inseriti in un contesto interpretativo
![Page 3: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/3.jpg)
DBMS(Database Management System)
Obiettivo: gestione strutturata di dati, organizzati in modo omogeneo.
Base di dati: Collezione di dati organizzati in modo coerente
(un insieme casuale di dati non è una base di dati !)
Modella alcuni aspetti del mondo reale Costruito con funzionalità ben precise, note fin
dall’inizio della progettazione.
![Page 4: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/4.jpg)
Esempi di basi dati:
Rubrica telefonica personale anagrafe segreteria studenti dell’università banca dati centrale del ministero delle finanze archivio di una biblioteca, di un laboratorio
d’analisi mediche, di un museo banca dati di una carta di credito banca dati delle prenotazioni dei voli di una
compagnia aerea
![Page 5: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/5.jpg)
Basi di dati: operazioni
Definizione della base di dati – quali informazioni rappresentare – quali relazioni tra le informazioni
Manipolazione– inserimento di dati– cancellazione di dati– aggiornamento (update)– interrogazione
Gestione di operazioni da parte di utenti multipli Protezione e sicurezza dei dati
![Page 6: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/6.jpg)
Livelli di rappresentazione
Livello fisico: come i dati sono memorizzati e organizzati su uno o più supporti di memoria secondaria
Livello logico: come i dati sono organizzati secondo il modello logico adottato (relazionale, gerarchico, ad oggetti etc.)
Livello concettuale: come i dati sono organizzati secondo uno schema concettuale
Livello esterno: come i dati appaiono o vengono presentati all’utente (possono essere anche programmi)
![Page 7: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/7.jpg)
Livelli di rappresentazione
Vista 1 Vista 2 Vista n
Livello logico
Livello fisico
Livello concettuale
![Page 8: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/8.jpg)
Figure professionali (1) DB designer
– schema concettuale (astratto) della base di dati
– mapping su un modello dei dati• gerarchico• relazionale• object oriented• ...
![Page 9: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/9.jpg)
Figure professionali (2)
DB programmer
(realizzazione della base di dati) DB administrator (gestione della base dati) Users
• utenti esperti (usano un linguaggio di interrogazione)
• utenti naive (interazioni predeterminate, forms)
• programmi
![Page 10: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/10.jpg)
Modello relazionale
I dati sono organizzati in relazioni le relazioni possono essere
interpretate/visualizzate come tabelle un database è un insieme di relazioni
![Page 11: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/11.jpg)
Rappresentazione tabellare dei dati: esempio Libro
N.Inv Autore
Titolo Anno_ed. Casa ed.
Colloc.
![Page 12: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/12.jpg)
Esempio rubrica
COGNOME NOME TEL.
Tanzi Rosario 095 89 ...
Federici Susanna 011 55 ...
De Bernardi Silvio 06 44 ...
![Page 13: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/13.jpg)
Modello relazionale
Relazione su due insiemi A e B è un sottoinsieme del prodotto cartesiano A x B
Esempio sposato_con Persone x Persone
figlio_di Persone x Persone vive_a Persone x Città Analogamente si possono considerare relazioni
tra molti insiemi: A1 x ….xAn
![Page 14: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/14.jpg)
Esempio di relazione Persone= {Paolo, Luca,Mario}
Città={Torino,Roma} Persone x Città Vive_a
Mario
Mario
Persone Città
Paolo
Paolo
Luca
Luca
Torino
Torino
Torino
Roma
Roma
Roma
Città
Persone
Paolo
LucaMario Roma
Torino
Torino
![Page 15: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/15.jpg)
Figlio di (Persone x Persone)
PersonePersone
Paolo
Carla
Mario Flavio
Luca
Anna
PersonePersone
Anna
Luca
Flavio Mario
Carla
Paolo
Sono relazioni diverse!
![Page 16: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/16.jpg)
Relazioni e Attributi
Attributi: nomi che specificano un ruolo in una relazione, esempi:
sposato_con(Marito, Moglie) figlio_di(Figlio, Genitore) vive_a(Nome,Citta,Provincia) libro(N.Inv, Autore, Titolo, Anno_edizione,
Casa_editrice, Collocazione) Gli attributi devono avere nomi differenti
![Page 17: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/17.jpg)
ESEMPIO DATABASE ESAMI
Prima idea: un’unica tabella:
ESAME(Nome,Cognome,Matricola,Titolo, Docente,Voto,Lode)
Nome Cognome Matricola Titolo Docente Voto LodeGiorgio Rossi st1234507 Informatica Olivetti 28 NOAnna Bianchi st3234508 Storia
dell'ArteFerrero 24 NO
Alberto Verdi st5534507 Informatica Olivetti 30 SIAnna Bianchi st3234508 Biologia I Monti 25 NOGiovanni Neri st2534599 Storia
dell'ArteFerrero 30 SI
![Page 18: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/18.jpg)
Il database contiene informazione ridondante:
per ogni esame sostenuto si ripetono tutti i dati dello studente
per ogni corso si ripetono titolo e docente
Organizzazione Inefficiente!
![Page 19: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/19.jpg)
Organizzazione migliore:
STUDENTE(Nome,Cognome,Matricola,Data di Nascita)
CORSI(Titolo,Docente,Codice Corso) ESAMI(Codice Corso,Voto,Lode,Matricola)
![Page 20: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/20.jpg)
Terminologia
DOMINIO: insieme di valori degli attributi– es. Nomi di persona, Nomi di città, Numeri
interi, stringhe di al più 80 caratteri
FORMATO: rappresentazione degli elementi di un dominio– es. tre cifre decimali per i reali
![Page 21: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/21.jpg)
SCHEMA DI RELAZIONE R(A1, …, A_n)
• R relazione• Ai attributi
ISTANZA DI RELAZIONE (o semplicemente
relazione )
r(R) = {<v1, v2, …, vn>}
t=<v1, v2, …, vn > : n-tupla I singoli valori vi appartengono al dominio dell’attributo Ai
![Page 22: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/22.jpg)
Istanza di relazione = insieme non ordinato di tuple– Non ci possono essere tuple ripetute– l’ordine delle tuple non conta
Database = insieme di istanze di relazioni
Terminologia alternativa:– tuple: records– attributi: campi
![Page 23: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/23.jpg)
La tabella rubricaRubrica(Cognome,Nome,Tel)
COGNOME NOME TEL.
Tanzi Rosario 095 89 ...
Federici Susanna 011 55 ...
De Bernardi Silvio 06 44 ...
schema nomi degli attributi
tuple
![Page 24: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/24.jpg)
Informazione incompleta: Valori Nulli
Il valore speciale “null” aggiunto a tutti i domini, per indicare assenza di valore indica: valore mancante, oppure valore sconosciuto
Esempio
PERSONE(Cognome,Nome,Indirizzo,Telefono)
Il valore di Telefono potrebbe essere null.
![Page 25: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/25.jpg)
Vincoli sulle Relazioni
I valori contenuti nelle tabelle possono essere soggetti a vari tipi di vincoli che dipendono dalla ‘realtà’ che si vuole rappresantare:
vincoli di dominio: valori dei singoli attributi vincoli di tupla: valori di attributi correlati in una
tupla vincoli di integrità valori di attributi in tuple
diverse (anche in relazioni diverse)
![Page 26: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/26.jpg)
Vincoli di dominio
vincoli sui valori dei singoli attributi (vincoli di dominio), es: dato ESAMI(Studente,Voto, Lode,Corso)
deve essere
Voto >=18 AND Voto <=30 Vincoli sul valore di un attributo data
![Page 27: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/27.jpg)
Vincoli di tupla
vincoli sui valori di attributi correlati, es: Data la relazione ESAMI come prima
deve essere
not (Lode = Yes) OR Voto = 30
equivalente a
Lode= No OR Voto = 30 Data la relazione
PAGAMENTI(Data,Importo,Ritenute,Netto)
deve essere
Netto = Importo - Ritenute
![Page 28: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/28.jpg)
Connettivi booleani: tavole di verità
A Not AVero FalsoFalso Vero
A B A And BVero Vero VeroVero Falso FalsoFalso Vero FalsoFalso Falso Falso
A B A Or BVero Vero VeroVero Falso VeroFalso Vero VeroFalso Falso Falso
Negazione
Congiunzione
Disgiunzione
![Page 29: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/29.jpg)
Relazioni boolene
not (A and B) = not (A) or not(B) not (A or B) = not (A) and not(B) La funzione imp (implica)
A imp B =def not(A) or B La funzione XOR (OR esclusivo)
A xor B =def (A or B) and not(A and B)
![Page 30: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/30.jpg)
Implicazione
Sono logicamente equivalenti: Se A allora B A solo se B A implica BEsempio: Se Mario viene alla festa Anna viene alla festa Mario viene alla festa solo se Anna viene alla festa Mario viene alla festa implica che Anna viene alla festa
Tutte vengono rappresentate con
not(A) or B
o equivalentemente con A imp B
![Page 31: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/31.jpg)
Esempio Vincolo (complesso)
Supponiamo che STUDENTE contenga anche gli attributi
Borsa di Studio: valori {Yes, No} Reddito (della famiglia): euro Residente (nella città sede univ.): {Yes, No}
Uno studente ha diritto ad una borsa se/solo se– ha una media >= 27 e un reddito <= 20000,
oppure– non è residente e ha una media >= 25 e un
reddito <=25000
![Page 32: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/32.jpg)
Codifica del Vincolo
(media >= 27) AND (reddito <= 20000) OR
((residente = NO) AND (media >= 25)
AND (reddito <=25000))
![Page 33: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/33.jpg)
Vincoli di chiave superchiave: sottoinsieme SK di attributi di una relazione per cui
se i j allora ti[SK] tj[SK]
Una superchiave identifica un’entità in modo univoco in una relazione
CHIAVE PRIMARIA = superchiave minimale
non ci possono essere righe diverse con la stessa chiave primaria
(Indichiamo in modo sottolineato gli attributi che formano la chiave primaria)
![Page 34: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/34.jpg)
VINCOLI DI INTEGRITA’
sull’entità : chiave primaria null integrità referenziale: consistenza tra tuple di
due relazioni integrità semantica: vincoli che dipendono dalla
realtà rappresentata (altro es. numero di libri in prestito a ciascun utente < 5, in una relazione in cui ogni prestito compaia come una tupla separata)
![Page 35: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/35.jpg)
Vincoli di Integrità referenziali
In un database relazionale le tabelle sono collegate tra loro tramite i valori di attributi correlati (o comuni)
Esempio – Il collegamento tra la relazione ESAMI e
STUDENTI puo’ essere espresso dall’attributo comune Matricola
– Il collegamento tra la relazione CORSI e ESAMI puo’ essere espresso dall’attributo comune Codice Corso
![Page 36: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/36.jpg)
Un vincolo di integrità referenziale tra un insieme di attributi X di una relazione R1 e una relazione R2 è soddisfatto se: i valori di ciascuna tupla di R1 per gli attributi X esistono come valori della chiave primaria di R2
In questo caso si dice anche che X è una chiave esterna di R1
![Page 37: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/37.jpg)
ESEMPIO: Vincoli di Integrità referenziale
STUDENTE(Nome,Cognome,Matricola,Data di Nascita)
CORSI(Titolo,Docente,Codice Corso) ESAMI(Codice Corso,Voto,Lode,Matricola)
Vincolo referenziale: tra Matricola di ESAMI e STUDENTE: i valori di Matricola di Esami devono esistere come valori della chiave primaria (Matricola di STUDENTE)
![Page 38: DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb6a497959361e8d68d6/html5/thumbnails/38.jpg)
Funzionalità del DBMS relazionale
Funzioni per– definizione della base di dati– inserimento / rimozione /aggiornamento di
informazioni• deve soddisfare i vincoli!
– Interrogazione Access DBMS relazionale in ambiente Office