MODELLO LOGICO DEI DATI
MODELLO LOGICO DEI DATI
Un Modello logico di dati è un formalismo utilizzato
per descrivere la realtà che si intende modellare
mediante un DB
 Modello gerarchico - IBM
 Modello reticolare - Codasyl (Conference on Data
System Language)
 Modello relazionale - Egdar F. Codd anni 70
 Modello a oggetti - anni 80-90
Ogni modello comprende entità, attributi, relazioni
fra i dati

MODELLO GERARCHICO








Non esiste un preciso modello gerarchico riconosciuto dalle case
costruttrici di DBMS.
Lo schema del modello gerarchico è caratterizzato dal possedere
una struttura ad albero detto ALBERO DI DEFINIZIONE.
Ciascun nodo di un albero di definizione rappresenta una Categoria
di dati.
Da un punto di vista estensionale un nodo è costituito da una
sequenza di record di uno stesso tipo. L’albero di definizione è
ordinato (l’ordine dei figli di un nodo è rilevante)
Ogni arco dell’albero rappresenta un’associazione surgettiva di tipo
1:N, diretta dal nodo padre (dominio, owner) al nodo figlio
(codominio, member).
E’ difficile la traduzione di uno schema concettuale in uno schema
gerarchico (mapping) equivalente. Si adatta bene er quei dati che
tendono naturalmente ad una suddivisione in sottocategorie.
Per rappresentare una relazione molti-a-molti occorrono due uno amolti e un segmento addizionale
MODELLO GERARCHICO
MODELLO RETICOLARE



Gli schemi generabili secondo
questo
modello
hanno
la
caratteristica di presentarsi come
grafi orientati in cui gli archi
rappresentano associazioni 1:N.
Esistono oggi diversi sistemi
reticolari che implementano una
parte più o meno ampia della
proposta
Codasyl
(IDS/II
Honeywell; DBMS-10 Digital).
il modello reticolare rimuove molti
dei limiti imposti dal modello
gerarchico. Il “mapping” di uno
schema concettuale in uno
schema reticolare è pressoché
immediato , per contro la
navigazione è complessa e
difficilmente implementabile.
MODELLO RELAZIONALE








Il modello relazionale è stato introdotto da Codd nel 1970 ed è basato sul
concetto matematico di relazione fra insiemi. Ciò ha consentito una
formulazione del modello completamente libera da considerazioni di tipo
pratico pertinenti, ad esempio, l’efficienza dell’implementazione
DEFINZIONE : Una relazione R su una sequenza di insiemi D1, D2, ..., Dn
(non necessariamente distinti) è un sottoinsieme finito del prodotto
cartesiano D1xD2... xDn .
Il numero n ( n > 1) è detto grado della relazione.
D1, D2, ..., Dn = domini
Gli elementi di R sono n-uple (d1, d2, ..., dn) con d1ЄD1 , d2Є D2 , ..., dnЄ Dn. Si
usa di più il termine tupla.
Una relazione non può contenere tuple uguali.
A differenza delle relazioni matematiche, le relazioni nel modello
relazionale sono variabili nel tempo : le tuple possono essere inserite,
aggiornate, cancellate.
Il numero di tuple presenti in un dato istante si dice cardinalità della
relazione.
MODELLO RELAZIONALE



Da un punto di vista intensionale una relazione è caratterizzata da un nome e
dalla lista dei suoi attributi :
<nome relazione> (<attr1>:t1,<attr2>:t2, ......,<attrn>:tn)
Da un punto di vista estensionale si può rappresentare una relazione mediante
una tabella di m righe ed n colonne, dove ogni riga rappresenta una tupla ed
ogni colonna rappresenta la sequenza dei valori assunti corrispondentemente
da un attributo. L’ordine delle righe e colonne non è significativo.
Tutte le definizioni del modello relazionale prevedono di specificare come
vincolo quello relativo alla presenza di una chiave primaria per ogni relazione.
PERSONA(NOME:STRING*20; ETA:INTEGER; SEX:CHAR)
PERSONA(NOME,ETA,SEX)
NOME
ETA
SEX
OPERAZIONI SUI DB RELAZIONALI




