Você está na página 1de 41

AVALIAO TCNICA DO MySQL

31 de Maio de 2001

Gabriela Ferreira Drumond Valria de Castro Paula GOT - Gerncia de Suporte Tcnico (suporte@prodemge.gov.br) STO - Superintendncia de Operaes e Suporte DTT Diretoria Tcnica

PRODEMGE

PRODEMGE

Sumrio
INTRODUO 4

RESULTADOS E RECOMENDAES

ANEXO I - METODOLOGIA UTILIZADA E MECANISMO DE PONTUAO 1. 2. APRESENTAO DA METODOLOGIA MECANISMO DE PONTUAO

7 7 8 10 10 10 11 12 12 13 13 14 16 16 16 18 18 19 20 20 20 21 22 22 22 23 25 26 26 26 27 31 34 34 35 37
2

ANEXO II - TABELA DE AVALIAO DO PRODUTO 1. CARACTERSTICAS GERAIS DO PRODUTO IDENTIFICAO DO PRODUTO AMBIENTE OPERACIONAL 2. FUNCIONALIDADE CARACTERSTICAS BSICAS DO SGBD CARACTERSTICAS RELACIONAIS LIMITAES DO PRODUTO INTERFACE COM O SGBD INDEPENDNCIA DE DADOS INTEGRIDADE DE DADOS ORGANIZAO FSICA DOS DADOS 3. SEGURANA SEGURANA DE ACESSO SEGURANA FSICA 4. OPERACIONALIDADE DESEMPENHO FACILIDADES / FERRAMENTAS PARA ADMINISTRAO DE BANCO DE DADOS DIRETRIO DE DADOS/CATLOGO DISPONIBILIDADE TRANSPARNCIA E COMPARTILHAMENTO DE INFORMAES TENDNCIAS E EVOLUES 5. FORNECEDOR 6. CUSTO ANEXO III RESULTADO DOS TESTES DE AVALIAO DO PRODUTO 1. 2. 3. 4. 5. 6. 7. AMBIENTE OPERACIONAL DE TESTE TESTES DE CARGA PROCEDIMENTOS DE INSTALAO UTILITRIOS BACKUP E RESTORE FERRAMENTAS DE ADMINISTRAO REPLICAO NO MYSQL

ANEXO IV NOTA DO PRODUTO


AVALIAO TCNICA DO MySQL

PRODEMGE

1. 2. 3. 4. 5. 6. 7.

NOTA DO GRUPO CARACTERSTICAS GERAIS DO PRODUTO NOTA DO GRUPO FUNCIONALIDADE NOTA DO GRUPO SEGURANA NOTA DO GRUPO OPERACIONALIDADE NOTA DO GRUPO FORNECEDOR NOTA DO GRUPO CUSTO NOTA FINAL DO PRODUTO

37 38 39 40 41 41 41

AVALIAO TCNICA DO MySQL

PRODEMGE

INTRODUO
Considerando a crescente aceitao de software livre e fonte aberto para o desenvolvimento de solues tecnolgicas, a PRODEMGE como empresa prestadora de solues de informtica para o Estado de Minas Gerais tem se preparado para acompanhar esta tendncia. Considerando ainda que a absoro de uma nova tecnologia por qualquer empresa impe dificuldades das mais variadas, razovel supor que as primeiras solues oferecidas pela PRODEMGE nesse novo enfoque ser aquelas referentes s demandas para o desenvolvimento de novos sistemas. Sendo assim, o MySQL foi o candidato para esse trabalho de avaliao, o que no exclui a participao de outros produtos, em trabalhos futuros. importante ressaltar que a adoo de software livre no contexto da administrao pblica, representa economia de recursos, reduo de burocracia e independncia para buscar solues de tecnologia de informao sem a vinculao a este ou aquele fornecedor de software proprietrio. Este documento apresenta os resultados da avaliao tcnica do MySQL. Este trabalho de avaliao teve como principais objetivos: permitir que tcnicos da PRODEMGE obtenham cultura e conhecimento desse SGBD relacional; apresentar um relatrio contendo as caractersticas do produto e sua aplicabilidade e colaborar com as diretrizes de reduo de custo da empresa ao facilitar a sua implantao na Companhia e em nossos Clientes.
19/04/01 28/02/01 09/01/01 20/11/00 Data Distribuio 01/10/00 12/08/00 23/06/00 04/05/00 15/03/00 25/01/00 06/12/99 17/10/99 28/08/99 09/07/99 3.23.29a-gamma 3.22.27 3.23.31 3.23.33 3.23.35 3.23.21-beta 3.23.23-beta 3.23.25-beta 3.23.27-beta 3.23.37

Verses do MySQL

Grfico 1 Distribuio de atualizaes do MySQL

Nesse sentido, o trabalho em questo no pretende ser exaustivo no seu escopo tanto a nvel de detalhes da avaliao funcional e dos testes em que o produto foi submetido quanto na elaborao de procedimentos de instalao, customizao e administrao do produto. Mesmo porque em um
AVALIAO TCNICA DO MySQL 4

PRODEMGE

perodo de 3 meses (janeiro-abril) foram disponibilizadas 8 atualizaes do produto (quase 3 atualizaes em um ms), conforme pode ser visualizado no Grfico 1.

RESULTADOS E RECOMENDAES
O Anexo I deste documento descreve a metodologia utilizada neste trabalho de avaliao e o mecanismo de pontuao adotado. Os resultados da avaliao esto descritos no Anexo II. No Anexo III esto descritos os resultados dos testes de avaliao do produto. Finalmente o Anexo IV apresenta a pontuao detalhada que o MySQL recebeu nessa avaliao. A nota final obtida pelo MySQL na avaliao foi de 1,55 em 3. Esta nota representa o nvel de qualidade do produto podendo portanto ser considerado utilizvel na PRODEMGE e pelos seus clientes. No entanto, devido a diversidade das demandas, recomendvel que a adoo do MySQL seja analisada caso-a-caso, de acordo com caractersticas especficas de cada aplicao, observando os pontos fortes e fracos do produto, de forma a adequar as necessidades de cada soluo tecnolgica e explorar ao mximo o potencial do produto. De uma forma abreviada pode-se fazer a seguinte anlise dos pontos fortes, fracos e limitaes do MySQL: Pontos Fortes: Natureza econmica. O MySQL gratuito para a maioria da aplicaes e pode ser obtido tanto na Internet quanto nas distribuies do Linux Conectiva e RedHat. MySQL foi projetado pela empresa sueca TcX para aplicaes baseado na WEB, cujos dados so mantidos por um pequeno conjunto de programas. O MySQL est atualmente na verso 3 e possui a verso 4 anunciada. Em 3 meses a MySQL AB, atual mantenedor do produto, disponibilizou 8 atualizaes da verso 3 do MySQL. Um dos patrocinadores do MySQL a NuSphere Corporation, formada para prover produtos open source e servios. Esta empresa comercializa o MySQL alm de prover suporte e treinamento. A instalao do produto muito simples a partir dos pacotes binrios. A administrao do produto simples e fcil. O MySQL possui um manual de referncia bem completo sobre o produto que se encontra disponvel no site da web http://www.mysql.com. O manual atualizado a cada alterao do produto que disponibilizada. Aceita programao em C, Perl, Java (via Java Database Connectivity JDBC) e Phyton, assim como PHP e outras linguagens via ODBC.

Pontos Fracos: Pouca maturidade do produto, (lanado em maio de 1995) e falta de garantia de evoluo do cdigo, por no ter pretenses comerciais. No momento de instalao do MySQL utilizando os pacotes binrios no possvel personalizar os diretrios para instalao do produto, os seus binrios j vem com uma configurao genrica. Os executveis, bancos de dados, controle de ativao do servio e as funes e bibliotecas so instaladas em diretrios padres.

AVALIAO TCNICA DO MySQL

PRODEMGE

As ferramentas que permitem administrar a base de dados atravs de uma interface grfica, no possuem a opo de modelar. Infelizmente falta na comunidade OpenSource ferramentas CASE e RAD que possuam interface com o MySQL. De uma forma geral no existem muitos produtos projetados para usar o MySQL, como por exemplo ferramentas de armazm de informao. Algumas das ferramentas que poderiam acessar o MySQL via ODBC podem no funcionar satisfatriamente, como foi o caso do Designer/2000.

Limitaes: no prov subselects; por defautl trabalha em modo autocommit, isto , no possui suporte a transaes; no possui stored procedures; no possui triggers; no implementa a integridade referencial; no suporta views; no suporta lock de registro por default; no suporta pesquisa em dois ndices diferentes utilizando OR; no UNIX os nomes de tabelas e banco de dados so case sensite; no suporta atributos obrigatrios.

O objetivo principal deste trabalho de avaliao foi a obteno de cultura e conhecimento do MySQL por tcnicos da PRODEMGE. A continuidade do mesmo poder ser feita em vrios outros projetos. Algumas sugestes so: testar as opes de controle de transaes (ACID) oferecidas por terceiros para o MySQL tais como o BDB Berkeley database tables, innoDB e Gemini; ficar atento s atualizaes do MySQL devido a sua constante evoluo, mantendo o produto instalado na PRODEMGE na verso mais estvel e com o menor nmero de erros reportados; comparar algumas das funcionalidades do MySQL com as dos sistemas gerenciadores de banco relacional adotados na Companhia (ORACLE, SQL SERVER e DB2 / OS 390); prospectar e avaliar outros SGBDs open source e free tais como o PostgreSQL, mSQL, GNU SQL e BeagleSQL; utilizar o MySQL em um projeto piloto visando levantar as dificuldades e facilidades de seu uso, bem como definir padres para a sua utilizao na PRODEMGE e clientes; de acordo com o know-how adquirido na execuo do projeto piloto acima citado, relacionar as aplicaes WEB com potencial para serem portadas para o MySQL.

AVALIAO TCNICA DO MySQL

PRODEMGE

ANEXO I - Metodologia Utilizada e Mecanismo de Pontuao


