SQL Server 2005 e DB2 8.2 Analisi comparativa


Il confronto dei risultati delineati

Questa piattaforma di database nel confronto dei due risultati nella costruzione di un'applicazione di database, utilizzando SQL Server 2005 (nome in codice "Yukon") in combinazione con Visual Studio per lo sviluppo che l'utilizzo di DB2 UDB 8.2 (nome in codice "Stinger") in combinazione con Visual Studio hanno un vantaggio significativo. Nello sviluppo, il debug e la distribuzione di soluzioni di database, questi vantaggi si tradurranno in tempo e denaro in un risparmio. In questo lavoro mettere in evidenza di SQL Server 2005 rispetto al 8,2 per DB2 UDB. Sostegno NET per gli oggetti di database ad un'ampia gamma di più. Inoltre, troverete nella costruzione e gestione di oggetti di database, SQL Server 2005 e Visual Studio integrato a livello di DB2 UDB 8.2 e l'integrazione di Visual Studio più da vicino. In questo articolo, si vedrà anche di SQL Server 2005 la piattaforma di sviluppo forniti dal database relazionale in aggiunta, ci sono molte altre caratteristiche che più di DB2 UDB 8.2.

Prefazione

In passato, le tecnologie di sviluppo in un linguaggio di programmazione, configurazione del prodotto e la manipolazione ambiente di dati di questi tre esperti indipendenti. Al fine di integrare l'uso di queste abilità richiedono spesso specializzati tecnologia indipendente e un sacco di manodopera. Ora, con SQL Server 2005 e Visual Studio 2005, abbiamo un ambiente di sviluppo unificato, modello di programmazione integrata che fornisce una soluzione totale, comprensivo di applicazioni database client, strumenti di gestione del server e oggetti di database server-side Costruzione. Su quali strumenti e framework miglioramento funzionale permetterà agli sviluppatori e clienti possono trarre vantaggio da esso, perché sarebbe la disponibilità delle applicazioni, prestazioni, sicurezza e scalabilità di portare un aggiornamento completo.

SQL Server 2005 e DB2 8.2 in ambiente Visual Studio e provider di dati database integrazione servirà a semplificare e migliorare il processo di sviluppo di applicazioni. Essi forniscono per aumentare la produttività, sviluppare e implementare strumenti di applicazioni, che sarà lo sviluppo e l'applicazione alla gestione del programma portano a prestazioni migliori. SQL Server 2005 e 8,2 per DB2 UDB. NET Framework di integrazione ha portato una più efficiente e più flessibile l'applicazione ambiente di sviluppo di database, questo è stato più efficiente rispetto alla versione precedente della realizzazione di una soluzione di database più robusto, hanno una migliore facilità di utilizzo e scalabilità. Attraverso l'uso di integrati. NET, gli sviluppatori di database può utilizzare il codice SQL impossibile da raggiungere prima che i risultati ottenuti. Usando il. NET Framework, gli sviluppatori scrivere il codice per avere una logica più complessa, più adatto per risolvere problemi computazionali e di accedere a sistemi esterni e le risorse di rete, come. NET come Visual Basic, C # e C + +, sono il linguaggio di programmazione completamente orientato agli oggetti, con il incapsulamento, ereditarietà e polimorfismo a tali funzioni di programmazione orientata agli oggetti. Essi hanno anche molti che non esistono nella funzionalità del linguaggio SQL, come array, la gestione strutturata delle eccezioni, la raccolta e così via.

Oggi, Microsoft. NET fornisce la più avanzata ed efficiente per costruire e integrare le applicazioni di database ambiente. In questo articolo metteremo a confronto di SQL Server 2005 e DB2 UDB 8.2, rispettivamente in dotazione. Livello di integrazione NET. Al fine di illustrare pienamente la differenza, faremo una presentazione tecnica dettagliata per mostrare la differenza con il SQL Server 2005 e DB2 UDB NET 8.2 per le stored procedure a. nella procedura specifica.

Confronto tra tecnologia di base

Sebbene SQL Server 2005 e DB2 UDB 8.2 integrato. NET Framework e Visual Studio, ma nei limiti della loro integrazione ha differenze significative. La seguente tabella elenca sul proprio. NET grado di integrazione di confronto.



Data Provider

