Sei sulla pagina 1di 54

1

Basi di Dati - II
Corso di Laurea in Informatica
Anno Accademico 2021/2022

Alessandra Raffaetà
raffaeta@unive.it

2. Modellazione e Progettazione Corso di Basi di Dati


Progettazione e Modellazione 2

Progettare una base di dati significa progettare la


- struttura dei dati
- applicazioni

La progettazione della struttura dei dati è l'attività fondamentale

Richiede di specificare un modello della realtà di interesse (universo del


discorso) quanto più possibile fedele

Per questo ci concentreremo sulla modellazione:


- cosa significa definire un modello?
- cosa si modella?
- come si modella (quale formalismo)?

2. Modellazione e progettazione Corso di Basi di Dati


3

Modello dei Dati e Progettazione


Modelli Informatici 4

Definizione: Un modello astratto è la rappresentazione formale di idee e


conoscenze relative a un fenomeno.

Aspetti di un modello:

il modello è la rappresentazione di certi fatti;

la rappresentazione è data con un linguaggio formale;

il modello è il risultato di un processo di interpretazione, guidato dalle idee


e conoscenze possedute dal soggetto che interpreta.

2. Modellazione e progettazione Corso di Basi di Dati


Progettazione di una BD 5

ANALISI DEI REQUISITI

PROGETTAZIONE CONCETTUALE

PROGETTAZIONE LOGICA

PROGETTAZIONE FISICA

Ciascuna di queste fasi è centrata sulla modellazione

La modellazione verrà discussa quindi con riferimento alla problematica della


progettazione delle basi di dati

2. Modellazione e progettazione Corso di Basi di Dati


6

Modellazione concettuale
Aspetti del Problema 7

Quale conoscenza del dominio del discorso si rappresenta?

(aspetto ontologico)

Con quali meccanismi di astrazione si modella?

(aspetto logico)

Con quale linguaggio formale si definisce il modello?

(aspetto linguistico)

Come si procede per costruire un modello?

(aspetto pragmatico)

2. Modellazione e progettazione Corso di Basi di Dati


8

Cosa si modella?
Cosa si modella? 9

Conoscenza concreta
I fatti

Conoscenza astratta
Struttura e vincoli sulla conoscenza concreta

Conoscenza procedurale
Le operazioni di base
Le operazioni degli utenti

Comunicazioni
Come si comunicherà con il sistema informatico

Nel seguito l'attenzione sarà sulla conoscenza concreta e astratta.

2. Modellazione e progettazione Corso di Basi di Dati


Cosa si modella: la conoscenza concreta 10

Fatti specifici che si vogliono rappresentare:

– le entità con le loro proprietà,

– le collezioni di entità omogenee e

– le associazioni fra entità.

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Entità e Proprietà 11

Le entità sono ciò di cui interessa rappresentare alcuni fatti (o proprietà):


oggetti concreti, oggetti astratti, eventi

Es.: un libro, una descrizione bibliografica, un prestito

Le proprietà si distinguono dalle entità poiché sono fatti che interessano solo
in quanto descrivono caratteristiche di determinate entità

Es.: indirizzo che interessa solo in quanto indirizzo di un utente

Nota: Un’entità non coincide con i valori delle sue proprietà

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Entità e Proprietà 12

Una proprietà è una coppia <Attributo, valore di un certo tipo>.

Classificazione delle proprietà

atomica o strutturata

univoca / multivalore

totale / parziale

Esempi:

nome (atomica, univoca, totale)

residenza = [indirizzo, cap, città] (strutturata)

recapiti telefonici (multivalore, parziale)

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Collezioni di entità 13

Tipi di entità: ogni entità ha un tipo che ne specifica la natura (identifica


caratteristiche: proprietà e dominio relativo)

Ad es. Antonio ha tipo Persona con proprietà


- Nome: string
- Indirizzo: string


Collezione (classe): un insieme variabile nel tempo di entità omogenee (dello


stesso tipo).

Ad es. Studenti: insieme di tutti gli studenti nel dominio del discorso.

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: esempi di tipi di entità 14

Tipo Entità Proprietà

Studente Nome, AnnoNascita, Matricola, e-mail, ...

Esame Materia, Candidato, Voto, Lode, ...

Auto Modello, Colore, Cilindrata, Targa, ...

Descrizione bibliografica Autori, Titolo, Editore, Anno, ...

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Esempio di Collezioni 15

Descrizioni
Autori
Bibliografiche

Nome = “Italo Calvino” a1 d1 Titolo = “Il Barone rampante”

Nazionalità = "Italiano" Editore = “Einaudi"