1. APRESENTAO DA METODOLOGIA
Este trabalho de avaliao foi executado segundo uma simplificao da metodologia que vem sendo adotada na PRODEMGE em trabalhos similares. Foram utilizados como referncia os seguintes documentos: Avaliao Tcnica de Sistema de Gerncia de Banco de Dados para Ambiente Mainframe IBM ou Compatvel na Prodemge Outubro/89 e Avaliao de Ferramentas para Desenvolvimento de Sistemas Cliente/Servidor Outubro/95. Alm desses trabalhos foram considerados tambm o Anexo 2A constante do edital de licitao para aquisio de Sistemas Gerenciadores de Banco de Dados Relacionais para a plataforma UNIX, elaborada em 1996 pela PRODEMGE. O objetivo da utilizao dessa metodologia basicamente: Identificar e caracterizar o produto, seus fabricantes e fornecedores; Sistematizar a avaliao com critrios pr-estabelecidos; Classificar de forma qualitativa o produto avaliado segundo os critrios de avaliao utilizados.

No caso deste trabalho, a metodologia ser utilizada para avaliar as caractersticas gerais, funcionalidade, segurana, operacionalidade, fornecedor e custo do MySQL. Os procedimentos a serem adotados para a avaliao sero basicamente os seguintes: testes de mquina, anlise direcionada da documentao do produto e pesquisas na Internet. O trabalho ser segmentado em 7 (sete) etapas, como mostra a figura a seguir, e se encontram descritos no prximo item.

Definio da Estratgia da Avaliao Definio dos Parmetros


Definio do Escopo da Avaliao

Anlise da Documentao Testes em Mquina Anlise e Contabilizao dos Resultados Relatrio Final
Figura 1 Etapas para Avaliao do MySQL

O objetivo da etapa de Definio da Estratgia da Avaliao planejar e organizar a execuo do trabalho de avaliao. Esse planejamento consiste da escolha dos mecanismos a serem utilizados na avaliao e de uma estimativa de recursos humanos, materiais e computacionais necessrios.

AVALIAO TCNICA DO MySQL

PRODEMGE

A etapa de Definio dos Parmetros tem por finalidade definir e relacionar os parmetros que sero utilizados na avaliao e organiz-los em grupos funcionais. A prxima etapa a de Definio do Escopo de Avaliao que consiste na definio, para cada parmetro previamente definido, de um peso que represente quantitativamente a sua importncia relativa no mbito global da avaliao. Esses pesos representam a qualidade e maturidade tecnolgica do produto. A etapa de Anlise da Documentao consiste da realizao de uma pesquisa bibliogrfica da literatura tcnica especializada e da anlise da documentao do produto. A pesquisa totalmente direcionada pelos parmetros relacionados definidos na etapa de definio de parmetros. A finalidade da etapa de Testes de Mquina consiste na instalao, elaborao e conduo de teste dos produtos instalados em um ambiente padro e controlado. Esta uma caracterstica importante para garantir, tanto quanto possvel, a confiabilidade dos resultados obtidos. A partir da anlise da documentao e dos testes de mquina sero dados nota para os itens pontuveis e ser feita a compilao dos resultados, que corresponde a etapa de Anlise e Contabilizao dos Resultados. Finalmente, a ltima etapa consiste na elaborao do relatrio final de avaliao e passagem de conhecimento.

2. MECANISMO DE PONTUAO
A metodologia adotada representa um processo sistemtico de avaliao que utiliza um conjunto de parmetros organizados em 6 grupos funcionais. Os grupos funcionais so divididos em subgrupos, que se encontram apresentados na Tabela 1, a seguir. Grupos 1. Caractersticas Gerais do Produto 2. Funcionalidade Subgrupos Identificao do Produto Ambiente Operacional Caractersticas Bsicas do SGBD Caractersticas relacionais Limitaes do Produto Interface com o SGBD Independncia de Dados Integridade de Dados Organizao Fsica dos Dados Segurana de Acesso Segurana Fsica Desempenho Facilidades / Ferramentas para Administrao de Banco de Dados Diretrio de Dados / Catlogo Disponibilidade Transparncia e Compartilhamento de Informaes Tendncias e Evolues -

3. Segurana 4. Operacionalidade

5. Fornecedor 6. Custo

Tabela 1 - Grupos e Subgrupos

AVALIAO TCNICA DO MySQL

PRODEMGE

Os parmetros, subgrupos e grupos funcionais esto associados a um peso que reflete o nvel de importncia relativa do mesmo na avaliao e uma nota que representa o nvel de qualidade do produto naquele item. No caso desse trabalho os pesos e as notas atribudos podem assumir um dos valores mostrados na Tabela 2, abaixo.
Valor do Peso 1 2 3 D1 Importncia ou Prioridade Baixa Mdia Alta Descritiva

Valor da Nota Significado 0 Item ruim ou incompleto 1 Item regular 2 Item bom 3 Item muito bom ou completo Tabela 2 Valores de peso e nota

Os pesos dos parmetros, subgrupos e grupos funcionais so atribudos de acordo com a importncia relativa dos mesmos no contexto da avaliao. As notas dos parmetros tambm so atribudas, de acordo com o nvel de qualidade do produto, enquanto as notas dos subgrupos, grupos funcionais e do produto so calculadas. A nota de um subgrupo a mdia ponderada das notas dos parmetros daquele subgrupo. A nota de um grupo funcional a mdia ponderada das notas do subgrupo e finalmente a nota do produto a mdia ponderada das notas dos grupos. A Equao 1 abaixo representa genericamente o clculo das notas.

Nsgp = (Pi x Ni)


--------------

Equao 1 Clculo das Notas

No clculo da mdia ponderada de um subgrupo, Pi representa os pesos e parmetros pertencentes ao subgrupo que se est calculando a nota. No clculo grupo funcional, Pi representa os pesos e Ni as notas calculadas dos subgrupos grupo funcional que se est calculando a nota. Finalmente no clculo da nota representa os pesos e Ni as notas calculadas dos grupos funcionais.

O parmetro no possui importncia na avaliao. utilizado apenas para descrever a situao do produto. 9

AVALIAO TCNICA DO MySQL

(Pi)

Ni as notas dos da nota de um pertencentes ao do produto, Pi

PRODEMGE

ANEXO II - Tabela de Avaliao do Produto


