PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa...

32
SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM 2012 PROGRAMAÇÃO WEB II Autora: LIVIANE PONTE RÊGO Supervisor: Cláudio Alex Rocha

Transcript of PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa...

Page 1: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

2012

PROGRAMAÇÃO WEB II

Autora: LIVIANE PONTE RÊGO

Supervisor: Cláudio Alex Rocha

Page 2: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 2

Capítulo 1 - Conceito de Banco de Dados 1.1 Definição Com a evolução do sistema financeiro e o consequente progresso técnico, a

administração das organizações e do Estado tornou-se mais complexa. As empresas

por exemplo, demandavam maior controle da atividade produtiva, envolvendo o

gerenciamento de estoques, recursos humanos e financeiros. O grande volume de

informações registradas em papel dificultava consideravelmente seu gerenciamento e

atualização. Então, com os primeiros migraram-se essas informações para dispositivos

eletrônicos.

De início, essa migração para meios eletrônicos de armazenamento foi implementada

de maneira pouco organizada, fazendo uso de sistemas de arquivos tradicionais. Cada

aplicação do sistema de informações era tratada isoladamente pela equipe de

desenvolvedores. Em consequência, cada aplicação tinha seus próprios arquivos e a

redundância de informações era mais do que normal. Uma aplicação para o controle

da frequência dos funcionários, por exemplo, tinha seu próprio arquivos com dados

dos empregados em atividade. Esse arquivo podia não ser compartilhado com a

aplicação de controle das férias desses mesmos empregados.

Por isso, dados como nome, número de matrícula e departamento de trabalho podiam

facilmente estar duplicados nos diferentes arquivos. Com a multiplicação de

aplicações e assim de arquivos com redundância de dados, o risco de inconsistências

de dados entre eles crescia exponencialmente. Considere, por exemplo, uma

funcionária que se casou e mudou de nome. Uma eventual falha humana podia levar a

uma situação em que seu nome fosse alterado apenas e alguns destes arquivos, mas

não em todos eles.

Os primeiros bancos de dados surgiram no mercado como uma resposta a problemas

como esse. Um sistemas de gerência de banco de dados surgiram no início da década

de 70 com o objetivo de facilitar a programação de aplicações de banco de dados. Um

SGBD consiste em um conjunto de arquivos estruturados e de programas que

respondem pelo acesso e manipulação de tais arquivos. Diferente dos sistemas de

arquivos tradicionais, o banco de dados favorece o inter-relacionamento dos arquivos,

Page 3: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 3

portanto, podem ser definidos como “uma coleção de dados inter-relacionados e um

conjunto de programas para acessá-los”.

Em termos mais simples, podemos definir um SGBD como um software desenvolvido

especificamente para o gerenciamento de grandes volumes de informações. Seu

objetivo principal reside na superação de problemas comuns aos sistemas de arquivos

tradicionais. Tais problemas ou desvantagens, são:

1. Redundância e inconsistência de dados. No processamento tradicional de

arquivos, muitos grupos de usuários mantêm seus próprios arquivos para

manipular suas aplicações de processamento, que pode provocar o

armazenamento de informações redundantes. Sob tais circunstâncias, dados

distintos podem ser duplicados em arquivos diferentes. Essa redundância

conduz a altos custos de armazenamento e crescente dificuldade de

atualização das informações. Problemas que podem ocorrer:

a. Duplicação de esforços;

b. Desperdício de espaço;

c. Inconsistência: alteração em alguns arquivos e em outros não, ou em

todos os arquivos, porém, de maneira independente;

2. Dificuldade no acesso aos dados. Os dados espalhados em diferentes

arquivos isolados não apresentam as facilidades de acesso e processamento

das informações dos bancos de dados. Há pouca flexibilidade em relação a

demandas que não tenham sido antecipadas quando o sistema foi projetado.

Por exemplo, uma vez que o sistema esteja desenvolvido, caso haja a

necessidade de se gerar relatórios com os nomes de todos os empregados do

Um banco de dados (BD) é um conjunto de dados integrados reunidos com o

intuito de suportar o funcionamento de sistemas de informação.

Um sistema gerenciador de banco de dados (SGBD) é um software de caráter

geral para a manipulação eficiente de grandes coleções de informações

estruturadas e armazenadas de uma forma consistente e integrada.

Page 4: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 4

sexo masculino e com idade igual ou superior a 40 anos, a ausência de uma

aplicação específica para esse objetivo traz sérios inconvenientes.

3. Isolamento de dados. A existência de dados espalhados em diferentes

arquivos, que podem apresentar diferentes formatos, dificulta a criação de

novos programas aplicativos para a recuperação desses dados.

4. Compartilhamento de Dados. Sistemas multiusuários devem fornecer

controle de concorrência para assegurar que atualizações simultâneas resultem

em modificações corretas. Utilizando um SGBD, um outro mecanismo que

permite a noção de compartilhamento de dados em é a facilidade de definir

visões de usuário, que é usada para especificar a porção da base de dados que

é de interesse para um grupo particular de usuários;

5. Problemas de segurança. O acesso a determinados dados deve ser restritos

para alguns usuários do sistema de informações. Os dados financeiros são

frequentemente considerados confidenciais e, desse modo, somente pessoas

autorizadas devem ter acesso. Além disso, pode ser permitido a alguns

usuários, apenas a recuperação dos dados. Já, para outros, são permitidas a

recuperação e a modificação. Assim, o tipo de operação de acesso -

recuperação ou modificação - pode também ser controlado.

Essas cinco dificuldades listadas levaram ao desenvolvimento dos SGBDs, que além

de implementarem soluções para esses problemas, possuem as seguintes capacidades:

Fornecimento de Múltiplas Interfaces: devido aos vários tipos de usuários,

com variados níveis de conhecimento técnico, um SGBD deve fornecer uma

variedade de interfaces atendê-los. Os tipos de interfaces incluem linguagens

de consulta para usuários ocasionais, interfaces de linguagem de programação

para programadores de aplicações, formulários e interfaces dirigidas por

menus para usuários comuns;

Reforçar Restrições de Integridade: muitas aplicações de base de dados

terão certas restrições de integridade de dados. A forma mais elementar de

restrição de integridade é a especificação do tipo de dado de cada item.

Fornecer Backup e Restauração: Um SGBD deve fornecer recursos para

restauração caso ocorram falhas de hardware ou software. O subsistema de

Page 5: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 5

backup e restauração do SGBD é o responsável pela restauração. Por exemplo,

se o sistema de computador falhar no meio da execução de um programa que

esteja realizando uma alteração complexa na base de dados, o subsistema de

restauração é responsável por assegurar que a base de dados seja restaurada ao

estado anterior ao início da execução do programa. Alternativamente, o

subsistema de restauração poderia assegurar que o programa seja reexecutado

a partir do ponto em que havia sido interrompido.

1.2 Vantagens adicionais dos Bancos de Dados

Além das capacidades exposta até aqui, a utilização de Banco de Dados oferecem as

seguintes vantagens:

Potencial para obrigar a Padronização: a abordagem de base de dados

permite que o DBA defina e obrigue a padronização entre os usuários da base

de dados em grandes organizações. Isso facilita a comunicação e a cooperação

entre vários departamentos, projetos e usuários. Padrões podem ser definidos

para formatos de nomes, elementos de dados, telas, relatórios, terminologias,

etc.

Flexibilidade: mudanças na estrutura de uma base de dados podem ser

necessárias devido a mudanças nos requisitos. Por exemplo, um novo grupo de

usuários pode surgir com necessidade de informações adicionais, ainda não

disponíveis na base de dados. Alguns SGBD’s permitem que tais mudanças na

estrutura da base de dados sejam realizadas sem afetar a maioria dos

programas de aplicações existentes;

Redução do Tempo de Desenvolvimento de Aplicações: tempo reduzido

para o desenvolvimento de novas aplicações, como a recuperação de certos

dados da base de dados para a impressão de novos relatórios.

Disponibilidade de Informações Atualizadas: tão logo um usuário

modifique uma base de dados, todos os outros usuários “sentem”

imediatamente esta modificação. Esta disponibilidade de informações

atualizadas é essencial para muitas aplicações, tais como sistemas de reservas

Page 6: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 6

de passagens aéreas ou bases de dados bancárias. Isso somente é possível

devido ao subsistema de controle de concorrência e restauração do SGBD;

1.3 Tipos de Usuários

Basicamente, os sistemas de banco de dados possuem quatro tipo de usuários:

Administrador da Base de Dados (DBA): é o usuário mais especializado de

um banco de dados. A administração dos recursos do banco de dados é de

responsabilidade do DBA (“Database Administrator ”). O DBA é responsável

por autorizar acesso à base de dados e coordenar e monitorar seu uso. O DBA

é responsável por problemas, tais como, quebra de segurança ou baixo

desempenho. Em grandes organizações, o DBA é auxiliado por técnicos;

Projetistas da Base de Dados: os projetistas de base de dados têm a

responsabilidade de identificar os dados a serem armazenados na Base de

Dados e escolher estruturas apropriadas para representar e armazenar tais

dados. Estas tarefas são geralmente executadas antes que a base de dados seja

utilizada. É responsabilidade destes projetistas obter os requisitos necessários

dos futuros usuários da base.

Analistas de Sistemas e Programadores de Aplicação:

o analistas de sistemas determinam os requisitos de usuários finais,

especialmente dos usuários comuns, e desenvolvem especificações das

transações para atender a estes requisitos;

o programadores de aplicações implementam estas especificações

produzindo programas e, então, testam, depuram, documentam e

mantêm estes programas.

Usuários Finais: existem profissionais que precisam ter acesso à base de

dados para consultar, modificar e gerar relatórios. Existem algumas categorias

de usuários finais:

o usuários ocasionais: ocasionalmente fazem acesso à base de dados,

mas eles podem necessitar de diferentes informações a cada vez que

fazem acesso. Eles podem usar uma linguagem de consulta sofisticada

para especificar suas requisições e são, tipicamente, gerentes de médio

ou alto-nível;

Page 7: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 7

usuários comuns: estes usuários realizam operações padrões de consultas e

atualizações, chamadas TRANSAÇÕES PERMITIDAS , que foram

cuidadosamente programadas e testadas. Estes usuários constantemente realizam

recuperações e modificações na base de dados;

1.4 Modelos de Bancos de Dados

Com o tempo, os SGBD’s passaram a utilizar diferentes formas de representação, ou

modelos de bancos de dados, para descrever a estrutura das informações contidas

neles. Atualmente, os seguintes modelos de dados são normalmente utilizados pelos

SGBD’s: modelo hierárquico, modelo em redes, modelo relacional (amplamente

usado) e o modelo orientado a objetos.

1.4.1 Modelo em Rede

Um banco de dados em rede consiste em uma coleção e registros concatenados uns

aos outros por meio de ligações. Este modelo permite que várias tabelas sejam usadas

simultaneamente através do uso de apontadores (ou referências). Algumas colunas

contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são

ligadas por referências, o que pode ser visto como uma rede.

O diagrama que representa os conceitos do modelo em redes consiste em dois

componentes básicos: Caixas, que correspondem aos registros e Linhas, que

correspondem às associações. A Figura 1 ilustra um exemplo de diagrama do modelo