d2 Titolo = “Le città invisibili”

Nome = “Zerocalcare" Editore = “Einaudi"


a2

Nazionalità = "Italiana" d3
Titolo = “La profezia dell’armadillo”

Editore = “Bao Publishing”

2. Modellazione e progettazione Corso di Basi di Dati


Scelta delle entità e delle proprietà 16

Certi fatti possono essere interpretati come proprietà in certi contesti e come
entità in altri, per esempio:

Descrizione bibliografica con proprietà


Autori, Titolo, Editore, LuogoEdizione, Anno

oppure

Autore con proprietà Nome, Nazionalità, AnnoNascita, ...

Editore con proprietà Nome, Indirizzo, e-mail, ...

Descrizione bibliografica con proprietà Titolo, Anno,...

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Gerarchie 17

Spesso le collezioni di entità sono organizzate in una gerarchia di


specializzazione/generalizzazione (si parla anche di sottoclassi e
superclassi)

Es: nella BD della biblioteca la collezione degli Utenti può essere


considerata una generalizzazione di Studenti e Docenti

Due importanti caratteristiche delle gerarchie:

ereditarietà delle proprietà

inclusione: se la collezione C1 specializza C2, gli elementi di C1 sono un


sottoinsieme degli elementi di C2

2. Modellazione e progettazione Corso di Basi di Dati


Problema: scelta delle sottoclassi 18

la classe degli studenti universitari è una generalizzazione delle classi:

matricole e laureandi,

studenti in corso e studenti fuori corso,

studenti veneziani e studenti fuori sede,

Attenzione: 

“un laureando è uno (is-a) studente”

è diverso da

“Mario è uno studente!”

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza concreta: Associazioni 19

Un’istanza di associazione è un fatto che correla due o più entità,


stabilendo un legame logico tra di loro.

la descrizione bibliografica con titolo “Basi di Dati” riguarda il


documento con collocazione “D3-55-2”

l’utente “Tizio” ha in prestito una copia della “Divina Commedia”

Un’associazione R(X, Y) fra due collezioni di entità X ed Y è un insieme di


istanze di associazione tra elementi di X e Y, che varia in generale nel tempo.
Il prodotto cartesiano (X × Y) è detto dominio dell’associazione.

2. Modellazione e progettazione Corso di Basi di Dati


Associazioni: Esempio 20

Descrizioni
Autori HaScritto
Bibliografiche

Titolo = “Il barone rampante"


d1
Nome = “Italo Calvino” a1
Editore = “Einaudi"
Nazionalità = "Italiana"
d2 Titolo = “Le città invisibili”

Editore = “Einaudi"
Nome = “Zerocalcare" a2
d3 Titolo = “La profezia
Nazionalità = "Italiana" dell’armadillo"
Editore = “Bao Publishing”

Collezione Associazione Collezione

2. Modellazione e progettazione Corso di Basi di Dati


Tipi di associazione 21

Un’associazione è caratterizzata dalle seguenti proprietà strutturali:


molteplicità (o cardinalità)
totalità.

2. Modellazione e progettazione Corso di Basi di Dati


Tipi di associazione: Molteplicità 22

Vincolo di univocità: 


Un’associazione R(X, Y) è univoca da X a Y se per ogni elemento x di X
esiste al più un elemento di Y che è associato ad x; se non vale questo
vincolo, l’associazione è multivalore da X a Y.

Cardinalità
R(X,Y) è (1:N) se essa è multivalore da X a Y ed univoca da Y a X
R(X,Y) è (N:1) se essa è univoca da X a Y e multivalore da Y a X
R(X,Y) è (N:M) se essa è multivalore da X a Y e multivalore da Y a X
R(X,Y) è (1:1): se essa è univoca su da X a Y e univoca da Y a X.

2. Modellazione e progettazione Corso di Basi di Dati


Tipi di associazione: Esempi 23

Frequenta(Studenti, Corsi)
ha molteplicità (N:M),

Insegna(Professori, Corsi)

ha molteplicità (1:N),

SuperatoDa(Esami, Studenti)

ha molteplicità (N:1),

Dirige(Professori, Dipartimenti)

ha molteplicità (1:1).

2. Modellazione e progettazione Corso di Basi di Dati


Tipi di associazione: Totalità 24

Vincolo di totalità: Un’associazione R(X, Y) è totale da X a Y se per ogni


elemento x di X esiste almeno un elemento di Y che è associato ad x; se non
vale questo vincolo, l’associazione è parziale da X a Y.

Esempio: Insegna(Professori, Corsi) è totale su Corsi in quanto non