1. CARACTERSTICAS GERAIS DO PRODUTO Identificao do produto
Nome Fabricante MySQL O MySQL um software livre. O mesmo se encontra licenciado no GNU GENERAL PUBLIC LICENSE (http://www.gnu.org/). A licena foi registrada em 17 Outubro de 2000. MySQL AB. Os fundadores e principais desenvolvedores so os proprietrios e administradores desta companhia sueca. A MySQL AB possui os direitos autorais dos fontes do MySQL, bem como a marca registrada. NuSphere, Abriasoft O MySQL vm na distribuio do Linux da Conectiva, que uma empresa Brasileira. A Conectiva possui escritrio em Belo Horizonte. 1995 MySQL verso 3.23.22 beta, 3.23.32 e 3.23.37 A verso considerada estvel a 3.23 que foi liberada em 23 Janeiro 2001. A verso mais atual at o presente momento (Maio/2001) a 3.23.38. Os trabalhos para a verso 4.0 do MySQL j foram iniciados. C e C++ O site do MySQL (http://www.mysql.com) prov as ltimas informaes sobre o produto. A documentao disponvel no site composta de uma lista de sites relacionados ao assunto, livros didticos e o manual MySQL Reference. Este manual compreende informaes sobre o MySQL, sintaxe do SQL, procedimentos de instalao, comandos para criao de objetos e recursos para administrao do banco. Pode-se citar os seguintes livros relacionados ao MySQL:
MySQL, editora: New Riders, autor: Paul DuBois, dezembro de 1999; MySQL e msql, editora: O'Reilly, autor: Randy Jay Yarger, George Reese & Tim King, julho de 1999; Sams' Teach Yourself MySQL in 21 Days, editora: Prima Communications, Inc, janeiro de 2000; E-Commerce Solutions with MySQL, janeiro de 2000; MySQL and PHP from Scratch, editora: Que, setembro de 2000; Professional MySQL Programming, editora: Publisher Wrox Press, Inc., 2001.

Mantenedor

Patrocinadores Fornecedor no Brasil Fornecedor em MG Ano de lanamento Verses avaliadas ltima verso disponvel

Linguagem fonte Principais usurios no Brasil Principais usurios em MG Documentao do produto

Para a avaliao do produto foram utilizados o Manual MySQL Reference, de 19 de Janeiro de 2001 da verso do produto 3.23.31, e o livro MySQL e mSQL da Editora OReilly, em portugus.

AVALIAO TCNICA DO MySQL

10

PRODEMGE

Ambiente Operacional
Sistemas operacionais O MySQL pode ser compilado com sucesso nos seguintes sistemas operacionais/pacotes de threads: AIX 4.x com threads nativas; BSDI 2.x com o pacote MIT-pthreads; BSDI 3.0, 3.1 e 4.x com threads nativas; DEC Unix 4.x com threads nativas; FreeBSD 2.x com o pacote MIT-pthreads; FreeBSD 3.x e 4.x com threads nativas; HP-UX 10.20 com o pacote MIT-pthreads; HP-UX 11.x com threads nativas; Linux 2.0+ com LinuxThreads 0.7.1+ ou glibc 2.0.7+; Mac OS X Server;. NetBSD 1.3/1.4 Intel e NetBSD 1.3 Alpha (Precisa do GNU make); OpenBSD > 2.5 com threads nativas e OpenBSD < 2.5 com o pacote MIT-pthreads; OS/2 Warp 3, FixPack 29 e OS/2 Warp 4, FixPack 4; SGI Irix 6.x com threads nativas; Solaris 2.5 e acima com threads nativas na SPARC e x86; SunOS 4.x com o pacote MIT-pthreads; SCO OpenServer com o pacote FSU Pthreads; SCO UnixWare 7.0.1; Tru64 Unix; Win95, Win98, NT, e Win2000. O MySQL possui dois tipos de distribuio: binrio e cdigofonte. Os pacotes binrios pr-compilados economizam tempo na instalao porm limitam a personalizao que pode ser feita na instalao do produto. Para instalar a partir do fonte necessrio um compilador C. No foram encontrados requisitos mnimos de hardware. Em termos de rea em disco o MySQL ocupa aproximadamente 30 Mb.

Distribuio do MySQL

Requisitos de hardware

Requisitos de software

Requisitos necessrios:
no mnimo a Verso 2.0 para o ambiente Linux; GNU gunzip para a descompresso do arquivo de instalao; GNU tar para descompactar os arquivos de instalao; Compilador ANSI C++ para a instalao dos fontes; GNU make 3.75 no mnimo para instalao dos fontes; Verso Perl 5.004_03 ou mais recente para a utilizao de Perl.

Correo do produto

As correes do produto so colocadas nas listas de discusso do MySQL ou na rea de patches do site
http://download.sourceforge.net/pub/mirrors/mysql/Downloads/Patches/

Character set utilizado

Por default o MySQL utiliza o ISO-8859-1

AVALIAO TCNICA DO MySQL

11

PRODEMGE

2. FUNCIONALIDADE Caractersticas Bsicas do SGBD


Nvel externo Nvel conceitual Nvel interno Controle de concorrncia No possui vises que do suporte ao nvel externo. Possui suporte ao nvel conceitual atravs dos seguintes objetos: banco de dados, tabela e coluna. Possui suporte atravs da utilizao de ndices. O paradigma default do MySQL atomic operations. Isto significa que quando estiver fazendo uma atualizao ningum pode acessar o dado e no existe rollback automtico. O MySQL no permite leitura suja (dirty read) do dado. No existe a forma declarativa de bloqueio (lock) no nvel de linha ou pgina no MySQL, existe somente no nvel de tabela. O LOCK de tabela pode se de escrita (write) ou leitura (read). No bloqueio de leitura outros usurios podem incluir e ler registros da tabela. Normalmente, no necessrio bloquear tabelas no MySQL, uma vez que um comando de atualizao atmico. Porm atravs do comando LOCK TABLES o MySQL permite emular parcialmente transaes. No possui controle de deadlock para a instalao default do produto.
TINYINT SMALLINT MEDIUMINT INT=INTEGER BIGINT -128 a 127 ou 0 a 255 -32768 a 32768 ou 0 a 65535 -8388608 a 8388607 ou 0 a 16777215 -2147483648 a 2147483647 ou 0 a 4294967295 -9223372036854775808 a 9223372036854775807 ou 0 a 18446744073709551615

Controle de deadlock Tipos de dados

DECIMAL(n,m) NUMERIC(n,m) =DECIMAL(n,m) FLOAT FLOAT(X) DOUBLE REAL = DOUBLE CHAR(m) (0 < m < 255) VARCHAR(m) (0 < m < 255) TINYBLOB, TINYTEXT (0 < m < 255) BLOB, TEXT (0 < m < 65535) MEDIUMBLOB, MEDIUMTEXT (0 < m < 16777215) LONGBLOB, LONGTEXT (0 < m < 4294967297) ENUM(VALUE1, VALUE2, ..) 65535 valores distintos SET(VALUE1, VALUE2, ...) 64 membros no mximo DATE 1000-01-01 a 9999-12-31 DATETIME 1000-01-01 00:00:00 a 9999-12-31 23:59:59 TIME -838:59:59 a 838:59:59 YEAR[(2|4)] 1901 a 2155 (4), 1970 a 2069 (2) TIMESTAMP 1970-01-01 00:00:00 a 2037

AVALIAO TCNICA DO MySQL

12

PRODEMGE

Caractersticas Relacionais
Domnio No suporta o conceito de domnio (CHECK). Implementa dois tipos de dados SET e ENUM que consistem um conjunto de valores pr-definidos. Suporta as seguintes operaes: seleo (SELECT), projeo, juno (JOIN), juno externa, unio, diviso, interseo, diferena e produto cartesiano. A manipulao de dados tratada em termos de conjunto de linhas. Implementa o conceito de chave primria. Aceita o comando para manter compatibilidade com os outros SGBDs porm no implementa. Suporta o conceito de valores nulos.

Operadores Relacionais

Orientao por Tabela Normalizada Chave Primria Chave Estrangeira Valores Nulos

Limitaes do Produto
Tamanho mximo de nomes de objetos Banco de Dados (databases) 64 caracteres; Tabelas (tables) 64 caracteres; Colunas (columns) 64 caracteres; Alias 255 caracteres e Usurios (users) 16 caracteres. 100 (default de instalao) 3398 16 ndices 16 colunas O tamanho mximo de uma chave de ndice de 256 bytes que pode ser alterado na compilao do MySQL. Um teste realizado no MySQL 3.23.22 o tamanho mximo da chave chegou a 500 bytes. O tamanho mximo de uma tabela MySQl depende do Sistema Operacional, conforme relacionado abaixo, pode-se chegar at 8 terabytes: Linux-Intel32 bit 2G, 4G ou maior dependendo da verso do Linux; Linux-Alpha 8T; Solaris 2.5.1 2G (possvel 4G com patch); Solaris 2.6 4G; Solaris 2.7 Intel 4G; Solaris 2.7 ULTRA-SPARC 8T. O MySQL no prov subselects, isto , no permite a realizao de uma juno de uma tabela com ela mesma via comando SQL SELECT.
13

Conexes simultneas Tamanho mximo de uma linha Nmero mximo de linhas por tabela Nmero mximo de colunas por tabela Nmero mximo de ndices por tabela Nmero mximo de colunas por ndice Tamanho mximo de um ndice

Nmero mximo de linhas por banco de dados Tamanho mximo de uma tabela

Outras limitaes

AVALIAO TCNICA DO MySQL

PRODEMGE

Por defautl o MySQL trabalha em modo autocommit, isto , assim que uma atualizao executada, o MySQL a armazena em disco. Se utilizar tabelas BDB Berkeley Data Base, pode-se colocar o MySQL em modo non-autocommit; O MySQL no possui stored procedures nem triggers. A sintaxe FOREIGN KEY no MySQL existe somente para manter compatibilidade com o SQL, mas no implementa a integridade referencial no banco. MySQL no suporta views. No existe lock de registro no MySQL. A pesquisa em dois ndices diferentes utilizando OR ainda no est otimizada no MySQL. No MySQL do UNIX tabelas so case sensite, devendo-se inicializar o banco com o parmetro 0 lower_case_table_names=1 para pass-las para case insensite. Os nomes dos banco de dados no UNIX tambm so case sensitive. As colunas com atributos obrigatrios (NOT NULL) no so checados pelo MySQL, assumido o valor default do tipo do dado.

Interface com o SGBD


Linguagem de manipulao de dados no-procedural Linguagens de Programao Oferece a linguagem SQL (Structured Query Language) O cdigo da API C distribuda com o MySQL. Esta includa na biblioteca mysqlclient e permite que programas em C acessem o banco de dados. A maioria das outras linguagens, a exceo da JAVA, utilizam essa biblioteca para comunicar com o servidor MySQL. DBI um mdulo de interface de banco de dados para Perl. Ele define um conjunto de metdos, variveis e convenes que provem uma interface consistente independente do banco de dados que est sendo utilizado. A interface DBI Perl para o MySQL atualmente DataBase Driver DBD::mysql, que distribudo pelo Symbolstone. Outros opes fornecidas por terceiros so: MySQL Eiffel wrapper, MySQL Java Connectivity (JDBC), MySQL PHP API, MySQL C++ APIs, MySQL Python APIs e MySQL Tcl APIs. O MySQL suporta a linguagem SQL no padro ANSI SQL92 e ODBC 0-2, com algumas extenses, possuindo as seguintes diferenas: -- somente um comentrio se for seguido de espaos em branco; nas colunas VARCHAR os espaos aps o valor so removidos no seu armazenamento; em alguns as colunas CHAR so alteradas para colunas
VARCHAR;

Linguagem nica com recursos para definio (DDL), manipulao (DML) e controle de dados (DCL)

AVALIAO TCNICA DO MySQL

os privilgios de uma tabela no so automaticamente revogados quando a tabela removida, necessrio dar o comando REVOKE explcito para tirar os privilgios da tabela; NULL AND FALSE ser avaliado para NULL e no para
14

PRODEMGE

DDL

aceita os comando DROP coluna e CHANGE atributos e nome de coluna. O MySQL pode ser inicializado com a opo ansi, que altera o seu comportamento. Comandos implementados:
CREATE DATABASE DROP DATABASE CREATE TABLE DROP TABLE ALTER TABLE TRUNCATE nome_da_tabela (para manter compatibilidade com o ORACLE) CREATE INDEX DROP INDEX CREATE FUNCTION/DROP FUNCTION

FALSE;

DML

DCL Outros comandos

Permite a realizao de juno de uma tabela com ela mesma via o comando SQL SELECT. Permite a realizao de uma insero, via comando SQL INSERT, utilizando o resultado de um pesquisa. No implementa o comando unio (UNION) em um comando SQL SELECT. Implementa GRANT e REVOKE (mesmo dando o REVOKE em
alguns casos necessrio fazer a remoo do registro DELETE).
RENAME TABLE OPTIMIZE TABLE CHECK TABLE BACKUP TABLE RESTORE TABLE ANALYZE TABLE REPAIR TABLE SHOW DATABASES [LIKE wild] SHOW [OPEN] TABLES [FROM db_name] [LIKE wild] SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] SHOW INDEX FROM tbl_name [FROM db_name] SHOW TABLE STATUS [FROM db_name] [LIKE wild] SHOW STATUS [LIKE wild] SHOW VARIABLES [LIKE wild] SHOW LOGS SHOW [FULL] PROCESSLIST SHOW GRANTS FOR user SHOW CREATE TABLE table_name SHOW MASTER STATUS SHOW MASTER LOGS SHOW SLAVE STATUS EXPLAIN tbl_name EXPLAIN SELECT select_options {DESCRIBE | DESC} tbl_name {col_name | wild} LOCK TABLES UNLOCK TABLES

AVALIAO TCNICA DO MySQL

15

PRODEMGE

Independncia de Dados
Independncia Fsica de Dados O MySQL permite apenas um determinado nvel de alteraes das estruturas fsicas dos dados sem afetar a viso conceitual. possvel incluir campos novos em uma tabela sem ter que alterar os programas que o acessam. No entanto, no possvel mudar uma tabela de banco de dados (database) sem impactar as aplicaes. O MySQL no oferece o conceito de viso (VIEWS) que permite que alteraes na estrutura lgica do banco de dados no afetem a viso externa dos usurios.

