BREVE HISTÓRIA DO MYSQL O MySQL surgiu a partir da

Propaganda
BREVE HISTÓRIA DO MYSQL
O MySQL surgiu a partir da necessidade da equipe que criou o SGBD, de utilizar algum
mecanismo que permitisse a conexão de tabelas criadas na linguagem SQL para um
determinado fim. A princípio, o grupo iria utilizar o mSQL, mas logo perceberam que
esta ferramenta não era rápida o suficiente para atender às necessidades do projeto. O
jeito foi criar uma solução própria. Nascia o MySQL.
O MySQL foi criado por Michael Widenius na companhia suíça TcX.Por volta de 1979
Michael desenvolveu um banco de dados chamado UNIREG, sendo rescritos em várias
linguagens desde então" [YAR 99]. Em 1994, a empresa TcX começou o
desenvolvimento de aplicações baseadas na Web, tendo como base o banco UNIREG,
porém esse banco possuía muito "overhead" para obter sucesso em uma aplicação para
geração de páginas dinâmicas na Web. Então a empresa TcX começou a procurar por
outro banco o mSQL, uma ferramenta baseada em SQL mas com características pobres
não possuindo por exemplo suporte a índices, e com desempenho inferior ao UNIREG.
Foi então que o desenvolvedor do banco UNIREG contatou o David Hughes criador do
mSQL, para saber do interesse dele em unir os dois bancos. Sendo positivo o interesse
de David , a empresa TcX resolveu desenvolver um novo banco, mas mantendo ao
máximo a compatibilidade com mSQL. TcX foi esperta o suficiente para não reinventar
o que já estava bem feito, ela construiu seu servidor baseado na estrutura que já estava
montada do UNIREG e utilizou grande número de utilitários escritas para mSQL e fez
API's para o novo servidor praticamente iguais ao mSQL. Como resultado usuários do
mSQL que decidissem mudar para o novo servidor da TcX, teriam apenas que fazer
pequenas e simples mudanças nos códigos existentes.
Então foi em maio de 1995 que, definitivamente, a primeira versão do MySQL foi
lançada. Um dos parceiros da TcX sugeriu a distribuição do servidor na Internet, o
objetivo disso era a utilização de um modelo pioneiro desenvolvido por Aladdin Peter
Deutsch. O resultado foi um maior flexibilidade em sem "copyright", que fez do
MySQL mais difundido gratuitamente do que mSQL.
INTRODUÇÃO
O MySQl é o mais popular sistema de gerenciamento de banco de dados SQL Open
Source. (há também a versão Enterprise que oferece suporte e algumas ferramentas
melhores e mais otimizadas, que custa em média US$ 595 ao ano.) É 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. Empresas como
Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics e Texas Instruments
usam o MySQL em aplicações de missão crítica. A Wikipédia é um exemplo de
utilização do MySQL em sites de grande audiência.O programa MySQL (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.Sua modelagem de dados é
Relacional. Toda modelagem e relacionamento do banco de dados podem ser feitas com
uma ferramenta gratuita, chamada Worbench.
O MySQL Workbench é uma ferramenta gráfica para modelagem de dados. Esta
ferramenta possibilita trabalhar diretamente com objetos schema, além de fazer a
separação do modelo lógico do catálogo de banco de dados.
Toda a criação dos relacionamentos entre as tabelas podem ser baseados em chaves
estrangeiras. Outro recurso que a ferramenta possibilita é realizar a engenharia reversa
de esquemas do banco de dados, bem como gerar todos os scripts em SQL.
MySQL Workbench apresenta opções que não o deixam para trás em comparação aos
outros programas para modelagem de dados. A ferramenta faz sincronia dos modelos de
banco de dados, importa e exporta modelos do DBDesigner4, bem como exporta scripts
SQL.
A modelagem dos seus bancos de dados pode assumir níveis conceituais, lógicos e
físicos. MySQL Workbench apresenta uma arquitetura extensível, sendo possível
visualizar
a
representação
de
tabelas,
funções,
entre
outros.
Há ainda o MySQL Gui Tools que é um poderoso e completo pacote de ferramentas
para administração e manutenção de bancos de dados MySQL com interfaces gráficas.
O Gui Tools é uma ferramenta inteiramente gratuita.
O MySQL Gui Tools inclui as seguintes ferramentas:

MySQL Migration Toolkit: é uma framework que possibilita a rápida
migração de seus bancos de dados MySQL. Usando um Assistente de ajuda para
utilização, o MySQL Migration Toolkit implementa uma metodologia
comprovada e o executa através de medidas necessárias para concluir com êxito
uma migração de um projeto de banco de dados;

MySQL Administrator: ferramenta visual que facilita a tarefa de administração
e controle do seu ambienteMySQL, ganhando significativamente melhor
visibilidade das suas bases de dados que estiverem em funcionamento. MySQL
Administrator agora integra gestão e de manutenção de banco de dados em um
único ambiente, com uma clara e intuitiva interface gráfica.

MySQL Query Browser: é a mais fácil ferramenta visual para criação,
execução e otimização de consultas SQL para o seu MySQL Database Server. O
MySQL Query Browser dá-lhe um conjunto completo de ferramentas para
arrastar e soltar, conseguindo assim, construir visualmente, analisés e
gerenciamento de suas queries (consultas).
Principais Características do MySQL
A seguinte lista descreve algumas das características mais importantes do Programa de
Banco de Dados MySQL.

Portabilidade e
 Escrito em C e C++.
 Testado com um amplo faixa de compiladores diferentes.
 Funciona em diversas plataformas, como Windows, Mac OS e Linux.
 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.
 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
 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.
 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.
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 usuários
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.
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 Operacional
Linux-Intel 32 bit
Linux-Alpha
Solaris 2.5.1
Solaris 2.6
Solaris 2.7 Intel
Solaris 2.7 ULTRA-SPARC
Limite do tamanho do arquivo
2G, muito mais usando LFS
8T (?)
2G (É possível 4GB com patch)
4G (pode ser alterado com parâmetro)
4G
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"
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.
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. Você
pode também alterar isso mais tarde com 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.
 Outra opção para contornar o limite de tamanho de arquivos do sistema
operacional para arquivos de dados MyISAM usando a opção RAID.
 O MySQL incluí uma biblioteca MERGE que permite acessar uma coleção de
tabelas idênticas como se fosse apenas uma.

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.

Localização
 O servidor pode apresentar mensagem de erros aos clientes em várias
línguas..
 Suporte total para vários conjuntos de caracteres, que incluem ISO-88591 (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.
 Todos os programas MySQL podem ser chamados com as opções --help
ou -? para obter ajuda online.
Com tantas vantagens e ferramentas gratuitas, você ainda escolheria outro
SGDB para sua empresa?
Download