integração banco de dados-web através do desenvolvimento de um

Propaganda
UNIVERSIDADE DO PLANALTO CATARINENSE
DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE INFORMÁTICA
(BACHARELADO)
INTEGRAÇÃO BANCO DE DADOS-WEB ATRAVÉS DO
DESENVOLVIMENTO DE UM PORTAL
Relatório do Trabalho de Conclusão de
Curso submetido à Universidade do
Planalto Catarinense para obtenção dos
créditos da disciplina de Trabalho de
Conclusão do VIII Semestre no curso de
Informática - Bacharelado.
JEAN PIERRE EZEQUIEL
LAGES, NOVEMBRO DE 2001
UNIVERSIDADE DO PLANALTO CATARINENSE
DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE INFORMÁTICA
(BACHARELADO)
INTEGRAÇÃO BANCO DE DADOS-WEB ATRAVÉS DO
DESENVOLVIMENTO DE UM PORTAL
Relatório do Trabalho de Conclusão de
Curso submetido à Universidade do
Planalto Catarinense para obtenção dos
créditos da disciplina de Trabalho de
Conclusão do VIII Semestre no curso de
Informática - Bacharelado.
JEAN PIERRE EZEQUIEL
Orientador: Prof. Wilson Castello Branco
Neto, MSc.
LAGES, NOVEMBRO DE 2001
iii
Dedico este trabalho ao meu Pai, minha
Mãe, meus Irmãozinhos queridos do meu
coração, minha queridinha Namorada,
meus Cachorros, meus Passarinhos e ao
meu Gato.
iv
Aos amigos que sem dúvida, fizeram parte
desta história, Wilson (Tio Birdas), Perin
(Xaxá), Max, Ricardo, Ângelo (Abin
UNIPLAC), Beto, Douglas, Marcos
(Beterraba), Sílvio (Teórico), Cleiton,
Pinduca, Henrich, Valério, Madalena,
Daniela, Andréia, Rosi, João, Gabriel,
Gladystone, Elias João Gil (Moderno) e
apesar de tudo, o Jackson.
v
Ufa! Passei !!!
E que o sol continue bonito, como a lua.
Jean Pierre Ezequiel
vi
SUMÁRIO
LISTA DE FIGURAS ......................................................................................... xiii
RESUMO .............................................................................................................. ix
ABSTRACT ........................................................................................................... x
1. INTRODUÇÃO ................................................................................................. 1
1.1 Apresentação ...................................................... Erro! Indicador não definido.
1.2 Definição do Problema ...................................................................................... 1
1.3 Justificativa ....................................................................................................... 2
1.4 Objetivos ........................................................................................................... 2
1.4.1 Objetivo Geral ................................................................................................ 2
1.4.2 Objetivos Específicos ...................................................................................... 3
1.5 Metodologia ...................................................................................................... 3
2. ABORDAGEM SOBRE BANCO DE DADOS RELACIONAIS .................... 1
2.1 Banco de Dados Relacionais .............................................................................. 1
2.2 DER .................................................................................................................. 4
2.2.2 Relacionamentos............................................................................................. 4
2.2.3 Grau do Relacionamento ................................................................................ 5
2.2.4 Cardinalidade ................................................................................................. 5
2.2.5 TOTALIDADE .................................................................................................... 6
2.3. SQL - Structured Query Language ................................................................... 8
2.3.1 Where como Base das Restrição de Tuplas .................................................... 9
2.3.3 Funções Agregadas (ou de Agrupamento) .................................................... 10
2.3.4 Agrupamentos ............................................................................................... 10
2.3.5 Having .......................................................................................................... 11
2.3.6 Inserções, Alterações e Exclusões ................................................................. 12
2.3.7 Inserir (Insert) .............................................................................................. 13
2.3.8 Atualizar (Update) ........................................................................................ 13
2.3.9 Excluir (Delete) ........................................................................................... 13
3. ASP ................................................................................................................... 16
3.1 Usando ASP ..................................................................................................... 16
3.2 Requisitos para o Aprendizado ........................................................................ 17
3.3 Vantagens da ASP............................................................................................ 17
3.4 Controle das Aplicações .................................................................................. 17
3.5 Compatibilidade com Bancos de Dados ........................................................... 18
3.6 Compatibilidade com Objetos do Servidor ....................................................... 18
3.7 Menor Uso de Memória ................................................................................... 18
3.8 Aplicações ASP ............................................................................................... 18
3.9 Objetos Intrínsecos da ASP .............................................................................. 19
vii
4. DESENVOLVIMENTO DO PORTAL .......................................................... 22
4.1 Módulos e Telas do Sistema ............................................................................ 22
CONCLUSÃO ..................................................................................................... 26
5. REFERÊNCIAS BIBLIOGRÁFICAS ........................................................... 28
LISTA DE FIGURAS
FIGURA 1 – DER – Relacionamento A. ................................................................. 5
FIGURA 2 – DER – Relacionamento B................................................................... 6
FIGURA 3 – DER – Relacionamento C................................................................... 6
FIGURA 4 – Modelagem do Banco de Dados completo com
todos os planos futuros........................................................................10
FIGURA 5 – Tela inicial do sistema - Possui botões que serão
utilizados pelo usuário...................................................................... 23
FIGURA 6 – Tela de cadastro de usuários, que farão seus anúncios
através do Portal............................................................................... 23
FIGURA 7 – Tela de login e senha, através dessa página o usuário
realizará a atualização da sua página ................................................ 24
FIGURA 8 – Tela das atualizações ........................................................................ 25
FIGURA 9 – Tela para visualização da página após a atualização ......................... 25
LISTA DE SIGLAS
ASP – Active-X Server Pages.
CGI – Common Gateway Interface.
DER – Diagrama de Entidade e Relacionamento.
HTML – HiperText Markup Language.
IIS – Internet Information Server.
PHP – Personal Home-Page
SQL - Structured Query Language.
SSL – Secure Socket Layer.
10
RESUMO
As aplicações eletrônicas vem demonstrando imensos crescimentos,
tanto nos USA como na Europa, oportunizando assim novas idéias e serviços. Entre
várias novidades destacam-se os portais de negócios, os quais são responsáveis por
uma grande parte da divulgação destas inovações. Este trabalho apresenta o
desenvolvimento de um portal de propagandas e divulgação de serviços e
profissionais para a cidade de Lages. O “clickagora” terá como enfoque principal o
provimento de anúncios na WEB, de estabelecimentos comercias (hotéis,
restaurantes, casas noturnas, padarias etc), bem como profissionais liberais
(advogados, arquitetos, médicos etc...). O Portal de negócios oferece como uma de
suas funcionalidades principais a possibilidade de cadastro on-line de clientes para
terem seu próprio espaço de divulgação, o qual será fornecido a possibilidade de
alteração de sua página mediante login e senha. O Portal é composto de tecnologias
de integração banco de dados web para criação de páginas dinâmicas, possibilitaram
uma ratificação de conhecimentos, em diversas áreas da informática. Dentre as
tecnologias
utilizadas
podemos
destacar
a
ferramenta
Access,
para
o
desenvolvimento do Banco de Dados, juntamente com a linguagem SQL Structured Query Language. Para geração das páginas foram utilizadas linguagens
como ASP (Active-X Server Pages); e HTML (HiperText Markup Language);
procurando sempre manter a associação entre todos os elementos.
ABSTRACT
The Electronic Applications has come demonstrating immense growth, so
much in the USA as in Europe, showing new opportunities in ideas and services.
Among several novelties they stand out the portals of business in which are
responsible for a great part of the innovations of popularization . This work
introduces the development of a portal of propagandas and divulgation of services
and professionals in the city of Lages. The "clickagora" will have as a main focus
the announcement providing in the WEB, of establishing trades (hotels, restaurants,
night houses, bakeries etc), as well as liberal professionals (lawyers, architects,
doctors, etc..) The business Portal offers as one of it's main functionalities the
possibilities of cadaster for the on-line customers so they can have their own
popularization space, so which the possibility of alteration of its page will be
supplied by means of login and signal. The Portal is composed of integrating
technologies of web database for the dynamic pages, they facilitated a ratification
of knowledge, in several areas of
Computer
Science.
Between the used
technologies it can highlight the tool Access, for the development of the database,
together with SQL- Structured Query Language. For the desinvolvement of the
language page it was used ASP (Active-X Server Pages; HTML (Hypertext Markup
Language); Always trying to maintain the association among all the elements.
Key-words: Portal, ASP, data base and Web.
1. INTRODUÇÃO
Apresenta-se, nesse capítulo, o desenvolvimento de um sistema para web,
o qual usufrui do paradigma cliente-servidor, bem como a utilização de técnicas
para integração banco de dados web. A decisão em realizar esse trabalho, deve-se
ao fato de que a Internet, importante mecanismo de veiculação de informações, veio
para ficar. A cada dia que passa, a demanda por aplicações que rodem sobre a
estrutura fornecida pela rede mundial de computadores é ainda maior.
1.2 Definição do Problema
Pretende-se o desenvolvimento de um portal de propagandas e divulgação
de serviços e profissionais da cidade de Lages, chamado minimundo do sistema
clickagora.
O “clickagora” terá como enfoque principal o provimento de anúncios na
WEB de estabelecimentos comercias (hotéis, restaurantes, casas noturnas, padarias
etc), bem como profissionais liberais (advogados, arquitetos, médicos etc...).
Ao anunciante será fornecido a possibilidade de alteração da sua página
mediante login e senha, sem ônus e de forma simples e eficaz, através do
preenchimento de um formulário on-line.
Cada página, tanto do anunciante quanto do profissional liberal, constará
de três fotos (tamanho a ser definido) + uma propaganda (tamanho a ser definido)
que serão obtidos dinamicamente.
2
Futuramente pretende-se a implantação de outras funcionalidades como o
desenvolvimento de um Chat (sala de bate papo), uma lista de discussão bem como
um sistema de Leilão Virtual.
No sistema de Leilão um vendedor poderá colocar um item a venda no
portal. Cada item poderá receber diversos lances. Sendo que esses lances serão
efetivados por clientes do Portal.
1.3 Justificativa
Muitas são as justificativas para a realização desse trabalho, as quais são
resumidas abaixo:
1. Possibilitar uma ratificação de conhecimentos, tanto na área de banco
de dados como na área de modelagem, adquiridos no decorrer do
curso;
2. Estudar tecnologias de integração banco de dados web para criação de
páginas dinâmicas;
3. Estudar a viabilidade de se implantar o sistema proposto através da
criação de uma empresa, aumentando a gama de possibilidades no que
se diz respeito à entrada no mercado de trabalho.
4. Dificuldade em localizar serviços.
5. Ratificação de conhecimentos.
6. Oferecer novas oportunidades de negócio e mercado.
7. Desenvolvimento de um Produto.
1.4 Objetivos
1.4.1 Objetivo Geral
Será desenvolvido neste trabalho um Portal de serviços e entretenimento
para a cidade de Lages-SC.
3
1.4.2 Objetivos Específicos
O “clickagora” deverá atingir os seguintes objetivos específicos:
a)
Geração dinâmica de home-pages de empresas e profissionais liberais;
b)
Possível desenvolvimento de um sistema de leilão.
c)
Possível desenvolvimento de um chat
1.5 Metodologia
O trabalho será desenvolvido observando as seguintes etapas:
Estudo das tecnologias necessárias a implementação do sistema proposto.
Em [SILBERCHATZ/97] é encontrado o material necessário ao embasamento
teórico de banco de dados tanto como o Diagrama Entidade Relacionamento (DER)
bem como um estudo da linguagem comercial SQL altamente difundida no mercado
de Sistemas Gerenciadores de Banco de Dados Relacionais. Em [RAMALHO/97]
foi feita um estudo da linguagem HTML utilizada na criação de páginas para a
Internet. Entretanto, ainda falta a realização de um estudo sobre como se integrar às
páginas do sistema ao banco de dados, o que leva a pesquisa de linguagens de
script, tais como PHP [SOARES/2000], ASP [WEISSINGER/99]; sendo que esta
ultima foi a escolhida para a implementação do sistema proposto.
Realizar-se-á uma análise do sistema proposto com uma especificação dos
requisitos do banco de dados utilizando o Diagrama Entidade Relacionamento, que
permite definir a estrutura que o banco de dados possuirá.
Será utilizado o Access como ferramenta para desenvolvimento das
entidades encontradas no DER. Para o desenvolvimento das páginas que irão
compor o sistema, será usada a ferramenta FrontPage; como forma de integração
Banco de Dados-web será utilizado a linguagem de Script da Microsoft, ASP
(Active-X Server Pages).
2. ABORDAGEM SOBRE BANCO DE DADOS
RELACIONAIS
2.1 Banco de Dados Relacionais
Um sistema de banco de dados não é nada mais do que um sistema de
manutenção de registros por computador. O próprio banco de dados pode ser
considerado uma espécie de sala de arquivo eletrônica - ou seja, um depósito de um
conjunto de arquivos de dados computadorizados que oferece diversos recursos ao
usuário, possibilitando-lhe a realização de várias operações, incluindo, entre outras,
as seguintes:
A adição de novos (vazios) arquivos ao banco de dados; a inserção de
novos dados nos arquivos existentes;
Recuperação, atualização e eliminação de bases no arquivo existente.
A renovação permanente de arquivos existentes (vazios ou outros) do
banco de dados.
O sistema de banco de dados é basicamente um sistema de manutenção de
registros por computador, ou seja, um sistema cujo objetivo global é manter as
informações e torná-las disponíveis quando solicitadas. Trata-se de qualquer
informação considerada como significativa ao indivíduo ou à organização servida
pelo sistema - em outras palavras, que seja necessária ao processo de tomada de
decisão daquele indivíduo/organização.
Os sistemas de banco de dados agora estão disponíveis em máquinas que
abrangem desde os pequenos micros até os maiores computadores de grande porte.
Os recursos proporcionados por um determinado sistema são, até certo ponto,
2
definidos pelo tamanho e pela potência da máquina básica. Os sistemas de grandes
máquinas ("grandes sistemas”), em particular, tendem a ter usuários múltiplos e os
das máquinas pequenas ("pequenos sistemas") a ter usuário único. Um sistema de
usuário único é aquele no qual somente um único usuário pode operar num certo
momento; o sistema de usuários múltiplos é aquele em que diversos usuários podem
operar simultaneamente. Na realidade, a distinção é irrelevante: um dos objetivos da
maioria dos sistemas de usuários múltiplos é precisamente possibilitar a cada
usuário individual comportar-se como se estivesse trabalhando com um sistema de
usuário único. Os problemas especiais dos sistemas de usuários múltiplos são
essencialmente internos do sistema, não visíveis ao usuário.
Geralmente, os dados no banco de dados - pelo menos num sistema
grande - serão não só integrados, mas também como compartilhados. Estes dois
aspectos, integração e compartilhamento, representam a maior vantagem dos
sistemas de banco de dados de ambientes "grandes", e pelo menos a integração
também pode ser significativa em ambientes "pequenos". Certamente há muitas
outras vantagens, mesmo nos ambientes ditos pequenos, mas primeiro será feita
uma explicação do que significam os termos "integrado" e "compartilhado" Por
"integrado" deseja-se dizer que o banco de dados pode ser imaginado como a
unificação de diversos arquivos de dados que, de outra forma, seriam distintos,
eliminando-se total ou parcialmente qualquer redundância entre os mesmos. Por
exemplo, um certo banco de dados poderia conter tanto registros de
FUNCIONÁRIOS, com nome, endereço, departamento, salário etc., como registro
de INSCRIÇÃO, representando a inscrição de funcionários em cursos de
treinamento. Suponha-se que, para o processo de administração de cursos, seja
necessário conhecer o departamento de cada aluno inscrito. Claramente não seria
preciso incluir esta informação, redundante, nos registros de INSCRIÇÃO, uma vez
que ela será encontrada nos registros correspondentes aos FUNCIONÁRIOS.
Por "compartilhado" quer dizer que parcelas isoladas de dados podem ser
compartilhadas por diversos usuários num banco de dados, no sentido de que todos
os usuários podem ter acesso à mesma parcela de dados (e podem usá-los com
finalidades diferentes). Como já mencionado, diferentes usuários podem, inclusive,
3
ter acesso às mesmas partes de dados no mesmo momento ("acesso concorrente").
Tal compartilhamento (concorrente ou não) é, em parte, conseqüência do fato de
que o banco de dados é integrado. No exemplo FUNCIONÁRIO/INSCRIÇÃO
acima, a informação sobre departamento nos registros FUNCIONÁRIO seria
compartilhada por usuários do Departamento do Pessoal e usuários do
Departamento de Educação e, como sugerido anteriormente, os dois departamentos,
estariam utilizando as informações para propósitos diferentes.
Outra conseqüência do mesmo fato (de que o banco de dados é integrado)
é que qualquer usuário, em geral, só estará interessado em um subconjunto do banco
de dados total; Ademais, os subconjuntos de diferentes usuários irão sobrepor-se de
muitas maneiras diferentes. Em outras palavras, um determinado banco de dados
será percebido por usuários diferentes de várias formas distintas. De fato, mesmo
quando dois usuários compartilham o mesmo subconjunto do banco de dados, as
visões do mesmo podem diferir consideravelmente a nível dos detalhes.
As vantagens do sistema de banco de dados em relação aos métodos
tradicionais, baseados em papéis e arquivos ficarão mais evidentes nos seguintes
exemplos:
É compacto: não há necessidade de arquivos de papéis volumosos;
É rápido: a máquina pode recuperar e modificar os dados muito mais
rapidamente do que o ser humano. Em especial, as consultas
incidentais, repentinas que são rapidamente respondidas, sem consultas
a manuais ou pesquisas visuais, que consomem muito tempo;
Importa em menos trabalho braçal: elimina a maior parte do tedioso
trabalho manual de arquivamento. As máquinas sempre executam as
tarefas mecânicas melhor do que nós;
Tem fluxo corrente: disponibilidade de informações certas e atualizadas
a qualquer momento, basta pedir.
As vantagens acima são mais significativas em ambientes de usuários
múltiplos onde o banco de dados é maior e mais complexo do que o de usuário
4
único. Há, neste caso, outra vantagem dominante, a saber: o sistema do banco de
dados proporciona à empresa o controle centralizado de seus dados operacionais (é
uma de suas propriedades mais úteis). Tal situação contrasta nitidamente com a que
encontramos na empresa sem sistema de banco de dados, onde cada aplicação
dispõe de seus próprios arquivos - muitas vezes também suas fitas e discos
particulares - de tal forma que os dados operacionais são muito dispersos,
dificultando o controle sistemático.
2.2 DER
O Modelo Entidade-Relacionamento é o modelo mais usado para
representação de bancos de dados em nível conceitual. Tem como característica
principal a facilidade de projetar esquemas de bancos de dados.
Este modelo baseia-se na representação do sistema por um conjunto de
objetos do mundo real (entidades) e por relacionamentos entre estes objetos.
2.2.1 Diagrama Entidade-Relacionamento (DER)
O Diagrama Entidade-Relacionamento, ou simplesmente DER, é a
simbologia usada para representação do esquema do banco de dados no modelo
Entidade-Relacionamento. Representa uma poderosa ferramenta de projeto.
A maioria das ferramentas CASE adotam este diagrama, mas existem
variações de simbologia. Será utilizada aqui a simbologia sugerida por
[SILBERCHATZ, 1997].
O DER é uma ferramenta muito útil na modelagem de sistemas e se
destina a representar os dados do sistema e os relacionamentos entre eles. Há
opções para se adequar o DER às mais diversas situações.
2.2.2 Relacionamentos
Um relacionamento é uma associação entre entidades. Por exemplo, as
entidades Aluno e Curso têm uma relação, num sistema de registro escolar.
No DER, um relacionamento é representado por um losango ligado às
entidades participantes.
5
Matricula-se
em curso
Aluno
Curso
FIGURA 1 – DER – Relacionamento A
(Fonte: SILBERSHATZ. Sistema de Banco de Dados. 3 ed. São Paulo: Makron Books, 1999)
Pode haver um relacionamento entre ocorrências de uma mesma entidade.
Tal relacionamento recebe o nome Auto-Relacionamento.
2.2.3 Grau do Relacionamento
O grau de um relacionamento é o número de entidades que participam do
relacionamento.
Por exemplo, o relacionamento Matricula-se em mostrado no exemplo
anterior é um relacionamento binário ou relacionamento de grau dois.
2.2.4 Cardinalidade
A cardinalidade expressa o número máximo de entidades de um dado
conjunto de entidades que pode se relacionar, através de um relacionamento, com
uma ocorrência das outras entidades participantes.
Por exemplo, um Aluno só pode estar matriculado em um único Curso.
Por sua vez, um Curso pode ter vários alunos matriculados. Logo o relacionamento
entre Aluno e Curso é
um para muitos (de curso para aluno).
A cardinalidade de um relacionamento binário, por exemplo, pode ser.
um para um
um para muitos
muitos para muitos
No DER, a cardinalidade é representada por setas. Setas simples indicam
cardinalidade (um), enquanto setas duplas indicam cardinalidade (muitos).
A seguir, tem-se um exemplo de um relacionamento com cardinalidade.
6
Matricula-se
em curso
Aluno
Curso
FIGURA 2 – DER – Relacionamento B
(Fonte: SILBERSHATZ. Sistema de Banco de Dados. 3 ed. São Paulo: Makron Books, 1999)
2.2.5 TOTALIDADE
Totalidade é uma restrição de obrigatoriedade, de uma entidade, na
participação de um relacionamento.
Por exemplo, se um aluno deve, obrigatoriamente, estar matriculado em
algum Curso, então diz-se que a entidade Aluno é Total em relação ao
relacionamento Matricula-se Em.
No DER, a totalidade é representada pelo círculo cheio.
Aluno
Matricula-se
em curso
Curso
FIGURA 3 – DER – Relacionamento B
(Fonte: SILBERSHATZ. Sistema de Banco de Dados. 3 ed. São Paulo: Makron Books, 1999)
7
Tipo de Usuário
Login
Nome
Telefone
Endereço
Numero
Lance
Senha
Perfil
tem
Faz
USUÁRIO
Lance
Refere
Tipo
Profissional
Tipo
Item
Valor
Data
Término
Oferece
Data
Entrada
Item
Tipo Estabelecimento
Arremata
Valor
Reservado
Tipo
Item
Data
Descrição
Valor
Mínimo
VENDEDOR
CLIENTE
ISA
PRFISSIONAL
LIBERAL
ESTABELECIMENTO
PARCEIRO
Tipo
Estab.
Tipo
Profissional
Código
CNPJ
ENVIA
Tipo
Propaganda
PROPAGANDA
FIGURA
DESCRIÇÃO
ISA
ANUNCIO
BANNER
DESCRIÇÃO
PROMOÇÃO
FIGURA
FIGURA 4 – Modelagem do Banco de Dados completo com todos os planos futuros.
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do
Desenvolvimento de um Portal. (Trabalho de Conclusão de Curso Superior). UNIPLAC.
Lages, 2001)
RG
8
2.3. SQL - Structured Query Language
Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos,
foram criadas linguagens destinadas à sua manipulação. O Departamento de
Pesquisas da IBM, desenvolveu a SQL como forma de interface para o sistema de
BD relacional denominado SYSTEM R, no início dos anos 70. Em 1986 o American
National Standard Institute (ANSI), publicou um padrão SQL.
A SQL estabeleceu-se como linguagem padrão de Banco de Dados
Relacional.
SQL1 apresenta uma série de comandos que permitem a definição dos
dados, chamada de DDL (Data Definition Language), composta entre outros pelo
comando Create, que é destinado a criação do Banco de Dados, das Tabelas que o
compõe, além das relações existentes entre as tabelas. Como exemplo de comandos
da classe DDL tem-se os comandos Create, Alter e Drop.
Os comandos da série DML (Data Manipulation Language), destinados a
consultas, inserções, exclusões e alterações em um ou mais registros de uma ou
mais tabelas de maneira simultânea. Como exemplo de comandos da classe DML
tem-se os comandos Select, Insert, Update e Delete.
A Linguagem SQL tem como grandes virtudes sua capacidade de
gerenciar índices sem a necessidade de controle individualizado de índice corrente,
algo muito comum nas linguagens de manipulação de dados do tipo registro a
registro. Outra característica muito importante disponível em SQL é sua capacidade
de construção de visões, que são formas de visualizar os dados na forma de
listagens independente das tabelas e organização lógica dos dados.
1
Maiores informações sobre essa linguagem, poderão ser encontradas nos seguintes endereços eletrônicos:
www.sqlbrasil.com.br e www.bolinguagens.com.br.
9
Deve-se notar que a linguagem SQL consegue implementar estas soluções,
somente pelo fato de estar baseada em Banco de Dados, que garantem por si mesmo
a integridade das relações existentes entre as tabelas e seus índices.
Segue abaixo um exemplo:
Seleção de todos os campos (ou colunas) da tabela de
Departamentos.
SELECT * FROM DEPT;
O exemplo utiliza o coringa "*" para selecionar as colunas na ordem em
que foram criadas. A instrução Select, como pode-se observar seleciona um grupo
de atributos de uma (ou mais) tabela(s). No caso a instrução From indica a
necessidade de pesquisar tais dados apenas na tabela Dept.
2.3.1 Where como Base das Restrição de Tuplas
A cláusula "where" contém a condição que as tuplas devem obedecer a
fim de serem listadas. Ela pode comparar valores em colunas, literais, expressões
aritméticas ou funções.
A seguir apresenta-se os operadores lógicos e complementares a serem
utilizados nas expressões apresentadas em where.
Operadores lógicos
OPERADOR
=
>
>=
<
<=
SIGNIFICADO
igual a
maior que
maior que ou igual a
menor que
menor que ou igual a
Exemplo 01:
SELECT EMPNOME, EMPSERV
FROM EMP
WHERE DEPNUME > 10;
10
Exemplo 02:
SELECT EMPNOME, EMPSERV
FROM EMP
WHERE EMPSERV = 'GERENTE
2.3.3 Funções Agregadas (ou de Agrupamento)
FUNÇÃO
avg(n)
count(expr)
max(expr)
min(expr)
sum(n)
RETORNO
média do valor n, ignorando nulos
vezes que o número da expr avalia para algo nao nulo
maior valor da expr
menor valor da expr
soma dos valores de n, ignorando nulos
Seja a tabela empregado com atributo emp /sala. Os exemplos abaixo
utilizam as funções agregadas sobre essa tabela.
Apresente a Média, o Maior, o Menor e também a Somatória dos Salários pagos
aos empregados.
Resp:
SELECT
SELECT
SELECT
SELECT
AVG(EMPSALA) FROM EMP;
MIN(EMPSALA) FROM EMP;
MAX(EMPSALA) FROM EMP;
SUM(EMPSALA) FROM EMP;
2.3.4 Agrupamentos
As funções de grupo operam sobre conjuntos de tuplas (linhas). Retornam
resultados baseados em grupos de tuplas em vez de resultados de funções por tupla
individual. A claúsula "group by" do comando "select" é utilizada para dividir
tuplas em grupos menores.
A cláusula "GROUP BY" pode ser usada para dividir as tuplas de uma
tabela em grupos menores. As funções de grupo devolvem uma informação
sumarizada para cada grupo.
11
Exemplo:
Apresente a média de salário pagos por departamento
Resp:
SELECT DEPNUME, AVG(EMPSALA)
FROM EMP
GROUP BY DEPNUME;
Obs.: Qualquer coluna ou expressão na lista de seleção, que não for uma
função agregada, deverá constar da claúsula "group by". Portanto é errado tentar
impor uma "restrição" do tipo agregada na cláusula Where.
2.3.5 Having
A cláusula "HAVING" pode ser utilizada para especificar quais grupos
deverão ser exibidos, portanto restringindo-os.
Retome o problema anterior, porém apresente resposta apenas para
departamentos com mais de 10 empregados.
Resp:
SELECT DEPNUME, AVG(EMPSALA)
FROM EMP
GROUP BY DEPNUME
HAVING COUNT(*) > 3;
Obs.: A claúsula "group by" deve ser colocada antes da "having", pois os
grupos são formados e as funções de grupos são calculadas antes de se resolver a
cláusula "having".
A cláusula "where" não pode ser utilizada para restringir grupos que
deverão ser exibidos.
Exemplificando ERRO típico - Restringindo Média Maior que 1000:
SELECT DEPNUME, AVG(EMPSALA)
12
FROM EMP
WHERE AVG(SALARIO) > 1000
GROUP BY DEPNUME;
(Esta seleção está ERRADA!)
SELECT DEPNUME, AVG(EMPSALA)
FROM EMP
GROUP BY DEPNUME
HAVING AVG(EMPSALA) > 1000;
(Seleção Adequada)
2.3.6 Inserções, Alterações e Exclusões
Uma linguagem direcionada a extração de informações de um conjunto de
dados, em tese não deveria incorporar comandos de manipulação dos dados. Devese observar contudo que a mera existência de uma linguagem padronizada para
acesso aos dados "convidava" os desenvolvedores a aderirem a uma linguagem
"padrão" de manipulação de tabelas. Naturalmente cada desenvolvedor coloca "um
algo mais" em seu SQL (SQL PLUS, SQL *, ISQL, e toda sorte de nomenclaturas),
por um lado desvirtuando os objetivos da linguagem (padronização absoluta), mas
em contrapartida otimiza os acessos ao seu banco de dados e por maior que sejam
estas mudanças, jamais são tão importantes que impeçam que um programador
versado em SQL tenha grandes dificuldades em se adaptar ao padrão de
determinada implementação. De fato as diferenças entre o SQL da Sybase, Oracle,
Microsoft, são muito menores dos que as existentes entre o C, o BASIC e o Pascal,
que são chamadas de linguagens "irmãs", pois todas originam-se conceitualmente
no FORTRAN. Pode-se observar que todas as três linguagens mencionadas possuem
estruturas de controle tipo "para" (for), "enquanto" (while) e repita (do..while,
repeat..until). Todas trabalham com blocos de instrução, todas tem regras
semelhantes para declaração de variáveis e todas usam comandos de tomada decisão
baseadas em instruções do tipo "se" ou "caso", porém apesar de tantas semelhanças,
13
é praticamente impossível que um programador excelente em uma linguagem
consiga rapidamente ser excelente em outra linguagem do grupo. Pode-se arriscar
dizer que um excelente programador C que utilize a implementação da Symantech
terá que passar por um breve período de adaptação para adaptar-se ao C da
Microsoft.
De forma alguma, o mesmo ocorrerá com o especialista em SQL ao ter
que migrar do Banco de Dados X para o Banco de Dados Y. Naturalmente existirá a
necessidade de aprendizado, mas este programador poderá ir adaptando-se aos
poucos sem precisar ser retreinado, o que é um aspecto extremamente vantajoso
para as empresas.
2.3.7 Inserir (Insert)
INSERT INTO <tabela> [<campos>] [VALUES <valores>]
Ex:
INSERT INTO DEPT (DEPNUME, DEPNOME, DEPLOCA) VALUES
(70, "PRODUÇÃO", "RIO DE JANEIRO");
Possibilita a inserção de registros em tabelas sem digitação dos dados.
2.3.8 Atualizar (Update)
UPDATE
<tabela>
SET
<campo>
=
<expressão>
[WHERE
<condição>];
Ex: UPDATE EMP SET EMPSALA = EMPSALA* 1.2 WHERE
EMPSALA< 1000;
2.3.9 Excluir (Delete)
DELETE FROM <tabela> [WHERE <condição>];
Ex: DELETE FROM emp WHERE EMPSALA > 5000;
Visões
Uma visão consiste basicamente de uma tabela derivada de outras tabelas.
Considerando o exemplo TRABALHO, pode-se criar uma visão baseada na tabela
de empregados (EMP) e na tabela de departamentos (DEPT) onde tivesse somente
14
os nomes dos funcionários e os departamentos nos quais estes trabalhassem. Tem-se
algo assemelhado ao abaixo representado
CREATE VIEW EMP_DEP
AS SELECT E.EMPNOME, D.DEPNOME
FROM EMP E, DEPT D
WHERE E.DEPNUME = D.DEPNUME;
Deve-se observar que:
1- Uma visão definida sobre uma única tabela somente será atualizável se
os atributos da tal visão contiverem a chave primária de tal tabela.
2- Visões sobre várias tabelas não são passíveis de atualizações.
3- Visões que se utilizam de funções de agrupamentos, também não
poderão ser atualizadas.
2.4 O Microsoft SQL Server
Trata-se de um Sistema Gerenciador de Bancos de Dados, Relacionais,
SGBDR, que funciona unicamente sob sistema operacional Windows NT.
Para trabalhar com esta ferramenta a Microsoft fornece o ISQL, tanto em
interface DOS quanto em interface Windows. Além disso, pode-se comunicar com
o banco a partir de API´s do Windows, fazendo uso da camada de comunicação
DB-Library, ou via ODBC. A interface com o usuário pode ser construída em
Visual Basic ou Visual C++, para acesso através da DB-Library (que dá total
controle sobre as funções do banco), ou via VB, VC++, Visual Fox Pro, Access,
Excel, Word, para acesso via ODBC. Também pode-se utilizar o acesso através de
protocolo TCP/IP e linguagem HTML, caracterizando aplicações de INTRA/
INTER/ EXTRANET; o acesso ao banco propriamente dito, entre a camada de
conexão a bancos de dados e o Web Server, será realizado via ODBC.
15
O Microsoft SQL Server foi originalmente baseado no Sybase SQL Server
X, quando da versão 4.2. Na versão 6 a Microsoft implementou modificações
visando fazer uso de características multitarefa do Windows NT. Atualmente está
na versão 6.5, sendo aguardado para agosto/97 a versão 7, bem como uma versão
Personal, para ambiente Windows 95 (97).
3. ASP
Para definir a linguagem de programação, a qual foi utilizada para o
desenvolvimento do sistema, observou-se a importância do paradigma clienteservidor, onde a linguagem ASP apresenta um perfil satisfatório, possibilitando
atingir o objetivo proposto.
Microsoft Active Server Pages (ASP) é um ambiente para interpretação de
scripts no servidor, permitindo a criação de páginas dinâmicas e interativas na
Internet ou numa Intranet. Basicamente ASP é um interpretador de scripts
(VBScript, JScript, Perl etc.) integrado ao Web Server (IIS) ou podendo ser usado
juntamente com os seguintes Web Servers:
Microsoft Peer Web Services versão 3.0 no Windows NT Workstation.
Microsoft Personal Web Server no Windows 95 ou 98.
Pode também ser utilizado no Apache através da inclusão de uma camada
de software.
O ASP é utilizado principalmente para proporcionar acesso à dados e
tornar a tecnologia da Internet útil no desenvolvimento de sistemas para rede locais
(LANs).
3.1 Usando ASP
A linguagem possibilita a criação de páginas dinâmicas, interativas e de alta
performance. Como as páginas ASP, os scripts rodam no servidor e não no cliente.
É o próprio servidor que transforma os scripts em HTML padrão, fazendo com que
qualquer browser do mercado seja capaz de acessar um site que usa ASP.
17
Entre os recursos que podem ser implementados via ASP, pode-se citar:
Programação em VBScript ou Jscript;
Acesso a banco de dados;
Sessões (persistência de informações no servidor);
A plataforma IIS 5.0 da GLOBOWEB suporta ASP e todos os seus
recursos.
3.2 Requisitos para o Aprendizado
Para quem já conhece Visual Basic, o ASP torna-se questão de adaptação.
Para quem já tem noção de lógica de programação, basta aprender alguns comandos
e poderá começar a desenvolver algum sistema em ASP.
É interessante também o pré-conhecimento de HTML (Hyper Text Markup
Language), modelagem de banco de dados e tecnologias para Internet.
3.3 Vantagens da ASP
Independência de browser:
Todos os browsers suportam ASP. Isto acontece pelo fato das páginas ASP
serem processadas pelo servidor. O que o cliente recebe é somente código HTML
padrão, independendo se o cliente é o Netscape, Internet Explorer, NeoPlanet,
Hotjava, Ópera, Lynx, qualquer outro.
3.4 Controle das Aplicações
As aplicações ASP podem armazenar dados que são mantidos durante toda
uma sessão. Desta forma, um usuário pode, por exemplo, fornecer seu nome
somente uma vez em uma página e as demais páginas podem obter este dado
automaticamente. Este recurso é ideal para aplicações de comércio eletrônico pela
Internet.
O recurso ASP é parte integrante do IIS (Internet Information Server), que
tem sua segurança integrada com o Windows NT Server. É fácil restringir o acesso a
18
páginas ASP usando os esquemas de autenticação do IIS (senha básica da Web,
senha do NT ou certificados de cliente). É ainda possível dar segurança aos dados
transmitidos usando SSL (Secure Socket Layer).
3.5 Compatibilidade com Bancos de Dados
Uma aplicação ASP pode ser utilizada com qualquer banco de dados
compatível com ODBC. Isto inclui dados do Access, Microsoft SQL Server, Oracle,
Sybase, Informix, DB2, entre outros.
As conexões podem ser feitas via ODBC ou diretamente na base de dados.
Isto permite que inclusões de instruções SQL (Structured Query Language) sejam
feitas, o que aumenta mais o desempenho e a eficácia das aplicações.
3.6 Compatibilidade com Objetos do Servidor
A ASP também pode acessar objetos dos servidores IIS ou PWS e fazer
uso dos mesmos. Esta compatibilidade permite uma grande interação com os dados
do usuário e recursos que apenas encontra-se no lado do servidor.
3.7 Menor Uso de Memória
O ASP lhe dá todos os recursos de aplicações CGI (Common Gateway
Interface) de uma forma mais fácil e mais robusta. Com ASP é bem mais fácil criar
conexões entre o browser e os dados em formatos normalmente incompatíveis com
HTML, como bancos de dados.
ASP é mais robusto por não criar um processo no servidor para cada
pedido do usuário, como acontece com o CGI. Usando ASP ao invés de CGI, um
servidor pode atender a um grande número de pedidos de usuários de forma mais
rápida e usando menos memória. Além disso, criar páginas ASP é em geral muito
mais fácil do que criar aplicações CGI.
3.8 Aplicações ASP
Grandes sites têm utilizado ASP para desenvolvimento de:
19
comércio eletrônico;
leilões On-line;
jogos via Internet;
portais de comunicação;
jornalismo On-line;
intranets em geral.
E quaisquer outros sistemas de informação para redes.
3.9 Objetos Intrínsecos da ASP
São objetos fornecidos diretamente pela lado servidor ASP que estão
sempre disponíveis para scripts server-side (do lado do servidor) e não precisam ser
criados:
Application
É a própria aplicação ASP e mantém seu estado para todos os visitantes do
site, até que o servidor seja reiniciado.
ASPError
Obtém informações sobre um erro ocorrido em uma página ASP.
Object Context
Encerra ou aborta uma transação em uma página ASP.
Request
Fornece acesso às informações passadas na solicitação do browser ao
servidor.
Response
Fornece acesso às informações passadas na solicitação do servidor ao
browser.
Server
20
Permite acesso a métodos e propriedades do servidor.
Session
Armazena informações para a sessão de um usuário.
Componentes do IIS
Os
componentes
estão
instalados
no
IIS
no
diretório
\WinNT\Ssytem32\inetsrv e são baseados na tecnologia ActiveX da Microsoft.
Para registrar um novo componente (geralmente uma DLL) basta executar
no Prompt de Comando: regsvr32 arquivo.dll.
ADO
ActiveX Data Objects, tecnologia complementar a ASP, fornecendo
interface com bancos de dados.
Segue abaixo alguns componentes do servidor:
Adrotator
Controla a exibição rotativa de banners exibidos na página.
Browser Capabilities
Determina os recursos suportados pelos browsers clientes.
Content Linking
Cria tabela de conteúdo para páginas Web e vincula-as sequencialmente
(como páginas de um livro).
Content Rotator
Permite exibir automaticamente diferentes seções de código HTML em
uma página.
Counters
Cria, armazena, incrementa e retorna qualquer número de contadores
individuais.
Logging Utility
21
Cria um objeto IISLog que permite a leitura do arquivo de log do IIS.
MyInfo
Armazena pares nome / valor que acessíveis no site inteiro.
Page Counter
Mantém um registro do número de vezes que uma página foi acessada.
Permission Checker
Permite utilizar o modelo de segurança do Windows NT / 2000 para
determinar se um usuário tem permissão para manipular um arquivo armazenado
em um volume NTFS.
4. DESENVOLVIMENTO DO PORTAL
A seguir, apresenta-se algumas telas do sistema desenvolvido em
funcionamento, a fim de esclarecer as principais funcionalidades do sistema
proposto, são elas: tela inicial do sistema, tela de cadastro de usuários, tela de login
e senha, tela de atualizações e tela para visualização da página após a atualização;
juntamente com textos explicativos.
4.1 Módulos e Telas do Sistema
A FIGURA 5, demonstrada a seguir é a interface inicial do sistema e que
possui acesso aos demais módulos. Nela encontram-se opções disponíveis, que são
elas: cadastro, atualizar e contato e ainda as opções que serão implementadas
futuramente, tais como: horóscopo, fotos, chat e tempo. Este layout foi
desenvolvido como o objetivo de oferecer ao usuário, facilidade e dinamismo no
momento da navegação no site. Para a edição deste layout foi utilizado a linguagem
HTML (HiperText Markup Language) e editores de gifs animados.
Demonstrar-se-á na FIGURA 6 a maneira que o usuário fará seu cadastro
no site, possibilitando assim, a divulgação da sua propaganda. Para desenvolver o
layout, foi utilizado a linguagem HTML (HiperText Markup Language). Sendo que
no momento em que o usuário deseja enviar os dados é realizada a conexão com a
página em ASP, para que esses dados sejam armazenados nas tabelas do banco de
dados.
23
FIGURA 5 - Tela inicial do sistema
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do Desenvolvimento de
um Portal. (Trabalho de Conclusão de Curso Superior))
FIGURA 6 - Tela de cadastro de usuários, que farão seus anúncios através do Portal
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do Desenvolvimento de
um Portal. (Trabalho de Conclusão de Curso Superior))
24
A FIGURA 7 ilustra o momento em que o usuário fará a atualização dos
dados cadastrados. Após o envio dos dados cadastrais, o usuário deve clicar no
botão atualizar para que possa digitar seu login e senha e realizar a atualização da
sua página.
FIGURA 7 - Tela de login e senha, através dessa página o usuário realizará a atualização da sua
página
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do Desenvolvimento de
um Portal. (Trabalho de Conclusão de Curso Superior))
A FIGURA 8 a seguir, demonstra o momento em que o usuário entra na
página onde irá digitar todas as suas atualizações. Para que esse procedimento
ocorra é realizado a conexão com a página ASP, logo abaixo segue o trecho do
código desenvolvido.
Para finalizar a demonstração do funcionamento do sistema, apresenta-se
na FIGURA 9 o layout final das atualizações realizadas pelo usuário, por medidas
de segurança, essas informações somente serão disponibilizadas para a web,
mediante autorização do provedor, evitando assim, o cadastro não autorizado tanto
de usuários, bem como o conteúdo.
25
FIGURA 8 - Tela das atualizações
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do Desenvolvimento de
um Portal. (Trabalho de Conclusão de Curso Superior))
FIGURA 9 - Tela para visualização da página após a atualização
(Fonte: EZEQUIEL, Jean Pierre. Integração Banco de Dados-Web Através do Desenvolvimento de
um Portal. (Trabalho de Conclusão de Curso Superior))
CONCLUSÃO
Tendo como premissa a demanda por aplicações que norteiam a
estrutura fornecida pela rede mundial de computadores, oportunizando novas idéias
e
serviços, apresentando novidades, como os portais de negócios, que são
responsáveis pela grande parte da divulgação destas inovações e que destaca a
importância do desenvolvimento de aplicados para web. Tendo clareza do espaço
que a web ocupa no mundo dos negócios, foi realizada esta pesquisa e desenvolvido
um sistema através do paradigma cliente-servidor, utilizando técnicas para
integração banco de dados web, o qual oferece aos usuários um serviço realizado on
line de forma dinâmica.
O sistema proposto possui várias funcionalidades, tais como: o
oferecimento de um portal de propagandas, que possibilita a divulgação de serviços
das empresas e dos profissionais da cidade de Lages.
O sistema oferece a realização de cadastro on-line de clientes,
possibilitando dessa maneira, que seus clientes tenham seu espaço próprio de
divulgação e posteriores alterações mediante um login e uma senha, contribuindo
dessa maneira para a continuidade do crescimento do mundo globalizado, pois as
oportunidades que a web oferece em todos as áreas de conhecimento, tendem a
expandir com as inovações do mercado de trabalho.
O “clickagora” atinge seu objetivo específico proposto, que é a geração
dinâmica de home-pages de empresas e profissionais liberais.
A implementação proposta, ainda possibilita, num futuro próximo, a
continuidade de seu desenvolvimento, estendendo para um sistema de leilão virtual
27
e de um chat, com as mesmas linguagens de programação utilizadas ou alternando
para outras equivalentes.
Tendo clareza que as inovações na área da Informática são freqüentes e
que elas acontecem em um curto espaço de tempo, essa implementação contribui
para o desenvolvimento do mercado de trabalho on line, facilitando o mundo dos
negócios, seja ele no âmbito empresarial ou ainda, do profissional liberal.
5. REFERÊNCIAS BIBLIOGRÁFICAS
ASP.COM. 2001. Active Server Pages. Endereço eletrônico: www.asp.com.
ASPBRASIL. 2001. Active Server Pages. Endereço eletrônico: www.aspbrasil.com.br.
DATE, C. J. Introdução a Sistemas de Banco de Dados. São Paulo: Campos, 2000.
ELMASRI; NAVATHE. Fundamental of Database Systems. 2 ed. São Paulo: Wesley
Addson, 1996.
RAMALHO, José Antônio. HTML Avançado. São Paulo: Makron Books, 1997.
SILBERSHATZ. Sistema de Banco de Dados. 3 ed. São Paulo: Makron Books, 1999.
SOARES, Walace. Progamando em PHP. São Paulo: Érica, 2000.
WEISSINGER, A. Keyton. ASP Guia Completo. Rio de Janeiro: Ciência Moderna, 1999.
Download