Independncia Lgica de Dados

Integridade de Dados
Integridade Referencial O MySQL no suporta a integridade referencial, assim como no possibilita a implementao da mesma por meio de gatilhos pois tambm no implementa triggers. O MySQL suporta a integridade de entidade definida de forma declarativa com definio de chave primria (primary key) O controle de integridade de domnio no suportado pelo MySQL. O controle de integridade de transaes via comandos SQL COMMIT e ROLLBACK no suportado na instalao default do produto.

Integridade de Entidade Integridade de Domnio Integridade de Transaes

Organizao Fsica dos Dados


Estrutura de Acesso Disponvel Forma de Armazenamento das tabelas e Estruturas de Acesso O MySQL suporta tipos diferentes de ndices, sendo que os mais comuns so o ISAM e MyISAM. Estes usam B-tree. O MySQL suporta dois tipos diferentes de tabelas. Tabelas TST (transaction-safe tables) e NTST (non-transaction-safe tables). AS NTST so as tabelas do tipo MyISAM, ISAM, MERGE e HEAP. Independentemente do tipo de tabela escolhido o MySQL cria um arquivo .frm para cada tabela no qual esto as definies da mesma e de suas colunas. O tipo de tabela MyISAM o default do MySQL. Esse tipo baseado no cdigo ISAM. Os ndices so armazenados em um arquivo com a extenso .MYI e os dados nos arquivos com a extenso .MYD. O tipo MERGE representa uma coleo de tabelas MyISAM que podem ser utilizadas como se fosse uma. As tabelas do tipo MERGE possuem arquivos com extenso .frm, e com extenso .MRG. Este ltimo contm a lista dos ndices (.MYI) que devero ser utilizados como um. O tipo ISAM tende a desaparecer e ser totalmente substitudo pelo MyISAM que uma implementao melhor da mesma coisa. As tabelas HEAP usam ndices HASH e so armazenados na memria. Este tipo de tabela muito usada para tabelas temporrias. Berkeley DB prov a utilizao de COMMIT e ROLLBACK nas transaes. O MySQL no possibilita o armazenamento dos dados (de um banco de dados) em RAW DEVICES.
16

AVALIAO TCNICA DO MySQL

PRODEMGE

Compresso de Dados Recursos para Expanso de Tabelas Reutilizao de Espao na Remoo de Linhas

O nico tipo de compresso de dados suportado pelo MySQL a compresso de tabelas do tipo MyISAM, que ficam ready-only. O tamanho de espao para uma tabela no precisa ser definido. Os registros removidos so mantidos em uma lista encadeada e operaes de insero reutilizam posies de registro antigos. O comando OPTIMIZE TABLE pode ser usado para desfragmentar o arquivo de dados e espao no usado. Este comando funciona para os tipos de tabelas MyISAM e BDB.
Tipo da coluna TINYINT SMALLINT MEDIUMINT INT INTEGER BIGINT FLOAT(X) FLOAT DOUBLE DOUBLE PRECISION REAL DECIMAL(M,D) Espao para armazenamento 1 byte 2 bytes 3 bytes 4 bytes 4 bytes 8 bytes 4 if X <= 24 or 8 if 25 <= X <= 53 4 bytes 8 bytes 8 bytes 8 bytes M+2 bytes se D > 0, M+1 bytes se D = 0 (D+2, if M < D) CHAR(M) M bytes, 1 <= M <= 255 VARCHAR(M) L+1 bytes, L<=M e 1<=M<=255 TINYBLOB, TINYTEXT L+1 bytes, para L < 2^8 BLOB, TEXT L+2 bytes, para L < 2^16 MEDIUMBLOB, MEDIUMTEXT L+3 bytes, para L < 2^24 LONGBLOB, LONGTEXT L+4 bytes, para L < 2^32 ENUM('value1','value2',.) 1 ou 2 bytes, dependendo da quantidade de valores enumerados (65535 valores mximos) SET('value1','value2',...) 1, 2, 3, 4 or 8 bytes, dependendo da quantidade de valores enumerados (64 valores mximos) DATE 3 bytes 8 bytes DATETIME TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte

Requisitos de armazenamento

AVALIAO TCNICA DO MySQL

17

PRODEMGE

3. SEGURANA Segurana de Acesso


Identificao O MySQL utiliza ACLs (Acess Control Lists) para verificar se o usurio est autorizado a se conectar no banco, acessar o dado para consulta e atualizao. O MySQL no suporta a autenticao de usurios pelo sistema operacional, nem o estabelecimento de prazo de validade para senha. O usurio MySQL no tem ligao com os usurios do UNIX (conta) ou Windows. No entanto se o nome do usurio do MySQL no for informado default a conta do UNIX. As autorizaes so habilitadas e desabilitadas atravs dos comandos GRANT e REVOKE da linguagem SQL. O comando de autorizao pode permitir que o usurio receptor repasse os privilgios recebidos para outros usurios. No MySQL os GRANTs podem criar uma entrada na tabela de usurios (mysql.user) mas o REVOKE no remove estas entradas. Para a remoo das mesmas deve-se utilizar o comando DELETE. O MySQL no oferece mecanismos de auditoria de acesso. Isto , no permite o registro das atividades executadas por um usurio no banco de dado, nem permite registrar os eventos relacionados a um determinado objeto do banco de dados. No MySQL permitido a concesso e revogao de permisses de acesso, via comandos SQL, a nvel global (do servidor de banco de dados), banco de dados, tabela e coluna. As concesses de privilgios so dadas a nvel de usurio + nome do servidor (hostname). No existe o conceito de grupo de usurios (roles) no MySQL. Privilgios que podem ser concedidos no MySQL e o contexto no qual so aplicados:
select insert update delete alter create drop grant references (no implementado) reload shutdown process (processlist e kill) file (utilitrio LOAD) usage tabelas e colunas tabelas e colunas tabelas e colunas tabelas tabelas databases, tabelas ou ndices databases, tabelas ou ndices databases ou tabelas databases ou tabelas administrao do servidor administrao do servidor administrao do servidor acesso a arquivos no servidor usurio sem privilgio

Autenticao

Autorizao

Nveis de granularidade

Privilgios

Opes de inicializao

O MySQL algumas opes de inicializao do banco relativas aos aspectos de segurana. Entre elas pode-se citar: a possibilidade de checar a vericidade de hostnames, obrigar que o valor da coluna HOST na tabela de autorizaes seja um endereo IP ou localhost, no permitir o acesso ao banco via TCP/IP mas somente via UNIX socket, inibir a utilizao do comando SHOW DATABASES, ou limit-lo somente a exibir os bancos de dados que o usurio tem algum tipo de privilgio.
18

AVALIAO TCNICA DO MySQL

PRODEMGE

Segurana Fsica
Recuperao por Falha Fsica Recuperao de Transaes Reinicializao No suporta a execuo de backup online do banco de dados. No possui na instalao default do produto. Executa automaticamente e de forma transparente a reinicializao do banco de dados aps queda do ambiente operacional, garantindo a integridade dos dados armazenados. Suporta a recuperao manual do banco de dados aps falha de mdia via a aplicao de backup. No entanto, pode haver perda de dados, uma vez que o banco no possui logs de transaes.

AVALIAO TCNICA DO MySQL

19

PRODEMGE

4. OPERACIONALIDADE Desempenho
Transaes por Segundo Relao de Solicitao ao SGBD/IOs Fsicos Utilizao de Buffers No utiliza o conceito de transaes O MySQL trabalha com vrios buffers, dentre eles destacamos: Key Buffer : Compartilhado por todas as threads; Conection Buffer e Result Buffer : Fazem parte do espao especfico alocado para cada conexo, tamanho dinmico podendo ter no mximo o valor da varivel max_allowed_packet; Record Buffer; Sort Buffer; Index Buffer. No possui.

Otimizador de Transaes

Facilidades / Ferramentas para Administrao de Banco de Dados2


Monitorao de desempenho A monitorao de desempenho no MySL pode ser feita utilizando-se o mysqladmin. Este utilitrio permite executar tarefas administrativas, tais como criar e remover banco de dados, mostrar as threads ativas, matar threads, tirar o servidor mysql do ar (shutdown). Instalao Um dos mtodos de instalao do MySQL utilizar o RPM (Red Hat Package Manager) em algumas distribuies do LINUX. Em outras distribuies do LINUX deve-se observar os procedimentos de instalao que normalmente utilizam arquivos .tar. No Windows deve-se descompactar os arquivos em um diretrio vazio e executar o setup.exe. Acompanhamento da utilizao / Pode ser feita utilizando o utilitrio myisamchk que fornece ocupao fsica informaes tais como: nmero de blocos removidos que ainda possuem espao reservado, mdia de blocos por registro, nmero de registros, nmero de blocos utilizados, entre outras. Pode-se tambm utilizar os comandos do UNIX du (file space usage) e ls al (lista contedo de um diretrio). Recuperao O MySQL oferece os seguintes comandos e utilitrios: CHECK TABLE checa a tabela por erros. Em alguns casos pode mudar o REPAIR TABLE myisamchk Acompanhamento do Acesso ao O comando EXPLAIN do MySQL obtm informaes de como Banco de Dados um comando SELECT ser executado. Manuteno do Banco de Dados Possui os seguintes comando e ferramentas; OPTIMIZE TABLE permite desfragmentar um arquivo e recuperar o espao no utilizado. mysqldump - ferramenta para importao e exportao de dados em um formato interno do SGBD ou para arquivos do sistema operacional no formato binrio ou texto em ASCII. Load.

No anexo 3 se encontram detalhes das ferramentas e utilitrios do MySQL. 20

AVALIAO TCNICA DO MySQL

PRODEMGE

Interface com produtos de monitorao de segurana Contabilizao de Recursos Outras Ferramentas e utilitrios do MySQL

