Capítulo 8. Introdução ao MaxDB

Índice

8.1. Historia do MaxDB
8.2. Licenciamento e Suporte
8.3. Conceitos Básicos do MaxDB
8.4. Diferenças de Recursos entre o MaxDB e o MySQL
8.5. Interoperability Features between MaxDB and MySQL
8.6. Links Relacionados ao MaxDB
8.7. Palavras Reservadas no MaxDB

MaxDB é um banco de dados empresarial. O MaxDB é o novo nome de um sistema de gerenciamento de banco de dados formalmente chamado SAP DB.

8.1. Historia do MaxDB

A história do SAP DB vem do ínicio dos anos 80, quando ele foi desenvolvido como um produto comercial (Adabas). O banco de dados mudou de nome diversas vezes desde então. Quando a SAP AG, uma companhia Alemã tomou conta do desenvolvimento deste sistema de banco de dados, ele foi chamado de SAP DB.

A SAP desenvolve sistemas de banco de dados para servir como um sistema de armazenamento para todas as aplicações pesadas SAP, chamadas R/3. O SAP DB foi criado para fornecer uma alternativa para sistemas de banco de dados como o Oracle, Microsoft SQL Server, ou DB2 da IBM. Em Outubro de 2000, A SAP AG liberou o SAP DB soba licença GNU GPL (see Apêndice H, GPL - Licença Pública Geral do GNU), fazendo dele um programa open source. Em Outubro de 2003, mais de 2000 clientes da SAP AG estavam usando SAP DB como o seu principal sistema de banco de dados, e mais de outros 2000 clientes o estavam usando como um sistema de banco de dados a parte além do banco de dados principal, como parte de uma solução APO/LivaCache.

Em Maio de 2003, uma parceria foi formada entre a MySQL AB e a SAP AG. Esta parceria permite à MySQL AB desenvolver no SQP DB, renomeá-lo e a vender licenças comerciais do SAP DB para clientes que não queiram ser limitados pelas restrições impostas a eles quando usam o sistema de banco de dados sob uma licença GNU GPL (see Apêndice H, GPL - Licença Pública Geral do GNU). Em Agosto 2003, o SAP DB foi renomeado para MaxDB pela MySQL AB.

8.2. Licenciamento e Suporte

O MaxDB pode ser usado sob as mesmas licenças disponíveis para os outros produtos distribuídos pela MySQL AB (see Secção 1.4.3, “Licenças do MySQL”). Assim, o MaxDB estará disponível sob a GNU General Public License (see Apêndice H, GPL - Licença Pública Geral do GNU), e uma licença comercial (see Secção 1.4, “Suporte e Licenciamento do MySQL”).

A MySQL irá oferecer suporte para MaxDB para clientes não-SAP.

A primeira versão renovada será o MaxDB 7.5.00 que será liberada no fim de 2003.

8.3. Conceitos Básicos do MaxDB

O MaxDB opera como um produto cliente/servidor. Ele foi desenvolvido para cobrir a demanda de instalações que processam um alto volume de transações on line. Tanto a expansão quanto o backup online do banco de dados são suportados. O Microsoft Clustered Server é suportado diretamente para implementações multi-servidor; outras soluções para falhas devem ser feitas manualmente. A ferramenta de gerenciamento de banco de dados são fornecidos tanto na implementação Windows quanto na baseada em browser.

8.4. Diferenças de Recursos entre o MaxDB e o MySQL

A lista a seguir fornece um pequeno resumo das principais diferenças entre o MaxDB e o MySQL; ela não esta completa.

  • MaxDB funciona como um sistema cliente/servidor. O MySQL pode fincionar como um sistema cliente/servidor ou como um sistema embutido.

  • O MaxDB não pode ser executado em todas as plataformas suportadas pelo MySQL. Por exemplo, o MaxDB não funciona no OS/2 da IBM.

  • O MaxDB usa um protocolo de rede proprietário para comunicação cliente servidor, enquanto o MySQL usa o TCP/IP (com ou sem criptografia SSL), sockets (sob sistemas do tipo Unix) ou named pipes (sob sistemas da familia Windows-NT).

  • O MaxDB suporta stored procedures. Para o MySQL, stored procedures não estão programadas para implementação até a versão 5.0. O MaxDB também suporta programação de triggers por meio de extensão SQL, que está previsto para o MySQL 5.1. O MaxDB contém um depurador para linguagens com stored procedures, pode fazer cascade de triggers aninhados e suporta vários triggers por ação e linha.

  • O MaxDB é distribuído com interface de usuários em modo texto, gráfico ou baseado web. O MySQL é distribuído apenas com interfaces de usuários em modo text; uma interface gráfica do usuário (MySQL Control Center) é distribuída separadamente da distribução principal. Interfaces com o usuários baseada em Web para o MySQL são ofereceidas por terceiros.

  • O MaxDB suporta um número de interfaces de programação também suportadas pelo MySQL. No entanto, o MaxDB não suporta RDO, ADO, ou .NET, os quais são suportadas pelo MySQL. O MaxDB suporta SQL embarcado apenas com C/C++.

  • O MaxDB contém recursos administrativos que o MySQL não tem: Agendamento de tarefas por hora, evento, e alerta , e permite enviar mensagens para um administrador de banco de dados nos avisos.