em rede. Esse exemplo, possui dois diferentes tipos de registros: cliente e conta. O

registro cliente apresenta três atributos ou subdivisões: nome, rua e cidade. Por sua

vez, o registro conta possui apenas dois atributos: número da conta corrente e saldo.

José R4 Belém 22458 1.250

Nome Rua Cidade

Maria R1 São Paulo

Pedro R3 Jundiaí

Num_CC Saldo

20578 2.000

20552 2.500

21784 300

Page 8: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 8

Figura 1 – Exemplo de Modelo em Rede

Ligações associam registros de clientes a registros de contas. Então, sabemos que o

cliente Maria tem uma conta de número 20578 e saldo de R$ 2.000,00; e o cliente

Pedro tem duas contas: as de número 20552 e 21784, com saldo de R$ 2.500,00 e R$

300,00, respectivamente.

Atividade 01 Seguindo o modelo da Figura 1 acima, elabore um exemplo de banco de dados no

Modelo em Rede envolvendo a seguinte coleção de dados: Aluno {matrícula, nome,

idade, série, turma} e Unidade {Cidade, Bairro, Rua}. O objetivo desta coleção de

dados é armazenar informações sobre todos os alunos de um escola e de suas

unidades espalhadas em diversas localidades no país. Por meio dessa coleção deve ser

possível determinar as unidades em que cada aluno está lotado. Esse exemplo deverá

conter no mínimo 3 unidades com 5 alunos distribuídos pelas unidades. Lembre-se de

que um aluno poderá pertencer somente a uma unidade.

1.4.2 Modelo Hierárquico

Este modelo difere do modelo em rede na forma de organizar seus registros. Enquanto

no modelo em rede os registros estão distribuídos conforme a lógica de grafos

arbitrários, no hierárquico esses mesmos registros são conectados numa estrutura de

dados em árvore através de ligações de tal modo que cada tipo de registo tenha apenas

um possuidor, conforme veremos adiante.

Um diagrama de estrutura de árvore descreve o esquema de um banco de dados

hierárquico. Tal diagrama consiste em dois componentes básicos: Caixas, as quais

correspondem aos tipos de registros e linhas, que correspondem às ligações entre os

tipos de registros. Como exemplo do modelo hierárquico, considere a Figura 2 abaixo.

A Figura 2 traduz para o Modelo Hierárquico o exemplo anterior do banco com

registros de clientes e contas.

Page 9: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 9

Figura 2 – Exemplo do Modelo Hierárquico.

Um registro isolado no topo da Figura 2 encontra-se associado a todos os registros de

clientes. Esse é o registro do tipo “raiz”, o ponto de partida da árvore de registros. Ele

está no nível mais elevado da estrutura de dados e pode ser ligado a nenhum, um ou

vários registros no nível inferior. Em nosso exemplo, os registros conectados ao

registro “raiz” são sempre registros de clientes que, por sua vez, estão sempre

interligados a registros de contas no nível imediatamente abaixo.

Um banco de dados com estrutura em árvore apresenta camadas, níveis ou hierarquias

diferentes. Os registros de um dado nível sempre se associam aos registros do nível

imediatamente inferior e nunca com registros do mesmo nível, ou seja, em nosso

exemplo do banco, um cliente nunca se associa a outro cliente (pertencem ao mesmo

nível), um cliente apenas se associa com sua conta (pertencem a níveis diferentes).

Qualquer busca a um registro específico sempre começa pela raiz até o nível

correspondente ao tipo procurado.

Em uma árvore, um registro de nível N pode estar associado a, no máximo, um

registro do nível imediatamente acima (N-1). Contudo, um registro do nível superior

pode estar associado a mais de um registro do nível imediatamente abaixo.

Exemplificando, se os clientes Maria e Pedro tivessem uma conta conjunta de número

22458, essa conta, de acordo com a regra do modelo hierárquico, não poderia estar

ligado a dois clientes ao mesmo tempo, devendo dessa forma, ser duplicada, conforme

pode ser visto na Figura 3.

Nome

Rua

Cidade

Num_CC Saldo

José R4 Belém

22458 1.250

Maria R1 São Paulo

20578 2.000

Page 10: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 10

Figura 3 – Modelo Hierárquico

Atividade 02 Converta o exemplo de banco de dados no Modelo Rede da Atividade 01 em um

exemplo equivalente no Modelo Hierárquico.

1.4.3 Modelo Relacional

O modelo relacional foi proposto por Edgar Codd em 1970, como uma nova maneira

de representação de dados. Este modelo, por suas características e por sua

completitude, mostrou ser uma excelente opção, superando os modelos mais usados

àquela época: o de redes e o hierárquico. A maior vantagem do modelo relacional

sobre seus antecessores é a representação simples dos dados e a facilidade com que

consultas complexas podem ser expressas.

A estrutura fundamental do modelo relacional é a relação (tabela). Uma relação é

constituída por um ou mais atributos (campos) que traduzem o tipo de dados a

armazenar. O modelo relacional não tem caminhos pré-definidos para se fazer acesso

aos dados como nos modelos que o precederam. Cada linha representa uma relação

Nome Rua Cidade

Pedro A São Paulo

Maria B Jundiaí

Pedro R3 Jundiaía

Mariaa

R1 São Paulo

22458 1250 20121 550 20552 2500 22458 1250

Page 11: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 11

entre os valores armazenados em diferentes colunas. No exemplo do banco, na tabela

Clientes temos três colunas: nome, rua e cidade, formando uma linha, onde cada uma

representa um cliente em particular, conforme podemos ver na Figura 4.

Figura 4 – Exemplo do Modelo Relacional

Assim, sabemos que o cliente “Pedro” mora na rua “A” na cidade de “São Paulo”,

