Appunti: Indici B tree e hash

Appunti sui B tree e le strutture hash, coprendo le basi, le funzioni, le operazioni e i confronti tra queste due tecnologie di indicizzazione nei database.

AndreaD8·56 schede·56 domande·1 visualizzazioni
universitàcomputer_sciencedatabases
0
Lo so
1 / 56
0
Sto imparando
Fronte

Cos'è un B tree?

Tocca per girare
Retro

È una struttura dati auto-bilanciata che mantiene i dati ordinati e consente ricerche, inserimenti e cancellazioni efficienti.

Tocca per girare
Lo so
Sto imparando

Quiz(56 domande)

Domanda 1 di 56

1. Qual è il risultato di un'inserimento che causa uno splittaggio in un nodo?

Termini in questo set(56)

Introduzione ai B tree(16)

Cos'è un B tree?

È una struttura dati auto-bilanciata che mantiene i dati ordinati e consente ricerche, inserimenti e cancellazioni efficienti.

Caratteristica principale dei B tree

I B tree sono progettati per minimizzare il numero di accessi al disco grazie alla loro altezza ridotta.

Vero o falso: i B tree possono avere più di due figli per nodo.

Vero, i B tree possono avere un numero variabile di figli per nodo, aumentando l'efficienza.

Qual è l'ordine di un B tree?

L'ordine di un B tree è il numero massimo di figli che un nodo può avere. Un B tree di ordine m può avere al massimo m-1 chiavi.

Cosa significa che un B tree è bilanciato?

Significa che tutti i fogli si trovano alla stessa profondità, garantendo tempi di accesso uniformi.

Vantaggi dei B tree

- Accesso rapido ai dati - Efficienza nelle operazioni di ricerca - Crescita dinamica senza ridimensionamento

Inserimento in un B tree

Quando un nodo supera il numero massimo di chiavi, si divide in due, e la chiave centrale viene promossa.

Qual è la formula per calcolare la profondità di un B tree?

La profondità massima è d=extnumerototaledinodim\displaystyle d = \frac{ ext{numero totale di nodi}}{m}, dove m è l'ordine del B tree.

Differenza tra B tree e B+ tree

In un B+ tree, solo i fogli contengono i dati, mentre i nodi interni servono solo per la navigazione.

Cosa succede durante la cancellazione in un B tree?

Se un nodo scende sotto il numero minimo di chiavi, può fondersi con un nodo vicino o prendere in prestito una chiave.

B tree e accesso sequenziale

I B tree supportano l'accesso sequenziale ai dati grazie alla struttura dei nodi foglia collegate tra loro.

Vero o falso: i B tree sono sempre più lenti dei B+ tree.

Falso, i B tree possono essere più lenti in alcune operazioni, ma la differenza dipende dall'uso specifico.

Cos'è un nodo interno in un B tree?

Un nodo interno è un nodo che non è un foglio e contiene punteggiature per dirigere la ricerca.

Cosa sono le chiavi in un B tree?

Le chiavi sono gli elementi utilizzati per ordinare i dati all'interno dei nodi del B tree.

Efficienza del B tree

La complessità temporale per ricerca, inserimento e cancellazione è extO(extlogmn)\displaystyle ext{O}( ext{log}_m n).

Qual è la struttura di un nodo in un B tree?

Un nodo in un B tree contiene: - Un certo numero di chiavi - Puntatori ai nodi figli - Una chiave rappresentativa che permette di mantenere l'ordinamento delle chiavi nel nodo.

Operazioni sui B tree(16)

Inserimento in un B tree

L'inserimento comporta trovare la posizione corretta per un nuovo nodo e, se necessario, splittare i nodi per mantenere l'equilibrio.

Cosa accade durante la cancellazione?

La cancellazione potrebbe richiedere il merging di nodi per mantenere le proprietà del B tree.

Cosa è un nodo foglia?

Un nodo foglia è un nodo che non ha figli. Contiene valori e serve per il recupero dei dati.

Ricerca in un B tree

La ricerca è effettuata seguendo i puntatori dai nodi fino a trovare il valore cercato.

Vero o falso: I B tree sono sempre bilanciati.

Vero. I B tree mantengono una struttura bilanciata per garantire una complessità di ricerca logaritmica.

Qual è la complessità dell'inserimento?

La complessità dell'inserimento in un B tree è O(extlogb(n))\displaystyle O( ext{log}_b(n)), dove b\displaystyle b è il numero massimo di figli.

Cosa è un nodo interno?

Un nodo interno è un nodo che ha almeno un figlio. Contiene puntatori e chiavi per la navigazione.

Esempio di splittaggio

