FACULDADE DO LITORAL SUL PAULISTA – FALS JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS PRAIA GRANDE 2010 JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS Trabalho de conclusão de curso, Faculdade do Litoral Sul Paulista, sob orientação do Prof. Paulo R. T. Cândido. PRAIA GRANDE 2010 JÉSSICA MACARIO DE OLIVEIRA SISTEMA GERENCIADOR DE BANCO DE DADOS ESTUDO DE CASO: SISTEMA DE GERENCIAMENTO DE VENDAS Trabalho de conclusão de curso, Faculdade do Litoral Sul Paulista, sob orientação do Prof. Paulo R. T. Cândido. AVALIAÇÃO:_________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ NOTA: ____ (____________) Praia Grande, 24 de abril de 2010. RESUMO Nos dias de hoje é impossível que uma empresa, mesmo sendo de pequeno porte, mantenha seus processos organizados de maneira simples e objetiva onde as informações sejam encontradas de forma ágil sem um sistema informatizado. Os sistemas informatizados vêm para ajudar as empresas a melhorar todos os processos desde um simples cadastro de clientes às tomadas de decisões importantes para o crescimento da empresa O sistema informatizado por sua vez lidará com inúmeras informações que terão que ser armazenadas, porém o papel tem problemas ao nível da persistência (tempo e tipo de visualização) e da recuperação (validação e verificação), ou seja, dura pouco. Por este motivo torna-se mais fácil e seguro encontrar a informação numa base de dados, para que sua empresa garanta um controle efetivo sobre todo o seu negócio, tem obrigatoriamente de recorrer a sistemas de gestão de bases de dados. PALAVRAS CHAVES: system, data, database, SGBD. ABSTRACT Nowadays it is impossible for a company, even though small size, keep its processes organized in a simple and objective where the information is found in a flexible system without a computerized. Computerised systems have come to help companies improve all processes from a single client record to making decisions important to the company's growth. The computerized system in turn will deal with numerous things that have to be stored, but the paper has problems in the persistence (time and display type) and recovery (validation and checking), or short-lived. Therefore it becomes easier and find information in a secure database for your company ensure effective control over your entire business hás required to use systems management databases. KEYWORDS TOOL: stamps, financial, business, improvement, assist. SUMÁRIO 1 INTRODUÇÃO ............................................................................................................... 8 2 JUSTIFICATIVA ............................................................................................................ 9 3 OBJETIVO ................................................................................................................... 10 4 SGBD .......................................................................................................................... 11 4.1 FUNÇÕES PRINCIPAIS DE UM SGBD.................................................................... 11 5 LINGUAGEM SQL ....................................................................................................... 12 5.1 5.2 5.3 5.4 5.5 DML – LINGUAGEM DE MANIPULAÇÃO DE DADOS ............................................ 12 DDL – LINGUAGEM DE DEFINIÇÃO DE DADOS ................................................... 12 DCL – LINGUAGEM DE CONTROLE DE DADOS ................................................... 13 DTL – LINGUAGEM DE TRANSAÇÃO DE DADOS................................................. 13 DQL – LINGUAGEM DE CONSULTA DE DADOS ................................................... 13 6 DICIONÁRIO DE DADOS ............................................................................................ 14 7 BANCO DE DADOS .................................................................................................... 15 7.1 7.2 7.3 7.4 8 DEFINIÇÃO ............................................................................................................. 15 BANCO DE DADOS RELACIONAL ......................................................................... 15 AS 12 REGRAS DE UM BANCO DE DADOS RELACIONAL .................................. 16 VANTAGENS DE UM BOM PROJETO DE BANCO DE DADOS ............................. 17 MODELO RELACIONAL ............................................................................................. 17 8.1 PRINCIPAIS COMPONENTES ................................................................................ 18 8.1.1 Tabelas ............................................................................................................ 18 8.1.2 Registros ......................................................................................................... 18 8.1.3 Colunas ........................................................................................................... 18 8.1.4 Chave .............................................................................................................. 18 9 O QUE É O MODELO DE ENTIDADE E RELACIONAMENTO (MER) ........................ 19 10 MYSQL ........................................................................................................................ 20 10.1 10.2 10.3 10.4 10.5 11 APLICATIVOS UTILIZADOS PARA A MANUTENÇÃO DA BASE DE DADOS ......... 23 11.1 11.2 11.3 11.4 12 MYSQL ENTERPRISE SERVER 5.1 .................................................................... 23 MYSQL ENTERPRISE MONITOR........................................................................ 23 MYSQL QUERY ANALYZER ............................................................................... 25 MYSQL CLUSTER ............................................................................................... 25 ESTUDO DE CASO ..................................................................................................... 26 12.1 12.2 12.3 12.4 13 DEFINIÇÃO ......................................................................................................... 20 HISTÓRIA DO MYSQL......................................................................................... 20 NOME E MASCOTE ............................................................................................. 20 CARACTERÍSTICAS DO MYSQL ........................................................................ 21 CARACTERÍSTICAS DO SERVIDOR MYSQL..................................................... 21 REQUISITOS DO CLIENTE ................................................................................. 26 CARACTERISTICAS DO SISTEMA..................................................................... 28 MODELO DA BASE DE DADOS .......................................................................... 29 IMAGENS DO SISTEMA ...................................................................................... 30 CONSIDERAÇÕES FINAIS ......................................................................................... 34 ÍNDICE DE ILUSTRAÇÕES FIGURA 1 - MYSQL ENTREPRISE MONITOR ................................................................................... 24 FIGURA 2 - MYSQL ENTERPRISE EVENTS ...................................................................................... 24 FIGURA 3 - MYSQL QUERY ANALIZER ............................................................................................ 25 FIGURA 4 - MODELO DA BASE DE DADOS DO SISTEMA.............................................................. 29 FIGURA 5 - LOGIN DO SISTEMA........................................................................................................ 30 FIGURA 6 - CONSULTA DE CLIENTES ............................................................................................. 30 FIGURA 7 - LISTAGEM DE CLIENTES ............................................................................................... 31 FIGURA 8 - CONSULTA DE VENDAS ................................................................................................ 31 FIGURA 9 - CADASTRO DE CLIENTES ............................................................................................. 32 FIGURA 10 - RELATÓRIO DE VENDAS ............................................................................................. 32 FIGURA 11 - LISTAGEM DE ORDENS DE SERVIÇO ........................................................................ 33 1 INTRODUÇÃO Este trabalho visa mostrar a importância de um Sistema Gerenciador de banco de dados para uma empresa que deseja crescer no mercado e acompanhar o desenvolvimento tecnológico. Para este fim existem vários tipos de SGBD que são escolhidos de acordo com a necessidade do cliente. Os sistemas gerenciadores de banco de dados vieram com o intuito de suprir a necessidade de armazenamento e disponibilidade de informações de modo rápido e seguro, fornecendo assim para as empresas um controle maior de suas informações, desde que estas estejam bem estruturadas numa base de dados. Para um melhor entendimento do assunto abordado, foi escolhido um único tipo de SGBD o MySQL. Serão apresentados conceitos técnicos, características, ferramentas utilizadas para manutenção e implementação da base de dados. Será exemplificada a utilização do MYSQL através de um estudo de caso, que abordará a realidade de uma empresa de comercialização de carimbos que viu a necessidade de expandir seu negócio e para isso decidiu investir em um sistema WEB de um e-commerce e um sistema de gerenciamento interno. 2 JUSTIFICATIVA O avanço tecnológico não cessa por isto os administradores empresas, cada vez mais, estão vendo a necessidade de adaptar-se a este crescimento. E a primeira medida a ser tomada para este fim e a eliminação de processos em papel e a adesão a sistemas informatizados que ajudam nas tarefas rotineiras e proporcionam uma maior produtividade no ambiente de trabalho. Portanto, mesmo em pequenas empresas observa-se a necessidade de informatização nos processos, para que esta consiga se firmar no mercado e eliminar concorrentes. Sendo assim com a implantação de sistemas informatizados vem à necessidade de controle dos dados manipulados por esses sistemas e para que este controle seja feito de forma satisfatória é necessária a utilização de um SGBD (Sistema Gerenciador de Banco de Dados). 3 OBJETIVO Definir os conceitos relacionados a um SGBD, linguagem SQL, modelos relacionais para demonstrar os benefícios gerados pelo uso do mesmo para armazenamento, recuperação e controle de dados de qualquer empresa, independentemente de seu porte ou mercado de atuação. Apresentar aplicações que auxiliam na manutenção de um SGBD MYSQL, para que os adiministrador tenham uma visão melhor em questões de performance e identificação de diversos problemas. Demonstrar a importância de uma modelagem de dados bem definida para suprir a necessidade de integridade dos dados e melhorar a performance na recuperação dos dados, pois as empresas além de segurança exigem rapidez na recuperação das informações. Demostrar a necessidade das organizações atuais pela informação informatizada, as vantagens da eliminação da utilização dos processos em papel tais como: divergencia de informações, burocratização excessiva, lentidaão nos processos, perda de informações importantes, entre outras. 4 SGBD Um Sistema Gerencidador de Base de Dados (SGBD) é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados, ou seja, consiste em uma coleção de dados inter-relacionados e uma coleção de programas para prover o acesso a esses dados. O objetivo principal de um SGBD é prover um ambiente que seja adequado e eficiente para uso na recuperação e armazenamento de informações. O SGBD implica a criação e manutenção de bases de dados, elimina a necessidade de especificação de definição de dados, age como interface entre os programas de aplicação e os ficheiros de dados físicos e separa as visões lógica e de concepção dos dados. O SGBD pode ser dividido em três componentes principais: Linguagem de definição de dados (especifica conteúdos, estrutura a base de dados e define os elementos de dados); Linguagem de manipulação de dados (para poder alterar os dados na base); Dicionário de dados Exemplos de SGBD: SQL Server, PostGre SQL, Oracle, MySql, DB2. 4.1 FUNÇÕES PRINCIPAIS DE UM SGBD Interação com o sistema de arquivos do sistema operacional. Cumprimento da integridade. Cumprimento da segurança. Cópias de segurança (“backup”) e recuperação. Controle de concorrência. Otimização e execução dos comandos DML. Dicionário de Dados. Desempenho 5 LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem. Pode ser dividida em três partes: Linguagem de definição de dados (DDL); Linguagem de manipulação de dados (DML); Linguagem de controle de dados (DCL) ; 5.1 DML – LINGUAGEM DE MANIPULAÇÃO DE DADOS A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados. INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente. UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente. DELETE permite remover linhas existentes de uma tabela. 5.2 DDL – LINGUAGEM DE DEFINIÇÃO DE DADOS Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. Os comandos básicos da DDL são poucos CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados. DROP apaga um objeto do banco de dados. Outros comandos DDL: ALTER TABLE CREATE INDEX ALTER INDEX DROP INDEX CREATE VIEW DROP VIEW 5.3 DCL – LINGUAGEM DE CONTROLE DE DADOS DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Duas palavras-chaves da DCL: GRANT - autoriza ao usuário executar ou setar operações. REVOKE - remove ou restringe a capacidade de um usuário de executar operações. Outros comandos DCL: ALTER PASSWORD CREATE SYNONYM 5.4 DTL – LINGUAGEM DE TRANSAÇÃO DE DADOS BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT envia todos os dados das mudanças permanentemente. ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas. 5.5 DQL – LINGUAGEM DE CONSULTA DE DADOS Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas. 6 DICIONÁRIO DE DADOS É um documento que contem a explicação de todos os objetos da base de dados. Este documento permite que os analistas obtenham informações sobre todos os objetos do modelo de forma textual, contendo explicações por vezes difíceis de incluir no diagrama. Dentro do contexto de SGBD, um dicionário de dados é um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma base de dados, propriamente dita, que entre outras coisas, mantém as seguintes informações: Definição precisa sobre elementos de dados Perfis de usuários, papéis e privilégios Descrição de objetos Integridade de restrições Stored procedures e Jobs Estrutura geral da base de dados Informação de verificação Alocações de espaço Um dos benefícios de um dicionário de dados bem preparado é a consistência entre itens de dados através de diferentes tabelas. Por exemplo, diversas tabelas podem conter números de telefones; utilizando uma definição de um dicionário de dados bem feito, o formato do campo 'número de telefone' definido com "(999)99999999" deverá ser obedecido em todas as tabelas que utilizarem esta informação. Quando uma organização constrói um dicionário de dados de dimensão empresarial, o intuito deve ser o de padronizar precisamente definições semânticas a serem adotadas na empresa toda, portanto, ele deve incluir tanto definições semânticas como de representação para elementos de dados. Os dicionários de dados são mais precisos que glossários porque costumam ter uma ou mais representações de como o dado é estruturado e podem envolver ontologias completas quando lógicas distintas sejam aplicadas a definições desses elementos de dados. 7 BANCO DE DADOS 7.1 DEFINIÇÃO Banco de dados, também chamado de base de dados, é um conjunto de registros, que são significativos para organização, dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD), portanto é errado dizer que um banco de dados é a mesma coisa que um SGBD. Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. 7.2 BANCO DE DADOS RELACIONAL Um Banco de Dados Relacional é um conceito abstrato que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um banco de dados. Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações. Pois, enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela raiz do mesmo, nos Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios através de vários pontos. Bancos de dados Relacionais são baseados no modelo relacional que é um modelo de dados, onde todos os dados estão guardados em tabelas (ou, matematicamente falando, relações). 7.3 AS 12 REGRAS DE UM BANCO DE DADOS RELACIONAL Formuladas por Edgar Frank Codd, em 1985, matemático britânico desenvolvedor do modelo de banco de dados, definem o que um banco de dados necessidade para ser considerado relacional: 1 Regra Fundamental: Um SGBD relacional deve gerenciar seus dados usando apenas suas capacidades relacionais. 2 Regra da informação: Toda informação deve ser representada de uma única forma, como dados em uma tabela 3 Regra da garantia de acesso: Todo dado (valor atômico) pode ser acessado logicamente (e unicamente) usando o nome da tabela, o valor da chave primária da linha e o nome da coluna. 4 Tratamento sistemático de valores nulos: Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado. 5 Catálogo dinâmico on-line baseado no modelo relacional: A descrição do banco de dados é representada no nível lógico como dados ordinários (isso é, em tabelas), permitindo que usuários autorizados apliquem as mesmas formas de manipular dados aplicados aos dados comuns ao consultá-las. 6 Regra da sub-linguagem compreensiva: Um sistema relacional pode suportar várias linguagens e formas de uso, porém deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a fronteira de transações. 7 Regra da atualização de visões: Toda visão que for teoricamente atualizável será também atualizável pelo sistema. 8 Inserção, atualização e eliminação de alto nível: A capacidade de manipular a relação base ou relações derivadas como um operador único não se aplica apenas a recuperação de dados, mas também a inserção, alteração e eliminação de dados. 9 Independência dos dados físicos: a. Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as modificações na representação de armazenagem ou métodos de acesso internos. b. Independência lógica de dados c. Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as mudanças de informação que permitam teoricamente a não alteração das tabelas base. 10 Independência de integridade: As relações de integridade específicas de um banco de dados relacional devem ser definidas em uma sub-linguagem de dados e armazenadas no catálogo (e não em programas). 11 Independência de distribuição: A linguagem de manipulação de dados deve possibilitar que as aplicações permaneçam inalteradas estejam os dados centralizados ou distribuídos fisicamente. 12 Regra da Não-subversão: Se o sistema relacional possui uma linguagem de baixo nível (um registro por vez), não deve ser possível subverter ou ignorar as regras de integridade e restrições definidas no alto nível (muitos registros por vez). 7.4 VANTAGENS DE UM BOM PROJETO DE BANCO DE DADOS Reflete a estrutura real do problema Pode representar todos os dados esperados ao longo do tempo Evita armazenamento redundante de itens de dados Fornece acesso eficiente aos dados Suporta a manutenção da integridade dos dados ao longo do tempo 8 MODELO RELACIONAL Em um banco de dados relacional é muito importante a etapa da modelagem de dados, pois esta etapa definirá aspectos importantes da estrutura que afetará o desempenho de sua base de dados futuramente. Por exemplo, é na etapa da modelagem de dados que eliminamos as redundâncias das informações por separalas corretamente em tabelas, evitando assim que nossa base tenha um tamanho maior do que o necessário, ou que durante um select o mysql consuma mais recursos que o necessário. A modelagem de dados deve se adequar com a necessidade do cliente e para que se possa realizar a mesma deve-se conhecer os requisitos do cliente. Apresentarei aspectos técnicos quanto asos elementos da modelagem e depois será apresentado um estudo de caso com um exemplo de modelagem dos dados. 8.1 PRINCIPAIS COMPONENTES 8.1.1 Tabelas Também chamada de relações ou entidades, as tabelas podem ser descritas como armazem de dados. Uma tabela, nada mais é do que uma simples estrutura de linhas e colunas, onde cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento. As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela. 8.1.2 Registros Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário. 8.1.3 Colunas As colunas de uma tabela são também chamadas de Atributos. Ao conjunto de valores que um atributo pode assumir chama-se domínio. Por exemplo: em um campo do tipo numérico, serão somente armazenados números. 8.1.4 Chave As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente. Temos dois tipos de chaves: Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá. Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será. 9 O QUE É O MODELO DE ENTIDADE E RELACIONAMENTO (MER) O modelo de entidades e relacionamentos é um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados a serem utilizados em um sistema de informações ou que pertencem a um domínio. Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. As ligações são feitas ligando-se um campo de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X. Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR. 9.1 PRINCIPAIS TIPOS DE RELACIONAMENTO Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si, ou seja, na qual um elemento da primeira tabela conduz a um, e somente a um, elemento da segunda tabela. Neste tipo você escolhe onde ficara a chave estrangeira. Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N, ou seja um elemento da primeira tabela porderá conduzir a vários elemntos da segunda . No lado N ela é chamada de chave estrangeira; Muitos para muitos (N para N) - quando tabelas têm entre si relação n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1..n, sendo que o lado n ficará com a nova tabela criada. 10 MYSQL 10.1 DEFINIÇÃO O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. Este sucesso deve-se em grande medida à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente. 10.2 HISTÓRIA DO MYSQL O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius, que têm trabalhado juntos desde a década de 1980. Hoje seu desenvolvimento e manutenção empregam aproximadamente 400 profissionais no mundo inteiro, e mais de mil contribuem testando o software, integrando-o a outros produtos, e escrevendo a respeito dele. No dia 16 de Janeiro de 2008, a MySQL AB, desenvolvedora do MySQL foi adquirida pela Sun Microsystems, por US$ 1 bilhão, um preço jamais visto no setor de licenças livres. No dia 20 de Abril de 2009 a Oracle compra a Sun Microsystems e todos o seu produtos, incluindo o MySQL. A Comissão Europeia ainda não aprovou a aquisição. 10.3 NOME E MASCOTE A derivação do nome MySQL não é bem definida. Nosso diretório base e um grande número de nossas bibliotecas e ferramentas sempre tiveram o prefixo ``my'' por pelo menos 10 anos. A filha de Monty também ganhou o nome My. Qual das duas originou o nome do MySQL continua sendo um mistério, mesmo para nós. O nome do golfinho do MySQL (nosso logo) é Sakila. Sakila foi escolhido pelos fundadores da MySQL AB de uma enorme lista de nomes sugeridos pelos usuários em nosso concurso "Name the Dolphin". O nome vencedor foi enviado por Ambrose Twebaze, um desenvolvedor de programas open source de Swaziland, Africa. De acordo com Ambrose, o nome Sakila tem as suas raízes em SiSwati, a língua local de Swaziland. Sakila é também o nome de uma cidade em Arusha, Tanzania, próxima ao país de orígem de Ambrose, Uganda. 10.4 CARACTERÍSTICAS DO MYSQL Portabilidade (suporta praticamente qualquer plataforma atual); Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Visual basicPython, Perl, PHP, ASP e Ruby) Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; Facilidade de uso; É um Software Livre com base na GPL; Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid… Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable); Suporta Stored Procedures e Functions; Replicação facilmente configurável; Interfaces gráficas de fácil utilização cedidos pela MySQL Inc. 10.5 CARACTERÍSTICAS DO SERVIDOR MYSQL O Servidor MySQL é escrito em múltiplas camadas com módulos independentes. Alguns dos novos módulos estão listados abaixo com indicações de quão bem-testado foi cada um deles. Replicação: Grandes grupos de servidores usando replicação estão em uso, com bom resultados. O trabalho no aprimoramento dos recursos de replicação continua no MySQL 4.x. Tabelas InnoDB: O mecanismo de armazenamento transacional InnoDB foi declarado estável na árvore do MySQL 3.23, a partir da versão 3.23.49. InnoDB tem sido usado em sistema de produção grandes e com carga pesada. Tabelas BDB: O código do Berkeley DB é muito estável, mas ainda estamos melhorando a interface do mecanismo de armazenamento transacional do BDB no Servidor MySQL, assim levará algum tempo até que ele esteja tão bem testado quanto os outro tipos de tabela. Pesquisas Full-text: Pesquisa full-text funcionam mas ainda não são largamente usadas. Melhoramentos importantes forma implementados no MySQL 4.0. MyODBC 3.51: Em grande uso na produção. Alguns problemas apresentados parecem ser relacionados a aplicação e independente do driver ODBC ou do servidor de banco de dados. Recuperação automática de tabelas MyISAM: Este status se aplica apenas ao novo código que confere no mecanismo de armazenamento MyISAM que verifica, na inicialização, se a tabela foi fechada corretamente e executa uma conferência/reparo automático da tabela em caso negativo. Bulk-insert: Novo recurso nas tabelas MyISAM no MySQL 4.0 para inserções mais rápidas de vários registros. Locking: Esse módulo é muito dependente do sistema. Em alguns sistemas existem certos problemas por utilizar o locking padrão do SO (fcntl(). Nestes casos, você deve executar o mysqld com o parâmetro --skip-external-locking. São conhecidos alguns problemas ocorridos em alguns sistemas Linux e no SunOS quando utiliza-se sistemas de arquivos montados em NFS. 11 APLICATIVOS UTILIZADOS PARA A MANUTENÇÃO DA BASE DE DADOS 11.1 MYSQL ENTERPRISE SERVER 5.1 MySQL Enterprise Server é o mais confiável, segura e up-to-date versão do MySQL para o custo-eficácia, fornecendo E-commerce, Online Transaction Processing (OLTP) e aplicações multi-terabyte Data Warehousing. É uma operação totalmente integrada de segurança, banco de dados compatível com ACID cometer completo, rollback, recuperação de falhas e capacidades de nível de linha de bloqueio. MySQL fornece a facilidade de uso, escalabilidade e desempenho que fez a MySQL banco de dados mundial de código aberto mais popular. 11.2 MYSQL ENTERPRISE MONITOR A MySQL Enterprise Monitor monitora os servidores MySQL e alerta para problemas potenciais antes que eles afetem seu sistema. É como ter um "DBA Virtual Assistant" ao seu lado para recomendar as melhores práticas para eliminar as vulnerabilidades de segurança, melhorar a replicação de dados, otimizar o desempenho, identifica problemas no consumo de recursos, entre outras funções. Figura 1 - Mysql Entreprise Monitor Figura 2 - Mysql Enterprise Events 11.3 MYSQL QUERY ANALYZER O MySQL Query Analyzer é um aplicativo de monitoramento de desempenho de consulta e localizar com precisão o código SQL que está causando uma desaceleração. As consultas são apresentadas em uma visão agregada em todos os servidores MySQL que você pode filtrar para problemas específicos de consulta e analisar o código mais caro. O MySQL Query Analyzer, possibilita que você possa melhorar o código SQL durante o desenvolvimento ativo, e continuamente monitorar e ajustar as consultas em produção. Figura 3 - Mysql Query Analizer 11.4 MYSQL CLUSTER É uma tecnologia de banco de dados que mantém os dados em memória, e que tem como base não compartilhar recursos entre processos, objetivando uma solução de alta disponibilidade utilizando hardware de baixo custo. Possui um “shared-nothing” arquitetura distribuída com nenhum ponto único de falha para assegurar alta disponibilidade e desempenho, permitindo-lhe atender a seus mais exigentes requisitos das aplicações de missão crítica. MySQL Cluster elimina a necessidade de armazenamento compartilhado caro, pois combina processamento paralelo e redundância de dados. 12 ESTUDO DE CASO 12.1 REQUISITOS DO CLIENTE REQUISITOS FUNCIONAIS PRIORIDADE SOLUÇÃO PROSPOSTA O sistema deverá conter um Alta Será desenvolvido um módulo onde controle de clientes. o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos clientes. Haverá relatórios no sistema referente às informações cadastrais e financeiras dos clientes. O sistema deverá conter um Alta Será desenvolvido um módulo onde controle de fornecedores. o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos fornecedores. Haverá relatórios no sistema referentes às informações cadastrais dos fornecedores e um comparativo entre os preços dos fornecedores. O sistema deverá conter um Alta Será desenvolvido um módulo onde controle de estoque. o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos produtos em estoque. O sistema alertará o administrador quando determinado item estiver acabando. O Sistema deverá controlar os Alta O sistema deverá conter uma débitos e créditos listagem dos clientes que possuem débitos. E o sistema enviar alertas de e-mail para o cliente que está em débito de acordo com período estipulado pelo administrador. O sistema deverá conter um Alta Será desenvolvido tanto na parte controle de vendas. administrativa, quanto no commerce módulo onde um eo administrador poderá cadastrar e calcular as vendas. Haverá relatórios no sistema indicando os produtos mais vendidos. Quando for efetuada a venda de um produto o sistema deverá atualizar automaticamente a quantidade do produto no estoque. O sistema deverá realizar Alta emissão e envio de boletos. Será desenvolvido um módulo onde o administrador fará a emissão de boletos e poderá imprimi-los. O sistema enviará mensalmente de os mesmos forma automatizada para os e-mails dos clientes. O sistema deverá conter um Alta Será desenvolvido um módulo para controle e cadastro de usuários no sistema, usuário onde estes terão seus acessos permissões de acessos de (sistema de gerenciamento). diferenciados de acordo com seu nível de permissão. O sistema deverá conter um Alta Será desenvolvido um módulo onde controle de pedidos. o administrador do sistema poderá: cadastrar, editar, excluir e pesquisar informações referentes aos pedidos do cliente. O sistema deverá realizar Alta emissão de ordens de serviço. Será desenvolvido um módulo onde o administrador fará a emissão de ordens de serviço e poderá imprimilos. O sistema deverá enviar Baixa Será desenvolvido um módulo onde ofertas automáticas para os o administrador poderá cadastrar as clientes que possuem e-mails ofertas no sistema, estas serão cadastrados. enviadas por e-mail para seus clientes. O Sistema deverá conter um Alto O administrador terá o controle dos controle boletos que vão vencer de seus de boletos de fornecedores. fornecedores, o sistema deve alertar quando o vencimento estiver próximo. 12.2 CARACTERISTICAS DO SISTEMA O sistema será desenvolvido em plataforma web, utilizando a linguagem de programação ASP. Net, tendo dois módulos: o e-commerce para comercialização dos carimbos e a parte de gestão administrativa. Terá como SGBD o Mysql. Estes ficarão hospedados em um servidor on-line. A estrutura do sistema foi desenvolvida para acompanhar o crescimento do empreendimento, sendo de fácil manutenção e adaptação. 12.3 MODELO DA BASE DE DADOS Figura 4 - Modelo da Base de Dados do Sistema 12.4 IMAGENS DO SISTEMA Figura 5 - Login do sistema Figura 6 - Consulta de Clientes Figura 7 - Listagem de Clientes Figura 8 - Consulta de Vendas Figura 9 - Cadastro de Clientes Figura 10 - Relatório de Vendas Figura 11 - Listagem de Ordens de Serviço 13 CONSIDERAÇÕES FINAIS Este trabalho visou mostrar que é imprescindível para as empresas atualmente, independente do mercado de atuação e porte, para conseguir uma boa visibilidade no mercado e eliminar as concorrentes é necessário a implantação e aperfeiçoamento de sistemas informatizados para melhorar a gerência e controle das informações (estas estarão em uma base de dados). Um forte aliado das empresas na recuperação e controle das informações é o sistema gerenciador de banco de dados, este quando bem estruturado proporciona uma gerência, controle e manipulação de informações de forma segura, eficaz, simples e rápida. Quando a base de dados de uma empresa está bem estruturada proporciona a eliminação redundâncias existentes e a divergência de informações, segurança e integridade dos dados, recuperação após alguma falha (as informações de um cliente, por exemplo, não são perdidas facilmente), concorrência (várias pessoas e aplicações podem compartilhar os mesmos dados), uma maior organização dos dados, rapidez na recuperação das informações, entre outros. Atualmente no mercado a diversas ferramentas que auxiliam a manutenção das bases de dados e facilitam o desempenho dos profissionais da área e também da empresa em si que é beneficiada de forma ampla pela utilização de dados informatizados. REFERÊNCIAS BIBLIOGRÁFICAS Padua Paula Filho, Wilson de. Livro Engenharia de Software. LTC. São Paulo, 2003. Suehring, Steve. MySQL - A Bíblia. Campus / Elsevier. Rio de Janeiro, 2002. Luiz Tonsig, Sérgio. MySQL Aprendendo na Prática. Ciência Moderna. Rio de Janeiro, 2006 www.mysql.com – Acesso em: 20/05/2010