Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
LINGUAGGI E UTENTI, VANTAGGI E SVANTAGGI
DBMS
In un è possibile specificare operazioni di vario tipo, suddivise in due
operazioni di tipo DDL - Data Description Language
grosse categorie: per
la definizione di schemi (logici, esterni, fisici) e altre operazioni generali, agendo
DB. Operazioni di tipo DML - Data Manipulation
sulla struttura del
Language per l’interrogazione e l’aggiornamento delle istanze di basi di dati,
SQL
agendo sul contenuto del DB. In i due linguaggi coesistono.
DML e DDL,
È possibile mandare in esecuzione le operazioni in quattro differenti
SQL); (QBE, Query-
modalità: linguaggi testuali interattivi ( interfacce amichevoli
by-Example); SQL)
comandi (simili a immersi in un linguaggio di programmazione
(Java, C, …); SQL)
tradizionale, detto ospite comandi (simili a immersi in un
ad hoc,
linguaggio di programmazione con altre funzionalità (es.: per grafici o
report) e con l’ausilio di strumenti di sviluppo (es.: gestione di maschere).
(DBA);
I protagonisti: amministratori della base di dati progettisti e
implementatori della struttura del database (a volte questa figura è svolta
DB
dall'amministratore della base di dati o administrator); programmatori di
applicazioni; utenti divisi in utenti finali o terminalisti (eseguono applicazioni
predefinite) e utenti avanzati o casuali (eseguono operazioni non previste a
priori). MODELLO RELAZIONALE
Modello (logico) dei dati: insieme di concetti utilizzati per organizzare i dati e
descriverne la struttura in modo comprensibile a un computer. Il più diffuso è il
modello relazionale, basato sul concetto di relazione matematica, che
organizza i dati in insiemi di record a struttura fissa.
anni ‘70 Codd, E. F. (June 1970), "A
Definito formalmente agli inizi degli
Relational Model of Data for Large Shared Data Banks" . Affermatosi a partire
anni ‘80 System R
dagli un precursore è stato (non completamente
anni '70 presso l’IBM San Jose Research Lab
relazionale), sviluppato nei primi . Il
DBMS relazionale fu RDMS, anni ‘70 l’MIT,
primo vero sviluppato nei primi presso
Ingres (1974) sviluppato all’Università di Berkeley
seguito da .
Una relazione è spesso rappresentata per mezzo di una tabella: numero variabile
di righe (record), che rappresentano gli oggetti; numero fisso di colonne (campi),
che corrispondono a proprietà degli oggetti.
(facoltativo):
Altri modelli logici gerarchico, reticolare, a oggetti e semi strutturati
(XML).
I modelli logici sono legati ad una particolare struttura dati utilizzata per
rappresentare i dati, quali tabella, albero, grafo, etc.; esistono modelli
concettuali, non legati a strutture dati particolari, che descrivono concetti del
entity-
mondo reale, piuttosto che i dati che li rappresentano: modello
relationships e modello usato in fase preliminare della progettazione di una base
di dati (per analizzare la realtà di interesse senza dover pensare alle modalità di
DB
effettiva sua realizzazione pratica). In un dell'ufficio anagrafe di un ente,
vogliamo rappresentare il fatto che una persona (prima entità) è in relazione a
una città (seconda entità) in tre modalità differenti: vi risiede attualmente, vi ha
risieduto in passato e vi è nata. Modello molto generale: pone enfasi sui
"concetti" del mondo reale e non su come questi vadano rappresentati. Più vicino
alla mentalità dell'uomo che a quella del computer, utilizzato anche in altri
ambiti (es.: progettazione siti web).
IL MODELLO RELAZIONALE SISTEMI INFORMATIVI
MODELLO RELAZIONALE, STRUTTURE
1970,
Formulato da Codd nel perché i modelli logici allora esistenti non
“A
permettevano di realizzare efficacemente la indipendenza dei dati. Codd, E.F.
Relational Model of Data for Large Shared Data Banks”, Communications of the
ACM, vol. 13, n. 6, Jun 1970, pp. 377-387.
Prototipi iniziali '70: 1985:
primi anni primi sistemi relazionali “reali” a causa
della difficoltà tecnica di implementare efficientemente le tabelle, l’espansione
1985 stato attuale:
effettiva è partita dal molte applicazioni sono basate sul
modello relazionale.
Il modello relazionale si basa sul concetto formale di relazione matematica,
dalla teoria degli insiemi. Il modello deve il successo alla compresenza di: forte
base teorica, la quale ha permesso di studiare approfonditamente l'argomento
permettendo di raggiungere dei risultati teorici a supporto che si sono poi
trasformati in implementazioni; semplicità di uso, dove l’utente lavora su
strutture semplici (le tabelle) usando un linguaggio dichiarativo molto intuitivo,
SQL. La relazione matematica, di conseguenza, è implementata tramite una
struttura molto semplice e intuitiva, la tabella.
MR (modello relazionale)
Il permette l'indipendenza fisica dei dati: gli utenti non
conoscono l'implementazione fisica dei dati, ma ne fanno riferimento solo al
MR
livello logico (le tabelle). Il è basato su valori: i collegamenti fra dati in tabelle
diverse sono realizzati per mezzo dei valori presenti nelle tabelle stesse; altri
modelli logici prevedono riferimenti espliciti alla sottostante struttura fisica,
MR
tramite l’uso di puntatori “fisici” (indirizzi di memoria). Il presenta linguaggi
semplici e dichiarativi: si dice “cosa” si vuole, ma non “come” il computer deve
MR
operare. Nel le operazioni su tabelle danno come risultato ancora una tabella;
a cascata
è, quindi, possibile combinare più operazioni .
RELAZIONI E TABELLE
Il dominio (di un insieme) è l’insieme di tutti i valori che possono essere
effettivamente assunti dagli elementi dell’insieme; es.: insieme dei numeri interi,
insieme dei numeri interi compresi tra 1 e 30, insieme delle stringhe di caratteri,
insieme delle stringhe di caratteri lunghe 20, insieme dei numeri reali. I domini
(teoricamente) possono presentare infiniti valori (in realtà ne presentano finiti);
c’è un limite al numero di valori che possono essere rappresentati in un dominio,
DBMS
dato dalla dimensione della memoria che il dedica a tale oggetto; es.:
bytes
quattro per gli interi.
Relazioni (tabelle) hanno cardinalità (numero di righe) finita (la memoria del
computer è finita). Ogni riga della relazione contiene valori che vengono
memorizzati nel computer; il numero di righe è quindi limitato (a causa dalla
dimensione fisica della memoria). D1 e D2 D1xD2
Il prodotto cartesiano di due insiemi è l’insieme ( ) di tutte le
v1, v2 v1 D1 v2
coppie ordinate ( ) tali che: è un elemento di e è un elemento di
D2; es.: D1= {0,1} e D2={a,b,c}, allora D1 x D2 è dato da: {(0,a), (0,b),
se
(0,c), (1,a), (1,b), (1,c)} D1 e D2
. Una relazione matematica su due insiemi, , è un
D1xD2.
qualunque sottoinsieme del prodotto cartesiano Una relazione su due
insiemi si dice di arità (o grado) 2. Il numero di elementi della relazione (cioè il
numero totale delle righe in essa presenti) è detto cardinalità della relazione.
D1 e D2: D1 × D2 e
Dunque, dati due insiemi il loro prodotto cartesiano è una
r D1 × D2.
possibile relazione matematica è
k D1, D2, …, Dk (D1 x D2 x D3, …, DK-1 x DK)
Il prodotto cartesiano di insiemi è
k-uple (v1, v2, …, vk v1
l’insieme di tutte le ordinate ) tali che: è un elemento di
D1 v2 D2 vk Dk.
e è un elemento di , …, è un elemento di Una relazione
k D1, D2, …, Dk
matematica su insiemi è un qualunque sottoinsieme del prodotto
k D1 x D2 x D3, …, DK-1 x DK.
cartesiano sui insiemi Una relazione matematica è
n-uple (v1, …, vk) v1D1, …,
un insieme di ordinate (dette anche tuple): tali che
vk Dk. k k.
Una relazione su insiemi si dice di arità (o grado)
RELAZIONI CON ATTRIBUTI
Relazione con struttura posizionale: ogni dominio ha un ruolo che dipende
dalla posizione, cioè esiste un ordine tra i domini che è importante ai fini
dell'interpretazione dei dati; l'i-esimo valore proviene dall'i-esimo dominio
(posizionale). Non c'è ordinamento fra le righe e due relazioni con le stesse righe,
ma in ordine diverso, rappresentano la stessa relazione. Le righe sono distinte
l'una dall'altra e per definizione un insieme non può contenere due elementi
uguali.
Ad esempio, vogliamo memorizzare i risultati di partite di calcio: creiamo una
relazione con quattro campi che memorizzano le informazioni sulla squadra di
casa, quella in trasferta e i relativi gol fatti. Consideriamo una relazione
testo × testo ×
matematica costruita sul prodotto cartesiano di quattro domini:
intero × intero. Il senso dell'informazione è dato dal fatto che nella prima
colonna abbiamo inserito la squadra di casa e nella seconda quella in trasferta e
così anche per i gol. Se nella relazione scambiassimo le posizioni delle colonne 3
e 4, cambierebbe l'informazione memorizzata (i risultati delle partite verrebbero
invertiti). (v1, …, vk)
Una relazione matematica è un insieme di n-uple ordinate*: tali che
v1D1, …, vk Dk. k
Ogni relazione su domini si dice di arità (o grado) k.
Ciascuna n-upla contiene dati fra loro collegati; la prima riga (n-upla) della
“Juventus “, “Lazio”, “3“, “1”,
relazione seguente stabilisce un legame tra i valori 3-1;
e indica che il risultato della partita Juventus-Lazio è si noti che
l'ordinamento è relativo alle colonne.
DB
In un relazionale la struttura di base è la relazione matematica, quindi di tipo
Come rendere una relazione indipendente
posizionale, ma questo è fastidioso.
dalla posizione delle colonne (e quindi dal loro ordine)?
È possibile far riferimento a strutture non posizionali se attribuiamo a ciascun
"significato",
campo un nome (detto attributo), che ne descrive il passando così
dal concetto di relazione a quello di tabella. Dunque, nella relazione matematica
l’ordine delle colonne è importante; invece, nella tabella (= relazione + nomi alle
colonne) l’ordine delle colonne non è importante.
RELAZIONI E BASI DI DATI
Il modello relazionale è basato su valori, questo significa che le corrispondenze
fra dati in tabelle diverse sono rappresentate per mezzo di valori (comuni)
presenti nelle tabelle stesse.
Tabelle