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 47:
 
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 e [https://en.wikipedia.org/wiki/B-tree 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 ad esempio impiegata per rappresentare il files system (organizzazione di file e cartelle) o le voci del registro di configurazione di windows. Anche l'organizzazione di dati tramite XML (1990) usa una struttura gerarchica
 
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 (quando si devono risolvere associazioni N:M)diventando cosi sensibile a problemi di inconsistenza.
 
 
Riga 56:
<br />
Il '''modello reticolare''' è un database che mantiene la velocita' di quello gerarchico e ne aumenta la flessibilità di ricerca al prezzo di una maggiore complessita' a livello di sviluppo (programmazione).
La struttura è a ''grafo non orientato'' : ile datitabelle sono collegaticollegate da degli ''archipercorsi bidirezionali'' percorribili in entrambi i sensi. In questo modello non esiste una tabella principale, tutte le tabelle sono ugualmenti importanti , i collegamenti fra tabelle sono percorribili quando ricerco l'informazione in entrambi i sensi ( dalla tabella A a buellaquella B e viceversa) senza dover seguire un ordine gerarchicoparticolare di ricerca come nel precedente modello.
Il grafico è il seguente: <br /> [[File:Reticolare.png|Reticolare]]<br />
 
Questo modello è usato anche per soprattutto per programmare i percorsi delle mappe multimediali o nei [https://it.wikipedia.org/wiki/Sistema_di_Posizionamento_Globale GPS].
 
<br />
 
Ogni collegamento bidirezionale e' realizzato internamente con una tabella, con due colonne una che rappresenta la chiave primaria della prima tabella e una che rappresenta la chiave primaria della seconda. Concretamente se la prima tabella rappresenta i clienti e la seconda le fatture , pensando che il cliente con ID 7 (chiave primaria della prima tabella) abbia le fatture n.56 n. 23 e n. 345 (pensiamo che queste siano chiavi primarie della 2 tabella) allora nella tabella che rappresenta il collegamento devo trovare:<br />
===== Chiave primaria =====
 
Gli archi direzionali sono composti da delle tabelle che contengono a loro volta le chiavi primarie per passare da un dato a un altro.
{| class="wikitable"
La ''chiave primaria'' è un insieme di uno o più campi che identificano uniformemente ciascun ''record'' (insieme di dati uniti logicamente tra loro). Molto spesso come chiave primaria si usa il codice fiscale di una persona. <br />
|-
! Id Cliente !! Idfattura
|-
| 7 || 56
|-
| 7 || 23
|-
| 7|| 345
|}<br />
questa tabella permette di trovare dato l'IdCliente (7) le sue fatture ( 56,23,345) e poi di ricavare i dati delle corrispondenti fatture nella tabella fatture, oppure, data una particolare fattura (23) di risalire al cliente (7) per poi leggere i dati di quel cliente presenti nella tabella Clienti (record 7)
<br />
[[File:Chiavi primarie.png|Chiavi primarie]]