No possui. No possui. mysql permite enviar consultas interativamente para bases de dados MySQL e ver o resultado; mysqldump permite a extrao o esquema e dados de um banco de dados e os colocar em um arquivo; mysqlimport permite ler um esquema e dados de um arquivo e coloca-los em um banco de dados MySQL; mysqlhotcopy utilitrio para fazer backup de um database, porm tem como pr-requisito o DBI.pm da linguagem PERL; perror permite exibir a descrio de uma mensagem de erro; mysqlshow pode ser usado para mostrar os databases existentes, suas tabelas e colunas; myisampack utilizado para compactar tabelas do tipo MyISAM; pack_isam utilizado para compactar tabelas do tipo ISAM. Oracle Migration Benchamark que migra o esquema e dados de um banco de dados MySQL para o Oracle; Webmin: http://www.webmin.com/; PhpMyAdmin: http://www.phpwizard.net/; O Designer 2000 gera os comandos DDL para o MySQL e cria as tabelas utilizando o padro ANSI, via o MyODBC; Interfaces grficas para administrao do MySQL: MySQLGUI: http://www.mysql.com/downloads/guiclients.html (Este o frontend oficial do site do MySQL, http://www.mysql.com ) GLOM: http://www.glom.org SQLGUI: http://www.beranek.de/me_sqlgui.html Guile Simple SQL: http://sourceforge.net/projects/guile
simplesql/

Ferramentas de Terceiros

MyGUI: http://sourceforge.net/projects/mygui/

Diretrio de Dados/Catlogo
Diretrio Ativo O catlogo do MySQL a controlar os privilgios de um usurio que esto armazenados nas tabelas user, db, tables_priv e columns_priv do banco de dados mysql. , Tabelas, ndices, usurios, banco de dados, autorizaes e linhas. No possui referncia cruzada de objetos, porm disponibiliza os comandos: show databases que mostra a lista dos bancos criados; show tables que mostra a lista das tabelas existentes no banco de dados ao qual se est conectado; desc (NOME DA TABELA) que obtm uma descrio dos campos da tabela especificada do banco de dados ao qual se est conectado show columns from (NOME DA TABELA) que tambm mostra a descrio dos campos da tabela especificada; show index from (NOME DA TABELA) que obtm a
21

Objetos Referncia Cruzada de Objetos

AVALIAO TCNICA DO MySQL

PRODEMGE

Abertura para Definio de Procedimentos de Instalao Consistncia Automtica de Campos

descrio dos ndices da tabela especificada. Possui abertura desde que seja utilizado o cdigo fonte para instalao. No possui.

Disponibilidade
Estabilidade Desempenho Nos testes realizados verificou-se que o produto estvel. Os testes de desempenho esto descritos no Anexo III.

Transparncia e Compartilhamento de Informaes


Conectividade Portabilidade Facilidades para Converso da Base Instalada Oferece conectividade atravs do cliente MySQL, MyODBC e JDBC, utilizando como base o TCP/IP. O MySQL pode ser executado em vrios sistemas operacionais conforme relacionado no item Sistema Operacional. Oferece utilitrios que permitem carregar em tabelas do MySQL arquivos txt gerados por outros SGBDs.

Tendncias e Evolues
Tendncias O MySQL um produto relativamente novo (lanado em 1995) e se encontra em constante manuteno. J se encontra com a verso 4.0 anunciada. Esta verso dever possuir as seguintes funcionalidades, entre outras: Novo formato de definio de tabelas (.frm); Backup online mais otimizado; O comando DELETE FROM table_name retornar o nmero de registros deletados; Mais funes para pesquisa de texto; Permitir a alterao de parmetros de inicializao do banco com o mesmo no ar; Otimizao de algumas consultas com a clusula ORDER BY key_name DESC e Otimizao do comando SHOW COLUMNS FROM
table_name.

AVALIAO TCNICA DO MySQL

22

PRODEMGE

5. FORNECEDOR
Comercializao

O MySQL vem no CD de instalao do RedHat, ou pode ser baixado, sem nus, do principal site de espelhamento http://dowload.sourceforge.net/mirrors/mysql, bem como do NuSphere http://www.nusphere.com/download/download_now.htm. Uma relao contendo vrios outros sites para download se encontra na pag. 43 do MySQL Reference Guide. O produto pode adquirido no site do MySQL AB e da NuSphere.
Os tipos de suporte oferecidos pela MySQL AB so: Suporte bsico via e-mail que tem como meio principal de comunicao a lista primria (mysql@lists.mysql.com) do MySQL, sendo que em situaes crticas ou que contenham dados sigilosos pode-se enderear as dvidas para a lista do suporte (mysql-suport@mysql.com); Suporte estendido via e-mail que possui uma prioridade de atendimento maior do que a do tipo bsico e usurios no registrados; Suporte via Login que possui uma prioridade de atendimento ainda maior que a do tipo estendido, sendo que neste tipo so oferecidos os servios de se conectar no sistema do cliente e resolver o problema in loco, assim como possvel conversar pelo telefone com algum desenvolvedor (de forma moderada); Suporte estendido via Login no qual os e-mails tem a mais alta prioridade de atendimento. Suporte via telefone. interessante observar que a MySQL AB no oferece suporte tcnico nas instalaes do cliente. O programa oficial de treinamento do MySQL foi desenvolvido em conjunto com a Polycon AB http://www.polycon.fi/mysql e o time de desenvolvimento do MySQL. O Treinamento Completo do MySQL inclui: Introduo ao MySQL que compreende a teoria bsica de banco de dados relacionais, os conceitos principais do MySQL e comandos para a elaborao de consultas e atualizao do banco de dados; Administrao do MySQL que abrange as tarefas bsicas de um administrador de banco de dados (DBA) do MySQL e dicas de otimizao e parametrizao do produto e Otimizao do MySQL que ensina a escrever consultas otimizadas, como projetar banco de dados e como utilizar menos recursos de forma a melhorar a execuo de uma aplicao. Na Amrica o representante oficial da Polycon AB a NuSphere Corporation http://www.nusphere.com. Neste representante so oferecidos dois cursos: O Dominando o MySQL, que compreende ao treinamento completo da Polycon AB, e Administrando e Otimizando o banco de dados MySQL, que
23

Suporte Tcnico

Treinamento

AVALIAO TCNICA DO MySQL

PRODEMGE

possui como tpicos uma viso geral do MySQL, estrutura do banco de dados, gerenciamento de usurios, backup e recuperao, segurana, deteco de problemas e reparos, configurao do MySQl e replicao.
Frum de discusso O MySQL possui os seguintes sites como frum de discusso: o
http://www.weberdev.com que possui exemplos e o http://futurerealm.com/ FutureForum Web Discussion Software.

Listas de discusso do MySQL

