Condividi tramite


Panoramica sulla creazione e sulla pubblicazione di database in un ambiente di team

Aggiornamento: novembre 2007

Con Team Edition for Database Professionals, il team di sviluppo può gestire le modifiche apportate al database tramite un progetto di database sottoposto al controllo delle versioni. L'amministratore del database (DBA) del team crea il progetto, importa lo schema da un server di produzione, configura le impostazioni del database e stabilisce un piano per la generazione di dati di test. Quando il progetto e le relative impostazioni sono pronti per essere condivisi con gli altri membri del team, i file associati al progetto vengono sottoposti al controllo delle versioni.

Uno sviluppatore o un tester che lavora sul database estrae la versione corrente dello schema di database dal sistema di controllo delle versioni, quindi apporta le modifiche in un ambiente di sviluppo isolato o sandbox. È quindi possibile eseguire il test di tali modifiche nell'ambiente isolato senza influire sul lavoro degli altri membri del team. Al termine delle modifiche, i file vengono nuovamente archiviati nel sistema di controllo delle versioni per poter essere generati e distribuiti in un server di test. Gli altri membri del team possono recuperare le modifiche eseguendo la sincronizzazione con la versione archiviata nel controllo delle versioni.

Impostazione di un progetto di database

In un ambiente di team, l'amministratore del database imposta il progetto per il team e, successivamente, ogni membro del team può lavorare nel proprio ambiente di sviluppo isolato utilizzando lo stesso progetto. Per impostare un progetto, è in genere necessario eseguire le operazioni seguenti:

  1. Creare il progetto di database. Questo passaggio viene in genere eseguito in combinazione con quello successivo.

  2. Stabilire lo schema per il progetto di database. La maggior parte del lavoro di sviluppo viene eseguito a partire da un database esistente. In questo caso, è possibile importare lo schema da tale database nel progetto di database. Per questo passaggio, è necessario disporre dell'accesso al database di origine, che spesso è un database di produzione. Se si crea un database, può essere necessario collaborare con il progettista del database per sviluppare lo schema di database iniziale.

  3. Impostare nel progetto di database le proprietà per il controllo di generazione e distribuzione. Questo passaggio include l'impostazione del confronto predefinito, la definizione del percorso dell'output di generazione, la specifica di opzioni di connessione e l'impostazione del nome del database di destinazione.

  4. Archiviare il progetto di database e il relativo contenuto nel controllo delle versioni per consentirne l'accesso da parte del team.

  5. Definire un piano di generazione dati per consentire a ogni membro del team di lavorare con dati di test realistici che non contengono informazioni riservate. Aggiungere il piano al progetto di database e archiviarlo nel controllo delle versioni.

  6. Definire inoltre gli unit test del database per le funzionalità di database esistenti. In genere gli unit test sono inclusi in un progetto distinto nella stessa soluzione del progetto di database e l'intera soluzione viene archiviata nel controllo delle versioni.

A questo punto il team può avviare il lavoro di sviluppo.

Esecuzione dello sviluppo iterativo in un ambiente di sviluppo isolato

L'ambiente di sviluppo locale viene sincronizzato con il sistema di controllo delle versioni da parte di uno sviluppatore. La proprietà Target connection viene personalizzata nel progetto di database per fare riferimento al server che conterrà la copia del database. Le attività di sviluppo prevedono il processo seguente:

  1. Identificare l'attività da eseguire. Questo passaggio prevede, ad esempio, l'identificazione degli elementi di lavoro assegnati in Gestione elementi di lavoro di Team Foundation.

  2. Modificare il progetto di database, il relativo contenuto e l'eventuale codice sorgente correlato. Estrarre i file dal controllo delle versioni, in cui è possibile mantenere sincronizzati il codice e il progetto di database.

  3. Se necessario, creare o modificare gli unit test e aggiornare il piano di generazione dati.

  4. Generare e distribuire il progetto di database e l'applicazione o le applicazioni correlate nel server in cui si trova la copia privata del database.

  5. Eseguire gli unit test, utilizzando se possibile il generatore di dati per creare dati di test.

  6. Ripetere i passaggi da 2 a 5 finché non vengono superati tutti i test e i risultati non sono soddisfacenti.

  7. Quando gli unit test vengono superati e la qualità del lavoro è soddisfacente, archiviare tutte le modifiche apportate al progetto di database, all'applicazione e agli unit test.

  8. Passare all'attività successiva.

Attenendosi a questo processo, è possibile sviluppare ed eseguire test sulle modifiche in ambiente isolato, dove tali modifiche non possono influire sul lavoro di altri sviluppatori prima di aver raggiunto un livello qualitativo coerente. A questo punto, archiviare il lavoro nel controllo delle versioni e consentire ad altri sviluppatori di accedere ai miglioramenti apportati.

Distribuzione delle modifiche nel server di produzione

Dopo avere apportato tutte le modifiche necessarie, il passaggio successivo consiste nell'aggiornare il server di produzione. Il responsabile dell'esecuzione di questa attività può ottenere la versione più recente del progetto di database dal controllo delle versioni, generare lo script di distribuzione, aggiornare manualmente tale script se necessario e quindi eseguire lo script per distribuire le modifiche allo schema in produzione.

Alcuni software di controllo delle versioni supportano la possibilità di assegnare un'etichetta a un gruppo di file in base alle caratteristiche che presentano in un determinato momento. È possibile, ad esempio, assegnare un'etichetta a un progetto di database, al codice sorgente dell'applicazione, agli unit test e ad altri file in base alle caratteristiche che presentano in una determinata versione. Anche se lo sviluppo continua, è sempre possibile recuperare le versioni specifiche dei file compresi nella versione. Per ulteriori informazioni sulla distribuzione di una versione con etichetta precedente del progetto di database, vedere Procedura: distribuire una versione precedente di un database con controllo delle versioni.

Rappresentazioni del database

Attenendosi a questo processo di sviluppo del database, è possibile ottenere un massimo di tre rappresentazioni del database:

  • La rappresentazione del server di database, che contiene database e dati. Uno sviluppatore del database lavora principalmente su un database di sviluppo o di test. In molte organizzazioni è presente un ruolo di amministratore di database separato con accesso al database di produzione.

  • Il progetto di database, che è la rappresentazione non in linea dello schema di database. I progetti di database includono anche tutti i piani di generazione dati utilizzati per generare dati di test e script necessari per distribuire e gestire il database. Per ulteriori informazioni, vedere Cenni preliminari sui progetti di database.

  • L'archivio per il controllo delle versioni, in cui si tiene traccia di tutte le modifiche apportate dai membri del team al progetto di database.

Il server di database scambia dati con il progetto di database, il quale a sua volta scambia dati con l'archivio per il controllo delle versioni. È possibile gestire il database in modo più efficace con una conoscenza approfondita della modalità in cui le rappresentazioni scambiano dati rispetto al controllo delle versioni, all'importazione di schemi e alla distribuzione.

Vedere anche

Attività

Procedura dettagliata: creazione di un ambiente di sviluppo isolato

Concetti

Cenni preliminari sull'utilizzo di oggetti di database

Panoramica sulla terminologia di Database Edition

Altre risorse

Guida introduttiva ai progetti di database

Generazione e distribuzione di schemi di database

Utilizzo di script di database

Utilizzo di progetti di database in un ambiente di team

Procedure dettagliate (creazione e aggiornamento di schemi di database con controllo delle versioni)