Articles

Database Wars: MSSQL Server, Oracle PL/SQL and MySQL

Posted on

市場に非常に多くのデータベースが存在するため、マインドウォーが始まっています。

リレーショナルデータベース管理システムは、1980年代に登場しましたが、現在では業界の基幹システムとなっています。 この記事では、業界で人気のある3つのRDBMSの歴史と特徴を探ることに焦点を当てています。 Microsoft SQL Server、Oracle、そしてMySQLです。

1980年代に初めて商用のRDBMSを世に送り出したのはOracleでした。 1990年代半ばには、マイクロソフト社がSQL Serverで市場に参入し、オラクル社の本格的な競争相手となりました。 一方、MySQLは、もともとオープンソースソフトウェアとして開発・配布されていました。 MySQLは1995年に初めてリリースされ、ウィンドウズ版は1998年にリリースされました。

The Language – Heart of Communication

あらゆるRDBMSのバックボーンは、クエリを実行するために使用される言語であり、それがパフォーマンスや実装に影響を与えるのです。 3 つのデータベース管理システムは、いずれも SQL (Structured Query Language) を使用しています。 Microsoft SQL Serverでは、Sybase社が開発したSQLをMicrosoft社が拡張したTransact-SQL(T-SQL)を使用しています。

この2つの言語は、SQLの異なる「フレーバー」または「方言」であり、どちらの言語もわずかに異なる構文と機能を持っています。 両者の主な違いは、変数、ストアドプロシージャ、組み込み関数の扱い方です。 OracleのPL/SQLでは、プロシージャをパッケージにまとめることができますが、これはMS SQL Serverではできません。

一方、MySQLはT-SQLのライトバージョンを使用しており、SQL/PSMに密接に関連する手続き言語も組み合わせています。

トランザクション制御

トランザクションとは、1つのユニットとして実行される一連の操作と言えます。 たとえば、ユーザーがいくつかの SQL クエリを実行しようとしている場合、すべてが実行されるか、まったく実行されないかのどちらかです。

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

Oracleでは、新しいデータベース接続はそれぞれ新しいトランザクションとして扱われます。 クエリが実行され、コマンドが発行されると、その変更はデータベースのメモリ内でのみ行われ、キャッシュに残ります。 明示的なCOMMITステートメントが与えられるまで、何もコミットされません。 COMMITの後、次に発行されるコマンドは基本的に新しいトランザクションを開始し、プロセスは再び始まります。

MySQL の場合、トランザクションのサポートは InnoDB と容易に互換性があります。 InnoDBは、MySQLのストレージエンジンで、デフォルトではMySQLと一緒に利用できます。

データベース オブジェクトの整理

データベース オブジェクトの整理も、これら 3 つのデータベースの大きな違いです。 MS SQL Server は、テーブル、ビュー、プロシージャなどのすべてのオブジェクトを、データベース名で整理します。 MS SQLのユーザーには、特定のデータベースとそのオブジェクトへのアクセスを許可されたログイン名が割り当てられます。

一方、Oracleでは、すべてのデータベース オブジェクトはスキーマによってグループ化されています。 スキーマとは、データベース オブジェクトのサブセットを集めたデータベース構造のことです。 すべてのデータベースオブジェクトは、すべてのスキーマとユーザーの間で共有されます。

要するに、MySQL、Oracle、SQL Server の 3 つはすべて強力な RDBMS のオプションです。 ボンネットの中で」どのように動作するか、どのように実装されているかなど、他にも多くの違いがありますが、ほぼ同等の方法で使用することができます。 それぞれ、異なる環境で異なる目的で使用することができます。

raja

Published on 16-Jan-2020 12:26:19

Advertisements

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です