Abaixo se encontram relacionadas as listas de discusso do MySQL consideradas mais relevantes: anncios de novas verses do MySQl e produtos relacionados (http://announce-subscribe@lists.mysql.com); lista principal para discusses genricas sobre o produto (http://mysql-subscribe@lists.mysql.com); sumrio da lista principal, enviada uma vez ao dia (http://mysql-digest-subscribe@lists.mysql.com); para relatar bugs (http://bugs-subscribe@lists.mysql.com); lista de discusso sobre MySQL e JAVA (http://javasubscribe@lists.mysql.com); sumrio da lista de JAVA (http://java-digestsubscribe@lists.mysql.com); sobre assuntos relacionados ao MySQl no Sistemas operacionais Win95, Win98, NT, e Win2000 (http://win32subscribe@lists.mysql.com); sumrio da lista win32 (http://win32-digestsubscribe@lists.mysql.com); sobre assuntos do MySQL com ODBC (http://myodbcsubscribe@lists.mysql.com); sumrio da lista myodbc (http://myodbc-digestsubscribe@lists.mysql.com). As questes levantadas para estas listas podem ser pesquisadas no http://lists.mysql.com. No Brasil existe a lista mysql-br@listas.linkway.com.br que pode ser consultada no site www.mysql.com.br. O sistema rau-tu, http://www.rau-tu.unicamp.br/bd/, de perguntas e respostas desenvolvido pelo Instituto Vale do Futuro em parceria com o Centro de Computao da Unicamp, contm como um de seus tpicos o MySQL.

AVALIAO TCNICA DO MySQL

24

PRODEMGE

6. CUSTO
Produto O MySQL no tem custo para uso interno normal. No entanto so necessrias licenas se: Ligar parte do MySQL, que tem direitos autorais GPL3, a programas que no sejam software livre; Possuir uma aplicao comercial que somente trabalhe com o MySQL e que a aplicao seja carregada com o servidor MySQL (Pag. 34 Manual MySQL Reference); Possuir uma distribuio do MySQL que no entregue os cdigos fonte do produto, como definido na licena GPL. Indica-se o envio de um e-mail para licensing@mysql.com a fim de verificar se necessrio a aquisio de licenas para uma aplicao especfica. O MySQL pode ser adquirido da NuSphere com os seguintes custos: NuSphere MySQL V.1.13.7 custa $79.00 a cpia. O pacote os produtos: MySQL V3.23.33, Apache V1.3.17, Perl V5.6, PHP V4.0.4, Webadmin V.84, para as plataformas Redhat Linux 6.2 ou maior em um IA32, Sun Solaris 2.6 em um SPARC III, Windows 95/98, NT e 2000. A documentao impressa do MySQL Reference (650 Pginas), Apache Pocket Reference, Perl 5 Pocket Reference e o PHP Pocket Reference tambm faz parte do pacote, bem como o suporte para instalao durante o perodo de30 dias. O pacote NuSphere MySQL Advantage custa $299.00 e inclui alm do pacote do NuSphere MySQL, 30 dias de suporte tcnico por e-mail, atualizao trimestral do pacote enviados automaticamente atravs de CD e um ano de suporte de instalao. O NuSphere MySQL Advantage Plus custa $3,000.00 e inclui alm do pacote do NuSphere MySQL, um ano de suporte tcnico e de instalao pelo telefone, web ou e-mail, bem como, atualizao trimestral do NuSphere MySQL enviados automaticamente atravs de CD. A MySQL AB no vende o produto, o mesmo faz parte do constrato de suporte. Tipos de suporte da MySQL AB e custo por ano: Suporte bsico via e-mail - EURO4 200; Suporte estendido via e-mail - EURO 1000; Suporte via Login - EURO 2000; Suporte estendido via Login - EURO 5000 e Suporte via telefone - EURO 12000. O suporte da NuSphere est includo na aquisio do produto. Custo e durao dos cursos da Polycon AB e da NuSphere: Treinamento completo do MySQL, 5 dias, EUR 2.250; Dominando o MySQL, 5 dias, $2.250 e Administrando e Otimizando o MySQL, 3 dias, $1.500.

Suporte

Treinamento

3 4

GPL GNU GENERAL PUBLIC LICENSE Um EURO (European Union Euro) eqivale a aproximadamente a 1,17 US Dollars 25

AVALIAO TCNICA DO MySQL

PRODEMGE

ANEXO III Resultado dos Testes de Avaliao do Produto


Os testes de avaliao do produto tiveram como principal objetivo obter cultura e conhecimento do MySQL. Para tal, foi instalado o produto em mquinas de laboratrio e pessoais do Suporte procurando simular algumas situaes previstas para a utilizao desse SGBD relacional. Visando agregar contedo encontram-se descritos neste anexo detalhes interessantes do processo de instalao do MySQL, das opes de utilitrios, do procedimento de backup e recuperao do banco de dados, das ferramentas de administrao e do processo de replicao no MySQL.

1. Ambiente Operacional de Teste


Os testes foram realizados na Gerncia de Suporte Tcnico (GOT) na configurao representada pela figura 1 abaixo:

Figura 1 Ambiente de Teste

2. Testes de Carga
Para a realizao de testes de carga e acesso ao MySQL foi criado uma tabela, no servidor Tellus, denominada TBTRABALHADOR, com a seguinte estrutura:
NRINSCRTRAB NMTRABALHADOR DTNASCIMENTO NMNATURALIDADE NMLOGRADOURO NRLOGRADOURO NMBAIRRO AVALIAO TCNICA DO MySQL INT NOT NULL CHAR (40) NOT NULL DATETIME NOT NULL CHAR (25) NULL , CHAR (40) NOT NULL , NUMERIC(5,0) NOT NULL , CHAR (20) NOT NULL , 26

PRODEMGE

NMMAE NMMUNICPROC

CHAR (40) CHAR (60)

NULL , NULL

Nesta tabela foram carregados 142.976 registros utilizando utilitrios e o comando DDL INSERT. No quadro 1 a seguir so apresentados os comandos executados nesta tabela e os resultados obtidos. Operaes executadas Carga utilizando utilitrios: mysqlimport load data Tabela sem ndice:
Insert

Tempo em Segundos 55,41 55,36 33,91 00,08 00,13 49.26 53,34 51,31 00.11 00.18 61.29

Delete Truncate
Update

Tabela com ndice: Criao do ndice


Insert

Delete Truncate Update

Quadro 1 Operaes executadas em uma tabela MySQL

3. Procedimentos de Instalao
O primeiro passo na instalao do MySQL obter a distribuio seja cdigo fonte ou do binrio. Como o objetivo principal deste trabalho obter cultura e conhecimento do MySQL optouse pela instalao da distribuio binria. A origem dos cdigos instalados nos microcomputadores do ambiente de teste foram obtidos nos seguintes endereos: MySQL 3.23 Linux, http://www.mysql.com/downloads.mysql-3.23.html; MySQL 3.23 Windows NT, http://www.mysql.com/downloads.mysql-3.23.html; MySQL 3.23 Windows 95, http://www.mysql.com/downloads.mysql-3.23.html; MyODBC, http://www.mysql.com/downloads.myodb.html; JDBC, http://www.mysql.com/downloads.jdbc.html. Uma vez baixado o cdigo para o sistema operacional Linux, foi escolhido o mtodo de instalao rpm (RedHat Package Manager). Para executar a instalao executa-se o comando:
shell> rpm ihv MySQL-3.23.36-1.i386.rpm MySQL-client-3.23.36-1.i386.rpm

O RPM coloca os produtos nos seguintes diretrios, criando os que no existiam: /usr/bin - coloca os executveis do MySQL. /var/lib/mysql contm um diretrio para cada banco de dados. Na instalao so criados dois bancos: mysql e test. Dentro de cada diretrio de cada banco para cada tabela so criados trs arquivos com extenses : MYD (dados da tabela), MYI (dados da tabela) e frm ./var/lock/subsys/mysql - controle de ativao do servio. /usr/include/mysql - contm funes e bibliotecas usadas pelo MySQL, com a extenso .h. /usr//lib/mysql - Contm bibliotecas usadas pelo MySQL com extenso .a . /usr/share/mysql - arquivos compartilhados do MySQL. /etc/rc.d/init.d - contm os scripts de inicializao e finalizao do MySQL. /etc/logrotate.d/mysql - contm o arquivo de definio da rotatividade da log do MySQL. lgumas vezes aps a instalao do produto necessrio executar o script
.scripts/mysql_install_db que cria o Banco de dados MySQL, um usurio root (sem password) com

todos os privilgios de banco de dados, um banco de dados de teste chamado test e starta o
AVALIAO TCNICA DO MySQL 27

PRODEMGE

mysqld server. Este comando altera somente as tabelas de privilgios de tabelas j existentes, podendo ser executado se havendo necessidade de reconstruo do banco de dados mysql. Os diretrios criados na instalao do produto para a verso Windows 95/98/NT so: c:\Mysql\bin executveis do MySQL tais como: mysqladmin.exe, myisamchk.exe, myisamchk.exe, myisamchk.exe, myisamlog.exe, myisampack.exe, mysql.exe, mysqlbinlog.exe, mysqlc.exe, mysqld-nt.exe, mysqld-opt.exe, mysqld.exe, mysqldump.exe, MySqlManager.exe, mysqlshow.exe, mysqlshutdown.exe, mysqlwatch.exe, pack_isam.exe, perror.exe, replace.exe, Winmysqladmin.exe, WINMYSQLADMIN.HLP. c:\Mysql\data Um diretrio para cada Banco de Dados. Na instalao so criados dois bancos : mysql e test. Dentro de cada diretrio de cada banco para cada tabela so criados trs arquivos com extenses : MYD (dados da tabela), MYI e frm. c:\Mysql\docs Documentao de Scripts incluidos no Produto. c:\Mysql\lib biblioteca c:\Mysql\share conjunto de caracteres suportados.

O MySQL, no Linux, executado utilizando-se o script safe_mysqld, que normalmente instalado no diretrio /usr/bin. O script /usr/share/mysql.server um script que pode ser utilizado como o comando de iniciar/desligar do MySQL, dependendo do argumento recebido (start ou stop). Da mesma forma o script ./etc/rc.d/init.d/mysql inicializa ou finaliza o DEMO do MySQL dependendo do argumento que est sento passado pelo usurio ou pelo sistema operacional. As opes de inicializao do MySQL so: no Windows 95 c:\mysql\bin\mysql : Compilado, debug e check automtico de alocao de memria; c:\mysql\bin\mysqld-opt : Otimizado para processador Pentium. c: \mysql\bin\mysqld debug : Gera um arquivo de log \mysqld.trace. no Windows NT/2000: c\mysql\bin\mysqld- --install : Start criandi]o o servio no NT. Para start / stop do servio : NET START mysql e NET STOP mysql.

O MySQL executado como um processo DEMO sob o Unix ou como um servio sob o Windows NT. Para verificar se o MySQLl est funcionando apropriadamente, depois do comando #mysqladmin version a resposta dever ser algo do tipo:
mysqladmin Ver 8.18 Distrib 3.23.36, for pc-linux-gnu on i686 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version Protocol version Connection UNIX socket Uptime: 3.23.36 10 Localhost via UNIX socket /var/lib/mysql/mysql.sock 1 day 3 hours 14 min 7 sec

Threads: 2 Questions: 99 Slow queries: 0 Opens: 16 Flush tables: 1 Open tab les: 10 Queries per second avg: 0.001

O MySQL usa TCP/IP para conectar um cliente ao servidor. O Windows 95/98 no suporta named pipes, que s pode ser usado para connectar um servidor remoto usando Windows NT. Os arquivos de log do MySQL so: Log de Erro - Informaes sobre o start e o stop mysqld e erros crticos ocorridos na execuo do mesmom. Mysqld direciona a gravao destas informaes para o arquivo /var/lib/mysql/localhost.err.
28

AVALIAO TCNICA DO MySQL

PRODEMGE

Log do ISAM - Informaes sobre todas as mudanas ocorridas nas tabelas tipo ISAM. Usada somente para debug cdigo ISAM. Log de Query - Estabelece conexes e executa queries, gerada somente se o mysqld for startado com log. Ela contm todas as conexes e queries . O seu nome padro hostname.log. Log de Update - Informaes sobre todos os SQLs de atualizao de dados. Para ser gerada o mysqld deve ser startado com opo log-update [nome-do-arquivo]. Se o nome do arquivo no for fornecido o arquivo gerado ter o nome do host. Log Binria - Contm todas as informaes que so armazenadas na log de update em um formato mais eficiente. Tambm contm informaes do tamanho de cada query de update aceita pelo banco de Dados. O o mysqld deve ser startado com opo log-bin[file-name]. Se o nome do arquivo no for fornecido o arquivo gerado ter o nome do host-bin. Log Slow Query - Informaes sobre queries com tempo de execuo longo. Pode ser usada para encontrar queries candidatas a otimizao. As variveis do sistema se encontram apresentadas no quadro 2 a seguir.

Nome ansi_mode back_log basedir bdb_cache_size bdb_log_buffer_size bdb_home bdb_max_lock bdb_logdir bdb_shared_data bdb_tmpdir binlog_cache_size concurrent_insert connect_timeout datadir delay_key_write delayed_insert_limit delayed_insert_timeout delayed_queue_size flush flush_time have_bdb have_gemini have_innobase have_raid have_ssl init_file interactive_timeout join_buffer_size key_buffer_size language large_files_support log log_update log_bin

Valor Default OFF 5 /my/monty/ 16777216 32768 /my/monty/data/ 10000 OFF /tmp/ 32768 ON 5 /my/monty/data/ ON 100 300 1000 OFF 0 YES NO YES YES NO 28800 131072 16776192 /my/monty/share/english/ ON OFF OFF OFF

Observaes Indica se o mysql foi startado com ansi (ON) ou no (OFF). Numero mximo de conexes que podem ser requisitadas . Tamanho do cache de hold

