comunicação digital – elementos de ti banco de dados implementação e integração com...

88
Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Upload: internet

Post on 18-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Comunicação Digital – Elementos de TI

Banco de Dadosimplementação e integração

com aplicações

Prof.: Sandro Rigo

Page 2: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Banco de dados: implementação e integração

Roteiro:

• Revisão de conceitos básicos

• Caso de estudo: filmes

• BD Filmes / RSS

• Acesso com HTML/PHP

• Exercícios

Page 3: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Arquitetura Cliente Servidor na Internet

Servidor Web+

http

Cliente+

http

1 2

34

http://www.unisinos.br

<html>...</html>

MS Internet ExplorerNetscape NavigatorOperaNeoPlanetAmaya.......

MS IISApacheNestcape

....... <xml>...</xml>

Page 4: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

xml....

Arquitetura Cliente Servidor na Internet

Servidor Web, documentos e scripts

Internet:

Requisições http

Filtros WWW

scripts

Internet Information Server

CGI

html....

Page 5: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Cliente Web: linguagens de script

Usuário

Navegador Web Server

JavascriptVBScript

html

Page 6: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Documentos HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <TITLE>Primeiro documento html</TITLE> </HEAD> <BODY> <p>Primeiro parágrafo</p>

<h1>Título grande</h1> <h2 align=center>Título centralizado</h2>

</BODY> </HTML>

Page 7: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Documentos HTML

Page 8: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

HTML - Editores WYSIWYG

Page 9: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

HTML - Editores WYSIWYG

Page 10: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

IntroduçãoEditores WYSIWYG

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>Untitled</title></head><body><script language="JavaScript" type="text/javascript"><!--// original code by Bill Trefzger 12/12/96function go1(){if (document.selecter1.select1.options[document.selecter1.select1.selectedIndex].value != "none") {location = document.selecter1.select1.options[document.selecter1.select1.selectedIndex].value

}}

//--></script><script language="JavaScript" type="text/javascript"><!--document.write('<form name="selecter1"><select name="select1" size=1>');document.write('<option value=none>Select your destination');document.write('<option value=none>--------------------');document.write('<option value="www.local1.br">U1');document.write('<option value="www.l2.com">R5');document.write('</select>');document.write('<input type="button" value="Go" onclick="go1()">');document.write('</form>');// end hiding contents --></script></body></html>

Page 11: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Documentos HTMLArquivo 1:

<a href="descricao.htm#parte1”>Parte 1</a> <br> <a href="descricao.htm#parte2”>Parte 2</a> <br>

Arquivo 2 (descricao.htm)

.....<a name="parte1"> ......

.....<a name="parte2"> ......

Page 12: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSSP – Cascading Style Sheets Positioning

x

yz

(0,0) (400,0)

(0,200) (400,200)

Page 13: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

PROPRIEDADES:

position absolute relative staticleft valor porcentagem autotop valor porcentagem autowidth valor porcentagem autoheight valor porcentagem autoclip retângulo autooverflow none clip scrollz-index auto valorvisibility inherit visible hidden

width

heightclip

Page 14: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 15: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

<body bgcolor="#FFFFFF"><div id="Layer1“ style="position:absolute; width:200px; height:115px; z-index:1; left: 240px; top: 176px; overflow: scroll; clip: rect(10 100 50 12); visibility: visible; background-color: #6699FF; layer-background-color: #6699FF; border: 1px none #000000"></div></body>

Page 16: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

z-index=1

z-index=0

Page 17: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 18: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 19: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 20: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 21: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 22: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

Page 23: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento <div id="imagem"> <img src="seta.gif" width=50 height=31 border=0></div>

<form name="move" action="javascript:movimenta()">X:<input type=text size=4 name="p_x" value=20><br>Y:<input type=text size=4 name="p_y" value=10><br><input type=submit value="muda"><input type=button value="volta ao in&iacute;cio“ onclick="javascript:retorna()"></form>

