06.12.2012 Views

SGBD - Instalação e Configuração

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FACULDADE SUMARÉ<br />

CURSO BANCO DE DADOS<br />

BEATRIZ TONI<br />

DANIEL COSTA<br />

LUIS PACHECO<br />

LUIZ SILVA<br />

SILAS OLIVEIRA<br />

PROJETO INSTALAÇÃO E CONFIGURAÇÃO DE <strong>SGBD</strong><br />

SÃO PAULO<br />

2012


BEATRIZ TONI<br />

DANIEL COSTA<br />

LUIS PACHECO<br />

LUIZ SILVA<br />

SILAS OLIVEIRA<br />

PROJETO INSTALAÇAO E CONFIGURAÇÃO DE <strong>SGBD</strong><br />

SÃO PAULO<br />

2012<br />

Trabalho do Projeto Profissional<br />

Interdisciplinar (PPI) submetido à<br />

Faculdade Sumaré, como parte dos<br />

requisitos para a conclusão do<br />

segundo semestre letivo de 2012 do<br />

curso Tecnólogo em Banco de Dados.<br />

Orientador: Prof. Claudio Aguirre


AGRADECIMENTOS<br />

Primeiramente agradecemos a Deus por nos conceder saúde e inteligência<br />

necessária para o desenvolvimento deste projeto.<br />

Seguimos agradecendo mais uma vez a oportunidade que nos foi concedida<br />

pelo Sr. José Justino Berto (proprietário da Pizzaria Vecchia Mamma) de implantar<br />

esse sistema como parte do trabalho e ao Caio Victor (amigo do Daniel) por nos<br />

ajudar nas dificuldades que tivemos no decorrer do desenvolvimento do sistema.<br />

Por fim agradecemos a todos da equipe que uma forma ou de outra<br />

colaboraram para esse feito.


Toni, Beatriz; Costa, Daniel; Pacheco, Luis; Silva Luiz; Oliveira, Silas.<br />

Projeto de “<strong>Instalação</strong> e <strong>Configuração</strong> de <strong>SGBD</strong> 2012 66 folhas” � 66 f.<br />

Trabalho de PPI “<strong>Instalação</strong> e <strong>Configuração</strong> de <strong>SGBD</strong>”. Faculdade Sumaré, São<br />

Paulo, 2012.<br />

RESUMO<br />

Este trabalho apresenta um estudo de caso de um projeto que consiste em<br />

implementar um sistema de pedidos de pizzas online para a Pizzaria Vecchia<br />

Mamma. Como o projeto tem foco principal em instalar um <strong>SGBD</strong>, escolhemos o<br />

MySQL por se tratar de um sistema gratuito, de fácil utilização e que é usado em<br />

grande parte das aplicações web. Desde 2002 a pizzaria usa o sistema primitivo de<br />

cadastro manual para elaborar os pedidos. Foi proposto construir uma página web<br />

onde o cliente poderá fazer pedidos online (diminuindo o fluxo de ligações) e a<br />

administração da pizzaria poderá visualizar e imprimir os pedidos (reduzindo o<br />

tempo e a possibilidade de informação incorreta à cozinha). A metodologia usada<br />

para aplicação do projeto foi uma pesquisa de campo onde o proprietário da pizzaria<br />

citada nos concedeu a oportunidade de realizar este projeto, em contrapartida não<br />

seria onerado.<br />

Palavras Chaves: Sistema, Pizzaria, <strong>SGBD</strong>, Pedidos, Projeto.


Backup – cópia de segurança<br />

BD – banco de dados<br />

LISTA DE SIGLAS E TERMOS EM INGLÊS<br />

Bugs – erro de funcionamento de um software<br />

DB ou Database - banco de dados<br />

DBA – DataBase Administrator (Administrador de Banco de Dados)<br />

Deadk-Lock – situação onde dois usuários alteraram ao mesmo tempo um mesmo<br />

registro na tabela<br />

Full Text – método que garante que qualquer palavra pesquisada no banco de<br />

dados será encontrada<br />

Foreing Keys – chave estrangeira<br />

GA – gerenciador de arquivos<br />

GIS – Geographic information System ou SIG (Sistema de Informações<br />

Geoespaciais)<br />

GLP – General Public Licence (Licença Pública Geral) - tipo de licença de software<br />

livre<br />

Hot Backups – gerar cópia de segurança remotamente<br />

Indexes – índice<br />

OLAP – On-Line Anlytical Processing (Processo Analítico On-Line) – consiste em<br />

analisar e manipular grandes quantidades de dados sob diversas perspectivas<br />

Primary Key – chave primária<br />

Replicações – processo de duplicar (em <strong>SGBD</strong> consiste em armazenar uma cópia<br />

do banco de dados original em local diferente)<br />

<strong>SGBD</strong> – Sistema de Gerenciamento de Bando de Dados<br />

Stored Engines – em tradução livre “motor de armazenamento”<br />

Stored Procedures – procedimento armazenado<br />

Triggers – em tradução livre “gatilho” ou “disparador”<br />

Unicode – tipo padrão de manipulação de textos


ÍNDICE DE FIGURAS<br />

Banco de Dados.........................................................................................................11<br />

<strong>Instalação</strong> do MySQL<br />

Windows Installer 34<br />

MySQL Installer 34<br />

Welcome MySQL 35<br />

Contrato de Licença MySQL 35<br />

Aceitação Contrato Licença MySQL 36<br />

Verificar Atualizações do Software 36<br />

Conclusão da Atualização do Software 37<br />

Escolher Tipo da <strong>Instalação</strong> 37<br />

Verificar Softwares Requeridos 38<br />

Download do Microsoft Visual C++ 2010 (software faltante) 38<br />

Extracting Files 39<br />

Contrato de Licença 39<br />

Aceitação do Contrato de Licença 40<br />

Progresso da <strong>Instalação</strong> do Microsoft Visual C++ 2010 40<br />

Finalização da <strong>Instalação</strong> 41<br />

Download Visual Studio Tools for Office 2010 Runtime (software faltante) 41<br />

Início da <strong>Instalação</strong> 42<br />

Contrato de Licença 42<br />

Aceitação do Contrato de Licença 43<br />

Progresso da <strong>Instalação</strong> 43<br />

Finalização da <strong>Instalação</strong> 44


Checagem Final dos Softwares Requeridos 45<br />

Softwares do Pacote a ser Instalados 45<br />

Progresso <strong>Instalação</strong> do MySQL 5.5.27 46<br />

Progresso <strong>Instalação</strong> do MySQL Workbench CE 5.2.41 46<br />

Progresso <strong>Instalação</strong> do MySQL Notifier 1.0.3 47<br />

Progresso <strong>Instalação</strong> do MySQL for Excel 1.0.6 47<br />

Progresso <strong>Instalação</strong> do Connector/ODBC 5.1.11 48<br />

Progresso <strong>Instalação</strong> do Connector/C++ 1.1.0 48<br />

