Sei sulla pagina 1di 8

sistema infomativo: organizzione e gestione delle informazioni

sistema informatico: automatizzazione del sistema informativo


differenza tra dato e informazione: i dati da soli non hanno significato
vanno interpretati e correlati opportunamente e forniscono informazioni
una base di dati una collezione di dati utilizzati per rappresentare le informaz
ioni
Le basi di dati vengono concepite per gestire in maniera integrata e flissible l
e informazioni di interesse generale per diversi soggetti, limitando i rischi di
ridondanza e incoerenza
Un sistema di gestione di basi di dati (DBMS) un sistema software in grado di ge
stire collezioni di dati che siano grandi, condivise e persistenti assicurando
la loro affidabilit e privatezza.
un DBMS deve essere efficente e efficace
una base di dati una collezione di dati gestita da un DBMS
grandi: i dbms devono poter gestire i dati senza porre limiti alle dimensioni
condivise: molteplici applicazioni devono poter accedere a dati comuni. I dbms p
osseggono un controllo di coerenza per evitare dati inconsistenti
persistenti: il tempo di vita dei dati non limitato a quello delle singole esecu
zione dei programmi
affidabilit: il contenuto della base di dati rimane sostanzialmente intatto in ca
so di malfunzionamento hw o sw. I dbms forniscono backup e recovery, replicazion
e dei dati
privatezza: ciascun utente abilitato a svolgere solo determinate azioni sui dati
efficenti: l'insieme delle risorse utilizzato (Tempo e spazio) deve essere accet
tabile per l'utente
efficaci: i dbms sono capaci di rendere produttive le attivit degli utenti

La gestione di collezioni di dati grandi e persistenti possibile anche mediante


file (sistemi meno sofisticati) I file sono stati introdotti per gestire i dati
localmente. i dbms estendono le funzioni dei filesystem forndendo accesso condiv
iso e altri servizi
Il modello ideale prevede l'utilizzo di una sola base di dati ma ci non sempre po
ssibile o conveniente. L'obbiettivo dell'integrazione e condivisione comunque im
portante. I flussi di informazione devono essere coordinati e governati (es. sch
eduling aggiornamenti)
un organizzione complessa utilizza molteplici basi di dati, ciascuna dedicata a
un insieme di applicazioni correlate e conivolte in operazioni di interscambio
di informazioni finalizzate a evitare duplicaioni di dati e ripetizioni di attiv
it

modelli dei dati


------------------

un modello dei dati un insieme di concetti utilizzati per organizziare i dati di


interesse e descriverne la struttura
Ogni modello fornisce meccanismi di strutturazione che permettono di definire nu
ovi tipi sulla base dei tipi predefiniti.
Il modello relazione dei dati permette di definire tipi per mezzo del costruttor
e relazione che consente di organizzare i dati in record a struttura fissa (tabe
lle) il cui ordine delle righe e delle colonne sostanzialmente irrilevante . Le
righe rappresentano i record e le colonne rappresentano i campi dei record
In una base di dati relazionale vi sono pi relazioni
Altri modelli :
modello gerarchico: basato sull'uso di strutture ad albero
modello reticolare: basato sui grafi
a oggetti: evoluzione del modello relazione con il paradigma OOP
xml: rivisitazione del gerarchico
sono tutti modelli logici
modello concettuale: rappresentazione della realt completamente indipendente dal
modello logico descrivono i concetti del mondo reale e non i dati che tendono a
rappresentarli . essi vengono utilizzati nel progetto prelimianre per analizzare
la realt di itneresse senza contaminazioni di tipo realizzativo