pois esses dados estão na mesma linha da tabela.

Além do relacionamento entre colunas, no modelo relacional é possível também

estabelecer um relacionamento entre tabelas. Para isso, deve-se relacionar registros de

uma tabela com registros de outra duplicando uma ou mais colunas em uma tabela

distinta daquela a que pertence originalmente. Voltando ao nosso exemplo do banco,

sua representação conforme o modelo relacional pode ser vista na Figura 5.

Figura 5 – Exemplo do Modelo Relacional

Page 12: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 12

É possível perceber na Figura 5 a presença da tabela “Conta-Cliente”, que precisou

ser criada para que fosse possível o relacionamento entre as tabelas “Conta” e

“Cliente”. É importante salientar que a tabela “Conta-Cliente” possui apenas atributos

vindos de outras tabelas, sendo um atributo vindo da tabela “Conta” (CodCliente) e o

outro vindo da tabela “Cliente” (NumCC), que são justamente os atributos que

diferenciam os registros em suas tabelas de origem.

Atividade 03 Converta o exemplo de banco de dados das Atividades 01 e 02 em um exemplo

equivalente no Modelo Relacional.

1.4.4 Modelo Objeto-Relacional

A área de atuação dos sistemas Objeto-Relacional tenta suprir a dificuldade dos

sistemas relacionais convencionais, que é o de representar e manipular dados

complexos, visando ser mais representativos em semântica e construções de

modelagens. A solução proposta é a adição de facilidades para manusear tais dados

utilizando-se das facilidades SQL (Structured Query Language) existentes. Para isso,

foi necessário adicionar: extensões dos tipos básicos no contexto SQL; representações

para objetos complexos no contexto SQL; herança no contexto SQL e sistema para

produção de regras.

1.4.5 Modelo Orientado a Objetos

Os bancos de dados orientados a objeto começaram a se tornar comercialmente

viáveis em meados de 1980. A motivação para seu surgimento está em função dos

limites de armazenamento e representação semântica impostas no modelo relacional.

Alguns exemplos são os sistemas de informações geográficas (SIG), os sistemas CAD

e CAM, que são mais facilmente construídos usando tipos complexos de dados. A

habilidade para criar os tipos de dados necessários é uma característica das linguagens

de programação orientadas a objetos.

Contudo, estes sistemas necessitam guardar representações das estruturas de dados

que utilizam no armazenamento permanente. O termo Modelo Orientado a Objetos é

Page 13: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 13

usado para documentar o padrão que contém a descrição geral das facilidades de um

conjunto de linguagens de programação orientadas a objetos e a biblioteca de classes

que pode formar a base para o Sistema de Banco de Dados. Quando os bancos de

dados orientados a objetos foram introduzidos, algumas das falhas perceptíveis do

modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-

se que tais bancos de dados ganhariam grande parcela do mercado. Hoje, porém,

acredita-se que os Bancos de Dados Orientados a Objetos serão usados em aplicações

especializadas, enquanto os sistemas relacionais continuarão a sustentar os negócios

tradicionais, onde as estruturas de dados baseadas em relações são suficientes.

Exercício de Fixação Abaixo temos o modelo relacional de um banco de dados de uma locadora de vídeo.

Converta esses dados para:

a) modelo de redes;

b) modelo hierárquico;

1.5 Modelagem de Dados

Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão

armazenadas em um banco de dados. Por exemplo, no caso de uma indústria, o

modelo de dados poderia informar que o banco de dados armazena informações sobre

produtos e que, para cada produto, são armazenados seu código, preço e descrição.

Observe que o modelo de dados não informa quais os produtos que estão

Page 14: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 14

armazenados no banco de dados, mas apenas que o banco de dados contém

informações sobre produtos.

Para construir um modelo de dados, usa-se uma linguagem de modelagem de dados.

Linguagens de modelagem de dados podem ser classificadas de acordo com a forma

de apresentar modelos, em linguagens textuais ou linguagens gráficas. Como veremos

adiante, um mesmo modelo de dados pode ser apresentado de várias formas, podendo

conter ou não alguns detalhes acerca da organização interna dos dados no banco.

No projeto de banco de dados, normalmente são considerados dois níveis de abstração

de modelo de dados, o do modelo conceitual e o do modelo lógico, vistas a seguir.

1.5.1 Modelo Conceitual

Um modelo conceitual é uma descrição do banco de dados de forma independente de

implementação em um SGBD. O modelo conceitual registra que dados podem

aparecer no banco de dados, mas não registra como estes dados estão armazenados a

nível de SGBD.

A técnica mais difundida de modelagem conceitual é a abordagem entidade-

relacionamento (ER). Nesta técnica, um modelo conceitual é usualmente representado

através de um diagrama, chamado diagrama entidade-relacionamento (DER). A

modelo conceitual

=

modelo de dados abstrato, que descreve a estrutura de um banco

de dados de forma independente de um SGBD particular

Modelo de Dados

=

descrição formal da estrutura de um banco de

dados

Page 15: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 15

Figura 6 apresenta um DER parcial para o problema da fábrica.

Figura 6 – Exemplo de um modelo conceitual

Entre outras coisas, este modelo informa que o banco de dados contém dados sobre

produtos e sobre tipos de produtos. Para cada produto, o banco de dados armazena o

código, a descrição, o preço, bem como o tipo de produto ao qual está associado. Para

cada tipo de produto, o banco de dados armazena o código, a descrição, bem como os

produtos daquele tipo.

Page 16: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 16

Capítulo 2 – Sistemas Gerenciadores de Banco de Dados 2.1 Introdução

Todo Sistema Gerenciador de Banco de Dados (SGBD) deve oferecer aos seus

