segunda-feira, 21 de outubro de 2013

MySQL



Trabalho - Banco de Dados MySQL



Nomes: Charleane M. da Silva
Eduarda M. L. Belessa 

História Evolutiva
O MySQL teve origem quando os desenvolvedores David Axmark, Allan Larsson e Michael Widenius, na década de 90, precisaram de uma interface SQL compatível com as rotinas ISAM que utilizavam em suas aplicações e tabelas. Em um primeiro momento, tentaram utilizar a API mSQL, contudo a API não era tão rápida quanto eles precisavam, pois utilizavam rotinas de baixo nível (mais rápidas que rotinas normais). Utilizando a API do mSQL, escreveram em C e C++ uma nova API que deu origem ao MySQL.
Após alguns anos, a MySQL AB (companhia dos fundadores e principais desenvolvedores) designou-se na necessidade de um banco de dados relacional que pudesse tratar grandes quantidades de dados em máquinas de custo relativamente barato. No dia 16 de Janeiro de 2008, a MySQL AB foi adquirida pela Sun Microsystems, por US$ 1 bilhão, um preço jamais visto no setor das licenças livres. No dia 20 de Abril de 2009, foi anunciado que a Oracle compraria a Sun Microsystems etodos o seus produtos, incluindo o MySQL. Após investigações da Comissão Europeia sobre a aquisição para evitar formação de monopólios no mercado, a compra foi autorizada e hoje a Sun faz parte da Oracle.
Atualmente o MySQL é um dos bancos de dados relacionais mais rápidos do mercado, que apresenta quase todas as funcionalidades dos grandes bancos de dados. É uma linguagem simples em que você facilmente pode gravar, alterar e recuperar informações num web site com segurança e rapidez. O sucesso deve-se em grande medida à fácil integração com o PHP incluído, quase que obrigatoriedade, nos pacotes de hospedagem de sites da Internet oferecidos atualmente.

Licença de Uso 
O MySQL é desenvolvido e distribuído por meio de duas licenças que irão depender do tipo de uso da ferramenta. Na maioria dos casos, seu uso é livre. Contudo, vale á pena conhecer as duas possíveis licenças do MySQL.
A primeira, software livre, é baseada nas cláusulas da GNU-GPL (General PublicLicence), a qual estabelece o que se pode ou não fazer com a ferramenta e demais recursos. Além do programa, o seu código-fonte também é disponibilizado para que qualquer pessoa possa adaptá-lo às suas necessidades; contudo, todas essas situações serão tratadas e detalhadas na licença GNU-GPL.
Basicamente, a licença do tipo GNU-GPL baseia-se nos seguintes princípios:
  •  Utilização: Permite utilizar o software para qualquer propósito.
  •   Distribuição: Permite a livre distribuição do software entre todas as pessoas.
  •   Didática: Permite que seu funcionamento seja estudado a partir de seu código-fonte.
  •   Colaboração: Permite que seu código-fonte seja alterado para evoluir a ferramenta, desde que seu novo código-fonte continue sendo livre seguindo essa licença.
A segunda licença é comercial. Para algumas situações sobre como embutir o MySQL dentro de suas aplicações comerciais (OEMs, ou seja, fora dos termos da GNU-GPL), obter suporte diferenciado, ou obter pacotes com mais ferramentas, essa licença pode ser mais apropriada.

Características 
Servidor Multithreads, cria múltiplos processos de execução em um único processo para atender vários pedidos de usuários ao mesmo tempo.

  •   Portabilidade eAPI’s para C, C++, Java, Perl, PHP, Phyton e TCL;
  •   Privilégio de password ser bastante flexíveis, permitindo inclusive a validação por “host”;
  •   Possui algoritmos de criptografia, fornecendo assim segurança aos dados gravados nas tabelas;
  •   Permite conexões via TCP/IP;
  •   Permite acesso via ODBC;
  •  Possui instruções para extração de informações relativas a tabelas, bancos, índices.

Capacidade 
Lida com bancos de dados enormes, existe usuários que utilizam o Servidor MySQL com bancos de dados que contém 50.000.000 registros e 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.

Versões de SQL
O MySQL tem como base o padrão de SQL-92 ODBC levels 0-3.51.
Um dos principais objetivos da ferramenta é evoluir para utilizar como base o padrão SQL-99. Contudo, nem todos os códigos para essa conversão poderiam ser implementados na versão atual, sem que se abrisse mão da velocidade e confiança do banco de dados. Isto se deve ao fato de alguns comandos do padrão SQL-99 demandarem maior processamento de dados, o que poderia comprometer algumas das principais características da ferramenta. Entre os próximos recursos do programa, faz parte atingir o objetivo de ter o padrão SQL-99 como base (o qual já é utilizado em grande parte), mantendo sua capacidade de processamento e segurança.

