Avvio dello sviluppo in team di database di grandi dimensioni
Prima di potere utilizzare Visual Studio per gestire le modifiche a uno schema di database, è necessario creare un progetto di database, un progetto server o un progetto applicazione del livello dati, quindi importare oggetti e impostazioni dal database che si desidera gestire. Se si desidera gestire le modifiche a un database di grandi dimensioni, può essere opportuno dividere gli oggetti tra più progetti di database. Adottando questo approccio, è possibile controllare quali team o sviluppatori possono aggiungere, modificare o eliminare codice nelle diverse+ sezioni del database.
Sono disponibili due tecniche per separare il database in sezioni più piccole:
Progetti composti: è possibile definire sezioni del database in due o più progetti di database (nella stessa soluzione oppure è possibile fare riferimento al file dbschema compilato) collegati da riferimenti al progetto di database. Quando si distribuisce il progetto che contiene il riferimento, si distribuiscono tutti i progetti a cui fa riferimento. In un progetto composito non possono esistere riferimenti circolari tra progetti.
Progetti parziali: è possibile esportare una sezione del progetto di database come un file con estensione files. Viene quindi creato un secondo progetto di database che include il progetto parziale (il file con estensione files). È quindi possibile configurare autorizzazioni di scrittura sui file originali per limitare modifiche a tali file. Pertanto, gli sviluppatori che lavorano sul secondo progetto possono creare oggetti aggiuntivi che fanno riferimento agli oggetti in sola lettura, ma non modificarli. Quando si compila e si distribuisce il secondo progetto, viene compilata una copia completa del database, incluse le sezioni in sola lettura. In un progetto parziale possono esistere riferimenti circolari.
Ogni approccio presenta limitazioni, come descritto più avanti in questo argomento.
Scelta di un tipo di progetto di database
Quando si crea un progetto di database, è possibile scegliere il tipo di progetto che corrisponde alla versione di SQL Server. Ad esempio, se il database che si desidera gestire è basato su SQL Server 2005, specificare Progetto di database SQL Server 2005 o Creazione guidata SQL Server 2005. Se si utilizza la procedura guidata, non solo è possibile creare il progetto, ma anche configurare alcune impostazioni di compilazione e distribuzione, nonché importare impostazioni e oggetti di database.
Importazione di impostazioni e oggetti di database
Dopo avere creato il progetto, è possibile importare gli oggetti e le impostazioni da un'istanza del database o da uno script. Quando si importa un database da uno script, le relative definizioni di 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 che non esistono più, è necessario risolvere questi 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 quando si importa 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 avere risolto gli avvisi nelle definizioni di oggetto, è opportuno considerare l'analisi del codice del database per rilevare eventuali problemi di progettazione, denominazione o prestazioni. Per ulteriori informazioni, vedere Analisi del codice di database per migliorare la qualità del codice.
Attività comuni
Attività comuni |
Contenuto di supporto |
---|---|
Acquisire ulteriori informazioni sui progetti di database e sui limiti dei progetti parziali e composti: è possibile apprendere i concetti di base relativi alla gestione delle modifiche allo schema tramite progetti di database. |
|
Fare pratica: è possibile eseguire una procedura dettagliata introduttiva per acquisire familiarità con le operazioni da eseguire per partizionare un progetto di database utilizzando progetti parziali o progetti composti. |
|
Inserire uno schema di database esistente nel controllo della versione: è possibile creare un progetto, configurare le impostazioni del progetto e importare uno schema tramite la Creazione guidata progetto di database. È inoltre possibile creare un progetto vuoto se si desidera importare lo schema in un secondo momento o se non si dispone delle autorizzazioni necessarie per accedere al database da cui importare lo schema. Dopo avere importato lo schema, è possibile aggiungere il progetto al controllo della versione. |
|
Suddividere un progetto di database per condividere definizioni di oggetto: è possibile esportare definizioni di oggetto da un progetto di database e riutilizzarli in un altro progetto. Anche i membri del team che possono accedere al progetto in cui si importa la definizione del progetto parziale non possono modificare gli oggetti importati. Di conseguenza, è possibile controllare le modifiche ai sottoinsiemi del codice del database. |
|
Aggiungere riferimenti per creare un progetto composto: un progetto composto viene creato aggiungendo riferimenti a un progetto di database, ma non specificando valori per le variabili server e database. Quando si distribuisce un progetto, si distribuiscono anche tutti i progetti a cui fa riferimento. |
Utilizzi e limitazioni dei progetti parziali
Nell'illustrazione seguente viene mostrato uno scenario tipico che include progetti parziali:
Utilizzo di progetti parziali nell'edizione Database Edition
In questo esempio un progetto contiene due set di oggetti. Si desidera che un altro sviluppatore o team aggiunga stored procedure al progetto, ma impedendo loro di modificare involontariamente gli altri oggetti. Per conseguire questo obiettivo tramite progetti parziali, è necessario eseguire i passaggi seguenti:
Esportare i gruppi di oggetti, per schema o tipo di oggetto, nei file A.files e B.files.
Creare un secondo progetto di database in cui l'altro sviluppatore o team possa creare stored procedure (sprocs).
Importare i progetti parziali esportati, A.files e B.files, nel secondo progetto di database.
Per limitare le autorizzazioni di controllo del codice sorgente agli oggetti nei progetti parziali importati per consentire l'accesso in sola lettura.
A questo punto, l'altro sviluppatore o team può aggiungere oggetti e compilare e distribuire il progetto per testare le modifiche.
Potrebbe non essere possibile importare il progetto parziale (file con estensione files) in un altro progetto di database se il database contiene oggetti con nomi lunghi o se il percorso in cui è stato creato il progetto di database è lungo. È possibile evitare questi problemi attenendosi ai suggerimenti seguenti:
Creare i progetti di database in una cartella con un nome di percorso breve, ad esempio "D:\MyProjects" potrebbe essere una scelta migliore rispetto a"C:\Documents e Settings\NomeUtente\Documenti\Visual Studio 2008\Projects".
Evitare nomi molto lunghi per gli oggetti di database. Le chiavi esterne sono il tipo più comune di oggetto con nomi lunghi. Se il nome della chiave esterna è "FK_ReferencingTable_ReferencedTable_ReferencedColumn1_ReferencedColumn2", potrebbero verificarsi degli errori quando si tenta di importare un progetto parziale che contiene la definizione di quella chiave.
Utilizzi e limitazioni dei progetti composti
Nell'illustrazione seguente viene illustrato uno scenario tipico che include progetti composti:
Utilizzo di progetti composti nell'edizione Database Edition
In questo esempio è possibile creare un progetto di database che contiene le definizioni degli schemi. Viene quindi creato un secondo progetto di database che contiene le definizioni delle tabelle e delle visualizzazioni e un terzo progetto di database che contiene le definizioni di eventuali stored procedure. Il terzo progetto (progetto di database C) presenta riferimenti agli altri due progetti di database. Quando si compila e si distribuisce il terzo progetto, si distribuiscono automaticamente anche gli altri progetti.
Se si utilizzano progetti composti, è necessario essere in grado di compilare e distribuire ciascun progetto in modo indipendente. In un progetto composto non possono esistere dipendenze circolari tra gli oggetti. È possibile utilizzare i progetti composti per partizionare il database per tipo di oggetto. È ad esempio possibile inserire gli schemi in un progetto, le tabelle e le visualizzazioni in un altro progetto e le stored procedure in un terzo.
Scenari correlati
Avvio dello sviluppo in team di database
Viene illustrato come creare una rappresentazione offline di uno schema di database in un progetto di database e come aggiungere il progetto al controllo della versione.Avvio dello sviluppo in team di database che fanno riferimento ad altri database
Viene illustrato come creare una rappresentazione offline di uno schema di database, definire riferimenti ad altri database, specificare valori per variabili per gli ambienti di distribuzione di destinazione e aggiungere il progetto al controllo della versione.Avvio dello sviluppo in team di database che fanno riferimento a oggetti SQLCLR
Viene illustrato come creare una rappresentazione offline di uno schema di database, definire riferimenti ad assembly che contengono oggetti Common Language Runtime (CLR) SQL, definire oggetti di database che fanno riferimento a oggetti SQLCLR e aggiungere il progetto al controllo della versione.Avvio dello sviluppo in team di database che utilizzano insiemi di XML Schema
Viene illustrato come creare una rappresentazione offline di uno schema di database, definire riferimenti a un file XSD, definire un insieme di XML Schema che utilizza quel file, definire colonne che utilizzano l'insieme di XML Schema e aggiungere il progetto al controllo della versione.Avvio dello sviluppo in team di database che fanno riferimento a oggetti server condivisi
Viene illustrato come creare una rappresentazione offline di uno schema di database, definire riferimenti a un progetto server condiviso, aggiungere riferimenti a oggetti definiti nel progetto server e aggiungere il progetto di database al controllo della versione.