SQL Server 2005 e DB2 UDB 8.2 istituito provider di dati. NET fa. NET programma client può accedere alla piattaforma di database. Questi "naturale" fornitori di dati e dati basati su provider OLE DB che l'applicazione server si tradurrà in migliori prestazioni e scalabilità. Entrambi i fornitori di dati hanno funzioni molto simili, in grado di eseguire oggetti ADO.NET di base, compresi Connection, Command, DataReader, DataSet e DataAdapter. Ma hanno una differenza fondamentale: SQL Server. NET è disponibile in due modelli, uno per l'applicazione client, una per le applicazioni server-side. Questo è per la sviluppo di applicazioni lato server è particolarmente importante perché il server SQL Server-side. Provider di dati NET è residente nella memoria del programma che non piace il provider di dati come il client di prendere in considerazione le restrizioni del traffico di rete, quindi, il lato server. NET provider di dati può concentrarsi su. NET oggetti di database per ottenere prestazioni migliori. Inoltre, il provider di dati sul lato server anche aperto un gruppo sul codice lato server è adatto solo per funzioni, come cursore sul lato server. Per i dati di un'applicazione client per fornire una procedura aperta in funzione dello spazio dei nomi System.Data.SqlClient, mentre le funzioni di fornitore di dati sul lato server come uno spazio aperto in nome System.Data.Sqlserver. In DB2 UDB 8.2, solo namespace IBM.Data.DB2 unico. DB2 provider di dati. NET utilizza DB2Context oggetto per creare nella memoria della connessione al database.

Sul lato server, ma hanno anche similitudini. DB2 e SQL Server supporta l'utilizzo di linguaggio. NET per creare applicazioni e la diffusione successiva del lato server. Oltre a questo concetto di base, le due piattaforme di database. Integrazione NET ha un livello molto diverso. DB2 UDB 8,2 supporta la creazione. NET stored procedure e. NET funzione definita dall'utente. Tuttavia, Visual Studio IDE supportano solo creare DB2 UDB 8.2. NET stored procedure, DB2 UDB 8.2. NET funzioni devono essere create manualmente. Al contrario, SQL Server 2005 对. NET sostegno di un'ampia gamma di più. E, come DB2, SQL Server supporta la creazione. NET stored procedure e. NET funzione definita dall'utente. Inoltre, SQL Server supporta anche. NET trigger. NET tipo definito dall'utente (UDT), e. Netto aggregato definito dall'utente. Tutti questi oggetti sono pienamente integrati nella creazione di Visual Studio 2005 IDE in. Può usare. NET build stored procedure e funzioni del sviluppatori di database è certainly buone notizie, che permetterà loro di raggiungere un logica di business more complesso e le caratteristiche funzione senza having to SQL standard functionality è limitato. Questo è senza dubbio. NET e l'integrazione del database la chiave, naturalmente, l'uso. NET per creare trigger, tipi definiti dall'utente e di aggregazione definita dall'utente è anche utile. Usa. NET per creare un trigger per attivare il codice per rendere la logica di business più pienamente incapsulato, mentre anche eseguire alcune operazioni aggiuntive, come l'accesso a risorse esterne e il funzionamento record di log. Usa. NET per creare tipi definiti dall'utente per consentire agli sviluppatori di database di prorogare il sistema di qualsiasi tipo di dati originali, questi tipi definiti dall'utente possono avere i loro attributi e operatori indipendenti, che consente agli sviluppatori di estendere i tipi di dati senza soluzione di continuità esistente , quando in uso e il tipo di dati originali, hanno i propri operatori e di aggregazione. Allo stesso modo, l'uso di. NET per creare aggregazione definite dall'utente consente agli sviluppatori di creare aggregazioni personalizzato utilizzato nel tipo di dato originale o definiti dall'utente tipi di dati.

Oltre a queste fondamentali. NET funzioni a. NET Framework e la loro integrazione server di database sono anche delle differenze importanti. La sezione successiva, ci sarà una discussione più approfondita. Dettagli integrazione NET.

. NET Framework di integrazione

Microsoft ®. NET viene utilizzato per le informazioni, risorse umane, sistemi e attrezzature connesse con un insieme di tecnologia software Microsoft. . NET Framework è quello di costruire e gestire la prossima generazione di applicazioni software e Web componenti di servizio necessarie per Windows.

. NET Framework

◆ supportare più di 20 tipi di diversi linguaggi di programmazione.

◆ Gestione di un gran numero di "pipeline" - contribuire a migliorare l'efficienza dello sviluppo software e permettendo agli sviluppatori di concentrare più energia sul codice core business logica.

◆ fare costruire, implementare e gestire una rete sicura, applicazioni di rendimento elevato robusto e più facilmente realizzabile rispetto al passato.

