Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una...

38
Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei • ……….

Transcript of Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una...

Page 1: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

IntroduzioneESEMPI DI ARCHIVI DI DATI

• Elenco telefonico• Conti correnti• Catalogo libri di una biblioteca• Orario dei treni – aerei• ……….

Page 2: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Introduzione• Più utenti con ognuno il proprio archivio da gestire.• Riportare le modifiche (inserimenti, aggiornamenti,

cancellazioni, interrogazioni,…) in ogni archivio• Rischio di:

– Dimenticanze– Controlli incrociati per evitare inconsistenze– Sovraccarico (duplicazione) inutile di lavoro– Difficoltà nel condurre ricerche sui dati

• La soluzione è un archivio (base di dati) centralizzato e condiviso

Page 3: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Ferie

Page 4: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….
Page 5: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….
Page 6: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….
Page 7: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….
Page 8: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….
Page 9: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Che cosa è una Base di dati?

Base di Dati (data base): una collezione di informazioni, generalmente non omogenee, organizzate in una struttura che ne rende efficiente la ricerca e l'accesso automatici. Caratteristiche di un DB:• la persistenza della memorizzazione dei dati, usualmente suddivisi su più file e memorizzati su dispositivi di memoria secondaria di grandi capacità• funzioni per il recupero delle informazioni (data retrieval), per l'introduzione di nuove informazioni (data entry) e per l'aggiornamento o modifica di quelle già presenti (data editing).

Page 10: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il DBMS

Le funzionalità di un DB sono realizzate da un sistema software chiamato Data Base Management System (DBMS), che integra al suo interno più moduli:

- alcuni destinati ad interagire con gli utenti

- altri alla definizione ed al mantenimento della struttura

- altri alla elaborazione delle informazioni

- altri ancora al coordinamento con il sistema di gestione dei file ovvero col sistema operativo che ospita il DBMS.

Page 11: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

I tre livelli di un DB

• livello fisico: riguarda l’organizzazione delle informazioni nei file;

• livello logico: è il modo in cui il sistema rappresenta l’insieme delle informazioni che contiene

• livello esterno (viste): è il modo in cui la struttura concettuale del DB appare agli utenti.

Page 12: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Struttura di un DB:i tre livelli di astrazione

Livello fisico Livello logico Livello esterno

(viste)

Page 13: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il livello fisico per l’OS

Fisicamente un DB è una collezione di file, memorizzati in dispositivi di memoria di massa (dischi, nastri, ecc.).

Questi dispositivi organizzano le informazioni secondo una struttura che dipende dalla loro tipologia.

Nel caso dei dischi si parla di record fisici per indicare i settori in cui sono suddivise le tracce.

Questo livello non è di pertinenza del DB ma del sistema operativo.

Page 14: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il livello fisico per il DB

Logicamente ciascun file è suddiviso in record e campi:

record: una collezione finita di campi

campo: una coppia nome-valore

Vi sono record con campi di lunghezza fissa, meno compatti ma più facili da indirizzare, e con campi di lunghezza variabile che richiedono opportune tecniche di indirizzamento.

Page 15: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Campi, record e file

Cognome

Nome

Indirizzo

tel

n. sedute

Scheda sociorecord

campi

file

Page 16: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il livello logico

Al livello logico si situa il modo in cui il sistema rappresenta l'universo delle informazioni che contiene o che potrà contenere. Questo livello viene definito in fase progettuale, stabilendo lo schema concettuale di cui le informazioni concrete sono istanza.

Un metodo largamente impiegato per descrivere questo livello è il cosiddetto modello ENTITÀ/RELAZIONE.

Page 17: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il modello ENTITÀ/RELAZIONE

Consiste in una descrizione diagrammatica i cui concetti base sono:

ENTITÀ

RELAZIONE

attributi

Classi di oggetti omogenei

Classi di fatti omogenei che correlano istanze di ENTITÀ

Proprietà di ENTITÀ o RELAZIONE

Page 18: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Esempio di modello ENTITÀ-RELAZIONE

studente sostiene esame

Nome

Cognome

Matricola

Materia

Docente

CorsoVoto

Data

Page 19: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

RELAZIONE molti-a-uno

Una RELAZIONE si dice molti-a-uno se ad ogni istanza della seconda ENTITÀ corrispondono una o più istanze della prima.

1,11,nResidente persona

minimo

massimo

città

Page 20: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

RELAZIONE uno-a-uno

0,1 0,1uomo sposato donna

Una RELAZIONE è uno-a-uno se ad ogni istanza della prima ENTITÀ corrisponde esattamente un’istanza della seconda e viceversa

Page 21: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

RELAZIONE molti-a-molti

Una RELAZIONE si dice molti-a-molti se per ogni istanza di una delle ENTITÀ coinvolte possono esservi più di un’istanza dell’altra.

0,n 0,nstudente sostiene esame

Page 22: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

I modelli dei dati

Una specifica basata su ENTITÀ e RELAZIONE è astratta e deve essere realizzata utilizzando una struttura dati. Ve ne sono di diversi tipi:

• gerarchico: molto usato per i DB di tipo testuale

• reticolare: si interrga navigando; oggi riscoperto come “orientato agli oggetti”

• relazionale: basato sul concetto di relazione (tabella).

Page 23: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

NOTAZIONE

