Informatica 3 Liceo Scientifico Scienze Applicate/Modelli di Database: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 4:
<br />
===File di Records===
Il tipo piu' semplice di organizzazione per registrare i dati di una singola tabella e' il file di records.Per capire come e' fatto e per imparare la terminologia tecnica da usarsi quando si parla di database pensiamo a come possiamo registrare i dati anagrafici degli studenti di questa classe usando un foglio di calcolo .La prima cosa e' quella di creare una tabella, vogliamo ad esempio registrare per ciascun alunno il nome, il cognome e l'età, per motivi organizzativi diamo a ciascun alunno un numero progressivo partendo da 0,1,2 ... etc (la scelta di partire da 0 invece che da 1 e' per ora inconsueta ma ci consente qualche vantaggio che vedremo successivamente).Ora per preprarepreparare la tabella nella prima riga mettiamo i titoli delle colonne ID,Nome,Cognome,Eta e poi nelle righe successive inseriamo i dati di ciascun alunno come in figura. <br />
[[File:Tabella.png|400px|centro|Esempio di record]]
<br /><br />
 
I dati di ciascuna riga , esclusa la riga dei titoli, prendono il nome di '''record''' , un record e' un insieme di informazioni unite logicamente fra di loro , nel nostro caso su una certa riga troviamo un ID,un nome e un cognome e una età che appartengono alla stessa persona(ecco il legame logico). I titoli di ciascuna colonna vengono chiamati '''campi''', e l'insieme di tutti i campi con in piu' informazioni sul tipo di dato contenuto in quella colonna vengono chiamati '''tracciato del record'''.<br />
Ad esempio si dice che nome e' un campo della tabella o un '''campo del record''', mentre se fornisco le seguenti informazioni <br />
{| class="wikitable"
|-
Riga 23:
 
|}<br />
queste esplicitano il '''tracciato del record''', cioe' la sua struttura, ricordo che una stringa e' una sequenza di caratteri che nel caso di codifica ASCII occupano ciascuno un byte, in questo caso pensiamo che le stringhe utilizzate siano a lunghezza fissa, cioè se scrivo MARCO viene registrato il nome seguito da tanti caratteri spazio fino ad arrivare a 25 caratteri complessivi, quindi scrive MARCO o GIANLUCA per strano possa apparire richiede sempre 25 caratteri.Il campo ID e' detto '''chiave primaria''' , una chiave primaria è un campo che identifica univocamente ciascun record della tabella.Generalmente in ambito fiscale per identificare una specifica persona si usa il suo codice fiscale. La '''chiave primaria può essere anche composta''' da 2 o più campi ad esempio se non ci sono casi di omonimia potevo prendere assieme i campi Nome e Cognome e utilizzarli come chiave primaria, la scelta però di un indice progressivo come in questo caso mi permette di superare anche il problema di eventuali omonimie ed e' per questo preferibile.L'insieme di tutti i record e' detto '''tabella''' e l'insieme di tutte le tabelle costituiscono il nostro '''database''' <br />
[[File:Tracciato record.png|600px|centro|Questo è un record di 68 byte (1 byte = 8 bit)</div>]]<br />
 
Ora pensiamo di registrare sequenzialmente le informazioni di ciascun record su un file ('''file di records'''), ogni record occupa sempre (con questo esempio) 68 byte , ricordo che un byte=8bit, un file e' una lunghissima sequenza di bit 0000101010101001010 .... in cui i primi 68byte rappresentano il record zero, i successivi 68byte il record 1 etc. Per poter leggere un particolare record di cui conosco l'ID basta allora posizionarsi all'inizio del file e spostarsi da li della quantita 68*numeroID (ecco il motivo per cui sono partito da zero con i valori dell'ID), senza dover leggere tutti i dati dei records che lo precedono, se devo leggere il record 3237 devo allora<br />
[[File:File di record.png|700px|centro|File di record]]<br />
Ripetendo In un file di record, il computer, per trovarne uno specifico record all'interno del file di records, moltiplica il numero della sua chiave primaria per il numero di byte che compongono ciascun record.
Ad esempio, nella seguente tabella formata da records di 68 byte, per trovare il record che come chiave primaria ha il numero 3237, il computer moltiplica questa cifra per 68 (il numero di byte sopra scritto), e di conseguenza risale al record richiesto.Questo rende estremamente veloce l'accesso/ricerca di singoli record.<br />
Riga 35:
===Modello Gerarchico===
<br />
Il '''modello gerarchico''' è un modello di database nato nel 1960 e largamente utilizzato assieme a quello reticolare per oltre un trentennio , e' molto veloce e la ricerca dei dati procede in un modo gerarchico ,l'organizzazione delle tabelle in esso contenute e' detta struttura ad albero (tree), esiste una tabella principale da cui dipartono delle sottotabelle, le sottotabelle possono avere a loro volta delle ulteriori sottotabelle e cosi via, quando si ricerca una informazione si parte sempre dalla tabella principale scendendo poi eventualmente in una delle sottotabelle e da questa alle sottotabelle collegate e cosi via, in pratica l'accesso dei dati e' vincolato e procede solo dall'alto al basso. <br />
Il '''modello gerarchico''' è il database più veloce perché segue un percorso prefissato, si parte infatti dalla ''radice'' per passare a delle ''foglie'', le quali possono contenere ulteriori foglie (sono i ''nodi''). Questa disposizione è chiamata ''struttura ad albero'' <br />
Vediamo un esempio di modello gerarchico prendendo come spunto una grande azienda come la [https://it.wikipedia.org/wiki/Fiat_S.p.A. Fiat]:
 
[[File:Gerarchico.png|Gerarchico]]<br />
In termini informatici dove la struttura ad albero e' una struttura dati ampiamente utilizzata la terminologia impiegata e' la seguente <br />
* ciascuna tabella e' un nodo dell'albero
* la tabella principale (che e' un nodo) e' detta ''radice dell'albero''
* le tabelle senze ulteriori tabelle collegate direttamente sono dette ''foglie''
* gli archi orientati che collegano le tabelle ( e che indicano il possibile verso di ricerca) sono detti rami
pensando che l'albero rappresenti un albero genealogico si parla anche di
* nodo figlio di un certo nodo (discendente diretto)
* nodo padre di un certo nodo (ascendente diretto)
 
Per vedere l'albero dovete guardare la figura capovolta , la radice rappresenta infatti la base dell'albero. Se invece di tabelle i nodi rappresentassero delle parole l'albero (albero binario di ricerca B-Tree) potrebbe rappresentare un dizionario e 'altezza max dell'albero e' un importante indice della velocita' di ricerca, a parita di nodi sono meglio gli alberi compatti.
Una struttura ad albero viene impiegata per rappresentare il files system (organizzazione di file e cartelle) o le voci del registro di configurazione di windows.
 
Ritornando al nostro database gerarchico questo e' ancora largamente utilizzato ( banche , telecomunicazioni, geografia) dove e' richiesta elevata velocita' nella ricerca dati. La struttura ad albero non consente una ricerca libera (magari partendo da una tabella qualsiasi e non ci consente di risalire da un nodo figlio al nodo padre) e quindi giudicato poco flessibile nei confronti del modello reticolare e peggio ancora nei confronti del modello relazionale, richiede inoltre che alcune informazioni siano duplicate diventando cosi sensibile a problemi di inconsistenza.
 
 
 
===Modello Reticolare===