Page 24: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

<script language="javascript">function movimenta(){

a_p_x=document.forms[0].elements[0].value;a_p_y=document.forms[0].elements[1].value;imagem.style.left = a_p_x;imagem.style.top = a_p_y;

}

<div id="imagem"> <img src="seta.gif" width=50 height=31 border=0></div>

<form name="move" action="javascript:movimenta()">X:<input type=text size=4 name="p_x" value=20><br>Y:<input type=text size=4 name="p_y" value=10><br><input type=submit value="muda"><input type=button value="volta ao in&iacute;cio“ onclick="javascript:retorna()"></form>

<style type="text/css">#imagem {position:relative;top:10; left:10}</style>

Page 25: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

<div id="imagem"> <img src="seta.gif" width=50 height=31 border=0></div>

<form name="move" action="javascript:movimenta()">X:<input type=text size=4 name="p_x" value=20><br>Y:<input type=text size=4 name="p_y" value=10><br><input type=submit value="muda"><input type=button value="volta ao in&iacute;cio“ onclick="javascript:retorna()"></form>

Page 26: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

CSS: Posicionamento

<style type="text/css">#imagem {position:relative;top:10; left:10}

</style><script language="javascript">function movimenta(){

a_p_x=document.forms[0].elements[0].value;a_p_y=document.forms[0].elements[1].value;imagem.style.left = a_p_x;imagem.style.top = a_p_y;

}function retorna(){

imagem.style.top = 10;imagem.style.left = 20;imagem.style.visibility = 1;

}

Page 27: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

PHP

- Execução no servidor web- Integração com HTML

<html><head><title>Teste com PHP</title></head><body> <?php echo “Primeira mensagem!<P>"; ?></body></html>

Page 28: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

PHP

Exemplo com formulário:

<form action=“teste.php3" method="POST"> Nome: <input type=text name=nome> Idade: <input type=text name=idade> <input type=submit> </form>

Teste.php3:....Seu nome é: <?php echo $nome?>. Você tem mesmo <?php echo $idade?> anos de idade?....

Page 29: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Suporte em PHP para acesso a BD

$pguser=“nome_usuario";$pgpass=“senha_usuario";$db = mysql_connect("freesql.org", $username, $password); ...$query="select * from tabela1";$resultado=mysql_query($query);…$nro_registros=pg_num_rows($resultado);for($i=0; $i<$nro_registros;$i++){

$linha = pg_fetch_row($conn, $i);echo(“reg.:”.$i.” id = “.$linha[0].” nome= “.$linha[1].”<br>”);

}

Page 30: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

SGBD

Aplicação exemplo

Insere Lista

lista.php

Index.htm

insere.php

Lista.....

insere.htm

lista.htm

Formulário

Resultado.....

inseriu.htm

Page 31: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Uso de XML (eXtensible Markup Language):

Exemplo de documento xml:

<?xml version="1.0" standalone="no"?><!DOCTYPE mail system “http://infowest.com/DTDS/mail.dtd”><Mail> <From>Autor</From> <To>Alguém</To> <-- ISTO É UM COMENTÁRIO --> <Date> Terça - 14 de agosto de 2000</Date> <Subject>Introdução ao XML </Subject> <body>Comentários:<p align=“left”>Obrigado pela leitura<Br/> desta introdução</p> </body></Mail>

Page 32: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Características:

Um documento VoiceXML descreve:• Texto sintetizado (prompts) • Saídas de áudio e stream• Reconhecimento de palavras e frases• Reconhecimento de teclas pressionadas• Gravação de entradas faladas• Controle do fluxo de diálogo• Controle do telefone

Interação por Voz – Voice XML

Page 33: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Modelo: Servidor de documentos

Interpretador VoiceXML (gateway)

clientes

Pedido(voz)Resposta (voz)

Interação por Voz – Voice XML

Page 34: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Exemplo uso do voicexml

