SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Bancos de Dados Web Introdução • Considerando interfaces Web, bancos de dados se enquadram em duas frentes: 1) o banco de dados é acessado via Web 2) o banco de dados dá suporte a sites Web Alternativamente, há projetos híbridos. Introdução 1) o banco de dados é acessado via Web Neste caso, as páginas Web servem apenas de um meio de acesso que provê formulários para leitura e escrita de dados. Exemplos: sites de vendas online, de cadastro de dados de usuários, sites bancários, sites transacionais em geral. Introdução 2) o banco de dados dá suporte a sites Web Neste caso, o banco de dados é usado para armazenar o conteúdo e o formato usados para se construir o site Web. Exemplos: sites de notícias, sites de variedades, sites de aprendizado eletrônico, sites dinâmicos em geral. Pacotes de desenvolvimento Web • O desenvolvimento de sites Web com o auxílio de bancos de dados foi simplificado com pacotes contendo um servidor Web, um banco de dados e uma linguagem de desenvolvimento orientada a Web. • O exemplo mais conhecido e usado é o pacote Lamp que contém o Servidor Apache, um módulo interpretador da linguagem php e o banco de dados MySQL. Pacotes de desenvolvimento Web • A configuração de pacotes como o Lamp é voltados para pequenas aplicações que dependem de projetos simplificados e que exigem poucos recursos do banco. • As primeiras versões do MySQL, lider do segmento, por exemplo, não possuiam sequer chave estrangeira. • As versões mais recentes possuem recursos mais abrangentes, mas ainda trata-se de um banco de dados rudimentar, com poucos recursos de otimização por exemplo. Pacotes de desenvolvimento Web • Pacotes como o Lamp (e o correspondente Wamp para Windows) facilitaram bastante o desenvolvimento de sites Web. • No entanto, eles facilitam o desenvolvimento de projetos deficientes no que se refere ao armazenamento de dados. • Ao abstrair o BD, estes pacotes permitem que o banco seja usado de maneira pouco técnica, permitindo abordagens do tipo: o que eu preciso para armazenar estes dados que tenho aqui, agora? Pacotes de desenvolvimento Web • Desta maneira não são raros bancos de dados Web com baixa integridade, pouco extensíveis, e redundantes. Web designers não estudam projetos de bancos de dados antes de se aventurar no desenvolvimento. PHP e MySQL • Neste cenário, consolidou-se uma forte integração entre PHP e MySql. • Uma conexão com um banco de dados MySQL em PHP é feita da seguinte maneira: <html> <body> <?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("teste",$db); ?> </body> </html> PHP e MySQL • Neste cenário, consolidou-se uma forte integração entre PHP e MySql. • Uma conexão com um banco de dados MySQL em PHP é feita da seguinte maneira: <html> <body> <?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("teste",$db); ?> </body> </html> PHP e MySQL <html> <body> <?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("teste",$db); ?> </body> </html> • Assim como ilustrado pelo código acima, a linguagem PHP fica embutida dentro do código que define uma página Web. • A tag especial do HTML <?php ?> informa ao servidor Apache que o bloco que se segue será interpretado pelo módulo PHP PHP e MySQL <html> <body> <?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("teste",$db); $sql = "SELECT * FROM Clientes"; $result = mysql_query("$sql"); echo "<table border=1>\n"; echo "<tr><td>Nome</td><td>Idade</tr>\n"; while ($myrow = mysql_fetch_array($result)) { printf("<tr><td>%s</td><td>%s</td></tr>\n", $myrow['Nome'], $myrow['Idade']); } echo "</table>\n"; ?> </body> </html> PHP e MySQL • No exemplo anterior, pode-se ver como um código PHP pode recuperar dados do banco para construir dinamicamente a página Web. • O mesmo princípio é usado para sites construídos dinamicamente, como os grande sites de notícias. Ao invés de se atualizar o site, faz-se uma atualização do banco de dados que serve ao site. • Este mecanismo levou ao surgimento de pacotes de desenvolvimento de sites dinâmicos, usados em abundância na Web hoje em dia. PHP e MySQL • Assim como é possível recuperar dados, também pode-se inserir dados, como no exemplo abaixo: <html> <body> <?php // process form $db = mysql_connect("localhost", "root"); mysql_select_db("Teste",$db); $sql = "INSERT INTO Clientes VALUES ('Antonio','60')"; $result = mysql_query($sql); echo "Thank you! Information entered.\n"; ?> </body> </html> PHP e MySQL • Ilustração com o pacote Wamp.