Condividi tramite


Panoramica della modellazione dei dati

data shaping significa creare relazioni gerarchiche tra due o più entità logiche in una query. La gerarchia può essere visualizzata nelle relazioni padre-figlio tra un record di un oggetto Recordset e uno o più record (noti anche come capitolo) di un altro oggetto Recordset . Nella relazione padre-figlio, il Recordset padre contiene il Recordset figlio . Un esempio di relazione gerarchica di questo tipo è clienti e ordini. Per ogni cliente in un database, possono essere presenti zero o più ordini. La relazione gerarchica può essere ricorsiva, ovvero i record dei nipoti possono essere annidati in un record figlio. In linea di principio, un record gerarchico può essere annidato in qualsiasi profondità. In pratica, ADO limita la ricorsione a un massimo di 512 Recordsets.

In generale, le colonne di un oggetto Recordset forma possono contenere dati da un provider di dati, ad esempio SQL Server, riferimenti a un altro oggetto Recordset , valori derivati da un calcolo su una singola riga di un oggetto Recordset o valori derivati da un'operazione su una colonna di un intero oggetto Recordset . Una colonna può anche essere appena creata e vuota.

Quando si recupera il valore di una colonna che contiene un riferimento a un altro Recordset , ADO restituisce automaticamente il recordset effettivo rappresentato dal riferimento. Il riferimento a un recordset è in realtà un riferimento a un subset del figlio, denominato capitolo . Un genitore singolo può fare riferimento a più di un recordset figlio.

Il supporto di ADO per il data shaping consente di eseguire query su un'origine dati e restituire un Recordset in cui un record (padre) rappresenta un record (figlio) Recordset. Nello scenario dell'ordine dei clienti è possibile usare il data shaping per recuperare le informazioni dei clienti e gli ordini effettuati da ogni cliente in una singola query. Il recordset risultante è noto anche come Recordset forma.

Inoltre, il data shaping in ADO consente di creare nuovi oggetti Recordset senza una fonte dati sottostante, utilizzando la parola chiave NEW per descrivere i campi dei Recordset padre e figlio . Il nuovo oggetto Recordset può quindi essere popolato con dati e archiviati in modo permanente. Gli sviluppatori possono anche eseguire vari calcoli o aggregazioni (ad esempio, SUM, AVGe MAX) nei campi figlio. Il data shaping può anche creare un recordset padre da un recordset figlio raggruppando i record nel recordset figlio e inserendo una riga nel recordset padre per ogni gruppo nel recordset figlio.

SQL normale consente di ottenere dati tramite la sintassi JOIN, ma questo può risultare inefficiente e complesso perché i dati padre ridondanti vengono ripetuti in ogni record restituito per una determinata relazione padre-figlio. Il modellamento dei dati può correlare un singolo record padre nel recordset padre a più record figlio nel recordset figlio , evitando la ridondanza di un'operazione di JOIN. La maggior parte delle persone trova il modello di programmazione più recordset padre-figlio più naturale e più semplice da usare rispetto al singolo modello di Recordset JOIN.