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.