può esistere un corso del piano di studi senza il corrispondente docente che lo
tiene, parziale su Professori, in quanto un professore potrebbe non tenere
corsi.

2. Modellazione e progettazione Corso di Basi di Dati


Tipi di associazione: Esempi 25

Tipi di associazioni fra Persone e Città:

NataA(Persone, Città)

ha cardinalità (N:1), totale su Persone e parziale su Città

HaVisitato(Persone, Città)

ha cardinalità (N:M), parziale su Persone e Città

ÈSindacoDi(Persone, Città)

ha cardinalità (1:1), parziale su Persone e Città

2. Modellazione e progettazione Corso di Basi di Dati


Cosa si modella: Conoscenza Astratta 26

Fatti generali che descrivono:

la struttura della conoscenza concreta


- collezioni: nomi, tipo degli elementi (nome, dominio, caratteristiche delle
proprietà), ...
- associazioni: nomi, collezioni correlate, proprietà strutturali
restrizioni sui valori possibili della conoscenza concreta e sui modi in cui essi
possono evolvere nel tempo (vincoli d’integrità),

regole per derivare nuovi fatti da altri noti.

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza astratta: Vincoli di Integrità 27

Vincoli di integrità statici: definiscono delle condizioni sui valori della


conoscenza concreta che devono essere soddisfatte indipendentemente da
come evolve l’universo del discorso

Es. Stipendio deve essere positivo, Matricola è una chiave, ...

Vincoli di integrità dinamici: definiscono delle condizioni sul modo in cui la


conoscenza concreta può evolvere nel tempo.

Es.: DataNascita non può cambiare, uno studente iscritto ad un corso di


laurea non può iscriversi nuovamente, ...

2. Modellazione e progettazione Corso di Basi di Dati


Conoscenza Astratta: Fatti derivabili 28

Fatti derivabili da altri:

L’età di una persona, ricavabile per differenza fra l’anno attuale e il suo
anno di nascita

La media dei voti degli esami superati da uno studente

2. Modellazione e progettazione Corso di Basi di Dati


29

Come si modella?
Come si modella? Modello dei dati a oggetti 30

Un modello dei dati è un insieme di meccanismi di astrazione per descrivere


la struttura della conoscenza concreta (schema)

Uno schema verrà dato usando una notazione grafica, variante dei cosiddetti
diagrammi ER (Entità-Relazione)

Nozioni fondamentali:

Oggetto, Tipo di oggetto, Classe

Ereditarietà, Gerarchia fra tipi, Gerarchia fra classi

2. Modellazione e progettazione Corso di Basi di Dati


Questioni terminologiche 31

dominio del discorso modello informatico

entità oggetto (entity instance)

tipo entità tipo oggetto (entity type)

collezione classe (entity)

associazione associazione o relazione

2. Modellazione e progettazione Corso di Basi di Dati


Oggetto 32

Ad ogni entità del dominio corrisponde un oggetto del modello informatico.

Un oggetto è un’entità software con stato, comportamento e identità.

Lo stato è modellato da un insieme di costanti o variabili con valori di


qualsiasi complessità.

Il comportamento è modellato da un insieme di procedure locali (con


parametri) chiamate metodi.

L'identità è associata all’oggetto dalla creazione e non viene modificata da


aggiornamenti dello stato.

Un oggetto può rispondere a richieste, dette messaggi, restituendo valori


memorizzati nello stato o calcolati con una procedura locale.

2. Modellazione e progettazione Corso di Basi di Dati


Tipo Oggetto 33

Il primo passo nella costruzione di un modello consiste nella classificazione


delle entità del dominio con la identificazione di collezioni omogenee e la
definizione dei tipi degli oggetti che le rappresentano.

Un tipo oggetto definisce:

componenti dello stato

metodi 


2. Modellazione e progettazione Corso di Basi di Dati


Tipo Oggetto (cont.) 34

Noi useremo solo un paio di concetti elementari del modello a oggetti:

Oggetto:

identità

stato (insieme di attributi)

no metodi, no incapsulamento, ecc.

2. Modellazione e progettazione Corso di Basi di Dati


Classi 35

Una classe è un insieme di oggetti dello stesso tipo, modificabile con operatori per
includere o estrarre elementi dall’insieme, associabile a vincoli di integrità.

Persone Persone

Nome Nome: string


Cognome Cognome: string
Persone DataNascita DataNascita: date
Sesso Sesso: (M; F)
Indirizzo Indirizzo: [Via: string; Citta: string]
LingueParlate LingueParlate: seq string

Una classe Persone a diversi livelli di specifica

