|
Software Applicativo
Categoria di programmi specifici per una particolare
applicazione o classe di applicazioni.
Sistemi di sviluppo applicazioni:
· livello "superiore" del S.O., quali compilatori,
interpreti, editor;
· software adatto alla realizzazione di una vasta gamma di
applicazioni, quali sistemi di editoria, fogli elettronici, database, etc.
· tendono ad essere progressivamente inseriti nel S.O.
Software di produttività individuale (office automation): strumenti
di tipo elettronico che tendono a sostituire o integrare gli strumenti tradizionali.
|
Scopi:
·
minore utilizzo di
supporto cartaceo;
·
facilità
nell’archiviazione e reperimento dei dati;
·
migliore qualità del
lavoro;
·
incremento della
produttività del lavoro.
Vari tipi:
Þsistemi di
scrittura
Þfogli elettronici
Þsistemi di
gestione di basi di dati
Þsistemi
grafici
Þcomunicazione
(posta elettronica, etc.)
Videoscrittura
(Word Processor)
Operazioni
fondamentali:
·
inserimento, modifica
e/o correzione del testo;
·
ricerca e
sostituzione di parti del testo;
·
manipolazione di
blocchi e composizione di testi (taglia e cuci);
·
stampa del documento
finale, personalizzazione dell’ aspetto grafico e dell’ impaginazione del
testo;
·
archiviazione e reperimento
testi;
·
fusione di un testo
con un archivio di dati per la produzione di copie personalizzate dello stesso
(mailing list).
Evoluzione:
·
flessibilità/facilità
interfaccia utente;
·
da editor
line-oriented a editor full-screen;
·
dizionario e
controllo ortografico (in linea o a posteriori);
·
set di caratteri e
simboli (corsivo, gotico, lettere greche, formule matematiche, etc.) e gestione
delle loro dimensioni;
·
redazione
tabelle/disegni.
Word-Processor
==> Sistemi di scrittura “professionali”: sistemi di editoria elettronica
(per redazione e stampa di giornali, libri, pubblicazioni varie).
|
In questo
esempio, è stata inserita un’ immagine a colori all’interno di una pagina di
testo, ed a fianco dell’immagine è stata aggiunta una descrizione come questa
che leggete...
Foglio Elettronico (SPREADSHEET) (1)
strumento generalizzato di calcolo
Colonne
A B C
1
Righe 2
cella
3
Una cella è associata a due elementi:
·
una formula
(interna)
· un risultato (visibile)
Costante ==> formula e risultato coincidono
Valori nelle celle:
·
stringhe
alfanumeriche (dette "etichette");
·
dati numerici (fixed
e floating point);
·
formule che producono
risultati (nel foglio si vedono solo i risultati).
Foglio
Elettronico (2)
Esempio:
A
B C
D ... Z
1 Gennaio Febbraio Marzo ... Totale
2
3 P.Finiti 3000
7500 ... ... 25000
4 Semilavorati 170
200 ... ...
5 Consulenze 210
300 ... ...
6 Manutenzione 540
130 ...
7 Impianti 150
45 risultato
8 Inter.attivi 20
23 (la formula
9 Totale ricavi non si vede)
10 Spese
11 Stipendi valori
12 Iter.passivi
13
Fitti
14
Merci etichette
15 Spese pubbl.
16 ... si può abbellire il foglio con
... diagrammi, testo, effetti, etc.
21 Totale costi
22 Utile lordo
...
30
Utile netto 100 30 ... ... 1000
risultati
Foglio Elettronico (3)
I n d i r i z z a m e n t o d e l l e
C e l l e
·
assoluto (sempre la
stessa cella): $A1,
$B$12
· relativo (alla cella contenente il riferimento): A1, B12
|
A |
B |
C |
D |
... |
1 |
|
|
|
|
|
2 |
|
$A$1 |
|
|
|
3 |
|
|
A1 |
|
|
4 |
|
|
|
B2 |
|
... |
|
|
|
|
|
Esempio: Somma di due
righe
|
A |
B |
C |
1 |
1000 |
500 |
A1+B1 = 1500 |
2 |
1200 |
750 |
A2+B2 = 1950 |
3 |
... |
... |
... |
la formula A1+B1 (indirizzi relativi) nella cella C1 copiata nella cella C2
diventa: A2+B2
Foglio
Elettronico (4)
Ogni volta che viene modificato un valore numerico o una
formula nel tabellone tutto il tabellone viene aggiornato (ricalcolo automatico)
Ad esempio:
|
A |
B |
C |
D |
1 |
20 (valore) |
15 (valore) |
35 (formula: A1+B1) |
7 (formula: C1*0,20) |
|
|
|
|
|
Se il valore di A1 viene cambiato
in 45, si ottiene:
|
A |
B |
C |
D |
|
1 |
45 (valore) |
15 (valore) |
60 (formula: A1+B1) |
12 (formula: C1*0,20) |
|
|
|
|
|
|
|
Se
si cambia la formula in C1 da A1+B1 a A1*B1 si ottiene:
|
A |
B |
C |
D |
|
1 |
20 (valore) |
15 (valore) |
300 (formula: A1*B1) |
60 (formula: C1*0,20) |
|
|
|
|
|
|
|
Rialcolo
immediato (automatico) o su richiesta (manuale)
Foglio
Elettronico (5)
Nelle Formule si possono
utilizzare:
·
le normali operazioni
aritmetiche;
· funzioni quali SOMMA, MEDIA, MIN, MAX, trigonometriche, statistiche,
finanziarie, etc.
Le celle possono essere individuate:
·
singolarmente con
l’indirizzo assoluto o relativo;
·
a intervallo di riga
(ad es. A3..E3), di colonna (ad es. C4..C12), rettangolare (ad es. A3..C12).
Esempi di formule:
· (B2+C3+D4)*20/E5;
· @SOMMA(A1..A10)*5/100;
· @MIN(B1..C20)/@MAX(B1..C20);
· @MIN(A1..E20)/@MEDIA(A1..E20).
Funzione
condizionale
@IF(condizione; azione1; azione2)
then else
Esempio:
condizione azione1 azione2
@IF(B5<@MIN(A1..A20);
@MEDIA(B1..B10); @MIN(C1..C10)
then else
Foglio Elettronico (6)
Zona = insieme di celle rettangolari individuato dagli indirizzi degli estremi
di una diagonale (con eventuale nome)
A B C D E F
1
2 zona
C1..F3
3
questa
NON è una zona !
Una zona può essere:
·
delimitata dagli
estremi (punti di ancoraggio) con il cursore;
·
larga una sola
colonna, una sola riga, una sola cella;
In un foglio elettronico è
possibile:
·
definire la larghezza
delle colonne;
·
definire il tipo di
dato/risultato delle celle: numerico (con eventuali decimali), data, valuta,
stringa, etc.
Ci sono comandi di:
·
inserimento/cancellazione
di righe/colonne;
·
cancellazione di
dati/formule in zone;
·
copia di dati/formule
da una zona ad un’altra;
·
stampa del foglio
elettronico o di una zona;
·
salvataggio di un
foglio elettronico;
·
lettura di un foglio
elettronico.
Foglio Elettronico (7)
è possibile
lavorare su più fogli elettronici contemporaneamente (copiare celle da un
foglio ad un altro, unire due fogli in uno, riferirsi a risultati di un altro foglio,
etc.)
Esempio:
Dettaglio stipendi
A B C
GEN 1 CARLI
1000 ...
espansione
2 ROSSI
1250 ...
di una cella
Stipendi in un foglio 3 VERDI 2000 ...
4 BIANCHI 1900 ...
cella
in un foglio
elettronico 5 ... ...
...
16 Totale
unico dato totale riportato
nel
foglio padre
Macroistruzioni = gruppi di istruzioni (richiamabili con un nome)
è anche
possibile eseguire istruzioni di controllo (selezione, iterazione, salto)
==> macro come sequenze di comandi di un linguaggio procedurale.
Sistemi
Grafici (1)
Si
abbia la seguente serie di dati:
GENNAIO |
150 |
FEBBRAIO |
120 |
MARZO |
140 |
APRILE |
160 |
... |
... |
oppure:
GENNAIO |
FEBBRAIO |
MARZO |
APRILE |
... |
150 |
120 |
140 |
160 |
... |
Si
voglia rappresentare un grafico lineare o curva. Scelti i dati da rappresentare
sull’asse delle X (orizzontale) e quelli delle Y (verticale) si ottiene il
seguente grafico lineare (asse X=ascisse; asse Y=ordinate):
GRAFICO
LINEARE
Sistemi Grafici
(2)
Lo
stesso grafico in forma istogramma o diagramma a barre potrebbe essere:
GRAFICO
A BARRA
Nel grafico vi sono varie opzioni possibili:
·
tipo di rappresentazione del punto;
·
tipo di tratto della linea (anche niente);
·
eventuali colori (assi, linea, punti);
·
aggiunta di scritte di vario tipo (titolo, legenda, note);
·
eventuale tipo di curva da tracciare (segmenti,
interpolazione);
·
eventuale linea base;
·
eventuali operazioni sulle curve e rappresentazione di più
curve;
·
scritte e disegni vari.
Ad
esempio dalla seguente tabella:
|
GENNAIO |
FEBBRAIO |
MARZO |
APRILE |
UTILI |
400 |
250 |
300 |
290 |
RICAVI |
1500 |
1200 |
1300 |
1400 |
COSTI |
1100 |
950 |
1000 |
1110 |
si
può ottenere una rappresentazione grafica come di seguito riportato:
Sistemi Grafici
(3)
RICAVI
- COSTI - UTILE
I0
QUADRIMESTRE ‘91
Il diagramma ricavi/costi/utili a barre potrebbe
diventare:
RICAVI-COSTI-UTILE I QUADRIMESTRE
Naturalmente per i casi semplici vi sono i comportamenti di
default:
·
definizione della scala di rappresentazione;
·
dei colori, simboli, tratti;
·
posizione del titolo, legenda;
· posizione,
dimensione caratteri, forma del titolo, legenda note.
Sistemi
Grafici (4)
Vi
possono anche essere due serie numeriche sui due assi. Sui grafici si possono
fare:
·
operazioni varie di calcolo (somme e differenze, cumulative,
percentuali, etc.);
·
operazioni grafiche di vario tipo e completamenti di testi;
·
stampa;
·
memorizzazione;
·
lettura di grafico memorizzato.
N.B. I formati di memorizzazione dei grafici dipendono da sistema
a sistema e non sono in genere trasportabili
|
.
Lo
stesso diagramma con evidenziazione di uno spicchio:
Sistemi Grafici
(5)
Il diagramma ricavi/costi/utile a barre:
RICAVI-COSTI-UTILE
1°
QUADRIMESTRE
|
Il
diagramma ricavi/costi/utili a barra percentuale e cumulativo:
BARRA
PERCENTUALE
CUMULATIVI UTILI
10
QUADRIMESTRE
Data Base (1)
Problematica
gestione dati:
*
oggetti delle
elaborazioni, difficili da gestire, memorizzare, reperire, modificare;
*
talvolta
ridondanti/incongruenti;
*
non sufficientemente
protetti;
*
spesso comuni a più
applicazioni/utilizzatori e quindi potenziali sorgenti di conflitto.
Terminologia:
·
BANCA DATI:
raccolta di dati, utilizzabili da una molteplicita` di utenti;
·
DATA BASE:
tecnica di organizzazione dei dati in una Banca Dati;
· DATA BASE
MANAGEMENT SYSTEM (DBMS): sistemi software per la gestione
di banche Dati secondo tecniche Data Base.
Data
Base
(2)
Obiettivi di
un DBMS:
¨ organizzare e
gestire dati (grandi volumi);
¨ facilità di
accesso ai dati;
¨ indipendenza
dei dati dai programmi e viceversa;
¨ indipendenza
dall’ambiente HW/SW (trasparenza
delle applicazioni da supporti e metodi di memorizzazione);
¨ condivisione
dei dati da più utenti;
¨ salvaguardia
dell’integrità (correttezza) dei
dati;
¨ protezione da
accessi non autorizzati (gestione
della riservatezza);
¨ eliminazione
della ridondanza dei dati.
Schema
a tre livelli di un DBMS:
L
I
L
V I
V L I V E L L O
E E
L
L L I N T E R N O
O
L
C O N C E T
T U A L E
O
E S T E R N O
· LIVELLO
INTERNO (o fisico): organizzazione dei dati sui supporti magnetici;
· LIVELLO
CONCETTUALE (o logico): schema globale dei dati;
· LIVELLO
ESTERNO (sottoschemi): modalità di accesso ai dati da parte degli utenti, con
procedure diverse e visione dei dati spesso parziale.
Data Base (3)
Modeli di
database:
· gerarchico (in
disuso; utilizzato come modello interno)
· reticolare
( " "
" " " " )
· relazionale
(attuale)
Modello
relazionale
Basato sulla teoria degli insiemi e su tabelle dette
“relazioni”
Esempio: Tabella º
Relazione CLIENTI
colonna º campo º attributo
l’ordine
delle righe e delle
colonne non è significativo
CODICE |
NOME |
CITTà |
ZONA |
C01 |
Rossi |
Genova |
NW |
C04 |
Bianchi |
Ancona |
CN |
C02 |
Verdi |
Roma |
CE |
C12 |
Finzi |
Firenze |
CN |
C34 |
Carli |
Torino |
NW |
C09 |
Fazio |
Milano |
NO |
CHIAVE PRIMARIA attributi
(valori dello
stesso tipo per ogni colonna)
· Descrizione
dei dati indipendente dalla rappresentazione fisica (nomi e valori
degli attributi, ma non posizione).
· Ordine delle
colonne e delle righe non significativo.
· Chiave
primaria = uno o più
attributi che identificano univocamente le righe .
· Valori
elementari non ulteriormente scomponibili.
Data Base (4)
Chiave esterna
= attributo(i) i cui valori corrispondono a chiavi primarie in altre tabelle e
consentono di mettere in relazione (stabilire associazioni tra) le tabelle.
Tabella
CLIENTI
CODICE |
NOME |
CITTà |
ZONA |
... |
... |
... |
NW |
... |
... |
... |
CN |
Tabella
ZONE
ZONA |
DESCRIZIONE |
CN |
Centro-Nord |
NW |
Nord-Ovest |
Esempio di chiave esterna
Le tabelle non devono contenere dipendenze funzionali e ridondanze
che pongano problemi di aggiornamento. Bisogna ridurre o normalizzare la tabella a relazioni
semplici.
CODICE |
NOME |
CITTà |
ZONA |
DESCRIZIONE |
.
. . |
C01 |
Rossi |
Genova |
NW |
Nord-Ovest |
. . . |
C34 |
Carli |
Torino |
NW |
Nord-Ovest |
. . . |
|
|
|
|
|
|
Tabella non normalizzata
è molto meglio avere le due
tabelle CLIENTI e ZONE separate, con la chiave esterna che ne consente
l’associazione: ciò garantisce l”univocità” del dato, cioé la sua presenza una
sola volta in un unico posto.
Data Base (5)
Linguaggi
di un DBMS
DDL (data definition language)
Orientato alla definizione ed alla descrizione
dei dati delle tabelle, in particolar modo per quanto riguarda:
· nome della tabella;
· nome dei campi (colonne,
attributi);
· lunghezza dei campi;
· tipi dei campi;
· chiave primaria;
· viste logiche (sottoinsiemi
parziali o “calcolati” di tabelle);
· controlli sui valori dei
dati;
· procedure automatiche da
attivare su eventi specifici sui dati (“trigger”).
DML (data manipulation language)
Comprende
le operazioni di manipolazione dei dati, cioé:
· inserimento (insert) di nuove righe nelle tabelle;
· modifica (update) dei valori contenuti nelle
righe;
· cancellazione (delete) di righe.
QL (query language)
Può anche essere visto come parte del DML. Si basa
su tre operazioni fondamentali (che costituiscono la cosiddetta “algebra relazionale”):
· selezione di righe su
condizione (select);
· fusione (join) di due tabelle intorno ad un
attributo comune;
· estrazione (project) di colonne, e produzione di
tabelle ridotte eliminando l’eventuale duplicazione di righe.
Data Base (6)
Esempi
di algebra relazionale
a)select from CLIENTI where ZONA=“NW”
CODICE |
NOME |
CITTà |
ZONA |
C01 |
Rossi |
Genova |
NW |
C34 |
Carli |
Torino |
NW |
b)join CLIENTI, ZONE where CLIENTI.ZONA=ZONE.ZONA
CODICE |
NOME |
CITTA` |
ZONA |
DESCRIZIONE |
|
|
|
|
|
4+2-1 colonne (una colonna in comune)
c)project CITTÀ, ZONA from CLIENTI
CITTà |
ZONA |
Genova |
NW |
Altre operazioni (su tabelle omogenee):
· unione (AÈB): A
B
· intersezione
(AÇB): A
B
· differenza (A-B):
A
Data Base (7)
· DML linguaggio
autosufficiente/richiamabile/che richiama altri.
· QBE
(Query By Example) linguaggio di interrogazione guidata di dati, di facile e
intuitivo utilizzo.
Altre parti di un DBMS:
· generatore automatico di
prospetti di stampa (report generator)
· generatore automatico
formati video per l’input dati (form generator)
· linguaggio procedurale (di terza generazione)
==>
linguaggio
procedurale di quarta generazione.
INDICI E CHIAVI
Indice
= tabella ordinata su
una o più colonne
· univoco
= ogni valore dell’indice corrisponde ad una sola riga nella tabella;
· altrimenti, si dice che l’indice ammette duplicati.
Ogni riga della tabella indice contiene due attributi: il
valore della chiave, e la corrispondente posizione nella tabella principale
==> permette la ricerca binaria
(max log2N
tentativi).
Indice Tabella
CLIENTI
... |
NOME |
... |
|||
... |
Rossi |
... |
|||
... |
Bianchi |
... |
|||
... |
Verdi |
... |
|||
... |
Finzi |
... |
|||
... |
Carli |
... |
|||
... |
Fazio |
... |
|||
... |
... |
... |
|||
|
NOME |
Posizione |
|
||
|
Bianchi |
2 |
|
||
|
Carli |
5 |
|
||
|
Fazio |
6 |
|
||
|
Finzi |
4 |
|
||
|
Rossi |
1 |
|
||
|
Verdi |
3 |
|
||
|
... |
... |
|
||
Data Base (8)
IL
LINGUAGGIO SQL
· SQL = Structured Query Language.
· Proposto da IBM e successivamente standardizzato dall’ANSI
nel 1985.
· Non solamente “query”, ma tutte le funzionalità DDL, DML e
QL.
Comandi
principali DDL
·
create table
tabella (attributo tipo(lunghezza),
...);
create
table PERSONALE (MATRICOLA char(5) not null, COGNOME
char(30), NOME char(20), CODFISC char(16), ASSUNTO date, LIVELLO smallint,
STIP_BASE integer);
Tipi degli attributi:
ð
char(n) = stringa alfanumerica di
“n” caratteri;
ð
smallint = intero piccolo
(tipicamente a 16 bit);
ð
integer = intero normale
(tipicamente a 32 bit);
ð
decimal(m,n) = intero a virgola fissa
(“m” cifre totali, “n” dopo la virgola;
ð
real = numero floating-point a
precisione singola (tipicamente 32 bit);
ð
float = numero floating-point a
doppia recisione (tipicamente 64 bit);
ð
date, time, timestamp = data, ora e timbro
datario.
La parola chiave not null indica
l’obbligatorietà di un valore per l’attributo: ciò implica che l’inserimento
successivo di una riga nella tabella non avente alcun valore per
l’attributo sarà rifiutato.
LOGICA
A TRE VALORI
A |
B |
not B |
A and B |
A or B |
? |
? |
? |
? |
? |
? |
vero |
falso |
? |
vero |
? |
falso |
vero |
falso |
forse |
Data
Base
(9)
· alter table tabella
add attributo
tipo;
drop attributo;
modify attributo tipo;
alter table
PERSONALE add (NASCITA date) before ASSUNTO;
· create [unique] index indice on tabella (attributo, ...);
create unique index I1 on PERSONALE(MATRICOLA);
create index I2 on PERSONALE(COGNOME, NOME);
table tabella;
· drop (cancellazione di tabelle o indici)
index indice;
drop table PERSONALE;
drop index I1;
Comandi per
modifica dati (DML)
· insert into tabella values (valore1, valore2, ...);
insert into PERSONALE values (‘AB541’, ‘ROSSI’,
‘Ernesto’, ‘RSSRNS48M20R341E’,
‘20/08/1948’, 5, 1780000);
· update tabella set attributo=valore where condizione;
update PERSONALE set LIVELLO=6 where
MATRICOLA=‘AB541’;
· delete from tabella where condizione;
delete from PERSONALE where MATRICOLA=‘AB541’;
Data
Base
(10)
Comando QL
generalizzato di estrazione di dati
select attributo1,
... (* = tutti) from tabella where condizione;
select
NOME, NASCITA from PERSONALE where LIVELLO=5;
Clausole
opzionali:
- order by (ordinamenti sui vari
attributi)
- group by (risultati
intermedi)
- count(*) (numero
totale di righe nella selezione)
- count (distinct attributo) (numero di valori distinti e
non nulli dell'attributo nella selezione)
- sum(attributo)
- sum(distinct attributo)
- min(attributo)
- max(attributo)
- avg(attributo)
Operatori di
selezione:
- where attributo between valore_min and valore_max
- where attributo in (insieme_di_valori)
- where attributo like “modello” (in “modello” è possibile utilizzare i caratteri jolly “%” = gruppo di caratteri e “_” = singolo carattere)
Data
Base
(11)
Esempi
di istruzioni SQL
update PERSONALE
set
STIP_BASE = STIP_BASE*1,05 where LIVELLO <= 3;
select * from PERSONALE where ASSUNTO >
‘31/12/1980’
order
by COGNOME, NOME;
select * from PERSONALE where ASSUNTO between
‘01/01/1980’ and ‘31/12/1985’ and PROV in (‘MI’, ’BA’, ’FG) or COGNOME like
‘ROS%’;
select COGNOME, NOME,
DESCRIZIONE from PERSONALE, REPARTI
where
PERSONALE.REPARTO = REPARTI.COD_REP
and STIP_BASE = (select max(STIP_BASE)
from PERSONALE
where FUNZIONE =
‘IMPIEGATO’)
order by NASCITA;
select COD_RAP,
sum(IMPORTO) from FATTURE,RAPPRESENTANTI,CLIENTI
where FATTURE.COD_CLI = CLIENTI.CLI
and CLIENTI.RAP_CLI = RAPPRESENTANTI.RAP
group by RAP;
Fatture Rappresentanti Clienti
COD_CLI |
... |
|
RAP |
... |
|
RAP_CLI |
CLI |
... |
... |
... |
|
... |
... |
|
... |
... |
... |
Data
Base
(12)
V i s t
e l o g i c h e
|
Tabelle
virtuali = finestre dinamiche
sui dati
create view tabella as select attributi
from
tabella
where
condizione;
create view CLIENTI_PUGLIA
as select CODICE, NOME, CITTà
from CLIENTI where PROVINCIA in (‘BA’,’BR’,’FG’,’LE’,’TA’);
S i c u
r e z z a
|
Comandi di
gestione accessibilità: grant (per
concedere permessi sugli “oggetti” del database) e revoke (per negare accessi).
QBE:
Query by Example
Le operazioni
di Query (essenzialmente select)
vengono richieste inserendo le condizioni nelle colonne degli attributi
Esempio:
|
CODICE |
ZONA |
|
|
>300 |
=NW |
|
Data
Base
(13)
N o r m a l i z z a z i o n e
Tre regole fondamentali:
a)
attributi ad
un solo valore (I forma normale);
b)
ogni attributo
dipende dall’intera chiave (II forma normale);
c)
direttamente
dalla chiave (III forma normale).
FORN |
PROD |
CITTà |
DESCR |
Q.Tà |
F1 |
P1 |
MILANO |
DADO |
30 |
F1 |
P2 |
MILANO |
RUOTA |
20 |
. |
. |
. |
. |
. |
. |
. |
. |
. |
. |
F8 |
P9 |
TORINO |
CHIODO |
50 |
Anomalie:
· un nuovo fornitore non può “esistere” se non fornisce un prodotto;
· la cancellazione di una fornitura (per es. F8, P9) può
implicare la sparizione di altri dati (per es. una città, un fornitore o un
prodotto);
· se un fornitore cambia città, bisogna aggiornare tutte le
righe relative.
CITTà dipende da FORN; DES_PR dipende da PROD.
CLI |
NOME |
CITTà |
AGENTE |
C1 |
ALFA |
MILANO |
ROSSI |
... |
... |
... |
... |
Anomalie:
·
un nuovo agente non
può essere inserito, se non si acquisisce un cliente;
·
la cancellazione di
un cliente, può trascinarsi quella di un agente;
· la sostituzione di un agente, implica l’aggiornamento di
tutte le righe relative.
AGENTE dipende da CITTà che
dipende da CLI
(dipendenza transitiva)
Data
Base
(14)
I n t e g r i t à d e i
D a t i
1.
Integrità
semantica (valori corretti, controllo di range, procedure di
controllo coerenza eventuali dupicazioni, etc.), vincoli funzionali/contestuali,
evolutivi.
2.
Integrità di
contesa:
-
gestione degli accessi e blocco risorse contese;
- problema dead-lock che si può verificare se più operazioni accedono
a più risorse.
3.
Integrità
referenziale: i riferimenti
tra tabelle (chiave esterna) devono essere corretti ed esistenti.
Ad esempio, se si cancella un cliente non vi devono essere
operazioni che si riferiscono a quel cliente (neanche di tipo storico
statistico); stesso discorso per fornitori, articoli, etc. Se ad un codice
cliente si cambia il cliente reale, si può provocare una mescolanza tra
operazioni del vecchio e del nuovo cliente.
4.
Integrità di
entità: un attributo che partecipa ad una chiave primaria non può
avere valori nulli.
L i m i t i d e i
D a t a B a s e R e l a z i o n a l i
· attributi
elementari (vietate matrici,
record, etc.);
· righe non varianti, cioé i dati non possono dipendere da altri attributi
==> proliferazione di tabelle e/o di attributi.
· tabelle
normalizzate ==> alto numero
di tabelle.
Tutti gli effetti tendono ad accrescere la complessità in termini di tabelle e corrispondenze
tra esse.
Le
operazioni su una molteplicità di tabelle comportano inefficienze ed incrementano
il rischio di blocchi, specie su database distribuiti.