Sei sulla pagina 1di 7

LE BASI DATI

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.

Le basi dati vengono rappresentate in due modi:


1) Modello concettuale, cosa deve fare la base dati, anche tramite schemi.
2) Modello logico, lo sviluppo effettivo della base dati.

Le basi dati possono essere:

1) relazionali → tabelle
2) gerarchiche → albero
3) reticolari → grafo

Una risorsa si dice integrata quando è accessibile in qualsiasi momento.

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.

FILE SYSTEM O DBMS

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;

Le informazioni sono rappresentate da dati ed è essenziale che vengano gestite correttamente ed


efficientemente.

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.

SISTEMA INFORMATIVO E INFORMATICO

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.

I modelli logici sono formati da due parti: lo schema e l’istanza:


● Lo Schema descrive la struttura di ogni tabella (intestazione/intensione), è la parte che non cambia;
● L’Istanza, il contenuto, è la parte variabile nel tempo (righe della tabella/estensione), anche
rapidamente - fotografia della base dati ad un certo tempo t;

Si possono rappresentare i dati con modelli diversi, a livelli diversi di astrazione:

- 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);

Il modello concettuale serve per implementare il modello logico.

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;

- DBMS si pone tra il livello logico e il livello fisico/interno

● 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.

Nel sistema relazionale si interroga il database e si vengono restituite le tabelle richieste.

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.

I requisiti della realtà fanno parte del modello concettuale.

INDIPENDENZA DEI DATI


Capacità di separare lo schema logico dallo schema interno, da come verrà rappresentato fisicamente nel
sistema;
permette di interagire con il DBMS in modo indipendente
dalla struttura fisica.

Questo ha garantito il successo del modello logico relazionale

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.

Il livello logico ed esterno sono indipendenti dalla modalità di memorizzazione.


La struttura fisica dei dati può essere modificata senza che vengano modificate le applicazioni che la usano.

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.

● indipendenza logica, consente di modificare lo schema esterno indipendentemente dallo


schema logico.
E’ possibile modificare il livello logico mantenendo inalterate le strutture esterne, purché le
dipendenze non siano alterate, stessa cosa per il caso contrario, è possibile aggiungere,
togliere o modificare una vista senza che lo schema logico si alteri in alcun modo ;

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

LINGUAGGI PER LE BASI DATI

Come accedere ai dati?


Modo di accedere ai dati semplificato, attraverso un linguaggio di programmazione convenzionale (C, Java,
python) per generare un’interfaccia utente amichevole (noSQL), in questi vengono incastonate le primitive
in SQL per accedere alle basi dati (unico linguaggio per accedervi).

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.

Microsoft access, non ha la gestione delle concorrenze, è piccolo.

● 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 presenta in forma integrata entrambe le funzionalità di DDL e di DML.


Java, C, python linguaggi ospite perché "ospitano" comandi scritti nel linguaggio per basi di dati (SQL).

SQL è il linguaggio per interrogare le basi dati ma esistono varie versioni di SQL che si adattano a un
determinato linguaggio “ospitante”.

L'accesso ai dati può essere effettuato con varie modalità:

● tramite linguaggi testuali interattivi,


● tramite comandi simili a quelli interattivi immersi in linguaggi di programmazione,
● tramite comandi simili a quelli interattivi immersi in linguaggi di sviluppo ad hoc,
● tramite interfacce amichevoli che permettono di sintetizzare interrogazioni senza usare un
linguaggio testuale.

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.

VANTAGGI DEI DBMS

- 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).

Ridondanza, scrivere la stessa informazione più volte


Inconsistenza, presenza di informazioni non coerenti tra loro.

SVANTAGGI DBMS

I DBMS sono prodotti costosi, richiedono:


● investimenti diretti, l’acquisto del prodotto in sé
● investimenti indiretti, acquisizione delle risorse hardware e software per il suo utilizzo,
formazione del personale e conversione delle applicazioni.

Non è possibile scorporare servizi non utilizzati che possono provocare una riduzione delle prestazioni.

Potrebbero piacerti anche