• Con il termine “RELAZIONE” denotiamo il concetto di relazione nel modello ENTITÀ/RELAZIONE mentre con il termine “relazione” (tutto in minuscolo) denoteremo il concetto di relazione insiemistica.

Page 24: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Il modello relazionale

Dati due insiemi A e B (esempio: A=Nomi, B=numeri telefonici) il prodotto cartesiano A B di A e B è l’insieme:

A B = {<a,b> | aA, bB}

es. Nomi NumTel = {<Filippo, 011 56 …>,

<Caterina, 095 78 …>, ….}

Una relazione insiemistica R su A e B è un sottoinsieme di A B

Un data-base di tipo relazionale è una collezione di relazioni insiemistiche. Queste relazioni si rappresentano come tabelle.

Page 25: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Una tabella

COGNOME NOME TEL.

Tanzi Rosario 095 89 ...

Federici Susanna 011 55 ...

De Bernardi Silvio 06 44 ...

schema nomi dei campi

tuple

Page 26: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Implementazione

Modello logico ENTITÀ-RELAZIONE DB relazionale

ENTITÀ tabella

attributo campo

RELAZIONE campi in comune

Studente Nome Corso Matricola

Esame Materia Data Voto Matricolaschemi

Page 27: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

studente sostiene esame

Nome

Cognome

Matricola

Materia

Docente

CorsoVoto

Data

Page 28: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Nota: la RELAZIONE “sostiene” è implementata mediante la ripetizione del campo “Matricola”

StudenteNome Corso MatricolaFilippo Chimica 9723456Caterina Lettere 8745666

… …

EsameMateria Data Voto MatricolaInorganica 23/02/00 24/30 9723456Lett. Greca 15/12/99 28/30 8745666Organica 08/07/99 22/30 9723456

Page 29: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Vincoli di integrità

I vincoli di integrità sono condizioni che debbono essere soddisfatte dalle istanze di una relazione (dagli elementi di una tabella) per evitare incoerenze e prevenire errori.

Iscrizioni

Studente Matricola Età

Verdi 10345 25

Prodi 76890 230

Salemi 76890 21

valore fuori dominio

replica scorretta

Page 30: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Le chiavi

Conoscenti

Cognome Nome

IndirizzoTelefono

eMail

Una chiave è un insieme di attributi i cui valori identificano univocamente le tuple (le righe di una tabella).

Cognome Nome Tel …..

Rossi Andrea 02 78 ...

Rossi Paolo 0347 17 ...

Sorbi Andrea 081 43 ...

Una relazione (tabella) può avere più chiavi; una chiave i cui valori non siano mai nulli e quindi individuino tutte le tuple si dice primaria.

Valentini ø 06 85 ...

Page 31: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Operazioni sulle relazioni (tabelle)

Il recupero dei dati e le operazioni di incrocio con cui un linguaggio di interrogazione permette di rispondere alle richieste dell’utente si basano su operazioni sulle relazioni (tabelle), tra le quali consideriamo:

• la proiezione ()

• la selezione ()

• il join naturale (incrocio)

Page 32: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Proiezione

La proiezione di una tabella è una tabella con un sottoinsieme delle colonne della prima.

A B C

a b c

a’ b’ c’

A C

a c

a’ c’

Proiezione su A, C

T A,C(T)

Page 33: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Selezione

La selezione P(T) costruisce una nuova tabella scegliendo le tuple della tabella T che soddisfano il criterio (predicato) P.

A B N

a b 3

a’ b’ 4

A B N

a b 3

a” b” 9

a” b” 9

P = N multiplo di 3

P(T)T

Page 34: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Criteri non atomici

Un criterio è un predicato sui valori degli attributi: questo predicato può essere “atomico”:

Nome = “Pippo”

oppure essere composto di parti atomiche collegate con operatori booleani:

Nome = “Pippo” OR Cognome = “Rossi”

Nome = “Pippo” AND Cognome = “Rossi”

Page 35: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

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 36: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Join naturale

Il join naturale di due relazioni (tabelle) che abbiano coordinate (nomi dei campi) in comune e una relazione (tabella) le cui coordinate sono l’unione delle coordinate delle relazioni (tabelle) date, e le cui tuple sono quelle i cui valori nelle coordinate comuni sono eguali

A B C

A B

B C

b c

b” c”

a b

a’ b’

a b c

Page 37: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Le interrogazioni (query)

Le interrogazioni sono espresse in una forma opportuna:

• attraverso un linguaggio di interrgazione, ad es. SQL:

• attraverso schemi di risposta (query by example), come ad esempio in Access.

In entrambi i casi il modulo di esecuzione della query compone opportunamente le operazioni proprie del DB su cui lavora (es. proiezione, selezione, join,…) per calcolare la risposta.

SELECT COGNOME,ANNO

FROM GIOCATO IN

WHERE GOL>30 AND SQUADRA = JUVENTUS

Page 38: Introduzione ESEMPI DI ARCHIVI DI DATI Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni – aerei ……….

Interrogazioni su DB relazionali

Interrogazione

tabelle

risultato

StudenteNome Corso MatricolaFilippo Chimica 9723456Caterina Lettere 8745666

… …

EsameMateria Data Voto MatricolaInorganica 23/02/00 24/30 9723456Lett. Greca 15/12/99 28/30 8745666Organica 08/07/99 22/30 9723456

SELECT Materia FROM Esame WHERE Matricola IN SELECT Matricola FROM Studente WHERE Nome = Filippo

MateriaInorganicaOrganica