比較結果の説明
データベースアプリケーションを構築する2つの結果との比較でこのデータベースプラットフォーム、SQL Server 2005を(コードは"ユーコン"という名前の)Visual StudioでのDB2 UDB 8.2(のコードは"スティンガー")Visual Studioで組み合わせるという名前の使用するよりも開発のための組合せによる重要な利点があります。開発では、デバッグ、データベースソリューションの展開は、これらの利点は、時間とお金を節約に変換されます。この記事ではDB2 UDBの8.2データベースオブジェクトの。NETサポート、より広い範囲に比べてSQL Server 2005を強調表示します。また、あなたは、SQL Server 2005およびDB2 UDBの8.2とVisual Studioの統合よりもVisual Studioの統合レベルより密接に構築し、データベースオブジェクトを管理するのでしょう。この記事では、また、2005開発プラットフォームを加えて、リレーショナルデータベースによって提供されるSQL Serverのを見るが、そこに他の多くの機能がありますが以上のDB2 UDB 8.2。
序文
プログラミング言語、製品の構成と、これらの3つの独立の専門知識のデータの操作環境に過去には、IT開発技術。これらの技術の統合を使用するには多くの場合、比較的技術的専門知識と人材の多くの独立が必要です。今は、SQL Server 2005とVisual Studio 2005で、我々は、クライアント側のデータベースアプリケーションの包括的なのトータルソリューションを提供する統合されたプログラミングモデルを統一された開発環境を持って、サーバーマネージャツールとサーバー側のデータベースオブジェクト建設。それは包括的なアップグレードをもたらすため、アプリケーションの可用性、パフォーマンス、セキュリティ、スケーラビリティを必要があるためのツールとフレームワークではこのような機能改善はそれから恩恵を受けることができる、開発者と顧客を許可します。
SQL Server 2005および8.2、Visual Studio環境とデータベースのデータプロバイダ統合DB2が簡素化され、アプリケーション開発プロセスを改善します。彼らは生産性を高めるために、提供するビルドの開発とプログラム管理への応用されるアプリケーションツールを展開、パフォーマンスの向上につながる。 SQL Server 2005およびDB2 UDBは8.2。NET Frameworkの統合に関するより多くの柔軟なデータベースアプリケーションの開発環境効率は、これはもっともっと強力なデータベースソリューションの実装の以前のバージョンよりも効率されている持っており、それ使用とスケーラビリティの向上を容易しています。 。NET環境は、データベース開発者の統合を使用するSQLコードを得られた結果は前に達成するために使用できなくすることができますスルー。 。NET Frameworkを、開発者は使用することにより、より多くの計算問題を解決するために適した、より複雑なロジックを持って、コードを書いて、外部システムとネットワークリソースへの、としてアクセスする。NET言語Visual BasicやC#などとC + +、完全なオブジェクト指向プログラミング言語でいるカプセル化、継承やポリモーフィズムなど、オブジェクト指向プログラミングの機能として。また、あるは、SQL言語の機能で、配列などの、構造化例外処理、コレクションなどを上に存在しない多くの。
今日は、Microsoft。NETは、最も先進的かつ効率的に構築し、データベースアプリケーション環境を統合します。この記事では、我々はUDBの8.2は、それぞれ提供する。NET統合レベルをSQL Server 2005およびDB2を比較します。ために完全に差を説明するために、我々は具体的な手順でストアドプロシージャを差aをNETでのSQL Server 2005およびDB2 UDB 8.2を使用表示する詳細な技術的なプレゼンテーションを行います。
比較コア技術の
SQL Server 2005およびDB2 UDBの8.2が。NET FrameworkとVisual Studioのが、その統合の程度を統合されて有意な差がある。次の表は、比較の彼ら。NET統合度でこれを示します。
データプロバイダ
SQL Server 2005およびDB2 UDBが8.2に設定されます。NETデータプロバイダができます。NETクライアントプログラムがデータベースプラットフォームにアクセスできます。これらの"自然な"データプロバイダとサーバーアプリケーションがデータベースのOLE DBプロバイダは、パフォーマンスとスケーラビリティになります。両方のデータプロバイダは、接続、コマンドは、DataReaderは、DataSetを含む基本的なADO.NETオブジェクトを実行できますが、非常によく似た機能を持つとDataAdapter。しかし、彼らは重要な違いは:SQL Serverを。NETデータプロバイダが2つのモデル、1つのクライアントアプリケーションのでは、1つのサーバー側のアプリケーションです。 SQL Serverのサーバー側の。NETデータプロバイダは、プログラムのメモリ内に居住しているので、これはサーバー側のアプリケーション開発のため、特に重要なことはしないクライアントのネットワークトラフィックの制限を、したがって、考慮するとデータプロバイダのように、サーバー側の。 NETデータプロバイダは、。NETデータベースオブジェクトのパフォーマンス向上のために集中できます。また、サーバー側のデータプロバイダは、サーバー側のコードのグループを開いたの機能だけで、サーバー側カーソルなどに適しています。クライアントアプリケーションのデータについては、System.Data.SqlClient名前空間の関数で開いている手順を提供しながらSystem.Data.Sqlserver名のオープンスペースとしてサーバー側のデータプロバイダの機能。 DB2 UDBは8.2、1つだけIBM.Data.DB2名前空間では。 DB2の。NETデータプロバイダはDB2Contextデータベース接続のメモリ内に作成するオブジェクトを使用。
サーバー側では、彼らはまた、類似点がある。 DB2とSQL Serverが。NET言語とサーバー側のその後の展開アプリケーションを構築するための使用をサポートします。この基本的な概念から離れて、2つのデータベースプラットフォームは、。NETとの統合は非常に異なるレベルがあります。 DB2 UDBは、8.2および。NETユーザー定義関数を作成します。NETのストアドプロシージャをサポートしています。ただし、Visual Studio IDEは作成サポートのDB2 UDB 8.2は、。NETのストアドプロシージャは、DB2 UDB 8.2。NETの機能を手動で作成する必要があります。対照的に、SQL Server 2005の对します。以上の広い範囲にNETのサポート。また、DB2のように、SQL Serverは、。NETユーザー定義関数を作成します。NETのストアドプロシージャをサポートしています。さらに、SQL Serverはサポートしています。NETで、。NETのユーザー定義型(UDT)、および。NETユーザー定義集計トリガされます。これらのすべてのオブジェクトの完全に2005のIDEは、Visual Studioを作成するに統合されます。することができます使用する。NET言語は確認のためのデータベースの開発を構築し、より複雑なビジネスロジックと機能を実現できるようになります朗報ですが、プロシージャや関数を格納されて標準的な機能をSQL関数に限定されない。これは間違いなく。NETとデータベースの統合キーは、もちろん、使用できます。NET言語、ユーザー定義型およびユーザー定義集計をトリガを作成することですにも便利です。また、外部リソースとのレコードの操作ログへのアクセスなどいくつかの追加操作を実行中に使用する。NET言語は完全にカプセル化されたビジネスロジックをするためにcodeをトリガに、トリガを作成します。使用して。NET言語は、データベース開発者は、任意の元のデータ型システムを拡張できるようにするユーザー定義型を作成し、これらのユーザー定義型は、自分の属性と開発者がシームレスに既存のデータ型を拡張することができます演算子を独立して持つことができます、使用時に、元のデータ型は、独自の演算子と集計しています。同様に、。NETの使用は、ユーザー定義集計を作成する開発者は、カスタム集計を元のデータ型またはユーザー定義のデータ型で使用される作成することができます。
これらの基本に加えて、。NET Frameworkと、データベースサーバーの統合インチNETの機能も大きな違いがあります。次のセクションでは、我々はより詳細な議論。NET統合の詳細になります。
。NET Frameworkの統合
のMicrosoft ®。NETの情報には、人的資源、システムおよび機器をマイクロソフトのソフトウェア技術のセットに関連付けられて使用されます。 。NET Frameworkが構築し、ソフトウェアアプリケーションとWebサービスのコンポーネントのWindowsに必要な次の世代を実行されます。
。NET Frameworkの
◆サポートさまざまなプログラミング言語以上の20種類。
◆管理は、"パイプライン" - 多数のソフトウェア開発の効率を改善し、開発者がコアビジネスロジックコードをより多くのエネルギーを集中することができます役立ちます。
◆ビルドでは、作る展開と安全、堅牢で高性能のアプリケーションは、これまで以上に簡単に達成するために管理します。
。NET Frameworkの共通言語ランタイム(CLR)と統合された階層的クラスライブラリのコレクションから成る。 NETのCLRの機能が統合された言語サービス、必須レベルのセキュリティとメモリ、プロセスとスレッドの管理の操作が含まれて。統合の言語では、CLRはこれらのデータ型に。NET言語、基本的なデータ型と操作をすべての交差点を記述共通型システム(CTS)を定義します。 。NET Frameworkが自分のアプリケーションに適用するクラスの開発者のためのセットの数を提供し、これらのクラスの多くの側面をカバーすると、I /を含む設定おお、网络、テキスト処理、データアクセス、暗号化、XML処理、Webサービスのように。これは開発者ではなく、ビジネスロジックを構築するコードの"パイプライン"に埋葬さに努力を集中できるようにすることができ、彼らができます。NET Frameworkクラスを見つけることに集中した。 SQL Server 2005のとIBMのDB2 UDB 8.2。NETのCLRの統合が可能使用することが任意のC、Visual Basicは、C + +とJ)は、データベースオブジェクトを開発すること#を含むNET言語(。
これら2つの別のデータベースプラットフォームと。NET Framework統合的なアプローチは完全に異なっている。 SQL Server 2005のデータベースエンジンは、プロセス内および。NETランタイムのみを別のオペレーティングシステムのプロセスデータベースエンジンを実行していることを意味CLRの上の場所になります。対照的には、DB2 UDB 8.2および。NET Frameworkは、"プロセスと"モデルを統合されます。図1 CLRが明確に記載されて別のデータベースの実装に。
意味の統合モデル
SQL Server 2005の統合。NETランタイムの一部非常に明確な利点と比較して"モデル"プロセス"モデルの"プロセスを使用します。まず、内部CLRの動作を制御する別の方法で処理できるSQL ServerでのCLR統合を有効にします。メモリ管理は、ガベージコレクション、スレッドのサポートのコア機能をSQL Serverホストではなく、より。NETでの既定の設定と操作によって制御されます。 SQL Serverデータベースエンジンは、よりトラフィックのシステム全体の観点から検討することができますので、これは重要な、実際のメモリやスレッドの管理に基づいて最適化されたことです。最後に、SQL Serverの"インプロセス"モデルは2005年のCLR統合がよりスケーラブルなソリューションを、より堅牢で取得を作成する。
たとえば、データベースインスタンス上で、多数の同時要求に応答する、状況は非常に長い時間続いている負担を考慮する。 SQL Serverのできるデータストレージと例のプログラムロジック(自動的にインテリジェントで、。NET)がメモリの割り当てのバランスストアドプロシージャを。システムがいくつかの自然の変化の負担の - 一例として、比較的手順の詳細は、自動的に再調整される複数の論理を使用して - SQL Serverの要請した。この方法では、システムのパフォーマンスは、実際のニーズにスケーラビリティと継続的な最適化の信頼性に基づいて対応する。統合のDB2 UDBは、v8.2を"プロセスと"モデル。NETランタイムあるため、はとてもDB2は、マシンのリソースと動的平衡のパフォーマンスの最適化は、この型を提供することはできません。
SQL Server 2005の動的な最適化を実装するCLRのAPIをホスティングを使用して、これらのAPIのみ。NET Frameworkのバージョン2.0が、と。NET Framework以前のバージョンではありません。避けられない結果、SQL Server 2005の必要性が統合されています。NET Framework 2.0との統合は、DB2の。NET Framework 1.1を、統合の自然低レベル。
。NET 2.0および。NET 1.1の違い
使用して。NET Framework 2.0およびSQL Server 2005はVisual Studio 2005および使用する。NET Framework 1.1でのDB2 UDB 8.2と組み合わせて、いくつかの重要な利点と比較して組み合わせる。 。NET Framework 2.0および以前のバージョンで大幅に強化された機能と:
パフォーマンスと読み込み時間を改善するために◆
◆は、このようにコードの再利用を増やす)(同じクラスジェネリックとメソッドの動作と同じ値の異なるデータ型でサポート
◆サポート"編集を実行する"(編集は - と - 続き)は、開発者が実装プロセスでは、停止し、デバッグセッションを再起動せずにコードを変更することができます続けている。
新しいデータ保護API(DPAPIを使用)◆、アプリケーションが接続文字列またはメモリのブロックなどの特定の機密情報を暗号化することができます。
新しいNegotiateStreamとSslStreamクラスを介して◆認証の流れは、KerberosまたはSSLクライアントとサーバー側の安全なチャネルを達成するために使用することができます。
◆COMの相互運用性の改善が確認されます。NETアプリケーションは、既存のCOMオブジェクトを呼び出すためにパフォーマンスと信頼性を有する。
◆は、GZIPデータのサポートI / Oパフォーマンスの圧縮、私の改善
◆64ビットアプリケーションの互換性
SQL Serverへの展開。NETのロジック
各データベースプラットフォームの実際の使用。NETオブジェクトは非常に異なる方法を持っている。 SQL Server 2005の新しいSQL Serverデータベースオブジェクトのアセンブリで(国会)が配備されます。オブジェクト(NETなどのトリガまたは)アセンブリグループの最小単位をストアドプロシージャを。NETで最小の論理ユニットを展開されます。ためにCLRのデータベースオブジェクトを作成するには、最初のDLLを作成するために、Visual Studio 2005を使用する必要があります。次に、データベースプログラムのオブジェクトとしてSQL ServerにこのDLL。これらの手順は、手動で達成するためにまたは、Visual Studio 2005の自動プロセス全体を完了することができます参照してください技術的なプレゼンテーションの一部としてコマンドラインコンパイラとCREATEアセンブリコマンドを使用することができます。
国会でSQL Serverのセキュリティ
SQL Server 2005データベース管理者は、新しいセキュリティユニットを - アセンブリを提供します。国会は3つのセキュリティ状態:セーフ、外部、およびUNSAFEをマークすることができます。データベース管理者向けのこれらのセキュリティラベルが管理する、データベース内の。NETコードアセンブリレベルを実行するすべての保護されます。 SAFEは言ったデータベースの外部のラベルアセンブリのみ、マネージコードを使用していないリソースにアクセスする。外部ラベル、アセンブリは、ネットワークファイルシステムや他の非データベースリソース内などの外部リソースにアクセスするマネージコードを使用すると述べた。このアセンブリとホスティングを含めることができますUNSAFEをラベル(または、)以外のマネージコード、および任意の内部または外部リソースにアクセスすることができます。 UNSAFEをアセンブリは、データベースオブジェクトによって作成されたユーザーのみに対して実行できるシステム管理者権限を持つ。
DB2への展開。NETのロジック
。NETでは、DB2 UDB 8.2およびSQL Server 2005のプロセスにプロセスにマネージコードが非常によく似ていますが、データベースオブジェクトの種類と場所、セキュリティ、データベース管理のプロセス領域、またはいくつかの違いが格納されます。 CLRでDB2データベースオブジェクトを作成するには、最初に使用するVisual Studioのする必要が、いくつかの使用します。NET言語DLLを、DLLファイルを作成する管理は、DB2のインストールパスに特別なディレクトリ、またはストアドプロシージャまたは関数を作成するにコピーする必要があります時間は、このDLLファイルへのフルパスを提供します。このDLLは、実際にデータベースではありませんオブジェクトデータベースのテーブルに、逆にインポートされていないが、それだけで、オペレーティングシステムのファイルです。次に、DLLはCREATEコマンドでデータベースオブジェクト(のようなプロシージャまたは関数を格納)を作成するに表示されます。技術的なプレゼンテーションのパート場合は、全体のプロセスを完了するためにVisual Studio 2003のを使用して自動的にDB2のCLRストアドプロシージャを作成することができますが表示されます。 、あなただけのマニュアルプロセスによって、ユーザー定義関数を作成するために行われるが、作成するユーザー定義関数は同じではありません。
データベース管理者またはアプリケーション開発者がコトのDB2外部プログラムをプログラムの作成プロセスや関数で、このステップの作業を達成する操作を制限することによって、CREATEステートメントの中runs魚!DLLのアセンブリに関連付けられて保護することです実行制御の句が完了します。制御モードの有効な実装が含まれます:セーフ、FILEREAD、FILEWRITE、ネットワーク、およびUNSAFEを。実行制御モードを指定しない場合、デフォルトのモードは、セーフ、そのCLRプロシージャは、リソースのみのデータベース管理者用コントロールで、そのリソースをすべてのテーブルとデータベースインスタンスの管理フレームワークをがアクセスできることを意味ことです。 FILEREADは、FILEWRITEと実行モードのローカルファイルシステムまたはネットワークリソースにアクセスするマネージコードを可能にするネットワーク。 UNSAFEを実行モードでは、リソースへのアクセスに制限、UNSAFEを実行モードとしてマークプロシージャのバイナリコードを実行することができますされません。 DB2と。NETの統合は、"プロセス"モデルは、DB2のCLRプロシージャと関数を作成するCREATEステートメントを使用して採用されて以来、さまざまな。NETでのロジックを、データベースマネージャのプロセスを説明するFENCEDの句を使用する必要がを実行し、メモリの通信を共有使用しないでください。これは、プログラムロジックで転送するために結果がデータベース自体の間にデータが"インプロセス"モデルは、パフォーマンスの障壁に比べて。