usuários e administradores meios de criar definições de dados, bem como manipular

esses dados armazenados em suas bases. Desse modo, a linguagem SQL, sigla em

inglês para Structured Query Language, ou Linguagem de Consulta Estruturada, é

uma espécie de padrão adotado por diferentes SGBDs de modo a facilitar a

comunicação e a integração dos sistemas. O SQL tem o objetivo de acessar, de forma

estruturada e declarativa, elementos de tabelas de bancos de dados. Sua principal

tarefa é, portanto, criar e manter objetos, manipular e recuperar dados do banco de

dados, administrar dados e manter a segurança.

SQL é uma linguagem de pesquisa para uso em Banco de Dados Relacional, podendo

ser utilizada como linguagem de construção, modificação e acesso a Banco de Dados.

Cabe ressaltar que essa linguagem tem um caráter diferenciado das linguagens de

programação, pois é uma linguagem declarativa, ou seja, não é necessário que você

programe qualquer algoritmo para acessar o conteúdo das tabelas.

O SQL foi desenvolvido originalmente no início dos anos 1970 nos laboratórios da

IBM em San Jose, dentro do projeto System R. O nome original da linguagem era

SEQUEL, acrônimo para Structured English Query Language (Linguagem de

Consulta Estruturada em Inglês). Embora o SQL tenha sido originalmente criado

pela IBM, rapidamente surgiram vários "dialetos" produzidos por outros

desenvolvedores. Essa expansão levou à necessidade de ser criado e adaptado um

padrão para a linguagem. Esta tarefa foi realizada pela American National Standards

Institute (ANSI) em 1986 e International Organization for Standardization (ISO) em

1987. O SQL foi revisto em 1992 e a essa versão foi dado o nome de SQL-92. Foi

revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003,

respectivamente.

Page 17: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 17

Embora SQL seja a linguagem de banco de dados mais influente do mercado, ela não

é a única, existindo outras, como exemplo:

QBE (Query-by-Example) – Integra o sistema de banco de dados QBE que foi

desenvolvido pela IBM no início de 1970;

Quel – Linguagem de consulta lançada para o banco de dados Ingres,

desenvolvido na Universidade da Califórnia em Berkeley;

Datalog – Linguagem de consulta baseada na lógica de programação Prolog.

SQL é caracterizada pela utilização de palavras-chaves que podem ser classificadas,

de acordo com sua função, nos seguintes tipos:

DML – Linguagem de Manipulação de Dados, subconjunto da linguagem

usado para inserir, atualizar e apagar dados. Ex.: INSERT, UPDATE,

DELETE;

DDL – Linguagem de Definição de Dados, permite ao utilizador definir

tabelas novas e elementos associados. Ex.: CREATE, DROP;

DCL – Linguagem de Controle de Dados, controla quem tem acesso para ver

ou manipular dados dentro do banco de dados. Ex.: GRANT, REVOKE;

DTL – Linguagem de Transação de Dados, usado para o controle de

transações no banco de dados. Ex.: START TRANSACTION;

DQL – Linguagem de Consulta de Dados, permite ao usuário especificar uma

consulta (query) como uma descrição do resultado desejado. Ex.: SELECT.

Todos esses termos estranhos, escritos em letra maiúscula, citados como exemplo,

fazem parte da linguagem SQL.

2.2 Sistemas Gerenciadores de Banco de Dados (SGBDs)

Os SGBDs são conjuntos de programas de computador (softwares) responsáveis pelo

gerenciamento de um banco de dados. O principal objetivo é retirar da aplicação em

desenvolvimento a responsabilidade de gerenciar o acesso, manipulação e

Page 18: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 18

organização dos dados. O SGBD disponibiliza uma interface para que os seus clientes

possam incluir, alterar ou consultar dados.

Qualquer empresa que pretenda garantir um controle efetivo sobre o seu negócio tem

obrigatoriamente que recorrer a SGBDs. A planilha eletrônica é uma ferramenta de

controle usada para operacionalizar os dados e assim criar informação útil ao

planejamento diário das empresas. Contudo, existem outros tipos de ferramentas, mais

completas e com funcionalidades extras que elevam a capacidade operacional de

gerenciar informação de valor para a organização.

Um SGBD permite armazenar, modificar e extrair informação de um banco de dados.

Há diferentes tipos de SGBD, desde pequenos sistemas que funcionam em

computadores pessoais a sistemas complexos associados a servidores de grandes

empresas.

Os SGBDs mais populares que utilizam linguagem SQL estão listados a seguir.

Oracle – Surgiu no fim dos anos 70, sendo desenvolvido pela empresa de

mesmo nome, que é líder de mercado no segmento de banco de dados, sendo

pioneira no lançamento de novas soluções de banco de dados para diversos

segmentos, sobretudo, no campo das aplicações corporativas. Atualmente,

encontra-se na versão Oracle 11g.

SQL Server – Criado pela Microsoft em 1989, surgiu de uma parceria entre a

Sybase, Ashton-Tate e Microsoft. Atualmente, encontra-se na versão Microsoft

SQL Server 2008, sendo considerada uma plataforma de dados confiável,

produtiva e inteligente.

PostgreSQL – SGBD de código aberto do tipo objeto relacional lançado em

1995, resultante de uma evolução do projeto Ingres desenvolvido na

Universidade da Califórnia em Berkeley, encontra-se atualmente na versão 8.

Firebird – SGBD de código aberto criado a partir do InterBase da Borland,

quando da abertura de seu código em Julho de 2000, encontra-se atualmente

na versão 2.1.3.

Page 19: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 19

MySQL – SGBD de código aberto, criado na década de 1980 na Suécia, sendo

considerado o SGBD open source mais popular no mundo atualmente, sendo