8.5. Interoperability Features between MaxDB and MySQL

Os seguintes recursos serão incluídos nas versão do MaxDB a serem distribuídas após a versão 7.5.00. Estes recursos permitirão interoperabilidade entre MaxDB e MySQL:

  • Haverá um proxy MySQL permitindo que se conecte ao MaxDb usando o protocolo MySQL. Isto faz com que seja possível usar os programas clientes do MySQL para o MaxDB, com a interface de linha de comando mysql, o utilitário de dump mysqldump, o programa de importação mysqlimport. Usando o mysqldump, pode-se facilmente fazer o dump de dados de um sistema de banco de dados e exportar estes dados para outro sistema de banco de dados.

  • Replicação entre MySQL e MaxDB será suportado em ambas as direções. Isto é, tanto o MySQL quanto o MaxDb podem ser usados como o servidor master da replicação. O plano a longo prazo é convergir e extender a sintaxe da replicação para que assim ambos os sistemas de bancos de dados entendam a mesma sintaxe. See Secção 4.11.1, “Introdução”.

8.6. Links Relacionados ao MaxDB

A página principal para informações sobre o MaxDB é http://www.mysql.com/maxdb. Eventualmente, todas as informações disponíveis em http://www.sapdb.org serão movidas para lá.

8.7. Palavras Reservadas no MaxDB

Assim como o MySQL, o MaxDB tem algumas palavras reservadas que tenham significados especiais. Normalmente elas não podem ser usadas como nomes de identificadores, tais como nomes de bancos de dados ou tabelas. A tabela a seguir lista as palavras reservadas no MaxDB, indica o contexto no qual estas palavras são utilizadas e indica se elas possuem correspondentes ou não no MySQL. Se existir, o significado no MySQL pode ser idêntico ou diferente em alguns aspectos. O principal objetivo é listar em que o MaxDB difere do MySQL; embora esta lista não esteja completa.

Para a lista de palavras reservadas do MySQL, veja See Secção 6.1.7, “Tratamento de Palavras Reservadas no MySQL”.