Se un nodo ha 4 chiavi e deve inserire una quinta, si splitta e si promuove la chiave centrale.

Quali operazioni possono causare il rifacimento del B tree?

L'inserimento e la cancellazione possono causare operazioni di rifacimento per mantenere la struttura bilanciata.

Cancellazione di una chiave

La chiave viene rimossa, e se necessario, i nodi vengono fusi o redistribuiti.

Cosa succede se un nodo ha pochi figli?

Se un nodo ha meno del numero minimo di figli, può essere unito con un nodo vicino.

Qual è il massimo numero di chiavi in un nodo?

Il massimo numero di chiavi è definito dall'ordine del B tree, che è un parametro della struttura.

Tipi di operazioni sui nodi

- Inserimento - Cancellazione - Ricerca - Splittaggio

Cosa determina l'ordine di un B tree?

L'ordine determina il numero massimo di figli che un nodo può avere, influenzando direttamente le prestazioni.

Ricerca di una chiave: Procedure

1. Inizia dal nodo radice. 2. Confronta le chiavi. 3. Scendi nel nodo figlio appropriato.

Qual è il vantaggio principale dei B tree?

I B tree riducono il numero di accessi al disco, migliorando così le prestazioni nella gestione dei dati.

Strutture Hash(12)

Cos'è una struttura hash?

È una struttura dati che mappa chiavi a valori, consentendo accessi rapidi.

Vantaggi delle strutture hash?

- Accesso veloce ai dati - Efficienza nella ricerca - Riduzione delle collisioni

Qual è la funzione hash?

Una funzione che trasforma una chiave in un indirizzo di memoria, permettendo l'accesso ai valori.

Cosa sono le collisioni?

Si verificano quando due chiavi diverse generano lo stesso indirizzo tramite la funzione hash.

Come si risolvono le collisioni?

- Chaining: liste collegate - Open addressing: ricerca di spazi liberi

Qual è la complessità di ricerca?

In generale è O(1)\displaystyle O(1) in media, ma può diventare O(n)\displaystyle O(n) in caso di molte collisioni.

Vero o falso: Le strutture hash sono ordinate.

Falso. Le strutture hash non mantengono un ordine tra gli elementi.

Cosa migliora la funzione hash?

Una buona funzione hash riduce le collisioni e distribuisce uniformemente le chiavi.

Esempio di funzione hash semplice:

h(k) = k \bmod n, dove k è la chiave e n è la dimensione dell'array.

Qual è l'overhead di memoria?

Le strutture hash possono richiedere spazio extra per gestire le collisioni e l'allocazione.

Cosa si intende per carico?

Il rapporto tra il numero di elementi e la dimensione dell'array, importante per la performance.

Confronta hashing e ricerca binaria.

Hashing: accesso O(1)\displaystyle O(1) Ricerca binaria: accesso O(extlogn)\displaystyle O( ext{log } n) ma richiede dati ordinati.

Confronto tra B tree e Hash(12)

B tree

Struttura dati bilanciata che mantiene ordinati gli elementi. Permette ricerche, inserimenti e cancellazioni efficienti.

Hashing

Tecnica per mappare dati in una tabella. Utilizza una funzione hash per l'accesso diretto ai dati.

Vantaggi B tree

- Buona gestione dello spazio - Ottimizzato per accesso su disco - Bilanciato in modo dinamico

Vantaggi Hash

- Accesso molto rapido - Semplice implementazione - Buona gestione delle collisioni

Accesso B tree vs Hash

B tree: O(log n) Hash: O(1) nel caso migliore

Quando usare B tree?

Quando sono richiesti accessi ordinati e intervalli di ricerca, come in database con query complesse.

Quando usare Hash?

Quando è necessario un accesso rapido ai dati basato su chiavi uniche, come nelle tabelle di ricerca.

B tree è più lento di Hash?

Vero. B tree ha tempi di accesso più lunghi rispetto a una tabella hash in media.

Hash collision

Si verifica quando due chiavi diverse producono lo stesso indice. Richiede strategie di risoluzione.

B tree e memoria

B tree è più efficiente in termini di uso della memoria rispetto a hash in scenari di grandi dataset.

Cosa succede se B tree è sbilanciato?

La sua efficienza di accesso diminuisce, rendendo le operazioni più lente, vicino a O(n).

B tree supporta quali tipi di operazioni?

Supporta inserimenti, cancellazioni, ricerche e scansioni di intervallo, mantenendo l'ordine degli elementi.

Domande in questo set(56)

1. Qual è il risultato di un'inserimento che causa uno splittaggio in un nodo?

