Gestione delle modifiche al database
Aggiornamento: novembre 2007
Tra le responsabilità previste nello sviluppo e nella gestione di database a livello aziendale è incluso il coordinamento di pianificazioni e modifiche con team di sviluppo software per creare applicazioni di database unificate. È possibile ridurre sensibilmente l'impegno necessario per questa operazione di coordinamento adottando strumenti e processi simili a quelli utilizzati dagli sviluppatori di software dell'azienda.
Con l'utilizzo sempre più diffuso da parte di molti team di paradigmi più iterativi e a sviluppo rapido per la scrittura di codice, ad esempio la metodologia Agile, gli sviluppatori di software e database hanno un'esigenza crescente di strumenti come il controllo delle versioni. Questi strumenti possono ridurre i rischi associati allo sviluppo basato su team. Utilizzando strumenti e processi analoghi, è possibile ottenere vantaggi significativi non solo per i database gestiti, ma anche per i punti di integrazione tra i database e il software che interagisce con essi.
Vantaggi di Visual Studio Team Edition for Database Professionals
Visual Studio Team System Database Edition consente di coordinarsi con gli sviluppatori software, incoraggiando i membri del team a sviluppare una visione e un'attenzione globale sul comportamento dell'applicazione, anziché sui dettagli di implementazione. Questo approccio si differenzia dal modello in cui il database di produzione e i relativi dati sono considerati il punto centrale dell'applicazione. Database Edition offre un insieme di soluzioni destinato all'intera applicazione, sia ai dati che alla logica. Per generare un'applicazione che garantisca prestazioni efficienti, gestione semplice e distribuzione rapida, le società che si occupano di sviluppo a livello aziendale devono adottare questa visione inclusiva dell'applicazione.
Database Edition offre funzionalità rivolte agli sviluppatori e amministratori di database. Database Edition supporta, ad esempio, il concetto di ambiente di sviluppo isolato per ogni professionista di database. I membri del team possono lavorare su attività relative allo schema senza causare problemi agli altri membri o all'ambiente di produzione. La visione a lungo termine aggiunge funzionalità al ruolo di progettista di database e amplia le funzionalità per gli amministratori di database.
Obiettivi di alto livello
L'introduzione di Database Edition si prefigge i seguenti obiettivi di alto livello:
Fornire elementi fondamentali basati sulla gestione integrata delle modifiche per le applicazioni di database.
Offrire strumenti che favoriscano la gestione dei progetti di database.
Offrire strumenti che favoriscano la comprensione delle differenze.
Offrire strumenti che favoriscano l'esecuzione delle modifiche e la valutazione dei relativi effetti.
Offrire strumenti che favoriscano l'utilizzo di un ambiente di sviluppo isolato allo scopo di ridurre i rischi associati alle modifiche.
Offrire strumenti che favoriscano il test di soluzioni aggiornate.
Attività di alto livello
A sostegno di questi obiettivi, Database Edition consente di eseguire le seguenti attività di alto livello:
Creare e distribuire un nuovo database sottoposto al controllo delle versioni.
Sottoporre uno schema di database esistente al controllo delle versioni tramite il progetto di database. Lo schema del progetto di database viene creato importando lo schema da un database o da script esistenti.
Modificare una rappresentazione non in linea di un database e distribuire le modifiche.
Confrontare schemi o dati tra database.
Sviluppare ed eseguire unit test su oggetti di database.
Generare dati di test prevedibili e rappresentativi senza compromettere dati di produzione riservati.
Rinominare tabelle, colonne, viste o altri oggetti di database e propagare le modifiche al resto del progetto di database, che include unit test associati, viste, stored procedure, trigger e così via.
Creare, modificare, convalidare, eseguire e analizzare script e query.
Ciclo di vita dello sviluppo del database
Team Edition for Database Professionals richiede un processo coordinato con i nuovi strumenti. Questo processo può essere descritto come il ciclo di vita dello sviluppo del database, che offre a ogni professionista di database un ambiente di sviluppo isolato in cui lavorare ed eseguire test delle modifiche. Dopo il test delle modifiche, i membri del team condividono le modifiche tramite il sistema di controllo delle versioni. Il ciclo di vita dello sviluppo del database prevede le fasi seguenti:
Definire l'ambiente del progetto
Eseguire uno sviluppo isolato e iterativo
Generare il progetto
Eseguire la distribuzione dall'ambiente del progetto
Definire l'ambiente del progetto
Nella figura riportata di seguito viene illustrata la modalità in cui il membro del team che ricopre il ruolo di amministratore del database (DBA) definisce l'ambiente del progetto:
L'amministratore del database crea innanzitutto un progetto di database e importa lo schema di database dal database di produzione. In seguito, crea un piano di generazione dati per produrre dati di test per gli ambienti di sviluppo isolati. Archivia, infine, il progetto di database nel controllo delle versioni, rendendolo così disponibile per il team.
Eseguire uno sviluppo isolato e iterativo
Nel diagramma riportato di seguito viene illustrata la modalità in cui i membri del team eseguono un processo di sviluppo iterativo in un ambiente isolato:
Ogni professionista di database sincronizza il proprio ambiente di sviluppo al controllo delle versioni. Questa operazione consente di estrarre i file modificati e quindi sviluppare ed eseguire il test delle modifiche in modalità isolata. Le modifiche apportate a ogni copia del progetto di database vengono distribuite solo nell'ambiente di sviluppo isolato relativo. Dopo la generazione di dati di test realistici e l'esecuzione di unit test su una copia privata del database, il membro del team archivia le modifiche nel controllo delle versioni. Gli altri membri del team ottengono le modifiche sottoposte a test dal controllo delle versioni.
Eseguire generazioni giornaliere del progetto
Nella figura riportata di seguito viene illustrato il funzionamento del ciclo di generazione dei progetti di database:
La generazione giornaliera viene eseguita sincronizzando la versione sottoposta a test più recente del progetto di database nel sistema di controllo delle versioni. Tale generazione può essere distribuita a un database di test in cui gli unit test vengono eseguiti su dati di test generati.
Distribuzione dall'ambiente del progetto
Nel diagramma riportato di seguito viene illustrata la modalità in cui l'amministratore del database può distribuire una versione del progetto di database nel server di produzione:
Al momento di distribuire una versione del database nel server di produzione, l'amministratore del database esegue la sincronizzazione su un'etichetta dal sistema di controllo delle versioni. Recupera quindi i file corrispondenti per il progetto di database, gli script correlati e i test. Successivamente, genera lo script di distribuzione, apporta eventuali modifiche manuali ed esegue una distribuzione di test nel server di gestione temporanea. L'amministratore del database ripete questo processo finché lo script è pronto per essere distribuito nel server di produzione. Se l'amministratore del database apporta modifiche allo schema o agli script pre-distribuzione o di post-distribuzione, tali modifiche verranno archiviate nuovamente nel controllo delle versioni.
Vedere anche
Concetti
Panoramica sull'architettura di Database Edition
Panoramica sulla terminologia di Database Edition
Altre risorse
Panoramica sulla creazione e sulla pubblicazione di database in un ambiente di team