Ci soffermeremo sulle operazioni che consentono di interrogare una
base di dati relazionale poiché quelle di aggiornamento (inserimento,
cancellazione, modifica) non differiscono concettualmente da quelle
già note per gli archivi.
Sono stati proposti diversi linguaggi per l’interrogazione dei DB
relazionali, tutti in genere NON PROCEDURALI. I linguaggi non
procedurali hanno operatori indipendenti dal concetto di posizione di
un record, ma trattano invece i dati in modo collettivo.
Uno dei linguaggi non procedurali più usati è quello dell’Algebra
Relazionale : impiega operatori dell’algebra relazionale che vengono
composti fra loro per produrre il risultato desiderato. Si formula
l’interrogazione specificando una composizione di operatori da
applicare alle relazioni del DB per fornire la relazione desiderata.
Occorre scegliere un insieme di operatori funzionalmente completo
cioè che consenta di ottenere tutti i risultati ottenibili con altri
linguaggi relazionali
ALGEBRA RELAZIONALE
Si può dimostrare che un insieme funzionalmente completo è
composto dalle seguenti operazioni :
1. Unione di relazioni (UNION) : Dette R ed S 2 relazioni
compatibili (cioè aventi lo stesso numero di attributi
ordinatamente dello stesso tipo, l’unione di R con S è la
relazione ottenuta dall’unione insiemistica delle relazioni:
UNION(R,S) = R U S = {t / tЄR or tЄS}
2.
Differenza di relazioni(DIFFERENCE) : Dette R ed S 2 relazioni
compatibili la differenza fra R ed S è la relazione ottenuta
dalla differenza insiemistica fra le relazioni:
DIFFERENCE(R,S) = R - S = {t / tЄR and tЄS}
ALGEBRA RELAZIONALE
3.
4.
Prodotto cartesiano : Date R ed S 2 relazioni qualunque di
grado rispettivamente n1 ed n2 e cardinalità m1 ed m2, il
prodotto R x S è la relazioni di grado n1+n2 e cardinalità m1 x
m2 le cui tuple si ottengono concatenando ogni tupla di R con
ogni tupla di S.
r = { a1,a2,...an1 } s = { b1,b2,...bn2 }
r conc s = { a1,a2,...an1, b1,b2,...bn2}
R X S = {t / t = r conc s , r ЄR and sЄS}
Proiezione di una relazione (PROJECT) : Data una relazione R
ed un suo sottoinsieme B = {A1,A2,..,Ak} dei suoi attributi , si
definisce proiezione di R su B la relazione di grado k che si
ottiene da R ignorando le colonne relative agli attributi non
contenuti in B ed eliminando le eventuali tuple duplicate.
PROJECT R ON A1,A2,..,Ak oppure π A1,A2,..,Ak R
ALGEBRA RELAZIONALE
Restrizione di una relazione (RESTRICT) : Data una relazione R
ed un predicato P semplice o composto sui suoi attributi,
l’operazione di restrizione di R a P è la relazione costituita
dalla tuple di R che soddisfano P.
Restrict R where P = {t / t ЄR and P(t)} oppure σP(t)R
Esistono poi 2 operatori derivati molto usati :
6. Intersezione di 2 relazioni (INTERSECT) : Date R ed S 2
relazioni compatibili, l’intersezione di R d S restituisce la
relazione costituita da tutte le tuple presenti sia in R che in S.
INTERSECT(R,S) = R ∩S ={t / t ЄR and t ЄS}
5.
ALGEBRA RELAZIONALE
7.
Giunzione naturale (JOIN) : Sia data una relazione R di
grado n1 ed una relazione S di grado n2; l’operazione
di giunzione naturale di R ed S su un attributo A di R e
un attributo B di S (aventi lo stesso tipo) restituisce una
relazione di grado n1+n2-1 le cui tuple si ottengono
con il seguente procedimento :



si calcola R x S
su tale relazione si effettua una restrizione volta a
selezionare le tuple aventi lo stesso valore degli attributi A e
B ottenendo così una relazione con le colonne A e B uguali
eliminando una di queste 2 colonne si ottiene la giunzione
naturale
R
A=B
S
Scarica

MODELLO LOGICO DEI DATI