A.Si promuove una chiave al nodo genitore.
B.Il nodo viene eliminato.
C.Tutte le chiavi vengono rimosse.
D.Non cambia nulla.

2. Quale delle seguenti affermazioni descrive meglio un B tree?

A.È una struttura dati bilanciata che mantiene ordinati gli elementi.
B.Utilizza una funzione hash per l'accesso diretto ai dati.
C.È ottimizzato esclusivamente per l'accesso in memoria.
D.Richiede una gestione complessa delle collisioni.

3. Qual è la principale funzione di un B tree?

A.Mantenere i dati ordinati e consentire accessi efficienti
B.Memorizzare dati non strutturati
C.Eseguire solo operazioni di lettura
D.Archiviare dati in formato non relazionale

4. Cos'è un indice hash?

A.È una struttura dati per la ricerca veloce di dati associati a chiavi.
B.È un metodo di ordinamento di dati in un database.
C.È una forma di archiviazione sequenziale.
D.È un tipo di compressione dei dati.

5. Cosa accade se si cancella una chiave da un nodo interno che ha pochi figli?

A.Il nodo viene unito con un altro nodo.
B.La chiave viene ignorata.
C.Non si può cancellare.
D.Viene creato un nuovo nodo.

6. In quale scenario è più appropriato utilizzare una tabella hash?

A.Quando si desidera effettuare ricerche ordinate.
B.Quando si ha bisogno di accesso rapido a dati basati su chiavi uniche.
C.Quando si devono gestire intervalli di ricerca complessi.
D.Quando il dataset è grande e sbilanciato.

7. Qual è un vantaggio dei B tree rispetto ad altre strutture dati?

A.Minimizzare il numero di accessi al disco
B.Avere sempre un solo figlio per nodo
C.Richiedere meno memoria
D.Essere più veloce di un array

8. Quale vantaggio hanno le strutture hash rispetto ad altri metodi di accesso ai dati?

A.Consentono accessi sequenziali ai dati.
B.Hanno un accesso più veloce rispetto a strutture come gli alberi.
C.Richiedono meno memoria rispetto a liste collegate.
D.Sono sempre ordinate.

9. Quali proprietà deve mantenere un B tree dopo un'inserzione?

A.Deve rimanere bilanciato.
B.Deve contenere solo chiavi uniche.
C.Deve avere un solo nodo radice.
D.Deve avere chiavi tutte uguali.

10. Quale vantaggio ha un B tree rispetto a una tabella hash?

A.Accesso diretto ai dati.
B.Gestione migliore dello spazio in grandi dataset.
C.Semplice implementazione.
D.Accesso costante O(1).

11. Un B tree di ordine m può contenere al massimo quante chiavi?

A.m-1 chiavi
B.m chiavi
C.2m chiavi
D.m+1 chiavi

12. Cosa caratterizza una buona funzione hash?

A.Genera sempre collisioni.
B.Distribuisce uniformemente le chiavi nel dominio.
C.Richiede più tempo per il calcolo.
D.Utilizza solo chiavi numeriche.

13. Quale di queste affermazioni è vera riguardo i nodi foglia in un B tree?

A.Contengono solo valori e nessun figlio.
B.Possono avere figli.
C.Hanno sempre il massimo numero di chiavi.
D.Non possono essere rimossi.

14. Qual è la complessità temporale media per accedere a un B tree?

A.O(1)
B.O(log n)
C.O(n)
D.O(n log n)

15. Cosa implica il fatto che un B tree è bilanciato?

A.Tutti i fogli sono alla stessa profondità
B.Ogni nodo ha lo stesso numero di chiavi
C.Può avere solo due figli
D.Le chiavi sono disordinate

16. Come si chiama il metodo in cui le collisioni sono gestite utilizzando liste collegate?

A.Open addressing
B.Chaining
C.Rehashing
D.Compressione dei dati

17. Cosa rappresenta l'ordine di un B tree?

A.Il numero massimo di figli per nodo.
B.Il numero di nodi nel tree.
C.Il livello più profondo del tree.
D.La massima profondità di ricerca.

18. Qual è una delle principali cause di collisione in una tabella hash?

A.Inserimento di dati non ordinati.
B.Due chiavi diverse producono lo stesso indice.
C.Il B tree è sbilanciato.
D.Utilizzo di una funzione hash non ottimale.

19. Cosa accade quando un nodo in un B tree supera il numero massimo di chiavi?

A.Viene diviso e la chiave centrale è promossa
B.Il nodo viene eliminato
C.Le chiavi vengono riorganizzate
D.Non succede nulla

20. Qual è la complessità di ricerca media in una struttura hash ben progettata?

