

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Differenze tra un database relazionale (SQL) e DynamoDB durante la lettura di dati in una tabella
<a name="SQLtoNoSQL.ReadData"></a>

Con SQL, userai l'istruzione `SELECT` per recuperare una o più righe da una tabella. Utilizza la clausola `WHERE` per determinare i dati che vengono restituiti.

Ciò è diverso dall'utilizzo di Amazon DynamoDB che fornisce le seguenti operazioni per la lettura dei dati:
+ `ExecuteStatement` recupera uno o più elementi da una tabella. `BatchExecuteStatement` recupera più elementi da tabelle diverse in un'unica operazione. Entrambe queste operazioni utilizzano [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html), un linguaggio di query compatibile con SQL.
+ `GetItem`: recupera un singolo elemento da una tabella. Questo è il modo più efficiente per leggere un singolo item, perché fornisce accesso diretto a una posizione fisica dell'item. (DynamoDB fornisce anche il`BatchGetItem`operazione, che consente di eseguire fino a 100`GetItem`In un'unica operazione.)
+ `Query`: recupera tutti gli elementi che hanno una chiave di partizione specifica. In questi item è possibile applicare una condizione alla chiave di ordinamento e recuperare solo un sottoinsieme dei dati. `Query` offre accesso rapido ed efficace alle partizioni in cui i dati vengono memorizzati. Per ulteriori informazioni, consulta [Partizioni e distribuzione dei dati in DynamoDB](HowItWorks.Partitions.md).
+ `Scan`: recupera tutti gli elementi nella tabella o nell'indice specificati. Questa operazione non deve essere utilizzata con tabelle di grandi dimensioni in quanto può consumare notevoli quantità di risorse di sistema.

**Nota**  
Con un database relazionale puoi utilizzare l'istruzione `SELECT` per eseguire il join dei dati di più tabelle e restituire i risultati. I join sono fondamentali per il modello relazionale. Per garantire che i join vengano eseguiti in modo efficiente, il database e le applicazioni devono essere ottimizzati per le prestazioni su base continuativa. DynamoDB è un database NoSQL non relazionale che non supporta join di tabelle. Le applicazioni leggono i dati da una tabella alla volta. 

Nelle sezioni seguenti vengono descritti diversi casi d'uso per la lettura dei dati e le operazioni da intraprendere per eseguire queste attività con un database relazionale e con DynamoDB.

**Topics**
+ [Differenze nella lettura di un elemento usando la chiave primaria](SQLtoNoSQL.ReadData.SingleItem.md)
+ [Differenze nell’esecuzione di query su una tabella](SQLtoNoSQL.ReadData.Query.md)
+ [Differenze nella scansione di una tabella](SQLtoNoSQL.ReadData.Scan.md)