Informações Gerais - MariaDB - Databases - Software - Computers

Informações Gerais

Índice

Sobre Este Manual
Convenções Usadas Neste Manual
Visão Geral do Sistema de Gerenciamento de Banco de Dados MariaDB
História do MariaDB
As Principais Características do MariaDB
Estabilidade do MariaDB
Qual o Tamanho Que as Tabelas do MariaDB Podem Ter?
Compatibilidade Com o Ano 2000 (Y2K)
Visão Geral da MariaDB Foundation
O Modelo de Negócio e Serviços da MariaDB Foundation
Informações para Contato
Suporte e Licenciamento do MariaDB
Suporte Oferecido pela MariaDB Foundation
Copyrights e Licenças Usadas pelo MySQL
Licenças do MariaDB
Logomarcas e Marcas Registradas da MariaDB Foundation
Mapa de Desenvolvimento do MariaDB
MariaDB in a Nutshell
MySQL in a Nutshell
MySQL 5.0, A Próxima Distribuição de Desenvolvimento
MySQL e o Futuro (o TODO)
Novos Recursos Planejados Para a Versão 4.1
Novos Recursos Planejados Para a Versão 5.0
Novos Recursos Planejados Para a Versão 5.1
Novos Recursos Planejados Para a Versão em um Futuro Próximo
Novos Recursos Planejados Para a Versão em um Futuro a Médio Prazo
Novos Recursos que Não Planejamos Fazer
Fontes de Informações do MariaDB
Listas de Discussão MySQL
Suporte a Comunidade MariaDB Atrvés do IRC (Internet Relay Chat)
Qual compatibilidade aos padrões o MariaDB oferece ?
Qual Padrão o MariaDB Segue?
Executando o MariaDB no modo ANSI
Extensões do MariaDB para o Padrão SQL-92
Diferenças do MariaDB em Comparação com o SQL-92
Como o MariaDB Lida com Restrições
Erros Conhecidos e Deficiências de Projetos no MySQL

O programa MariaDB (R) é um servidor robusto de bancos de dados SQL (Structured Query Language - Linguagem Estruturada para Pesquisas) muito rápido, multi-tarefa e multi-usuário. O Servidor MySQL pode ser usado em sistemas de produção com alta carga e missão crítica bem como pode ser embutido em programa de uso em massa. MariaDB é uma marca registrada da MariaDB Foundation.