A.O(n)
B.O(log n)
C.O(1)
D.O(n log n)

21. Qual è la complessità temporale media per la ricerca in un B tree?

A.O(log_b(n))
B.O(n)
C.O(1)
D.O(log(n))

22. Quando è più vantaggioso usare un B tree rispetto a una tabella hash?

A.Quando gli accessi sono esclusivamente basati su chiavi.
B.Quando sono richiesti accessi ordinati e intervalli di ricerca.
C.Quando ci sono poche collisioni.
D.Quando il dataset è di dimensioni ridotte.

23. Qual è la caratteristica principale di un B+ tree rispetto a un B tree?

A.Solo i fogli contengono i dati
B.Ogni nodo deve avere lo stesso numero di figli
C.Non può avere nodi interni
D.Le chiavi non sono ordinate

24. Cosa rappresenta il fattore di carico in una hash table?

A.Il numero totale di collisioni
B.Il numero di elementi rispetto alla dimensione dell'array
C.Il tempo di accesso medio
D.La percentuale di memoria utilizzata

25. Se un nodo interno ha più del numero massimo di chiavi, quale operazione si esegue?

A.Splittaggio.
B.Cancellazione.
C.Rifacimento.
D.Aggregazione.

26. Quale delle seguenti affermazioni è vera riguardo alle operazioni supportate da un B tree?

A.Supporta solo inserimenti.
B.Supporta solo ricerche.
C.Supporta inserimenti, cancellazioni e ricerche mantenendo l'ordine.
D.Non supporta operazioni di scansione.

27. Durante la cancellazione in un B tree, cosa può succedere se un nodo ha meno del numero minimo di chiavi?

A.Può fondersi con un nodo vicino
B.Viene sempre eliminato
C.Nessuna azione è intrapresa
D.Aggiunge automaticamente una chiave

28. Quale tra le seguenti affermazioni è falsa riguardo le strutture hash?

A.Le strutture hash possono gestire collisioni.
B.Le strutture hash sono ordinate.
C.Le strutture hash utilizzano funzioni hash.
D.Le strutture hash possono essere inefficienti con molte collisioni.

29. Qual è l'operazione che viene eseguita per mantenere la bilanciatura durante l'inserzione?

A.Splitting.
B.Merging.
C.Removing.
D.Coping.

30. Quale affermazione è falsa riguardo alla gestione della memoria in B tree?

A.B tree è più efficiente in scenari di grandi dataset.
B.Richiede meno spazio rispetto a una tabella hash.
C.Utilizza nodi con più puntatori per bilanciare la struttura.
D.È sempre ottimale in termini di spazio.

31. Quale affermazione è vera riguardo ai B tree e l'accesso sequenziale?

A.Supportano l'accesso sequenziale ai dati
B.Non possono essere utilizzati per l'accesso sequenziale
C.Richiedono sempre una scansione completa
D.Nessuna relazione con l'accesso sequenziale

32. Cosa accade se molte chiavi generano collisioni in una hash table?

A.La tabella diventa più veloce.
B.La complessità di accesso può aumentare.
C.Le collisioni non influenzano le performance.
D.La tabella si espande automaticamente.

33. Durante la cancellazione, cosa succede se un nodo ha esattamente il numero minimo di chiavi?

A.Deve essere unito con un nodo adiacente.
B.Resta invariato.
C.Viene splittato.
D.Diventa un nodo foglia.

34. Quale delle seguenti affermazioni è vera riguardo al tempo di accesso di un B tree rispetto a una tabella hash?

A.B tree ha accesso più veloce in media.
B.Entrambi hanno accesso O(n).
C.Tabella hash ha accesso più veloce in media.
D.Entrambi hanno accesso O(log n).

35. Qual è la complessità temporale per operazioni di ricerca in un B tree?

A.O(log_m n)
B.O(n)
C.O(1)
D.O(log n)

36. Quale operazione di hashing sarebbe considerata semplice?

A.h(k) = k - 1
B.h(k) = k \bmod n
C.h(k) = k * 2
D.h(k) = k + 1

37. Qual è la conseguenza di un'operazione di merging nei B tree?

A.Si riduce il numero di nodi.
B.Si aumenta il numero di chiavi.
C.Si crea un nuovo nodo.
D.Si mantiene lo stesso numero di nodi.

38. Cosa succede a un B tree se diventa sbilanciato?

A.Le operazioni diventano più rapide.
B.La sua efficienza di accesso diminuisce.
C.Rimane bilanciato senza necessità di intervento.
D.Le collisioni aumentano drasticamente.

39. Cosa rappresenta un nodo interno in un B tree?

