Go to the first, previous, next, last section, table of contents.


8 MaxDB の概要

MaxDB は、エンタープライズレベルのデータベースです。以前に SAP DB と呼ばれていたデータベース管理システムが、MaxDB という新しい名前になりました。

8.1 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 に変更されました。

8.2 ライセンスとサポート

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 年後期にリリースされました。

8.3 MaxDB の基本概念

MaxDB は、クライアント/サーバ製品として動作します。インストレーション環境でオンライントランザクションを大量に処理する必要性を満たすために開発されました。オンラインバックアップとデータベース拡張がサポートされています。Microsoft クラスタサーバは複数サーバ導入に直接対応していますが、他のフェールオーバソリューションはマニュアルでスクリプト化する必要があります。データベース管理ツールは、Windows およびブラウザベースの導入の両方で提供されます。

8.4 MaxDB と MySQL の相違点

MaxDB と MySQL の主な違いを以下に示します (概要であり、完全なものではありません)。

8.5 MaxDB と MySQL の相互運用性

最初の 7.5.00 バージョンの直後に公開される MaxDB バージョンには、以下の機能が含まれる予定です。これらの機能により、MaxDB と MySQL の相互運用性が確保されます。

8.6 MaxDB 関連リンク

MaxDB 関連情報のメインページは http://www.mysql.com/maxdb です。http://www.sapdb.org の掲載情報はすべて、メインページに最終的に移動される予定です。

8.7 MaxDB の予約語

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 カラム型。BOOLEANTRUEFALSENULL のみを値として受け取る。 BOOLEAN を MySQL バージョン 4.1.0 で追加。BOOL のシノニムであり、TINYINT(1) にマッピングされている。NULL のほか、TINYINT と同じ範囲で整数値を受け取る。TRUEFALSE は、10 のエイリアスとして使用することができる。
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 の場合と同様、SELECTFROM 節で使用されている。
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] SYNONYMRENAME SYNONYMDROP 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 で追加

8.8 関数

8.9 カラム型


Go to the first, previous, next, last section, table of contents.