Download - Guia Pratico Mysql
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 1/22P e d r o N e v e s e R u i R u a s
D0
O M y S Q L 4 – m a is c o n h e c id o em a i s u t il iz a d o d o s s i s te m a s d eg e s t ã o d e b a s e s d e d a d o s r e l a -c i o n a i s o p e n s o u r c e – é , n e s t el iv r o , a p r e s e n t a d o e m a m b i e n t e s W i n d o w s e L i n u x / U n i x , d ai n s ta l a ç ã o à c o n f i g u r a ç ã o , i m -p l e m e n t a ç ã o e a d m i n is tr a ç ã o ,s e m p r e s u p o rt a d o p o r e x e m p lo sp r á t i c o s . A s s u n to s m a is a v a n ç a d o s c o m oi n d e x a ç ã o , o p t im i z a ç ã o e p e r f o r-m a n c e , m ig r a ç ã o e r e p l ic a ç ã od e d a d o s , b a c k u p s, se g u r a n ç a et ra n s a c ç õ e s , e n t r e o u t r o s , s ã ot a m b é m t r a t a d o s .O l iv r o ta m b é m e x e m p l if ic a au t i li z a ç ã o d a s p r in c i p a i s l in g u a -g e n s / t e c n o lo g i a s d e p r o g r a m a -ç ã o ( c o m o J a v a , P e r l , P H P ,
C / C + + , .N E T e O D B C ) p a ra od e s e n v o lv im e n t o d e w e b si te s d i-n â m ic o s c o m r e c u rs o a b a s e s d ed a d o s .
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 2/22
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 3/22
o guia
prático.do.MySQL
<autores> Pedro M C Neves
Rui P F Ruas
Portugal, 2005
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 4/22
Reservados todos os direitos por Centro Atlântico, Lda.Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorizaçãoexpressa dos editores da obra.
O GUIA PRÁTICO DO MySQLColecção: Tecnologias
Autores: Pedro M. C. Neves e Rui P. F. Ruas
Direcção gráfica: Centro AtlânticoRevisão final: Centro AtlânticoCapa: Paulo Buchinho
© Centro Atlântico, Lda., 2005Av. Dr. Carlos Bacelar, 968 - Escr. 1 - A4764-901 V. N. Famalicão
Rua da Misericórdia, 76 - 1200-273 Lisboa
PortugalTel. 808 20 22 21
Design e Paginação: Centro AtlânticoImpressão e acabamento: Inova1ª edição: Fevereiro de 2005
ISBN: 972-615-006-0
Depósito legal: 222.814 /05
MySQL® é uma marca registadas pela MySQL AB.Microsoft®, WINDOWS® e Internet Explorer® são marcas registadas pela Microsoft Corporation.HTML, CSS, XML, DOM são marcas ou marcas registadas pela W3C® - World Wide WebConsortium, Massachusetts Institute of Technology.JAVASCRIPT® é uma marca registada pela Sun Microsystems, Inc., utilizada sob licenciamentopara tecnologia inventada e implementada pela Netscape.Marcas registadas: todos os termos mencionados neste livro conhecidos como sendo marcasregistadas de produtos e serviços, foram apropriadamente capitalizados. A utilização de um termoneste livro não deve ser encarada como afectando a validade de alguma marca registada deproduto ou serviço.O Editor e os Autores não se responsabilizam por possíveis danos morais ou físicos causadospelas instruções contidas no livro nem por endereços Internet que não correspondam às Home- Pages pretendidas.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 5/22
Página ▪
Sobre este Livro 9
Nota introdutória 11
Convenções tipográficas 12
Organização do livro 13
Audiência 14
Pressupostos 15
Base de Dados vs SGDB 16
Projecto GIL (Gestão Integrada de Livros) 17
I. Introdução ao MySQL 19
O que é o MySQL? 21
História 22
Funcionalidades 23
Versões 24
Licenciamento 25
Evolução do MySQL 26
Instalação em Windows 27
Instalação em Linux 40
Procedimentos pós-instalação 50
Programas para MySQL 55
Programa mysql 58
Tipos de dados 74
Motores de base de dados 79
Índice
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 6/22
II. Desenho e implementação de umabase de dados em MySQL
81
Introdução 83
Desenho conceptual 84
Desenho lógico 88
Desenho físico 93
Implementar uma base de dados em MySQL 94
Projecto GIL – desenho da base de dados 124
III. Preparar e usar uma base de dadosem MySQL
133
Introdução135
Arquitectura e integração aplicacional 136
Segurança com o MySQL 141
Transacções com o MySQL 158
Programação com o MySQL 169
Projecto GIL – implementação em PHP 255
IV. Utilização avançada do MySQL 283
Introdução 285
Configuração do servidor MySQL 285
Análise dos ficheiros de log 288
Optimização 291
Salvaguarda (backups) e Recuperação 301
Replicação 307
Migração de dados 311
Mecanismos de protecção 313
Mecanismos de criptografia 320
Índice
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 7/22
V. Considerações finais 323
Introdução 325
Ferramentas externas 325
Suporte e Documentação368
MySQL 4.1 369
VI. Anexos 377
Programas para MySQL 379
Programa mysql 380
Tipos de dados em MySQL 383
Instruções SQL 385
Funções PHP para trabalhar com MySQL 398
Glossário 400
Índice
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 8/22
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 9/22
Sobre este livro
ÍNDICE
Nota introdutória ...................................................................................................11 Convenções tipográficas ...................................................................................12 Organização do livro............................................................................................13 Audiência....................................................................................................................14 Pressupostos............................................................................................................15 Base de Dados vs SGDB ...................................................................................16 Projecto GIL – apresentação ..........................................................................17
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 10/22
colecção tecnologias CENTRO ATLÂNTICO
10
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 11/22
o guia prático do MySQL sobre este livro
11
Nota introdutória
Na realidade empresarial actual, em que cada vez mais os Sistemas deInformação são uma necessidade inquestionável e em que os custoscom o licenciamento do software muitas vezes inviabilizam a moderniza-
ção das organizações, o software apresentado em open source, semcustos de licenciamento e/ou com custos muito reduzidos, poderá serum contributo importante em diversos cenários.
Através da utilização de ferramentas de grande qualidade testadas emmilhões de projectos reais, quer de pequena quer de grande dimensão,como MySQL, Linux e Java podemos criar soluções que poderão serexecutadas em diferentes plataformas com um custo de propriedade(TCO) reduzido.
O objectivo fundamental deste livro é fazer com que o leitor obtenharapidamente o retorno do tempo investido na aprendizagem do Sistema
de Gestão de Bases de Dados (SGBD) MySQL. Isto é, ao estudar e exe-cutar os exercícios descritos neste livro o leitor ficará a conhecer as ca-racterísticas, capacidades e domínio de utilização do MySQL, bem comodo seu potencial futuro e desta forma melhor poder avaliar o enquadra-mento no desenho dos seus Sistemas de Informação (SI).
Neste livro foi adoptado um formato tipicamente operacional, de forma apermitir apresentar os conceitos teóricos associados a uma visão práticae, desta forma, possibilitar a sua mais rápida compreensão.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 12/22
colecção tecnologias CENTRO ATLÂNTICO
12
Convenções tipográficas
As convenções tipográficas utilizadas neste livro são as seguintes:
Tipo de Estilo Significado
Itálico
As expressões apresentadas em itálico representam:• Expressões em língua estrangeira, para as
quais não existem traduções comummenteaceites.
• Instruções de código externas às áreas decódigo.
• Referências a ficheiros, directorias (pastas)ou aplicações.
Ícone Significado
<> Área de código ou instrução para exemplo de funcionalidade.
≈ Área de explicação de código para exemplo.
Ξ Área de apresentação do resultado do exemplo.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 13/22
o guia prático do MySQL sobre este livro
13
Organização do livro
Introdução ao MySQL – Este capítulo foca as características base,quer ao nível conceptual, quer ao nível funcional do motor (SGBD – Sis-
tema Gestor de Bases de Dados) de bases de dados MySQL, disponibili-zando a informação necessária para a construção da infra-estrutura desuporte ao servidor de bases de dados MySQL e sua utilização.
Desenho e implementação de uma base de dados em MySQL –Onde se descreve o desenho conceptual, lógico e físico de bases de da-dos relacionais que irão ser suportadas pelo SGBD MySQL. Desenho dabase de dados relativa ao projecto de exemplo do livro.
Preparar e usar uma base de dados em MySQL – Mostra-se neste
capítulo a componente de integração aplicacional do MySQL com as dife-rentes linguagens/tecnologias existentes. Destaque aos assuntos deSegurança, Transacções e Programação. Implementação, em PHP, dosprogramas relativos ao projecto de exemplo do livro.
Utilização avançada do MySQL – Este capítulo aborda a potenciaçãoda utilização do MySQL, nomeadamente nas questões sobre: performan-ce, salvaguarda (cópia de segurança), migração e replicação de dados,entre outras.
Considerações finais – Este capítulo perspectiva a evolução doMySQL, tanto ao nível da extensão dos conhecimentos adquiridos, comoao nível da própria ferramenta. Apresentação das ferramentas externasMySQL Administrator, MySQL QueryBrowser e phpMyAdmin.
Anexos – Consiste na compilação organizada de um conjunto de guiasde suporte ao desenvolvimento de soluções baseadas em MySQL, nome-adamente em quadros resumo com: funções, instruções, propriedades,métodos e um glossário.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 14/22
colecção tecnologias CENTRO ATLÂNTICO
14
Audiência
Este livro destina-se a utilizadores, técnicos e responsáveis por Sistemasde Informação, com ou sem conhecimentos em Bases de Dados Relacio-nais, que desejem adquirir conhecimentos e/ou avaliar o esforço/custo
de soluções suportadas pelo SGBD MySQL.
Para os leitores com conhecimentos prévios, mostrar o raciocínio e alógica da construção de soluções simples em MySQL, poderá ser umamais valia na consolidação dos seus próprios conhecimentos, bem comona reciclagem e aprendizagem de novos conceitos.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 15/22
o guia prático do MySQL sobre este livro
15
Pressupostos
Este livro baseou-se numa preocupação constante: sempre que possível,garantir a independência de sistema operativo e de linguagem/tecnolo-gia de programação utilizada (o que nem sempre é possível, nomeada-
mente se se desejar utilizar a tecnologia .NET em sistemas operativosbaseados em UNIX).
A preocupação em utilizar processos idênticos na apresentação dos te-mas para os diferentes sistemas operativos originou a opção de utilizarinstruções em linha de comando em detrimento de ferramentas gráficasmais intuitivas.
Pressupõe-se que existam conhecimentos básicos ao nível das lingua-gens/tecnologias de programação utilizadas (HTML, CSS, SQL, JAVA,Perl, Python, PHP, C e .NET) para uma total compreensão dos exercíciosrelativos à manipulação dos dados armazenados com o MySQL.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 16/22
colecção tecnologias CENTRO ATLÂNTICO
16
Base de Dados vs SGDB
Por vezes confundimos os conceitos Base de Dados e Sistema de Gestão
de Base de Dados (SGBD).
De forma a clarificar esta eventual confusão procedemos à definição dosdois conceitos:
• Uma Base de Dados consiste num conjunto integrado de dados,utilizável para múltiplos objectivos e acessível por múltiplos tiposde utilizadores de uma forma concorrente, reflectindo os propósi-tos fundamentais de:
o Integração;o Partilha;o Concorrência;o Múltiplos objectivos;o Múltiplos tipos de utilizadores.
• Um SGBD consiste no software que gere todo o acesso a uma oumais bases de dados, permitindo a definição, acesso concorrente,manipulação e controlo dos dados, assegurando a integridade, segu-rança e recuperação das bases de dados.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 17/22
o guia prático do MySQL sobre este livro
17
Projecto GIL – apresentação
O projecto Gestão Integrada de Livros (GIL) surge com o objectivo deligar o MySQL à sua aplicabilidade prática, capítulo a capítulo, para queno final possamos obter uma solução que possa servir uma necessidade
real.
Consideremos um sistema automático de gestão integrada de livros queinclua os seguintes processos:
1. Gestão da informação de editoras e das suas colecções;2. Gestão de autores;3. Gestão de livros;4. Gestão da catalogação dos livros em colecções;5. Pesquisa de livros por diferentes critérios.
A cada livro que adicionamos ao sistema devemos registar a seguinte in-formação obrigatória:
• ISBN, título, preço e data da edição. Opcionalmente podemosregistar a seguinte informação: imagem da capa, nº de páginas eresumo da introdução. Por último, deverá ficar associado a cadalivro uma editora, uma colecção (caso pertença a uma) e os au-tores que o escreveram.
A ficha de editora conterá,• a sua designação social (obrigatória), o telefone, a morada e o
código postal. Uma editora tipicamente organiza os seus livrosem colecções, em que cada colecção é descrita no sistema comuma designação.
Para uma ficha de autor, armazenamos a seguinte informação:• nome (obrigatório), nº contribuinte, fotografia, resumo do cur-
riculum vitae, nº telefone de contacto, morada e código postal.
No processo de pesquisa de livros, devemos considerar a possibilidadede pesquisa pelo título do livro ou pelo nome do autor.
Dada a extensão que implicaria a realização completa de um projectodeste tipo, iremos apenas, do ponto de vista aplicacional, abordar oprocesso (nº 5) relativo à pesquisa de livros por diferentes critérios.No final da realização do projecto GIL o leitor ficará com noções práticassobre gestão de bases de dados em MySQL, bem como da construção deaplicações que permitam o seu manuseamento.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 18/22
colecção tecnologias CENTRO ATLÂNTICO
18
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 19/22
I. Introduçãoao MySQL
ÍNDICE
O que é o MySQL? ............................................................................................................... 21
História.................................................................................................................................. 22
Funcionalidades.................................................................................................................... 23
Versões................................................................................................................................. 24
Licenciamento....................................................................................................................... 25
Evolução do MySQL ............................................................................................................. 26
Instalação em Windows ........................................................................................................ 27
Obter a versão recomendada do ficheiro binário ...........................................................................27 Proceder à instalação do MySQL...................................................................................................31 Arranque do MySQL ............................... ................................. .................................. ..................... 32 Testar o funcionamento do MySQL................................................................................................34 Paragem do MySQL ............................... ................................ ................................ ........................ 35 Criar o MySQL como um serviço do Windows...............................................................................36
Instalação em Linux .............................................................................................................. 40
Obter os pacotes RPM ...................................................................................................................40
Proceder à instalação do MySQL...................................................................................................43 Instalação mínima padrão 43 Inicializar as tabelas dos privilégios 45
Arranque do MySQL ............................... ................................. .................................. ..................... 46 Testar o funcionamento do MySQL................................................................................................47 Paragem do MySQL ............................... ................................ ................................ ........................ 48
Procedimentos pós-instalação.............................................................................................. 50
Alterar a senha do utilizador root....................................................................................................50 Alterar os privilégios de defeito.......................................................................................................53
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 20/22
colecção tecnologias CENTRO A TLÂNTICO
20
Programas para MySQL .......................................................................................................55
Execução de programas ............................... ................................. ................................ .................56 Programa mysql ....................................................................................................................58
Obter ajuda sobre as opções existentes.........................................................................................61 Iniciar uma sessão em modo interactivo.........................................................................................62 Principais instruções de utilização .............................. .............................. ............................... .......63
Comandos 63 Utilização de uma base de dados 64 Verificação 65
Terminar uma sessão em modo interactivo....................................................................................73 Tipos de dados......................................................................................................................74
Tipo Numérico.................................................................................................................................74 Tipo Texto .......................................................................................................................................76 Tipo Data.........................................................................................................................................77 Tipo ENUM......................................................................................................................................77 Tipo SET .........................................................................................................................................78
Motores de base de dados (ISAM, MyISAM, HEAP, InnoDB, BDB) ....................................79
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 21/22
I. Introduçãoao MySQL
O que é o MySQL?
O MySQL é um sistema de gestão de bases de dados relacionais,
suporta SQL, é open source e é um dos SGBDs para utilização profis-
sional mais utilizado (conta com mais de 5 milhões de instalações acti-
vas) e mais conhecido a nível mundial.
O MySQL foi desenvolvido e é disponibilizado pela empresa MySQL AB
Limited Company, que actualmente vende um conjunto de serviços e
produtos relacionados com a tecnologia MySQL.
Na lista dos principais clientes deste SGBD constam nomes como:
Alcatel, AOL, The Associated Press, Caterpillar, Cox Communications,DaimlerChrysler, Dow Jones, EarthLink, Enercon, Ericsson, Google,
Hoover's Online, Hewlett-Packard, Lucent, Lufthansa, NASA, Nortel,
NYSE, Omaha Steaks, Sabre Holdings, Siemens, Suzuki, Texas
Instruments, Time Inc., UPS e US Census Bureau.
8/2/2019 Guia Pratico Mysql
http://slidepdf.com/reader/full/guia-pratico-mysql 22/22
P e d r o M a n u e l d a C o n c e iç ã o d a s N e v e s , n a s c id o e m 1 9 6 8 , t e m f o r m a ç ã oe s p e c ia l iz a d a e m C o m u n i c a ç õ e s A v a n ç a d a s e é c e r t if ic a d o p e l a S A P.D e s d e o a n o 2 0 0 0 , c o m o c o n s u l to r s é n io r n a C a s e E d i n fo r, d e s e m p e n h af u n ç õ e s d e c o n s u l to r i a e m A B A P, S A P P o r t a l s, g e s tã o d e c o n t e ú d o s e g e s tã o
d e c o n h e c i m e n t o .Te m u m a v a s ta e x p e r iê n c i a c o m o f o r m a d o r e m a m b i e n t e s I n te r n e t , C R Me E R P, i n c lu i n d o n a p r o d u ç ã o d o s r e s p e c t iv o s m a n u a i s.É a u t o r d o l i v ro O G u ia P r á tic o d a H T M L , ta m b é m p u b l ic a d o p e l o C e n t ro
A t lâ n t ic o .
R u i P e d r o F e r r e ir a R u a s , n a s c id o e m 1 9 7 0 , é l ic e n c ia d o e m In f o r m á t ic ap e l a F a c u l d a d e d e C iê n c i a s d a U n i v e r si d a d e C lá s s ic a d e L i s b o a e p o s s u id i v e r s a s c e r t if ic a ç õ e s a t ri b u í d a s p e l a s S A P, B r a i n B e n c h e i X O S .P r e se n t e m e n t e é c h e f e d e p r o j e c to n a I n d r a , a p ó s te r d e s e m p e n h a d of u n ç õ e s e m i n s ti t u iç õ e s c o m o a S o f t f F in a n ç a , E d i n fo r, Pa r q u e E X P O ’ 9 8 eC A S E E d i n f o r
O M y S Q L é u m (S G B D ) s is te m a d e g e s t ã o d e b a s e s d e d a d o s r e la c io n a i s – o m a i s c o n h e c i d o e m a i su t il iz a d o d o s S G B D s o p e n s o u r c e , c o m m a i s d e 5 m i lh õ e s d e i n s ta l a ç õ e s a c t iv a s ( A O L , D a i m l e rC h r y sl e r,G o o g l e , H e w l e tt- P a c k a r d , L u c e n t , L u f th a n s a , N A S A , N o r t e l, N Y S E , S a b r e H o l d i n g s , S i e m e n s , S u z u k i , Te x a sI n s tr u m e n t s, T i m e I n c ., U P S , e t c .) .
E s te l iv r o , o r g a n i z a d o e m c in c o c a p í tu l o s p r in c i p a i s, c o m d i v e rs o s a n e x o s n o f in a l , p r o p õ e a o l e it o r u mp r o j e c to c o m m ú l ti p lo s e x e r c íc io s a o l o n g o d a s s u a s c e r c a d e 4 0 0 p á g i n a s e f ic a z m e n t e i lu s t r a d a s .
O p r o j e c to p r á t i co a p r e s e n t a d o n o l iv r o c o m e ç a p o r s e rv ir d e b a s e à d is c u s sã o i n tr o d u t ó r ia s o b r e b a s e sd e d a d o s r e la c i o n a i s e s o b r e a s c a r a c te r ís t i ca s d o M y S Q L , s e g u i n d o - s e e n t ã o o d e s e n h o c o n c e p t u a l ,l ó g ic o e f í si co d a b a s e d e d a d o s r e la c i o n a l q u e i r á a p o i a r o s e x e r cí c io s d e p r o g r a m a ç ã o .
A s v e r s õ e s 4 .0 e 4 .1 d o M y S Q L a b o rd a d a s s ã o t r a ta d a s q u e r e m a m b ie n te s W in d o w s q u e r e m a m b ie n te sL in u x / U n i x , d a i n s t a la ç ã o à c o n f ig u r a ç ã o , im p l e m e n t a ç ã o e a d m in i s tr a ç ã o .
R e s u l ta d o d a s u a l o n g a e x p e r iê n c i a p r o f is s io n a l , o s a u t o r e s m o s t ra m - n o s c o m o u t i l iz a r o M y S Q L e mc o n j u n t o c o m a l g u m a s d a s p r in c i p a i s l i n g u a g e n s / te c n o l o g i a s d e p r o g r a m a ç ã o p a r a o d e s e n v o l v im e n t od e w e b s i te s d i n â m i co s c o m r e c u r s o a b a s e s d e d a d o s . S ã o a s s im a p r e s e n t a d o s d iv e r s o s e x e m p l o s co mJ a v a , Pe r l, P H P, C / C + + , .N E T e O D B C .
P a r a fa c i li ta r a o p e r a ç ã o c o m a s e s tr u t u ra s e o s d a d o s a r m a z e n a d o s n a s b a s e s d e d a d o s M y S Q L ,d e m o n s t ra - s e t a m b é m c o m o u t i l iz a r a s fe r ra m e n t a s e x te r n a s M y S Q L A d m in i st r a to r, M y S Q L Q u e r y B r o w s e r e p h p M y A d m in .
A s s u n to s m a is a v a n ç a d o s c o m o in d e x a ç ã o , o p t im iz a ç ã o e p e r fo r m a n c e , m ig r a ç ã o e r e p l ic a ç ã o d e d a d o s ,c ó p i a s d e s e g u r a n ç a , s e g u r a n ç a e t ra n s a c ç õ e s , e n t re o u t ro s , sã o t a m b é m d i sc u t id o s .