A.Un nodo che dirige la ricerca ma non contiene dati
B.Un nodo con tutte le chiavi
C.Un nodo finale con informazioni
D.Un nodo contenente solo puntatori

40. Qual è la principale differenza tra hashing e ricerca binaria?

A.L'hashing è più lento della ricerca binaria.
B.La ricerca binaria richiede dati non ordinati.
C.L'hashing fornisce accesso O(1), mentre la ricerca binaria O(log n).
D.L'hashing è sempre ordinato.

41. Quali chiavi possono essere contenute in un nodo?

A.Chiavi ordinate.
B.Chiavi casuali.
C.Chiavi duplicate.
D.Chiavi non ordinate.

42. Quale delle seguenti affermazioni è vera riguardo al vantaggio principale del hashing?

A.Migliore gestione dello spazio.
B.Accesso molto rapido ai dati.
C.Supporta operazioni di scansione.
D.Ottimizzato per accesso su disco.

43. Cosa sono le chiavi in un B tree?

A.Elementi utilizzati per ordinare i dati
B.Solo identificatori univoci
C.Informazioni di metadati
D.Numeri casuali

44. Cosa può causare un overhead di memoria in una struttura hash?

A.Semplice allocazione di spazio per i dati
B.Gestione delle collisioni e allocazione di spazi extra
C.Uso di una funzione hash complessa
D.Nessun overhead di memoria in generale

45. Quando si effettua una ricerca in un B tree, quale è il primo passo?

A.Iniziare dalla radice.
B.Controllare le foglie.
C.Contare i nodi.
D.Verificare l'ordine.

46. Quale delle seguenti affermazioni è vera riguardo all'efficienza nella gestione della memoria tra B tree e hash?

A.Un B tree utilizza la memoria in modo più efficiente in scenari con grandi dataset.
B.Una tabella hash è sempre più efficiente in termini di memoria rispetto a un B tree.
C.Entrambi utilizzano la stessa quantità di memoria indipendentemente dalla dimensione del dataset.
D.Un B tree richiede più memoria di una tabella hash anche per dataset piccoli.

47. Qual è un effetto che i B tree hanno sulla gestione dei dati?

A.Crescono dinamicamente senza ridimensionamento
B.Richiedono sempre spazio fisso
C.Possono sovraccaricare la memoria
D.Impediscono l'inserimento di nuovi dati

48. Quale dei seguenti è un esempio di risoluzione delle collisioni con open addressing?

A.Chaining
B.Probing lineare
C.Linked lists
D.Rehashing

49. Cosa succede se si cerca una chiave non presente in un B tree?

A.Viene restituito un valore nullo.
B.Il tree si splitta.
C.Il nodo radice viene rimosso.
D.Non si verifica alcun errore.

50. Quale delle seguenti affermazioni sui B tree è falsa?

A.I B tree possono avere più di due figli per nodo
B.I nodi foglia sono collegati tra loro
C.I B tree sono sempre più veloci dei B+ tree
D.I B tree sono strutture dati auto-bilanciate

51. Qual è uno degli scopi principali dei B tree?

A.Minimizzare gli accessi al disco.
B.Ottimizzare la memoria RAM.
C.Accelerare la scrittura.
D.Aumentare la complessità del codice.

52. Come si calcola l'altezza massima di un B tree?

A.d = numero totale di nodi / m
B.d = log_m n
C.d = m * numero di nodi
D.d = numero di nodi / 2

53. Quale di queste affermazioni è falsa riguardo le operazioni sui B tree?

A.Un nodo può avere più figli del numero massimo.
B.Un nodo può essere splittato.
C.Può avvenire la cancellazione di chiavi.
D.Un nodo può essere unito.

54. Cosa succede quando un B tree viene utilizzato in un sistema di database?

A.Migliora l'efficienza delle operazioni di accesso ai dati
B.Rende più difficile la gestione dei dati
C.Complica l'architettura del database
D.Riduce la velocità delle query

55. Quale dei seguenti aspetti è direttamente influenzato dall'ordine di un B tree?

A.Il numero massimo di figli per nodo
B.La profondità massima del B tree
C.Il numero minimo di chiavi in un nodo foglia
D.La complessità temporale per la cancellazione

56. Quale delle seguenti affermazioni è corretta riguardo ai nodi foglia in un B tree?

A.Contengono i dati effettivi delle chiavi
B.Non possono essere collegati tra di loro
C.Possono avere un numero variabile di figli
D.Non partecipano alla ricerca dei dati

Set correlati

Crea il tuo set di studio

Carica un PDF, incolla le tue note o descrivi un argomento – l'IA genera schede, quiz e altro in pochi secondi.