<?xml version="1.0"?> <vxml version="2.0"> <menu> <prompt> Say one of: <enumerate/> </prompt> <choice next="http://www.sports.example/start.vxml"> Sports </choice> <choice next="http://www.weather.example/intro.vxml"> Weather </choice> <choice next="http://www.news.example/news.vxml"> News </choice> <noinput>Please say one of <enumerate/></noinput> </menu> </vxml>

Interação por Voz – Voice XMLResultado:Computador:Say one of: Sports; Weather; News.Humano:AstrologyComputador :I did not understand what you said. Computador :Say one of: Sports; Weather; News.Humano:SportsComputador :(acessa http://www.sports.example/start.vxml)

Page 35: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Exemplo 2:<form id=”informacao_do_tempo">

<block>Bem vindo ao serviço de informações de tempo.</block>

<field name=”estado"> <prompt>Qual estado?</prompt>

<grammar src="state.gram" type="application/x-jsgf"/>

<catch event=”ajuda"> Por favor, fale o nome do estado onde você está.</catch>

</field>

</form>

Interação por Voz – Voice XML

Page 36: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

RSS:“Rich Site Summary”“RDF Site Summary”“Really Simple Syndication”

Origem: UserLand (1997) Netscape “channels” para o Netcenter

Referência:http://my.netscape.com/publish/formats/rss-0.91.dtd

Page 37: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSS

“Syndication” – compartilhamento/troca de conteúdo entre sites- notícias- listas de eventos- atualizações em projetos- avisos- informação corporativa- ....

“Push” – envio automático de informação, mediante um cadastro prévio do interessado

Page 38: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

Sites “usuários”:• Netscape Netcenter• Userland Software• Slashdot• Wired News• Linux Today• diversos jornais (CNN, Reuters, ...)• portais ...• blogs ...

Page 39: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSS

“Syndication”

Métodos:- “copy-paste”- APIs- Acesso a bases de dados- Aplicações específicas

OU:- RSS

Page 40: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSS

Roteiro básico:

- o site de origem disponibiliza as notícias em rss, xml, texto ou outro formato.- se necessário é realizada uma transformação (texto -> rss, BD -> rss, html->rss, .....)- o documento no formato rss é publicado na web- leitores de rss realizam a verificação e informam usuários cadastrados

Page 42: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

Page 43: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

Page 44: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

Page 45: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

Page 46: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSSintaxe básica:

<?xml version="1.0"?> <!DOCTYPE rss PUBLIC "-//Netscape

Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/ formats/rss-

0.91.dtd">

<rss version="0.91" encoding= "ISO_8859-1"> <channel ><item>.......</item</channel ></rss>

Page 47: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS

http://my.netscape.com/publish/formats/rss-0.91.dtd

........<!ELEMENT rss (channel)> <!ATTLIST rss version CDATA #REQUIRED> <!ELEMENT channel (title | description | link | language | item+ | rating? | image? | textinput? | copyright? | pubDate? | lastBuildDate? | docs? | managingEditor? | webMaster? | skipHours? | skipDays?)*> <!ELEMENT title (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT link (#PCDATA)> <!ELEMENT image (title | url | link | width? | height? | description?)*> <!ELEMENT url (#PCDATA)> <!ELEMENT item (title | link | description)*> <!ELEMENT textinput (title | description | name | link)*> <!ELEMENT name (#PCDATA)>.....

Page 48: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSSintaxe básica:<channel >

• title – o nome do canal• description – descrição breve do canal• link – um link html para o site • language – linguagem (my.netscape.com) • item – um ou mais elementos “item”

Exemplo:<channel> <title>Web Insider</title>

<link>http://webinsider.globo.com/main.php</link>

<description>Web Insider</description> <publisher>Web Insider</publisher> <language>pt</language>

Page 49: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSSintaxe básica:<item >

• title – o nome do item• description – descrição breve do item• link – um link html para o local referenciado

Exemplo:<item> <title>Novos players da TV brasileira</title>

<link>http://www.webinsider.com.br/vernoticia.php?id=1823</link>

<description> Boni, Gugu e J. Hawilla. Por Sergio Kulpas

</description></item>

Page 50: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>

<title>Web Insider</title> <link>http://webinsider.globo.com/main.php</link>

<description>Web Insider</description> <publisher>Web Insider</publisher>

<language>pt</language>

<item>

<title>Novos players da TV brasileira</title>

<link>http://www.webinsider.com.br/vernoticia.php?id=1823</link>

<description> Boni, Gugu e J. Hawilla. Por Sergio Kulpas </description>

</item>

</channel>

</rss>

Page 51: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSSOutros exemplos: uso com o Dublin CoreMódulo RSS-DC: http://web.resource.org/rss/1.0/modules/dc/

Metadados p/ descrição de documentosExemplo:

Page 52: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" > <channel rdf:about="http://example.com/news.rss"> <title>Example Channel</title> <link>http://example.com/</link> <description>My example channel</description> <items> <rdf:Seq> <rdf:li resource="http://example.com/2002/09/01/"/> <rdf:li resource="http://example.com/2002/09/02/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://example.com/2002/09/01">

<title>News for September the Second</title> <link>http://example.com/2002/09/01</link> <description>other things happened today</description> <dc:date>2002-09-01</dc:date> </item> .....

Page 53: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" > <channel rdf:about="http://example.com/news.rss"> <title>Example Channel</title> <link>http://example.com/</link> <description>My example channel</description> <items> <rdf:Seq> <rdf:li resource="http://example.com/2002/09/01/"/> <rdf:li resource="http://example.com/2002/09/02/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://example.com/2002/09/01">

<title>News for September the Second</title> <link>http://example.com/2002/09/01</link> <description>other things happened today</description> <dc:date>2002-09-01</dc:date> </item> ..... dc:subject, dc:rights

Page 54: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1. RSS<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>

<title>Web Insider</title> <link>http://webinsider.globo.com/main.php</link>

<description>Web Insider</description> <publisher>Web Insider</publisher>

<language>pt</language>

<item>

<title>Novos players da TV brasileira</title>

<link>http://www.webinsider.com.br/vernoticia.php?id=1823</link>

<description> Boni, Gugu e J. Hawilla. Por Sergio Kulpas </description>

</item>

</channel>

</rss>

Page 55: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSSintaxe básica:<channel >

• title – o nome do canal• description – descrição breve do canal• link – um link html para o site • language – linguagem (my.netscape.com) • item – um ou mais elementos “item”

<item >• title – o nome do item• description – descrição breve do item• link – um link html para o local referenciado

Page 56: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSExercício:

Notas de acompanhamento:

Aula 1 - 29/07/2003 (Sandro & Renata) Apresentação geral da disciplina, datas e avaliação; Revisão geral: arquitetura da web, linguagens de marcação, aplicações web. Sugestão de material de leitura com resumo do assunto inicial.

Aula 2 - 05/08/2003 (Sandro) Revisão da aula 1; apresentação de css(1)(2), xml(1)(2), exemplos de uso de DTD, xmlSchema e xsl. Exercício proposto: "descrição de alguma estrutura de informação em xml". Aviso: as próximas duas aulas no laboratório(6L116).

Aula 3 - 12/08/2003 (Sandro e Renata) Revisão da aula 2; apresentação de xml e xsl/xslt(1), exemplos de criação de documentos xml e modificação com xsl (exemplos). Exercícios em aula. Aviso: a próxima aula no laboratório(6L116).

Page 57: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSExercício:

Notas de acompanhamento:

Aula 1 - 29/07/2003 (Sandro & Renata) Apresentação geral da disciplina, datas e avaliação; Revisão geral: arquitetura da web, linguagens de marcação, aplicações web. Sugestão de material de leitura com resumo do assunto inicial.

Aula 2 - 05/08/2003 (Sandro) Revisão da aula 1; apresentação de css(1)(2), xml(1)(2), exemplos de uso de DTD, xmlSchema e xsl. Exercício proposto: "descrição de alguma estrutura de informação em xml". Aviso: as próximas duas aulas no laboratório(6L116).

Aula 3 - 12/08/2003 (Sandro e Renata) Revisão da aula 2; apresentação de xml e xsl/xslt(1), exemplos de criação de documentos xml e modificação com xsl (exemplos). Exercícios em aula. Aviso: a próxima aula no laboratório(6L116).

<?xml version="1.0" encoding="ISO-8859-1" ?>   <!DOCTYPE rss (View Source for full doctype...)> <rss version="0.91"><channel>  <title>Tópicos V - Notas de acompanhamento</title>   <link>http://www.inf.unisinos.br/~rigo/.../topicosv</link>   <description>Notas de acompanhamento da disciplina 60250 - Tópicos especiais em informática V</description>   <publisher>Renata Vieira e sandro Rigo</publisher>   <language>pt</language> <item>  <title>Notas da aula1</title>   <link>http://www.inf.unisinos.br/~rigo/graduacao/topicosv/index.htm#aula01</link>   <description>Assuntos tratados</description>   </item><item>  <title>Aviso: aulas em laboratório</title>   <link>http://www.inf.unisinos.br/~rigo/graduacao/topicosv/index.htm#aula02</link>   <description>Troca de sala: aulas em laboratório</description>   </item>  </channel>  </rss>

Page 58: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

1.RSSRecursos:• xpath2rss – Seleção de partes de docs HTMl/XML com XPath • RSS.py – API Python p/ geração e parsing • XML::RSS - API Perl p/ geração e parsing • Orchard RSS – Suporte para parsing em Python, Perl e C. • Site Summaries in XHTML – Serviço online para selecionar partes HTML e gerar rss• myRSS – geração online de rss • Online RSS 0.9x Validator - Valida rss(0.9x) (UserLand) • Online RSS 1.0 Validator - Valida rss(1.0) • Online RSS 1.0 Validator - Valida rss (Dave Beckett)

Sites:• Syndic8 – Portal comunitário• RSS Workshop – Introdução e tutoriais (Utah Online Services division) • Content Syndication with XML and RSS – Informações e livro de Ben Hammersley • RSSInfo - Listas de agregadores, ferramentas, tutoriais • RSS Devcenter – Portal da O'reilly para RSS

Page 59: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

PHP

Exemplo com formulário:

<form action=“teste.php3" method="POST"> Nome: <input type=text name=nome> Idade: <input type=text name=idade> <input type=submit> </form>

Teste.php3:....Seu nome é: <?php echo $nome?>. Você tem mesmo <?php echo $idade?> anos de idade?....

Page 60: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Suporte em PHP para acesso a BD

$pguser=“nome_usuario";$pgpass=“senha_usuario";$db = mysql_connect("freesql.org", $username, $password); ...$query="select * from tabela1";$resultado=mysql_query($query);…$nro_registros=pg_num_rows($resultado);for($i=0; $i<$nro_registros;$i++){

$linha = pg_fetch_row($conn, $i);echo(“reg.:”.$i.” id = “.$linha[0].” nome= “.$linha[1].”<br>”);

}

Page 61: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Caso de estudo:

http://www.imdb.com

Exercício:

Tratar a modelagem de um conjunto de tabelas e de operações para uma base de dados de filmes produzidos por alunos de um curso de comunicação digital

Page 62: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

Tabela“filmes”

Campo Tipo Nulo Padrão

id  int(11) Não   

nome  varchar(80) Não   

tipo  int(11) Não  0 

ano  int(11) Não  0 

duracao  tinyint(4) Não  0 

produtora  int(11) Não  0 

diretor  int(11) Não  0 

site  varchar(160) Não   

genero  int(11) Não  0 

roteirista  int(11) Não  0 

sinopse  varchar(255) Não   

cartaz  int(11) Não  0 

fotos  int(11) Não  0 

curiosidades  varchar(200) Não   

cenas  int(11) Não  0 

nota  float Não  0 

lancamento  date Não  0000-00-00 

professor_resp  int(11) Não  0 

classificacao  tinyint(4) Não  0 

justificativa  varchar(120) Não   

origem  varchar(40) Não   

Page 63: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

Tabelas“genero”

e

“tipo”

Campo Tipo Nulo Padrão

id  int(11) Não   

nome  varchar(30) Não   

observacoes  varchar(255) Não   

Campo Tipo Nulo Padrão

id  int(11) Não   

nome  varchar(30) Não   

obs  varchar(255) Não   

Page 64: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

tabela

“equipe”Campo Tipo Nulo Padrão

id  int(11) Não   

nome  varchar(60) Não   

nacionalidade  varchar(60) Não   

data_nascim  date Não  0000-00-00 

premios  varchar(120) Não   

naturalidade  varchar(60) Não   

mini_biografia  varchar(255) Não   

home_page  varchar(120) Não   

email  varchar(120) Não   

sexo  char(1) Não   

Page 65: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

tabela

“funcao”

Campo Tipo Nulo Padrão

id  int(11) Não   

nome  varchar(60) Não   

obs  varchar(255) Não   

Page 66: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

Tabelas de ligação

“filme-atores

Equipe-funcaoCampo Tipo Nulo Padrão

id_equipe  int(11) Não  0 

id_funcao  int(11) Não  0 

Campo Tipo Nulo Padrão

id_filme  int(11) Não  0 

id_atores  int(11) Não  0 

Page 67: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

Page 68: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Resumo das propostas

Possibilidades:• consulta de filmes por nome• consulta de filmes por diretor/atores/....• consulta de atores por filme• consulta de filmografia• acesso a cartaz/imagens/cenas• outras...

Page 69: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Exercícios:

-Implementação-Inserção de dados reais-Modelagem de consultas-Modelagem de interface de acesso

Page 70: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Exemplos de implementação

Page 71: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Consulta:

Page 72: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Codificação HTML<b>Sql utilizado:</b> <br> SELECT * FROM filme ORDER BY nome<hr><b>Resultado:</b><br><table><tr bgcolor=#cccccc><td><b>Nome</b></td><td><b>Sinopse</b></td><td><b>Ano</b></td></tr><tr bgcolor=#CCCCCC><td>A estória de José e Maria</td> <td>Primeira linha da sinopse. Segunda linha. Terceira linha.</td> <td>1977</td></tr> <tr bgcolor=#FFFFFF><td>A Paixão de Jacobina</td><td>Texto da sinopse: a

paixão de jacobina</td>...</table><hr><a href="http://maia.unisinos.br/_elti">Home</a><hr>

Page 73: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Codificação PHP (1/2) include("/usr/local/website/configdb_elti.inc.php"); $link = mysql_connect($servidor, $usuario, $senha); if (!$link) { die('Não foi possível conectar: ' . mysql_error()); } $db_selected = mysql_select_db('elti_filme', $link); if (!$db_selected) { die('Não foi possível selecionar base de dados:

' . mysql_error()); } $sql = "SELECT * FROM filme ORDER BY nome"; $result = mysql_query($sql, $link); if (!$result) { die('Query inválida: ' . mysql_error()); }

Page 74: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Codificação PHP (2/2)$lista =""; $pos=1; while($row = mysql_fetch_array($result)){

$nome = $row["nome"]; $sinopse=$row["sinopse"]; $ano =$row["ano"]; if ($pos==1) {$cor="#FFFFFF"; $pos=0;} else{$cor="#CCCCCC"; $pos=1;} $lista .= "<tr bgcolor=".$cor.">”;

$lista .=“<td>$nome</td><td>$sinopse</td><td>$ano</td></tr>"; } mysql_close($link); $conteudo=""; $conteudo .="<b>Sql utilizado:</b> <br>".$sql."<hr><b>Resultado:</b><br>"; $conteudo .="<table><tr bgcolor=#cccccc>”; $conteudo .="<td><b>Nome</b></td><td><b>Sinopse</b></td>”; $conteudo .="<td><b>Ano</b></td><td>"; $conteudo .= $lista."</table>"; echo $conteudo; include_once ("rodape.php");

Page 75: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Inserção de gênero:

Page 76: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Inserção de gênero:Resultado do script de inserção:

servidor script parâmetros

Page 77: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Inserção de gênero:

Trecho da codificação:.....$sql = "INSERT INTO `genero` ( `id` , `nome` , `observacoes` ) VALUES ('', '".$nome."', '".$obs."')";$result = mysql_query($sql, $link);if (!$result) {die('Query inválida: ' . mysql_error()); }mysql_close($link);

echo("<br>Dados recebidos: <hr>Nome: $nome<br>Observações: $obs<br><hr>");

Page 78: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Inserção de filme:

Page 79: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Inserção de filme:

A tabela “equipe” foiconsultada para a montagem da lista de seleção de diretores

Não foi implementada como documento HTML

Page 80: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Consulta por filme/diretor:

Formulário:Opção de indicação de nome de filme ou de nome de diretor

Page 81: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Consulta por filme/diretor:Teste: Opção de nome de filme com a letra “A”

Page 82: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:

Execução sempre atualiza arquivo xml com todos os filmes.

Configuração de leitor de RSS (Feedreader)

Page 83: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:

Exemplo de acesso ao resultado: Visão de todo o canal

Page 84: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:

Exemplo de acesso ao resultado: seleção de uma notícia

Page 85: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:Exemplo de acesso ao resultado: acesso ao link da notícia (gera consulta ao sistema e recupera a informação do filme)

Page 86: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:Exemplo de codificação PHP:$sql = "SELECT f.nome nomefilme, f.sinopse sinopse_filme, f.ano ano_filme, e.nome nome_diretor FROM filme f, equipe e WHERE f.diretor = e.id ORDER BY f.nome"; $result = mysql_query($sql, $link); if (!$result) {die('Query inválida: ' . mysql_error());} $lista ="";while($row = mysql_fetch_array($result)){ $nome = $row["nomefilme"]; $sinopse = $row["sinopse_filme"]; $diretor = $row["nome_diretor"]; $ano = $row["ano_filme"]; $lista_ = explode(".",$sinopse); $lista .= "<item> <title>".$nome." - ".$ano." - ".$diretor."</title> <link>http://maia.unisinos.br/_elti/consultas.php?filme=".$nome."</link> <description>".$lista_[0]."</description> </item>"; }

Page 87: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Geração de RSS:Exemplo de codificação PHP:$cabecalho = '<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss version="0.91"><channel> <title>Elementos de TI - Testes com RSS</title> <link>http://maia.unisinos.br/_elti/</link> <description>Testes com uso de banco de dados para geração de rss</description> <publisher>Sandro Rigo</publisher> <language>pt</language>'; $rodape = '</channel></rss>'; $conteudo = $cabecalho.$lista.$rodape; $arquivo = 'rss/elti_rss.xml'; gravar($arquivo, $conteudo);

Page 88: Comunicação Digital – Elementos de TI Banco de Dados implementação e integração com aplicações Prof.: Sandro Rigo

Exercícios:

1 - Inserção de roteirista na opção de Consulta simples 1 (indicar mudanças no SQL e HTML)

2 – Indicar a consulta de filmes por diretor

3 – Listar o nome do diretor junto ao filme na consulta

4- Geração de feed RSS com escolha de filme

5 – Geração de RSS com comentários/críticas recebidos

6 – Busca de filmografia de ator/diretor