MaxDB は、エンタープライズレベルのデータベースです。以前に SAP DB と呼ばれていたデータベース管理システムが、MaxDB という新しい名前になりました。
SAP DB の歴史は 1980 年代初めにさかのぼります。その当時、SAP DB は Adabas(商用製品の 1 つ)として開発されました。以来、このデータベースは数回にわたって名称が変更されています。ドイツのウォルドルフに本社を構える SAP AGがデータベースシステムの開発を引き継いだ時点では、SAP DB という名称でした。
SAP では、堅牢な SAP アプリケーションのすべてに対応する単一のストレージシステムとして機能するように、データベースシステムを進化させました。それが R/3 です。SAP DB は、サードパーティ製データベースシステム(Oracle、Microsoft SQL Server、IBM の DB2 など)に代わる選択肢として提供されました。2000 年 10 月、SAP AG は GNU GPL ライセンス(see section H GNU General Public License)に基づき SAP DB を公開し、オープンソースソフトウェアとしました。2003 年 10 月、SAP AG の顧客のうち 2,000 社以上は、自社のメインデータベースシステムとして SAP DB を使用していました。また、他の 2,000 社以上は、自社のメインデータベースとは別の独立したデータベースシステムとして SAP DBを使用し、APO/LiveCache ソリューションの一部としていました。
2003 年 5 月、MySQL AB と SAP AG の間で技術パートナーシップが形成されました。このパートナーシップにより、MySQL AB は SAP DB の開発をさらに推進し、名称を変更することができます。また、GNU GPL(see section H GNU General Public License)に基づきこのデータベースを使用する際の制限に拘束されることを望まない顧客に対し、名称が変更された SAP DB の商用ライセンスを販売する権利も付与されます。2003 年 8 月、MySQL AB によって SAP DB の名称は MaxDB に変更されました。
MySQL AB から配布された他の製品に関して提供されたライセンス((section 1.4.3 MySQL ライセンス)に基づき、MaxDB も使用することが可能です。したがって、GNU 一般公衆利用許諾契約書(section H GNU General Public License)と商用ライセンス(section 1.4 MySQL のサポートとライセンス)に基づき MaxDB を使用できるようになります。
MySQL では、SAP ユーザ以外の顧客に対して MaxDB サポートを提供する予定です。
そのような再ブランド化バージョンの第 1 弾として、MaxDB 7.5.00 が 2003 年後期にリリースされました。
MaxDB は、クライアント/サーバ製品として動作します。インストレーション環境でオンライントランザクションを大量に処理する必要性を満たすために開発されました。オンラインバックアップとデータベース拡張がサポートされています。Microsoft クラスタサーバは複数サーバ導入に直接対応していますが、他のフェールオーバソリューションはマニュアルでスクリプト化する必要があります。データベース管理ツールは、Windows およびブラウザベースの導入の両方で提供されます。
MaxDB と MySQL の主な違いを以下に示します (概要であり、完全なものではありません)。
最初の 7.5.00 バージョンの直後に公開される MaxDB バージョンには、以下の機能が含まれる予定です。これらの機能により、MaxDB と MySQL の相互運用性が確保されます。
mysql コマンドラインユーザインタフェース、mysqldump ダンプユーティリティ、または mysqlimport インポートプログラムと同様、MySQL クライアントプログラムを MaxDB に対して使用することができます。mysqldump を使用すると、データをデータベースシステムからダンプし、他のデータベースシステムにエクスポート (パイプ) するのが容易になります。
MaxDB 関連情報のメインページは http://www.mysql.com/maxdb です。http://www.sapdb.org の掲載情報はすべて、メインページに最終的に移動される予定です。
MySQL と同じく MaxDB にも、特殊な意味を持つ多数の予約語があります。 予約語は通常、データベース名やテーブル名など、識別子の名称として使用することはできません。MaxDB の予約語、予約語の使用コンテキスト、対応する予約語が MySQL に存在するかどうかの区別が、以下の表に示されています。対応する予約語が存在する場合、MySQL での意味は一致することもあれば、多少異なることもあります。MaxDB がどの点で MySQL と異なるかを示すことが主な目的なので、この一覧は完全な内容ではありません。
MySQL の予約語一覧については、See section 6.1.7 MySQL での予約語の扱い を参照してください。
| MaxDB で予約済 | MaxDB での使用コンテキスト | 対応する MySQL の予約語 |
@
| 識別子の前に付けることができる(``@table'' など)。 | 使用できない。 |
ADDDATE()
| SQL 関数 | ADDDATE()。MySQL バージョン 4.1.1 で追加。
|
ADDTIME()
| SQL 関数 | ADDTIME()。MySQL バージョン 4.1.1 で追加。
|
ALPHA
| SQL 関数 | 類似するものが存在しない。 |
ARRAY
| データ型 | 実装されていない。 |
ASCII()
| SQL 関数 | ASCII()。ただし、異なった意味で実装されている。
|
AUTOCOMMIT
| トランザクション。デフォルトでは ON。
| トランザクション。デフォルトでは OFF。
|
BOOLEAN
| カラム型。BOOLEAN は TRUE、FALSE、NULL のみを値として受け取る。
| BOOLEAN を MySQL バージョン 4.1.0 で追加。BOOL のシノニムであり、TINYINT(1) にマッピングされている。NULL のほか、TINYINT と同じ範囲で整数値を受け取る。TRUE と FALSE は、1 と 0 のエイリアスとして使用することができる。
|
CHECK
| CHECK TABLE
| CHECK TABLE。使用方法は類似しているが、同一ではない。
|
COLUMN
| カラム型 | COLUMN。ノイズワード。
|
CHAR()
| SQL 関数 | CHAR()。同一の構文。使用方法は類似しているが、同一ではない。
|
COMMIT
| データ定義クエリの発行中にトランザクションの暗黙的なコミットが発生する。 | データ定義クエリの発行中(ただし、他のクエリも多数存在)にトランザクションの暗黙的なコミットが発生する。 |
COSH()
| SQL 関数 | 類似するものが存在しない。 |
COT()
| SQL 関数 | COT()。構文と実装が一致する。
|
CREATE
| SQL、データ定義言語 | CREATE
|
DATABASE
| SQL 関数 | DATABASE()。DATABASE は異なったコンテキストで使用される。たとえば CREATE DATABASE
|
DATE()
| SQL 関数 | CURRENT_DATE
|
DATEDIFF()
| SQL 関数 | DATEDIFF()。MySQL バージョン 4.1.1 で追加
|
DAY()
| SQL 関数 | 類似するものが存在しない。 |
DAYOFWEEK()
| SQL 関数 | DAYOFWEEK()。初日(1)のデフォルトは MaxDB では月曜、MySQL では日曜となっている。
|
DISTINCT
| SQL 関数 AVG, MAX, MIN, SUM
| DISTINCT。ただし、SELECT DISTINCT という異なったコンテキストで使用される。
|
DROP
| 特に DROP INDEX で
| DROP INDEX。使用方法は類似しているが、同一ではない。
|
EBCDIC()
| SQL 関数 | 類似するものが存在しない。 |
EXPAND()
| SQL 関数 | 類似するものが存在しない。 |
EXPLAIN
| 最適化 | EXPLAIN。使用方法は類似しているが、同一ではない。
|
FIXED()
| SQL 関数 | 類似するものが存在しない。 |
FLOAT()
| SQL 関数 | 類似するものが存在しない。 |
HEX()
| SQL 関数 | HEX()。使用方法は類似しているが、同一ではない。
|
INDEX()
| SQL 関数 | INSTR() または LOCATE()。構文と意味は類似しているが、同一ではない。
|
INDEX
| USE INDEX, IGNORE INDEX および類似するヒントが SELECT ... USE INDEX と同様、SELECT の直後で使用されている。
| USE INDEX, IGNORE INDEX および類似するヒントが SELECT ... FROM ... USE INDEX の場合と同様、SELECT の FROM 節で使用されている。
|
INITCAP()
| SQL 関数 | 類似するものが存在しない。 |
LENGTH()
| SQL 関数 | LENGTH()。構文は同一だが、実装が少し異なる。
|
LFILL()
| SQL 関数 | 類似するものが存在しない。 |
LIKE
| 比較 | LIKE。ただし、MaxDB に用意されている拡張 LIKE は MySQL の REGEX に類似している。
|
LIKE ワイルドカード
| MaxDB では、``%''、``_''、``ctrl + アンダースコア''、``ctrl + ↑''、``*''、``?'' が LIKE ワイルドカードとして比較でサポートされる。
| MySQL では、``%'' と ``_'' が LIKE ワイルドカードとして比較でサポートされる。
|
LPAD()
| SQL 関数 | LPAD()。実装が少し異なる。
|
LTRIM()
| SQL 関数 | LTRIM()。実装が少し異なる。
|
MAKEDATE()
| SQL 関数 | MAKEDATE()。MySQL バージョン 4.1.1 で追加
|
MAKETIME()
| SQL 関数 | MAKETIME()。MySQL バージョン 4.1.1 で追加
|
MAPCHAR()
| SQL 関数 | 類似するものが存在しない。 |
MICROSECOND()
| SQL 関数 | MICROSECOND()。MySQL バージョン 4.1.1 で追加
|
NOROUND()
| SQL 関数 | 類似するものが存在しない。 |
NULL
| カラム型。比較 | NULL。オーバーフローまたはゼロ除算の原因となる算術演算から返される特別な NULL 値が、MaxDB でサポートされる。そのような特別な値は、MySQL ではサポートされない。
|
PI
| SQL 関数 | PI()。構文と実装は同一だが、かっこが必要とされる。
|
REF
| データ型 | 類似するものが存在しない。 |
RFILL()
| SQL 関数 | 類似するものが存在しない。 |
ROWNO
| WHERE 節における述語
| LIMIT 節に類似している。
|
RPAD()
| SQL 関数 | RPAD()。実装が少し異なる。
|
RTRIM()
| SQL 関数 | RTRIM()。実装が少し異なる。
|
SEQUENCE
| CREATE SEQUENCE, DROP SEQUENCE
| AUTO_INCREMENT。概念は類似しているが、実装が異なる。
|
SINH()
| SQL 関数 | 類似するものが存在しない。 |
SOUNDS()
| SQL 関数 | SOUNDEX()。構文が少し異なる。
|
STATISTICS
| UPDATE STATISTICS
| ANALYZE。概念は類似しているが、実装が異なる。
|
SUBSTR()
| SQL 関数 | SUBSTRING()。実装が少し異なる。
|
SUBTIME()
| SQL 関数 | SUBTIME()。MySQL バージョン 4.1.1 で追加
|
SYNONYM
| データ定義言語: CREATE [PUBLIC] SYNONYM、RENAME SYNONYM、DROP SYNONYM
| 類似するものが存在しない。 |
TANH()
| SQL 関数 | 類似するものが存在しない。 |
TIME()
| SQL 関数 | CURRENT_TIME
|
TIMEDIFF()
| SQL 関数 | TIMEDIFF()。MySQL バージョン 4.1.1 で追加
|
TIMESTAMP()
| SQL 関数 | TIMESTAMP()。MySQL バージョン 4.1.1 で追加
|
DAYOFMONTH() と DAYOFYEAR() の引数としてのTIMESTAMP()
| SQL 関数 | 類似するものが存在しない。 |
TIMEZONE()
| SQL 関数 | 類似するものが存在しない。 |
TRANSACTION()
| 現行トランザクションの ID を返す。 | 類似するものが存在しない。 |
TRANSLATE()
| SQL 関数 | REPLACE()。構文と実装が一致する。
|
TRIM()
| SQL 関数 | TRIM()。実装が少し異なる。
|
TRUNC()
| SQL 関数 | TRUNCATE()。構文と実装が少し異なる。
|
USE
| mysql コマンドラインユーザインタフェースコマンド
| USE
|
USER
| SQL 関数 | USER()。構文は同一だが、実装が異なる。かっこが必要とされる。
|
UTC_DIFF()
| SQL 関数 | UTC_DATE()。UTC_DIFF() の結果を計算する手段を提供する。
|
VALUE()
| SQL 関数、COALESCE() のエイリアス
| COALESCE()。構文と実装が一致する。
|
VARIANCE()
| SQL 関数 | 類似するものが存在しない。 |
WEEKOFYEAR()
| SQL 関数 | WEEKOFYEAR()。MySQL バージョン 4.1.1 で追加
|
Go to the first, previous, next, last section, table of contents.