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.
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
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:
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:
Se sua tabela grande será somente leitura, você poderá
usar o myisampack para unir e comprimir
várias tabelas em uma. mysisampack
normalmente comprime uma tabela em pelo menos 50%, portanto
você pode obter, com isso, tabelas muito maiores. Veja mais informações sobre isto na Seção 4.8.4, “myisampack , O Gerador de Tabelas Compactadas de Somente Leitura do MySQL”.
Outra opção para contornar o limite de tamanho de arquivos
do sistema operacional para arquivos de dados
MyISAM usando a opção
RAID . Veja mais informações sobre isto na Seção 6.5.3, “Sintaxe CREATE TABLE ”.
O MySQL incluí uma biblioteca
MERGE que permite acessar uma coleção
de tabelas idênticas como se fosse apenas uma. Veja mais informações sobre isto na Seção 7.2, “Tabelas MERGE ”.
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.
|