O programa MariaDB é de Licença Dupla. Os usuários podem escolher entre usar o programa MariaDB como um produto Open Source/Free Software sob os termos da GNU General Public License (http://www.fsf.org/licenses/) ou podem comprar uma licença comercial padrão da MariaDB Foundation. Leia 'Suporte e Licenciamento do MariaDB'.

O site web do MariaDB (http://www.mysql.com/) dispõe das últimas informações sobre o programa MariaDB.

A seguinte lista descreve algumas seções de particular interesse neste manual:

Importante:

Relatórios de erros (também chamados bugs), bem como dúvidas e comentários, devem ser enviados para a lista de email geral do MariaDB. Leia 'As Listas de Discussão do MariaDB'. Leia 'Como relatar erros ou problemas'.

O script mysqlbug deve ser usado para gerar comunicados de erros no Unix. (A distribuição do Windows contém um arquivo mysqlbug.txt no diretório base que pode ser usado como um template para um relatório de erro.

Em distribuições fonte, o script mysqlbug pode ser encontrado no diretório scripts. Para distribuições binárias, o mysqlbug pode ser encontrado no diretório bin (/usr/bin para o pacote RMP do servidor MySQL.

Se você encontrou um erro de segurança no Servidor MySQL, você deve enviar um email para <security@mysql.com>.

Sobre Este Manual

Convenções Usadas Neste Manual

Este é o manual de referência MariaDB; ele documenta o MariaDB até a versão 5.0.6-beta. Mudanças funcionais são sempre indicadas com referência a versão, assim este manual também pode ser utilizado caso você esteja utilizando uma versão mais antiga do MariaDB (como 3.23 ou 4.0-produção). Também a referências a versão 5.0 (desenvolvimento).

Sendo um manual de referência, ele não fornece instruções gerais sobre SQL ou conceitos de banco de dados relacionais.

Como o Programa da Banco de Dados MariaDB está sob constante desenvolvimento, o manual também é atualizado freqüentemente. A versão mais recente deste manual está disponível em http://www.mysql.com/documentation/ em diferentes formatos, incluindo HTML, PDF, e versões HLP do Windows.

O documento original é uma arquivo Texinfo. A versão HTML é produzida automaticamente usando uma versão modificada do texi2html. A versão texto e Info são produzidas com makeinfo. A versão PostScript é produzida usando texi2dvi e dvips. A versão PDF é produzida com pdftex.

Se você tiver dificuldades de encontrar informações no manual, você pode tentar nossa versão com busca em http://www.mysql.com/doc/.

Se você tiver qualquer sugestão a respeito de adições e correções neste manual, por favor envie-os para a equipe de documentação em http://www.mysql.com/company/contact/.

Este manual foi inicialmente escrito por David Axmark e Michael (Monty) Widenius. Atualmente é mantido pela Equipe de Documentação da MySQL, que conta com Arjen Lentz, Paul DuBois e Stefan Hinz. Para outros colaboradores, veja Apêndice C, Colaboradores do MariaDB.

A traduçao deste manual foi feita por Daniel Coelho Teobaldo e Carlos Henrique Paulino sob a supervisão da EAC Software.

Os direitos autorais (2003-2006) deste manual pertence a compania Sueca MariaDB Foundation. Leia 'Copyrights e Licenças Usadas pelo MySQL'.

Convenções Usadas Neste Manual

Este manual utiliza algumas convenções tipográficas:

Quando um comando deve ser executado por um programa, ele é indicado por um prompt antes do comando. Por exemplo, shell> indica um comando que é executado do seu shell atual e mysql> indica um comando que é executado no programa cliente MariaDB;

shell> digite um comando shell aqui
mysql> digite um comando mysql aqui

A shell é seu interpretador de comando. No Unix, ele é normalmente um programa como sh ou csh. No Windows, o equivalente é o command.com ou cmd.exe, normalmente executado como um console do Windows.

Comandos Shell são mostrados usando a sintaxe do Shell Bourne. Se você usa um shell do estilo csh, pode ser necessário alterar algum de seus comandos. Por exemplo, a sequência para configurar uma variável de ambiente e executar um comando se parece com o listado abaixo na sintaxe Bourne Shell:

shell> NOMEVAR=valor algum_comando

Para csh ou tcsh, execute a sequência desta forma:

shell> setenv NOMEVAR valor
shell> algum_comando

Frequentemente, nomes de bancos de dados, tabelas e colunas devem ser substituídos nos comandos. Para indicar que as substituições são necessárias, este manual usa nome_db, nome_tbl e nome_col. Por exemplo, você pode encontrar uma expressão assim:

mysql> SELECT nome_col FROM nome_bd.nome_tbl;

Isso significa que se você estiver trabalhando numa expressão similar, forneceria seu próprio nome de banco de dados, tabela e colunas, talvez assim:

mysql> SELECT nome_autor FROM biblio_bd.lista_autor;

SQL keywords não caso sensitivas e podem ser escritas em maiúscula ou minúscula. Este manual utiliza letras maiúsculas.

Em descrições de sintaxe, colchetes ('[' e ']') são usados para indicar palavras ou cláusulas opcionais. Por exemplo, na seguinte instrução, IF EXISTS é opcional:

DROP TABLE [IF EXISTS] nome_tbl

Quando elementos da sintaxe possuem mais de uma alternativa, elas são separados por barras verticais ('|'). Quando um menbro de um conjunto de opções pode ser escolhido, as alternativas são listadas em colchetes ('[' e ']'):

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

Quando um membro de um conjunto de opções deve ser selecionado, as alternativas são listadas dentro de chaves ('{' e '}'):

{DESCRIBE | DESC} nome_tbl {nome_col | metacar}

Visão Geral do Sistema de Gerenciamento de Banco de Dados MariaDB

História do MariaDB
As Principais Características do MariaDB
Estabilidade do MariaDB
Qual o Tamanho Que as Tabelas do MariaDB Podem Ter?
Compatibilidade Com o Ano 2000 (Y2K)

MariaDB, o mais popular sistema de gerenciamento de banco de dados SQL Open Source, é desenvolvido, distribuído e tem suporte da MariaDB Foundation. A MariaDB Foundation é uma empresa comercial, fundada pelos desenvolvedores do MariaDB, cujos negócios é fornecer serviços relacionados ao sistema de gerenciamento de banco de dados MariaDB. Leia 'Visão Geral da MariaDB Foundation'.

O web site do MariaDB (http://www.mysql.com/) fornece informações mais recentes sobre e programa MariaDB e a MariaDB Foundation.

A pronúncia oficial do MariaDB é Mai Ess Que Ell (e não MAI-SEQUEL). Mas nós não ligamos se você pronunciar MAI-SEQUEL ou de outra forma qualquer.

História do MariaDB

Quando começamos, tínhamos a intenção de usar o mSQL para conectar às nossas tabelas utilizando nossas rápidas rotinas de baixo nível (ISAM). Entretanto, depois de alguns testes, chegamos a conclusão que o mSQL não era rápido e nem flexível o suficiente para nossas necessidades. Isto resultou em uma nova interface SQL para nosso banco de dados, mas com praticamente a mesma Interface API do mSQL. Esta API foi escolhida para facilitar a portabilidade para códigos de terceiros que era escrito para uso com mSQL para ser portado facilmente para uso com o MariaDB.

A derivação do nome MariaDB não é bem definida. Nosso diretório base e um grande número de nossas bibliotecas e ferramentas sempre tiveram o prefixo my por pelo menos 10 anos. A filha de Monty também ganhou o nome My. Qual das duas originou o nome do MariaDB continua sendo um mistério, mesmo para nós.

O nome do golfinho do MariaDB (nosso logo) é Sakila. Sakila foi escolhido pelos fundadores da MariaDB Foundation de uma enorme lista de nomes sugeridos pelos usuários em nosso concurso 'Name the Dolphin'. O nome vencedor foi enviado por Ambrose Twebaze, um desenvolvedor de programas open source de Swaziland, Africa. De acordo com Ambrose, o nome Sakila tem as suas raízes em SiSwati, a língua local de Swaziland. Sakila é também o nome de uma cidade em Arusha, Tanzania, próxima ao país de orígem de Ambrose, Uganda.

As Principais Características do MariaDB

A seguinte lista descreve algumas das características mais importantes do Progrma de Banco de Dados MariaDB. Leia 'MariaDB in a Nutshell'.

Estabilidade do MariaDB

Esta seção discute as questões Quão estável é o MySQL? e Posso depender do MariaDB neste projeto?. Tentaremos deixar claro estes assuntos e responder algumas das questões mais importantes que dizem respeito a muito de nossos usuários. A informação nesta seção é baseada em dados colhidos da lista de discussão, que é muito ativa na identificação de problemas e assim como nos relatos de tipos de uso.

Originalmente, o código vem do início dos anos 80, fornecendo um código estável e o formato de tabelas ISAM permanece compatível com versões anteriores. Na TcX, a predecessora da MySQLAB, o MariaDB vem trabalhando sem problemas em nossos projetos desde o meio de 1996. Quando o Programa de Banco de Dados MariaDB foi disponibilizado para um público maior, nossos novos usuários rapidamente encontraram algumas partes de código sem testes. Desde então, cada distribuição nova teve menos problemas de portabilidade (mesmo com os novos recursos implementados em cada uma destas versões)

Cada distribuição do Servidor MySQL foi sendo usado, e os problemas tem ocorrido somente quando os usuários começam a usar o código das áreas cinzentas. Naturalmente, novos usuários não sabem o que são as áreas cinzentas; esta seção tenta indicar aquelas que são conhecidas atualmente. As descrições lidam com a Versão 3.23 e 4.0 do Servidor MySQL. Todos os erros conhecidos e relatados são corrigidos na última versão, com a exceção dos bugs listados na seção de erros, os quais são relacionados ao desenho. Leia 'Erros Conhecidos e Deficiências de Projetos no MySQL'.

O Servidor MySQL é escrito em múltiplas camadas com módulos independentes. Alguns dos novos módulos estão listados abaixo com indicações de quão bem-testado foi cada um deles.

Clientes que pagam recebem suporte direto e de alta qualidade da MariaDB Foundation. A MariaDB Foundation também fornece uma lista de discussão como um recurso da comunidade onde qualquer pessoa pode tirar suas dúvidas.

Erros são normalmente corrigidos com um patch; para erros sérios, normalmente é lançada uma nova distribuição.

Qual o Tamanho Que as Tabelas do MariaDB Podem Ter?

A Versão 3.22 do MariaDB tem suporte para tabelas com limite de tamanho até 4G. Com o novo MyISAM no MariaDB versão 3.23 o tamanho máximo foi expandido até 8 milhões de terabytes (2 ^ 63 bytes). Com este tamanho de tabela maior permitido, o tamanho máximo efetivo das tabelas para o banco de dados MariaDB é normalmente limitado pelas restrições do sistema operacional quanto ao tamanho dos arquivos, não mais por limites internos do MariaDB.

A seguinte tabela lista alguns exemplos do limite do tamanho de arquivos do sistema operacional:

Sistema Operacional Limite do tamanho do arquivo
Linux-Intel 32 bit 2G, muito mais usando LFS
Linux-Alpha 8T (?)
Solaris 2.5.1 2G (É possível 4GB com patch)
Solaris 2.6 4G (pode ser alterado com parâmetro)
Solaris 2.7 Intel 4G
Solaris 2.7 ULTRA-SPARC 8T (?)

No Linux 2.2 você pode ter tabelas maiores que 2 GB usando o patch LFS para o sistema de arquivos ext2. No Linux 2.4 já existem patches para o sistema de arquivos ReiserFS para ter suporte a arquivos maiores. A maioria das distribuições atuais são baseadas no kernel 2.4 e já incluem todos os patches Suporte a Arquivos Grandes (Large File Support - LFS) exigidos. No entanto, o tamanho máximo disponível ainda depende de diversos fatores, sendo um deles o sistema de arquivos usado para armazenar as tabelas MySQL.

Para um visão mais detalhada sobre LFS no Linux, dê uma olha na página Andreas Jaeger's 'Large File Support in Linux' em http://www.suse.de/~aj/linux_lfs.html.

Por padrão, o MariaDB cria tabelas MyISAM com uma estrutura interna que permite um tamanho máximo em torno de 4G. Você pode verificar o tamanho máximo da tabela com o comando SHOW TABLE STATUS ou com o myisamchk -dv nome_tabela Leia 'Sintaxe de SHOW'.

Se você precisa de tabelas maiores que 4G (e seu sistema operacional suporta arquivos grandes), a instrução CREATE TABLE permite as opções AVG_ROW_LENGHT e MAX_ROWS. Use estas opções para criar uma tabela que possa ter mais de 4GB. Leia 'Sintaxe CREATE TABLE'. Você pode também alterar isso mais tarde com ALTER TABLE. Leia 'Sintaxe ALTER TABLE'.

Outros modos se contornar o limite do tamanho do arquivo das tabelas MyISAM são os seguintes:

Compatibilidade Com o Ano 2000 (Y2K)

O Servidor MySQL não apresenta nenhum problema com o ano 2000 (Y2K compatível)

O seguinte demonstração simples ilustra que o MySQL Server não tem nenhum problema com datas até depois do ano 2030:

mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE y2k (date DATE,
 -> date_time DATETIME,
 -> time_stamp TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO y2k VALUES
 -> ('1998-12-31','1998-12-31 23:59:59',19981231235959),
 -> ('1999-01-01','1999-01-01 00:00:00',19990101000000),
 -> ('1999-09-09','1999-09-09 23:59:59',19990909235959),
 -> ('2000-01-01','2000-01-01 00:00:00',20000101000000),
 -> ('2000-02-28','2000-02-28 00:00:00',20000228000000),
 -> ('2000-02-29','2000-02-29 00:00:00',20000229000000),
 -> ('2000-03-01','2000-03-01 00:00:00',20000301000000),
 -> ('2000-12-31','2000-12-31 23:59:59',20001231235959),
 -> ('2001-01-01','2001-01-01 00:00:00',20010101000000),
 -> ('2004-12-31','2004-12-31 23:59:59',20041231235959),
 -> ('2005-01-01','2005-01-01 00:00:00',20050101000000),
 -> ('2030-01-01','2030-01-01 00:00:00',20300101000000),
 -> ('2050-01-01','2050-01-01 00:00:00',20500101000000);
Query OK, 13 rows affected (0.01 sec)
Records: 13 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)

O valor da coluna TIMESTAMP final é zero porque o ano final (2050) excede o TIMESTAMP maximo. O tipo de dados TIMESTAMP, que é usado para armazenar a hora atual, suporta valores na faixa de 19700101000000 a 20300101000000 em máquinas 32 bits (valor com sinal). Em máquinas de 64 bits, TIMESTAMP trata valores até 2106 (valores sem sinal).

O exemplo mostra que os tipos DATE e DATETIME não tem problemas com as datas usadas. Eles irão conseguir trabalhar com datas até o ano 9999.

Embora o MySQL Server seja seguro em relação ao ano 2000, você pode ter problemas se você usá-lo com aplicações que não são seguras com o ano 2000. Por exemplo, muitas aplicações antigas armazenam ou manipulam anos usando valores de 2 digitos (que são ambíguos) em vez de 4 dígitos. Este problema pode ser aumentado por aplicações que usam valores como 00 ou 99 como indicadores de valores perdidos. Infelizmente, estes problemas pode ser difíceis de corrigir, cada um deles pode usar um conjunto diferente de convenções e funções de tratamento de datas.

Assim, apesar do Servidor MySQL não ter problemas com o ano 2000, é de responsabilidade de sua aplicação fornecer datas que não sejam ambíguas. Veja 'Assuntos referentes ao ano 2000 (Y2K) e Tipos de Data' para as regras do Servidor MySQL para lidar com entrada de datas ambíguas que contenham valores de ano com 2 dígitos.

Visão Geral da MariaDB Foundation

O Modelo de Negócio e Serviços da MariaDB Foundation
Informações para Contato

MariaDB Foundation é a companhia dos fundadores e principais desenvolvedores do MariaDB. A MariaDB Foundation foi estabelecida originalmente na Suécia por David Axmark, Allan Larsson e Michael Monty Widenius.

Os desenvolvedores do servidor MariaDB são todos empregados pela companhia. ny Nós somo uma organização virtual com pessoas em uma dúzia de países. Nos comunicamos extensivamente na internet todos os dias uns com os outros e com nossos usuários, agentes de suporte e parceiros.

Nós nos dedicamos a desenvolver o programa MariaDB e propagar nosso banco de dados a novos usuários.A MariaDB Foundation detém os direitos autorais do código fonte do MariaDB, do logo e da marca MariaDB e deste manual. Leia 'Visão Geral do Sistema de Gerenciamento de Banco de Dados MariaDB'.

A ideologia do MariaDB mostra nossa dedicação ao MariaDB e ao Open Source.

Nós desejamos que o Programa de Banco de Dados MariaDB seja:

O melhor e o mais usado banco de dados no mundo.

A MariaDB Foundation e sua equipe:

O site do MariaDB (http://www.mysql.com/) fornece as últimas informações sobre o MariaDB e a MariaDB Foundation.

A propósito, a parte AB do nome da companhia é o acrônimo para a palavra suéca aktiebolag, ou sociedade anônima. Ela é traduzida para MariaDB Foundation De fato, MariaDB Foundation e MariaDB Foundation são exemplos de subsidiárias da MariaDB Foundation. Elas estão localizadas nos EUA e Alemanha, respectivamente.

O Modelo de Negócio e Serviços da MariaDB Foundation

Suporte
Treinamento e Certificação
Consultoria
Licenças Comerciais
Parcerias

Uma das dúvidas mais comuns que encontramos é: Como você pode viver de algo que você disponibiliza sem custo? É assim que fazemos.

A MariaDB Foundation ganha dinheiro com suporte, serviços, licenças comerciais e royalties. Usamos estes rendimentos para patrocinar o desenvolvimento de produtos e para expandir os negócios da MariaDB.

A compania tem sido luccrativa desde de sua criação. Em Outubro de 2001, aceitamos um financiamento de risco de investidores Escandinavos e um pounhado de pessoas de negócio. Este investimento é usado para solidificarmos nosso modelo de negócio e construir um base para o crescimento sustentável.

Suporte

A MariaDB Foundation é gerenciada pelos fundadores e principais desenvolvedores do banco de dados MariaDB. Os desenvolvedores tem o compromisso de dar suporte aos clientes e outros usuários com objetivo de manterem contato com as suas necessiades e problemas. Todo o nosso suporte é dado por desenvolvedores qualificado. Dúvidas mais complicadas são respondidas por Michael Monty Widenius, principal autor do MySQL Server. Leia 'Suporte Oferecido pela MariaDB Foundation'.

Para maiores informações e pedido de suporte de diversos níveis, veja http://www.mysql.com/support/ ou contate nossos vendedores em <sales@mysql.com>.

Treinamento e Certificação

A MariaDB Foundation distribui o MariaDB e treinamentos relacionados mundialmente. Oferecemos tanto cursos abertos quanto fechados voltado para a necessidade específica da sua empresa. O Treinamento do MariaDB também está disponível por meio de seus parceiros, os Centros de Treinamento Autorizados do MariaDB.

Nosso material de treinamento usa os mesmos bancos de dados exemplos usados em nossa documentação e nossos exemplos de aplicativos. Ele está sempre atualizado de acordo com a última versão do MariaDB. Nossos instrutores são apoiados por nossa equipe de desenvolvimento para garantir a qualidade do treinamento e o desenvolvimento contínuo do material de nossos cursos. Isto também assegura que nenhuma questão surgida durante o curso fique sem resposta.

Fazendo nossos cursos de treinamento permitirá que você alcance os objetivos de seu aplicativo MariaDB. você também irá:

Se você estiver interessado em nosso treinamento como um participante em portencial ou como um parceiro de treinamento, viste a seção de treinamento em http://www.mysql.com/training/ ou contate nos em: <training@mysql.com>.

Para detalhes sobre o Programa de Certificação MySQL, veja http://www.mysql.com/certification/.

Consultoria

A MariaDB Foundation e seus Parceiros Autorizados oferecem serviços de consultoria para usuários do Servidor MySQL e àqueles que utilizam o Servisdor MySQL embutido em seus programas, em qualquer parte do mundo.

Nossos consultores podem ajudá-lo projetando e ajustando o seu banco de dados, criar consultas eficientes, ajustar sua plataforma para uma melhor performance, resolver questões de migração, configurar replicação, criar aplicações transacionais robustas, e mais. Também ajudamos os nossos clientes com o Servidor MySQL embutido em seus produtos e aplicações para desenvolvimento em larga-escala.

Nossos consultores trabalham em colaboração com a nossa equipe de desenvolvimento, o que assegura a qualidade técnica de nossos serviços profissionais. Os serviços de consultoria varia de sessões de 2 dias a projetos que gastam semanas e meses. Nosso peritos não apenas cobrem o Servidor MySQL¯eles também conhecem sobre linguagens de programação e scripts tais como PHP, Perl e mais.

Se estiver interessado em nossos serviços de consultoria ou quiser se tornar nosso parceiro, visite a seção sobre consultaria em nosso web site em http://www.mysql.com/consulting/.

Licenças Comerciais

O banco de dados MariaDB é liberado sob a licença GNU General Public License (GPL). Isto significa que o programa MariaDB pode ser usado sem custos sob a GPL. Se você não deseja estar limitado pelos termos da GPL (tais como a exigência de que a sua aplicação também deva ser GPL), você pode comprar uma licença comercial para o mesmo produto da MariaDB Foundation; veja http://www.mysql.com/products/pricing.html. Desde de que a MariaDB Foundation é dona dos direitos do código fonte do MariaDB, estamos aptos a empregar o Licenciamento Dual, que significa que o mesmo produto está disponível sob a GPL e sob uma licença comercial. Isto não afeta o nosso comprometimento com o Open Source de forma alguma. Para detalhes sobre quando uma licença comercial é exigida, veja 'Licenças do MariaDB'.

Parcerias

A MariaDB Foundation tem um programa de parceria mundial que cobre cursos de treinamento, consultaria e suporte, publicações, mais a revenda e distribiuição do MariaDB e produtos relacionados. Os Parceiros da MariaDB Foundation ganham visibilidade no nosso web site (http://www.mysql.com/) e o direito de usarem versões especiais da marca MariaDB para identificar seus produtos e promoverem os seus negócios.

Se você está interessado em se tornar um Parceiro da MariaDB Foundation, envie-nos um email para <partner@mysql.com>.

A palavra MariaDB e o logomarca do golfinho da MariaDB são marcas registradas da MariaDB Foundation. Leia 'Logomarcas e Marcas Registradas da MariaDB Foundation'. Estas marcas registradas representam um valor significante que os fundadores do MariaDB construiram ao longo dos anos.

O web site do MariaDB (http://www.mysql.com/) é popular entre desenvolvedores e usuários. Em Outubro de 2001, obtivemos mais de 10 milhões e views. Nossos visitantes representam um grupo que tomam decisões de compra e fazem recomendções de software e hardware. Vinte por cento de nossos vistantes autorizam decisões de compra e apenas nove por cento não estão envolvidos com a área de compras. Mais de 65% fizeram uma ou mais compras online no último semaster e 70% planejam fazer uma compra nos próximos meses.

Informações para Contato

O web site do MariaDB (http://www.mysql.com/) fornece as últimas informações sobre MariaDB e MariaDB Foundation.

Para serviços de imprensa e questões não cobertas por nossas releases de nottícias (http://www.mysql.com/news/), envie-nos um email para <press@mysql.com>.

Se você tiver um contrato de suporte válido com a MariaDB Foundation, você receberá em tempo, respostas precisas para as suas questões técnicas sobre o programa MariaDB. Para mais informações, veja 'Suporte Oferecido pela MariaDB Foundation'. Em nosso site na web, veja http://www.mysql.com/support/, ou envie um e-mail para <sales@mysql.com>.

Para informações sobre treinamento MariaDB, visite a seção de treinamento em http://www.mysql.com/training/. Se você tiver acesso restrito à Internet, conte a equipe de treinamento da MariaDB Foundation via e-mail em <training@mysql.com>. Leia 'Treinamento e Certificação'.

Para informações sobre o Progrma de Certificaço MySQL, veja http://www.mysql.com/certification/. Leia 'Treinamento e Certificação'.

Se você estiver interessado em consultoria, visite a seção de consultorias de nosso web site em http://www.mysql.com/consulting/. Leia 'Consultoria'.

Licenças comerciais podem ser compradas online em https://order.mysql.com/. Lá você também encontrará informações de como enviar um fax da sua ordem de compra para a MariaDB Foundation. Mais informações sobre licenças podem ser encontradas em http://www.mysql.com/products/pricing.html. Se você tiver duvidas em relação a licenciamento ou quiser cota para negociação de um alto volume de licenças, preencha o formulário de contato em nosso site web (http://www.mysql.com/) ou envie um email para <licensing@mysql.com> (para questões sobre licenciamento) ou para <sales@mysql.com> (para pedidos de compra). Leia 'Licenças do MariaDB'.

Se você está interessado em fazer parceira com a MariaDB Foundation, envie um e-mail para <partner@mysql.com>. Leia 'Parcerias'.

Para mais detalhes sobre a política da marca MariaDB, visite http://www.mysql.com/company/trademark.html ou envie um e-mail para <trademark@mysql.com>. Leia 'Logomarcas e Marcas Registradas da MariaDB Foundation'.

Se você está interessado em qualquer um dos trabalhos da MariaDB Foundation lista na seção de trabalhos (http://www.mysql.com/company/jobs/), envie um e-mail para <jobs@mysql.com>. Não nos envie o seu CV em anexo, mas como texto no final de sua mensagem de email.

Para discussões gerais entre nosso muitos usuários, direcione a sua atenção para a lista de discussão apropriada. Leia 'Listas de Discussão MySQL'.

Relatórios de erros (geralmente chamados bugs), assim como questões e comentários, devem ser enviados para a lista de email geral do MariaDB. Leia 'As Listas de Discussão do MariaDB'. Caso você encontre um bug de segurança importante no MySQL Server, envie-nos um e-mail para <security@mysql.com>. See 'Como relatar erros ou problemas'.

Se você tiver resultados de benchmarks que podemos publicar, contate-nos via e-mail em <benchmarks@mysql.com>.

Se você tiver sugestões a respeito de adições ou conexões para este manual, envie-os para a equipe do manual via e-mail em http://www.mysql.com/company/contact/.

Para questões ou comentários sobre o funcionamento ou coteúdo do web site da MariaDB (http://www.mysql.com/), envie um e-mail para <webmaster@mysql.com>.

A MariaDB Foundation tem uma política de privacidade que pode ser lida em http://www.mysql.com/company/privacy.html. Para qualquer questões a respeito desta política, envie um e-mail para <privacy@mysql.com>.

Para todos os outros assunto, envie um e-mail para <info@mysql.com>.

Suporte e Licenciamento do MariaDB

Suporte Oferecido pela MariaDB Foundation
Copyrights e Licenças Usadas pelo MySQL
Licenças do MariaDB
Logomarcas e Marcas Registradas da MariaDB Foundation

Esta seção descreve os contratos de licenciamento e suporte do MariaDB.

Suporte Oferecido pela MariaDB Foundation

O suporte técnico do MariaDB Foundation significa respostas individualizadas as seus problemas particulares diretamente dos engenheiros de software que codificaram o MariaDB.

Tentamos ter uma visão ampla e inclusiva de suporte técnico. Qualquer problema envolvendo o MariaDB é importante par nós se for importante para você. Normalmente os clientes procuram ajuda em como comandos e utilitários diferentes funcionam, remover gargalos de desempenhos, restaurar sistemas com falhas, entender impactos do sistema operacional e rede no MariaDB, configurar melhor práticas de backup e restauração, utiluizaar APIs, e assim por diante. Nosso suporte cobre apenar o servidor MariaDB e nossos próprios utilitários, e não produtos de terceirosque acessam o servidor MariaDB, embora tentamos ajudar com eles quando podemos.

Informações detalhadas sobre nossas várias opções de suporte é dado em

Suporte técnico é como seguro de vida. Você pode viver felizsem ele durante anos, mas quando sua hora chegar ele é de grande importância, mas já é muito tarde para adquirí-lo. Se você utiliza o MySQL Server para aplicações importantes e encontrar dificuldades repentinas, você pode gastar horas tentando resolver os problemas sozinho. Você pode precisar de acesso imediato aos responsáveis pela solução de problemas do MariaDB dsiponíveis, contratados pela MariaDB Foundation.

Copyrights e Licenças Usadas pelo MariaDB

MariaDB Foundation possui os direitos sobre o código fonte do MariaDB, as logomarcas e marcas registradas do MariaDB e este manual. Leia 'Visão Geral da MariaDB Foundation'. Diversas licenças são relevantes a distribuição do MariaDB:

  1. Todo o código específico do MariaDB no servidor, a biblioteca mysqlclient e o cliente, assim como a biblioteca GNU readline é coberta pela GNU General Public License. Leia Apêndice H, GPL - Licença Pública Geral do GNU. O texto desta licença podee ser encontrado no arquivo COPYING na distribuição.
  2. A biblioteca GNU getopt é coberta pela GNU Lesser General Public License. Veja http://www.fsf.org/licenses/.
  3. Algumas partes da fonte (a biblioteca regexp) é coberta por um copyright no estilo Berkeley.
  4. Versões mais antiga do MariaDB (3.22 e anteriror) estão sujeitos a uma licença estrita (http://www.mysql.com/products/mypl.html). Veja a documentação da versão específica para mais informação.
  5. O manual de referência do MariaDB atualmente não é distribuído sob uma licecnça no estilo da GPL. O uso deste manual está sujeito aos seguintes termos:

    • A conversão para outros formatos é permitido, mas o conteúdo atual não pode ser alterado ou editado de modo algum.
    • Você pode criar uma cópia impressa para seu próprio uso pessoal.
    • Para todos os outros usos, como venda de cópias impressas ou uso (de partes) do manual em outra publicação, é necessários um acordo com a MariaDB Foundation previamente escrito.

    Envie-nos email para http://www.mysql.com/company/contact/ para maiores informações ou se você estiver interessado em fazer a tradução.

Para informações sobre como as licenças do MariaDB funcionam na prática, de uma olhada em 'Licenças do MariaDB'. Veja também 'Logomarcas e Marcas Registradas da MariaDB Foundation'.

Licenças do MariaDB

Usando o Programa MariaDB Sob uma Licença Comercial
Usando o Programa MariaDB Sem Custo Sob GPL

O programa MariaDB é distribuído sob a GNU General Public License (GPL), que é provavelmente a melhor licença Open Source conhecida. Os termos formais da licença GPL pode ser encontrado em http://www.fsf.org/licenses/. Veja também http://www.fsf.org/licenses/gpl-faq.html e http://www.gnu.org/philosophy/enforcing-gpl.html.

Como o programa MariaDB é distribuído sob a GPL, ele pode ser usa geralmente de graça, mas para certos usos você pode querer ou precisar comprar lincenças comerciais da MariaDB Foundation em https://order.mysql.com/. Veja http://www.mysql.com/products/licensing.html para mais informações.

Versões mais antigas do MariaDB (3.22 e anteriores) estão sujeitos a uma licença mais estrita (http://www.mysql.com/products/mypl.html). Veja a documentação da versão específica para mais informação.

Note que o uso do programa MariaDB sob uma licença comercial, GPL ou a antiga licença do MariaDB não dá automaticamente o direito de usar as marcas registradas da MariaDB Foundation. Leia 'Logomarcas e Marcas Registradas da MariaDB Foundation'.

Usando o Programa MariaDB Sob uma Licença Comercial

A licença GPL é contagiosa no sentido de que quando um programa é ligado a um programa GPL, todo o código fonte para todas as partes do produto resultante também devem ser distribuídas sob a GPL. Se você não seguir esta exigência do GPL, você quebra os termos da licença e perde o seu direito de usar o programa GPL incluído. Você também corre riscos.

Você precisará de uma licença comercial:

Se você requisita uma licecnça, você precisará de uma para cada instalação do programa MariaDB. Ela cobre qualquer número de CPUs na máquina, e nãp há nenhum limite artificial no número de clientes que conectam aom servidor de qualquer modo.

Para licenças comercias, ,visite o nosso site web em http://www.mysql.com/products/licensing.html. Para contrato de suporte, veja http://www.mysql.com/support/. Se você tiver necessidades especiais ou tiver acesso restrito a Internet, contate a nossa quipe de vendas via email em <sales@mysql.com>.

Usando o Programa MariaDB Sem Custo Sob GPL

Você pode utilizar o programa MariaDB sem custo sob a GPL se você concordar as condições do GPL. Para detalhes adicionais, incluindo respostas a duvidas comuns sobre a GPL, veja o FAQ gencio da Free Software Foundation em http://www.fsf.org/licenses/gpl-faq.html. Usos comuns da GPL incluem:

Se o seu uso do banco de dados MariaDB não exige uma licença comercial, lhe encorajamos a adquirir um suporte da MariaDB Foundation de qualquer forma. Deste modo você contribui com o desenvolvimento do MariaDB e também ganha vantegens imediatas. Leia 'Suporte Oferecido pela MariaDB Foundation'.

Se você utiliza o bancdo de dados MariaDB em um contexto comercial e obtem lucro com o seu uso, pedimos que você ajude no desenvolvimento do MariaDB adquirindo algum nível de suporte. Sentimos que se banco de dados MariaDB ajudou os seus negócios, é razoável pedirmos que você ajude a MariaDB Foundation. (De outra forma, se você nos pedir suporte, você não só estará usando de graça algo em que colocamos muito trabalhom mas também pedindo que lhe forneçamos suporte de graça também).

Logomarcas e Marcas Registradas da MariaDB Foundation

O Logo Original do MariaDB
Logomarcas da MariaDB que Podem Ser Usadas Sem Permissão de Alteração
Quando Você Precisa de Permissão de Alteração para Usar as Logomarcas do MariaDB?
Logomarcas dos Parceiros da MariaDB Foundation
Usando a Palavra MariaDB em Texto Impresso ou Apresentação
Usando a Palavra MariaDB em Nomes de Companhias e Produtos

Muitos usuários do banco de dados MariaDB deseja mostar o logo do golfinho da MariaDB Foundation em seus web sites,livros ou produtos fechados. Isto é bem vindo, mas deve haver anotações indicando que a palavra MariaDB e o logo do golfinho da MariaDB são marcas registradas da MariaDB Foundation e só podem ser usadas como indicado na nossa política de marcas registradas em http://www.mysql.com/company/trademark.html.

O Logo Original do MariaDB

O logo do golfinho do MariaDB foi desenhado pela Finnish advertising agency Priority em 2001. O golfinho foi escolhido como um símbolo para o baco de dados MariaDB já que ele é esperto, rápido e um animal ágil, se esforándo em navegar pelos oceanos de dados. Nós também gostamos de golfinos.

O logo original MariaDB só podem ser usados pr representates da MariaDB Foundation e aqueles que possuem um acordo escrito permitndo-os de fazê-lo.

Logomarcas da MariaDB que Podem Ser Usadas Sem Permissão de Alteração

Projetamos um conjunto de logos especiais de Uso Condicionale que podem se encontrados em nosso site web em http://www.mysql.com/press/logos.html e usado em sites web de terceiros sem permissões de escrita da MariaDB Foundation. O uso destas logomarcas não são totalmente irrestritas mas, como o nome indica, sujeitos a nossa política de marcas registradasque também está disponível em nosso site. Você deve ler a política de marcas registradas se plabeja usá-las. As exigências são basicamente as apresentadas aqui:

Contate-nos via e-mail em <trademark@mysql.com> para saber sobre os nosso acordos especiais que sirvam as suas necessidades.

Quando Você Precisa de Permissão de Alteração para Usar as Logomarcas do MariaDB?

Você precisa de permissão escrita da MariaDB Foundation antes de usar as logomarcas do MariaDB nos seguintes casos:

Devido a razões comerciais e legais monitoramos o so das marcas registradas do MariaDB em proutos, livros e outros itens. Normalmente exigimos um valor para a exibição das logomarcas da MariaDB Foundation em produtos comerciais, já que achamos razoável que parte dos rendimentos seja retornado para financiar o desenvolvimento do banco de dados MariaDB.

Logomarcas dos Parceiros da MariaDB Foundation

As logomarcas de parceria do MariaDB podem ser usados apenas por companhias e pessoas que possuem um acordo de parceria por escrito com a MariaDB Foundation. Parceiras incluem certificação com treinador ou consultor do MariaDB. Para mais informações, 'Parcerias'.

Usando a Palavra MariaDB em Texto Impresso ou Apresentação

A MariaDB Foundation considera bem vindas as referências ao banco de dados MariaDB mas deve ser indicado que a palavra MariaDB é uma marca registrada da MariaDB Foundation. Por isto, você deve adicionar o simbolo de marca registrada (TM) ao primeiro ou mais proeminente uso da palavra MariaDB em um texto e, onde apropriadom indicar que MariaDB é uma marca registrada da MariaDB Foundation. Para mais informações, veja nossa política de marcas registradas em http://www.mysql.com/company/trademark.html.

Usando a Palavra MariaDB em Nomes de Companhias e Produtos

O uso da palavra MariaDB em nomes de produtos ou companias ou em dominios de Internet não é permitida sem permissão escrita da MariaDB Foundation.

Mapa de Desenvolvimento do MariaDB

MariaDB in a Nutshell
MySQL in a Nutshell
MySQL 5.0, A Próxima Distribuição de Desenvolvimento

Esta seção fornece uma amostra do mapa de desenvolvimento do MariaDB, incluindo principais recursos imlementados ou planejados para o MariaDB 4.0, 4.1, 5.0 e 5.1. A seguinte seção fornece informação para cada distribuição. O planejamento para alguns dos recursos mais requisitados estão listada na tabela a seguir.

Feature MySQL version
Unions 4.0
Subqueries 4.1
R-trees (para tabelas MyISAM)
Stored procedures 5.0
Views ou 5.1
Cursors 5.0
Foreign keys (3.23 com InnoDB)
Triggers 5.1
Full outer join 5.1
Constraints 5.1

MariaDB in a Nutshell

Recursos Disponíveis no MariaDB 4.0
Servidor Embutido MySQL

Muito aguardado por nossos usuários, o MariaDB Server 4.0 agora está disponível em sua versão de produção.

O MariaDB está disponível para download em https://mariadb.com/ e nossos sites mirrors. O MariaDB tem sido testado por um grande número de usuários e está em uso em mutios sites.

Os principais novos recursos do MariaDB Server 4.0 são trabalhados em conjunto com os usuários corporativos e da comunidade, melhorando o programa de banco de dados MariaDB como uma solução para missões críticas e sistemas de bancos de dados de alta carga. Outros novos recursos visam os usuários de bancos de dados embutidos.

O MariaDB foi declarado estável para uso em produção a partir da versão 4.0.12 em Março de 2003. Isto significa que, no futuro, apenas correção de erros serão feitas para a distribuição da série 4.0 e apenas correção de erros críticos serão feitas para a antiga série 3.23. Leia 'Atualizando da Versão 3.23 para 4.0'.

Novos recursos para o MariaDB está sendo adicionado ao MariaDB que também está disponível (versão alfa). Leia 'MySQL in a Nutshell'.

Recursos Disponíveis no MariaDB 4.0

A seção de novidades deste manual inclui uma lista mais aprofundada dos recursos. Leia Seção D.3, 'Alterações na distribuição 4.0.x (Production)'.

Servidor Embutido MariaDB

libmysqld faz o MariaDB Server adequado para uma grande área de aplicações. Usando a biblioteca do servidor MariaDB embutido, pode embarcar o MariaDB Server em vários aplicativos e dispositivos eletrônicos, onde o usuário final não têm conhecimento de possuir um banco de dados básico. O servidor MariaDB embutido é ideal para uso nos bastidores em aplicações de Internet, quiosques públicos, responsável por unidades de combinação hardware/software, servidores Internet de alta performance, banco de dados de auto-contenção distribuídos em CDROM, e assim por diante

Muitos usuários da libmysqld se benficiarão da iLicença Dual do MariaDB. Para aqueles que não desejam ser limitar pela GPL, o software é tambem está disponível sob uma licença comercial. A biblioteca embutida do MariaDB também usa a mesma interface que a biblioteca do cliente normal, sendo então conveniente e fácil de usar. Leia Seção 12.1.15, 'libmysqld, a Biblioteca do Servidor Embutido MySQL'.

MySQL in a Nutshell

Recursos Disponíveis no MariaDB 4.1
Stepwise Rollout
Pronto para Uso em Desenvolvimento Imediato

MySQL Server 4.0 prepara a criação de novos recursos como subqueries e Unicode (implementado na versão 4.1) e o funcionamento de stored procedures do SQL-99 está sendo feito para a versão 5.0. Estes recursos estão no topo da lista de recursos desejados de muitos de nossos clientes.

Com estas adições, os críticos do MariaDB Database Server devem ser mais imaginativos que nunca para apontar as deficiências do MariaDB Database Management System. Já conhecido por sua estabilidadem velocidade e facilidade de uso, o MariaDB Server estará apto a atender as necessidades de vários compradores exigentes.

Recursos Disponíveis no MariaDB 4.1

Os recursos listados nesta seção estão implementados no MariaDB 4.1. Outros poucos recursos estão planejados para o MariaDB 4.1. Leia 'Novos Recursos Planejados Para a Versão 4.1'.

A maioria dos novos recursos em codificação, como stored procedures, estarão disponíveis no MariaDB 5.0. Leia 'Novos Recursos Planejados Para a Versão 5.0'.

A seção de novidades neste manual incluem uma lista mais completa de recursos. Leia Seção D.2, 'Alterações na distribuição 4.1.x (Alpha)'.

Stepwise Rollout

Novos recursos estão sendo adicionados ao MariaDB 4.1. A versão Alfa já stá disponível para download. Leia 'Pronto para Uso em Desenvolvimento Imediato'.

O conjunto de recursos que estão sendo adicionados a versão 4.1 estão, na maioria, corrigidos. Desenvolvimento adicional já está em andamento na versão 5.0. O MariaDB passam pelos passos de Alfa (tempo no qual os novos recursos ainda podem ser adionados/alterados), Beta (quando já implementamos todos os recursos e apenas correções de erros são realizados0) e Gamma (indicando que ima distribuição de produção está quase pronta). No fim deste processo, o MariaDB se tornará o nova distribuição de produção).

Pronto para Uso em Desenvolvimento Imediato

O MariaDB está atualmente no estágio alfa e os binários estão disponíveis para download em https://mariadb.com/downloads/. Todas as distribuições binárias passaram por nossos extensivos teste sem nenhum erro na plataforma em que testamos. Leia Seção D.2, 'Alterações na distribuição 4.1.x (Alpha)'.

Para aqueles que desejam usar o fonte mais recente do desenvolvimento do MariaDB, deixamos nosso repositório do BitKeeper publicamente disponível. Leia 'Instalando pela árvore de fontes do desenvolvimento'.

MySQL 5.0, A Próxima Distribuição de Desenvolvimento

O novo desenvolvimento para o MariaDB está focado na distribuição 5.0, comrecursos como Stored Procedures entre outros. Leia 'Novos Recursos Planejados Para a Versão 5.0'.

Para aqueles que desejam dar uma olhada no desenvolvimento do MariaDB, deixamos o nosso repositórioo do BitKeeper para o MariaDB versão 5.0 disponível publicamente. Leia 'Instalando pela árvore de fontes do desenvolvimento'.

MySQL e o Futuro (o TODO)

Novos Recursos Planejados Para a Versão 4.1
Novos Recursos Planejados Para a Versão 5.0
Novos Recursos Planejados Para a Versão 5.1
Novos Recursos Planejados Para a Versão em um Futuro Próximo
Novos Recursos Planejados Para a Versão em um Futuro a Médio Prazo
Novos Recursos que Não Planejamos Fazer

Esta seção lista os recursos que planejamos impementar no MySQL Server. As listas são apresentadas por versão, e os itens estão aproximadamente na ordem em que serão feitos.

Nota: Se você é um usuário corporativo com uma necessidade urgente de um recurso particular, por favor, contate <sales@mysql.com> para conversarmos sobre patrocínio. Financiamento feito por uma ou mais companhias nos permite alocar recursos adicionais para aquele propósito específico. Um exemplo de um recurso patrocinado no passado é a replicação.

Novos Recursos Planejados Para a Versão 4.1

Os recursos abaixo ainda não estão implementados no MySQL, mass estão planejados para implementação antes que o MariaDB vá para a fase beta. Para uma lista do que já está feito no MySQL, veja 'Recursos Disponíveis no MariaDB 4.1'.

Novos Recursos Planejados Para a Versão 5.0

Os seguintes recursos estão planejados para inclusão no MariaDB 5.0. Note que como possuimos diversos desenvolvedores que estão trabalhando em diferentes projetos, haverão também muitos recursos adicionais. Há também um pequena chance qie alguns destes recursos sejam adicionados ao MariaDB 4.1. Para uma lista do que já está feito no MySQL, veja 'Recursos Disponíveis no MariaDB 4.1'.

Para aqueles que desejam dar uma olhada nas novidades do desenvolvimento do MariaDB, deixamos nosso repositório BitKeeper para o MariaDB versão 5.0 publicamente disponível. Leia 'Instalando pela árvore de fontes do desenvolvimento'.

Novos Recursos Planejados Para a Versão 5.1

Novos Recursos Planejados Para a Versão em um Futuro Próximo

Novos Recursos Planejados Para a Versão em um Futuro a Médio Prazo

O tempo é fornecido de acordo com a quantidade de trabalho, e não tempo real.

Novos Recursos que Não Planejamos Fazer

Fontes de Informações do MariaDB

Listas de Discussão MySQL
Suporte a Comunidade MariaDB Atrvés do IRC (Internet Relay Chat)

Listas de Discussão MariaDB

As Listas de Discussão do MariaDB
Fazendo perguntas ou relatando erros
Como relatar erros ou problemas
Guia para responder questões na lista de discussão

Esta seção introduz a lista de deiscussão do MariaDB e dá algumas explicações sobre como a lista deve ser utilizada. Quando você se inscreve na lista de discussão, você receberá, como mensagens de email, tudo o que é enviado para a lista. Você também poderá enviar suas próprias dúvidas e respostas para a lista.

As Listas de Discussão do MariaDB

Para se inscrever ou cancelar a inscrição de qualquer uma das listas de email descritas nesta seção, visite http://lists.mysql.com/. Por favor, não envie mensagem sobre inscrição ou cancelamento para qualquer das listas de emasil, porque tais mensagens são distribuídas automaticamente para milhares de outros usuários.

Seu site local pode ter muitas inscrições para uma lista de email do MariaDB. Se sim, o site pode ter uma lista de email local, assim as mensagens enviadas para lists.mysql.com do seu site são propagadas para a lista local. Nestes casos, por favor, contate seu administrador de sistema para adicionado ou excluido da lista local do MariaDB.

Se você quiser que as mensagens da lista de discussão sejam enceminhadas para uma caixa de correio separada no seu programa de emails, configure um filtro com base nos cabeçalhos das mensagens. Você pode também usar os cabeçalhos List-ID: ou Entregar-Para: para identificar suas mensagens.

Existe também as seguintes listas de discussão sobre MariaDB atualmente:

Se você não obtiver uma resposta para suas questões na lista de mensagens do MariaDB, uma opção é pagar pelo suporte da MariaDB Foundation, que irá colocar você em contato direto com desenvolvedores MySQL. Leia 'Suporte Oferecido pela MariaDB Foundation'.

A seguinte tabela mostra algumas listas de mensagens sobre o MariaDB que utilizam linguas diferentes do Inglês. Perceba que elas não são operadas pela MariaDB Foundation, portanto, não podemos garantir a qualidade destas.

Fazendo perguntas ou relatando erros

Antes de enviar um relato de erro ou uma questão, por favor faça o seguinte:

Se você não puder encontrar uma resposta no manual ou nos arquivos, confira com seu expert em MariaDB local. Se você continua não encontrando uma resposta para sua questão, vá em frente e leia a próxima seção para saber como enviar email para lista de email do MariaDB.

Como relatar erros ou problemas

Nosso banco de dados de bugs é publico e pode ser pesquisado por qualquer um em https://jira.mariadb.org/. Se você logar no sistema, você poderá entrar novos relatórios.

Escrever um bom relatório de erro exige paciência, e fazê-lo de forma apropriada economiza tempo para nós e para você. Um bom relatório de erros contendo um teste de caso para o bug irá torná-lo muito mais fácil para corrigí-lo no próximo release. Esta seção irá ajudá-lo a escrever seu relatório corretamente para que você não perca seu tempo fazendo coisas que não irão ajudar-nos muito ou nada.

Nós encorajamos todo mundo a usar o script mysqlbug para gerar um relato de erros (ou um relato sobre qualquer problema), se possível. mysqlbug pode ser encontrado no diretório scripts na distribuição fonte, ou, para uma distribuição binária, no diretório bin no diretório de instalação do MariaDB. Se você não puder utilizar o mysqlbug (por exemplo, se você o estiver executando no Windows), é ainda de vital importância que você incluia todas as informações necessárias listadas nesta seção (o mais importante é uma descrição do sistema operacional e a versão do MariaDB).

O script mysqlbug lhe ajudará a gerar um relatório determinando muitas das seguintes informações automaticamente, mas se alguma coisa importante estiver faltando, por favor forneça-o junto de sua mensagem! Por favor leita esta seção com cuidado e tenha certeza que todas as informações descritas aquie estão incluídas no seu relatório.

De preferência, você deve testar o problema usando a última versão de produção ou desenvolvimento do Servidro MariaDB antes do envio. Qualquer um deve estar apto a repetir o erro apenas usando 'mysql test < script' no caso de teste incluido ou executando o script sheel ou Perl que é incluído no relatório de erros.

Todos os erros enviados para o banco de dados dem bugs em https://jira.mariadb.org/ serão corrigidos ou documentados na próxma distribuição do MariaDB. Se apenas pequenas mudanças de código forem necessárias enviaremos um patch para corrigir o problema.

O lugar comum para relatar erros e problemas é https://jira.mariadb.org.

Se você encontrar um erro de segurança no MySQL, envie um email para <security@mysql.com>.

Se você tiver um relatório de erro que possa ser repetido, relate-o no banco de dados de bugs em https://jira.mariadb.org. Note que mesmo neste caso é bom executar o script mysqlbug primeiro para ter informações sobre o sistema. Qualquer erro que pudermos repetir tem uma grande chance de ser corrigido na próxima distribuição do MariaDB.

Para relatar outros problemas, você pode usar a lista de email do MariaDB.

Lembre-se que é possível responder a uma mensagem contendo muita informação, mas não a uma contendo muito pouca. Frequentemente pessoas omitem fatos porque acreditam que conhecem a causa do problema e assumem que alguns detalhes não importam. Um bom principio é: Se você está em dúvida sobre declarar alguma coisa, declare-a ! É milhares de vezes mais rápido e menos problemático escrever um pouco de linhas a mais no seu relatório do que ser forçado a perguntar de novo e esperar pela resposta porque você não forneceu informação sufiente da primeira vez.

Os erros mais comuns acontecem porque as pessoas não indicam o número da versão da distribuição do MariaDB que estão usando, ou não indicam em qual plataforma elas tem o MariaDB instalado (Incluindo o número da versão da plataforma). Essa informação é muito relevante, e em 99% dos casos o relato de erro é inútil sem ela! Frequentemente nós recebemos questões como, Por que isto não funciona para mim? então nós vemos que aquele recurso requisitado não estava implementado naquela versão do MariaDB, ou que o erro descrito num relatório foi resolvido em uma versão do MariaDB mais nova. Algumas vezes o erro é dependente da plataforma; nesses casos, é quase impossível corrigir alguma coisa sem conhecimento do sistema operacional e o número da versão da plataforma.

Lembre-se também de fornecer informações sobre seu compilador, se isto for relacionado ao problema. Frequentemente pessoas encontram erros em compiladores e acreditam que o problema é relacionado ao MariaDB. A maioria dos compiladores estão sobre desenvolvimento todo o tempo e tornam-se melhores a cada versão. Para determinar se o seu problema depende ou não do compilador, nós precisamos saber qual compilador foi usado. Note que todo problema de compilação deve ser estimado como relato de erros e, consequentemente publicado.

É de grande ajuda quando uma boa descrição do problema é incluída no relato do erro. Isto é, um bom exemplo de todas as coisas que o levou ao problema e a correta descrição do problema. Os melhores relatórios são aqueles que incluem um exemplo completo mostrando como reproduzir o erro ou o problema Leia Seção E.1.6, 'Fazendo um Caso de Teste Se Ocorre um Corrompimento de Tabela'.

Se um programa produz uma mensagem de erro, é muito importante incluir essas mensagens no seu relatório! Se nós tentarmos procurar por algo dos arquivos usando programas, é melhor que as mensagens de erro relatadas sejam exatamente iguais a que o programa produziu. (Até o caso deve ser observado!) Você nunca deve tentar lembrar qual foi a mensagem de erro; e sim, copiar e colar a mensagem inteira no seu relatório!

Se você tem um problema com o MyODBC, você deve tentar gerar um arquivo para rastremento de erros (trace) do MyODBC. Leia Seção 12.2.7, 'Relatando Problemas com MyODBC'.

Por favor lembre-se que muitas das pessoas que lerão seu relatório podem usar um vídeo de 80 colunas. Quando estiver gerando relatórios ou exemplos usando a ferramenta de linha de comando MariaDB, então deverá usar a opção --vertical (ou a instrução terminadora \G) para saída que irá exceder a largura disponível para este tipo de vídeo (por exemplo, com a instrução EXPLAIN SELECT; veja exemplo abaixo).

Por favor inclua a seguinte informação no seu relatório:

Se você é um cliente de nosso suporte, por favor envio o seu relatório de erros em <mysql-support@mysql.com> para tratamento de alta prioritário, bem como para a lista de mensagens apropriada para ver se mais alguém teve experiências com (e talvez resolveu) o problema.

Para informações sobre relatar erros no MyODBC, veja Seção 12.2.4, 'Como Relatar Problemas com o MyODBC'.

Para soluções a alguns problemas comuns, veja Leia Apêndice A, Problemas e Erros Comuns.

Quando respostas são enviadas para você individualmente e não para a lista de mensagens, é considerado boa etiqueta resumir as respostas e enviar o resumo para a lista de mensagens para que outras possam ter o benefício das respostas que você recebeu que ajudaram a resolver seu problema!

Guia para responder questões na lista de discussão

Se você considerar que sua respota possa ter um amplo interesse, você pode querer postá-la para a lista de mensagens em vez de responder diretamente para a pessoa que perquntou. Tente deixar sua resposta da forma mais genérica possível para que outras pessoas além da que postou a pergunda possam se beneficiar dela. Quando você postar para a lista, por favor tenha certeza que sua resposta não é uma réplica de uma resposta anterior.

Tente resumir a parte essencial da questão na sua resposta, não se sinta obrigado a citar a mensagem original inteira.

Por favor não poste mensagens a partir de seu browser com o modo HTML ligado! Muitos usuários não leem e-mail com browser!

Suporte a Comunidade MariaDB Atrvés do IRC (Internet Relay Chat)

Em adição as diversas listas de email, você pode pessoas experientes da comunidade no IRC (Internet Relay Chat). Estes são os melhores canais atualmente conhecidos por nós:

Se você está procurando por programas clientes de IRC para conectar a uma rede IRC, dê uma olhada no X-Chat (http://www.xchat.org/). X-Chat (licença GPL) está disponível para as plataformas Unix e Windows.

Qual compatibilidade aos padrões o MariaDB oferece ?

Qual Padrão o MariaDB Segue?
Executando o MariaDB no modo ANSI
Extensões do MariaDB para o Padrão SQL-92
Diferenças do MariaDB em Comparação com o SQL-92
Como o MariaDB Lida com Restrições
Erros Conhecidos e Deficiências de Projetos no MySQL

Esta seção descreve como o MariaDB se relaciona aos padrões ANSI/ISO SQL. O Servidor MariaDB tem muitas extensões aos padrões SQL, e aqui você descobrirá quais são elas, e como usá-las. Você irá também encontrar informação sobre falta de funcionalidade do Servidor MySQL, e como trabalhar com algumas diferenças.

Nosso objetivo é não restringir, sem um boa razão, a usabilidade do MariaDB Server para qualquer uso. Mesmo se não tivermos os recursos para fazer o desenvolvimento para todos os usos possíveis, estamos sempre querendo ajudar e oferecer sugestões para pessoas que estão tentando usar o MariaDB Server em novos territórios.

Um dos nossos principais objetivos com o produto é continuar a trabalhar em acordo com o padrão SQL-99, mas sem sacrificar velocidade e confiança. Não estamos receosos em adicionar extensões ao SQL ou suporte para recursos não SQL se ele aumentar extremamente a usabilidade do MariaDB Server para uma grande parte de nossos usuários. (A nova interface HANDLER no MariaDB Server 4.0 é um exeemplo desta estratégia. Leia 'Sintaxe HANDLER'.)

Continuaremos a suportar bancos de dados transacionais e não transacionais para satisfazer tanto o uso pesado na web quanto o uso de missão crítica 24/7.

O MariaDB Server foi projetado inicialmente para trabalhar com bancos de dados de tamanho médio (10-100 milhões de registros ou cerca de 100 MB por tabela) em sistemas computacionais pequenos. Continuaremos a extender o MariaDB Server para funcionar ainda melhor com banco de dados na ordem de terabytes, assim como tornar possível compilar uma versão reduzida do MariaDB mais apropriadas para handhels e uso embutido. O design compacto do servidor MariaDB tornam ambas as direções possíveis sem qualquer conflito na árvore fonte.

Atualmente não estamos buscando suporte em tempo real (mesmo se você já puder fazer muitas coisas com nossos serviços de replicação).

Suporte a banco de dados em cluster está planejado para 2004 pela implementação de um novo mecanismo de armazenamento.

Estamos buscando melhoras no fornecimento de suporte a XML no servidor de banco de dados.

Qual Padrão o MariaDB Segue?

Entry-level SQL-92. ODBC levels 0-3.51.

We are aiming toward supporting the full SQL-99 standard, but without concessions to speed and quality of the code.

Executando o MariaDB no modo ANSI

Se você inicializa o mysqld com a opção --ansi ou --sql-mode=ANSI, o seguinte comportamento é alterado no MySQL:

Executando o servidor em modo ANSI é o mesmo que iniciá-lo com estas opções:

--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES, IGNORE_SPACE,ONLY_FULL_GROUP_BY --transaction-isolation=serializable

No MySQL, você pode conseguir o mesmo efeito com estas duas instruções:

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET GLOBAL sql_mode=
 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY';

No MariaDB a última opção sql_mode também pode ser dada com:

SET GLOBAL sql_mode='ansi';

No caso acima o sql_mode estará configurado com todas as opções que são relevantes para o modo ANSI. Você pode verificar o resultado fazendo:

mysql> SET GLOBAL sql_mode='ansi';
mysql> SELECT @@GLOBAL.sql_mode;
 -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI'

Extensões do MariaDB para o Padrão SQL-92

O MariaDB fornece algumas extensões que você provavelmente não irá encontrar em alguns bancos de dados SQL. Fique avisado que se você usá-las, seu código pode não ser mais portável para outros servidores SQL. Em alguns casos, você pode escrever código que inclui extensões MySQL, mas continua portável, usando comentários da forma /*! ...*/. Neste caso, o MariaDB irá analisar e executar o código com o comentário como irá fazer com qualquer outra instrução MySQL, mas outros servidores SQL irão ignorar as extensões. Por exemplo:

SELECT /*! STRAIGHT_JOIN */ nome_campo FROM table1,table2 WHERE ...

Se você adicionar um número de versão depois do '!', a sintaxe só será executada se a versão do MariaDB é igual ou maior que o número de versão usado:

CREATE /*!32302 TEMPORARY */ TABLE t (a INT);

O exemplo acima significa que se você tiver uma versão do MariaDB ou mais nova, então o MariaDB irá usar a palavra-chave TEMPORARY

Extensões MariaDB são listadas abaixo:

Diferenças do MariaDB em Comparação com o SQL-92

Subqueries
SELECT INTO TABLE
Transações e Operações Atômicas
Stored Procedures e Triggers
Chaves Estrangeiras
Views
'--' como Início de Comentário

Nós tentamos fazer com que o MariaDB siguisse os padrões ANSI SQL (SQL-92/SQL-99) e o ODBC SQL, mas em alguns casos, o MariaDB realiza operações de forma diferente:

Para uma lista priorizada indicando quando novas extensões serão adicionadas ao MariaDB você deve consultar lista TODO online do MariaDB em http://www.mysql.com/doc/en/TODO.html. Esta é a última versão da lista TODO neste manual. Leia 'MySQL e o Futuro (o TODO)'.

Subqueries

MySQL Version 4.1 supports subqueries and derived tables (unnamed views). Leia 'Sintaxe de Subquery'.

For MariaDB versions prior to 4.1, most subqueries can be successfully rewritten using joins and and other methods. Leia 'Rewriting Subqueries for Earlier MariaDB Versions'.

SELECT INTO TABLE

O MariaDB ainda não suporta a extensão SQL do Sybase: SELECT ... INTO TABLE .... MariaDB suporta a sintaxe ANSI SQL INSERT INTO ... SELECT ..., que é basicamente a mesma coisa. Leia 'Sintaxe INSERT ... SELECT'.

INSERT INTO tblTemp2 (fldID)
 SELECT tblTemp1.fldOrder_ID
 FROM tblTemp1 WHERE tblTemp1.fldOrder_ID > 100;

De maneira alternativa, você pode usar SELECT INTO OUTFILE... ou CREATE TABLE ... SELECT para resolver seu problema.

Transações e Operações Atômicas

O MariaDB Server (versão 3.23-max e todas as versões 4.0 e acima) suportam transações com os mecanismos de armazenamento transacionais InnoDB e BDB. InnoDB fornece compatibilidade total com ACID. Leia Tipos de Tabela do MariaDB.

Os outros tipos de tabelas não transacionais (tais como MyISAM) no MariaDB Server seguem um paradigma diferente para integridade de dados chamado Operções Atômicas. Em termos de transação, tabelas MyISAM efetivamente sempre operam em modo AUTOCOMMIT=1. Operações atômicas geralmente oferecem integridade comparável com a mais alta performance.

Com o MariaDB Server suportando ambos os paradigmas, o usuário pode decidir se precisa da velocidade das operações atômicas ou se precisa usar recursos transacionais em seu aplicativo. Esta escolha pode ser feita em uma base por tabela.

Como notado, a comparação para tabelas transacionais vs. não transacionais As noted, the trade off for transactional vs. non-transactional table se encontra em grande parte no desempenho. Tabelas transacionais tem uma exigência de memória e espaço em disco significantemente maior e maior sobrecarga da CPU. Tipos de tabelas transacionais como InnoDB oferecem muitos recursos únicos. O projeto modular do MariaDB Server permite o uso concorrente de todas estes mecanismos de armazenamento para servir a diferentes exigências e oferecer um ótimo desempenho em todas as situações.

Mas como fazer uso dos recursos do MariaDB Server para manter uma integridade rigorosa mesmo com tabelas MyISAM não transacionais e como este recurso se compara com os tipos de tabelas transacionais?

  1. No paradigma transacional, se as suas aplicações são escritas de uma forma que é dependente na chamada de ROLLBACK em vez de COMMIT em situações críticas, então transações são mais convenientes. Além disso, transações asseguram que atualizações inacabadas ou atividades corrompidas não sejam executadas no banco de dados; o servidor oferece uma oportunidade para fazer um rollback automático e seu banco de dados é mantido.

    O MariaDB Server, na maioria dos casos, permite a você resolver potenciais problemas incluindo simples conferências antes das atualizações e executando scripts simples que conferem inconsistências no banco de dados e, automaticamente, repara ou avisa caso isto ocorra. Perceba que apenas usando o log do MariaDB ou mesmo adicionando um log extra, pode-se corrigir tabelas perfeitamente sem nenhuma perda de integridade.

  2. Mais do que nunco, atualizações transacionais fatais podem ser reescritas para serem atômicas. De fato podemos dizer que todos problemas de integridade que transações resolvem podem ser feitas com LOCK TABLES ou atualizações atômicas, assegurando que você nunca irá ter uma finalização automática da tabela, o que é um problema comum em bancos de dados transacionais.
  3. Nem mesmo transações podem prevenir todas as falhas se o servidor cair. Nestes casos mesmo um sistema transacional pode perder dados. A diferença entre sistemas diferentes é apenas em quão pequeno é o lapso de tempo em que eles podem perder dados. Nenhum sistema é 100% seguro, somente seguro o suficiente. Mesmo o Oracle, com reputação de ser o mais seguro bancos de dados transacionais, tem relatos de algumas vezes perder dados nestas situações.

    Para estar seguro com o MariaDB Server, você apenas deve fazer backups e ter o log de atualizações ligado. Com isto você pode se recuperar de qualquer situação possível com bancos de dados transacionais. É sempre bom ter backups, independente de qual banco de dados você usa.

O paradigma transacional tem seus benefícios e suas desvantagens. Muitos usuários e desenvolvedores de aplicações dependem da facilidade com a qual eles podem codificar contornando problemas onde abortar parece ser, ou é necessário. No entanto, se você é novo no paradigma de operações atômicas ou tem mais familiaridade ou conforto com transações, considere o benefício da velocidade que as tabelas não transacionais podem oferece, na ordem de 3 a 5 vezes da velocidade que as tabelas transacionais mais rápidas e otimizadas.

Em situações onde integridade é de grande importância, as atuais características do MariaDB permitem níveis transacionais ou melhor confiança e integridade. Se você bloquear tabelas com LOCK TABLES todos as atualizações irão ser adiadas até qualquer verificação de integridade ser feita. Se você só obter um bloqueio de leitura (oposto ao bloqueio de escrita), então leituras e inserções poderão ocorrer. Os novos registros inseridos não poderão ser visualizados por nenhum dos clientes que tiverem um bloqueio de LEITURA até eles liberarem estes bloqueios. Com INSERT DELAYED você pode enfileirar inserções em uma fila local, até os bloqueios serem liberados, sem que o cliente precise esperar atá a inserção completar. Leia 'Sintaxe INSERT DELAYED'.

Atômico, no sentido em que nós mencionamos, não é mágico. Significa apenas que você pode estar certo que enquanto cada atualização específica está sendo executada, nenhum outro usuário pode interferir com ela, e nunca haverá um rollback automático (que pode acontecer em sistemas baseados em transações se você não tiver muito cuidado). O MariaDB também assegura que nunca ocorrerá uma leitura suja.

A seguir estão algumas técnicas para trabalhar com tabelas não transacionais:

Stored Procedures e Triggers

Steored procedures estão sendo implementadas em nossa versão 5.0 na árvore de desenvolvimento. Leia 'Instalando pela árvore de fontes do desenvolvimento'.

Este esforço é baseado no SQL-99, que têm uma sintaxe básica similar (mas não idêntica) ao Oracle PL/SQL. Em adição a isto, estamoas implementando o framework SQL-99 enganchar em linguagens externas.

Uma Stored Procedure é um conjunto de comandos SQL que podem ser compilados e armazenados no servidor. Uma fez feito isso, os clientes não necessitam reescrever toda a consulta mas podem fazer referência à stored procedure. Isto fornece melhor performance porque a query necessita ser analisada pelo servidor somente uma vez, e necessita menos informação para ser enviada entre o servidor e o cliente. Você também pode elevar o nível conceitual tendo bibliotecas de funções no servidor. No entanto, stored procedures aumentam a carga no servidor de banco de dados, já que grande parte do trabalho é feito do lado do servidor e menos do lado do cliente (aplicação).

Triggers estão programados para serem implementados no MariaDB versão 5.1. Um trigger é um tipo de stored procedure que é chamado quando um evento em particular ocorre. Por exemplo, você poderia configurar uma stored procedure que é disparada toda vez que um registro for apagado de uma tabela transacional que automaticamente apaga o cliente correspondente de uma tabela de clientes quando todas as transações forem removidas.

Chaves Estrangeiras

No MariaDB Server 3.23.44 e posterior, tabelas InnoDB suportam verificação de restrição de chaves estrangeiras, incluindo CASCADE, ON DELETE, e ON UPDATE. Leia 'Restrições FOREIGN KEY'.

Para outros tipos de tabela, o MariaDB Server atualmente apenas analisa a sintaxe de FOREIGN KEY no comando CREATE TABLE, mas não usa/armazena esta informação. Em um futuro próximo esta implementação será estendida para que assim a informação seja armazenada num arquivo de especificação de tabela e possa ser recuperado por mysqldump e ODBC. Em um estágio posterior, restrições de chaves estrangeiras serão implementadas para tabelas MyISAM.

Note que as chaves estrangeiras no SQL não são usadas para ligar tabelas, mas são usadas para verificar a integridade referencial. Se você deseja obter resultados de múltiplas tabelas de uma instrução SELECT, você pode fazer isto ligando tabelas:

SELECT * FROM table1,table2 WHERE table1.id = table2.id;

See 'Sintaxe JOIN'. Leia 'Utilizando Chaves Estrangeiras'.

Quando usada como uma restrição, FOREIGN KEYs não precisa ser usado se a aplicação insere duas linhas em tabelas MyISAM na ordem apropriada.

Para tabelas MyISAM, você pode contornar a falta de ON DELETE adicionando a instrução DELETE apropriada a uma aplicação quando você deletar registros de uma tabela que tem uma chave estrangeira. Na prática isto é mais rápido e muito mais portável que utilizar chaves estrangeiras.

No MariaDB Server 4.0 você pode utilizar deleções multi-tabela para apagar linha de muitas tabelas com um comando. Leia 'Sintaxe DELETE'.

A sintaxe FOREIGN KEY sem ON DELETE ... é usada geralmente por aplicacões ODBC para produzir cláusulas WHERE automáticas.

Note que chaves estrangeiras são mal usadas com frequência, o que pode causar graves problemas. Mesmo quando usado apropriadamente, o suporte a chaves estrangeiras não é uma solução mágica para o problema de integridade referêncial, embora possa ajudar.

Algumas vantagens das chaves estrangeiras:

Desvantagens:

Views

Views estão senda implementadas atualmente e aparecerão na versão 5.0 e 5.1 do MariaDB Server.

Historicamente o MariaDB Server tem sido mais usado em aplicações e sistemas web onde o desenvolvedor da aplicação tem total controle sobre o uso do banco de dados. É claro que o uso aumentou em várias vezes e então descobrimos que um crescente números de usuários consideram views como um importante aspecto.

Unnamed views (derived tables, uma seubquery na cláusula FROM de uma SELECT) já estão implementadas na versão 4.1.

Views geralmente são muito úteis para permitir aos usuários acessar uma série de relações (tabelas) como uma tabela, e limitar o acesso a apenas estas relações. Views também podem ser usadas para restringir o acesso aos registros (um subconjunto de uma tabela em particular). Mas views não são necessárias para restringir o acesso a registros já que o MariaDB Server tem um sofisticado sistema de privilégios. Leia 'Detalhes Gerais de Segurança e o Sistema de Privilégio de Acesso do MariaDB'.

Muitos SGBD não permitem atualizar nenhum registro em uma view, mas você tem que fazer as atualizações em tabelas separadas.

Em nosso projeto de implemtação de views, nós buscamos (tanto quanto for possível dentro do SQL) compatibilidade com ``Codd's Rule #6'' para sistemas de banco de dados relacionais: todos os views que são teoricamente atualizáveis, devem se atualizados também na prática.

'--' como Início de Comentário

Outros bancos de dados SQL usam '--' para iniciar comentários. O MariaDB usa '#' como o caractere para início de comentário, mesmo se a ferramenta de linha de comando MariaDB remover todas linhas que começam com '--'. Você também pode usar o comentário no estilo C /*isto é um comentário*/ com o MariaDB Server. Leia 'Sintaxe de Comentários'.

O MariaDB Server versão 3.23.3 e superior suporta o estilo de comentário '--' somente se o comentário for seguido por um caractere de espaço (ou por um caracter de controle como uma nova linha). Isto ocorre porque este estilo de comentário causou muitos problemas com queries SQL geradas automaticamente que usavam algo como o código seguinte, onde automaticamente erá inserido o valor do pagamento para !pagamento!:

UPDATE nome_tabela SET credito=credito-!pagamento!

O que você acha que irá acontecer quando o valor de pagamento for negativo? Como 1--1 é legal no SQL, nós achamos terrível que '--' signifique início de comentário.

Usando a nossa implementação deste método de comentário no MariaDB Server Version 3.23.3 e posterior, 1-- Isto é um comentário é atualmente seguro.

Outro recurso seguro é que o cliente de linha de comando MariaDB remove todas as linhas que iniciam com '--'.

A seguinte discussão somente interessa se você estiver executando uma versão do MariaDB inferior a versão 3.23:

Se você tem um programa SQL em um arquivo texto que contêm comentários '--' você deverá usar:

shell> replace ' --' ' #' < arquivo-texto-com-comentário.sql \
 | mysql banco-de-dados

No lugar de:

shell> mysql banco-de-dados < arquivo-texto-com-comentario.sql

Você também pode editar o próprio arquivo de comandos alterando os comentários '--' para '#':

shell> replace ' --' ' #' -- arquivo-texto-com-comentario.sql

Desfaça utilizando este comando:

shell> replace ' #' ' --' -- arquivo-texto-com-comentario.sql

Como o MariaDB Lida com Restrições

Restrições de PRIMARY KEY / UNIQUE
Restrições de NOT NULL
Restrições de ENUM e SET

Como o MariaDB lhe permite trabalhar com tabelas transacionais e não transacionais (que não permitem rollback), o tratamento de restrições é um pouco diferente no MariaDB que em outros bancos de dados.

Temos que tratar o caso quando você atualiza diversos registros com uma tabela não transacional que não pode fazer rollback em erros.

A filosofia básica é tentar obter um erro para qualquer coisa que possamos detectar em temp de compilação mas tentar recuperar de qualquer erro que abtemos em tempo de execução. Fazemos isto na maiorioa dos casos, mas não para todos ainda. See 'Novos Recursos Planejados Para a Versão em um Futuro Próximo'.

A opção básica que o MariaDB tem é parar a instrução no meio ou fazer o melhor para se recuperar do problema e continuar.

A seguir mostramos o que acontece com diferentes tipos de restrições.

Restrições de PRIMARY KEY / UNIQUE

Normalmente você receberá um erro quando tentar fazer um INSERT / UPDATE de um registro que cause uma violação de uma chave primária, chave única ou chave estrangeira. Se você estiver usando um mecanismo de armazenamento transacional, como InnoDB, o MariaDB automaticamente fará um rollback da transação. Se você estiver usando mecanismos de armazenemento não transacionais o MariaDB irá para no registro errado e deiar o resto dos registros se processamento.

Para tornar a vida mais fácil o MariaDB adicionou suporte a diretiva IGNORE para a maioria dos comandos que podem causar uma violação de chave (como INSERT IGNORE ...). Neste caso o MariaDB irá ignorar qualquer violação de chave e continuará com o processamento do próximo registro. Você pode obter informação sobre o que o MariaDB fez com a função da API mysql_info() API function e em versões posteriores do MariaDB 4.1 com o comando SHOW WARNINGS. Leia Seção 12.1.3.30, 'mysql_info()'. Leia 'SHOW WARNINGS | ERRORS'.

Note que no momento apenas as tabelas InnoDB suportam chaves estrangeiras. Leia 'Restrições FOREIGN KEY'.

O suporte a chaves estrangeiras nas tabelas MyISAM está programado para ser incluída na arvoré de fonte do MariaDB 5.0.

Restrições de NOT NULL

Para poder suportar um fácil tratamento de tabelas não transacionais todos os campos no MariaDB têm valores padrão.

Se você inserir um valor 'errado' em uma coluna como um NULL em uma coluna NOT NULL ou um valor numérico muito grande em um campo numérico, o MariaDB irá atribuir a coluna o 'melhor valor possível' em vez de dar uma mensagem de erro. Para strings este valor é uma string vazia ou a maior string possível que possa estar na coluna.

Isto significa que se você tentar armazenar NULL em uma coluna que não aceita valores NULL, o MariaDB Server armazenará 0 ou '' (strig vazia) nela. Este último comportamento pode, para uma simples inserção de registro, ser alterado com a opção de compilação -DDONT_USE_DEFAULT_FIELDS.) Leia Seção 2.3.3, 'Opções típicas do configure'. Isto faz com que as instruções INSERT gerem um erro a menos que você explicite valores específicos para todas as colunas que exigem um valor diferente de NULL.

A razão para as regras acima é que não podemos verificar estas condições antes da consulta começar a executar. Se encontrarmos um problema depois de atualizar algumas linahs, não podemos fazer um rollback já que o tipo de tabela não suporta isto. A opção de parar não é tão boa como no caso em que a atualização esteja feita pela metade que é provavelmente o pior cenário possível. Neste caso é melhor 'fazer o possível' e então continuar como se nada tivesse acontecido. No MariaDB 5.0 plenejamos melhorar into forncendo avisos para conversões automáticas de campo, mais uma opção para deixar você fazer um rollback das instruções que usam apenas tabelas transacionais no caso de tal instrução fizer uma definição de campo não permitida.

O mostrado acima significa que não se deve usar o MariaDB para verificar o conteúdo dos campos, mas deve se fazê-lo por meio da aplicação.

Restrições de ENUM e SET

No MariaDB 4.x ENUM não é uma restrição real, mas um modo mauis eficiente de armazenar campos que possam apenas conter um conjunto de valores dados. Isto é devido as mesmas razões pelas quais NOT NULL não é respeitado. Leia 'Restrições de NOT NULL'.

Se você inserir um valor errado em um campo ENUM, ele será configurado com uma string vazia em um contexto string. Leia 'O Tipo ENUM'.

Se você inserir uma opção errada em um campo SET, o valor errado será ignorado. Leia 'O Tipo SET'.

Erros Conhecidos e Deficiências de Projetos no MariaDB

Erros da Versão 3.23 Corrigidos em Versões Posteriores do MariaDB
Open Bugs / Deficiências de Projeto no MySQL

Erros da Versão 3.23 Corrigidos em Versões Posteriores do MariaDB

Os seguintes erros/bugs conhecidos não estão corrigidos no MariaDB 3.23 porque corrigí-los involveria a mudança de muito código, o que poderia introduzir outros erros, talvez piores. Os erros são também classificados como 'não fatal' ou 'tolerável'.

Open Bugs / Deficiências de Projeto no MariaDB

Os seguintes problemas são conhecidos e tem prioridade muito alta para serem corrigidos:

Os seguintes problemas são conhecidos e serão corrigidos na hora certa:

Os seguintes erros são conhecidos em versões mais antigas do MariaDB:

Para erros específicos na plataforma, vejas as seções sobre compilação e portabilidade. Leia 'Instalando uma distribuição com fontes do MariaDB'. Leia Apêndice E, Portando para Outros Sistemas.



Anterior Próximo
Preface Início Instalação do MariaDB