Progresso <strong>Instalação</strong> do Connector/C 6.0.2 49<br />

Progresso <strong>Instalação</strong> do Connector/J 5.1.20.0 49<br />

Progresso <strong>Instalação</strong> do Connector/NET 6.5.4 50<br />

Progresso <strong>Instalação</strong> do MySQL Documentation 5.5.27 50<br />

Progresso <strong>Instalação</strong> do Sample and Examples 5.5.27 51<br />

Finalização da <strong>Instalação</strong> dos Softwares do Pacote 51<br />

<strong>Configuração</strong> do MySQL Server 5.5.27 52<br />

Opções de <strong>Configuração</strong> 52<br />

<strong>Configuração</strong> de Senhas 53<br />

Senha Configurada 53<br />

Finalização da <strong>Configuração</strong> 54<br />

Finalização da <strong>Configuração</strong> e <strong>Instalação</strong> do MySQL 5.5.27 54<br />

Interface do Workbench – administração do MySQL 55<br />

Aplicativo Web<br />

Tela do site da pizzaria 59<br />

Tela de cadastro e login 59<br />

Tela de pedido do cliente 60


Tela opção de meia pizza 60<br />

Tela do ambiente administrativo 61<br />

Tela de visualização dos pedidos do dia61<br />

PopUp para impressão do pedido (único) 62<br />

Tela de cadastro dos funcionários 62<br />

Tela de pesquisa de funcionários 63<br />

Tela de cadastro de produtos 63


ÍNDICE DE GRÁFICOS<br />

As 5 pizzas mais vendidas – quantidade e valor 56<br />

Vendas por semana - quantidade56<br />

Vendas por semana - valores 57


1. BANCO DE DADOS 11<br />

1.1 Introdução 11<br />

1.2 Função do banco de dados 11<br />

SUMÁRIO<br />

2. SISTEMA DE BANCO DE DADOS 12<br />

2.1 Vantagens da utilização de um <strong>SGBD</strong> 12<br />

2.2 Objetivos a atingir num <strong>SGBD</strong> 13<br />

2.3 Arquitetura de um <strong>SGBD</strong> – existem 3 níveis 13<br />

2.4 Regras para se determinar um <strong>SGBD</strong> 13<br />

2.4.1 Auto Contenção13<br />

2.4.2 Independência dos dados 14<br />

2.4.3 Abstração dos dados 14<br />

2.4.4 Visões 14<br />

2.4.5 Transações 14<br />

2.4.6 Acesso Automático 15<br />

2.5 Conclusão sobre as regras 15<br />

2.6 Alguns exemplos de <strong>SGBD</strong>’s 16<br />

2.7 Fases para criação de um <strong>SGBD</strong> 16<br />

3. BANCO DE DADOS MySQL 17<br />

3.1 Introdução 17<br />

3.2 História 17<br />

3.3 Características 18<br />

3.4 Utilização 18<br />

4. SOBRE O MySQL 19<br />

4.1 Por que o MySQL demorou a expandir-se? 19<br />

4.2 Mas, porque ele é tão bom? 19


4.3 Principais vantagens 19<br />

4.4 Segurança 20<br />

4.5 Aplicabilidade 20<br />

4.6 Licença do MySQL 20<br />

5. PRINCIPAIS COMANDOS DO MySQL 21<br />

6. FUNÇÕES DE UM DBA 32<br />

6.1 Conhecimento em sistemas operacionais 32<br />

6.2 Conhecimento em redes 32<br />

6.3 Compreensão da arquitetura em banco de dados 32<br />

6.4 Noções do sistema de armazenamento 33<br />

7. INSTALAÇÃO DO MySQL – IMAGENS 34<br />

8. HISTÓRIA DA PIZZARIA VECCHIA MAMMA 58<br />

9. APLICATIVO WEB 59<br />

10. CONCLUSÃO 64<br />

11. REFERÊNCIAS 65


1. BANCO DE DADOS<br />

1.1 Introdução<br />

Banco de dados (abreviado BD, ou em inglês DB – DataBase) é uma entidade<br />

na qual é possível armazenar dados de maneira estruturada e com a menor<br />

redundância possível. Estes dados serão utilizados por programas, onde diferentes<br />

usuários farão acesso. Assim, a noção básica de dados é acoplada geralmente a<br />

uma rede, a fim de colocar essas informações em conjunto.<br />

1.2 Função do banco de dados<br />

O banco de dados permite armazenar dados à disposição de usuários para<br />

uma nova inserção, atualização ou consulta. Um banco de dados pode ser local,<br />

quer dizer, utilizável em uma máquina por um usuário, ou repartido, onde as<br />

informações são armazenadas são armazenadas em máquinas distantes e<br />

acessíveis em rede. A vantagem essencial da utilização dos bancos de dados é a<br />

possibilidade de poder ser acessada por vários usuários simultaneamente.<br />

12


Tendo como objetivo controlar os dados, bem como o acesso de usuários,<br />

deu início a criação de um sistema de gerenciamento. A gestão do banco de dados é<br />

feita através de um sistema chamado <strong>SGBD</strong>.<br />

2. SISTEMA DE BANCO DE DADOS – <strong>SGBD</strong><br />

Entende-se por <strong>SGBD</strong> (Sistema de Gerenciamento de Banco de Dados), programas<br />

ou conjunto de programas que possibilitam a criação e manipulação de base de<br />

dados (inserção, eliminação, alteração e consulta dos dados). Os dados são<br />

independentes dos programas que os manipulam. Assim o seu objetivo é registrar e<br />

manter a informação que for considerada necessária à organização / pessoa que<br />

gere o sistema, disponibilizando-a automaticamente para os mais diversos fins.<br />

Através de um <strong>SGBD</strong>, pode realizar um vasto conjunto de operações de gestão de<br />

banco de dados, das quais é possível destacar:<br />

13<br />

• Inserção, edição e apagamento de registros<br />

• Critérios de visualização de registros<br />

• Indexação e ordenação da informação contida nos registros<br />

• Operações estatísticas sobre os dados<br />

• Criação de slides de apresentação<br />

• Acesso a informação através da Internet<br />

• Impressão de relatórios<br />

• Automatização de funções<br />

• Programação<br />

2.1 Vantagens da utilização de um <strong>SGBD</strong><br />

• Diminuição de espaço físico ocupado<br />

• Maior integridade dos dados


• Menos redundância<br />

• Mais facilidade na partilha de dados<br />

• Maior facilidade de manutenção<br />

• Isolamento entre objetos de dados, o que protege a integridade da origem dos<br />

dados<br />

• Facilidade de mudança na criação de diferentes mapas com diferentes<br />

objetivos<br />

2.2 Objetivos a atingir num <strong>SGBD</strong><br />

• Incluir toda a informação relevante<br />

• Evitar redundância de informação<br />