Tamanho do buffer que usado para full joins, joins que no usam indices. Tamanho do buffer usados por bolcos de ndices.

AVALIAO TCNICA DO MySQL

29

PRODEMGE

Nome log_slave_updates long_query_time low_priority_updates lower_case_table_names

Valor Default OFF 10 OFF 0

Observaes

Valor = 1 indica que o nome das tabelas so armazenadas em letras minsculas; 0 indica armazenamento da maneira como foi digitado. Tamanho mximo de um pacote. Nmero mximo de conexes simultneas Nmero mximo de interrupes nas conexes com o servidor a partir do qual no se permite novas tentativas.

max_allowed_packet ax_binlog_cache_size max_connections max_connect_errors

1048576 4294967295 100 10

max_delayed_threads max_heap_table_size max_join_size max_sort_length max_tmp_tables max_write_lock_count yisam_recover_options yisam_sort_buffer_size net_buffer_length net_read_timeout net_retry_count net_write_timeout open_files_limit pid_file port protocol_version record_buffer query_buffer_size safe_show_database server_id skip_locking skip_networking skip_show_database slow_launch_time socket sort_buffer table_cache table_type thread_cache_size thread_stack tmp_table_size tmpdir version wait_timeout BDB - Berkeley_DB Tables

20 16777216 4294967295 1024 32 4294967295 DEFAULT 8388608 16384 30 10 60 0 /my/monty/data/donna.pid 3306 10 131072 0 OFF 0 ON OFF OFF 2 /tmp/mysql.sock 2097116 64 MYISAM 4 65536 1048576 /tmp/ 3.23.29a-gamma-debug 28800

Quadro 2 Variveis de Sistema

Na Instalao do MySQL os parmetros citados no quadro 2 possuem valores default, algumas vezes necessrio a alterao destes parmetros, dependendo do tipo de aplicao, para melhorar a performance da mesma. O quadro 3 a seguir mostra a lista de parmetros que podem ser alterados usando o comando : --set-variable= .
30

AVALIAO TCNICA DO MySQL

PRODEMGE

Variveis back_log

binlog_cache_size join_buffer_size key_buffer_size

max_allowed_packet max_binlog_cache_size max_connections max_connect_errors max_join_size max_sort_length max_tmp_tables max_write_lock_count myisam_sort_buffer_size net_buffer_length net_retry_count net_read_timeout net_write_timeout query_buffer_size record_buffer slow_launch_time sort_buffer table_cache thread_concurrency tmp_table_size thread_stack wait_timeout

Consideraes Deve ser aumentado se a aplicao prev uma grande quantidade de conexes. O valor deve ser compatvel com as limitaes do Sistema Operacional. Deve ser incrementado se a aplicao possui transaes muito grandes com mltiplos comandos. Deve ser incrementado quando no h possibilidade de criao de ndices nas tabelas envolvidas. Deve ser incrementado para melhor utilizao de ndices. O check da performance pode ser feito utilizando o comando show status examinando os valores das variveis : Key_read_requests, Key_reads, Key_write_requests, and Key_writes. O valor de Key_reads/ Key_read_requests deve ser menor que 0.01 e o valor de Key_writes/ Key_write_requests deve estar prximo de 1. Deve ser incrementado quando estiver sendo usado colunas BLOB. Atualmente seu valor limitado 16 M. Deve ser alterado para grandes transaes com mltiplos omandos. Valor mximo limitado pelo Sistema Operacional Deve ser alterado para instalaes com problemas de comunicao 4294967295 1024 Limitado pelo Sistem Operacional 4294967295 8388608 16384 10 30 60 0 131072 2 2097116 64 10 1048576 131072 28800
Quadro 3 Lista de parmetros

4. Utilitrios
Todos os utilitrios do MySQL possuem uma gama de opes de execuo , algumas destas opes so comuns a todos ou a um grupo, outras so especficas de cada utilitrio. A seguir so apresentadas opes especficas de cada utilitrio,. Informaes sobre as outras opes podem ser vistas digitando na linha de comando : nome-utilitrio help. mysqladmin - Utilitrio para execuo de operaes de administrao do Banco de Dados : criao e excluso de Banco de Dados, grants de tabelas, recuperao de informaes sobre verses, processos e status de informao. Msqladmin [OPTIONS] comand [comand-option] Opes
AVALIAO TCNICA DO MySQL 31

PRODEMGE

Comandos : create nome-do-banco : cria Banco de Dados com o nome especificado; drop nome-do-banco : Exclui Banco de Dados e todas as sua tabelas extended-status : transmite mensagem de status do servidor. flush-hosts : Limpa todas as cached hosts. flush-logs : Limpa todas as logs. flush-tables : Limpa todas as tables. flush-privileges : Reload grant tables (same as reload). kill id,id,... : Mata as threads identificadas(id) do MySQL. Password New-password.: Troca a passord antiga pela nova. Ping : Verifica se o MySQL est ativo. Processlist : Lista as threads ativas no servidor. reload : Reload grant tables. refresh Flush all tables and close and open log_les. shutdown : shutdown no servidor. slave-start : Start thread de replicao. slave-stop : Para a thread de replicao . Status : Fornece informaes resumidas sobre o status do servidor. variables : Lista as variveis disponveis. version : Mostra informaes sobre a verso MySQL instalada no servidor. myisamchk - Utilitrio para descrever, checar, otimizar e reparar tabelas do MySQL. Myisamchk [OPTIONS] nome-tabela Opes Gerais : Opes de Check : -c ou --check : Checa erros na tabela. -e ou extended-check : Checa erros na tabela com maior profundidade que o anterior. -F ou fast : Checa apenas tabelas impropriamente fechadas. -C ou Check-only-changed : Checa somente tabelas alteradas desde o ultimo check. -f ou -force : Reestarta o myisamchk com r (repair) se foi encontrado qualquer erro na tabela. -i ou information : Lista informaes estatsticas sobre a tabela sendo checada. Opes de Repair : -D # ou --data-file-length =# : Tamanho mximo do arquivo de dados no caso do mesmo estar cheio. -e ou --extend-check : No recomendado o uso. -f ou --force : Reescreve em arquivos temporrios ( exteno .TMD ). -r ou recover : Primeira opo a ser utilizada no caso de recuperao de uma tabela; -o ou safe-recover : opo antiga para recuperao de tabelas. Outras Opes : -a ou analyse : Analisa a distribuio de chaves. -d ou description : Lista informaes sobre tabelas. Opes para Informaes sobre Tabelas : -d : Descrio da tabela. -dv : Descrio detalhada da tabela. -eis : Mostra somente as informaes mais importantes da tabela. Opes para Otimizao de Tabelas :
AVALIAO TCNICA DO MySQL 32

PRODEMGE

-r : Elimina os espaos vazios resultado de excluses ou atualizao de registros; -S , sort index : -R index_num, --sort-records=index_num mysqldump - Utilitrio para fazer DUMP de um bancos de dados para backup ou transferencia de dados. Mysqldump [OPTIONS] banco-de-dados [tabelas] Mysqldump [OPTIONS] --banco-de-dados [OPTIONS] Mysqldump [OPTIONS] all-databases [OPTIONS] > arquivo.sql Opes : --add-locks : D um lock nas tabelas antes do dump e um unlock depois. --add-drop-table : Adiciona um drop tabela antes de cada comando de criao. -A , --all-databases : Faz dump de todos os banco de dados. -a, --all : Inclui todas as opes de create . --allow-keywords : Permite a criao de nomes de colunas com palavras chave. -c,--complete-insert : Usa comandos de insert completos. -C, --compress : Comprime toda informao entre o servidor e o cliente se ambos suportarem compresso. -B, --databases ; --delayed : Usa o comando Insert delayed na insero de linhas. -e, --extended-insert : Usa sintaxe do insert multilinhas ( mais rpido ). -h,--host= : Dump dados de um servidor especfico. -l , --lock-tables : Loca todas as tabelas antes do dump. -n -t,--no-create-info : No escreve informaes de criao de tabelas. -d, --no-data : Escreve apenas a estrutura da tabela. --opt : Faz o dump com opo de drop , create, look e unlock . mysqlimport - Comando de linha que permite carregar tabela usando um arquivo texto. Mysqlimport [OPTIONS] banco-de-dados texto ... Opes : -c, --columns= -C, --compress : Comprime todas as informaes entre o servidor e o cliente. -d , --delete : Limpa a tabela antes de importar o arquivo. --fields-terminated-by= ... --fields-enclosed-by= ... --fields-optionally-enclosed-by= ... --fields-escaped-by=... --lines-terminated-by=... perror - Escreve mensagens de erro. Perror [OPTIONS] [codigo-erro] mysqlshow - Mostra a estrutura de um banco de dados MySQL ( banco de dados, tabelas, colunas) Mysqlshow [OPTIONS] [banco[tabela[colunas]]] myisampack - Usado para comprimir tabelas MyISAM Myisampack [OPTIONS] nome arquivo

AVALIAO TCNICA DO MySQL

33

PRODEMGE

mysqlbinlog- Usado para ler logs binrias. Mysqlbinlog [OPTIONS] nome da log binria. mysqlaccess - Script que checa privilgios de acesso ao servidor, usrios e banco de dados.

5. Backup e Restore
Tabelas MySQL so armazenadas como arquivos, por isto, o seu backup facilmente executado. Para se ter um backup consistente deve-se dar lock nas tabelas seguido de um flush das mesmas. O quadro 4 a seguir apresenta as diversa formas de fazer backup de um Banco de Dados e seus componentes.

Comando mysqldump

Sintaxe Mysqldump [OPTIONS] banco-de-dados [tabelas] > nome-tabela | nome-banco Mysqldump [OPTIONS] --banco-de-dados [OPTIONS] > nome-tabela | nome-banco Mysqldump [OPTIONS] all-databases [OPTIONS] > nome-tabela Myisamchk -r -o -v -B nome-tabela | nome-banco Backup table nome1 [,nome2...] to nome-arquivo Restore table nome1 [,nome2...] to nome-arquivo Select expresso into {outfile|dumpfile} nome-arquivo export_options. Mysqlimport [OPTIONS] banco-de-dados texto ... Mysqlhotcopy nome-banco novo-diretrio

