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

15 Introduction to MaxDB

MaxDB is an enterprise level database. MaxDB is the new name of a database management system formerly called SAP DB.

15.1 History of MaxDB

The history of SAP DB goes back to the early 1980s when it was developed as a commercial product (Adabas). The database has changed names several times since then. When SAP AG, a Walldorf, Germany, based company, took over the development of that database system, it was called SAP DB.

SAP developed that database system to serve as a storage system for all heavy-duty SAP applications, namely R/3. SAP DB was meant to provide an alternative to third-party database systems like Oracle, Microsoft SQL Server, or DB2 by IBM. In October 2000, SAP AG released SAP DB under the GNU GPL license (see section G GNU General Public License), thus making it open source software. In October 2003, more than 2,000 customers of SAP AG were using SAP DB as their main database system, and more than another 2,000 customers were using it as a separate database system besides their main database, as part of the APO/LiveCache solution.

In May 2003, a technology partnership was formed between MySQL AB and SAP AG. That partnership entitles MySQL AB to further develop SAP DB, rename it, and sell commercial licenses of the renamed SAP DB to customers who do not want to be bound to the restrictions imposed to them when using that database system under the GNU GPL (see section G GNU General Public License). In August 2003, SAP DB was renamed to MaxDB by MySQL AB.

15.2 Licensing and Support

MaxDB can be used under the same licenses available for the other products distributed by MySQL AB (section 1.4.3 MySQL Licenses). Thus, MaxDB will be available under the GNU General Public License (section G GNU General Public License), and a commercial license (section 1.4 MySQL Support and Licensing).

MySQL will offer MaxDB support to non-SAP customers.

The first rebranded version will be MaxDB 7.5.00 that will be released in late 2003.

15.3 Basic Concepts of MaxDB

MaxDB operates as a client/server product. It was developed to meet the demands of installations processing a high volume of online transactions. Both online backup and expansion of the database are supported. Microsoft Clustered Server is supported directly for multiple server implementations; other failover solutions must be scripted manually. Database management tools are provided in both Windows and browser-based implementations.

15.4 Feature Differences between MaxDB and MySQL

The following list provides a short summary of the main differences between MaxDB and MySQL; it is not complete.

15.5 Interoperability Features between MaxDB and MySQL

The following features will be included in MaxDB versions to be released shortly after the first 7.5.00 version. These features will allow interoperation between MaxDB and MySQL:

15.6 MaxDB-related Links

The main page for information about MaxDB is http://www.mysql.com/maxdb. Eventually, all information available at http://www.sapdb.org will be moved there.

15.7 Reserved Words in MaxDB

Like MySQL, MaxDB has a number of reserved words that have special meanings. Normally, they cannot be used as names of identifiers, such as database or table names. The following table lists reserved words in MaxDB, indicates the context in which those words are used, and indicates whether or not they have counterparts in MySQL. If such a counterpart exists, the meaning in MySQL might be identical, or differing in some aspects. The main purpose is to list in which respects MaxDB differs from MySQL; therefore, this list is not complete.

For the list of reserved words in MySQL, see See section 10.6 Treatment of Reserved Words in MySQL.

