Base di dati
Rappresentazione dell'informazione
Uno smartphone, un istituto bancario e il motore di ricerca Google hanno in comune una sola cosa: il bisogno di memorizzare qualcosa del mondo che ci circonda. Per queste necessità ci si affida alle basi di dati che contengono informazioni su una porzione di mondo ben definita, la rappresentazione di un frammento di realtà di interesse. Questo frammento di realtà a cui siamo interessati prende il nome di "Dominio di interesse". Ma una qualsiasi rappresentazione di realtà è sempre un surrogato, in quanto non può contenere tutti gli elementi di una realtà. Proprio per questo, può risultare utile consentendo di avere informazioni sulla realtà senza un contatto diretto. Questo non è nato con l'informatica. La realtà ha un numero di dettagli innumerabili quindi qualsiasi sia la scelta del progettista vi sarà un compromesso tra economicità della rappresentazione e una completezza di informazioni, tutto quello che serve, riportato in simboli. Poiché se si utilizzasse il metodo del linguaggio discorsivo sarebbe impossibile cercare qualcosa tra questi con tanto di costruzione di frasi ambigue.
Livelli di astrazione
- La prima fase consiste nello scrivere le lettere, associandole ai suoni.
- La seconda fase è invece la costruzione di parole combinando le lettere precedentemente imparate. Servizio offerto dalle lettere, un livello basso di astrazione più vicino al mondo fisico.
- La terza fase si creano frasi cioè una sequenza di parole, in questo caso dimentichiamo il fatto che le parole siano rappresentate attraverso le lettere. Si possono notare livelli di astrazione anche nell'informatica.
I sistemi di gestione di basi di dati sono concepiti per offrire strumenti più comodi per risolvere problemi di rappresentazione, costituiti da un certo modello di dati, ossia il linguaggio di rappresentazione dei dati. Definito come 'modello relazionale' Le strutture sono rappresentate da tabelle, sarà compito del DBMS rappresentare le stesse con un modello più basso ovvero i file, senza che l'utente se ne debba occupare personalmente.
- Modello di tipo fisico: file
- Modello logico: concreto su computer.
- Modello concettuale: ausilio per basi di dati.
Indipendenza fisica dei dati in quanto è possibile modificare la rappresentazione fisica senza intaccare quella logica.
- Sintattica: non sono comprensibili a noi, infatti se ne accorge il software.
- Semantica: sono chiamati bug
Le tabelle
Le tabelle nella base di dati hanno una struttura che riflette le caratteristiche del dominio di interesse, con questo bisogna stabilire:
- Quante tabelle si vogliono rappresentare, assegnando un nome ad ogni tabella.
- Come sono fatte tali tabelle, cioè quante colonne ha ogni tabella.
Una volta presa questa decisione può essere impossibile da modificare. Se sono già stati inseriti dei dati può essere difficile inserire informazioni prima della modifica. Ogni fatto della realtà dovrà stare in un posto come riga di una o più tabelle. L'abilità sta nel progettare una base di dati con una struttura in grado di accogliere tutti i dati che si potranno presentare nel futuro con una piena comprensione del dominio di interesse. (tabella Rubrica pagina 5)
Si potrebbero però creare dei problemi:
- Casi di omonimia: Potremmo avere 2 amici con lo stesso nome e cognome, sarebbe quindi opportuno distinguerli con il codice fiscale.
- Problemi di efficienza: Potremmo memorizzare gli amici in ordine alfabetico ma alla domanda 'quale amico ha il numero di telefono...' non risolverebbe le cose.
- Problemi di rappresentazione: Cosa succede se abbiamo solo una colonna per i numeri di telefono e cosa accadrebbe se i numeri di telefono di un amico fossero due?
Quest'ultimo problema è causato da una progettazione non corretta e ciò non si risolve inserendo più colonne con i numeri di telefono in quanto, se ne avesse 3? Ma nemmeno inserendo più righe con lo stesso nome, i problemi potrebbero essere: Informazioni inutilmente ripetute "ridondanze", modificare più righe per uno sbaglio o un cambiamento o addirittura informazioni incompatibili con diverse informazioni per la stessa persona "inconsistenza". Con questi quesiti la rappresentazione sarebbe inefficiente. L'unica soluzione è creare più tabelle con all'interno un'informazione di servizio che ci permetta di identificare la persona come il codice fiscale in questo caso.
Modelli dei dati e indipendenza dei dati
Vi sono differenti modelli di rappresentazione:
- Modelli concettuali: Usati durante il progetto delle basi di dati, per catturare gli aspetti di interesse della realtà. (i più astratti, per la progettistica)
- Modelli logici: Sono usati per la rappresentazione dell'informazione in una base di dati e quindi l'interazione tra utente e DBMS. La modella relazionale e quello gerarchico sono esempi di modelli logici, strutturati ad albero. (permettono di comunicare con il DBMS che traduce le operazioni in livello fisico)
- Modelli fisici: Utilizzati dal DBMS per memorizzare i dati sui dispositivi di archiviazione.
Il modello è una modalità di rappresentazione prescelta o anche definito linguaggio di rappresentazione. Lo schema è invece l'organizzazione dei dati riferita alla base di dati rappresentata. Quando spostiamo i dati da un DBMS all'altro per noi utenti la parte visiva non cambia nulla anche se a livello di memorizzazione magari è tutto completamente diverso, questo prende il nome di 'indipendenza fisica dei dati' dove è possibile modificare la struttura dei dati a livello fisico senza che il modello logico ne risenta.
I vantaggi delle basi di dati
L'utente in questo caso ha la possibilità di lavorare con le basi di dati:
- Grandi: Le basi di dati possono raggiungere dimensioni notevoli.
- Condivise: Può essere condivisa tra utenti con determinati permessi di accesso.
- Affidabili: Una base di dati può essere distribuita su più nodi di elaborazioni, esse sono in grado di replicare su più macchine anche lontane tra loro.
Allo stesso tempo il DBMS opera in modo:
- Efficace: In quanto semplice che permette agli utenti di vedere le informazioni che sono organizzate in modo leggibile e risolvere problemi articolati e complessi.
- Efficiente: Ottimizzata sullo spazio di archiviazione e sui linguaggi potenti che consentono di sviluppare programmi necessari.
Capitolo 2. Fondamenti matematici
Proposizioni
Una proposizione matematica è un'affermazione che può essere vera o falsa. È possibile costruirne altre attraverso operatori logici:
- Operatore NOT: con simbolo – si applica ad un’unica proposizione 'P' e ne inverte il valore di verità. Si legge 'not P' (se P è falsa -P è vera e viceversa).
- Operatore AND: ha come simbolo ^ si applica a due proposizioni P e Q è vera solo se entrambe le proposizioni sono vere.
- Operatori OR: ha come simbolo V si applica a due proposizioni P e Q e si applica se almeno una delle sue è vera o se entrambe sono false.
- Operatore di implicazione logica: P → Q (p implica q).
Capitolo 3. Lavorare con una tabella
Le tuple sono le righe delle tabelle, costituite da un valore per ciascun attributo dello schema. Inoltre, il nome dell'attributo deve avere sempre un sostantivo singolare, nel caso sia plurale stiamo sbagliando qualcosa! Valore null: assenza di dati poiché non presente o perché non lo abbiamo a disposizione, i valori per il quale sono ammessi, hanno un carattere opzionale. Schemi e istanze: Lo schema di una base di dati cattura a livello logico la struttura del dominio di interesse, esso non cambia o con molta lentezza. L'istanza: invece contiene i dati veri e propri che rappresentano gli oggetti del mondo reale che invece cambiano molto spesso.
Gestione delle tabelle nei sistemi relazionali. Linguaggi per le basi di dati. Definito il modello relazionale bisogna definire il suo linguaggio in modo che l'utente sappia come creare relazioni, inserire tuple ed effettuare ricerche attraverso un linguaggio per basi di dati, ovvero artificiale che sia unico per ogni di esse in modo che se si cambiasse DBMS, i suoi dati rimarrebbero invariati. Questi consentono di formulare comandi che possono essere interpretati senza ambiguità. Questi sono classificati in base alle sue finzioni.