Panoramica sull'architettura di Database Edition
Aggiornamento: novembre 2007
Visual Studio Team System Database Edition offre agli sviluppatori di database molti degli strumenti, caratteristiche e funzionalità offerti da Visual Studio Team System ad altri membri di un team di sviluppo di applicazioni. È ad esempio possibile utilizzare per il database lo stesso sistema di controllo delle versioni e altri strumenti di gestione del ciclo di vita utilizzati dagli sviluppatori di software per il codice sorgente. L'architettura di Database Edition è strettamente integrata con Visual Studio Team System, pertanto è possibile gestire con maggior facilità il processo di sviluppo di database e al contempo ottimizzare il coordinamento con gli sviluppatori di altri aspetti dell'applicazione.
Per ulteriori informazioni sulle funzionalità di Database Edition, vedere Gestione delle modifiche al database.
Integrazione con Visual Studio
Non è solo l'architettura principale di Team Edition for Database Professionals a essere integrata con le altre parti di Visual Studio Team System, ma anche l'interfaccia risulta coerente con i vari componenti. In molti casi è infatti possibile utilizzare i progetti di database in modo analogo ad altri tipi di progetti Visual Studio. I modelli specifici del database sono visualizzati nelle finestre di dialogo Nuovo progetto e Aggiungi elemento di progetto. È inoltre possibile eseguire azioni, ad esempio Genera e Distribuisci, nonché configurare impostazioni, ad esempio la connessione al database di destinazione e il confronto di database, appositamente progettate per lo sviluppo di database.
I progetti di database vengono visualizzati in Esplora soluzioni come peer di tipi di progetto esistenti. È possibile inserire questi progetti nel controllo delle versioni, aggiungere e rimuovere elementi di progetto e generare questi progetti con MSBuild.
Composizione dell'architettura
L'architettura di Database Edition è basata sulle seguenti aree:
Progetto di database
Database di convalida della fase di progettazione
Infrastruttura del ciclo di vita del database
Ogni progetto di database è una rappresentazione non in linea di un database ed è inclusa nella struttura di una soluzione Visual Studio. È necessario generare e distribuire le modifiche apportate a un progetto di database affinché possano interessare un'istanza attiva di Microsoft SQL Server 2000 o di Microsoft SQL Server 2005.
Il database di progettazione è un'istanza locale di SQL Server utilizzata per eseguire la convalida della fase di progettazione del progetto di database.
Infrastruttura del ciclo di vita del database
L'infrastruttura del ciclo di vita del database fornisce una vasta gamma di servizi tra il progetto di database e il database di progettazione. Include le funzionalità fondamentali necessarie per qualsiasi progetto di database, definite collettivamente come fondamenta del progetto di database. Le funzionalità generate su tali fondamenta vengono definite come funzionalità del progetto di database.
Fondamenta del progetto di database
Le fondamenta del progetto di database includono le seguenti funzioni principali:
Analisi del progetto e degli elementi del progetto
Le fondamenta analizzano i progetti di database e gli elementi dei progetti di database, ad esempio tabelle, viste e stored procedure. Durante questa operazione estraggono le informazioni sugli oggetti di database dai file di script che costituiscono il progetto di database. Questa funzionalità si applica ad esempio quando si importano oggetti di database da script di database esistenti. I progetti di database sono costituiti da insiemi di script T-SQL (Transact-SQL). Il sistema del progetto di database interpreta tali script e consente quindi di interagire con essi come oggetti dello schema logici.Importa schema database
Importa schema database consente di importare un database esistente in Database Edition e di includerlo nel controllo della versione. Persino in un ambiente in cui il database viene gestito tramite il controllo delle versioni, è possibile che si verifichino casi in cui sia necessario importare nel progetto di database modifiche apportate in un server di database attivo. In tal caso è possibile utilizzare Confronto schema per importare modifiche da un server di database in un progetto di database in fase di sviluppo.Rilevamento delle dipendenze tra oggetti di database
Il sistema del progetto di database rileva automaticamente le dipendenze tra oggetti di database. Il rilevamento delle dipendenze tra oggetti assicura che vengano generati e distribuiti gli oggetti corretti. In tal modo sarà possibile rilevare una modifica importante inserita nel prodotto quando si salva la modifica per la prima volta. Le modifiche importanti vengono in genere rilevate quando si tenta di generare, distribuire o eseguire uno unit test del database. Nel refactoring del database tali dipendenze vengono utilizzate per identificare le modifiche necessarie. Nella generazione dei dati le relazioni tra dipendenze possono essere visualizzate nell'ambito del piano di generazione dati.Refactoring del database
Il refactoring del database consente di identificare le dipendenze tra oggetti di database e di utilizzare tali informazioni per propagare le modifiche in modo accurato nei progetti di database e unit test.Creazione di script di generazione per distribuzioni nuove ed esistenti
Gli script di generazione vengono utilizzati per creare un database o aggiornare un database esistente in base allo schema del progetto di database. Sono costituiti da script pre-distribuzione, script di creazione di oggetti di database e script post-distribuzione. Se si effettua la distribuzione in un database esistente, in fase di generazione il progetto di database verrà confrontato con lo schema corrente del database di destinazione. Verrà quindi generato uno script di aggiornamento per aggiornare il database di destinazione tramite una combinazione di istruzioni ALTER, CREATE e DROP.Convalida di generazioni
Questa funzionalità include la convalida della procedura di generazione per script pre-distribuzione, script che consentono di creare o aggiornare oggetti di database e script post-distribuzione, nonché la restituzione dei risultati.
Funzionalità dei progetti di database
Oltre ai servizi principali forniti per i progetti di database, sulla base delle fondamenta del progetto di database vengono realizzate altre funzionalità, tra cui:
Confronto di schemi di database
Consente di confrontare due schemi di database, presenti in una versione corrente di un progetto di database, in una versione precedente di un progetto di database archiviato nel controllo delle versioni oppure in uno o più database attivi. È inoltre possibile generare gli script necessari per fare in modo che il database di destinazione corrisponda al database di origine.Confronto di dati di database
Consente di confrontare i dati di due database se si dispone di database attivi con schemi corrispondenti. È inoltre possibile generare gli script necessari per fare in modo che il database di destinazione corrisponda al database di origine.Unit test del database
Consente di generare automaticamente unit test per una stored procedure o una funzione e di supportare la creazione manuale di unit test che includono istruzioni Transact-SQL valide. Grazie a questo servizio è possibile verificare che le modifiche introdotte in altri componenti non influiscano negativamente sul proprio componente. In uno unit test è possibile generare e distribuire automaticamente il database, nonché generare dati di test riproducibili per definire uno stato iniziale congruente. Il servizio include inoltre un'API pubblica utilizzabile per scrivere asserzioni personalizzate che consentono di aggiungere logica di convalida riutilizzabile per gli unit test.Generazione di dati
Consente di popolare un database con dati di test realistici non corrispondenti solo a una copia dei dati di produzione, che potrebbero contenere informazioni riservate. È inoltre possibile creare generatori di dati personalizzati. Il servizio include inoltre un'API pubblica per la scrittura di generatori di dati personalizzati da utilizzare con tipi di dati CLR, tipi definiti dall'utente e tipi di dati definiti dall'utente oppure per utilizzare algoritmi di generazione dati personalizzati per tipi incorporati.Modifica ed esecuzione di script di database
Fornisce un editor Transact-SQL in cui è possibile creare, analizzare ed eseguire script di database la cui modalità di utilizzo è simile a quella di Query Analyzer o SQL Server Management Studio. Si tratta dello stesso editor utilizzato per modificare script nel progetto di database, pertanto offre un'interfaccia utente congruente nel caso in cui si modifichi un progetto di database non in linea oppure si eseguano direttamente script in un server di database attivo.
Supporto della riga di comando
Deve essere possibile includere in un processo automatizzato alcune delle attività eseguite normalmente. Per supportare questo scenario, è possibile generare il progetto di database, distribuirlo ed eseguire dalla riga di comando unit test, che includono ad esempio la generazione di dati di test rappresentativi e prevedibili.
Vedere anche
Concetti
Gestione delle modifiche al database
Extensibility in Database Edition
Panoramica sulla terminologia di Database Edition
Procedure relative a Database Edition
Panoramica sulla terminologia di Database Edition