Join our community in the tech forums for uncut technology discussion.
Go to the first, previous, next, last section, table of contents.
MaxDB is an enterprise-level database. MaxDB is the new name of a database management system formerly called SAP DB.
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 company based in Walldorf, Germany, 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 such as
Oracle, Microsoft SQL Server, and DB2 by IBM. In October 2000, SAP
AG released SAP DB under the GNU GPL license (see section H 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
on them when using that database system under the GNU GPL (see section H GNU General Public License). In August 2003, SAP DB was renamed MaxDB by MySQL AB.
MaxDB can be used under the same licenses available for the other
products distributed by MySQL AB. Thus, MaxDB will be available under
the GNU General Public License, and a commercial license. For more information
on licensing, see http://www.mysql.com/company/legal/licensing/.
MySQL will offer MaxDB support to non-SAP customers.
The first rebranded version was MaxDB 7.5.00, which was
released in November 2003.
The main page for information about MaxDB is
http://www.mysql.com/products/maxdb. Information formerly
available at http://www.sapdb.org has been moved there.
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.
The following list provides a short summary of the main differences
between MaxDB and MySQL; it is not complete.
-
MaxDB runs as a client/server system. MySQL can run as a client/server system
or as an embedded system.
-
MaxDB might not run on all platforms supported by MySQL. For example,
MaxDB does not run on IBM's OS/2.
-
MaxDB uses a proprietary network protocol for client/server
communication. MySQL uses either TCP/IP (with or without SSL
encryption), sockets (under Unix-like systems), or named pipes
(under Windows NT-family systems).
-
MaxDB supports stored procedures. For MySQL, stored procedures are
implemented in version 5.0. MaxDB also supports programming of
triggers through an SQL extension, which is scheduled for MySQL
5.1. MaxDB contains a debugger for stored procedure languages,
can cascade nested triggers, and supports multiple triggers per
action and row.
-
MaxDB is distributed with user interfaces that are text-based,
graphical, or Web-based. MySQL is distributed with text-based user
interfaces only; graphical user interface (MySQL Control Center, MySQL
Administrator)
are shipped separately from the main distributions. Web-based user
interfaces for MySQL are offered by third parties.
-
MaxDB supports a number of programming interfaces that also are supported
by MySQL. However, MaxDB does not support RDO, ADO, or .NET, all of which are
supported by MySQL. MaxDB
supports embedded SQL only with C/C++.
-
MaxDB includes administrative features that MySQL does not have:
job scheduling by time, event, and alert, and sending
messages to a database administrator on alert thresholds.
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.
-
There will be a MySQL proxy enabling connections to MaxDB using
the MySQL protocol. This makes it possible to use MySQL client
programs for MaxDB, such as the
mysql command-line user interface,
the mysqldump dump utility, or the mysqlimport import
program. Using mysqldump, you can easily dump data from one
database system and export (or even pipe) those data to the other
database system.
-
Replication between MySQL and MaxDB will be supported in both
directions. That is, either MySQL or MaxDB can be used as the master
replication server. The long-range plan is to converge and extend the
replication syntax so that both database systems understand the same syntax.
See section 6.1 Introduction to Replication.
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 section 9.6 Treatment of Reserved Words in MySQL.
| Reserved in MaxDB
| Context of usage in MaxDB
| MySQL counterpart
|
@
| Can prefix identifier, like ``@table''
| Not allowed
|
ADDDATE()
| SQL function
| ADDDATE(); new in MySQL 4.1.1
|
ADDTIME()
| SQL function
| ADDTIME(); new in MySQL 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 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 statements are issued
| Implicit commits of transactions happen when data definition statements are issued, and also with a number of other statements
|
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
|
DATE()
| SQL function
| CURRENT_DATE
|
DATEDIFF()
| SQL function
| DATEDIFF(); new in MySQL 4.1.1
|
DAY()
| SQL function
| Nothing comparable
|
DAYOFWEEK()
| SQL function
| DAYOFWEEK(); by default, 1 represents Monday in MaxDB and Sunday in MySQL
|
DISTINCT
| SQL functions AVG, MAX, MIN, SUM
| DISTINCT; but used in a different context: SELECT DISTINCT
|
DROP
| DROP INDEX, for example
| 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 used right after SELECT; for example, SELECT ... USE INDEX
| USE INDEX, IGNORE INDEX and similar hints are used in the FROM clause of a SELECT query; for example, 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 ``%'', ``_'', ``Control-underline'', ``Control-up arrow'', ``*'', and ``?'' as wildcards in LIKE comparisons
| MySQL supports ``%'', and ``_'' as wildcards in LIKE comparisons
|
LPAD()
| SQL function
| LPAD(); slightly different implementation
|
LTRIM()
| SQL function
| LTRIM(); slightly different implementation
|
MAKEDATE()
| SQL function
| MAKEDATE(); new in MySQL 4.1.1
|
MAKETIME()
| SQL function
| MAKETIME(); new in MySQL 4.1.1
|
MAPCHAR()
| SQL function
| Nothing comparable
|
MICROSECOND()
| SQL function
| MICROSECOND(); new in MySQL 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 parentheses are mandatory in MySQL
|
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 different implementation
|
SINH()
| SQL function
| Nothing comparable
|
SOUNDS()
| SQL function
| SOUNDEX(); slightly different syntax
|
STATISTICS
| UPDATE STATISTICS
| ANALYZE TABLE; similar concept, but different implementation
|
SUBSTR()
| SQL function
| SUBSTRING(); slightly different implementation
|
SUBTIME()
| SQL function
| SUBTIME(); new in MySQL 4.1.1
|
SYNONYM
| Data definition language: CREATE [PUBLIC] SYNONYM, RENAME SYNONYM, DROP SYNONYM
| Nothing comparable
|
TANH()
| SQL function
| Nothing comparable
|
TIME()
| SQL function
| CURRENT_TIME
|
TIMEDIFF()
| SQL function
| TIMEDIFF(); new in MySQL 4.1.1
|
TIMESTAMP()
| SQL function
| TIMESTAMP(); new in MySQL 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
| Switches to a new database instance; terminates the connection to the
current database instance; all subsequent commands are referred to this
database instance
| USE; identical syntax, but does not terminate the connection to
the current database
|
USER
| SQL function
| USER(); identical syntax, but slightly different implementation, and parentheses are mandatory in MySQL
|
UTC_DIFF()
| SQL function
| UTC_DATE(); provides a means to calculate the same result as UTC_DIFF()
|
VALUE()
| SQL function, alias for COALESCE()
| COALESCE(); identical syntax and implementation
|
VARIANCE()
| SQL function
| VARIANCE(); new in MySQL 4.1.0
|
WEEKOFYEAR()
| SQL function
| WEEKOFYEAR(); new in MySQL 4.1.1
|
Go to the first, previous, next, last section, table of contents.
Join our community in the tech forums for uncut technology discussion.
|