Resultado Backup da tabela ou tabelas do Banco de Dados.

myisamchk backup restore select into restore mysqlhotcopy

restore copy

restore

Backup das tabelas nominadas Restaura as tabelas nominadas Arquivo txt dos dados da tabela Restaura as tabelas Copia o Banco de dados para um outro diretrio. Necessita de algumas bibliotecas da linguagem Perl. Rename novo-diretrio para diretrio-original Restaura todas as tabelas do Banco de Dados. Copy all tables (.frm,.MYD,MYI) novo-diretrio Copia as tabelas do Banco de Dados para um novo diretrio. Copy (arquivos(.frm,.MYD,MYI) diretrio-original Restaura as tabelas cujos arquivos foram atualizados.
Quadro 4 Utilitrios de backup

6. Ferramentas de Administrao
Nome webmin Descrio Conexo via internet http://nome-servidor.domnio:porta Permite criar, alterar e excluir objetos e usurios do Banco de Dados, gerenciar permisses, fazer backup e executar comandos SQL. Permite gerenciar tamanho de arquivos processos do banco, tamanho dos arquivos, fornece a identificao ,o comando, o dono, o consumo de cpu,, o tempo de execuo a prioridade dos processos do banco. Conexo via internet. http://nome-servidor.domnio/phpmyadmin Permite criar, alterar e excluir objetos e usurios do Banco de Dados, gerenciar permisses. Gerencia dados (select, insert, delete, update), chaves primrias, ndices. Faz backup e executa comandos SQL.
34

phpmyadmin

AVALIAO TCNICA DO MySQL

PRODEMGE

7. Replicao no MySQL
A replicao no MySQL unilateral, um servidor A que replica para um servidor B, no poder ter B replicando para ele ( servidor A) . As principais aplicaes para a replicao so: Como backup para sistemas crticos : um servidor master replica para outro servidor escravo. Se o servidor master apresentar problema o servidor escravo passa a fazer o papel do primeiro; Para aumentar a performance de um sistema : um servidor master replica para outro servidor escravo. Parte das queries de consulta so direcionadas para o servidor escravo, ficando as atualizaes concentradas no servidor master. A replicao no MySQL baseada na leitura e execuo das queries de atualizaes, executadas no Banco de dados do servidor master (A) , armazenadas na Log Binria do mesmo, pelo servidor escravo (B) . O quadro 5 a seguir apresenta os passos necessrios para a implementao da replicao no modelo representado pela figura 1 :

Figura 1 Modelo de Replicao

Passos Verificao de Verso Grants para replicao

Descrio/Comandos A verso no servidor master e nos servidores escravos deve ser maior que 3.23.29. Releases anteriores usam formatos diferentes de Log Binria. Recomenda-se que o usurio usado na replicao deva ser especfico da mesma. O usurio deve ter permisso de file-priv e permisso para conectar em todos os servidores escravos. Se o usurio usado na replicao for especfico, como recomendados ele no precisar ter previlgios adicionais. O comando para criao deste usurio especfico seria : Grant file on *.* to repli0% identified by <password> Mysqladmin u root p<password> shutdown O caminho mais simples usar o tar para gerar o arquivo de entrada no seu diretrio de dados. tar cvf /tmp/mysql-snapshot.tar /path-data No arquivo my.cnf do servidor master adicione log-bin e server-id=um nico nmero da seo do mysqld. muito importante que o id do servidor master seja diferente dos id s dos servidores escravos. [mysqld] log-bin server-id=1 Os parmetros colocados no my.cnf passam a valer. No arquivo my.cnf dos servidores escravos inclua: master-host=nome-master master-use=nome-aplicao master-password=password-usuario-replicao server-id=nmero-nico
35

Shutdown MySQL no servidor master Snapshot de todos os dados no servidor master Alterao do arquivo de inicializao do MySQL no servidor master.

Reestart o servidor master Alterao do arquivo de inicializao do MySQL nos servidores escravos.

AVALIAO TCNICA DO MySQL

PRODEMGE

Passos Finalizao

Descrio/Comandos Copie para o diretrio de dados de cada servidor escravo o snapshot de dados do servidor master. Verifique as permisses dos arquivos e diretrios. Reestart os servidores escravos. Quadro 5 Passos para implementar replicao

AVALIAO TCNICA DO MySQL

36

PRODEMGE

ANEXO IV Nota do Produto


1. Nota do grupo Caractersticas Gerais do Produto
Peso do Grupo: 2
SUBGRUPOS E PARMETROS Identificao do Produto Nome Fabricante Mantenedor Patrocinadores Fornecedor no Brasil Fornecedor em MG Ano de lanamento Verses avaliadas ltima verso disponvel Linguagem fonte Usurios no Brasil Usurios em MG Documentao do produto Ambiente Operacional Sistemas operacionais Distribuio do produtos Requisitos de hardware Requisitos de software Correo do produto Character set utilizado Nota do Grupo 1: Caractersticas Gerais do Produto PESO 1 D D D D 1 1 2 D D 1 1 1 3 2 3 3 3 3 3 3 NOTA 1,4 _ _ _ _ 1 1 1 _ _ 2 1 1 2 2,17 2 2 3 3 1 2 1,61

AVALIAO TCNICA DO MySQL

37

PRODEMGE

2. Nota do grupo Funcionalidade


Peso do Grupo: 3 SUBGRUPOS E PARMETROS Caractersticas Bsicas do SGBD Nvel externo Nvel conceitual Nvel interno Controle de concorrncia Controle de deadlock Tipos de dados Caractersticas Relacionais Domnio Operadores Relacionais Orientao por Tabela Normalizada Chave Primria Chave Estrangeira Valores Nulos Limitaes do Produto Tamanho mximo de nomes de objetos Conexes simultneas Tamanho mximo de uma linha Nmero mximo de linhas por tabela Nmero mximo de colunas por tabela Nmero mximo de ndices por tabela Nmero mximo de colunas por ndice Tamanho mximo de um ndice Nmero mximo de linhas por banco de dados Tamanho mximo de uma tabela Outras limitaes Interface com o SGBD Ling. de manipulao de dados noLinguagens de Programao Ling. nica com recursos para DDL, DML e DDL DML DCL Outros comandos Independncia de Dados Independncia Fsica de Dados Independncia Lgica de Dados Integridade de Dados Integridade Referencial Integridade de Entidade Integridade de Domnio Integridade de Transaes Organizao Fsica dos Dados Estrutura de Acesso Disponvel Forma de Armaz. tabelas e Estruturas de Acess Compresso de Dados Recursos para Expanso de Tabelas Reutilizao de Espao na Remoo de Linhas Requisitos de armazenamento Nota Grupo 2: Funcionalidade AVALIAO TCNICA DO MySQL
PESO 3 3 3 2 3 3 3 3 3 3 3 3 3 3 2 2 3 2 2 3 3 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 NOTA 0,65 0 1 1 0 0 2 1 1 1 1 2 0 1 1,63 2 2 2 2 2 1 1 1 2 2 1 1,09 2 1 2 2 2 1 2 0,5 1 0 0,5 0 2 0 0 1,33 1 1 1 2 2 1 0,92

38

PRODEMGE

3. Nota do grupo Segurana


Peso do Grupo: 3
SUBGRUPOS E PARMETROS Segurana de Acesso Identificao Autenticao Autorizao Nveis de granularidade Privilgios Opes de inicializao Segurana Fsica Recuperao por Falha Fsica Recuperao de Transaes Reinicializao Nota do Grupo 3: Segurana PESO 3 3 3 3 3 3 2 3 3 3 3 NOTA 1,47 2 1 1 1 2 2 0,67 1 0 1 1,07

AVALIAO TCNICA DO MySQL

39

PRODEMGE

4. Nota do grupo Operacionalidade


Peso do Grupo: 3
SUBGRUPOS E PARMETROS Desempenho Transaes por Segundo Relao de Solicitao ao SGBD/IOs Fsicos Utilizao de Buffers Otimizador de Transaes Facilidade / Ferramentas para Administrao de Banco de Dados Monitorao de desempenho Instalao Acompanhamento da utilizao / ocupao fsica Recuperao Acompanhamento do Acesso ao Banco de Dados Manuteno do Banco de Dados Interface com produtos de monitorao de segurana Contabilizao de Recursos Outras Ferramentas e utilitrios do MySQL Ferramentas de Terceiros Diretrio de Dados / Catlogo Diretrio Ativo Objetos Referncia Cruzada de Objetos Abertura para Definio de Procedimentos de Instalao Consistncia Automtica de Campos Disponibilidade Estabilidade Desempenho Transparncia e Compartilhamento de Informaes Conectividade Portabilidade Facilidades para Converso da Base Instalada Tendncias e Evolues Tendncias Nota do Grupo 4:Operacionalidade PESO 3 3 3 3 3 3 3 2 2 3 2 3 1 2 3 2 2 3 3 2 2 3 3 3 3 3 3 3 2 3 3 NOTA 1,5 0 3 3 0 1,39 2 1 1 1 2 1 2 1 2 1 0,92 1 1 0 3 0 1,5 2 1 2,38 3 2 2 3 3 1,83

AVALIAO TCNICA DO MySQL

40

PRODEMGE

5. Nota do grupo Fornecedor


Peso do Grupo: 2
SUBGRUPOS E PARMETROS Comercializao Suporte Tcnico Treinamento Frum de discusso Listas de discusso do MySQL Nota do Grupo 6: Fornecedor PESO 2 3 2 2 2 NOTA 2 1 1 1 3 1,55

6. Nota do grupo Custo


Peso do Grupo: 3
SUBGRUPOS E PARMETROS Produto Suporte Treinamento Nota do Grupo 6: Custo PESO 3 3 3 NOTA 3 3 1 2,33

7. Nota final do Produto


Peso do Grupo: 3
GRUPOS FUNCIONAIS CARACTERSTICAS GERAIS DO PRODUTO FUNCIONALIDADE SEGURANA OPERACIONALIDADE FORNECEDOR CUSTO NOTA DO PRODUTO PESO 2 3 3 3 2 3 NOTA 1,61 0,92 1,07 1,83 1,55 2,33 1,55

AVALIAO TCNICA DO MySQL

41