Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Le basi dati sono raccolte di dati utilizzate per rappresentare le informazioni di interesse;
possono essere relazionali, cioè si basano sulle relazioni, utilizzando delle tabelle. Non tutte le tabelle
definiscono una relazione.
1) relazionali → tabelle
2) gerarchiche → albero
3) reticolari → grafo
Le basi di dati sono integrate, cioè sono condivise con tutti gli utenti che vi accedono, per esempio, una
biblioteca è un struttura integrata.
Se i dati non fossero integrati ci potrebbero essere delle incongruenze tra una tabella personale di un soggetto
all’altro.
Occorrono dei meccanismi di gestione degli accessi concorrenti, in contemporanea.
La gestione dati può essere tramite file system o DBMS (= Database management system), il secondo mette
a disposizione molti più vantaggi.
Sistema di gestione di base di dati (DBMS = Database management system) è un sistema software che è in
grado di gestire collezioni di dati che siano:
- grandi, dimensioni maggiori della memoria centrale;
- condivise, gestisce le concorrenze e ordina gli accessi, regolano le modalità di scrittura (transazione,
messa a disposizione del dbms per gestire concorrenze);
- persistenti, l’esistenza dei dati non è legata al tempo di vita del programma in esecuzioni;
Devono garantire assicurando affidabilità e privatezza con efficienza ( tempo spazio) ed efficacia.
File System
Il File System è un sistema di memorizzazione dati basato su file locali e puntatori. Questo causa nulla
ridondanza e possibile inconsistenza nel DB.
Organizzazione ISAM, costruisce un indice, che è una tabella di appoggio che custodisce la chiave. Da
questo file indice ci si riferisce all’indice della tabella principale.
Nel File System le risorse non sono integrate, cioè ognuno ha la sue tabella personale che non sempre
corrisponde alle tabelle degli altri.
DATI E INFORMAZIONI
La differenza tra dati e informazioni è la semantica del dato, il dato è senza un contesto, senza la chiave di
interpretazione non ci restituisce nulla, invece le informazioni sono definite da una chiave semantica;
I dati sono simboli grezzi che devono essere interpretati e correlati per fornire un significato, grazie alla
semantica.
dati + semantica = informazione
informazione = conoscenza/potere
I dati sono stabili nel tempo rispetto ai processi che li gestiscono. Le strutture di dati sono mediamente
costanti nel tempo, mentre i sistemi di gestione vengono modificati spesso nel tempo.
Un sistema informativo organizza e gestisce le informazioni per perseguire gli scopi dell’informazione stessa.
Il sistema informatico è una porzione automatizzata del sistema informativo.
BIAS COGNITIVO: distorsione del modo in cui vengono percepite le cose dal cervello. Siamo propensi a
pensare e ad avvalorare ciò in cui già crediamo, cose che vadano ad affermare i nostri preconcetti, scartando
ciò che ci va contro.
ORGANIZZAZIONE DBMS
Sono memorizzati secondo un modello dei dati, per i database relazionali il modello è a tabelle.
La semantica dei dati è la prima riga , l'intestazione delle tabelle (intensione - significato dei dati / estensione -
istanza della tabella) perché contiene il tipo di dato delle colonne.
La struttura è fissa, ogni tabella ha la stessa struttura e le tabelle vengono chiamate relazione.
- Modello concettuale (cosa), permette di rappresentare i dati in modo indipendente dal modello
logico del DBMS, è indipendente da ogni considerazione di implementazione.
Si utilizza il modello concettuale prima del modello logico per analizzare la realtà perché passare
direttamente al modello logico è troppo difficile;
- Modello logico (come), è un insieme di concetti utilizzati per organizzare i dati e descriverne la
struttura.
contiene la definizione delle tabelle, per il modello logico dobbiamo scegliere con che modello
vogliamo rappresentare i dati (deve essere in terza forma normale, fato bene);
analisi dei requisiti (parte difficile) → modello concettuale → mapping → modello logico
La tabella è l’astrazione del file. La tabella si troverà in un file ma noi non sapremo dove e non dovremo
lavorarci.
Architettura a tre livelli del DBMS (ANSI/SPARC) per garantire l’indipendenza dei dati, capacità di
astrarre completamente dai meccanismi di gestione dei dati e capacità di offrire una visione dei dati differente
per ogni utente:
● Schema interno o fisico, rappresentazione dello schema logico mediante strutture fisiche di
memorizzazione/rappresentazione;
● Schema logico, descrive la base dati secondo il modello logico, rappresentazione della base dati
mediante il modello logico del DBMS;
● Schema esterno, descrizione di parti della base di dati, dette viste, che rappresentano la prospettiva
di un determinato tipo di utenti.
E’ definito sul modello logico. Riduce sia lo schema che le istanze;
Cardinalità - grado
Lo schema interno si pone in mezzo tra schema logico e il DB sul disco ( dove sono messe le tabelle, come
vengono gestite), il DBMS si pone tra schema logico e schema interno, cosicché non si debba interagire
direttamente con lo schema interno e il disco.
Lo schema esterno (vista) è ciò che viene fornito come prodotto finale, utenti diversi hanno bisogno di
visualizzare dati diversi.
→ Lo schema esterno è una partizione dello schema logico che viene resa disponibile, sono utili per vedere i
dati in modo più semplice.
MODELLI LOGICI
● Modello relazionale, si basa su concetti matematici (= base solida) rappresentati da record ma non
sono associate a puntatori bensì collegamenti tra tabelle, modello a tabella ( relazioni ).
Rappresentazione tramite relazione => garantisce l’indipendenza fisica dei dati.
righe → record
colonne→ campi
● Modello gerarchico, rappresentato da record e sono associate da puntatori, modello ad albero (
rappresentazione tramite puntatori => no indipendenza fisica dei dati )
● Modello reticolare, sono rappresentate da record e associazioni sono rappresentate da puntatori,
modello a grafo ( rappresentazione tramite puntatori => no indipendenza fisica dei dati )
● Modello ad oggetti, i dati sono rappresentati da oggetti che hanno uno stato (attributi) e dei
componenti (funzioni).
● Modello xml, rivisitazione del modello gerarchico
● Modello semistrutturato e flessibile, (sistemi noSQL), cercano di superare le limitazioni dei
sistemi relazionali.
Ogni DBMS viene organizzato con un modelli logico, che riflette una particolare organizzazione dei dati.
Con il modello logico non si sceglie il tipo di DBMS, ma si adatta il modello logico al DBMS.
Il programma non vede i file ma le tabelle, non vede come sono rappresentate in memoria.
Senza il modello relazionale, se si cambia la struttura fisica dei dati bisogna cambiare anche i programmi che
li gestiscono → costerebbe ore uomo e costerebbe in manutenzione.
L'indipendenza dei dati può essere caratterizzata come indipendenza fisica e logica:
● indipendenza fisica, ogni volta che la struttura di una tabella deve essere modificata, le
applicazioni che usano quella tabella non devono essere cambiate (disaccoppiamento tra il
modello logico e fisico).
E’ possibile modificare le strutture fisiche senza influire sui programmi che utilizzano i dati.
Nel modello relazionale non si fa riferimento ad aspetti fisici (come i puntatori) e dunque si realizza
l’indipendenza del modello logico da quello fisico
SQL è l’unico linguaggio per l’accesso alle basi dati ed è interpretabile da tutti (ci sono diversi SQL e non
sono tutti compatibili, però è sempre SQL).
Non contiene strutture di controllo (if, for, while) e non permette la modifica delle viste.
Interfacce amichevoli per l’interazione con i dati.
Esistono linguaggi nativi dei vari prodotti, semplificati rispetto a C e JAva, pensati direttamente per
gestire i db, derivanti da SQL ma che non sono compatibili per tutti i prodotti.
● Data Definition Language ( o DDL), serve per creare gli schemi, definire schemi logici, esterni e
fisici e le autorizzazioni per l’accesso, va a lavorare su quella che è l’intensione.
Lavora sugli schemi
● Data Manipulation Language (o DML), serve per interrogare e aggiornare le istanze del db, va a
lavorare sull’estensione dei dati.
Lavora sui dati, tutte le query/interrogazioni ai dati.
SQL è il linguaggio per interrogare le basi dati ma esistono varie versioni di SQL che si adattano a un
determinato linguaggio “ospitante”.
UTENTI
→ Progettisti e programmatori definiscono le relazioni, la struttura della base dati e i programmi che vi
accedono.
→ Programmatori,
→ Utenti che usufruiscono dei servizi messi a disposizione dalle applicazioni che interagiscono con le basi
dati:
● utenti finali, utilizzano transazioni, cioè programmi che accedono alle basi dati e realizzano
attività predefinite (svolge sempre le stesse azioni indipendentemente da chi lo esegue, variando solo
nei parametri).
Per garantire affidabilità delle operazioni, le azioni vengono eseguite i blocchi.
es: bonifico bancario, prenotazione per volo.
→ Le transazioni devono essere affidabili, perciò mettono sotto vincolo le operazioni da svolgere in
modo che l’operazione venga conclusa solo nel momento in cui tutte le azioni necessarie siano
concluse; in caso di interruzione se tutte le azioni non saranno svolte, non verranno contate neanche
quelle fatte.
● utenti casuali, formulano interrogazioni non predefinite mediante i linguaggi interattivi di accesso
alla base di dati, riesce a scrivere query.
- Consentono di strutturare i dati in modo condiviso tra chi vi accede, per ridurre la ridondanza
(le repliche) in modo che non si verifichino inconsistenze.
- L’indipendenza dei dati, il DBMS si occupa della gestione dei dati senza che l’utente ci si debba
interfacciare.
La base dati deve avere ridondanza minima (chiave esterna/chiave interna, essenziale per la rappresentazione).
SVANTAGGI DBMS
Non è possibile scorporare servizi non utilizzati che possono provocare una riduzione delle prestazioni.