• Assegurar a consistência e a integridade da informação na utilização do BD<br />

• Elaborar aplicações de fácil utilização e compreensão<br />

2.3 Arquitetura do <strong>SGBD</strong> – existem 3 níveis<br />

2.3.1 Nível físico: os ficheiros são guardados em suporte de armazenamento<br />

informático, e a partir daí são manipulados pelo <strong>SGBD</strong> em execução no computador.<br />

2.3.2 Nível conceitual: organização das informações em tabelas e relacionamentos.<br />

2.3.3 Nível de visualização: corresponde a forma como os dados são apresentados<br />

aos utilizadores finais, através de interfaces gráficas proporcionadas pelo <strong>SGBD</strong>.<br />

14<br />

2.4 Regras para se determinar um <strong>SGBD</strong><br />

2.4.1 Auto Contenção


Um <strong>SGBD</strong> não contém apenas os dados em si, mas armazena completamente toda<br />

a descrição dos dados, seus relacionamentos e formas de acesso. Normalmente<br />

esta regra é chamada de Meta-Base de Dados. Em um GA (Gerenciador de<br />

Arquivos), em algum momento ao menos, os programas aplicativos declaram<br />

estruturas (algo que ocorre tipicamente em linguagens C, COBOL e BASIC), ou<br />

geram os relacionamentos entre os arquivos (típicos do ambiente xBase). Por<br />

exemplo, quando você é obrigado a definir a forma do registro em seu programa,<br />

você não está lidando com um <strong>SGBD</strong>.<br />

2.4.2 Independência dos dados<br />

Quando as aplicações estiverem realmente imunes a mudanças na estrutura de<br />

armazenamento ou na estratégia de acesso aos dados, podemos dizer que esta<br />

regra foi atingida. Portanto, nenhuma definição dos dados deverá estar contida nos<br />

programas da aplicação. Quando você resolve criar uma nova forma de acesso, um<br />

novo índice, e precisar alterar o código de seu aplicativo, você não está lidando com<br />

um <strong>SGBD</strong>.<br />

2.4.3 Abstração dos dados<br />

Em um <strong>SGBD</strong> real é fornecida ao usuário somente uma representação conceitual<br />

dos dados, o que não inclui maiores detalhes sobre sua forma de armazenamento<br />

real. O chamado Modelo de Dados é um tipo de abstração utilizada para fornecer<br />

esta representação conceitual. Neste modelo, um esquema das tabelas, seus<br />

relacionamentos e suas chaves de acesso são exibidas ao usuário, porém nada é<br />

afirmado sobre a criação dos índices, ou como serão mantidos, ou qual a relação<br />

existente entre as tabelas que deverá ser mantida íntegra. Assim, se você desejar<br />

inserir um pedido em um cliente inexistente, e esta entrada não for automaticamente<br />

rejeitada, você não está lidando com um <strong>SGBD</strong>.<br />

15<br />

2.4.4 Visões


Um <strong>SGBD</strong> deve permitir que cada usuários visualize os dados de forma diferente<br />

daquela existente previamente no banco de dados. Uma visão consiste em um<br />

subconjunto de dados do banco de dados, necessariamente derivados dos<br />

existentes no banco de dados, porém estes não deverão estar explicitamente<br />

armazenados. Portanto, toda vez que você é obrigado a replicar uma estrutura, para<br />

fins de acesso de forma diferenciada por outros aplicativos, você não está lidando<br />

com um <strong>SGBD</strong>.<br />

2.4.5 Transações<br />

Um <strong>SGBD</strong> deve gerenciar completamente a integridade referencial definida em seu<br />

esquema, sem precisar em tempo algum, do auxílio do programa aplicativo. Desta<br />

forma, exige-se que o bando de dados tenha ao menos uma instrução que permita a<br />

gravação de uma série de modificações simultâneas e uma instrução capaz de<br />

cancelar uma série de modificações. Por exemplo, imaginemos que estamos<br />

cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso<br />

estoque, que estão disponíveis e portanto são reservados, porém existem um<br />

bloqueio financeiro (duplicatas em atraso) que impede a venda. A transação deverá<br />

ser desfeita com apenas uma instrução ao banco de dados, sem quaisquer<br />

modificações suplementares nos dados.<br />

2.4.6 Acesso Automático<br />

Em um GA (Gerenciador de Arquivos) uma situação típica é o chamado Deadk-Lock,<br />

o abraço mortal. Esta situação indesejável pode ocorrer toda vez que um usuário<br />

travou um registro em uma tabela, e seu próximo passo será travar um registro em<br />

uma tabela relacionada à primeira, porém se este registro estiver previamente<br />

travado por outro usuário, o primeiro usuário ficará paralisado, pois estará<br />

esperando o segundo usuário liberar o registro em uso, para que então possa travá-<br />

lo e prosseguir sua tarefa. Se por hipótese o segundo usuário necessitar travar o<br />

registro travado pelo primeiro usuário, afirmamos que ocorreu um abraço mortal,<br />

pois cada usuário travou um registro e precisava travar outro, justamente o registro<br />

anteriormente travado pelo outro! Imaginemos um caso onde o responsável pelos<br />

16


pedidos acabou de travar o registro “Item de Pedido”, e necessita travar um registro<br />

no “Cadastro de Produtos” para indicar nova reserva. Se concomitantemente estiver<br />

sendo realizada uma tarefa de atualização de pendências na “Tabela de Itens”, e<br />

para tato, previamente este segundo usuário travou a “Tabela de Produtos”, temos a<br />

ocorrência do abraço mortal. Se a responsabilidade de evitar a ocorrência for<br />

responsabilidade da aplicação, você não está lidando com um <strong>SGBD</strong><br />

2.5 Conclusão sobre as regras<br />

Um <strong>SGBD</strong> deve obedecer integralmente as seis regras descritas acima, caso<br />

contrário diante de um GA (Gerenciador de Arquivos) ou de um “quase” <strong>SGBD</strong>.<br />

17<br />

2.6 Alguns exemplos de <strong>SGBD</strong>’s<br />

• Oracle<br />

• Microsoft SQL Server<br />

• MySQL<br />

• IBM DB2<br />

• Interbase<br />

• Sybase<br />

• PostgreSQL<br />

• Firebird<br />

• Microsoft Access<br />

2.7 Fases para criação de um BD<br />

1. Definir a área de aplicação<br />

2. Determinar as entidades necessárias


3. Desenhar o diagrama de Entidade-Relacionamento (simplificado)<br />

4. Desenhar o diagrama de ocorrências<br />

5. Determinar o grau (tipo) de relacionamentos binários<br />

6. Determinar as partições obrigatórias<br />

7. Desenhar o diagrama de Entidade-Relacionamento (completo)<br />

8. Determinar as tabelas necessárias (segundo as regras)<br />

9. Para cada relação / tabela determinar as chaves candidatas<br />

10. Determinar as chaves primárias<br />

11. Definir as relações finais<br />