. NET Framework Common Language Runtime (CLR) e la libreria di classi unificate gerarchico costituito da una collezione. . NET CLR funzioni comprendono la gestione di un servizio integrato di lingua, di sicurezza obbligatorie e la memoria, di processo e di gestione dei thread. Nel linguaggio di integrazione, CLR definisce un sistema di tipo comune (CTS), che descrive il passaggio di tutti. NET, i tipi di dati di base e le operazioni su tali tipi di dati. . NET Framework fornisce una serie di classi di serie per gli sviluppatori di applicazioni utilizzate in esse, queste classi insieme Hangai molti aspetti del contenuto, 包括 I / O, di rete, elaborazione testi, di accesso ai dati, crittografia, elaborazione XML, Web Service e così via. Questo consente agli sviluppatori di essere in grado di concentrare i loro sforzi sulla costruzione di logica di business, piuttosto che sepolto nella "pipeline" nel codice, in quanto possono. NET Framework fuoco da trovare. SQL Server 2005 e IBM DB2 UDB per 8,2. NET CLR integrazione permette di utilizzare qualsiasi. NET (tra cui C #, Visual Basic, C + + e J #) per sviluppare oggetti di database.

Questi due piattaforma di database diversi e. NET Framework approccio integrato è completamente diversa. SQL Server 2005 motore di database verranno posti sulla CLR all'interno del processo, il che significa correre il motore di database e runtime di. NET processi separati solo un sistema operativo. Al contrario, DB2 UDB 8.2 e. NET Framework è integrato "modello con"-processo. Figura 1 a diverse implementazioni di database CLR è stato descritto in modo chiaro.



modello integrato di significato

SQL Server 2005 Integration. NET runtime quando si utilizza il "processo di" modello "," processo modello rispetto ad alcuni vantaggi molto evidenti. In primo luogo, l'interno permettono l'integrazione con CLR in SQL Server in grado di elaborare un diverso modo di funzionamento CLR di controllo. La gestione della memoria, raccolta dei rifiuti, il sostegno thread le funzioni fondamentali saranno controllati dall'host SQL Server, piuttosto che. NET impostazioni di default e il funzionamento. Questo è importante perché il motore di database di SQL Server per meglio studiare dal punto di vista dei requisiti di sistema globale, il che rende ottimizzato in base alle effettive della memoria e la gestione dei thread. Infine, l '"in-process" modello di SQL Server 2005 Integration CLR per creare una più robusta e ottenere una migliore soluzione scalabile.

Ad esempio, considerare un pesante fardello per l'istanza del database, per rispondere alle molte richieste simultanee, la situazione è andata avanti per un tempo molto lungo. SQL Server può automaticamente e intelligentemente nello storage dei dati e la logica del programma (per esempio,. NET stored procedure) equilibrio tra l'allocazione della memoria. Quando il sistema ha alcune delle onere di cambiamenti della natura - per esempio, relativamente più procedure per la richiesta di utilizzo del più logico - SQL Server verrà regolato automaticamente di nuovo. In questo modo, le prestazioni del sistema per rispondere ai bisogni effettivi sulla base della scalabilità e l'affidabilità di ottimizzazione continua. Perché DB2 UDB v8.2 con "processo" modello di integrazione. Runtime NET, in modo da DB2 non può fornire questo tipo di risorse macchina e l'ottimizzazione delle prestazioni di equilibrio dinamico.

SQL Server 2005 utilizzando l'API hosting CLR per attuare l'ottimizzazione dinamica, di questi solo API. NET Framework versione 2.0 lì, e in. NET Framework versioni precedenti non lo fanno. Inevitabile conseguenza, SQL Server 2005 devono essere integrate. NET Framework 2.0 e DB2 integrazione. NET Framework 1.1, naturale integrata a basso livello.

. NET 2.0 e. NET 1.1 differenza

Usa. NET Framework 2.0 e SQL Server 2005 in combinazione con Visual Studio 2005 e utilizzare. NET Framework 1.1 in combinazione con DB2 UDB 8.2, in confronto con alcuni vantaggi significativi. . NET Framework 2.0 e versioni precedenti, con caratteristiche notevolmente migliorato:

◆ per migliorare le prestazioni e tempi di caricamento

◆ sostenere il nucleo (la stessa classe e metodo per il valore di diversi tipi di dati, come il correre, aumentando in tal modo il riutilizzo del codice)

sostegno ◆ "continuare a eseguire la modifica" (Edit and Continue), gli sviluppatori possono modificare il codice nel processo di esecuzione, senza dover interrompere e riavviare la sessione di debug.

◆ Un nuovo Data Protection API (DPAPI), per cui le applicazioni possono criptare alcune informazioni sensibili, come stringa di connessione o di un blocco di memoria.

◆ autenticazione flusso attraverso il nuovo NegotiateStream e classe SslStream ti permette di usare SSL o Kerberos per realizzare canali protetti client e lato server.

◆ miglioramenti interoperabilità COM farà. NET per chiamare esistenti oggetto COM ha la migliore prestazione e affidabilità.

◆ ho migliorato prestazioni I / O con il supporto dei dati di compressione gzip

◆ la compatibilità delle applicazioni a 64-bit

Deployment. NET logica a SQL Server

l'uso effettivo di ogni piattaforma database. NET oggetti con modo molto diverso è il. In SQL Server 2005, un nuovo database di SQL Server oggetti di montaggio (Assemblea) è distribuito. NET oggetti (come trigger o stored procedure) la più piccola unità del gruppo di montaggio viene distribuito. NET più piccola unità logica. Al fine di creare oggetti di database CLR, è necessario prima utilizzare il Visual Studio 2005 per creare una DLL. Poi questa DLL in SQL Server come un oggetto di programma di database. Questi passaggi possono utilizzare il compilatore della riga di comando e il comando CREATE ASSEMBLY manualmente per raggiungere, o come parte della presentazione tecnica come nel vedere, Visual Studio 2005 può completare automaticamente l'intero processo.

Protezione di SQL Server in Assemblea

Amministratori di SQL Server 2005 database per fornire una nuova unità di sicurezza - l'assemblea. Assemblea può essere contrassegnato come i tre stati di sicurezza: SAFE, esterni e non sicuri. Queste etichette di sicurezza per gli amministratori di database per gestire e proteggere tutti nel database per eseguire il livello di assembly. NET. SAFE ha detto che il marchio di montaggio utilizzando solo codice gestito e non accedere alle risorse esterne al database. etichetta esterna, ha detto che l'assemblea di utilizzare codice gestito per accedere a risorse esterne, quali il sistema dei file in rete o all'interno di altre risorse non-database. etichetta UNSAFE che possono includere hosting di questa assemblea e (o) codice non gestito, e può accedere a qualsiasi risorsa interna o esterna. montaggio UNSAFE creato da l'oggetto di database dispone di diritti di amministratore di sistema può essere effettuata solo per gli utenti.

Deployment. NET logica a DB2

Anche se l'. NET codice gestito nel processo di DB2 UDB 8.2 e SQL Server 2005 nel processo è molto simile, ma archiviati in tipi oggetto di database e la posizione, la sicurezza e la banca dati aree di gestione dei processi, o con alcune differenze. Per creare oggetti di database DB2 in CLR, è necessario prima utilizzare Visual Studio e utilizzare alcuni. NET gestito linguaggio per creare una DLL, i file DLL devono essere copiati il percorso di installazione DB2 in una apposita directory, o creare una stored procedure o una funzione tempo per fornire il percorso completo a questo file DLL. Questa DLL non è in realtà un oggetto di database e non sono stati importati nella tabella di database, al contrario, è solo un file del sistema operativo. Poi, la DLL verrà visualizzato nella creazione di oggetti di database (come ad esempio stored procedure o funzioni) nel comando CREATE. Partecipato alla presentazione tecnica, si vedrà l'utilizzo di Visual Studio 2003 è possibile creare automaticamente una stored procedure CLR DB2 in tutto il processo. Tuttavia, la creazione di funzione definita dall'utente non è la stessa, basta essere fatto tramite il processo manuale per creare funzioni definite dall'utente.

Un amministratore di database o sviluppatore di applicazioni di solito è necessario proteggere il programma esterno associato ad un assemblaggio DLL DB2, che possono limitare il funzionamento del programma è in esecuzione per raggiungere questo passo nel processo di creazione di lavoro o funzione, nella CREATE di ESECUZIONE DI CONTROLLO clausola per il completamento. L'effettiva attuazione delle modalità di controllo: SAFE, FILEREAD, FILEWRITE, la rete e non sicuri. Se non viene specificata la modalità di controllo dell'esecuzione, la modalità predefinita è sicuro, il che significa che la procedura CLR può accedere solo dal controllo di amministratore di database di risorse, tali risorse comprendono tutte le tabelle e l'istanza quadro di gestione di database. FILEREAD, FILEWRITE e modalità di esecuzione di codice gestito di rete consente di accedere al file system locale o risorse di rete. modalità di esecuzione UNSAFE non saranno le restrizioni all'accesso alle risorse, contrassegnato come modalità di esecuzione UNSAFE è possibile eseguire codice binario per la procedura. Poiché DB2 e. Integrazione NET è adottato "," modello di processo, quindi utilizzare l'istruzione CREATE per creare le procedure CLR DB2 e le funzioni devono essere utilizzati clausola recintato, per illustrare. Logica NET e gestione dei processi di database in diversi Corri e non usare la memoria condivisa di comunicazione. Ciò ha portato alla logica del programma per trasferire i dati tra il database stesso, quando la "in-process" modello rispetto ad una delle barriere di prestazioni.