MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

データベースウォーズ:MSSQL Server、Oracle PL / SQL、MySQL


市場には非常に多くのデータベースが存在するため、マインドウォーが始まり、市場の上位3つのリレーショナルデータベース(Microsoft SQL Server、Oracle PL / SQL、およびMySQL)の違いと重要性を理解するのに適切な時期です。リレーショナルデータベース管理システムは現在、業界のバックボーンになっており、利用可能なオプションが非常に多いため、どれを選択するかを判断するのは困難です。

リレーショナルデータベース管理システムは1980年代に導入されました。この記事では、業界で人気のある3つのRDBMS(Microsoft SQL Server、Oracle、およびMySQL)の歴史と機能の調査に焦点を当てています。 Microsoft SQL ServerとOracleは商用ソフトウェアであり、MySQLはオープンソースのRDBMSです。

データベースウォーズ:MSSQL Server、Oracle PL / SQL、MySQL

オラクルは、1980年代に商用利用のためにRDBMSを発表した最初の企業でした。 1990年代半ば、MicrosoftはSQLServerをOracleの真剣な競争相手として市場に参入しました。一方、MySQLは元々、オープンソースソフトウェアとして開発および配布されていました。 MySQLは1995年に最初にリリースされ、Windowsバージョンは1998年にリリースされました。2008年にSUNに買収され、その後Oracleに買収されました。

言語–コミュニケーションの中心

RDBMSのバックボーンは、クエリの実行に使用される言語であり、それがパフォーマンスと実装に影響を与える方法です。 3つのデータベース管理システムはすべて、構造化照会言語(SQL)のバージョンを使用していますが。 Microsoft SQL Serverは、Transact-SQL(T-SQL)を使用します。これは、元々Sybaseによって開発され、Microsoftによって使用されたSQLの拡張です。一方、OracleはPL/SQLまたは手続き型言語/SQLを使用します。

どちらもSQLの異なる「フレーバー」または方言であり、両方の言語の構文と機能はわずかに異なります。 2つの言語の主な違いは、変数、ストアドプロシージャ、および組み込み関数の処理方法です。 OracleのPL/SQLは、プロシージャをパッケージにグループ化することもできますが、MSSQLServerでは実行できません。 PL / SQLはもう少し複雑で、潜在的に強力になる可能性がありますが、T-SQLははるかに単純で、実装が簡単です。

データベースウォーズ:MSSQL Server、Oracle PL / SQL、MySQL

一方、MySQLは軽量バージョンのT-SQLを使用し、SQL/PSMに密接に関連する手続き型言語も組み合わせています。ただし、MySQLに保存されているコードオブジェクトはANSI標準に近いものですが、T-SQL、Microsoft、Sybase独自のSQL拡張機能の幅と深さはありません。

トランザクション制御

トランザクションは、単一のユニットとして実行される操作のグループであると言えます。たとえば、ユーザーがいくつかのSQLクエリを実行しようとしている場合、すべてが実行されるか、まったく実行されません。これは、トランザクション制御に関するOracleとMSSQLServerの主な違いの1つです。

デフォルトでは、MS SQL Serverは各コマンド/タスクを個別に実行してコミットします。途中でエラーが発生した場合、変更をロールバックすることは困難または不可能です。 「BEGINTRANSACTION」コマンドは、ステートメントを適切にグループ化し、トランザクションの開始を宣言するために使用され、COMMITステートメントは最後に使用できます。このCOMMITステートメントは、変更されたデータをディスクに書き込み、トランザクションを終了します。トランザクション内で、ROLLBACKはトランザクションブロック内で行われた変更を破棄します。 COMMITが発行された後は、COMMITコマンド以外にロールバックすることはできません。

データベースウォーズ:MSSQL Server、Oracle PL / SQL、MySQL

一方、Oracleでは、新しいデータベース接続はそれぞれ新しいトランザクションと見なされます。クエリが実行されてコマンドが発行されると、変更はデータベースのメモリにのみ行われ、キャッシュに残ります。明示的なCOMMITステートメントが指定されるまで、何もコミットされません。 COMMITの後、発行された次のコマンドは基本的に新しいトランザクションを開始し、プロセスが再開されます。これにより、COMMITコマンドが明示的に実行されるまで変更がディスクにコミットされないため、柔軟性が向上し、エラー制御にも役立ちます。

MySQLの場合、トランザクションのサポートはInnoDBと簡単に互換性があります。 InnoDBはMySQLのストレージエンジンであり、デフォルトでMySQLで使用できます。標準のACID準拠のトランザクション機能と、外部キーのサポートを提供します。

データベースオブジェクトの編成

データベースオブジェクトの編成も、これら3つのデータベースの大きな差別化要因です。 MS SQL Serverは、テーブル、ビュー、プロシージャなどのすべてのオブジェクトをデータベース名で整理します。 MS SQLユーザーはログインに割り当てられ、ログインには特定のデータベースとそのオブジェクトへのアクセスが許可されます。 Microsoft SQL Serverでは、各データベースのサーバー上に非共有のプライベートディスクファイルがあります。

一方、Oracleでは、すべてのデータベースオブジェクトがスキーマごとにグループ化されています。スキーマは、データベースオブジェクトのサブセットコレクションであるデータベース構造に他なりません。すべてのデータベースオブジェクトは、すべてのスキーマとユーザー間で共有されます。すべて共有されていますが、各ユーザーの役割と権限が定義されており、特定のスキーマとテーブルに同じものを制限できます。

つまり、MySQL、Oracle、SQLServerの3つすべてが強力なRDBMSオプションです。 「内部」での動作と実装には他にも多くの違いがありますが、ほぼ同等の方法で使用できます。それぞれが異なる環境で異なる目的で使用できます。目的は同じかもしれませんが、実装は異なります。


  1. MSSQLServerにデータベースにログインする方法

    ログインは、SQL Serverにアクセスする簡単な方法であり、IDとパスワードを使用してWindowsまたは電子メールアカウントにログインすることもできます。 SQLServerには4種類のログインがあります。 Windowsのログイン情報によると SQLServer専用に指定 証明書証明書の下で作成 非対称キーによって作成 このチュートリアルでは、Windowsクレデンシャルを使用してログインし、SQLServerに指定する方法のみに焦点を当てます。 方法1は、Windowsのユーザー名とパスワードを使用してSQLServerにログインするのに役立ちます。別のユーザー名とパスワードを作

  2. MicrosoftSQLServerの高度な破損と回復

    このブログでは、Microsoft®SQLServer®のデータベースレベルで発生する可能性のある破損、それらを検出する方法、および高度な復元と修復の手法を使用してそれらを修正する方法について説明しています。 はじめに 現在、SQL Serverは、その高度な内部構造と優れた信頼性により、最も一般的で広く使用されているリレーショナルデータベース管理システムの1つです。多くの組織は、重要なビジネスデータを維持および保存するためにSQLServerデータベースを選択しています。 企業は、データベース管理者(DBA)がデータベースのパフォーマンス、保守、およびセキュリティを継続的に改善することを