12. Definir o domínio dos atributos<br />

13. Desenhar as tabelas correspondentes as relações encontradas<br />

3. BANCO DE DADOS MySQL<br />

3.1 Introdução<br />

MySQL é um programa interativo que permite você conectar com um servidor<br />

de MySQL, perguntar e ver os resultados. Além disso, MySQL suporta o SQL padrão<br />

(ANSI). Isso cria uma ótima performance em servidores Unix / Linus. MySQL pode<br />

rodar como um service no Windows NT e como um processo normal em Windows<br />

95/98.O MySQL utiliza a linguagem SQL (Structured Query Language (inglês) ou<br />

Linguagem de Consulta Estruturada (português) como interface.<br />

18


3.2 História<br />

O MySQL surgiu a partir da necessidade da equipe que criou o <strong>SGBD</strong>, de<br />

utilizar algum mecanismo que permitisse a conexão de tabelas criadas na linguagem<br />

SQL para um determinado fim. A princípio, o grupo iria utilizar o mSQL, mas logo<br />

perceberam que esta ferramenta não era rápida o suficiente para atender às<br />

necessidades do projeto. O jeito foi criar uma solução própria. Nascia o MySQL.<br />

O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark,<br />

Allan Larsson e Michael “Monty” Widenius, que tem trabalhados juntos desde a<br />

década de 1980. Hoje seu desenvolvimento e manutenção empregam<br />

aproximadamente 400 profissionais no mundo inteiro, e mais de mil contribuem<br />

testando o software, integrando-o a outros produtos, e escrevendo a respeito dele.<br />

No dia 16 de janeiro de 2008, a MySQL AB, desenvolvedora do MySQL foi<br />

adquirida pela Sun Microsystems, por US$ 1 bilhão, um preço jamais visto no setor<br />

de licenças livres. No dia 20 de abril de 2009 a Oracle compra a Sun Microsystems e<br />

todos os seus produtos, incluindo o MySQL. A Comissão Européia ainda não<br />

aprovou a aquisição.<br />

O sucesso do MySQL deve-se em grande media a fácil integração com o PHP<br />

incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da<br />

Internet oferecidos atualmente. Empresas como Yahoo! Finance, MP3.com,<br />

Motorola, NASA, Silicon Graphics e Texas Instruments usam o MySQL em<br />

aplicações de missão crítica. A Wikipédia é um exemplo de utilização do MySQL em<br />

sites de grande audiência.<br />

O MySQL hoje suporta Unicode, Full Text, Indexes, Replicações, Hot<br />

Backups, GIS, OLAP e muitos outros recursos. Embora seja um dos bancos de<br />

dados mais utilizados no mundo, o MySQL está em constante desenvolvimento e<br />

alguns bugs que ainda se encontram são resolvidos com atualizações freqüentes.<br />

19<br />

3.3 Características<br />

• Portabilidade (suporta atualmente qualquer plataforma);<br />

• Compatibilidade (existem diversos drivers ODBC, JDBC e NET e módulos de<br />

interface para diversas linguagens de programação, como PHP,Delphi, Java,


C/C++, Python, Perl, Microsoft ASP e Ruby, Oracle Forms, .NET, Kylix, LISP,<br />

Lasso, Pike, TCL, Guile, Rexx, Dylan;<br />

• Excelente desempenho e estabilidade;<br />

• Pouco exigente quanto a recursos de hardware;<br />

• Facilidade de uso;<br />

• É um software Livre com base na GPL;<br />

• Contempla a utilização de vários Storage Engines como MyISAM, InnoDB,<br />

Falcon, BDB, Archive, Federated, CSV, Solid...<br />

• Suporta controle transacional;<br />

• Suporta Triggers;<br />

• Suporta Cursors (Non-Scrollable e Non-Updatable);<br />

• Suporta Stored Procedures e Functions<br />

• Replicação facilmente configurável;<br />

• Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.<br />

3.4 Utilização<br />

Uma característica fundamental do MySQL, quiçá na origem do sucesso, é<br />

ser desenvolvido em código aberto e funcionar num grande número de sistemas<br />

operacionais: Windows, Linux, FreeBSD, BSDI, Solaris, Mac OS X, SunOS, SGI, etc.<br />

É reconhecido pelo seu desempenho e robustez e também por ser multitarefa<br />

e multiusuário. A própria Wikipédia, usando o programa MediaWiki, utiliza o MySQL<br />

para gerenciar seu banco de dados, demonstrando que é possível utilizá-lo em<br />

sistemas de produção de alta exigência e em aplicações sofisticadas.<br />

No passado (até a versão 3.x), devido a não possuir funcionalidades<br />

consideradas essenciais em muitas áreas, como stored procedures, two-phase<br />

commit, subselects, foreing Keys, ou integridade referencial, era freqüentemente<br />

20


considerado como um sistema mais “leve” e para aplicações menos exigentes,<br />

sendo preferido por outros sistemas como o PostgreSQL.<br />

4. SOBRE O MySQL<br />

4.1 Por que o MySQL demorou a expandir-se?<br />

Na época da criação deste sistema, um dos objetivos era que ele rodasse em<br />

Linux, embora existam hoje versões para diversos Sistemas Operacionais, o que<br />

acabou popularizando o sistema em 1999, quando o S.O. do Sr. Linus Torvalds e o<br />

Movimento Open Source deslanchou no mercado mundial.<br />

O resultado disso foi que hoje, o MySQL, considerado o banco de dados mais<br />

rápido do mercado, tornou-se alternativa barata e viável para uma grande parte do<br />

mercado corporativo e on-line.<br />

4.2 Mas, porque ele é tão bom?<br />

O MySQL tem quase tudo que seus concorrentes mais renomados tem, com a<br />

vantagem ser: gratuito (não totalmente – será abordado esse assunto<br />

posteriormente), seu código fonte é aberto, é leve, rápido, seguro e prático.<br />

4.3 Principais vantagens<br />

Desempenho: Como dito acima, o MySQL é considerado o banco de dados<br />

mais rápido. Agilidade tem sido um ponto bastante relevante em matéria de<br />

sistemas, principalmente no quesito internet. E para que o sonho de muitos<br />

programadores se realizem, a equipe de desenvolvimento do MySQL tem se<br />

mostrado bastante calcada no que diz respeito a performance. Isso significa que<br />

cada dia que passa o <strong>SGBD</strong> mais rápido do mercado tende a ficar mais ágil e eficaz,<br />

dando conta do recado ao qual foi designado.<br />

21<br />

4.4 Segurança


Outro ponto forte e decisivo em um banco de dados é a sua segurança. Com<br />

seus diversos tipos de tabelas, característica exclusiva do MySQL, é possível ter um<br />

banco de dados bastante seguro e estável contando com a integridade referencial,<br />

backup e restore, controle de usuários e acessos, e ainda, se necessário, verificação<br />

e correção de tabelas que foram corrompidas.<br />

4.5 Aplicabilidade<br />

Muitos perguntam se o MySQL é usado somente para aplicações da internet.<br />

A resposta é não. O MySQL pode ser utilizado como banco de dados desktop, ou<br />

seja, em aplicações corporativas, e o melhor de tudo, dá suporte a diversas<br />

linguagens de programação (como por exemplo as citadas em Características).<br />

4.6 Licença do MySQL<br />

Essa é uma grande pergunta e gera muita dúvida.<br />

Sim, o mesmo está inscrito no tipo de licenciamento GPL General Public License.<br />

Observação: o produto não pode ser comercializado junto a sistemas desenvolvidos<br />

por qualquer programador, ou seja, ele não faz parte das mídias de instalação do<br />

produto vendido por você ou por uma fabricante de softwares, a menos que o código<br />

fonte do banco seja enviado junto com ele. Caso o programador deseje desenvolver<br />

um novo produto com base no código fonte do MySQL e distribuí-lo como de sua<br />

propriedade, deverá adquirir uma licença para isso conforme as regras de<br />

licenciamento GPL.<br />

5. PRINCIPAIS COMANDOS DO MySQL<br />

Em ordem alfabética:<br />

22


mysql_affect_rows:<br />

Este comando tem o objetivo de retornar o número de linhas afetadas por uma<br />

consulta.<br />

Exemplo:<br />

$resultado = mysql_query($query);<br />

if ($resultado &amp;&amp; mysql_affect_rows() &gt; 0){<br />

OBS.: O mysql_affect_rows só será válido quando usado em “querys” que alterem o<br />

conteúdo da tabela (exemplo: insert ou update).<br />

Para se efetuar consulta simples, indicamos os comandos select ou show, utilizando<br />

junto a estes o comando mysql_num_rows.<br />

mysql_close:<br />

Este comando tem o objetivo de fechar a conexão com o banco de dados MySQL.<br />

Exemplo:<br />

$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');<br />

if (!$conexao){ die 'Não pude conectar' . mysql_error()); }else { echo 'conexão ok'; }<br />

mysql_close($conexao);<br />

OBS.: O comando mysql_close não irá fechar conexões persistentes criadas por<br />

mysql_pconnect().<br />

mysql_connect:<br />

Este comando tem o objetivo de abrir a conexão com um banco de dados MySQL.<br />

Exemplo: Está disponível no exemplo acima ( mysql_close ).<br />

mysql_create_db:<br />

Este comando tem por objetivo criar um banco de dados MySQL.<br />

Exemplo:<br />

$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');<br />

if (!$conexao){ die 'Não pude conectar' . mysql_error()); }<br />

else {<br />

if(mysql_create_db('basededados')){ echo “base de dados criada com sucesso”; }<br />

else{ echo 'Error creating database: ' . mysql_error() . “n”;<br />

} // fecha else {<br />

23


OBS.: Indicamos ao invés de utilizar o mysql_create_db, usar o mysql_query, para<br />

fazer o comando CREATE DATABASE. Para compatibilidade com versões<br />

anteriores, o mysql_create_db também poderá ser utilizado, em todo caso, ela está<br />

obsoleta.<br />

mysql_data_seek:<br />

Este comando tem por objetivo mover o ponteiro interno de uma consulta.<br />

Exemplo:<br />

$resultado = mysql_query($query);<br />

for ($i = mysql_num_rows($resultado) – 1; $i >= 0; $i --){<br />

if (!mysql_data_seek($resultado, $i)){<br />

echo “Não pude mover para a linha $i” . mysql_error() . “n”;<br />

continue;<br />

} // fecha if (!mysql_data_seek($resultado, $i)){<br />

xxx outros comandos xxx<br />

}// fecha for ($i = mysql_num_rows($resultado) – 1; $i >= 0; $i --){<br />

OBS.: A função mysql_data_seek() pode ser usada somente em conjunto com o<br />

mysql_query e não com o mysql_unbuffered_query().<br />

mysql_db_query:<br />

Este comando tem por objetivo enviar uma consulta MySQL para a base de dados.<br />

Exemplo:<br />

$resultado = mysql_db_query(“$database”, $query);<br />

OBS.: Esta função está obsoleta desde o PHP 4.0.6. Ao invés dela, aconselhamos<br />

utilizar os comandos mysql_select_db() e mysql_query().<br />

mysql_drop_db:<br />

Utilizando este comando, você poderá excluir um banco de dados MySQL.<br />

Exemplo:<br />

24


$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');<br />

if (!$conexao){ die 'Não pude conectar' . mysql_error()); }<br />

else { if(mysql_drop_db(“basededados”)){ echo “base de dados excluída com<br />

sucesso”;<br />

}// fecha if(mysql_drop_db(“basededados”)){<br />

}// fecha if (!$conexao){<br />

OBS.: Esta função também está obsoleta. Ao invés dela, é aconselhável utilizar o<br />

comando mysql_query.<br />

mysql_errno:<br />

Este comando tem por finalidade retornar o número do erro da última chamada<br />

MySQL.<br />

Exemplo:<br />

$conexao = mysql_connect("localhost", "mysql_user", "mysql_password");<br />

if (!mysql_select_db("base de dados não existente", $conexao)) {<br />

echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";<br />

}<br />

O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados<br />

não existente'<br />

mysql_error:<br />

Este comando tem por finalidade retornar a mensagem de erro da última chamada<br />

MySQL.<br />

Exemplo:<br />

$conexao = mysql_connect("localhost", "mysql_user", "mysql_password");<br />

if (!mysql_select_db("base de dados não existente", $conexao)) {<br />

echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";<br />

}<br />

O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados<br />

não existente'<br />

mysql_fetch_array:<br />

Este comando tem por finalidade retornar o resultado de uma consulta como array.<br />

Exemplo:<br />

$resultado = mysql_query ($query);<br />

25


$campo = mysql_fetch_array($resultado);<br />

$variavel = $campo['campo'];<br />

mysql_fetch_field:<br />

Este comando tem por finalidade retornar informações sobre um campo da consulta<br />

(objeto).<br />

Exemplo:<br />

mysql_connect('localhost:3306', $user, $password) or die ("Não pude conectar: " .<br />

mysql_error());<br />

mysql_select_db("database");<br />

$result = mysql_query("select * from table") or die("A query falhou: " . mysql_error());<br />

$i = 0;<br />

while ($i < mysql_num_fields($result)) { echo "Informação para a coluna $i:<br />

n";<br />

$meta = mysql_fetch_field($result,$i);<br />

if (!$meta) { echo "Informação não disponivel<br />

n"; }<br />

echo "<br />

blob: $meta-&gt;blob<br />

max_length: $meta-&gt;max_length<br />

multiple_key: $meta-&gt;multiple_key<br />

name: $meta-&gt;name<br />

not_null: $meta-&gt;not_null<br />

numeric: $meta-&gt;numeric<br />

primary_key: $meta-&gt;primary_key<br />

table: $meta-&gt;table<br />

type: $meta-&gt;type<br />

unique_key: $meta-&gt;unique_key<br />

unsigned: $meta-&gt;unsigned<br />

zerofill: $meta-&gt;zerofill<br />

";<br />

$i++;<br />

}<br />

mysql_free_result($result);<br />

mysql_fetch_lengths:<br />

Este comando tem por finalidade retornar o tamanho máximo de cada campo em<br />

uma consulta.<br />

26


Exemplo:<br />

$campo = mysql_fetch_assoc($resultado);<br />

$lengths = mysql_fetch_lengths($resultado);<br />

print_r($campo);<br />

print_r($lengths);<br />

mysql_fetch_object:<br />

Este comando tem por finalidade retornar uma linha da consulta como um objeto.<br />

Exemplo:<br />

while($campo = mysql_fetch_object($resultado)){<br />

echo $campo-&gt;Database . “n”;<br />

}<br />

mysql_fetch_row:<br />

Este comando tem por finalidade retornar uma linha da consulta como um array.<br />

Exemplo:<br />

$resultado = mysql_query ($query);<br />

while($campo = mysql_fetch_row($resultado)){<br />

$variavel = $campo ['campodatabela'];<br />

}<br />

mysql_field_name:<br />

Este comando tem por finalidade retornar o nome de um campo no consulta.<br />

Exemplo:<br />

$query = "select * from usuarios";<br />

$resultado = mysql_query($query);<br />

echo mysql_field_name($resultado, 0) . "n";<br />

echo mysql_field_name($resultado, 2);<br />

O exemplo acima retornará algo assim:<br />

id_usuario<br />

password<br />

27


mysql_field_seek:<br />

Este comando posiciona o ponteiro para um campo específico da consulta.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = mysql_query($query);<br />

mysql_field_seek($resultado,3);<br />

print_r(mysql_fetch_field($resultado));<br />

mysql_close($conexao);<br />

mysql_field_table:<br />

Este comando tem por finalidade retornar o nome da tabela à qual o campo<br />

pertence.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = mysql_query($query);<br />

$tabela = mysql_field_table($resultado, 0);<br />

echo $tabela;<br />

mysql_field_type:<br />

Este comando é similar ao mysql_field_name(). Quando executado, ele te<br />

possibilitar retornar o tipo de dado do campo.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = ($query);<br />

$fields = mysql_num_fields($resultado);<br />

$table = mysql_field_table($resultado, 0);<br />

echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";<br />

for ($i=0; $i < $fields; $i++) {<br />

$type = mysql_field_type($resultado, $i);<br />

echo $type;<br />

}<br />

28


mysql_field_flags:<br />

Através deste comando você poderá retornar os flags associados a um campo da<br />

consulta.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = ($query);<br />

$fields = mysql_num_fields($resultado);<br />

$table = mysql_field_table($resultado, 0);<br />

echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";<br />

for ($i=0; $i < $fields; $i++) {<br />

$flags = mysql_field_flags($resultado, $i);<br />

echo $flags . "n";<br />

}<br />

mysql_field_len:<br />

Utilizando este comando será possível retornar o tamanho de um campo da<br />

consulta.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = ($query);<br />

$fields = mysql_num_fields($resultado);<br />

$table = mysql_field_table($resultado, 0);<br />

echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";<br />

for ($i=0; $i < $fields; $i++) {<br />

$len = mysql_field_len($resultado, $i);<br />

echo $len;<br />

}<br />

mysql_free_result:<br />

Utilizando este comando, você poderá liberar os recursos alocados a uma consulta.<br />

deve ser chamado somente se você está preocupado em quanto da memória esta<br />

sendo usada na query num grande conjunto de resultados.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = mysql_query($query);<br />

29


while($campo = mysql_fetch_array($resultado)) {<br />

$id_campo = $campo["id_campo"];<br />

$nome = $campo["nome"];<br />

$senha = $campo["senha"];<br />

}<br />

mysql_free_result($resultado);<br />

mysql_insert_id:<br />

Utilizando este comando você poderá retornar o ID da última cláusula INSERT<br />

executada.<br />

Exemplo:<br />

$query = "INSERT INTO TABELA (produto) VALUES ('valor');<br />

$resultado = mysql_query($query);<br />

printf("A última inserção foi o id %dn", mysql_insert_id());<br />

OBS.:<br />

O comando mysql_insert_id() converte o tipo de retorno nativo da API em C do<br />

MySQL mysql_insert_id() para um tipo long (chamado int no PHP).<br />

Se a sua coluna AUTO_INCREMENT for uma coluna do tipo BIGINT, o valor<br />

retornado por mysql_insert_id() será incorreto. Recomendo ao invés deste comando<br />

utilizar a função SQL interna do MySQL LAST_INSERT_ID() em uma consulta SQL.<br />

mysql_list_fields:<br />

Através deste comando será possível retornar a relação de campos de uma<br />

consulta.<br />

Exemplo:<br />

$conexao = mysql_connect('localhost', 'usuariodomysql', 'senhadomysql');<br />

$fields = mysql_list_fields("database", "tabela", $conexao);<br />

$columns = mysql_num_fields($fields);<br />

for ($i = 0; $i < $columns; $i++) {<br />

echo mysql_field_name($fields, $i) . "n";<br />

}<br />

30


mysql_list_dbs:<br />

Através deste comando será possível listar os bancos de dados disponíveis no<br />

Servidor.<br />

Exemplo:<br />

$conexao = mysql_connect ('servidor', 'usuariodoservidor', 'senhadoservidor');<br />

$resultado = mysql_list_dbs($conexao);<br />

while($campo = mysql_fetch_object($resultado)){<br />

echo $campo->Database . “n”;<br />

}<br />

mysql_list_tables:<br />

Através deste comando será possível listar as tabelas existentes em um banco de<br />

dados MySQL.<br />

Exemplo:<br />

$nomedobd = 'nomedabasededados';<br />

if (!mysql_connect('servidor', 'usuariodoservidor', 'senhadoservidor')){<br />

echo 'Não foi possível conectar com o MySQL';<br />

exit;<br />

}<br />

$resultado = mysql_list_tables($nomedobd);<br />

mysql_num_fields:<br />

Através deste comando será possível retornar o número de campos de uma<br />

consulta.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = ($query);<br />

$campos = mysql_num_fields($resultado);<br />

echo $campos;<br />

mysql_num_rows:<br />

Através deste comando será possível retornar o número de linhas de uma consulta.<br />

31


Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = ($query);<br />

$linhas = mysql_num_rows($resultado);<br />

echo $linhas;<br />

mysql_pconnect:<br />

Utilizando este comando você poderá estabelecer uma conexão persistente com o<br />

banco de dados.<br />

Exemplo:<br />

$conexao = mysql_pconnect('servidor', 'usuariohost', 'senhahost');<br />

mysql_query:<br />

Um dos comandos mais utilizados do MySQL. Através deste comando você poderá<br />

enviar uma consulta SQL ao banco de dados MySQL.<br />

Exemplo:<br />

$query = “SELECT * FROM DATABASE”;<br />

$resultado = mysql_query ($query);<br />

mysql_result:<br />

Através deste comando você poderá retornar os dados de uma consulta.<br />

Exemplo:<br />

$query = "SELECT * FROM TABELA";<br />

$resultado = mysql_query($query);<br />

$dominio = mysql_result($resultado, 0, "nome");<br />

mysql_select_db:<br />

Utilizando este comando, você poderá selecionar um banco de dados MySQL.<br />

Exemplo:<br />

$conexao = mysql_connect('localhost', 'usuariomysql', 'senhamysql');<br />

if (!$conexao) { die('Não conectado : ' . mysql_error()); }<br />

$db_selected = mysql_select_db('tabela', $conexao);<br />

if (!$db_selected) { die ('Não pode usar a tabela : ' . mysql_error()); }<br />

32


mysql_tablename:<br />

Este comando tem por finalidade retornar o nome da Tabela de um campo.<br />

Exemplo:<br />

mysql_connect (“servidor”, “usuariodoservidor”, “senhadoservidor”);<br />

$resultado = mysql_list_tables(“basededados”);<br />

for ($i = 0; $i < mysql_num_rows($resultado); $i++)<br />

printf (“Tabela: %sn”, mysql_tablename($resultado, $i));<br />

mysql_free_result($resultado);<br />

6. FUNÇÕES DE UM DBA<br />

O termo DBA tem como significado (em inglês) DataBase Administrator,<br />

(português) Administrador de Banco de Dados. O profissional dessa área, assim<br />

como o nome indica, é o responsável pelo banco de dados. A segurança de um<br />

banco de dados é algo que envolve profissionais de diversas áreas e conhecimentos<br />

interdisciplinares. Um banco de dados totalmente seguro é algo que o DBA sozinho<br />

dificilmente consegue garantir, mas é de responsabilidade do DBA fazer todo<br />

procedimento possível para que esses dados estejam em segurança. Para<br />

33


conseguir cumprir com suas responsabilidades, o DBA naturalmente deve deter<br />

algumas competências. O profissional deve conhecer as seguintes condições:<br />

34<br />

6.1 Conhecimento em Sistemas Operacionais<br />

Ainda que existam <strong>SGBD</strong>’s que rodem em mais de um banco de<br />

dados, eles são dependentes do sistema operacional onde estão<br />

instalados. É importante que o DBA conheça conceitos ligados ao<br />

sistema operacional (processos, threads, gerenciamento de memória,<br />

paginação, sistema de arquivos, etc.) bem como a implementação e<br />

otimização desses conceitos no Sistema Operacional que hospeda o<br />

banco de dados. Isso auxilia na configuração e otimização do sistema<br />

operacional ao banco de dados utilizado.<br />

6.2 Conhecimento em Redes<br />

Os bancos de dados são em sua esmagadora maioria compartilhados.<br />

Se os dados são compartilhados é certo que o acesso será feito via<br />

rede (Intranet, Internet e Extranet) e conhecer como essa transmissão<br />

ocorre é importante. É desejável que o DBA conheça características da<br />

rede (capacidade de tráfego, protocolos, etc.). Esse conhecimento<br />

pode ajudar a resolver problemas e aperfeiçoar o acesso ao banco de<br />

dados.<br />

6.3 Compreensão da arquitetura em banco de dados<br />

Entender como funciona um banco de dados, é um pouco mais do que<br />

conhecer uma tecnologia específica (ORACLE, DB2, SQL Server, etc.).<br />

Entender alguns dos fundamentos de banco de dados (algoritmos de<br />

indexação, concorrência, transações, etc.) podem ser tão valiosos<br />

quanto conhecer as implementações de um produto específico. Bons<br />

DBA’s não são aqueles que conhecem todos os comandos de um<br />

produto, mas certamente aqueles que sabem o que acontece nos<br />

“bastidores”.


35<br />

6.4 Noções do sistema de armazenamento<br />

A persistência dos dados é realizada em algum local próprio para<br />

armazenamento. É importante ao DBA ter conhecimento dos princípios<br />

que são utilizados nos sistemas de armazenamento (RAID, SAN, NAS,<br />

etc.). Esse conhecimento pode ajudar o DBA a utilizar a infra-estrutura<br />

de armazenamento para um projeto físico eficiente.


36<br />

7. INSTALAÇÃO DO MySQL - IMAGENS<br />

Pacote disponível no site http://dev.mysql.com/downloads<br />

Após duplo click no arquivo executável do MySQL, surgirá essa tela<br />

Preparação do Windows Installer (Instalador do Windows)


37<br />

Preparação do MySQL Installer (Instalador do MySQL)<br />

Preparador das configurações do MySQL


39<br />

Tela de Boas Vindas do MySQL e início da instalação


40<br />

Termos de licenciamento do produto


41<br />

É necessário aceitar os termos para prosseguir com a instalação


42<br />

*Obs.: somente após marcar a caixa de seleção surge o botão “Next” ativado para prosseguir


43<br />

Aqui é importante que o computador esteja conectado a internet, pois será verificado se há atualização do sistema<br />

*Obs.: Há uma caixa de seleção que, se marcada, poderá pular essa etapa, porém recomenda-se não marcar, deixando<br />

verificar possíveis atualizações


45<br />

Verificação concluída


47<br />

Nessa tela será escolhido o tipo e local da instalação (escolhemos o “Developer Dafault” e deixamos o local padrão)


49<br />

Aqui é realizado uma checagem dos softwares pré-instalados obrigatórios antes de continuar<br />

Observa-se que está faltando a instalação dos dois últimos. Será feito nas próximas telas


50<br />

Progresso de download do Microsoft Visual C++ 2010 32-bit runtime (primeiro dos faltantes)<br />

Extração dos arquivos de instalação do software requerido


51<br />

Tela inicial de instalação do Microsoft Visual C++ 2010


53<br />

Existe um contrato de licença de uso, onde é necessário aceitar os termos para continuar a instalação<br />

Obs.: somente após marcar a caixa de seleção aceitando os termos, o botão “Install” fica ativo para prosseguir


54<br />

Progresso da instalação do Microsoft Visual C++ 2010


56<br />

<strong>Instalação</strong> concluída<br />

Progresso de download do Visual Studio Tools for Office 2010 Runtime (segundo e último dos faltantes)


58<br />

Tela de Boas Vindas da <strong>Instalação</strong> do Microsoft Visual Studio 2010 Tools para Office Runtime<br />

Exibição do contrato de licença de uso do software


60<br />

É necessário aceitar os termos para prosseguir a instalação.<br />

*Obs.: somente após marcada a caixa de seleção o botão “Instalar” fica ativo<br />

Progresso da instalação do software


62<br />

<strong>Instalação</strong> finalizada


64<br />

Checagem dos softwares pré-instalados requeridos (agora OK)


66<br />

Softwares do pacote do MySQL que serão instalados


67<br />

Progresso da instalação do MySQL Server 5.5.27


68<br />

Progresso da instalação do MySQL Workbench CE 5.2.41


69<br />

Progresso da instalação do MySQL Notifier 1.0.3<br />

Progresso da instalação do MySQL for Excel 1.0.6


70<br />

Progresso da instalação do Connector/ODBC 5.1.11


71<br />

Progresso da instalação do Connector/C++ 1.1.0


72<br />

Progresso da instalação do Connector/C 6.0.2<br />

Progresso da instalação do Connector/J 5.1.20.0


73<br />

Progresso da instalação do Connector/NET 6.5.4


74<br />

Progresso da instalação do MySQL Documentation 5.5.27 (documentação nativa do MySQL 5.5.27)


75<br />

Progresso da instalação do Samples and Examples 5.5.27


76<br />

Conclusão da instalação dos softwares do pacote MySQL


77<br />

<strong>Configuração</strong> do MySQL Server 5.5.27


79<br />

Opções de configuração do MySQL Server 5.5.27 (deixamos a configuração padrão)


80<br />

<strong>Configuração</strong> de senhas do root (usuário padrão principal) e adição de novos usuários


81<br />

Configuramos uma senha para o root


82<br />

Finalização da configuração (também configuramos o padrão)


84<br />

Finalização da instalação do pacote MySQL


85<br />

Como deixamos marcada a caixa de seleção para iniciar o Workbench, surge a tela inicial de administração do MySQL


As 5 pizzas mais vendidas – Quantidade e Valor<br />

Vendas por Semana - Quantidade<br />

MUSSARELA 59<br />

CALABRESA 49<br />

PORTUGUESA 35<br />

FRANGO COM CATUPIRI 42<br />

NAPOLITANA 39<br />

224<br />

86


87<br />

Vendas por Semana - Valores<br />

Gráfico de Vendas por Semana (quantidade) – 5 mais vendidas


MUSSARELA R$ 1.180,00<br />

CALABRESA R$ 980,00<br />

PORTUGUESA R$ 1.015,00<br />

FRANGO COM CATUPIRI R$ 1.134,00<br />

NAPOLITANA R$ 975,00<br />

R$ 5.284,00<br />

88<br />

Gráfico de Vendas por Semana (valores) – 5 mais vendidas


89<br />

8. HISTÓRIA DA PIZZARIA VECCHIA MAMMA


Por: José Justino Berto (proprietário)<br />

“Em 2002 fui convidado para trabalhar nos fins de semana na Pizzaria Vecchia<br />

Mamma. Tudo estava indo muito bem, até que um dos sócios sofreu um acidente.<br />

Diante do fato, ele foi obrigado a desistir da sociedade. A partir daí comecei a<br />

trabalhar todos os dias da semana. Surgiram crises e dificuldades das mais<br />

variadas. Acabei me tornando um dos sócios, mas ainda assim as coisas pareciam<br />

não caminhar na direção desejada. Foi então que decidi seguir o caminho sozinho<br />

me tornando proprietário. Atualmente as coisas estão melhorando, graças a Deus.”<br />

90


9. APLICATIVO WEB – IMAGENS<br />

Desenvolvido para Pizzaria Vecchia Mamma<br />

91<br />

Tela Site da Pizzaria Vecchia Mamma<br />

http://www.jnpizzaria.com.br


92<br />

Tela de Cadastro e Login<br />

Tela onde o cliente poderá fazer os pedidos


93<br />

Tela com a opção de pedir uma pizza metade um sabor metade outro sabor


94<br />

Tela do ambiente administrativo


95<br />

Tela de visualização dos pedidos do dia<br />

PopUp de impressão do pedido (único)


96<br />

Tela de cadastro de funcionários


10. CONCLUSÃO<br />

Tela de pesquisa de funcionários<br />

Tela de cadastro de novos produtos<br />

No início do projeto, a proposta de implantar um sistema web para controle de uma<br />

pizzaria nos pareceu bem complexo, o que de fato foi, mas com o conhecimento que<br />

a equipe possuía do assunto e com intensas pesquisas conseguimos concluir o<br />

97


projeto. A gratificação maior foi saber que com a implantação do sistema proposto,<br />

houve efetivamente uma redução no fluxo de ligações, ganho de tempo na<br />

elaboração dos pedidos e diminuiu o índice de pedidos errados enviados à cozinha.<br />

O uso do <strong>SGBD</strong> MySQL foi significativo por se tratar de ser um software gratuito,<br />

leve, prático, de fácil instalação e compatível com aplicativos web.<br />

11. REFERÊNCIAS<br />

Todas as pesquisas, exceto a de campo, tiveram como base o procurador do<br />

site Google (http://www.google.com.br). Abaixo segue os links e o dia da<br />

pesquisa.<br />

98


Fonte acessada em 13/10/2012<br />

http://www.webmaster.pt/mysql-principais-comandos-mysql-769.html<br />

Fonte acessada em: 21/09/2012<br />

http://www.superphp.com.br<br />

Fonte acessada em: 21/09/2012<br />

http://pt.wikipedia.org/wiki/MySQL<br />

Fonte acessada em: 21/09/2012<br />

http://www.devmedia.com.br/mysql-quem-e-voce/1752<br />

Fonte acessada em: 21/09/2012<br />

http://www.infoescola.com/informatica/mysql/<br />

Fonte acessada em: 21/09/2012<br />

http://www.oficinadanet.com.br/artigo/484/por_que_usar_mysql<br />

Fonte acessada em: 21/09/2012<br />

http://gustavomaiaaguiar.wordpress.com/2008/07/13/a-figura-do-administrador-debanco-de-dados-dba<br />

Fonte acessada em: 21/09/2012<br />

http://www.plugmasters.com.br/sys/materias/108/1/<strong>SGBD</strong>---Sistema-Gerenciador-de-<br />

Banco-de-Dados<br />

Fonte acessada em: 21/09/2012<br />

99


http://sql4all.blogspot.com.br/2010/05/caracteristicas-gerais-de-um-sgbd.html<br />

Fonte acessada em: 21/09/2012<br />

www.ic.unicamp.br/~beatriz/cursos/mc536/slides/introducao.pdf<br />

Fonte acessada em: 21/09/2012<br />

http://www.plugmasters.com.br/sys/materias/313/1/A-figura-do-administrador-do-<br />

Banco-de-Dados-%28DBA%29<br />

Fonte acessada em: 21/09/2012<br />

http://ricardo2aoc.wordpress.com/sistema-de-gestao-de-base-de-dados-sgbd/<br />

100

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!