Introduzione
Si apprenderà come progettare e implementare vari oggetti di database in SQL Server, database SQL di Azure, Istanza gestita di SQL di Azure e database SQL in Microsoft Fabric. La progettazione corretta degli oggetti di database è fondamentale per la creazione di soluzioni SQL a prestazioni elevate, scalabili e gestibili in queste piattaforme.
Come sviluppatore SQL si è probabilmente notato che le decisioni di progettazione degli oggetti di database sono molto più permanenti del codice dell'applicazione. Sebbene sia possibile effettuare il refactoring di una classe C# o riscrivere un microservizio con un impatto minimo, modificare una tabella da rowstore a columnstore, adattare la cronologia temporale o passare dalla colonna Identity agli oggetti sequenza richiede migrazioni che possono bloccare le tabelle per ore e interrompere i sistemi di produzione.
I tipi di oggetti specializzati appresi in questo modulo non sono solo ottimizzazioni delle prestazioni che è possibile aggiungere in un secondo momento. Modificano fondamentalmente il modo in cui i dati vengono archiviati, sottoposti a query e convalidati a livello di motore. La scelta di una tabella standard quando è necessario il controllo temporale significa creare manualmente trigger e tabelle di cronologia. Se si seleziona IDENTITY quando l'architettura richiede sequenze distribuite impone delle soluzioni alternative nel livello applicativo.
La comprensione iniziale di questi oggetti consente di progettare sistemi che possono evolversi senza riscrizioni dolorose, abilitando funzionalità come la verifica in stile blockchain, la memorizzazione nella cache in millisecondi o analisi in tempo reale che non possono essere facilmente modificate dopo aver eseguito il commit in un'altra base.
Cosa imparerai
Verranno illustrate le tecniche di progettazione di oggetti di database che si applicano al database SQL di Azure, al database SQL di Microsoft Fabric e all'istanza gestita di SQL di Azure:
Progettazione e implementazione di tabelle: creazione di tabelle con tipi di dati, dimensioni e strutture appropriati. Informazioni su come scegliere tra indici rowstore e columnstore per il carico di lavoro, sia che si stia creando un'app transazionale nel database SQL di Azure o in un database di analisi operativa in Fabric.
Tipi di tabella specializzati : uso di tabelle in memoria per scenari a velocità effettiva elevata in Istanza gestita di SQL, tabelle temporali per audit trail in tutte le piattaforme, tabelle esterne per l'integrazione di fabric lakehouse, tabelle LEDGER per applicazioni critiche per la conformità e tabelle GRAPH per relazioni complesse.
Vincoli e convalida : implementazione di chiavi primarie, chiavi esterne, vincoli univoci, vincoli CHECK e valori DEFAULT che garantiscono l'integrità dei dati indipendentemente dal fatto che il database gestisca un microservizio, un'applicazione aziendale o feed di pipeline di analisi.
Funzionalità avanzate : uso di colonne JSON per schemi flessibili nelle app native del cloud, implementazione di indici ottimizzati per il motore di query della piattaforma e uso di oggetti SEQUENCE per i modelli di generazione di ID distribuiti.
Strategie di partizionamento : progettazione e implementazione del partizionamento di tabelle e indici per database su larga scala. Essenziale per i database Hyperscale nel database SQL di Azure, per i database multi-TB in SQL Managed Instance e per i dati delle serie temporali nei database operativi di Fabric.
Perché è importante:
La progettazione efficace degli oggetti di database influisce direttamente:
- Prestazioni : tabelle e indici ben progettati riducono i tempi di esecuzione delle query
- Integrità dei dati - I vincoli appropriati garantiscono la coerenza e l'accuratezza dei dati
- Manutenzione - Progettazione di oggetti organizzata semplifica l'amministrazione del database
- Funzionalità di intelligenza artificiale : le strutture di dati appropriate consentono l'integrazione delle funzionalità di intelligenza artificiale
- Scalabilità : il partizionamento consente di gestire in modo efficiente set di dati di grandi dimensioni
Si inizierà esaminando come progettare e implementare strutture di tabelle efficaci nelle piattaforme SQL di Microsoft.