2. Modellazione e progettazione Corso di Basi di Dati


Classi (cont.) 36

I tipi degli attributi possono essere

primitivi (int, real, bool, date, string)

non primitivi

Tipi non primitivi: ottenuti applicando i seguenti operatori ad altri tipi:

tipo record

[A1:T1; ..., An:Tn]

tipo enumerazione

(Val1; ...; Valn)

tipo sequenza

seq T

2. Modellazione e progettazione Corso di Basi di Dati


Associazioni 37

Le associazioni si modellano con HaSostenuto


un costrutto apposito Studenti Esami

HaInPrestito
Le associazioni possono avere Data
delle proprietà
Utenti Libri

Le associazioni possono essere


ricorsive Persone

HaMadre HaFigli
Associazioni n-arie
ÈMadreDi

2. Modellazione e progettazione Corso di Basi di Dati


Associazioni n-arie 38

Esempio: Si vuole rappresentare l’associazione tra Voli, Passeggeri e Posti. 



Per ogni volo, al momento dell’imbarco, viene assegnato un posto a ciascun
passeggero.

2. Modellazione e progettazione Corso di Basi di Dati


Descrizione di un caso 39

Si vogliono modellare alcuni fatti riguardanti una biblioteca universitaria:

le descrizioni bibliografiche dei libri, opere con un solo volume,

i termini del thesaurus (parole chiave),

le copie dei libri disponibili che corrispondono ad una descrizione bibliografica,

gli autori dei libri,

gli utenti della biblioteca,

i prestiti in corso.

2. Modellazione e progettazione Corso di Basi di Dati


Descrizione di un caso (cont.) 40

Le Descrizioni Bibliografiche dei libri a volume unico, sia già disponibili che quelli
ordinati ma non ancora consegnati alla biblioteca, sono caratterizzati dal Codice
ISBN (International Standard Book Number) che le identifica, titolo del libro, autori,
editore, anno di pubblicazione e termini che le descrivono.

Degli autori dei libri interessano il codice fiscale, il nome e cognome, la nazionalità
e la data di nascita.

I libri, disponibili in una o più copie ognuna identificata da un Codice, una stringa
con la loro collocazione e numero. 


Quando un utente prende un libro in prestito, si registrano i dati dell'utente, se non


sono già presenti, la data del prestito e la data di restituzione. Di un utente
interessano il codice fiscale, il nome, il cognome, l'indirizzo e i recapiti telefonici.
Un utente può avere più libri in prestito. I dati su un prestito interessano fino al
momento della restituzione del libro.

2. Modellazione e progettazione Corso di Basi di Dati


Descrizione di un caso (cont.) 41

Il thesaurus è un insieme di termini, e di associazioni fra di loro, che costituiscono il


lessico specialistico da usare per descrivere il contenuto dei libri. 


Fra i termini del thesaurus interessano le seguenti relazioni, fra le tante possibili:
Preferenza, per rimandi da termini standard a termini non standard e viceversa.
Per esempio:
- Elaboratore Standard (vedi) Calcolatore;
- Calcolatore Sinonimi (UsatoPer) Elaboratore, Calcolatrice, Stazione di
lavoro.
Gerarchia, per mettere in evidenza il rapporto specificità-generalità tra due
termini. Per esempio:
- Felino PiùSpecifico Gatto Leone Tigre;
- Gatto PiùGenerale Felino;

2. Modellazione e progettazione Corso di Basi di Dati


Esempio della Biblioteca 42

Specializza
<latexit sha1_base64="atZko1/Dj6fJTZN5ECC/YX4fVS8=">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</latexit>

Termine più Termini più


generale specifici
Indicizza Descrizioni
Termini
Bibliografiche

Standard Sinonimi

ÈSinonimoDi

HaScritto Descrive
Autori Libri

HaPreso Riguarda
Utenti Prestiti

2. Modellazione e progettazione Corso di Basi di Dati


Gerarchia tra tipi oggetto 43

Relazione di sottotipo ≤, tra i tipi oggetto (ordine parziale)

Se t è sottotipo di t’ ( t ≤ t’ )

gli elementi di tipo t possono essere usati in ogni contesto in cui possano
apparire elementi di tipo t’ (sostitutività).

In particolare:
gli elementi di t hanno tutti gli attributi degli elementi di t’
per ogni attributo A in t’, il suo tipo in t è sottotipo del suo tipo in t’.

2. Modellazione e progettazione Corso di Basi di Dati


Ereditarietà 44

Ereditarietà (inheritance): permette di definire un tipo oggetto a partire da un


altro “per differenza”

aggiunta di attributi