schema della basi di dati: parte invariante nel tempo: caratteristiche dei dati
istanza o stato della base dei dati: parte variabile nel tempo
lo schema della relazione costituito dalla sua intestazione : dal nome della re
lazione seguito dal nome dei suoi attributi (colonne)
l'istanza di una relazione costituita dall'insieme (variante nel tempo) delle su
e righe
lo schema la componente intensionale
l'istanza la componente estensionale
architettura di DBMS articolata su 3 livelli:
esterno, logico e interno
schema logico: descrizione dell'intera base di dati mediante modello logico del
dbms (relazione, gerarchico, reticolare o a oggetti)
schema interno: rappresentazione dello schema logico per mezzo di strutture fisi
che di memorizzazione
schema esterno: descrizione di una porzione della base di dati per mezzo del mod
ello logico. E' possibile associare uno schema logico a piu' schemi esterni (puo
' coincidere con quello logico) gli accessi alla base di dati avvengono solo med
iante il livello esterno
indipendenza dei dati: applicativi interagiscono a livello elevato di astrazione
prescindendo dai dettagli realizzativi di costruzione
indipendenza fisica: consente di interagire con il DBMS in modo indipendente dal

la struttura fisica dei dati. E' possibile modificare le strutture fisiche senza
influire sulla descrizione dei dati
indipendenza logica: la modifica di uno schema esterno non influenza lo schema l
ogico e la sottostante organizzazione fisica dei dati
linguaggi di definizione dei dati: data definition language definisce schemi log
ici, esterni e fisici e le auths
linguaggi di manipolazione dei dati: data manipulation language: per l'interroga
zione e l'aggiornamento delle istanze della base di dati
utenti:
dba: responsabile della progettazione amministrazione e controllo della base di
dati. garantisce affudabilit e prestazioni, gestisce auth accesso dati
progettisti/programmatori di applicazioni: usano il DML per interagire con la ba
se di dati
utenti finali: possono utilizzare programmi che realizzano attttivit predefinite
a frequenza elevata o casuali fornendo interrogazioni non predefinite
vantaggi:
i dati una risorsa comune a disposizione di molteplici componenti
modello unificato e preciso utilizzabile in applicazioni attuali e future
controllo centralizzato dei dati
riduzione di ridondanze e inconsistenze
indipendenza dei dati porta a sviluppare applicazioni piu flessibili
svantaggi:
prodotti costosi e complessi
sefvizi non scorporabili

capitolo 2: il modello relazionale


il modello relazionale si basa su relazione e tabella
dati n insiemi non necessariamente distinti il prodotto cartesiano d1 x d2 x ..
.. x dn costituito dall'insieme delle n-uple v2,v2,...,vn tali che vi appartiene
a di. per i compreso tra 1 e n. una relazione un sottoinsieme del prodotto car
tesiano. Il numero n delle componenti del prodotto cartesiano (e quindi delle nuple) viene detto grado del prodotto cartesiano e della relazione. Il numero deg
li elementi viene chiamato cardinalit.
ciascuna n-upla contiene dati tra loro collegati, stabilisce un legame tra loro
una relazione un insieme:
- non definito alcun ordine tra le nuple, (nelle tabelle che le rappresentano c'
per necessit ma occasionale) due tabelle con le stesse righe in differente ordine
rappresetnano la stessa relazione

- le nuple di una relazione sono tra loro distinte: tra gli elementi di un insie
me non possono esservi duplicati, una tabella rapprenta quindi una relazione sol
o se le sue righe sono l'una diversa dall'altra
ogni n-upla al proprio interno ordinata: definito un ordinamento tra i domini
si tende a privilegiare notazioni non posizionali: associamo a ogni occorrenza d
el dominio della relazione un nome detto attributo
D insieme dei domini
corrispondenza tra attributi e domini dom: X -> D associa a ogni attributo A e X
un dominio dom(A) e D
una tupla su un insieme di attributi X una funzione t che associa a ciascun attr
ibuto A e X un valore di dom(A)
Una relazione su X quindi un inseme di tuple su X: a differenza della def. matem
atica gli elementi della tupla sono individuati per attributo e non per posizion
e.
Una base di dati in genere costituita da pi relazioni: le tuple contengono valori
comuni per stabilire corrispondenze: i riferimenti tra dati in relazioni divers
e sono rappresentati per mezzo di valori dei domini. E non mediante puntatori o
altro
Rispetto a un modello basato su puntatori, il modello relazionale
- richiede di rappresentare solo ci che rilevante dal punto di vista dell'applica
zione
- indipendenza fisica dei dati che quindi risulta facilmente trasferibile
uno schema di relazione costituito dal R nome della relazione da un insieme di n
omi di attributi. indicato con R(X). A ciascun attributo associato un dominio
uno schema di base di dati un insieme di schemi di relazione con nomi diversi
un'istanza di relazione (o relazione) su R(X) un insieme r di tuple su X
un'istanza di base di dati (o base di dati) in R un insieme di relazioni r dove
ogni ri una relazione di Ri(Xi)
sono ammissibili relazioni su un solo attributo
le informazioni devono essere rappresentate per mezzo di tuple di dati omogenee
valore null: assenza di informazione valore aggiuntibvo rispotto a quelli del do
minio e ben distinto da essi
vincolo di integrit
propriet che deve esssere soddisfatta dalle istanze che rappresentano informazion
i corrette. predicato che associa un boolean. se true soddisfa il vincolo. Una i
stanza che soddisfa tutti i vincoli corretta
vincolo intrarelazionale: se il suo soddisfacimento definito rispetto a singole
relazioni della base di dati
- vincolo di tupla: vincolo che pu essere valutato su ciascuna tupla indipendente
mente dalle altre
- vincolo su valori o vincolo di dominio: rifeirmento a singoli valori
vincolo interrelazionale: coinvolge pi relazioni
vincoli di tupla: espressione boleana con aritmetica di confronto su valori di a
ttributo

Una chiave un insieme di attributi utilizzato per identificare univocamente le t


uple di una relazione
un insieme K di attributi superchiave di una relazione r se r non contiene due t
uple distinte t1 e t2 con t1[K]=t2[K]
K superchiave di r se una superchiave minimale di r (cio se non esiste un'altra s
uperchiave k' di r chia sia contenuta in K come sottoinsieme proprio)
le chiavi corrispondeti a vincoli di integrit soddisfano tutte le relazioni lecit
e sullo schema
ciascuna relazione ha sempre una chiave: una relazione un insieme quindi costitu
ita da elementi tra loro differenti: l'insieme X di tutti gli attributi senz'alt
ro una superchiave. Se non esiste un'altra superchiave in esso contenuta allora
anche chiave. e via ricorsivamente in un processo con un numero finito di passi
(X insieme finito)
L'esistenza di almeno una chiave garantisce l'accessibilit a tutti i valori e la
loro univoca accessibilit.
su una delle chiavi, detta la chiave primaria, si vieta la presenza di valori nu
lli: sulle altre in genere sono ammessi. Gli attributi che costiuiscono la chiav
e primaria vengono solitamente evidenziati mediante sottolineatura. solitamente
le relazioni vengono realizzate attraverso i valori della chiave primaria
in quasi tutti i casi reali possibile trovare attributi con valori identificabil
i e sempre disponibili. altrimenti si ricorre a un attributo aggiuntivo
Un vincolo di integrit referenziale (foreign key o referential integrity constrai
nt) tra un insieme di attributi X di una relazione R1 e un'altra relazione r2 s
oddisfatto se i valori su X di ciascuna tupla su r1 compaiono come valori della
chiave dell'istanza di r2
ciascuno degli attributi in X deve corrispondere a un preciso attributo della ch
iave primaria K di r2: quindi necessario specificare un ordinamento sia in X che
in K indicando gli attributi in ordine: il vincolo soddisfatto se per ogni tupl
a t1 in r1 senza nulli su X esiste una tupla t2 in r2 con t1[ai]=t2[bi] per ogni
i tra 1 e p
Non possibile stabilire la corrispondenza nel vincolo di integrit referenziale pe
r mezzo dei nome degli attributi in quanto essi possono essere diversi e in caso
da una relazione si faccia rifeirmento moltemplici volte a un altra, essi saran
no necessariamente differenti.
E' ragionevole che i riferimenti siano diretti verso la chiave primaria, in ques
to caso e' possibile omettere la citazione esplicita degli attributi che compong
ono la chiave primaria
capitolo 3
Un aggiornamento pu essere visto come una funzione che, data un'istanza di una ba
se di dati produce un'altra istanza di base di dati, sullo stesso schema.
Un'interrogazione una funzione che data una base di dati produce una relazione s
u un dato schema. Sia l'aggiornamento che l'interrogazione sono funzioni definit
e sull'istanza della base di dati

l'algebra relazionale un linguaggio procedurale, basato su concetti di tipo alge


brico. E' costituito da un insieme di operatori definiti su relazioni e che prod
ucono ancora relazioni.
Dato che le relazioni sono insiemi, ha senso definire operatori insiemistici tra
dizionali: unione differenza e intersezione.
Una relazione non solo un insieme di tuple, ma un insieme di tuple omogenee: ste
ssi attributi
In linea di principio sarebbe possibile definire gli operatori su qualunque copp
ia di relazioni ma non ha senso definirli con riferimento a relazioni con attrib
uti diversi perch porterebbe a tuple disomogenee e un insieme di tuple disomogene
e non una relazione.
L'unione, l'interesezione e la differenza di due relazioni r1,r2 sono valide se
definite sulo stesso insieme di attributi X ed il loro risultato ancora una rel
azione su X
sia r una relazione definita sull'insieme degli attributi X e Y un altro insieme
di attributi con la stessa cardinalit. Siano a1a2..ak e b1b2...bk rispettivament
e un ordinamento per gli attributi in x e un ordinamento per quelli in y. La rid
enominazione contiene una tupla t' per ciascuna tupla t in r definita come segue
: t' una tupla su Y e t1[Bi] = t[Ai] per i=1...k ci che cambia sono i nomi degli
attributi mentre i valori rimangono inalterati
selezione e proiezione svolgono operatozioni complementari (e ortogonali) sono d
efinite su un operando e ne restituiscono una porzione: la selezione produce un
sottoinsieme delle tuple, mentre la proiezione un sottoinsieme degli attributi
Il risultato contiene le tuple dell'operando che soddisfano la condizione di sel
ezionae
data una relazione r(X) una formula proposizionale F su X una formula ottenuta c
ombinando i connettivi or and not e condizioni atomiche AthetaB Athetac
dove theta un operatore di confronto
A,B sono attributi di X sui cui valori theta abbia senso
c una costante confrontabile con A
Data una formula F e una tupla t definito un valore di verit per F su t in base a
i vlori di t
la selezione produce una relazione sugli stessi attributi di r che contiene le t
uple di rsu cui F vera
data una relazione r(X) e un sottoinsieme Y di X la proiezione rdi r su Y l'insi
eme di tuple Y ottenute dalle tuple di r considerando solo ivalori su Y
essendo le relazioni definite come insieme non possono comparire pi tuple uguali
tra di loro perci possibile che il risultato contenga un numero di tuple inferio
re a quello dell'operando: conterr lo stesso numero di tuple se e solo se Y super
chiave di r
- se Y superchiave di r tutte le tuple sono distinte
- se la proeizione ha lo stesso numero di tuple quante l'operando ciascuna tupla
contribuisce alla proiezione con valori distinti quindi r non contiene coppie d
i tuple uguali su Y: definizione di superchiave
(non e' necessario che gli attributi siano definiti come superchiave nello schem
a)

il join naturale un operatore che correla dati in relazioni diverse sulla base d
i valori uguali in attributi con lo stesso nome. Il risultato una relazione sull
'unione degli insiemi degli attributi degli operandi e le sue tuple sono ottenut
e combinando le tuple degli operandi con valori uguali sugli attributi comuni
In generale il join naturale riXr2 di r1(X1) e r2(X2) la relazione definita su X
1X2:
r1Xr2 = { t su X1X2 | eistono t1
r1, t2
r2 con t[x1] =t1 e t[x2]=t2 }
le tuple del risultato sono ottenuto combinando tuple degli operandi con valori
uguali sugli attributi comuni: il grado della relazione ottenuta come risultato
di un join minore o uguale della somma dei gradi dei due operandi perch gli attri
buti omonimi degli operandi compaiono una sola volta nel risultato
E' molto frequente eseguire join sulla base di valori della chiave di una delle
relazioni coninvolte. In molti casi anche definito tra gli attributi coinvolti u
n vincolo di integrit referenziale.

join completo: ciascuna tupla di ciascuno degli operandi contribuisce ad almeno


una tupla del risultato: per ogni t1 di r1 esiste una t in r1Xr2 | t[x1]=t1 e an
alogamento per t2
se tuple degli operandi non contribuiscono al risultato (perche' l'altra relazi
one non continee tuple con lo stesso valore dell'attributo comune) tali tuple v
engono chiamate dangling
caso limite: nessuna delle tuple degli operandi sia combinalible, il risultato
sar quindi una relazione vuota
all'estremo opposto possibile che caiscuna delle tuple di ciascuno degli operand
i sia combinabile con tutte le tuple dell'altro. Il risultato contiene un numero
di tuple pari al prodotto delle cardinalit degli operandi: |r1| x |r2|
Il numero di tuple di r1Xr2 compreso tra 0 e |r1|x|r2| se il join completo allor
a contiene il num di tuple massimo
se x1 intersecato x2 contiene una chiave per r2 allora il join contiene al mass
imo |r1| tuple
se x1 intersecato x2 contiene esattamente una chiave di r2 e sussiste il vincolo
di rifeirmento allora il join contiene |r1| tuple
outer join (join esterno) tutte le tuple danno un contributoi al risultato event
ualmente estese con valori nulli ove non vi siano controparti opportune:
left join estende solo le tuple del primo operando, right join solo quelle del s
econdo operando e completo che le estende tutte
propriet del join naturale (non esterno)
commutativo r1 x r2 sempre uguale a r2 x r1
associativo r1 x (r2xr2) = (r1xr2)=xr3
se x1=x2 r1(x1) x r2(x1) = r1(x1) inters r2(x1)
se x1,x2 sono digiunti gli attributi in comune (che devono avere stessi valori)
sono insieme vuoto. Per cui la condizione sempre verificata e si ha il risultato
delle tuple degli operandi combinate in tutti i modi possibili Prodotto cartesi
ano
Il prodotto cartesiano un operatore definito su relazioni che non hanno attribut
i in comune, produce tuple concatendando le tuple della prima relazione con le t

uple della seconda, contiene come risultato


degli operandi
theta join prodotto cartesiano seguito da una selezione
equijoin: theta-join in cui la condizione di selezione F sia una congiunzione di
atomi di uguaglianza con un attributo della prima relazione e uno della seconda
dato uno schema R di base di dati un'interrogazione una funzione che per ogni in
stanza r di R produce una relazione su un dato insieme di attributi X
E(r) risultato dell'applicazione dell'espressione E alla base di dati r
le interrogazioni vengono formulate con espressioni i cui atomi sono nomi di rel
azioni in r
espressioni fra loro equivalenti cioe' che producono lo stesso risultato
l'equivalenza pu dipendere dallo schema o essere assoluta
la distinzione dovuta al fatto che gli schemi degli operandi non vengono esplici
tati nelle espressioni (di join naturale)
trasformazioni di equivalenza: operazioni che sotituiscono un operaione con un'a
ltra ad essa euivalente. usate per ridurre la dimensione dei risultati intermedi
1 atomizzazione delle selezioni: una selezione congiuntiva pu essere sostituita d
a una cascata di selezioni atomiche
idempotenza delle proiezioni
anticipazione della selezione rispetto al join
anticipazione della proiezione rispetto al join