utilizado por grandes corporações, como NASA, Banco Bradesco, Dataprev,

HP, Nokia, Sony, Cisco Systems, Google e outros. O MySQL foi comprado em

2008 pela SUN Microsystems que posteriormente foi comprada pela Oracle.

Ou seja, o MySQL atualmente é um produto da Oracle. O seu sucesso é

atribuído a sua fácil integração com PHP presente na maioria das ferramentas

de desenvolvimento para Internet.

Considerando o resumo apresentado na lista anterior, escolhemos o MySQL como

exemplo de SGBD a ser utilizado em nosso curso. A partir de agora, vamos ensinar a

você como instalar e configurar o ambiente e após isso você já estará apto a entrar no

mundo maravilhoso da linguagem SQL.

Antes de falarmos um pouco sobre o MySQL, a seguir, discutiremos sobre os

softwares que serão utilizados ao longo desse curso.

Page 20: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 20

Capítulo 3 – Manipulando Banco de Dados

3.1 Requisitos e instalações de softwares

Neste curso, para trabalharmos com o MySQL utilizaremos a ferramenta

chamada XAMPP. Esta ferramenta instala e configura o MySQL (banco de dados), o

Apache (servidor web) e o PhpMyAdmin (Software de gerenciamento do MySQL)

automaticamente. Trabalharemos com a versão XAMPP 1.7.7 que está disponível

em http://www.apachefriends.org/ptbr/xampp-windows.html. Essa versão do XAMPP

instalará e configurará as seguintes versões desses softwares:

Apache 2.2.21

PHP 5.3.8

PHPMyAdmin 3.2.4

Após o download do XAMPP, o aluno deverá executar o instalador e clicar

nos botões “próximo” até a finalização da instalação.

Após a instalação do XAMPP, aparecerá a tela de execução conforme

mostrado mostrado na Figura 1. É importante ressaltar que para iniciar manipulação

do MySQL através do PHPMyAdmin, o aluno primeiramente deverá executar o

Apache e o MySQL (aparecerá “Running” ao lado de cada programa).

Page 21: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 21

Figura 1 – Tela de execução do XAMPP.

3.2 MySQL

Em um mundo onde a globalização está cada vez mais presente, os processos cada

vez mais automatizados e as barreiras de distância sendo quebradas pelo aumento da

popularização da internet, a necessidade de armazenamento de dados e informações

de cada mercado torna-se o primeiro passo para a migração de seu negócio para a

internet. É visando a suprir essa necessidade que se utiliza o MySQL.

O MySQL é um servidor e gerenciador de banco de dados (SGBD) relacional, de

licença dupla (sendo uma delas de software livre), projetado inicialmente para

trabalhar com aplicações de pequeno e médio portes, mas hoje atendendo a aplicações

de grande porte e com mais vantagens do que seus concorrentes. Possui todas as

características que um banco de dados de grande porte precisa, sendo reconhecido por

algumas entidades como o banco de dados open source com maior capacidade para

concorrer com programas similares de código fechado, tais como SQL Server (da

Page 22: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 22

Microsoft) e Oracle.

Como dito anteriormente, o MySQL é desenvolvido e distribuído por meio de duas

licenças que irão depender do tipo de uso da ferramenta. Na maioria dos casos, seu

uso é livre e gratuito. Contudo, vale a pena conhecer as duas possíveis licenças do

MySQL.

A primeira, software livre estabelece o que se pode ou não fazer com a ferramenta e

demais recursos. Além do programa, o seu código-fonte também é disponibilizado

para que qualquer pessoa possa adaptá-lo às suas necessidades; contudo, todas essas

situações serão tratadas e detalhadas na licença GNU-GPL.

Basicamente, a licença do tipo GNU-GPL baseia-se nos seguintes princípios:

Utilização: Permite utilizar o software para qualquer propósito.

Distribuição: Permite a livre distribuição do software entre todas as pessoas.

Didática: Permite que seu funcionamento seja estudado a partir de seu código-

fonte.

Colaboração: Permite que seu código-fonte seja alterado para evoluir a

ferramenta, desde que seu novo código-fonte continue sendo livre seguindo

essa licença.

A segunda licença é comercial. Para algumas situações sobre como embutir o MySQL

dentro de suas aplicações comerciais (ou seja, fora dos termos da GNU-GPL), obter

suporte diferenciado, ou obter pacotes com mais ferramentas, essa licença pode ser

mais apropriada.

A seguir, algumas das principais características existentes no MySQL.

1. SGBD: O MySQL, além de banco de dados, contém todas as características de

um SGBD (Sistema Gerenciador de Banco de Dados), que é o MySQL Server.

Além de armazenar os dados, o MySQL Server provê todas as características

de multiacesso a estes, entre outras funcionalidades de um SGBD, como, por

exemplo, gerenciamento de acesso, integridade dos dados, concorrência,

transações, entre outros.

2. Portabilidade: O MySQL é uma aplicação altamente portável entre diferentes

sistemas, plataformas e compiladores.

3. Formas de armazenamento: O MySQL disponibiliza vários tipos de tabelas

Page 23: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 23

para armazenamento de dados, tendo cada tipo suas próprias características. A

vantagem dessa variedade de tabelas é a possibilidade de escolher o tipo em

cada situação diferente. Enquanto um tipo prioriza velocidade, outro prioriza

volume de dados, entre outras características.

4. Velocidade: Maior velocidade no acesso aos dados em razão de vários fatores

em seu desenvolvimento.

5. Segurança: Sistema gerenciador de conexões que trabalha com criptografia no

tráfego de senhas. Ainda, em complemento ao uso de autenticação baseado em

senhas, é possível habilitar uma espécie de firewall de autenticação,