Reservada no MaxDBContexto do uso no MaxDBCorrespondente no MySQL
@Pode preceder identificadores, como ``@table''Não permitido
ADDDATE()Função SQLADDDATE(); nova no MySQL 4.1.1
ADDTIME()Função SQLADDTIME(); nova no MySQL 4.1.1
ALPHAFunção SQLNenhuma correspondencia
ARRAYTipo de dadosNão implementado
ASCII()Função SQLASCII(), mas implementado com um significado diferente
AUTOCOMMITTransações; ON por padrãoTransações; OFF por padrão
BOOLEANTipos de coluna; BOOLEAN aceita como valor apenas TRUE, FALSE, e NULLBOOLEAN 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.
CHECKCHECK TABLECHECK TABLE; similar, mas com uso diferente
COLUMNTipos de colunaCOLUMN; noise word
CHAR()Função SQLCHAR(); identical syntax; similar, not identical usage
COMMITImplicit commits of transactions happen when data definition queries are being issuedImplicit commits of transactions happen when data definition queries are being issued, but also with a number of other queries
COSH()Função SQLNenhuma correspondencia
COT()Função SQLCOT(); identical syntax and implementation
CREATESQL, data definition languageCREATE
DATABASEFunção SQLDATABASE(); DATABASE is used in a different context, for example CREATE DATABASE
DATE()Função SQLCURRENT_DATE
DATEDIFF()Função SQLDATEDIFF(); nova no MySQL 4.1.1
DAY()Função SQLNenhuma correspondencia
DAYOFWEEK()Função SQLDAYOFWEEK(); the first day (1) by default is Monday in MaxDB, and Sunday in MySQL
DISTINCTFunções SQL AVG, MAX, MIN, SUMDISTINCT; but used in a different context: SELECT DISTINCT
DROPinter alia in DROP INDEXDROP INDEX; similar, but not identical usage
EBCDIC()Função SQLNenhuma correspondencia
EXPAND()Função SQLNenhuma correspondencia
EXPLAINOptimizationEXPLAIN; similar, but not identical usage
FIXED()Função SQLNenhuma correspondencia
FLOAT()Função SQLNenhuma correspondencia
HEX()Função SQLHEX(); similar, but not identical usage
INDEX()Função SQLINSTR() or LOCATE(); similar, but not identical syntaxes and meanings
INDEXUSE INDEX, IGNORE INDEX and similar hints are being used right after SELECT, like SELECT ... USE INDEXUSE INDEX, IGNORE INDEX and similar hints are being used in the FROM clause of a SELECT query, like in SELECT ... FROM ... USE INDEX
INITCAP()Função SQLNenhuma correspondencia
LENGTH()Função SQLLENGTH(); identical syntax, but slightly different implementation
LFILL()Função SQLNenhuma correspondencia
LIKEComparisonsLIKE; but the extended LIKE MaxDB provides rather resembles the MySQL REGEX
LIKE wildcardsMaxDB supports ``%'', ``_'', ``ctrl+underline'', ``ctrl+up arrow'', ``*'', and ``?'' as wildcards in a LIKE comparisonMySQL supports ``%'', and ``_'' as wildcards in a LIKE comparison
LPAD()Função SQLLPAD(); slightly different implementation
LTRIM()Função SQLLTRIM(); slightly different implementation
MAKEDATE()Função SQLMAKEDATE(); nova no MySQL 4.1.1
MAKETIME()Função SQLMAKETIME(); nova no MySQL 4.1.1
MAPCHAR()Função SQLNenhuma correspondencia
MICROSECOND()Função SQLMICROSECOND(); nova no MySQL 4.1.1
NOROUND()Função SQLNenhuma correspondencia
NULLColumn types; comparisonsNULL; 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
PIFunção SQLPI(); identical syntax and implementation, but parantheses are mandatory
REFData typeNenhuma correspondencia
RFILL()Função SQLNenhuma correspondencia
ROWNOPredicate in WHERE clauseSimilar to LIMIT clause
RPAD()Função SQLRPAD(); slightly different implementation
RTRIM()Função SQLRTRIM(); slightly different implementation
SEQUENCECREATE SEQUENCE, DROP SEQUENCEAUTO_INCREMENT; similar concept, but differing implementation
SINH()Função SQLNenhuma correspondencia
SOUNDS()Função SQLSOUNDEX(); slightly different syntax
STATISTICSUPDATE STATISTICSANALYZE; similar concept, but differing implementation
SUBSTR()Função SQLSUBSTRING(); slightly different implementation
SUBTIME()Função SQLSUBTIME(); nova no MySQL 4.1.1
SYNONYMData definition language: CREATE [PUBLIC] SYNONYM, RENAME SYNONYM, DROP SYNONYMNenhuma correspondencia
TANH()Função SQLNenhuma correspondencia
TIME()Função SQLCURRENT_TIME
TIMEDIFF()Função SQLTIMEDIFF(); nova no MySQL 4.1.1
TIMESTAMP()Função SQLTIMESTAMP(); nova no MySQL 4.1.1
TIMESTAMP() as argument to DAYOFMONTH() and DAYOFYEAR()Função SQLNenhuma correspondencia
TIMEZONE()Função SQLNenhuma correspondencia
TRANSACTION()Returns the ID of the current transactionNenhuma correspondencia
TRANSLATE()Função SQLREPLACE(); identical syntax and implementation
TRIM()Função SQLTRIM(); slightly different implementation
TRUNC()Função SQLTRUNCATE(); slightly different syntax and implementation
USEmysql commandline user interface commandUSE
USERFunção SQLUSER(); identical syntax, but slightly different implementation, and parantheses are mandatory
UTC_DIFF()Função SQLUTC_DATE(); provides a means to calculate the result of UTC_DIFF()
VALUE()Função SQL, alias for COALESCE()COALESCE(); identical syntax and implementation
VARIANCE()Função SQLNenhuma correspondencia
WEEKOFYEAR()Função SQLWEEKOFYEAR(); nova no MySQL 4.1.1

This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.