Panoramica sui progetti di database e server
Per aiutare la società a gestire in modo più efficace lo sviluppo del database è possibile utilizzare Visual Studio Premium per creare un progetto di database o un progetto server e sottoporre il progetto al controllo delle versioni. In queste rappresentazioni offline sono contenute le definizioni degli oggetti, le impostazioni, nonché gli script di distribuzione da utilizzare per creare un'istanza separata di tale database (o server) oppure per aggiornare un'istanza esistente.
In base alle necessità della società, è anche possibile condividere parti dei progetti oppure creare un progetto composito. Per ulteriori informazioni, vedere Condivisione di parti dei progetti più avanti in questo argomento oppure la sezione "Composizione di progetti utilizzando riferimenti" di Utilizzo di riferimenti in progetti di database.
Tipi di progetto disponibili
Tramite Visual Studio 2010 Premium, è possibile creare progetti di database, progetti server e progetti Componente applicazione del livello dati (DAC).
Progetto Componente applicazione del livello dati
Il progetto DAC è un nuovo concetto. È stato introdotto con SQL Server 2008 R2 e include la definizione per un database di SQL Server, nonché gli oggetti istanza di supporto utilizzati da un'applicazione client-server o a tre livelli. In un progetto DAC sono inclusi oggetti di database, ad esempio tabelle e visualizzazioni, insieme a entità di istanza quali gli accessi. È possibile utilizzare Visual Studio per creare un progetto DAC, compilare un file di pacchetto DAC e inviare tale file a un amministratore del database per la distribuzione in un'istanza del motore di database di SQL Server. Per un elenco delle funzionalità supportate dai progetti DAC, vedere Funzionalità supportate nelle applicazioni a tre livelli (la pagina potrebbe essere in inglese).Progetto di database
In un progetto di database sono contenute le definizioni di tutti gli oggetti di un database. Inoltre, sono incluse le impostazioni del database, di compilazione e di distribuzione.Progetto server
In un progetto server sono contenute le definizioni degli oggetti che si trovano sul server o nel database master del server. Inoltre, sono incluse le impostazioni del server, di compilazione e di distribuzione.
Struttura del progetto
In Esplora soluzioni viene mostrato il progetto organizzato in file. Ogni elemento di Esplora soluzioni corrisponde a una cartella o a un file salvato. Al contrario, in Visualizzazione schema viene mostrato il progetto organizzato in base a oggetti o schemi in modo che sia possibile identificare gli oggetti nel database, indipendentemente dal fatto che siano definiti in file separati.
In un progetto di database o server possono essere contenuti i seguenti tipi di oggetti:
File di proprietà
Nel progetto di database o server sono inclusi i file della cartella Proprietà in cui sono contenuti i valori delle proprietà. Modificando tali valori è possibile controllare la distribuzione del progetto. Ad esempio, è possibile specificare le impostazioni del database e del server, nonché le variabili SQLCMD e le autorizzazioni del database. Per ulteriori informazioni, vedere File delle proprietà nei progetti di database e server.Piani di generazione dati
Nei piani di generazione dati sono contenute informazioni sul modo in cui si desidera generare dati di test realistici e rappresentativi per un database che si intende distribuire o aggiornare. Per ulteriori informazioni, vedere Generazione di dati di test per i database tramite generatori di dati.Confronti dello schema
In un confronto dello schema sono contenute informazioni su un confronto specifico tra il progetto di database e un altro schema. È possibile confrontare nuovamente il progetto con tale schema riaprendo il file con estensione scmp e aggiornando il confronto. Per ulteriori informazioni, vedere Confrontare e sincronizzare gli schemi di database.Oggetti dello schema
Gli oggetti dello schema sono definiti in un insieme di file con estensione sql archiviati nella cartella del progetto. La maggior parte degli oggetti sono definiti in file separati. Nelle eccezioni sono incluse le colonne di una tabella e i parametri per una stored procedure o una funzione. Le colonne vengono archiviate nella definizione per la tabella, mentre i parametri vengono archiviati nella definizione per la stored procedure o la funzione. Per ulteriori informazioni, vedere Creazione e modifica di oggetti server e di database.Script
Nel progetto sono contenuti script pre e post-distribuzione, oltre a tutti gli script utilizzabili per gestire il database o il server. Per ulteriori informazioni, vedere Creazione e modifica di script di database.
Importazione di oggetti e impostazioni
Dopo aver creato un progetto, è possibile importare gli oggetti e le impostazioni da un'istanza del database o da uno script. Quando si importa un database, le relative definizioni oggetto vengono convalidate e le istruzioni che non possono essere analizzate vengono inserite nel file ScriptsIgnoredOnImport.sql. Se si importano definizioni di oggetto che fanno riferimento a oggetti non più esistenti, è necessario risolvere gli errori prima di compilare e distribuire il progetto. È ad esempio possibile importare una stored procedure che fa riferimento a una tabella che non esiste più. Per risolvere l'errore, è possibile rimuovere la stored procedure.
Potrebbe essere necessario dedicare molto tempo alla risoluzione di questi errori dopo aver importato uno schema di grandi dimensioni. Tuttavia, i membri del team non possono introdurre inconsapevolmente errori aggiuntivi di questo tipo man mano che aggiornano lo schema in Visual Studio Premium. Quando modificano e salvano una definizione di oggetto, tutte le modifiche vengono convalidate in modo che i membri del team possano correggerli immediatamente ed evitino di distribuire questi errori in un database attivo.
Dopo aver risolto gli avvisi nelle definizioni degli oggetti, è opportuno considerare l'analisi del codice del database per rilevare eventuali problemi di progettazione, denominazione e prestazioni. Per ulteriori informazioni, vedere Analisi del codice di database per migliorare la qualità del codice.
Condivisione di parti dei progetti
Se si desidera riutilizzare un set di file in più di un progetto, è possibile esportare qualsiasi parte di un progetto come progetto parziale. Questa azione comporta la creazione di un file con estensione files che è possibile includere in uno o più progetti. Ad esempio, è possibile disporre di alcune stored procedure comuni utilizzate per controllare tutti i database. Queste stored procedure possono essere definite in un progetto, esportate, nonché incluse in altri progetti. Adottando questo approccio, si evita di dover gestire lo stesso codice in più progetti. Per ulteriori informazioni, vedere Procedura: importare ed esportare progetti di database parziali.
Considerazioni sulla sicurezza
Nei progetti di database e nei relativi file con estensione dbschema sono contenute informazioni sui beni del database. Proprio come si limiterebbe l'accesso al codice sorgente, è necessario limitare l'accesso ai progetti di database e ai file con estensione dbschema.
È possibile utilizzare i metodi seguenti per controllare l'accesso ai progetti di database e ai file con estensione dbschema:
Utilizzare il controllo delle versioni per i progetti e le autorizzazioni del file system appropriate
L'accesso ai progetti di database può essere concesso solo agli sviluppatori che lo richiedono. Inoltre, è possibile limitare le autorizzazioni relative a qualsiasi condivisione di file in cui sono contenuti file progetto di database o file con estensione dbschema per impedire l'accesso a utenti non autorizzati.Partizione di un progetto di database tramite progetti parziali
È possibile dividere gli oggetti di database in diversi progetti e utilizzare le autorizzazioni del controllo delle versioni per controllare gli utenti che possono visualizzare o modificare tali progetti. Per ulteriori informazioni, vedere Avvio dello sviluppo in team di database di grandi dimensioni.Creare un file con estensione dbschema che dispone di corpi delle procedure vuoti
È possibile creare una copia delle stored procedure in cui non è contenuta alcuna implementazione e condividere il file con estensione dbschema per tale copia con gli sviluppatori che devono chiamare tali procedure, ma non visualizzare l'implementazione. Per ulteriori informazioni su come fare riferimento ai file con estensione dbschema, vedere Utilizzo di riferimenti in progetti di database.
Scenari correlati
Avvio dello sviluppo in team di database
Le modifiche apportate a un database possono essere gestite creando una rappresentazione offline dei relativi oggetti e impostazioni, nonché inserendo tale rappresentazione nel controllo delle versioni.Avvio dello sviluppo in team di database che fanno riferimento ad altri database
Le modifiche apportate a un database possono essere gestite creando una rappresentazione offline dei relativi oggetti e impostazioni, nonché inserendo tale rappresentazione nel controllo delle versioni. In tale rappresentazione, è possibile definire i riferimenti tra database per supportare la distribuzione in ambienti di destinazione diversi.Avvio dello sviluppo in team di database che fanno riferimento a oggetti SQLCLR
Le modifiche apportate a un database possono essere gestite creando una rappresentazione offline dei relativi oggetti e impostazioni, nonché inserendo tale rappresentazione nel controllo delle versioni. In tale rappresentazione, è possibile aggiungere riferimenti a un assembly SQLCLR, quindi utilizzare gli oggetti definiti nell'assembly.Avvio dello sviluppo in team di database che fanno riferimento a oggetti server condivisi
Le modifiche apportate a un database possono essere gestite creando una rappresentazione offline dei relativi oggetti e impostazioni, nonché inserendo tale rappresentazione nel controllo delle versioni. In tale rappresentazione, è possibile aggiunge un riferimento a un progetto server condiviso in cui sono contenute le definizioni degli oggetti server, ad esempio accessi o chiavi.Avvio dello sviluppo in team di database di grandi dimensioni
Le modifiche apportate a un database di grandi dimensioni possono essere gestite separando gli oggetti in più progetti.Avvio dello sviluppo in team di database che utilizzano insiemi di XML Schema
È possibile gestire le modifiche apportate ai database in cui vengono utilizzati uno o più Insiemi XML Schema per le colonne XML tipizzate.
Vedere anche
Attività
Procedura dettagliata: creazione e distribuzione di un nuovo database con controllo delle versioni
Procedura dettagliata: Includere uno schema di database esistente nel controllo della versione
Concetti
Compilazione e distribuzione di database in un ambiente di sviluppo isolato
Configurazione dei progetti di database ed esecuzione di una distribuzione dei test