responsável por habilitar as devidas conexões somente para estações e

domínios especificados em sua lista de acesso.

6. SQL: O SQL utilizado pelo MySQL é altamente veloz. Isto se deve ao fato de

a linguagem ter sido implementada por meio de códigos e funções altamente

otimizadas pelos seus desenvolvedores.

7. Capacidades: O MySQL tem um alto poder de execução e de armazenamento.

O MySQL é um banco de dados extremamente poderoso, pronto para executar

mais de um bilhão de consultas por dia de um site, ou até mesmo processar

milhares de transações por minuto, conforme os próprios papers e artigos do

MySQL AB.

8. Compatibilidade: A maioria dos sistemas operacionais existentes no mercado

suporta a execução do MySQL. Dentre as principais, pode-se destacar: Linux

(Fedora Core, Debian, SuSE, RedHat), Mac OS X Server, Windows (2000,

2003, XP), entre outros.

3.3 PhpMyAdmin

Neste curso, utilizaremos o PhpMyAdmin que é uma excelente ferramenta para

manipulação do MySQL, muito útil principalmente para desenvolvedores web. Ele

dispõe de uma série de recursos interessantes para administração do banco de dados.

Com essa ferramenta é possível fazer desde atividades básicas de administração como

criar, alterar, renomear tabelas, ou ainda fazer consultas usando SQL, como também

gerenciar as conexões com o banco.

Page 24: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 24

Depois de instalado o XAMPP, o PhpMyAdmin poderá ser executado através do

navegador, digitando o seguinte endereço: http://localhost/phpmyadmin. A tela inicial

do PhpMyAdmin é demonstrado na Figura 2.

Basicamente, um banco é composto por tabelas que são formadas por campos. Cada

tabela precisa ter um campo chave primária que faz referência a sua tabela em outras

tabelas. Sendo assim, o PHPMyAdmin será utilizado para criar nossos Banco de

Dados e Tabelas.

Figura 2 – Tela inicial do PhpMyAdmin

Na página principal do PHPMyAdmin, mostrada na Figura 2, encontramos do lado

esquerdo um menu superior com os botões: Home (para voltar a página principal do

PHPMyAdmin), SQL - Query Window (para escrever um script SQL ou importá-lo

de algum arquivo texto), PHPMyAdmin Documentation (para visualizar a

documentação do seu PHPMyAdmin) e Documentation (para acessar a documentação

do SQL). Logo embaixo você pode visualizar todos os bancos de dados criados.

Clicando sobre eles pode visualizar as tabelas de cada banco e clicando sobre elas

pode visualizar os seus campos. Com mais um clique sobre Browser, poderá

visualizar os dados armazenados nela.

Page 25: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 25

Figura 3 – Tela de Menu do PhpMyAdmin

Criando um banco de dados

Botão Principal

Botão Janela de Consulta

Botão Documentação do PHPMyAdmin

Botão Documentação

Page 26: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 26

Figura 4 – Tela Para Criação de um Banco de Dados.

Primeiro criamos o banco de dados com o com o comando SQL “CREATE

DATABASE nomedobanco”, neste caso ficaria: “CREATE DATABASE

CURSOMYSQL”.

Pronto, nosso banco de dados CURSOMYSQL está criado. Note que aparecerá no seu

navegador uma coluna à esquerda com o nome do seu banco e um zero entre

parêntesis indicando que ele não possui nenhuma tabela.

Do lado direito do botão “Document” do PHPMyAdmin você verá além do menu

superior do PHPMyAdmin, a mensagem “Nenhuma tabela encontrada no Banco de

Dados” e logo abaixo “Criar nova tabela no Banco de Dados CURSOMYSQL”,

Então no campo indicado como “Nome” digite “informacoes” que é o nome da nossa

tabela. Em “Numero de arquivos” digite 3, isso significa que nossa tabela terá 3

campos. Agora clique em “Executar”. Agora temos a tela de inserção dos 3 campos

da nossa tabela “informacoes”.

Figura 5 – Tela para Criação de uma Nova Tabela.

Digite o nome do banco de dados e clique no

botão Criar.

Page 27: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 27

Figura 6 – Tela para Criação dos Campos de uma Tabela.

Na tela seguinte, conforme Figura XY, na primeira coluna escreva no Campo

“idcontato”, Tipo INT, marque a opção “AUTOINCREMENT” e o selecione a opção

“PRIMARY” no campo “Índice”.

Com isso você está dizendo que o campo “idcontato” é uma chave primária, ou seja, é

o índice da tabela que pode fazer referência dela em outras tabelas do mesmo banco.

Nesse primeiro exemplo só temos uma tabela. O argumento autoincrement diz que ao

adicionar um registro na tabela esse campo é automaticamente incrementado de 1.

Nas duas últimas colunas insira respectivamente os atributos “nome” e “telefone” e

escolha o tipo dos campos como TEXT. Agora clique em “Salvar” e nossa tabela

informacoes está pronta. Clicando em “informacoes” no lado esquerdo podemos ver

todos os campos da nossa tabela.

Com a criação dessa tabela, podemos perceber que existem certos parâmetros que

precisamos definir nesse momento. Como por exemplo a definição para cada atributo

o seu respectivo tipo. Os tipos mais comuns de dados são:

Page 28: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 28

CHAR (tamanho) – sequência de caracteres (string) de comprimento fixo. O

tamanho é especificado entre parênteses. O tamanho máximo permitido é de

255 caracteres.

VARCHAR (tamanho) - sequência de caracteres (string) com tamanho

variável. O tamanho máximo, ou seja, a quantidade máxima de caracteres que

poderá ser armazenada no campo é especificada entre parênteses.