Reserved in MaxDB Context of usage in MaxDB MySQL counterpart
@ May prefix identifier, like ``@table'' Not allowed
ADDDATE() SQL function ADDDATE(); new in MySQL version 4.1.1
ADDTIME() SQL function ADDTIME(); new in MySQL version 4.1.1
ALPHA SQL function Nothing comparable
ARRAY Data type Not implemented
ASCII() SQL function ASCII(), but implemented with a different meaning
AUTOCOMMIT Transactions; ON by default Transactions; OFF by default
BOOLEAN Column types; BOOLEAN accepts as values only TRUE, FALSE, and NULL BOOLEAN was added in MySQL version 4.1.0; it is a synonym for BOOL which is mapped to TINYINT(1). It accepts integer values in the same range as TINYINT as well as NULL. TRUE and FALSE can be used as aliases for 1 and 0.
CHECK CHECK TABLE CHECK TABLE; similar, but not identical usage
COLUMN Column types COLUMN; noise word
CHAR() SQL function CHAR(); identical syntax; similar, not identical usage
COMMIT Implicit commits of transactions happen when data definition queries are being issued Implicit commits of transactions happen when data definition queries are being issued, but also with a number of other queries
COSH() SQL function Nothing comparable
COT() SQL function COT(); identical syntax and implementation
CREATE SQL, data definition language CREATE
DATABASE SQL function DATABASE(); DATABASE is used in a different context, for example CREATE DATABASE
DATEDIFF() SQL function DATEDIFF(); new in MySQL version 4.1.1
DAY() SQL function Nothing comparable
DAYOFWEEK() SQL function DAYOFWEEK(); the first day (1) by default is Monday in MaxDB, and Sunday in MySQL
DISTINCT SQL functions AVG, MAX, MIN, SUM DISTINCT; but used in a different context: SELECT DISTINCT
DROP inter alia in DROP INDEX DROP INDEX; similar, but not identical usage
EBCDIC() SQL function Nothing comparable
EXPAND() SQL function Nothing comparable
EXPLAIN Optimization EXPLAIN; similar, but not identical usage
FIXED() SQL function Nothing comparable
FLOAT() SQL function Nothing comparable
HEX() SQL function HEX(); similar, but not identical usage
INDEX() SQL function INSTR() or LOCATE(); similar, but not identical syntaxes and meanings
INDEX USE INDEX, IGNORE INDEX and similar hints are being used right after SELECT, like SELECT ... USE INDEX USE INDEX, IGNORE INDEX and similar hints are being used in the FROM clause of a SELECT query, like in SELECT ... FROM ... USE INDEX
INITCAP() SQL function Nothing comparable
LENGTH() SQL function LENGTH(); identical syntax, but slightly different implementation
LFILL() SQL function Nothing comparable
LIKE Comparisons LIKE; but the extended LIKE MaxDB provides rather resembles the MySQL REGEX
LIKE wildcards MaxDB supports ``%'', ``_'', ``ctrl+underline'', ``ctrl+up arrow'', ``*'', and ``?'' as wildcards in a LIKE comparison MySQL supports ``%'', and ``_'' as wildcards in a LIKE comparison
LPAD() SQL function LPAD(); slightly different implementation
LTRIM() SQL function LTRIM(); slightly different implementation
MAKEDATE() SQL function MAKEDATE(); new in MySQL version 4.1.1
MAKETIME() SQL function MAKETIME(); new in MySQL version 4.1.1
MAPCHAR() SQL function Nothing comparable
MICROSECOND() SQL function MICROSECOND(); new in MySQL version 4.1.1
NOROUND() SQL function Nothing comparable
NULL Column types; comparisons NULL; MaxDB supports special NULL values that are returned by arithmetic operations that lead to an overflow or a division by zero; MySQL does not support such special values
PI SQL function PI(); identical syntax and implementation, but parantheses are mandatory
REF Data type Nothing comparable
RFILL() SQL function Nothing comparable
ROWNO Predicate in WHERE clause Similar to LIMIT clause
RPAD() SQL function RPAD(); slightly different implementation
RTRIM() SQL function RTRIM(); slightly different implementation
SEQUENCE CREATE SEQUENCE, DROP SEQUENCE AUTO_INCREMENT; similar concept, but differing implementation
SINH() SQL function Nothing comparable
SOUNDS() SQL function SOUNDEX(); slightly different syntax
STATISTICS UPDATE STATISTICS ANALYZE; similar concept, but differing implementation
SUBSTR() SQL function SUBSTRING(); slightly different implementation
SUBTIME() SQL function SUBTIME(); new in MySQL version 4.1.1
SYNONYM Data definition language: CREATE [PUBLIC] SYNONYM, RENAME SYNONYM, DROP SYNONYM Nothing comparable
TANH() SQL function Nothing comparable
TIMEDIFF() SQL function TIMEDIFF(); new in MySQL version 4.1.1
TIMESTAMP() SQL function TIMESTAMP(); new in MySQL version 4.1.1
TIMESTAMP() as argument to DAYOFMONTH() and DAYOFYEAR() SQL function Nothing comparable
TIMEZONE() SQL function Nothing comparable
TRANSACTION() Returns the ID of the current transaction Nothing comparable
TRANSLATE() SQL function REPLACE(); identical syntax and implementation
TRIM() SQL function TRIM(); slightly different implementation
TRUNC() SQL function TRUNCATE(); slightly different syntax and implementation
USE mysql commandline user interface command USE
USER SQL function USER(); identical syntax, but slightly different implementation, and parantheses are mandatory
UTC_DIFF() SQL function UTC_DATE(); provides a means to calculate the result of UTC_DIFF()
VALUE() SQL function, alias for COALESCE() COALESCE(); identical syntax and implementation
VARIANCE() SQL function Nothing comparable
WEEKOFYEAR() SQL function WEEKOFYEAR(); new in MySQL version 4.1.1

15.8 Functions

15.9 Column Types

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