ridefinizione di attributi esistenti

Normalmente l’ereditarietà tra tipi si usa solo per definire sottotipi (ereditarietà
stretta); in questo caso:
gli attributi possono essere aggiunti
gli attributi possono essere ridefiniti solo specializzandone il tipo

2. Modellazione e progettazione Corso di Basi di Dati


Tipi definiti per ereditarietà 45

UnaPersona
Nome: string
AnnoNascita: int
LingueParlate: seq string
Possiede: Auto

UnoStudente
Matricola: int
AnnoIscrizione: int
Possiede: AutoUtilitiaria

2. Modellazione e progettazione Corso di Basi di Dati


Gerarchia tra classi 46

Fra le classi può essere definita una relazione di sottoclasse (talvolta detta
sottoinsieme), con le seguenti proprietà:

riflessiva, antisimmetrica e transitiva (ordine parziale).

Se C è sottoclasse di C’, allora le entità in C sono un sottoinsieme delle


entità in C’ (vincolo estensionale).

Se C è sottoclasse di C’, allora il tipo delle entità in C è sottotipo del tipo


degli elementi di C’ (vincolo intensionale)

2. Modellazione e progettazione Corso di Basi di Dati


Esempio 47

Utenti
NomeCognome: string
Indirizzo: string
RecapitiTelefonici: seq string

Docenti
TelefonoUfficio: string

2. Modellazione e progettazione Corso di Basi di Dati


Vincoli su sottoclassi 48

Vincolo di disgiunzione

A
B∩C=∅

B C

Vincolo di copertura

A
B∪C=A

B C

2. Modellazione e progettazione Corso di Basi di Dati


Vincoli su sottoclassi: Esempi 49

Persone Studenti

Maggiorenni SenzaPatente
ConPatente Matricole Laureandi

Sottoclassi scorrelate Sottoclassi disgiunte

Guidatori Persone

Automobilisti Camionisti Maggiorenni Minorenni

Sottoclassi copertura Sottoclassi partizione

2. Modellazione e progettazione Corso di Basi di Dati


Gerarchia Multipla 50

Persone

Giornalisti Fotografi

Fotogiornalisti

2. Modellazione e progettazione Corso di Basi di Dati


Descrizione di un caso (cont.) 51

Gli utenti possono essere studenti o docenti. Di uno studente interessa anche
la matricola e di un docente anche il telefono dell’ufficio.

Alcuni libri sono per la sola consultazione e possono essere presi in prestito
per un numero prefissato di giorni solo dagli utenti che sono docenti. 


2. Modellazione e progettazione Corso di Basi di Dati


Modello concettuale 52

Specializza
<latexit sha1_base64="qEsJX/GXtntJQ+sQ3DSQ2hvzhVM=">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</latexit>

Termine più Termini più


generale specifici Descrizioni
Bibliografiche
Termini Indicizza
ISBN :string ⌧K
Termine :string Titolo :string
Editore :string
Standard Sinonimi AnnoPubblicazione :int
Descrive
ÈSinonimoDi

Autori
Libri
CF :string ⌧K HaScritto
Codice :string ⌧K
Nome :string
Nazionalità :string
AnnoNascita :int
HaPreso Consultabili
Prestabili
PerGiorni :int
Prestiti
DataPrestito :date
Utenti DataRestituzione :date
Riguarda
CF :string ⌧K
Nome :string
Indirizzo :string
Telefoni :seq string InConsultazione Regolari

Consulta Riguarda
Studenti Docenti
Matricola :int ⌧K TelefonoUfficio :string

2. Modellazione e progettazione Corso di Basi di Dati


Descrittore di classe con vincoli 53

<latexit sha1_base64="dglG3GRphdQELw52l498HnvhRL8=">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</latexit>

Esami
Studenti
Codice :string ⌧K
Nome :string
Materia :string
Cognome :string
HaSostenuto Data :date
Matricola :string ⌧K
Voto :int
AnnoDiCorso :int
Lode :bool
⌧Invariant
⌧Invariant
{ length(self.Matricola) = 6 AND
{ 18 <= self.Voto <= 30 AND
match(self.Matricola, #) }
if self.Lode then self.Voto = 30 }

<<K>> chiave: sottoinsieme minimale di attributi che identifica l’oggetto

<<NOT NULL>> totalità

self.Nome = attributo Nome dell’oggetto stesso

In Esami potremmo usare self.HaSostenuto.Matricola

2. Modellazione e progettazione Corso di Basi di Dati


Altri formalismi grafici 54

2. Modellazione e progettazione Corso di Basi di Dati

Potrebbero piacerti anche