XOOPS Brasil

 

1.2. Visão Geral do Sistema de Gerenciamento de Banco de Dados MySQL

MySQL, o mais popular sistema de gerenciamento de banco de dados SQL Open Source, é desenvolvido, distribuído e tem suporte da MySQL AB. A MySQL AB é uma empresa comercial, fundada pelos desenvolvedores do MySQL, cujos negócios é fornecer serviços relacionados ao sistema de gerenciamento de banco de dados MySQL. Veja mais informações sobre isto na Seção 1.3, “Visão Geral da MySQL AB”.

O web site do MySQL (MySQL) fornece informações mais recentes sobre e programa MySQL e a MySQL AB.

  • O MySQL é um sistema de gerenciamento de bancos de dados.

    Um banco de dados é uma coleção de dados estruturados. Ele pode ser qualquer coisa desde uma simples lista de compras a uma galeria de imagens ou a grande quantidade de informação da sua rede coorporativa. Para adicionar, acessar, e processar dados armazenados em um banco de dados de um computador, você necessita de um sistema de gerenciamento de bancos de dados como o Servidor MySQL. Como os computadores são muito bons em lidar com grandes quantidades de dados, o gerenciamento de bancos de dados funciona como a engrenagem central na computação, seja como utilitários independentes ou como partes de outras aplicações.

  • O MySQL é um sistema de gerenciamento de bancos de dados relacional.

    Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar todos os dados um só local. Isso proporciona velocidade e flexibilidade. A parte SQL do ``MySQL'' atenda pela ``Structured Query Language - Linguagem Estrutural de Consultas''. SQL é linguagem padrão mais comum usada para acessar banco de dados e é definida pelo Padrão ANSI/ISO SQL. (O padrão SQL está vem evoluindo desde 1986 e existem diversas versões. Neste manual, ''SQL-92'' se refere ao padrão liberado em 1992, ''SQL-99'' se refere ao padrão liberado em 1999, e ''SQL:2003'' se refere a versão do que esperamos que seja liberado no meio de 2003. Nós usamos o termo ''o padrão SQL'' indicando a versão atual do Padrão SQL em qualquer momento).

  • O é MySQL um software Open Source.

    Open Source significa que é possível para qualquer um usar e modificar o programa. Qualquer pessoa pode fazer download do MySQL pela Internet e usá-lo sem pagar nada. Se você quiser, você pode estudar o código fonte e alterá-lo para adequá-lo às suas necessidades. O MySQL usa a GPL (GNU General Public License - Licença Pública Geral GNU) http://www.fsf.org/licenses, para definir o que você pode e não pode fazer com o software em diferentes situações. Se você sentir desconforto com a GPL ou precisar embutir o MySQL em uma aplicação comercial¸ você pode adquirir a versão comercial licenciada conosco. Veja mais informações sobre isto na Seção 1.4.3, “Licenças do MySQL”.

  • Por que usar o Banco de Dados MySQL?

    O servidor de banco de dados MySQL é extremamente rápido, confiável, e fácil de usar. Se isto é o que você está procurando, você deveria experimentá-lo. O Servidor MySQL também tem um conjunto de recursos muito práticos desenvolvidos com a cooperação de nossos utilizadores. Você pode encontrar comparativos de performance do Servidor MySQL com outros gerenciadores de bancos de dados na nossa página de benchmark Veja mais informações sobre isto na Seção 5.1.4, “O Pacote de Benchmark do MySQL”.

    O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito grandes de maneira muito mais rápida que as soluções existentes e tem sido usado em ambientes de produção de alta demanda por diversos anos de maneira bem sucedida. Apesar de estar em constante desenvolvimento, o Servidor MySQL oferece hoje um rico e proveitoso conjunto de funções. A conectividade, velocidade, e segurança fazem com que o MySQL seja altamente adaptável para acessar bancos de dados na Internet.

  • As características técnicas do MySQL

    Para informações técnicas avançadas, veja Capítulo 6, Referência de Linguagem do MySQL. O Programa de Banco de Dados MySQL é um sistema cliente/servidor que consiste de um servidor SQL multi-tarefa que suporta acessos diferentes, diversos programas clientes e bibliotecas, ferramentas administrativas e diversas interfaces de programação (API's).

    Também concedemos o Servidor MySQL como uma biblioteca multi-tarefa que você pode ligar à sua aplicação para chegar a um produto mais rápido, menor e mais fácilmente gerenciável.

  • MySQL tem muitos softwares de colaboradores disponível.

    É bem provável que sua aplicação ou linguagem favorita já suporte o Servidor de Banco de Dados MySQL.

A pronúncia oficial do MySQL é ``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.

1.2.1. História do MySQL

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 MySQL.

A derivação do nome MySQL 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 MySQL continua sendo um mistério, mesmo para nós.

O nome do golfinho do MySQL (nosso logo) é Sakila. Sakila foi escolhido pelos fundadores da MySQL AB de uma enorme lista de nomes sugeridos pelos utilizadores 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.

1.2.2. As Principais Características do MySQL

A seguinte lista descreve algumas das características mais importantes do Progrma de Banco de Dados MySQL. Veja mais informações sobre isto na Seção 1.5.1, “MySQL 4.0 in a Nutshell”.

  • Portabilidade e

    • Escrito em C e C++.

    • Testado com um amplo faixa de compiladores diferentes.

    • Funciona em diversas plataformas. Veja mais informações sobre isto na Seção 2.2.3, “Sistemas Operacionais suportados pelo MySQL”.

    • Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade.

    • APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl estão disponíveis. Veja mais informações sobre isto na Capítulo 12, Ferramentas de Clientes e APIs do MySQL.

    • Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que se pode facilmente usar múltiplas CPUs, se disponível.

    • Fornece mecanismos de armazenamento transacional e não transacional.

    • Tabelas em disco (MyISAM) baseadas em árvores-B extremamente rápidas com compressão de índices.

    • É relativamente fácil se adicionar outro mecanismo de armazenamento. Isto é útil se você quiser adicionar uma interface SQL a um banco de dados caseiro.

    • Um sistema de alocação de memória muito rápido e baseado em processo(thread).

    • Joins muito rápidas usando uma multi-join de leitura única otimizada.

    • Tabelas hash em memória que são usadas como tabelas temporárias.

    • Funções SQL são implementadas por meio de uma biblioteca de classes altamente otimizada e com o máximo de performance. Geralmente não há nenhuma alocação de memória depois da inicialização da pesquisa.

    • O código do MySQL foi testado com Purify (um detector comercial de falhas de memória) e também com o Valgrind, uma ferramenta GPL (http://developer.kde.org/~sewardj/).

    • Disponível como versão cliente/servidor ou embutida(ligada).

  • Tipos de Coluna

    • Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4 e 8 bytes com e sem sinal, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET e ENUM. Veja mais informações sobre isto na Seção 6.2, “Tipos de Campos”.

    • Registros de tamanhos fixos ou variáveis.

  • Comandos e Funções

    • Completo suporte a operadores e funções nas partes SELECT e WHERE das consultas. Por exemplo:

      mysql> SELECT CONCAT(first_name, " ", last_name)
      -> FROM nome_tbl
      -> WHERE income/dependents > 10000 AND age > 30;
      
    • Suporte pleno às cláusulas SQL GROUP BY e ORDER BY. Suporte para funções de agrupamento (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() e MIN()).

    • Suporte para LEFT OUTER JOIN e RIGHT OUTER JOIN com as sintaxes SQL e ODBC.

    • Alias em tabelas e colunas são disponíveis como definidos no padrão SQL92.

    • DELETE, INSERT, REPLACE, e UPDATE retornam o número de linhas que foram alteradas (afetadas). É possível retornar o número de linhas com padrão coincidentes configurando um parâmetro quando estiver conectando ao servidor.

    • O comando específico do MySQL SHOW pode ser usado para devolver informações sobre bancos de dados, tabelas e índices. O comando EXPLAIN pode ser usado para determinar como o otimizador resolve a consulta.

    • Nomes de funções não conflitam com nomes de tabelas ou colunas. Por exemplo, ABS é um nome de campo válido. A única restrição é que para uma chamada de função, espaços não são permitidos entre o nome da função e o ‘(’ que o segue. Veja mais informações sobre isto na Seção 6.1.7, “Tratamento de Palavras Reservadas no MySQL”.

    • Você pode misturar tabelas de bancos de dados diferentes na mesma pesquisa (como na versão 3.22).

  • Segurança

    • Um sistema de privilégios e senhas que é muito flexível, seguro e que permite verificação baseada em estações/máquinas. Senhas são seguras porque todo o tráfico de senhas é criptografado quando você se conecta ao servidor.

  • Escalabilidade e limites

    • Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos de dados que contém 50.000.000 registros e sabemos de utilizadores que usam o Servidor MySQL com 60.000 tabelas e aproximadamente 5.000.000.000 de linhas.

    • São permitidos até 32 índices por tabela. Cada índice pode ser composto de 1 a 16 colunas ou partes de colunas. O tamanho máximo do índice é de 500 bytes (isto pode ser alterado na compilação do MySQL). Um índice pode usar o prefixo de campo com um tipo CHAR ou VARCHAR.

  • Conectividade

    • Os clientes podem se conectar ao servidor MySQL usando sockets TCP/IP, em qualquer plataforma. No sistema Windows na família NT (NT, 2000 ou XP), os clientes podem se conectar usando named pipes. No sistema Unix, os clientes podem se conectar usando arquivos sockets.

    • A interface Connector/ODBC fornece ao MySQL suporte a progras clientes que usam conexão ODBC (Open-DataBase-Connectivity). Por exemplo, você pode usar o MS Access para conectar ao seu servidor MySQL. Os clientes podem ser executados no Windows ou Unix. O fonte do Connector/ODBC está disponível. Todas as funções ODBC são suportadas, assim como muitas outras.

      Veja mais informações sobre isto na Seção 12.2, “Suporte ODBC ao MySQL”.

  • Localização

    • O servidor pode apresentar mensagem de erros aos clientes em várias línguas. Veja mais informações sobre isto na Seção 4.7.2, “Mensagens de Erros em Outras Línguas”.

    • Suporte total para vários conjuntos de caracteres, que incluem ISO-8859-1 (Latin1), big5, ujis e mais. Por exemplo, os caracteres Escandinavos ‘â’, ‘ä’, ‘ö’ são permitidos em nomes de tabelas e colunas.

    • Todos os dados são armazenados no conjunto de caracteres escolhido. Todas as comparações em colunas de seqüências caso-insensitivo.

    • A ordenação é feita de acordo com o conjunto de caracteres escolhido (o modo sueco por padrão). É possível alterar isso quando o servidor MySQL é iniciado. Para ver um exemplo de várias ordenações avançadas, procure pelo código de ordenação Tcheca. O Servidor MySQL suporta diversos conjuntos de caracteres que podem ser especificados em tempo de compilação e execução.

  • Clientes e Ferramentas

    • O servidor MySQL foi construído com suporte para instruções SQL que verificam, otimizam e reparam tabelas. Estas instruções estão disponíveis a partir da linha de comando por meio do cliente myisamcheck, O MySQL inclui também o myisamchk, um utilitário muito rápido para realizar estas operações em tabelas MyISAM. Veja mais informações sobre isto na Capítulo 4, Administração do Bancos de Dados MySQL.

    • Todos os programas MySQL podem ser chamados com as opções --help ou -? para obter ajuda online.

1.2.3. Estabilidade do MySQL

Esta seção discute as questões ``Quão estável é o MySQL?'' e ``Posso depender do MySQL neste projeto?''. Tentaremos deixar claro estes assuntos e responder algumas das questões mais importantes que dizem respeito a muito de nossos utilizadores. 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 MySQL vem trabalhando sem problemas em nossos projetos desde o meio de 1996. Quando o Programa de Banco de Dados MySQL foi disponibilizado para um público maior, nossos novos utilizadores 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 utilizadores começam a usar o código das ``áreas cinzentas.'' Naturalmente, novos utilizadores 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. Veja mais informações sobre isto na Seção 1.8.6, “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.

  • Replicação --- Gamma

    Grandes grupos de servidores usando replicação estão em uso, com bom resultados. O trabalho no aprimoramento dos recursos de replicação continua no MySQL 4.x.

  • Tabelas InnoDB --- Estável (na 3.23, 3.23.49)

    O mecanismo de armazenamento transacional InnoDB foi declarado estável na árvore do MySQL 3.23, a partir da versão 3.23.49. InnoDB tem sido usado em sistema de produção grandes e com carga pesada.

  • Tabelas BDB --- Gamma

    O código do Berkeley DB é muito estável, mas ainda estamos melhorando a interface do mecanismo de armazenamento transacional do BDB no Servidor MySQL, assim levará algum tempo até que ele esteja tão bem testado quanto os outro tipos de tabela.

  • Pesquisas Full-text --- Beta

    Pesquisa full-text funcionam mas ainda não são largamente usadas. Melhoramentos importantes forma implementados no MySQL 4.0.

  • MyODBC 3.51 (usa ODBC SDK 3.51) --- Estável

    Em grande uso na produção. Alguns problemas apresentados parecem ser relacionados a aplicação e independente do driver ODBC ou do servidor de banco de dados.

  • Recuperação automática de tabelas MyISAM --- Gamma

    Este status se aplica apenas ao novo código que confere no mecanismo de armazenamento MyISAM que verifica, na inicialização, se a tabela foi fechada corretamente e executa uma conferência/reparo automático da tabela em caso negativo.

  • Bulk-insert --- Alpha

    Novo recurso nas tabelas MyISAM no MySQL 4.0 para inserções mais rápidas de vários registros.

  • Locking --- Gamma

    Esse módulo é muito dependente do sistema. Em alguns sistemas existem certos problemas por utilizar o locking padrão do SO (fcntl(). Nestes casos, você deve executar o mysqld com o parâmetro --skip-external-locking. São conhecidos alguns problemas ocorridos em alguns sistemas Linux e no SunOS quando utiliza-se sistemas de arquivos montados em NFS.

Clientes que pagam recebem suporte direto e de alta qualidade da MySQL AB. A MySQL AB 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.

1.2.4. Qual o Tamanho Que as Tabelas do MySQL Podem Ter?

A Versão 3.22 do MySQL tem suporte para tabelas com limite de tamanho até 4G. Com o novo MyISAM no MySQL 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 MySQL é normalmente limitado pelas restrições do sistema operacional quanto ao tamanho dos arquivos, não mais por limites internos do MySQL.

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

Sistema OperacionalLimite do tamanho do arquivo
Linux-Intel 32 bit2G, muito mais usando LFS
Linux-Alpha8T (?)
Solaris 2.5.12G (É possível 4GB com patch)
Solaris 2.64G (pode ser alterado com parâmetro)
Solaris 2.7 Intel4G
Solaris 2.7 ULTRA-SPARC8T (?)

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 MySQL 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 Veja mais informações sobre isto na Seção 4.6.8, “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. Veja mais informações sobre isto na Seção 6.5.3, “Sintaxe CREATE TABLE. Você pode também alterar isso mais tarde com ALTER TABLE. Veja mais informações sobre isto na Seção 6.5.4, “Sintaxe ALTER TABLE.

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

1.2.5. Compatibilidade Com o Ano 2000 (Y2K)

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

  • O Servidor MySQL usa funções de tempo Unix que tratam datas até o ano 2037 para valores TIMESTAMP; para valores DATE e DATETIME, datas até o ano 9999 são aceitas.

  • Todas as funções de data do MySQL estão no arquivo sql/time.cc e codificadas com muito cuidado para ser compatível com o ano 2000.

  • No MySQL versão 3.22 e posterior, o novo tipo de campo YEAR pode armazenar anos 0 e 1901 até 2155 em 1 byte e mostrá-lo usando 2 ou 4 dígitos. Todos os anos de 2 dígitos são considerados estar na faixa de 1970 até 2069; o que significa que se você armazenar 01 em uma coluna YEAR, O Servidor MySQL o tratará como 2001.

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 Seção 6.2.2.1, “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.