Professional Documents
Culture Documents
Edio n1 - 2007
Gesto e Execuo
Contedo e Tecnologia
Apresentao
Este material tem por objetivo apresentar os conceitos que envolvem o desen-
Lembre-se de que a sua passagem por esta disciplina ser tambm acompa-
nhada pelo Sistema de Ensino Tupy Virtual ,seja por correio postal, fax, telefone, email ou Ambiente Virtual de Aprendizagem.
Entre sempre entre em contato conosco quando surgir alguma dvida ou difi-
culdade.
Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de co-
nhecimento nessa jornada o nosso maior objetivo. Acredite no seu sucesso e bons
momentos de estudo!
Equipe Tupy Virtual.
SUMRIO
Carta do Professor
Caro aluno,
dos.
mesmo em outros pases. necessrio que exista uma ferramenta para auxiliar no
armazenamento das informaes e no acesso a essas informaes. Essa ferramenta
j existe, o banco de dados, que torna possvel o acesso s informaes sobre funcionrios, clientes, produtos e vendas de uma empresa, auxiliando no gerenciamento
de todas as informaes.
jam estudados, por isso, durante esta disciplina, conheceremos os conceitos que envolvem a criao de um banco de dados, assim como, conheceremos os comandos
utilizados pelo banco de dados MySQL para a criao de um banco de dados e manipulao dos registros nele armazenados.
Cronograma de Estudos
Horas/aula
5
10
5
10
10
10
20
10
Contedos
Introduo a Banco de Dados
Modelo Entidade Relacionamento
Instalando o Vertrigo
Criando um Banco de Dados no
MySQL
Criando, Alterando e Excluindo
Tabelas no MySQL
Manipulao de Registros em
MySQL
Construindo um Projeto
Utilizando o PhpMyAdmin para
Criar um Banco de Dados
Data/Avaliao
_/_ a _/_
_/_ a _/_
_/_ a _/_
Plano de Estudos
Ementa
Aula 1
Contedos da aula
pertencem, sendo assim, estudaremos uma srie de conceitos e tcnicas que visam
ao gerenciamento de Banco de Dados. Iniciaremos pela apresentao dos princpios
dos sistemas de banco de dados.
Boa aula!
1 INTRODUO
pessoais do aluno.
cos de Dados so extremamente importantes para as organizaes, no que diz respeito ao armazenamento e manipulao das informaes de uma organizao.
organizado das informaes, visando otimizao dos sistemas e, desse modo, facilitar: entrada de dados, alteraes, consultas, gerao de formulrios e relatrios,
visando ao uso adequado dessas informaes.
O que so dados?
os dados so agrupados de forma lgica, temos a informao. No exemplo, chegamos ao resultado quando esclarecemos que esses dados so o nome e o cargo.
2.2 Informao
10
2.4 Registro
endereo e com o cargo do Gabriel, pois a lgica desse conjunto justamente o fato
de que todos os campos esto mostrando informaes do Gabriel.
2.5 Entidades
las. So os conjuntos lgicos de registros. Se juntarmos um conjunto lgico de registros de clientes com um conjunto de registros de produtos no teremos uma tabela ou
entidade, mas uma mistura de informaes.
11
rios em um arquivo, com vrias fichas de papel, uma para cada funcionrio, imagine a
dificuldade de atualizar as informaes de um funcionrio, ou de fazer uma pesquisa
se, por exemplo, tivssemos interesse de saber os aniversariantes do dia, ou da semana ou do ms.
12
es esto cadastrados em diferentes lugares. Se existe redundncia, existe inconsistncia, que, no ambiente tradicional, tambm alta.
O que inconsistncia?
faz como quer, ocorrendo alta despadronizao e difcil e cara manuteno (quando
necessria) dos programas. Cada um chama os seus campos como bem entende.
ERRADO.
fica, alguns dados podem ser armazenados repetidas vezes. Todo administrador de
banco de dados precisa ter uma boa poltica de backup, portanto, existe a uma condio de redundncia.
13
Como o backup obrigatrio, a redundncia existe no ambiente atual, mas controlada. A inconsistncia tambm existe no ambiente atual, mas controlada.
de dados.
3.1 Reduo ou eliminao da Redundncia
14
Define para cada usurio o nvel de acesso que lhe concedido (leitura, leitura
e gravao, sem acesso) ao arquivo e/ou campo. Esse recurso impede que pessoas
no autorizadas utilizem ou atualizem um determinado arquivo ou campo.
3.5 Padronizao dos dados
utilizada para acessar, gerenciar e manipular as informaes organizadas e integradas de um sistema de banco de dados.
15
16
Sntese
Nesta aula voc conheceu os conceitos bsicos de banco de dados, suas ca-
Exerccios Propostos
1) Assinale a Alternativa correta:
a. ( ) Banco de dados um conjunto de informaes que no podem estar relacionadas entre si.
b. ( ) Banco de um conjunto de informaes relacionadas entre si, de modo que as
informaes no sero armazenadas.
c. ( ) Banco de dados um conjunto de informaes relacionadas entre si, sobre um
determinado assunto ou entidade que armazenado por meio magntico.
17
c. (
Aula 2
18
19
Relacionamento e aplicando os conceitos para a criao do modelo. Desenvolveremos, com o auxlio dos conceitos, o relacionamento entre as entidades/tabelas do
banco de dados e a representao dessas informaes.
Boa aula!
1 Modelos de Banco de Dados
Segundo Heuser (2002, p. 5), um modelo de (banco de) dados uma descrio
armazenados no banco de dados, mas apenas que o banco de dados contm informaes sobre Alunos.
dados. Um mesmo modelo pode ser apresentado de vrias formas e utilizando vrios
nveis de abstrao.
otimizar a performance de acesso ao banco de dados. Certamente haver mais detalhes de como as informaes esto organizadas internamente, de modo a auxiliar na
tarefa a ser desenvolvida.
20
implementao em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de dados, mas no registra como esses dados esto armazenados no
SGBD.
apresentar quais as tabelas contidas no banco e, para cada tabela deve ser apresentado o nome das colunas os campos.
Tabela: Aluno
Nome
Telefone
Beatriz
(47)3422-0000
Camila
(47)3461-0102
Joo Paluo
(47)3465-0501
Luis Fernando (47)3427-0104
SiglaCurso
IN
AT
IN
TL
21
tar tanto os dados quanto as relaes (relacionamentos) entre eles. Esse conceito
permite ampla utilizao do modelo, fazendo com que a grande maioria dos produtos
de banco de dados tenha como base o modelo relacional.
22
conceito de entidade.
conjunto de atributos da realidade modelada, sobre os quais se deseja manter informaes no banco de dados, composta de campos e registros. Uma entidade sempre
representa um assunto especfico, que pode ser tanto um objeto como um evento.
tangvel, como uma pessoa, lugar ou coisa. Este objeto possui vrias caractersticas
que podem ser os campos da tabela. Exemplos de objetos: produtos, clientes, alunos,
pacientes, materiais, empregados, departamento, entre outros.
EMPREGADO
23
DEPARTAMENTO
carregar os diagramas, j que algumas vezes as entidades possuem um grande nmero de atributos. Utiliza-se uma representao textual que aparece separadamente
do modelo ER.
3.3 Chaves
rantem que cada registro de uma tabela possa ser corretamente identificado. So
usadas para que seja possvel desenvolver o relacionamento entre as entidades, auxiliando a impor a integridade no desenvolvimento de um banco de dados.
determinado conjunto de entidades, se distinguem, ou seja, preciso que cada registro, dentro de um banco de dados seja identificado como nico.
nome, endereo, telefone, curso, entre outras. preciso que cada aluno cadastrado
24
no banco de dados possa ser identificado como um registro nico, para isso, ser necessrio armazenar a matrcula do aluno, podendo ser um nmero, porm no poder
existir no banco de dados dois alunos com a mesma matrcula. O atributo matrcula
ser a chave primria dentro da entidade aluno.
cada registro, unicamente. Outro tipo de chave a chave estrangeira, cujo atributo ou
campo utilizado para estabelecer o relacionamento entre duas entidades.
3.3.1 Chave Primria
dados armazenados no campo chave primria devem ser nicos para cada registro
do banco de dados. Essa chave usada para impor integridade tabela, para ajudar
a estabelecer relacionamentos com outras tabelas e para identificar precisamente e
fazer referncia a um registro especfico dentro da tabela.
3.3.2 Chave Estrangeira
to. Para cada Tipo de Produto pode haver vrios (muitos ou N) registros de Produtos,
porm, para cada produto haver apenas um Tipo de produto, desse modo, o campo
que for definido como chave primria, na entidade Tipo Produto, ser definido como
Chave Estrangeira na entidade Produto.
25
3.4 Cardinalidade
definida pelas ocorrncias de uma entidade. Podem estar associadas a uma determinada ocorrncia atravs de um relacionamento.
por uma chave primria e uma chave estrangeira. A maneira pela qual as tabelas so
conectadas depende do tipo de relacionamento que ocorre entre elas.
26
na outra entidade.
chave primria da tabela principal e inseri-la na tabela subordinada, para que se torne
uma chave estrangeira, pois a tabela subordinada possui sua prpria chave primria.
principal, sendo assim, a tabela Departamento dever receber um novo campo ou atributo que ser uma cpia da chave primria da tabela Gerente. Verifique a figura 6.
27
outra entidade.
des Cliente e Pedido. Podemos concluir que UM Cliente faz UM ou MUITOS Pedidos,
porm UM Pedido feito por UM e apenas UM Cliente, reconhecemos ento um relacionamento um-para-muitos entre essas duas entidades.
Cliente, desse modo, o campo chave primria nesta tabela ser inserido na tabela
Pedido (lado N) como chave estrangeira, verifique a figura 7.
outra entidade e cada ocorrncia dessa outra pode ocorrer uma ou mais ocorrncias
28
na outra entidade e cada ocorrncia dessa outra pode ocorrer uma ou mais ocorrncias
na primeira.
mdicos e cada Mdico pode consultar UM ou MUITOS Pacientes, desse modo, temos
um relacionamento muitos-para-muitos (N N).
utilizar uma terceira entidade, denominada entidade associativa, para que se torne
possvel a existncia do relacionamento. Neste caso necessrio:
Eliminar o relacionamento N-N;
Criar uma entidade associativa (losango) entre as entidades para substituir o
relacionamento N-N;
Criar relacionamentos 1-N entre as entidades bsicas (retngulo) e a entidade
associativa (losango). As entidades bsicas sempre sero o lado 1 e a entidade
associativa ser o lado N. Vamos verificar como ficaria nosso exemplo, veja a figura
8.
para estabelecer o vnculo entre esse relacionamento, necessrio que uma cpia
das chaves primrias das entidades bsicas (Paciente e Mdico) sejam inseridas na
tabela associativa como chave estrangeira. A chave primria da tabela associativa
pode ser formada pela juno das duas chaves estrangeiras ou pela criao de um
novo campo como chave primria da tabela associativa. Quando houver necessidade,
a tabela associativa pode receber outros campos que possam trazer informaes
29
Sntese
e como ser estabelecido esse relacionamento, com o uso do campo chave primria
em uma das tabelas e campo chave estrangeira na outra tabela.
30
Exerccios Propostos
Aps uma excelente leitura desta aula, voc estar apto a responder as questes
seguintes.
1) Assinale a Alternativa correta:
a. (
31
sentar quais as tabelas que o banco contm, e para cada tabela no necessrio
apresentar os campos.
d. ( ) Quando desenvolvemos um projeto de Banco de Dados primeiramente desenvolvido o modelo conceitual, na forma de diagrama entidade relacionamento.
e. (
Aula 3
INSTALANDO O VERTRIGO
Objetivos da aula
32
33
1 O que o Vertrigo
nal e de fcil instalao do Apache (servidor web HTTP), PHP (linguagem de programao), MySQL (Sistema Gerenciador de Base de dados SQL), SQLite (sistema gerenciador de base de dados relacional ACID-compliant), SQLiteManager (ferramenta
web multi-linguagem para gerenciar base de dados SQLite), PhpMyAdmin (ferramenta
escrita em PHP que objetiva manusear a administrao do MySQL) e Zend Optimizer
(para aumentar o desempenho do runtime at 40%) para plataforma Windows.
34
todo o processo de instalao. Nessa tela, voc deve apenas verificar as informaes
apresentadas e clicar no boto Avanar, conforme mostra a figura 11.
A prxima tela apresentar o contrato de licena para que possa ser feita a
35
Com a seleo na opo VertrigoServ, todos os itens que foram detalhados no incio
desse captulo sero intalados, com a seleo na opo Desktop Shortcut ser criado um cone do VertrigoServ, na rea de trabalho. Verifique que nessa tela tambm
apresentado o espao necessrio em disco para a instalao dos itens selecionados.
Selecione os componentes para instalo e clique no boto Avanar,conforme mostra a figura 13.
36
Agora necessrio definir uma pasta do Menu Iniciar para criar um atalho
para o VertrigoServ. Voc poder selecionar uma pasta existente ou digitar o nome da
pasta que deseja criar. Se a opo No Criar Atalhos for selecionada no ser criado
um atalho do VertrigoServer no Menu Iniciar. Defina o nome da pasta a ser criada e,
em seguida, clique no boto Instalar. Verifique esses itens na figura 15.
37
que fechar sozinha quando a instalao for concluda, verifique a figura 16.
uma opo para executar o VertrigoServ, alm de poder selecionar outra opo para
Mostrar Leiame, arquivo com algumas informaes bastante importantes em relao
ao VertrigoServ, principalmente em relao s senhas defaults que so definidas durante a instalo. Verifique essas informaes, selecionando a opo para executar
Leiame. Selecione as opes e clique no boto Terminar. Verifique as informaes na
figura 17.
38
Ainda ser apresentada uma tela antes de iniciar o VertrigoServ. Clique no bo-
to Hide this Window and start server, para que a janela mostrada seja fechada e o
VertrigoServer possa ser iniciado. Verifique o procedimento na figura 18.
de Dados MySQL que foi instalado para criar nossos banco de dados na prtica.
39
Sntese
de dados MySQL, alm de outras ferramentas utilizadas no desenvolvimento de aplicaes Web como, Apache, que o servidor Web HTTP, a linguagem de programao, entre outras ferramentas comentadas anteriormente.
mos os passos que devemos seguir de modo a permitir a criao de nosso Banco de
Dados.
Aula 4
40
41
1 Histrico do MySQL
O MySQL foi criado na Sucia por dois suecos: David Axmark, Allan Larsson,
O MySQL se tornou o mais popular banco de dados open source (cdigo aber-
O MySQL comeou como uma ferramenta para atender a uma necessidade in-
terna. Quando surgiu, era apenas um substituto para o ultrapassado sistema de banco de dados mSQL. Ao relacionarem tabelas usando rotinas ISAM por sinal muito
rpidas - no mSQL, os autores conseguiram uma verso atualizada a que chamaram
MySQL.
ISAM a abreviatura de Indexed Sequential Access Method (mtodo de
acesso seqencial indexado) cujos dados, segundo Buyens (2002, p.36), so
armazenados seqencialmente em um arquivo de disco.
Desse modo, a recuperao dos dados feita por meio de um ndice que espe-
comercial, fundada pelos desenvolvedores do MySQL, cujos negcios fornecer servios relacionados ao sistema de gerenciamento de banco de dados MySQL. O site
do MySQL http://www.mysql.com onde podem ser encontradas informaes atualizadas sobre o MySQL e a empresa desenvolvedora a MySQL AB.
SOCIESC - Sociedade Educacional de Santa Catarina
42
A origem do nome MySQL um mistrio at mesmo para os autores. Segundo eles, os diretrios-base e um grande nmero de suas bibliotecas e ferramentas sempre tiveram o prefixo my, pelo menos por 10 anos. A filha de Monty
tambm ganhou o nome My. Qual das duas originou o nome do MySQL continua
sendo uma incgnita.
que ele esperto, rpido e um animal gil, se esforando em navegar pelos oceanos
de dados. O nome do golfinho do MySQL (logo do MySQL) Sakila, escolhido pelos
fundadores da MySQL AB, a partir de uma enorme lista de nomes sugeridos pelos
usurios em um concurso Name the Dolphin. De acordo com o vencedor, o nome
Sakila tem as suas razes em SiSwati, a lngua local de Swaziland. Sakila tambm
o nome de uma cidade em Arusha, Tanzania, prxima ao pas de origem do vencedor
do concurso, Uganda.
2 O que o MySQL?
utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) como interface. A SQL um padro de comunicao com banco de dados de
qualquer tipo.
43
Faltam alguns recursos quando comparados a outros banco de dados, como o PostgreSQL.
remos a criao de um banco de dados utilizando o MySQL, que como qualquer outro
SGBD, permite a criao de vrios bancos.
H duas maneiras de administrarmos os bancos de dados criados: pelo console do
MySQL ou utilizando a ferramnta mysqladmin. Utilizaremos o console do MySQL para
criao do Banco de Dados.
Para acessar o console do MySQL voc deve clicar no cone do VertigoServ, que se
encontra na barra de tarefas. A figura 19 mostra o cone do Vertrigo.
44
remos as tabelas ao banco (figura 23). Com o MySQL Console iniciado, basta digitarmos o comando responsvel por criar um banco de dados novo. Observe que, ao
final de cada comando, necessrio colocar o ; (ponto e vrgula) para indicar o final
do comando que pretendemos executar.
45
tabelas.
Em algum momento, pode ser que seja necessrio mostrar todos os bancos de dados
criados, para list-los, utilize o comando:
SHOW DATABASES;
46
comando drop database para fazer a excluso do banco. A seguir, utilize novamente
o comando show databases. Verifique que o banco de dados aluno no mais aparece
na listagem, portanto, confirmamos a excluso deste banco de dados.
Criado o banco de dados produto, iniciaremos a criao das tabelas que faro
parte do banco.
Acesse o banco de dados produto (figura 24), executando o comando:
USE nome_do_banco_de_dados
Para iniciar a criao das tabelas para o banco de dados produto, necessrio
conhecer os tipos de dados que poderemos utilizar para a definio dos campos de
cada tabela.
47
grupos:
Tipos Numricos;
Tipos de Data;
Tipos de Cadeia.
4.1 Tipos numricos
Os tipos de dados numricos podem ser divididos em nmeros com casas deci-
mais ou nmeros que no tem casas decimais. Verifique os principais tipos numricos
na tabela a seguir.
Tipo de Dados
TinyInt
Bit ou Bool
SmallInt
MediumInt
Integer, Int
BigInt
Descrio
um nmero inteiro com ou sem sinal. Com
sinal a margem de valores vlidos desde
-128 at 127. Sem sinal, a margem de valores de 0 at 255.
um nmero inteiro que pode ser 0 ou 1.
nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde
-32768 at 32767. Sem sinal, a margem de
valores de 0 at 65535.
nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde
-8.388.608 at 8.388.607. Sem sinal, a margem de valores de 0 at 16777215.
nmero inteiro com ou sem sinal. Com sinal a margem de valores vlidos desde
-2147483648 at 2147483647. Sem sinal, a
margem de valores de 0 at 429.496.295
nmero inteiro com ou sem sinal. Com sinal
a margem de valores vlidos desde -9.223
.372.036.854.775.808 at 9.223.372.036.85
4.775.807. Sem sinal, a margem de valores
de 0 at 18.446.744.073.709.551.615.
Tipo de Dados
Float
xReal, Doubl
Decimal, Dec,
Numeric
48
Descrio
Nmero com casas decimais de preciso
simples. Os valores vlidos vo desde 3.402823466E+38 at -1.175494351E38,0 ou desde 175494351E-38 at
3.402823466E+38.
Nmero com casas decimais de dupla preciso. Os valores permitidos vo
desde 1.7976931348623157E+308 at
-2.2250738585072014E-308, 0 e desde
2.2250738585072014E-308
at
1.7976931348623157E+308
Nmero com casas decimais desempacotado. O nmero armazenado como uma
cadeia.
Tamanho de Armazenamento
1 byte
2 bytes
3 bytes
4 bytes
4 bytes
8 bytes
4 a 8 bytes
4 a 8 bytes
8 bytes
8 bytes
8 bytes
M+2 bytes se D > 0, M+1 bytes se D = 0
M+2 bytes se D > 0, M+1 bytes se D = 0
DateTime
TimeStamp
Time
Year
Descrio
tipo data, armazena uma data. A margem
de valores vai desde o 1 de Janeiro de 1001
ao 31 de dezembro de 9999. O formato de
armazenamento de ano-mes-dia.
Combinao de data e hora. A margem de
valores vai desde o 1 de Janeiro de 1001 s
0 horas, 0 minutos e 0 segundos ao 31 de
Dezembro de 9999 s 23 horas, 59 minutos e 59 segundos. O formato de armazenamento de ano-mes-dia horas:minutos:
segundos
Combinao de data e hora.
armazena uma hora. O formato de armazenamento HH:MM:SS.
armazena um ano. O campo pode ter tamanho dois ou tamanho 4 dependendo de
se queremos armazenar o ano com dois ou
quatro algarismos.
49
Formato
AnoMesDiaHoraMinutoSegundo aaaammddhhmmss
AnoMesDiaHoraMinutoSegundo aammddhhmmss
AnoMesDia aaaammdd
AnoMesDia aammdd
AnoMes aamm
Ano aa
tipos de data:
Tipo de Campo
DATE
DATETIME
TIMESTAMP
TIME
YEAR
Tamanho de Armazenamento
3 bytes
8 bytes
4 bytes
3 bytes
1 byte
50
Descrio
armazena valor de caracter de tamanho fixo. Valores inferiores
ao tamanho definido sero deixados em branco. Poder conter
desde 0 at 255 caracteres.
armazena valor de caracter de tamanho varivel. Valores inferiores ao tamanho definido sero suprimidos. Poder conter desde
0 at 255 caracteres.
um texto com um mximo de 65535 caracteres
um texto com um mximo de 16.777.215 caracteres.
um texto com um mximo de caracteres 4.294.967.295.
campo que pode ter um nico valor ou uma lista de valores. O tipo
Enum aceita at 65535 valores diferentes.
um campo que pode conter nenhum, um ou vrios valores de uma
lista. A lista pode ter um mximo de 64 valores.
Dentro dos tipos de cadeia, podem-se distinguir dois subtipos, o tipo Test e
o tipo Blob (Binary Large Object) A diferena entre um tipo e outro o tratamento
que recebem na hora de orden-los e compar-los. No tipo test ordenam-se, sem ter
importncia, as maisculas e as minsculas, e no tipo blob, ordenam-se tendo em
conta as maisculas e minsculas.
CHAR(4)
ab
ab
abcd
abcd
abcdefgh abcd
Armazenamento
4 bytes
4 bytes
4 bytes
4 bytes
VARCHAR(4)
ab
abcd
abcd
Armazenamento
1 byte
3 bytes
5 bytes
51
Sntese
banco de dados existente, alm de conhecer os principais tipos de dados que sero
utilizados para a criao das tabelas.
b. (
52
recursos de hardware.
c. (
) Facilidade de uso.
d. (
de banco de dados.
e. (
para um fim.
3) Coloque V Verdadeiro ou F Falso:
a. ( ) O comando show databases; utilizado para visualizar os bancos de dados
existentes, ser apresentada uma listagem com os bancos criados.
b. (
apenas utizar o comando create database e logo em seguida iniciar a criao das
tabelas para este banco.
c. (
banco de dados, deste modo estamos mostrando ao MySQL qual o banco de dados
estaremos utlizando.
e. (
Aula 5
Objetivos da aula
53
54
banco. Criaremos duas tabelas para o banco produto com os campos descritos a
seguir. Criaremos a tabela produto e a tabela tipo_prod.
Tabela tipo_prod
Campos
Tipos de Dados
Cod_tipo
int(5)
Desc_tipo
varchar(50)
55
detalhado o nome de cada campo a ser criado, assim como o tipo de dado e o tamanho
do campo. A opo null/not null ir indicar se o campo aceita valores nulos ou no. O
item primary key est especificando qual campo ser a chave primria dessa tabela.
mesmo modo que na tabela tipo_prod necessrio especificar o nome, tipo de dado
e tamanho para cada campo a ser criado, alm de especificar o campo que ser
chave primria. Verifique que, para o campo cod_tipo (chave estrangeira) foi utilizado
o comando references e mostrado que a referncia para este campo o campo
da tabela tipo_prod o campo cod_tipo. Quando utilizamos esse comando, estamos
fazendo a ligao do campo cod_tipo, da tabela produto, chave estrangeira - com o
campo cod_tipo da tabela tipo_prod - chave primria - no lado 1 do relacionamento
entre produto e tipo_prod. O relacionamento entre as duas tabelas criado nesse
momento. Verifique todas estas informaes na figura 28.
56
A seguir, observe a criao de mais uma tabela, para que possamos aplicar os
dados. Para isso, usaremos o comando SHOW TABLES de duas maneiras, conforme
mostra a figura 30.
57
DESCRIBE nome_da_tabela;
para a tabela produto. Verifique que aparecem: o nome de cada campo, o tipo de
dado. A opo null recebeu o valor NO, pois na criao do campo foi especificado
como not null. No item KEY demonstra-se qual campo a chave primria.
58
os campos de cada tabela, vamos verificar como alterar a estrutura de uma tabela.
3 Alterando Tabelas
dado(tamanho);
59
o tipo de dado e tamanho. O item add est informando ao comando ALTER TABLE
que ser acrescentado um novo campo. No exemplo da figura 34 foi inserido um campo chamado imp_prod, verifique que logo a seguir foi utilizado o comando describe
para mostrar os campos da tabela produto, mostrando, deste modo, o novo campo
inserido.
do_campo tipo_de_dado(tamanho);
de dado e o tamanho. O item change informa ao comando ALTER TABLE que haver alterao em um campo. No exemplo da figura 35 foi alterado o campo chamado
imp_prod, o nome do campo foi alterado para imposto_prod e o tamanho do campo
tambm foi alterado, poderamos tambm ter alterado o tipo de dado desse campo.
Verifique que, logo a seguir, foi utilizado o comando describe para mostrar os campos
da tabela produto e alterao feita no campo imp_prod.
tes, porm, utilize o comando ALTER TABLE para inserir um novo campo chamado teste_prod, conforme mostra a figura 36, em seguida faremos a excluso desse campo.
60
excludo. O item drop informa ao comando ALTER TABLE que ser excludo um
campo. No exemplo da figura 37 foi excludo o campo teste_prod. Verifique que, logo
a seguir, foi utilizado o comando describe, para mostrar os campos da tabela produto
e o campo teste_prod excludo.
Para finalizarmos essa aula, estudaremos o comando para excluir uma tabela
61
4 Excluindo Tabelas
Para excluir uma tabela, utilizamos o comando DROP TABLE, porm necessrio
voc poder utilizar o comando SHOW TABLES para mostrar as tabelas do banco e
verificar a excluso da tabela teste.
5 Utilizando ndices
porm, se a tarefa for inserir um registro, o processo ser um pouco mais lento do
que a mesma tarefa em uma tabela que no tenha ndices, pois o registro dever ser
iserido na ordem correta, de acordo com o ndice definido. Nesse caso, verificamos
62
que a criao de ndices acelera o acesso a dados para consultas de SELECT, mas
tornam lentas as consultas de INSERT, UPDATE e DELETE.
Por padro, o MySQL cria um ndice, quando declaramos uma coluna como
a qual o ndice ser criado e os campos que o formaro, lembrando que um ndice
poder ser formado por mais de um campo.
comando:
DROP INDEX nome_do_indice ON nome_da_tabela;
Sntese
Utilizamos o comando CREATE TABLE para criar uma tabela para o banco de
dados. Verificamos que essa ao exige que especifiquemos os campos que faro
parte da tabela, alm das definies de chave primria e dos relacionamentos com o
campo chave estrangeira.
63
Exerccios Propostos
1) Coloque V Verdadeiro ou F Falso em relao s caractersticas do
MySQL:
a. (
em uma tabela. Para excluir um campo necessrio excluir a tabela, atravs do comando drop table.
d. (
be nome_da_tabela;
2) Assinale a alternativa correta para utilizao do comando alter table para alterar o nome do campo valor para valor_final e o tipo de dados para decimal, este
campo pertence a tabela produto:
a. (
b. (
c. (
d. (
a. (
64
Aula 6
MANIPULAO DE REGISTROS EM
MySQL
Objetivos da aula
Contedos da aula
65
66
modo, poderemos iniciar a utilizao dos comandos para manipulao dos registros.
Alteraremos um registro, mostrando as informaes, excluindo registros e, deste
modo, aprimorando nossos conhecimentos em MySQL. Vamos manipulao dos
registros.
Boa Aula!
1 Inserindo Registros
precisamos inserir registros nessas tabelas. Para tanto utilizamos o comando INSERT,
verifique a seguir a sintaxe deste comando:
ou
INSERT para inserir registros nas tabelas do banco produto, verifique os exemplos.
67
MySQL. Para que se torne possvel a utilizao de comandos de manipulao de registros, importante inseri-los em cada uma das tabelas, nesse momento.
2 Alterando Registros
campos, especificando o nome da tabela e dos campos, cujos valores sero atualizados.
A clusula WHERE especifica uma condio, mas necessrio que exista uma
condio. O comando UPDATE ser executado normalmente caso no haja a clusula WHERE. Se no houver uma condio, todos os registros da tabela sofrero a
alterao que estiver descrita no comando UPDATE.
teramos o campo quan_prod para receber o valor 30 e o campo preco_prod para receber o valor 4.90, porm respeitamos a condio apresentada na clusula WHERE.
Fazendo essa alterao apenas para os produtos que tiverem cdigo do tipo igual a
3. Verifique a utilizao do comando na figura 41.
68
3 ExcluiNdo Registros
um ou mais registros de uma tabela sempre que a condio for satisfeita. A sintaxe do
comando DELETE :
um registro, pois excluiremos o tipo do produto que tenha o cdigo do tipo igual ao
valor 4. Se a condio definida tivesse sido cod_tipo < 4 estaramos excluindo todos
os tipos de produtos que tivessem seu cdigo menor que 4. Verifique o exemplo do
comando DELETE na figura 42.
69
tabelas, podendo ou no ter uma condio a ser testada. Esse comando extremamente
importante, pois mostra as informaes cadastradas no banco. Observe a sintaxe
desse comando apresentada a seguir:
cujas utilizaes devem ser listadas aps o FROM. Em seguida possvel colocar
uma ou mais condies para serem testadas e ento mostrar as informaes.
tabela produto. Assim, aps o comando SELECT, listamos o nome dos campos que
queremos mostrar. Nesse momento ainda no temos nenhuma condio fazendo com
que todos os registros cadastrados na tabela produto sejam mostrados. Veja a figura
44.
70
71
72
SELECT * from produto WHERE quant_prod > 5 and quant_prod < 20;
que) e < (menor que), o resultado ser o mesmo apresentado no comando da figura
47.
valores, junto com o comando SELECT. necessrio especificar o campo onde esto
os valores que desejamos calcular a mdia. Verifique a utlizao da funo AVG na
figura 48.
No exemplo, utilizamos a funo AVG para mostrar a mdia dos preos dos
produtos, e a clusula AS para definir um rtulo para a coluna onde ser apresentado
o resultado da funo AVG.
tambm necessrio especificar o campo a ser utlizado para calcular a soma dos
valores, verifique o exemplo de utlizao desta funo na figura:
A clusula AS est definindo o rtulo Total de Produtos para a coluna onde ser
73
A funo MAX mostrar o maior valor entre um grupo de valores. Para utiz-la
74
mltiplas tabelas em um nico conjunto de dados. Referido como juno (join) das
tabelas, sendo feito por meio da operao INNER JOIN em uma consulta SELECT.
FROM tabela1
ON tabela1.nomeCampo = tabela2.nomeCampo;
seguida, os campos comuns entre estas tabelas so comparados, deste modo, sero
apresentados os registros em que a informao no campo correspondente tabela
1 seja igual a informao no campo correspondente tabela 2. Verifique o exemplo
apresentado a seguir para as tabelas produto e tipo produto:
FROM produto
ON produto.cod_tipo = tipo_prod.cod_tipo;
tabela tipo_prod, desse modo, utilizamos a clusula INNER JOIN para relacionar as
duas tabelas, usando o comando ON para relacionar os campos comuns entre estas
tabelas.
75
Sntese
Agora voc j est apto(a) para criar um banco de dados, usando os recursos
76
Exerccios Propostos
Utilize as tabelas apresentadas a seguir para responder os exerccios.
Clientes
codCli
nomeCli
sexoCli
idadeCli
siglaEstado
Estado
siglaEst
descEst
b. (
c. (
sexoCli = M ;
d. (
c. (
d. (
77
ON Cliente.siglaEstado = Estado.siglaEst;
ON Cliente.siglaEstado = Estado.siglaEst;
Aula 7
CONSTRUINDO UM PROJETO
Objetivos da aula
Ol! Chegamos a nossa stima aula. Agora j conhecemos os comandos necessrios para fazer a
criao de um banco de dados e os comandos utilizados para
manipulao dos registros. Atravs dos conhecimentos adquiridos nas aulas anteriores criaremos um banco de dados em
MySQL com diversas tabelas, onde visualizaremos e realizaremos o relacionamento entre as tabelas, estruturando um banco de
78
79
dados para que, futuramente, voc possa desenvolver uma apliacao que use como
base de dados o banco desenvolvido em MySQL.
Boa Aula!
entre si. Podemos visualizar o modelo ER do projeto na figura 52, criaremos as seguintes tabelas: Funcionrios, Operao, Clientes, Automveis, Modelos e Marca.
login no MySQL Console, em seguida, a criao do banco. Aps criar o banco, utilize
o comando USE para acessar o banco de dados criado e para iniciar a criao das
tabelas. Observe a figura 53.
80
para esse banco. Iniciaremos pela criao da tabela marcas, observe na figura 54 o
comando utilizado para criao da tabela, os campos criados, os tipos de dados para
cada um dos campos, alm do campo definido como chave primria.
O campo marca_cod est sendo definido como chave primria, o comando not
null est definindo que esses campos no podero ficar sem preenchimento no momento em que se cadastrarem os registros na tabela marcas. O comando auto_increment, para o campo marca_cod, e que, para cada novo registro, ser incrementado o
cdigo (somado 1 ao valor do cdigo anterior).
o campo chave estrangeira que ser relacionado com o campo marca_cod, chave
primria na tabela marca. O comando responsvel por este relacionamento :
references marcas(marca_cod)
81
Para criar a tabela clientes, observe o comando utlizado na figura 56, onde demonstramos o tipo de dado de cada um dos campos e o campo definido como chave primria.
Para criar a tabela automveis, observe o comando utilizado. Esta tabela est
relacionada com a tabela modelo. O campo aut_modelocod o campo chave estrangeira, sendo relacionado com o campo mod_cod da tabela modelo atravs do comando references, conforme est detalhado na Figura 58.
82
A prxima tabela a ser criada ser a tabela operacao, estar relacionada com
visualizar as tabelas criadas, podemos utilizar o comando show tables, conforme mostra a figura 60.
83
seridos registros em cada uma das tabelas, utilize o comando INSERT para inserir
registros para a tabela do banco revenda. Insira vrios registros para cada uma das
tabelas. Se existir alguma dvida em relao utilizao do comando INSERT voc
dever verificar o item Inserindo Registros, na aula 6 deste livro.
2 Manipulando Registros
mando SELECT, devemos lembrar que o banco revenda possui seis tabelas, as quais
foram criadas anteriormente e adicionados registros. Vamos dividir nossas consultas
por tabela.
2.1 Tabela Marcas
da marca e a descrio, para esta tabela vamos fazer uma consulta que mostre todas
as Marcas Cadastradas, verifique esta consulta na figura 61.
84
Para esta tabela vamos fazer uma consulta que mostre todos os modelos ca-
dastrados para a marca que possui cdigo igual 1, ou seja, da marca Citroen.
do no incio dessa aula na figura 52, desse modo, podemos utilizar a clusula INNER
JOIN em conjunto com o comando SELECT. Desse modo, vamos fazer uma consulta
que mostre a descrio do modelo e a descrio da marca para todos os modelos
cadastrados.
85
Vamos fazer uma consulta que mostra a descrio do modelo, o ano e o preo
de todos os carros que tm o preo menor que R$ 45000,00, verifique esta consulta
na figura 64.
Podemos fazer uma consulta UPDATE para alterar o preo de todos os carros
que tm o preo menor que R$ 45000,00 para acrescentar R$ 2500,00 ao preo destes automoveis, verifique esta consulta na figura 65.
uma consulta SELECT para mostrar os valores, mostrando as alteraes feitas atravs da consulta UPDATE.
2.4 Tabela Funcionrios e Tabela Clientes
86
armazenar as informaes referentes aos funcionrios e aos clientes, sendo que estas tabelas esto relacionadas com a tabela Operacao.
Vamos fazer uma consulta que mostre o nome, o endereo e o bairro de todos
Para a tabela funcionrios faa uma consulta que mostre o nome de todos os
funcionrios que nasceram entre 01/01/1980 e 01/01/2007, para fazer esta consulta
estaremos usando a clusula BETWEEN, verifique a consulta na figura 67.
Sntese
87
Exerccios Propostos
1) Assinale a alternativa correta para definir um campo codDisc como chave
primria durante a criao da tabela Disciplina:
a. (
b. (
c. (
d. (
2) Utilizando o relacionamento entre as tabelas como base, assinale a alternativa correta do comando para criao da tabela Cidade:
Dica: lembre-se de que o Estado_siglaEst da tabela Cidade o campo chave estrangeira, que esta fazendo o relacionamento com o campo siglaEst, que chave primria
na tabela Estado.
a. (
b. (
c. (
d. (
PRIMARY KEY(codCid));
88
Aula 8
Objetivos da aula
89
90
1 CONHECENDO O PHPMYADMIN
69.
dmin. O usurio para acesso o root, a senha padro vertrigo. Verifique a tela que
ser apresentada na figura 70. Clique no boto OK para acessar o PhpMyAdmin.
91
novo banco de dados, alterar ou excluir um banco de dados j existente. Veja na tela
inicial a utilizao do PhpMyAdminl.
Digite um nome para criar um novo banco de dados. A seguir, clique no boto
Criar. Veja a figura 72, onde criaremos um novo banco chamado empresa.
92
Agora definiremos as tabelas que faro parte desse novo banco. A figura
Aps clicar no boto executar, aparecer a tela mostrada na figura 74, para
93
e o tamanho do campo. Para o campo codFunc, necessrio escolher a opo Chave Primria. Tambm possvel selecionar a opo nul/not null para cada um dos
campos. Clique no boto Salvar para que os campos sejam acrescentados na tabela
Funcionrios.
Vamos adicionar mais uma tabela ao banco empresa. Ser a tabela Departa-
94
Para confirmar, clique no boto OK. A tabela ser excluda. Observe a figura 77.
tabela. O banco de dados deve ser selecionado, aparecero listadas as tabelas que
pertencem a este banco.
excluso.
Clique no boto OK, o banco selecionado ser excluido. Verifique essas infor-
banco de dados utilizando a ferramenta PhpMyAdmin. Lembre-se: para cada ao desenvolvida pela ferramenta, executamos um comando SQL. O conhecimento desses
comandos essencial para criao e administrao de um banco de dados MySQL.
95
Sntese
Voc deve ter verificado que, para cada uma das aes executadas na ferra-
pois a aplicao desse recurso para criao de aplicaes Web de extrema importncia.
96
REFERNCIAS
BUYENS, Jim.; Aprendendo MySQL e PHP. SO PAULO: Editora Makron Books,
2002.
DATE, C. J.; Introduo a Sistemas de Banco de Dados. 8 Ed., RIO DE JANEIRO:
Editora Campus,2004.
MUTO, Cludio Adonai.; PHP & MySQL Guia Introdutrio. 2 Ed., RIO DE JANEIRO:
Editora Brasport,2004.
HERNANDEZ, MichaeJ; Aprenda a Projetar seu Prprio Banco de Dados. SO PAULO: Editora Makron Books,2000.
HEUSER, Carlos Alberto; Projeto de Banco de Dados. 4 Ed., PORTO ALEGRE: Editora Sagra Luzzato,2001.
SILBERSCHATZ, Abraham, KORTH, Henry F, SUDARSHAN, S; Sistema de Banco
de Dados. 5 Ed., RIO DE JANEIRO: Editora Campus,2006.
http://www.mysqlbrasil.com.br/porquemysql Acessado em: 24/06/2007
http://www.mysql.com/ Acessado em: 24/06/2007
97
Crditos
SOCIESC Sociedade Educacional de Santa Catarina
Design Grfico
Thiago Vedoi de Lima
Equipe Didtico-Pedagcia
Francini Reitz Spanceski