INT – tipo numérico que aceita valores inteiros. Podemos representar com

esse tipo qualquer valor inteiro na faixa entre -2.147.483.648 e 2.147.483.647.

NUMERIC(n,d) – tipo numérico que aceita valores reais (n indica a

quantidade total de números e d indica a quantidade do total que corresponde a

casas decimais). Exemplo: NUMERIC(5,2) corresponde a números com 5

dígitos com até duas casas decimais, como 256,12.

TIME – tipo tempo no formato hora:minuto:segundo.

DATE – tipo data no formato ano-mês-dia.

Outro conhecimento interessante nesse momento é sobre a existência uma ou mais

colunas com restrições que lhes estão associadas. Restrição é basicamente uma regra

associada a uma coluna que diz quais as limitações dos dados inseridos nessa coluna.

Por exemplo, a restrição UNIQUE especifica que dois registros não podem ter o

mesmo valor em uma determinada coluna. Eles devem ser todos originais. As

restrições mais populares são NOT NULL e PRIMARY KEY. A restrição NOT

NULL especifica que uma coluna não pode ser deixada em branco. E a restrição

PRIMARY KEY (chave primária) define uma identificação única de cada registro (ou

linha) em uma tabela. Iremos aprender mais sobre restrições no decorrer da disciplina.

Page 29: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 29

Figura 7 –Tabela de Banco de Dados.

Veja que clicando em “Inserir” no menu superior do PHPMyAdmin é possível inserir

dados nos campos da nossa tabela.

Outra alternativa para criarmos e manipularmos nosso banco de dados seria escrever

nossos códigos em SQL. Para isso, clique no botão “Janela de Consulta”, localizado

no canto superior esquerdo, escreva seus códigos SQL e clique no botão “Executar”.

Veja como ficaria o código para criar o banco CURSOMYSQL e a tabela

informacoes com seus campos:

No código SQL, o atributo NOT NULL significa que o campo não pode ser nulo. Isso

é especificado pelo programador.

Inserir, deletar e selecionar com MySQL

Agora que temos nosso banco CURSOMYSQL criado, podemos inserir, deletar e

selecionar dados nele. Nesta parte da apostila veremos como fazer isso em código

SQL.

Antes de prosseguirmos nosso curso, é importante uma consideração acerca da

manipulação dos valores em uma base de dados: os dados do tipo CHAR,

VARCHAR, DATE, TIME (texto em geral, ainda que seja apenas um caractere como

A ou B) devem ser representados entre aspas simples (‘’). Os dados do tipo INT ou

NUMERIC não são representados por aspas simples. Observe ainda que as casas

decimais dos números devem ser separadas por pontos ao invés de vírgulas, e os

valores do tipo VARCHAR podem conter acentos e espaços em branco.

Inserir valores

Page 30: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 30

Suponha que você queira adicionar um contato na sua tabela “informacoes”. Veja o

exemplo abaixo de como fazer:

O código acima significa: Insira no banco 'CURSOMYSQL', na tabela 'informacoes'

que possui os campos 'idcontato', 'nome' e 'telefone', os valores '1', 'Daniel Moreira

dos Santos', '9999-0000' respectivamente.

Deletar valores

Percebemos que o código é bem sugestivo. Delete de 'informacoes', onde 'idcontato' =

1. Lembre que idcontato é nossa chave primária.

Selecionar valores

Através do código SQL podemos selecionar um registro ou grupo de registros que

satisfazem à uma condição estabelecida. Como exemplo, suponha que temos os

seguintes registros na tabela

”informacoes”:

E queremos selecionar os registros que possuem 9 no número de telefone. Nosso

código ficaria assim:

O asterisco (*) no código acima faz referência a todos os campos da tabela

informacoes. Então temos, “Selecione todos os campos da tabela informações onde

telefone parece com 9999 e ordene por idcontato”.

Atualizar

Suponha que queremos atualizar o telefone de um dos contatos registrados. Para isso,

1 Lucas Gabriel do Reis 3333-0000

2 Manoel Olivar da Costa 1111-9999

3 Francisco Jr. 5555-7777

Page 31: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 31

usamos o comando UPDATE. Veja o exemplo:

Note que só será atualizado o telefone do registro com idcontato igual a 2, que por sua

vez é único.

Destruir

O comando DROP exclui definitivamente a nossa tabela com todos os seus registros.

É bom tomar certo cuidado com este comando.

Comandos Adicionais

Vimos até agora alguns comandos principais, ainda existem outros comando que

adicionado nos comandos SELECT, UPDATE, DELETE forma uma conjunto de

manipulações.

Page 32: PROGRAMAÇÃO WEB II · INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC CAMPUS BELÉM Programação

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ

Programa Nacional de Acesso ao Ensino Técnico e Emprego – PRONATEC

CAMPUS BELÉM

Programação Web II 32

3.4 Funções do MySQL

O MySQL possui algumas funções muito úteis para manipulação dos registros de um

banco de dados. Seguem algumas importantes:

A seguir, temos um exemplo do SQL que irá retornar o número de registros da tabela

informações. Caso esta tabela contenha informações de 4 usuários, a saída dessa

consulta retornará 4.

avg(coluna) - Retorna a média dos valores da coluna.

count(item) - Se item for uma coluna, será retornado o número de valores

não nulos(NULL) nesta coluna. Se a palavra-chave DISTINCT for colocada

na frente do nome da coluna, será retornado o número de valores distintos

nesta coluna. Se for passado count(*), será retornado o número total de

registros independente de quantos tenham valor NULL.

min(coluna) - Retorna o valor mínimo da coluna.

max(coluna) - Retorna o valor máximo da coluna.

sum(coluna) - Retorna a soma dos valores da coluna.