Novidades na Versão 5
A cada nova versão do MySQL, novas funcionalidades são implementadas, mas foi com a versão 5 que o programa alcançou definitivamente sua posição como concorrente de grandes bancos de dados existentes no mercado.
Os recursos que ainda faltavam no MySQL foram implementados e disponibilizados nesta versão. Dentre as principais demandas existentes e atendidas, podemos citar as stored procedures e triggers, que são blocos de código armazenados no banco de dados, geralmente de execuções de alta freqüência, ou acionadas por eventos. A seguir, um breve resumo das principais funcionalidades incorporadas no MySQL 5.

Stored Procedures 
Dentre as funcionalidades mais aguardadas para o MySQL, sem dúvida podemos citar as stored procedures, que são blocos de código SQL armazenados no servidor, os quais são chamados a partir das aplicações integradas ao banco de dados.
Seu conceito foi padronizado pela primeira vez na versão SQL-99. De lá para cá, os grandes bancos de dados têm disponibilizado este recurso, que além de centralizar códigos para não haver redundância deles em diversas partes do sistema, também aumenta a velocidade de processamento das consultas e torna os códigos das aplicações mais claros e simples, pois várias consistências sobre dados e relacionamentos podem ser feitas no lado do servidor de banco de dados. A versão implementada no MySQL baseia-se no modelo ANSI 2003.

Triggers
Assim como as stored procedures, os triggers são blocos de código SQL armazenados no servidor, mas não para serem invocados pela aplicação integrada ao banco de dados, e sim ser iniciados a partir de algum evento pré-cadastrado que ocorre no sistema (determinado horário do dia no caso dos eventschedulers, antes de uma inserção ou alteração, entre outras possibilidades).

Vantagens
  •  Possui código aberto e funciona em um grande número de sistemas operacionais: Windows, Linux, FreeBSD, BSDI, Solaris, Mac OS X, SunOS, SGI, etc;
  •   Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Python, Perl, PHP e Ruby);
  •   Pouco exigente quanto á recursos de hardware;
  •   Seu desempenho é multi-tarefa e multi-usuário;
  •   Facilidade de instalação e administração do banco de dados;
  •  Menor TCO - Implante o MySQL para aplicações essenciais com economias significativas nos custos em relação ao Microsoft SQL Server;
  • Escalabilidade e desempenho - Atenda às necessidades de escalabilidade e desempenho dos web sites com mais tráfego e aplicações mais exigentes;
  •   Suporte à produção - Oracle Premier Support ajuda a reduzir o custo total e os riscos de propriedade de soluções MySQL.


Desvantagens
  •   Um problema que não sabemos discernir ao certo se pode ou não ser considerado desvantagem, é que, o MySQL está em constante desenvolvimento. Embora seja um dos bancos de dados mais utilizados no mundo, ainda encontra alguns bugs, que são resolvidos com atualizações frequentes;
  •   Não suporta transações (Commit, rollback, níveis de isolamento);
  •   Não executa backup consistente com a base de dados no ar e se atualizações estiverem sendo efetuadas;
  •   Não tem recurso contra falhas no desligamento do banco durante a atualização de dados;
  •   Possui menor comunidade de usuários, sendo assim, menor número de programas suportados;
  •   Não verifica as restrições de integridade referencial por default.
Alguns Clientes
Yahoo! Finance, NASA, Lucent Technologies, Motorola, Google, SiliconGrafics, XEROX, Sony Pictures, Friendster, Banco Bradesco, Dataprev, HP-Compaq, Nokia, Telemar,Suzuki, Hyperion, Dataprev, Lufthansa, U.S. Army, U.S. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems, MP3.com, Texas Instruments, Wikipédia, e pode encontrar muitas outras empresas.

Algumas Premiações
  •   Votado para o "Melhor Gerenciamento de Dados" no 2011ImpactAwards do php|architect;
  •   Votado com o "Melhor Banco de Dados" pelo ChoiceAwards 2011 do Linux Journal Reader;
  •   Nomeado um dos 10 Melhores Produtos de Código Aberto de 2011 pela CRN;
  •   Nomeado um dos 10 Melhores no Hall da Fama dos Códigos Abertos da InfoWorld;
  •   As principais propriedades da Web são escaláveis com êxito o MySQL;
  •   Mais de 2.000 ISVs e OEMs confiam o sucesso de seus produtos e negócios ao MySQL;
  •   Empresas modernas nos setores de Telecomunicações e Web implantam aplicativos altamente disponíveis no MySQL Cluster.
  •  Entre outras.

Referências:
www.novateceditora.com.br/livros/mysqlcompleto/capitulo8575221035.pdf