<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ck4CRXg5cSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659</id><updated>2011-11-27T16:42:44.629-08:00</updated><category term="IBM" /><category term="hibernate" /><category term="Struts" /><category term="Desenvolvimento" /><category term="JAVA" /><category term="SQL" /><category term="Shell Script" /><category term="731" /><category term="Open Source e CIA" /><category term="Diversos" /><category term="tomcat" /><category term="Smart Planet" /><category term="certificação" /><category term="HQL" /><category term="WebSphere" /><category term="kde" /><category term="mainframe" /><category term="JDBC" /><category term="DB2 / Banco de dados" /><category term="EJB" /><category term="jse" /><category term="Carreira" /><category term="Games" /><category term="Academic Initiative" /><category term="Boas práticas" /><category term="Linux" /><category term="Criteria" /><category term="Design Patterns" /><category term="Banco de dados" /><title>jmmwrite</title><subtitle type="html">Carreira, TI, Java, Banco de Dados, Hibernate, SQL, Linux, SOA, Agile, TDD, entrevista, currículo e um pouco mais!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://jmmwrite.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>258</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Jmmwrite" /><feedburner:info uri="jmmwrite" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEcERHgyeyp7ImA9WxBUEUU.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-8966504926982930462</id><published>2010-02-26T03:00:00.000-08:00</published><updated>2010-02-26T03:00:05.693-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-26T03:00:05.693-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Parte 5</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_5DFF_wS9zl4/SylllAE1hvI/AAAAAAAAAKs/I_vOvD4I6PE/s1600-h/db2logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SylllAE1hvI/AAAAAAAAAKs/I_vOvD4I6PE/s320/db2logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Dando continuidade ao meu Guia de Estudos para o exame 731 (DBA DB2), falaremos aqui sobre os utilitários do DB2. Esta parte é realmente fácil de se entender, porém, demanda muita experiência diária de um DBA! Desconsidere erros de português, este guia foi escrito conforme eu estudava, então o foco era aprender, e não escrever bem. Vamos lá:&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;5.1 Movimentando dados no DB2&lt;/b&gt;&lt;br /&gt;
Antes de falar sobre qualquer utilitário, é importante ressaltar que a FONTE e o DESTINO dos dados precisam ser compatíveis, embora obvio, muitas pessoas erram nisso. Os utilitários trabalham com tipos de dados definidos, o mais famoso é o do tipo DEL (Delimited ASCII), por exemplo, quando exporto uma tabela, exporto para um arquivo .del, para importar, preciso ler esse .del. &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;b&gt;5.2 Utilitários para movimentação de dados&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;5.2.1 Export&lt;/b&gt;&lt;br /&gt;
O export extrai dados de uma tabela para um arquivo utilizando uma clausula SQL ou XQuery. Você pode logar qualquer problema em um arquivo texto utilizando a clausula MESSAGES. Exemplo:&lt;br /&gt;
&lt;i&gt;EXPORT TO myfile.del OF DEL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGES msg.out&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT * &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM staff;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.2.2 Import&lt;/b&gt;&lt;br /&gt;
Obviamente o import recebe um arquivo que foi exportado pelo export e o importa em uma tabela ou view. O Import não importa os dados em tabelas do sistema ou tabelas temporárias. A sintaxe do import é:&lt;br /&gt;
&lt;i&gt;IMPORT FROM file_name OF file_type&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGES message_file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO target_table_name&lt;/i&gt;&lt;br /&gt;
Como visto, existem 5 formas de se importar:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;INSERT: Destino deve existir, os dados serão inseridos na tabela.&lt;/li&gt;
&lt;li&gt;INSERT_UPDATE: Destino deve existir, os dados serão inseridos na tabela, caso algum já exista (verificando chave primária), ele sofrera um update. Destino precisa ter PK definida.&lt;/li&gt;
&lt;li&gt;REPLACE: Destino deve existir, todos os dados existentes na tabela serão removidos e os novos dados serão inseridos na tabela. Destino precisa ter PK definida.&lt;/li&gt;
&lt;li&gt;REPLACE_CREATE: Tabela destino não precisa existir. Neste caso a mesma será criada e suas chaves tambem. Caso já exista, o dado existente será substituido. só funciona com o tipo de arquivos IXF, pois ele armazena dados da estrutura da tabela.&lt;/li&gt;
&lt;li&gt;CREATE: Tambem só funciona com IXF. Ele cria a tabela com as chaves necessárias e insere os dados.&lt;/li&gt;
&lt;/ul&gt;Exemplo:&lt;br /&gt;
&lt;i&gt;IMPORT FROM emp.ixf OF IXF&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGES msg.out&lt;br /&gt;
CREATE INTO employee IN datatbsp INDEX IN indtbsp&lt;/i&gt;&lt;br /&gt;
Quando um import está sendo efetuado, ele obtem um Lock na tabela. Isso pode ser cancelado atraves da opcao "Allow write access". Tambem pode-se estabelecer uma contagem de linhas para commit ser efetuado, caso contrário, o mesmo será efetuado somente ao final da transação.&lt;br /&gt;
Tambem pode ser utilizado a clausula RESTARTCOUNT, no exemplo abaixo:&lt;br /&gt;
&lt;i&gt;IMPORT FROM myfile.ixf OF IXF&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; COMMITCOUNT 500 RESTARTCOUNT 30000 ROWCOUNT 100000&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGES msg.out&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO newtable&lt;/i&gt;&lt;br /&gt;
vamos supor que algum problema ocorra apos a importação da linha 30000. Se você executar o comando acima, o import será reiniciado a partir da linha 30000 do arquivo myfile.ixf e irá até a linha 100000.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.2.3 Load&lt;/b&gt;&lt;br /&gt;
Faz exatamente o mesmo que o import, porem ele ignora constraints e nem dispara triggers, dessa forma é muito mais rápido, mas pode gerar alguma inconsistência no banco se utilizado sem cuidado. &lt;br /&gt;
Supondo que um DBA deseja deletar todos os dados armazenados em uma tabela employee em um server AIX, para atingir o seu objetivo ele poderia executar o seguinte comando:&lt;br /&gt;
LOAD FROM /dev/null OF DEL REPLACE INTO employee&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.2.4 db2move&lt;/b&gt;&lt;br /&gt;
É utilizado para mover grande numero de tabelas. Por exemplo, todas as tabelas de um banco de dados Sample:&lt;br /&gt;
&lt;i&gt;db2move database_name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; action&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options&lt;/i&gt;&lt;br /&gt;
O db2move basicamente executa IMPORT/EXPORT/LOAD/COPY para várias tabelas ao invés de uma tabela só.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.2.5 db2lock&lt;/b&gt;&lt;br /&gt;
É um utilitário que gera DDL de objetos do banco de dados, além disso,&amp;nbsp; gera updates para atualizar parametros do banco de dados, comandos db2set, gera estatísticas, etc.&lt;br /&gt;
Um bom exemplo de seu uso é grando se quer importar uma tabela em um banco, mas se necessida da estrutura da mesma, então utilizamos o db2lock no banco de origem para gerar o ddl da tabela. No exemplo abaixo, estamos gerando um ddl de todas as tabelas do peter no banco department:&lt;i&gt;&lt;br /&gt;
db2look -d department -u peter -e -o alltables.sql&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.2.6 db2batch&lt;/b&gt;&lt;br /&gt;
Objetivamente, executa uma série de comando que você pode especificar em um arquivo e gera um output com detalhes de benchmarching, tais como tempo que demorou para executar a operação, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.3 Utilitários de manutenção&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;5.3.1 runstats&lt;/b&gt;&lt;br /&gt;
O DB2 mantém tabelas de sistema com dados estatísticos tais como número de linhas em uma tabela, tamanho, etc. Tais dados permitem que o SGBD aloque os recursos necessários para se efetuar alguma operação que manipule algo. Se estes dados estiverem errados, tal alocação de recursos pode ser erronea, o banco pode por exemplo alocar menos memória ou cpu que o necessário, assim, a operação irá demorar muito mais.&lt;br /&gt;
Para atualizar os estas estatísticas que o banco consula, o comando é o runstats. O comando tem varios parametros, é possível fazer isso por tabela, fazer para os indices ou não, colocar a mesma em modo somente leitura para otimizar a operação, etc.&lt;br /&gt;
A utilização do runstats é importante ser executada após um grande número de insert, update, delete, opereção de import, load, etc, para obter informações do status do SGDB e ter um maior controle dos recursos. Por padrão, a atualização das estatísticas é automática no DB2, mas pode ser desabilitada ou forçada a qualquer momento.&lt;br /&gt;
&lt;b&gt;5.3.2 reorg e reorgchk&lt;/b&gt;&lt;br /&gt;
5.3.2 reorg e reorgchk: Assim como acontece com o sistema de arquivos de um sistema operacional, os dados de uma tabela &lt;span class="diffaddedchars"&gt;ou index&lt;/span&gt; podem se fragmentar. O utilitário reorg desfragmenta os dados de uma tabela, deixando-os mais próximos ou em seguencia no disco (quando possível). Tais comandos podem lockar ou não a tabela na qual estiverem rodando. O reorgchk, checa se um reorg é necessário e gera estatisticas/um relatório completo. Exemplos são:&lt;br /&gt;
&lt;i&gt;REORG TABLE db2user.employee INDEX db2user.idxemp INPLACE ALLOW WRITE ACCESS&lt;br /&gt;
REORG TABLE db2user.employee INDEX db2user.idxemp INPLACE PAUSE&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5.3.3 rebind&lt;/b&gt;&lt;br /&gt;
Recompila um pacote. Um pacote é um objeto de banco de dados que contem instruções já compiladas.&lt;br /&gt;
A sintaxe é: &lt;i&gt;REBIND PACKAGE package_name&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
A figura a seguir ilustra o trabalho de um DBA para manter um banco de dados "up and running":&lt;span id="goog_1261003857082"&gt;&lt;/span&gt;&lt;span id="goog_1261003857083"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_5DFF_wS9zl4/SyllQvllmCI/AAAAAAAAAKk/bVfpq0Jch30/s1600-h/fig9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_5DFF_wS9zl4/SyllQvllmCI/AAAAAAAAAKk/bVfpq0Jch30/s320/fig9.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Voltar para o índice do Guia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-8966504926982930462?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YxzKaS9vTqc-OD7aMvbgWG0NxKc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YxzKaS9vTqc-OD7aMvbgWG0NxKc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YxzKaS9vTqc-OD7aMvbgWG0NxKc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YxzKaS9vTqc-OD7aMvbgWG0NxKc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/DGkfSioaU1Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/8966504926982930462/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/02/guia-de-estudos-db2-prova-731-parte-5.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8966504926982930462?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8966504926982930462?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/DGkfSioaU1Q/guia-de-estudos-db2-prova-731-parte-5.html" title="Guia de estudos DB2 - Prova 731 - Parte 5" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_5DFF_wS9zl4/SylllAE1hvI/AAAAAAAAAKs/I_vOvD4I6PE/s72-c/db2logo.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/02/guia-de-estudos-db2-prova-731-parte-5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAEQXo5eCp7ImA9WxBUEEw.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-5468605937317180782</id><published>2010-02-24T04:15:00.000-08:00</published><updated>2010-02-24T04:15:00.420-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-24T04:15:00.420-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Ripando e Gerando DVDs no Linux</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_5DFF_wS9zl4/S4Lm_fSsvZI/AAAAAAAAALk/WME1ZqdQ7oE/s1600-h/images.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_5DFF_wS9zl4/S4Lm_fSsvZI/AAAAAAAAALk/WME1ZqdQ7oE/s320/images.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;Não sou um profissional da área de edição de vídeo, porém, como todo bom pai de família (minha filha nasceu em 30/01/2010), tenho a obrigação de aprender a fazer o mínimo! :-)&lt;br /&gt;
&lt;br /&gt;
No caso, eu tinha uns 10 DVDs com os ultra-sons gravados, cada um com uns 10 a 15 minutos de vídeo, e por questões de espaço/simplicidade no manuseio, quero ripar todos os 10 DVDs e criar só um.&lt;br /&gt;
&lt;br /&gt;
Para o processo de "&lt;b&gt;ripagem&lt;/b&gt;", utilizei um software chamado &lt;a href="http://handbrake.fr/"&gt;Handbrake&lt;/a&gt;, que é simples e vai direto ao ponto: você escolhe o source (DVD) e clica num botão START. Pronto, ele gera um arquivo MP4 com todo o conteúdo do DVD. Você também pode excluir algum capítulo, capturar só o som/vídeo, definir qualidade, formatos e algumas outras opções simples.&lt;br /&gt;
&lt;br /&gt;
Feito isso, tive a necessidade de "cortar" alguns vídeo que ficaram grandes, pois a enfermeira no momento do ultrasom deu o "REC" 5 minutos antes do médico iniciar o procedimento, dessa forma, eu cortei este tempo com um software chamado &lt;a href="http://www.openshotvideo.com/"&gt;OpenShot&lt;/a&gt; , que também é simples e vai direto ao ponto. Para a mesma finalidade o Linux também conta com o Kino.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eu também fiz um slide show com fotos e criei um vídeo com os mesmo, simples e rápido, com o programa &lt;a href="http://imagination.sourceforge.net/"&gt;Imagination&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neste ponto eu tinha 10 vídeos prontos, agora queria gerar um DVD, bonitinho, com menu, musiquinhas e tudo o mais. Encontrei outro software magnífico de tão simples e fácil de usar chamado &lt;a href="http://www.dvdstyler.de/"&gt;DVDStyler&lt;/a&gt; , com simples cliques do mouse, gerei um menu, com vídeo, botões animados e tudo o mais que gostaria de fazer, ai simplesmente cliquei no gravar DVD e voa-lá, minha superprodução estava pronta em menos de 1 hora!&lt;br /&gt;
&lt;br /&gt;
Vale lembrar que eu utilizei o Ubuntu, e exceto o Handbrake (que tem um pacote para Ubuntu), os outros foram instalados com apt-get.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-5468605937317180782?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OWr2idrvttRhX87IC6vxEr1AfPw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OWr2idrvttRhX87IC6vxEr1AfPw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OWr2idrvttRhX87IC6vxEr1AfPw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OWr2idrvttRhX87IC6vxEr1AfPw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/0kw9rMa9r6E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/5468605937317180782/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/02/ripando-e-gerando-dvds-no-linux.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5468605937317180782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5468605937317180782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/0kw9rMa9r6E/ripando-e-gerando-dvds-no-linux.html" title="Ripando e Gerando DVDs no Linux" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_5DFF_wS9zl4/S4Lm_fSsvZI/AAAAAAAAALk/WME1ZqdQ7oE/s72-c/images.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/02/ripando-e-gerando-dvds-no-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IBQHc8eip7ImA9WxBVGEs.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-9131289909842629084</id><published>2010-02-22T12:12:00.000-08:00</published><updated>2010-02-22T12:12:31.972-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-22T12:12:31.972-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="kde" /><title>Show Desktop / Mostrar Desktop no KDE 4</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/S4LlCQXm7TI/AAAAAAAAALc/zbMzCJFnccY/s1600-h/kde4.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/S4LlCQXm7TI/AAAAAAAAALc/zbMzCJFnccY/s320/kde4.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Na ultima versão do meu KDE o botão / widget Show Desktop / Mostrar Desktop simplesmente sumiu. Já tentei algumas coisas para fazer o mesmo "voltar", mas pelo que li, removeram por algum motivo dessa versão do KDE.&lt;/div&gt;&lt;br /&gt;
Então, meu workaround foi criar um botão, vamos aos passos:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Crie um script onde achar conveniente com o seguinte conteúdo:&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;i&gt;#!/bin/sh&lt;br /&gt;
target=on&lt;br /&gt;
if xprop -root&amp;nbsp; _NET_SHOWING_DESKTOP | fgrep '= 1' ; then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; target=off&lt;br /&gt;
fi&lt;br /&gt;
wmctrl -k ${target}&lt;br /&gt;
exit&lt;/i&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Eu dei o nome de showDesktop.sh para o mesmo.&lt;/li&gt;
&lt;li&gt;Instale o &lt;b&gt;wmctrl&lt;/b&gt; (apt-get install wmctrl -&amp;gt; no ubuntu/debian)&lt;/li&gt;
&lt;li&gt;Digite alt + f2 e entre com o comando: kmenuedit , você vai abrir o editor de menus do KDE.&lt;/li&gt;
&lt;li&gt;Vá em utilitários ou onde achar mais conveniente e crie um novo item. Eu dei o nome de Mostrar Desktop e no comando coloquei o caminho para meu script, ex: /home/julianom/showDesktop.sh&lt;/li&gt;
&lt;li&gt;Pronto, este atalho já deve fazer todas suas janelas serem minimizadas. Ai você pode o adicionar na barra "iniciar" do KDE.&lt;/li&gt;
&lt;li&gt;Clicando com o botão direito no atalho, na aba aplicativo, em opções avançadas, desabilite "Habilitar retorno de Lançamento" e "colocar na área de notificação" se aplicável, dessa forma quando executar o comando, ele vai rodar rapidamente e nem aparecerá na barra de tarefas.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-9131289909842629084?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bx8kaWkfZZPnwtoqwqNRbN9sXgg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bx8kaWkfZZPnwtoqwqNRbN9sXgg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bx8kaWkfZZPnwtoqwqNRbN9sXgg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bx8kaWkfZZPnwtoqwqNRbN9sXgg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/lDrU9PyJi6Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/9131289909842629084/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/02/show-desktop-mostrar-desktop-no-kde-4.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/9131289909842629084?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/9131289909842629084?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/lDrU9PyJi6Y/show-desktop-mostrar-desktop-no-kde-4.html" title="Show Desktop / Mostrar Desktop no KDE 4" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/S4LlCQXm7TI/AAAAAAAAALc/zbMzCJFnccY/s72-c/kde4.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/02/show-desktop-mostrar-desktop-no-kde-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYGSXo4fip7ImA9WxBVGEk.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6988378090074875079</id><published>2010-02-18T07:48:00.000-08:00</published><updated>2010-02-22T05:42:08.436-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-22T05:42:08.436-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Instalando o DB2 no Linux</title><content type="html">Ótimo video criado pelo Thiago Rosseto, mostrando como instalar o DB2 Express no Linux:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="250" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9472356&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=9472356&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/9472356"&gt;DB2 on LINUX - instalation&lt;/a&gt; from &lt;a href="http://vimeo.com/user3182021"&gt;thiago rossetto&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6988378090074875079?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cLapqm5_7hviZLIrj4y9W7lgV8A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cLapqm5_7hviZLIrj4y9W7lgV8A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cLapqm5_7hviZLIrj4y9W7lgV8A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cLapqm5_7hviZLIrj4y9W7lgV8A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/yo2EWgSl5YQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6988378090074875079/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/02/instalando-o-db2-no-linux.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6988378090074875079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6988378090074875079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/yo2EWgSl5YQ/instalando-o-db2-no-linux.html" title="Instalando o DB2 no Linux" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/02/instalando-o-db2-no-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UGSHYyeyp7ImA9WxBWEkU.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-7082957314869359806</id><published>2010-02-04T05:13:00.001-08:00</published><updated>2010-02-04T05:13:49.893-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T05:13:49.893-08:00</app:edited><title>Meu projeto de vida mais importante</title><content type="html">Pessoal, o blog ficará paradinho nas próximas semanas pois eu estarei me dedicando full time a meu projeto de vida mais importante!&lt;br /&gt;
É o "projeto Lívia", minha filhinha que chegou ao mundo no último sábado, dia 30 de janeiro!&lt;br /&gt;
Mãe e filha passam muito bem, gracas a Deus. O pai está doido e não de aguenta de felicidade.&lt;br /&gt;
Abração!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-7082957314869359806?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JUizcIojMldavXc1rC4rGmm0cFY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JUizcIojMldavXc1rC4rGmm0cFY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JUizcIojMldavXc1rC4rGmm0cFY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JUizcIojMldavXc1rC4rGmm0cFY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/klEYSv4hOHk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/7082957314869359806/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/02/meu-projeto-de-vida-mais-importante.html#comment-form" title="5 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/7082957314869359806?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/7082957314869359806?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/klEYSv4hOHk/meu-projeto-de-vida-mais-importante.html" title="Meu projeto de vida mais importante" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/02/meu-projeto-de-vida-mais-importante.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYEQnkzeip7ImA9WxBXFkw.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6793174320536381543</id><published>2010-01-27T09:41:00.000-08:00</published><updated>2010-01-27T09:41:43.782-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-27T09:41:43.782-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Parte 4</title><content type="html">Dando continuidade ao meu material de estudos para a prova 731 (DBA) do DB2, nesta parte falaremos de "Monitorando a atividade do DB2", que eu considero ser a parte mais teórica e fácil tratando-se do estudo para a prova, porém é a parte que demanda maior experiência no dia a dia para performar um bom trabalho. Desconsidere erros de português, este guia foi escrito conforme eu estudava, então o foco era aprender, e não escrever bem. Vamos lá:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.1 O DB2 tem dois tipos de monitores&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; Snapshot: Captura o estado do banco em um determinado momento. É configurável, você pode definir o que será capturado no snapshot.&lt;br /&gt;
&amp;nbsp; Event monitors: Pode ser um ou mais, eles ficam logando algum evento específico que acontece ou sobre um estado em específico.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;b&gt;4.2 Os tipos de monitores de eventos podem ser:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Counters: Contam o numero de vezes que determinando evento acontece. É incremental.&lt;/li&gt;
&lt;li&gt;Gaufes: É uma espécie de contador, mas registra o número de vezes por um período, por exemplo: quantas aplicações estão conectadas no meu banco neste momento.&lt;/li&gt;
&lt;li&gt;Watermarks: Indica o maior e o menor número de um evento, exemplo: o maior número de linhas já afetadas por uma instrução.&lt;/li&gt;
&lt;li&gt;Information: Mostra informações sobre diferentes tipos de elementos.&lt;/li&gt;
&lt;li&gt;Timestamps: Mostra a data/hora que determinado evento ocorreu&lt;/li&gt;
&lt;li&gt;Time: Registra o tento de tempo que determinada atividade levou.&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp; Podemos criar monitores de eventos com a seguinte sintaxe:&lt;br /&gt;
&lt;i&gt;CREATE EVENT MONITOR [Name]&lt;br /&gt;
FOR [DATABASE | BUFFERPOOLS | TABLESPACES | TABLES | DEADLOCKS &lt;with detail=""&gt; |&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; CONNECTIONS &lt;where [eventcondition]=""&gt; |&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; STATEMENTS &lt;where [eventcondition]]=""&gt; |&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TRANSACTIONS &lt;where [eventcondition]=""&gt; , ...]&lt;br /&gt;
WRITE TO [TABLE [GroupName] (TABLE [TableName]) | PIPE [PipeName] | FILE&lt;br /&gt;
[DirectoryName]]&lt;br /&gt;
[MANUALSTART | AUTOSTART]&lt;/where&gt;&lt;/where&gt;&lt;/where&gt;&lt;/with&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
A qualquer momento podemos parar ou iniciar um monitor, e ainda forçar que ele gere um output mesmo não sendo o momento "agendado" para isso.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.3 Health Monitor&lt;/b&gt;&lt;br /&gt;
É um serviço do DB2 que fica rodando e monitorando a saúde do banco de dados, enviando mensagens, logando e tomando ações se alguma coisa errada for ocorrer com o banco de dados. Por padrão, o monitor é desativado quando cria-se uma base. Para ativa-lo temos que setar o parâmetro health_mon para ON.&lt;br /&gt;
O Health Center é uma ferramenta do DB2 que manipula especificamente o Health Monitor e os logs gerados pelo mesmo.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4.4 Analisando SQL com Explain&lt;/b&gt;&lt;br /&gt;
Aqui vou passar realmente rápido pois escreverei em um futuro próximo um artigo específico sobre esse tema.&lt;br /&gt;
Basicamente, quando executamos algo (um select, insert, etc), o DB2 faz um plano de execução, estudando os passos por onde vai passar, possíveis locks, etc.&lt;br /&gt;
Você pode capturar informações sobre isso e as estudar para otimizar o desempenho de sua query.&lt;br /&gt;
A sintaxe do comando explain é:&lt;br /&gt;
&lt;i&gt;EXPLAIN [ALL | PLAN | PLAN SELECTION]&lt;br /&gt;
&lt;for snapshot="" with="" |=""&gt;&lt;br /&gt;
FOR [SQLStatement]&lt;/for&gt;&lt;/i&gt;&lt;br /&gt;
Onde será gerado um output para o comando "SQMStatement".&lt;br /&gt;
Feito isso, você pode estudar o output com os utilitários db2expln, db2exfmt ou o Visual Explain.&lt;br /&gt;
O dado mais importante gerado pelo explain é o &lt;b&gt;TIMERONS&lt;/b&gt;, que é a unidade de medida utilizada pelo DB2 para computar o tempo e recursos que uma query vai levar.&lt;br /&gt;
&lt;br /&gt;
Para poder efetuar explain, um conjunto de tabelas devem ser criadas. Tipicamente, tais tabelas &lt;b&gt;NÃO SÃO CRIADAS&lt;/b&gt; em ambientes de produção, mas sim, em ambientes de desenvolvimento.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html"&gt;Voltar para o índice.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6793174320536381543?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mOov9lf6wj3l6N7WiBRJje2chtA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mOov9lf6wj3l6N7WiBRJje2chtA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mOov9lf6wj3l6N7WiBRJje2chtA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mOov9lf6wj3l6N7WiBRJje2chtA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/-RLNuS-vIOY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6793174320536381543/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-4.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6793174320536381543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6793174320536381543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/-RLNuS-vIOY/guia-de-estudos-db2-prova-731-parte-4.html" title="Guia de estudos DB2 - Prova 731 - Parte 4" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QER3k5cCp7ImA9WxBXEkU.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-3982128739645238311</id><published>2010-01-19T09:16:00.000-08:00</published><updated>2010-01-23T13:15:06.728-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-23T13:15:06.728-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Parte 3</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0UjCrjqYWI/AAAAAAAAALM/yyWqQuP9aG0/s1600-h/db2logo.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0UjCrjqYWI/AAAAAAAAALM/yyWqQuP9aG0/s320/db2logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Esta parte de nosso estudo para a certificação DBA DB2 (731) cobre o Centro de Tarefas, gerência de índices, constraints, view e tabelas do catálogo do sistema.&lt;br /&gt;
Por favor, ignore erros de português. Esse guia foi escrito conforme eu ia estudando, portanto, a preocupação era aprender, e não escrever bem. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.1 Centro de tarefas&lt;/b&gt;&lt;br /&gt;
O centro de tarefas do DB2 permite que sejam criadas tarefas agendadas que podem executar comandos do DB2, comandos do SO, comandos JCL ou MVC e ainda uma combinação dos comandos anteriores. Para pode utilizar o centro de tarefas, o banco de dados tools catalog deve ser criado com o comando:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;db2 create tools catalog cc create new database toolsdb&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Para iniciar o centro de tarefas o comando é db2tc. As tarefas podem ser de vários tipo, podem por exemplo executar rotinas de backup, limpeza, cálculos, etc. Elas podem ser agendadas e usuários podem ser notificados via email ao final da execução.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;3.2 Índices&lt;/b&gt;&lt;br /&gt;
Índices são utilizados para garantir valores únicos em tabelas e para melhorar a performance de consultas.&lt;br /&gt;
&lt;br /&gt;
Podemos criar um index com o comando "create index" ou ainda quando criamos um tipo UNIQUE em uma tabela, quando criamos um campo referenciando outro campo em uma outra tabela ou ainda quando criamos uma tabela com mais que uma dimensão, um índice é criado.&lt;br /&gt;
&lt;br /&gt;
Um DBA tem que pesar muito bem o benefício de se criar um índice. Quando qualquer dado de uma tabela á alterado, o índice tem que ser alterado também, e isso toma tempo de processador além de espaço em disco.&lt;br /&gt;
&lt;br /&gt;
Um índice pode ser criado no momento da criação da tabela ou ainda criado a qualquer outro momento. As sintaxes são:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;CREATE TABLE TEST (&lt;br /&gt;
&amp;nbsp;column 1 definition, column 2 definition, ...&lt;br /&gt;
) IN &lt;tablespace name=""&gt; INDEX IN &lt;index name="" space=""&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;
CREATE &lt;unique&gt; INDEX &lt;index name=""&gt; ON &lt;/index&gt;&lt;/unique&gt;&lt;/index&gt;&lt;/tablespace&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt; ( column 1 &lt;asc desc="" |=""&gt; , column 2 &lt;asc desc="" |=""&gt; ... )&lt;/asc&gt;&lt;/asc&gt;&lt;/i&gt;&lt;br /&gt;
É possível adicionar colunas em um índice:&lt;br /&gt;
&lt;i&gt;CREATE UNIQUE INDEX IX ON EMPLOYEE (EMPNO) INCLUDE(LASTNAME,FIRSTNME)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Normalmente cria-se 1 ou 2 índices por tabela em um banco OLTP, para um banco misto são 2 a 4, e finalmente para um DW são 5 ou mais.   As tabelas de índices são residentes no mesmo table space que a tabela reside por padrão, mas você pode especificar um outro table space, o que é até uma boa prática.  No momento de criar um indice UNIQUE em uma tabela existente o banco verifica se o mesmo pode ser criado, ou seja, verifica se não existe algum dado que quebre, caso exista uma quebra o indice não é criado.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.3 Constraints&lt;/b&gt;&lt;br /&gt;
São restrições definidas pelo DBA para garantir integridade ao banco, por exemplo: validar se um campo chave não se repita, validar se um campo filho tem seu correspondente, validar o conteúdo a ser inserido, etc.  Podem ser definidos na criação da tabela ou na alteração da mesma:&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;ALTER TABLE EMPLOYEE&amp;nbsp;&amp;nbsp;&lt;/i&gt; &lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD CONSTRAINT check_job&amp;nbsp; CHECK (&lt;/i&gt; &lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JOB IN ('Engineer','Sales','Manager'))&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;  &lt;i&gt;CREATE TABLE EMPLOYEE&amp;nbsp; (&amp;nbsp;&amp;nbsp;&lt;/i&gt; &lt;i&gt;&amp;nbsp; EMPNO INT NOT NULL PRIMARY KEY,&amp;nbsp;&amp;nbsp;&lt;/i&gt; &lt;i&gt;&amp;nbsp; JOB VARCHAR(10) CONSTRAINT CHECK_JOB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt; &lt;i&gt;&amp;nbsp; CHECK (JOB IN ('Engineer','Sales','Manager')),&amp;nbsp;&amp;nbsp;&lt;/i&gt; &lt;i&gt;...&amp;nbsp; )&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
No momento de criar uma constraint o banco verifica se a mesma pode ser criada, vendo se não existe algum dado que a quebre. É possível criar uma constraint "not forced", o que quer dizer, que o valor não tem que ser obrigatoriamente o que está sendo inserido, alterado: &lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;SEX CHAR(1) NOT NULL&amp;nbsp;&amp;nbsp;&amp;nbsp; CONSTRAINT&amp;nbsp; SEXOK&amp;nbsp;&amp;nbsp;&amp;nbsp; CHECK (SEX IN ('M','F'))&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT ENFORCED&amp;nbsp;&amp;nbsp;&amp;nbsp; ENABLE QUERY OPTIMIZATION,&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
O ENABLE QUERY OPTIMIZATION vai otimizar a query para os valores que estão no check, então, quando se efetuar um select filtrando por um valor diferente de M ou F, o resultado não será trazido, pois a query estará otimizada para os valores M e F. (Essa é fatal &lt;b&gt;cair na prova de certificação&lt;/b&gt;)  É possível desabilitar a otimização:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;ALTER TABLE EMPDATA&amp;nbsp; &lt;/i&gt; &lt;i&gt;ALTER CHECK SEXOK DISABLE QUERY OPTIMIZATION&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;3.4 Views&lt;/b&gt;&lt;br /&gt;
Uma view é uma "tabela virtual" derivada de uma ou mais tabelas. Quando você altera os dados em uma view, o campo da tabela original, também é alterado, desde que o DB2 possa determinar a origem do dado, porém, você pode definir se a view poderá sofrer operações tais como update, delete, etc.  Sintaxe do comando:&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;CREATE VIEW view-name (column list) AS (fullselect)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Exemplo de comando de criação:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;CREATE VIEW TELEPHONE_BOOK AS&amp;nbsp; (&amp;nbsp; SELECT FIRST_NAME, LAST_NAME, EXTENSION FROM PERSONNEL&amp;nbsp; )&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Podemos criar views a partir da união de duas ou mais tabelas. É possível alterar dados de uma view, porém tenha em mente que ao fazer isso, você estará automaticamente alterando a tabela da qual a view é originada.Quando criamos uma view utilizando o parâmetro "WITH CHECK OPTION", garantimos que só será feito um update na mesma se for utilizado a cláusula where.  Uma View inoperante é uma view que não tem mais função, por exemplo, a tabela a qual a mesma se referencia foi deletada ou não se tem privilégios sobre a mesma.&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;3.5 Tabelas do catálogo so sistema&lt;/b&gt;&lt;br /&gt;
Estas tabelas são utilizadas para manter nosso banco de dados e contem informações tais como definição das tabelas, permissões, etc. Elas ficam no esquema SYSCATSPACE. Quando um banco é criado, é dado permissão de select para todo mundo (public) nestas tabelas.Para remover o privilégio de select em uma tabela o comando é:  &lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;REVOKE SELECT ON SYSCAT.DBAUTH FROM PUBLIC&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Para dar permissão, trocamos o Revoke por Grant.  As tabelas do catálogo mais úteis são: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;SYSCAT.COLUMNS: Onde estão as colunas de TODAS as tabelas do banco.&lt;/li&gt;
&lt;li&gt;SYSCAT.INDEXCOLUSE: Mostra as colunas que são índice.&lt;/li&gt;
&lt;li&gt;SYSCAT.INDEXES: Mostra os índices de cada tabela.&lt;/li&gt;
&lt;li&gt;SYSCAT.TABLES: Mostra todas as tabelas do sistema.&lt;/li&gt;
&lt;li&gt;SYSCAT.VIEWS: Mostra todas as tabelas do sistema.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;3.6 Forçando dados únicos&lt;/b&gt;&lt;br /&gt;
A clausula UNIQUE força que determinado campo em uma tabela tenha um valor único, por exemplo, o CPF, não será repetido nas outras linhas da tabela. Quando uma primary key é criada, o campo automaticamente será do tipo UNIQUE. Também pode-se criar um campo que não seja PK mas seja do tipo Unique, por exemplo:&lt;br /&gt;
&lt;i&gt;CREATE TABLE EMPLOYEE&amp;nbsp; (&amp;nbsp; ....,&amp;nbsp; &lt;/i&gt; &lt;i&gt;SOCINS CHAR(11) NOT NULL UNIQUE,&amp;nbsp; &lt;/i&gt; &lt;i&gt;...,&amp;nbsp; )&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente pode ser criado um índice único, como em:&lt;br /&gt;
&lt;i&gt;CREATE UNIQUE INDEX UNIQUE_EMPLOYEE ON EMPLOYEE(EMPNO)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html"&gt;Voltar para o índice do guia.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-3982128739645238311?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qClO6NImU7AdDoRVK2-sY4lW0RU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qClO6NImU7AdDoRVK2-sY4lW0RU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qClO6NImU7AdDoRVK2-sY4lW0RU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qClO6NImU7AdDoRVK2-sY4lW0RU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/BvD4JJ7oiyc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/3982128739645238311/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-3.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3982128739645238311?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3982128739645238311?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/BvD4JJ7oiyc/guia-de-estudos-db2-prova-731-parte-3.html" title="Guia de estudos DB2 - Prova 731 - Parte 3" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0UjCrjqYWI/AAAAAAAAALM/yyWqQuP9aG0/s72-c/db2logo.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcEQ384fCp7ImA9WxBQE08.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6626207396410474859</id><published>2010-01-12T12:00:00.001-08:00</published><updated>2010-01-12T12:26:42.134-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-12T12:26:42.134-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jse" /><category scheme="http://www.blogger.com/atom/ns#" term="Desenvolvimento" /><category scheme="http://www.blogger.com/atom/ns#" term="tomcat" /><category scheme="http://www.blogger.com/atom/ns#" term="JAVA" /><title>Executando comandos do Sistema Operacional em uma aplicação WEB Java</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0zVRQo854I/AAAAAAAAALU/vX-ozJoKUKk/s1600-h/screenshot_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Criei uma aplicação muito simples que demonstra como um Servlet pode invocar uma classe que efetua um comando qualquer no sistema operacional.&lt;br /&gt;
&lt;br /&gt;
O projeto foi testado em Linux, Unix e Solaris. Caso testem em Windows e puderem me dar um feedback, fico grato.&lt;br /&gt;
&lt;br /&gt;
O mesmo foi criado no Eclipse e utiliza o Tomcat 6 como servidor de aplicação, foi utilizado o Java 6. Deve funcionar com outras versões.&lt;br /&gt;
&lt;br /&gt;
A estrutura do projeto é:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0zVRQo854I/AAAAAAAAALU/vX-ozJoKUKk/s1600-h/screenshot_001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0zVRQo854I/AAAAAAAAALU/vX-ozJoKUKk/s320/screenshot_001.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;onde:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;DiskFree: classe java que executa o comando df no sistema operacional que está rodando o tomcat e retorna um BufferedReader.&lt;/li&gt;
&lt;li&gt;ExecuteCommand: classe java que executa qualquer comando que for enviada para ela no host do tomcat.&lt;/li&gt;
&lt;li&gt;ServletDF: É o servlet que invoca a classe DiskFree.&lt;/li&gt;
&lt;li&gt;ServletExecuteCommand: É o servlet que invoca a classe Executar comando.&lt;/li&gt;
&lt;li&gt;index.html: Página principal da aplicação que invoca os servlets e permite que o usuário entre com um comando a ser executado.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Vale lembrar que a aplicação tem finalidade didática, portanto, não foram observados padrões de projeto, boas práticas, etc.&lt;br /&gt;
&lt;a href="http://www.blogger.com/goog_1263326877688"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://jmmwrite.files.wordpress.com/2010/01/executando-comandos-do-sistema-operacional-em-uma-aplicacao-web-java.pdf"&gt;Para baixar o projeto, clique aqui.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6626207396410474859?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mbwKgpjUVuX299JE7pw2TIDtxvM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mbwKgpjUVuX299JE7pw2TIDtxvM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mbwKgpjUVuX299JE7pw2TIDtxvM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mbwKgpjUVuX299JE7pw2TIDtxvM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/HVv30mQ5Lnc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6626207396410474859/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/executando-comandos-do-sistema.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6626207396410474859?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6626207396410474859?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/HVv30mQ5Lnc/executando-comandos-do-sistema.html" title="Executando comandos do Sistema Operacional em uma aplicação WEB Java" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/S0zVRQo854I/AAAAAAAAALU/vX-ozJoKUKk/s72-c/screenshot_001.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/executando-comandos-do-sistema.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIBQX47fip7ImA9WxBQEkw.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6969118612491296090</id><published>2010-01-11T04:22:00.000-08:00</published><updated>2010-01-11T04:22:30.006-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-11T04:22:30.006-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Parte 2</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/Syap2jwxheI/AAAAAAAAAKc/tvtYZ7Enmcw/s1600-h/db2logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/Syap2jwxheI/AAAAAAAAAKc/tvtYZ7Enmcw/s200/db2logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Esta é a continuação do guia de estudos para o exame 731 (DBA DB2). Deve ser utilizado como um complemento para os estudos, e não como a fonte principal. Nesta parte focaremos na criação e gerenciamento de objetos do bancos de dados.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.1 - Criação de banco de dados e table spaces&lt;/b&gt;&lt;br /&gt;
Comando "&lt;i&gt;db2 create database&lt;/i&gt;"&lt;br /&gt;
Este comando tem N parametros, dentre eles, o Codeset (linguagem do banco), as tablespaces, o diretório onde o banco vai ficar, etc.&lt;br /&gt;
Por padrão, este comando cria 3 table spaces:&lt;br /&gt;
SYSCATSPACE: é onde se armazena o catálogo do sistema (system catalog), ou seja, onde as informações sobre o banco serão armazenadas. Não pode ser apagada.&lt;br /&gt;
TEMPSPACE1: Tabela temporária. Pode ser dropada desde que outra seja criada.&lt;br /&gt;
USERSPACE1: O padrão onde os objetos do usuário serão criados. Pode ser deletada se existir outro table space com a mesma finalidade.&lt;br /&gt;
&lt;br /&gt;
Ao efetuar o comando create table, o banco de dados é criado no diretório apontado pela variável &lt;b&gt;DFTDBPATH&lt;/b&gt; por padrão. Se esta variável for vazia e se o usuário não especificar manualmente a localização da base de dados, a mesma será criada exatamente onde o comando foi executado.&lt;br /&gt;
&lt;br /&gt;
Para especificar o local de criação de uma base, a sintaxe é:&lt;br /&gt;
"&lt;i&gt;db2 create database test on /home/julianom/base1&lt;/i&gt;"&lt;br /&gt;
no caso, /database é onde a mesma será criada.&lt;br /&gt;
&lt;br /&gt;
Explorando os arquivos criados, vemos que o comando criou um diretório db2inst1 e dentro dele um chamado NODE0000 DENTRO do base1:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;base1/db2inst1/NODE0000/&lt;br /&gt;
&lt;br /&gt;
NODE0000 representa um diretório de uma base não particionada, se fosse algo particionado, seria um número correspondente a partição.&lt;br /&gt;
db2inst1 representa a instância na qual a base foi criada.&lt;br /&gt;
&lt;br /&gt;
Dentro do diretório NODE0000 podemos observar outros 3 diretórios:&lt;br /&gt;
&lt;br /&gt;
SQL00001&amp;nbsp; sqldbdir&amp;nbsp; TEST&lt;br /&gt;
&lt;br /&gt;
Nossa base está dentro de SQL00001. Podemos ter inúmeras bases no mesmo diretório, então, este número corresponde a uma base, para ter certeza qual a sua base, efetuamos o comando "&lt;i&gt;db2 list database directory on /home/julianom&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
Uma table space pode ser do tipo &lt;b&gt;DMS - Database Managed Space&lt;/b&gt;, onde, a mesma vai crescendo sob demanda e não tem interação do usuário neste crescimento, para se criar uma dessa forma sendo armazenada em dois arquivos diferentes (e até em diretórios diferentes):&lt;br /&gt;
&lt;i&gt;create database sample2 user table space managed by database&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using(file '/dbfiles/cont0' 5000, file '/dbfiles/cont1' 5000)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Outro tipo de gerenciamento de Table Spaces é o &lt;b&gt;SMS: System Managed Space&lt;/b&gt;, onde a adição de mais espaço deve ser feita manualmente, comando:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;create database sample3 temporary tablespace managed by system&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using('/dbfiles/cont0', '/dbfiles/cont1')&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.2 Automatic Storage&lt;/b&gt;&lt;br /&gt;
Basicamente é a gerência de espaço em disco automaticamente pelo DB2. Você seta como automático, e quando vai criar uma table space, não precisa especificar localização, o DB2 cria automaticamente nos caminhos setados pelo usuário:&lt;br /&gt;
&lt;i&gt;db2 create database db_name automatic storage yes&lt;br /&gt;
db2 create database db_name on db_path1, db_path2&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Mesmo se um DB não está setado para Automatic Storage, podemos setar uma Table Space para ser gerenciada dessa forma:&lt;br /&gt;
&lt;i&gt;db2 create tablespace ts_name managed by automatic storage&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.3 Schemas&lt;/b&gt;&lt;br /&gt;
É um meio lógico de gerenciar objetos do seu banco de dados. Por exemplo, podemos ter tabelas no esquema FINANCEIRO, onde somente determinados usuários poderão fazer insert, updates, etc. Nos referimos a um objeto do esquema da seguinte forma: esquema.objeto.&lt;br /&gt;
Alguns esquemas são criados por padrão quando se cria um DB:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;SYSIBM: O esquema com os objetos básicos do BD.&lt;/li&gt;
&lt;li&gt;SYSCAT: Views do catálogo públicas.&lt;/li&gt;
&lt;li&gt;SYSSTAT: Views do catalogo que influenciam o otimizador.&lt;/li&gt;
&lt;li&gt;SYSFUN: Funções definidas pelo usuário.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Normalmente temos um esquema com o nome do usuário no BD.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.4 Tablespaces&lt;/b&gt;&lt;br /&gt;
Espaço em disco onde os dados são armazenados, o disco físico é também conhecido como container.&lt;br /&gt;
Para ver o estado das tablespaces, o comando é:&lt;br /&gt;
&lt;i&gt;db2 list tablespaces show detail&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5 Objetos do banco de dados&lt;/b&gt;&lt;br /&gt;
O DB2 tem alguns objetos muito importantes para seu funcionamento, e um DBA precisa conhecer muito bem estes objetos, seguem os principais:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5.1 Buffer pools&lt;/b&gt;: Área em memória onde ficam os dados em &lt;i&gt;cache&lt;/i&gt;, ou seja, que estão sendo lidos do disco. O disco é lento, já a memória é rápida, então o BD tenta manter o máximo de dados possível em memória.&lt;br /&gt;
&lt;br /&gt;
Para criar um buffer pool: &lt;i&gt;db2 create bufferpool&lt;/i&gt; , onde você estabelece nome, tamanho, entre outros, exemplo:&lt;br /&gt;
&lt;i&gt;create bufferpool BP1 size 25000&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5.2 Tabelas&lt;/b&gt;: São onde as informações residem. Você pode especificar manualmente em qual tablespace sua tabela vai ser alocada, além disso você pode colocar os índices e certos tipos de dados como long, em outras table spaces.&lt;br /&gt;
O comando para se criar uma tabela é "&lt;i&gt;create table&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
Mais comandos úteis:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;list tables - Lista as tabelas do usuário&lt;/li&gt;
&lt;li&gt;list tables for all - Listar todas as tabelas de uma base&lt;/li&gt;
&lt;li&gt;list tables for schema x - Listar todas as tabelas do esquema X&lt;/li&gt;
&lt;li&gt;describe table tablename - Mostra a estrutura de uma determinada tabela&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;2.5.3 Índices&lt;/b&gt;&lt;br /&gt;
São a chave de busca/acesso aos dados em uma tabela. Alguns exemplos:&lt;br /&gt;
&lt;i&gt;create unique index itemno on albums (itemno) desc&lt;br /&gt;
create index clx1 on stock (shipdate) cluster allow reverse scans&lt;br /&gt;
create unique index incidx on stock (itemno) include (itemname)&lt;br /&gt;
create index item on stock (itemno) disallow reverse scans collect detailed statistics&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5.4 Colunas identidade (identity)&lt;/b&gt;&lt;br /&gt;
São as conhecidas chaves sequenciais. Podem ser gerados pelo DB2 ou passados pelo usuário (caso não seja passado, o DB2 irá gerar automaticamente). Não pode ser repetido em uma tabela. Comando de criação:&lt;br /&gt;
&lt;i&gt;create table inventory (partno INTEGER GENERATED ALWAYS AS IDENTITY&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (START WITH 100 INCREMENT BY 1), description CHAR(20) )&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;b&gt;2.5.5 Views&lt;/b&gt;&lt;br /&gt;
Uma view é uma espécie de tabela derivada de uma consulta em uma ou mais tabelas/views. &lt;br /&gt;
&lt;br /&gt;
Quando uma alteração é feita em uma view, a alteração é feita na tabela correspondente a ela também.&lt;br /&gt;
&lt;br /&gt;
Os dados de uma view não são armazenados separadamente dos dados de uma tabela. As definições de uma view ficam no catálogo do sistema.&lt;br /&gt;
&lt;br /&gt;
Exemplo de criação de uma view:&lt;br /&gt;
&lt;i&gt;create view DEPTSALARY AS SELECT DEPTNO, DEPTNAME, SUM(SALARY)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AS TOTALS FROM PAYROLL GROUP BY DEPTNO,DEPTNAME&lt;br /&gt;
create view EMPSALARY AS SELECT EMPNO, EMPNAME, SALARY FROM PAYROLL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PERSONNEL WHERE EMPNO=EMPNUMB&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;b&gt;2.5.6 Constraints&lt;/b&gt;&lt;br /&gt;
Como o nome diz, RESTRINGE algo. Uma &lt;i&gt;constraint&lt;/i&gt; não pode ser alterada. Ela deve ser removida e criada em caso de necessidade de alteração. Existem diferentes tipos de &lt;i&gt;constraints&lt;/i&gt;:&lt;br /&gt;
&lt;br /&gt;
a) Integridade referencial: Pode ser primary key, unique, foreign e references. &lt;br /&gt;
b) Unique: não permite repetir um valor para uma coluna.&lt;br /&gt;
c) Check: Força que um valor de um campo obedeça a um padrão.&lt;br /&gt;
d) Informational: São regras utilizadas pelo otimizador para definir comportamento, por exemplo, se uma chave será verificada num load de dados.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.5.7 Triggers&lt;/b&gt;&lt;br /&gt;
Define-se como uma série de ações que serão disparadas por uma ação. Pode ser disparada antes ou depois de inserts, updates ou deletes. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.6 Multi-dimensional clustering&lt;/b&gt;&lt;br /&gt;
Fazendo uma analogia é como se armazenar dados, ao invés de em estruturas como uma planilha (tabela), numa matriz multidimensional. Para se criar uma tabela MDC, utilizamos o organize by:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;CREATE TABLE MDCTABLE(&lt;br /&gt;
Year INT,&lt;br /&gt;
Nation CHAR(25),&lt;br /&gt;
Colour VARCHAR(10),&lt;br /&gt;
... )&lt;br /&gt;
ORGANIZE BY(Year, Nation, Color)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.7 Particionamento de tabelas&lt;/b&gt;&lt;br /&gt;
Basicamente consiste em dividir tabelas para obter maior desempenho. Por exemplo, podemos ter uma tabela de vendas dividida por data, no caso abaixo, estamos dividindo de dois em dois anos:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;CREATE TABLE fact&lt;br /&gt;
(txn_id char(7), purchase_date date, ...)&lt;br /&gt;
IN tbsp1, tbsp2, tbsp3, tbsp4&lt;br /&gt;
PARTITION BY RANGE (purchase_date)&lt;br /&gt;
(&lt;br /&gt;
STARTING FROM ('2005-01-01')&lt;br /&gt;
ENDING ('2006-12-31')&lt;br /&gt;
EVERY 1 MONTH&lt;br /&gt;
)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Não podemos particionar uma tabela utilizando campos Logs ou Long Varchar. Podemos utilizar múltiplos campos na partição.&lt;br /&gt;
&lt;br /&gt;
É possível atachar uma partição a uma tabela com o comando ATTACH:&lt;br /&gt;
&lt;i&gt;ALTER TABLE FACT_TABLE ATTACH PARTITION&lt;br /&gt;
STARTING '06-01-2006'&lt;br /&gt;
ENDING '06-30-2006'&lt;br /&gt;
FROM TABLE FACT_NEW_MONTH&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.8 Compactação de tabelas (compression)&lt;/b&gt;&lt;br /&gt;
Basicamente Strings repetidas são substituídas e colocadas num dicionário. Sintaxe:&lt;br /&gt;
&lt;i&gt;create table table_name ... compress yes&lt;br /&gt;
&lt;/i&gt;Ou&lt;br /&gt;
&lt;i&gt;alter table tablename compress yes&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Na primeira vez que for compactar uma tabela, utilizamos a sintaxe para criar o dicionário:&lt;br /&gt;
&lt;i&gt;reorg table table_name resetdictionary&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Nas próximas vezes, não precisamos criar o mesmo:&lt;br /&gt;
&lt;i&gt;reorg table table_name keepdictionary&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
É possível estimar o quanto de espaço liberaremos com a compactação com o comando:&lt;br /&gt;
&lt;i&gt;db2 inspect rowcompestimate table name table_name results keep file_name&lt;/i&gt;&lt;br /&gt;
E então (para converter o arquivo de binário para texto):&lt;br /&gt;
&lt;i&gt;db2inspf file_name output_file_name&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.9 XML&lt;/b&gt;&lt;br /&gt;
DB2 trabalha com XML como um tipo de dados NATIVO. Para se criar uma tabela com um tipo XML:&lt;br /&gt;
&lt;i&gt;create table table_name (col1 data_type, ..., xml_col_name XML)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
É possível que um campo XML seja um index.&lt;br /&gt;
&lt;br /&gt;
Para ver o índice do guia de estudos, &lt;a href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html"&gt;clique aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6969118612491296090?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Lm_lCG7EvgFUeGzx-_seglePgH4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lm_lCG7EvgFUeGzx-_seglePgH4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Lm_lCG7EvgFUeGzx-_seglePgH4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lm_lCG7EvgFUeGzx-_seglePgH4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/oVVJLI2KH1s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6969118612491296090/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-2.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6969118612491296090?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6969118612491296090?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/oVVJLI2KH1s/guia-de-estudos-db2-prova-731-parte-2.html" title="Guia de estudos DB2 - Prova 731 - Parte 2" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/Syap2jwxheI/AAAAAAAAAKc/tvtYZ7Enmcw/s72-c/db2logo.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8EQX89eyp7ImA9WxBRGUg.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-4189980822740061036</id><published>2010-01-08T04:30:00.000-08:00</published><updated>2010-01-08T04:30:00.163-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-08T04:30:00.163-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebSphere" /><title>IBM vai encerrar o suporte ao Websphere 6.0(WAS)</title><content type="html">A IBM vai encerrar o suporte ao WebSphere Application Server versão 6.0 em 30 de setembro de 2010.&lt;br /&gt;
&lt;br /&gt;
Fonte: &lt;a href="http://www-01.ibm.com/software/support/lifecycle/index_w.html"&gt;http://www-01.ibm.com/software/support/lifecycle/index_w.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Para os usuário insteressados em migração, pode-se escolher o WAS 7.0 ou o 6.1. Eu particularmente sugiro o 7 pois o mesmo já suporta Java 6. &lt;br /&gt;
&lt;br /&gt;
Os sites para informações sobre requisitos de sistema são:&lt;br /&gt;
&lt;br /&gt;
WebSphere Application Server Deployment Manager V7.0&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012453"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012453&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012474"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012474&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012473"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27012473&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
WebSphere Application Server Deployment Manager V6.1:&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007686"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007686&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007689"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007689&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007688"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27007688&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-4189980822740061036?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0E1oapOIN2l6USan_SXgZwv6hXA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0E1oapOIN2l6USan_SXgZwv6hXA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0E1oapOIN2l6USan_SXgZwv6hXA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0E1oapOIN2l6USan_SXgZwv6hXA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/nLDdzm5ewOw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/4189980822740061036/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/ibm-vai-encerrar-o-suporte-ao-websphere.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/4189980822740061036?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/4189980822740061036?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/nLDdzm5ewOw/ibm-vai-encerrar-o-suporte-ao-websphere.html" title="IBM vai encerrar o suporte ao Websphere 6.0(WAS)" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/ibm-vai-encerrar-o-suporte-ao-websphere.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04GQXY5eCp7ImA9WxBRGEs.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-8569839378693988256</id><published>2010-01-07T05:12:00.000-08:00</published><updated>2010-01-07T05:12:00.820-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-07T05:12:00.820-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Carreira" /><title>Livro grátis: HPC for dummies</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0UZaL2VksI/AAAAAAAAALE/mCu6JOlGe5A/s1600-h/screenshot_001.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0UZaL2VksI/AAAAAAAAALE/mCu6JOlGe5A/s320/screenshot_001.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;A Sun Microsystems e AMD, junto com a famosa editora “For Dummies”, estão oferecendo de forma gratuita, o e-book "High Performance Computing for Dummies", com o qual você poderá aprender o ABC do HPC, conhecimento que lhe proporcionará uma ferramenta a mais para alcançar a vantagem profissional.&lt;br /&gt;
&lt;br /&gt;
Eu baixei e li e apesar de notar certa tendência em alguns pontos, o livro é muito bom! Vale a pena para se iniciar no tema!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://dct.sun.com/dct/forms/reg_br_2411_889_0.jsp"&gt;Para baixar, clique aqui.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-8569839378693988256?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8M2WetONviLlSJCZOWOwU-jsEZQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8M2WetONviLlSJCZOWOwU-jsEZQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8M2WetONviLlSJCZOWOwU-jsEZQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8M2WetONviLlSJCZOWOwU-jsEZQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/2ripvlsmSHg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/8569839378693988256/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/livro-gratis-hpc-for-dummies.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8569839378693988256?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8569839378693988256?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/2ripvlsmSHg/livro-gratis-hpc-for-dummies.html" title="Livro grátis: HPC for dummies" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0UZaL2VksI/AAAAAAAAALE/mCu6JOlGe5A/s72-c/screenshot_001.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/livro-gratis-hpc-for-dummies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EAQHw9eyp7ImA9WxBRF0Q.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-5010582842918370855</id><published>2010-01-06T05:50:00.000-08:00</published><updated>2010-01-06T07:27:21.263-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-06T07:27:21.263-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Parte 1</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_5DFF_wS9zl4/S0SrtHckeqI/AAAAAAAAAK8/rjyTVCkuQeU/s1600-h/im-certified-mark-168x64.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_5DFF_wS9zl4/S0SrtHckeqI/AAAAAAAAAK8/rjyTVCkuQeU/s320/im-certified-mark-168x64.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Esta á a primeira parte do Guia de Estudos para a prova de certificação para DBA DB2 (731).&lt;b&gt; &lt;/b&gt;Utilize-o como um complemento para seus estudos. Na introdução recomendo o livro oficial e uma página mais detalhada na Internet (em inglês). Desconsidere erros de gramática.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.1. Trabalhando com instâncias&lt;/b&gt;&lt;br /&gt;
Instância é um contexto lógico onde os comandos e funções são executados no DB2. Podemos tem N instâncias em um mesmo servidor e N bancos de dados em cada instância. As instâncias são independentes, dessa forma, podem ser administradas isoladamente. Uma instância é uma espécie de serviço que fica rodando no servidor.&lt;br /&gt;
&lt;br /&gt;
Criando uma instância: db2icrt nome_da_instancia&lt;br /&gt;
&lt;br /&gt;
Criando atribuindo o usuário fenced: db2icrt -u fenced_usuaer nome_da_instancia&lt;br /&gt;
&lt;br /&gt;
Dropando uma instância: db2idrop -f nome_da_instancia&lt;br /&gt;
&lt;br /&gt;
Listando as instâncias em um servidor: db2ilist&lt;br /&gt;
&lt;br /&gt;
Migrando uma instância (fez alguma alteração de proc. de 32 para 64 bits por exemplo): db2imgr nome_da_instância&lt;br /&gt;
&lt;br /&gt;
Upgrade (quando instalou algum fixpack): db2iupdt nome_da_instância&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.2. Configurando o ambiente do DB2&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Basicamente podemos configurar:&lt;br /&gt;
&amp;nbsp; - Variáveis de ambiente do SO&lt;br /&gt;
&amp;nbsp; - O profile do DB2&lt;br /&gt;
&amp;nbsp; - Parâmetros da instância&lt;br /&gt;
&amp;nbsp; - Parâmetros do banco de dados em si&lt;br /&gt;
Uma figura que ilustra esses parâmetros é:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyahrDOHsiI/AAAAAAAAAKE/F45AxINc9U0/s1600-h/figura1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyahrDOHsiI/AAAAAAAAAKE/F45AxINc9U0/s320/figura1.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Variáveis do profile afetam todas as instâncias do DB2. Normalmente você precisa reiniciar sua instância pra que as alterações tenham efeito.&lt;br /&gt;
Um parâmetro de instância afeta todos os bancos que fazem parte desta instância, e finalmente um parâmetro do BD vai afetar somente ele mesmo.&lt;br /&gt;
&lt;br /&gt;
Comandos:&lt;br /&gt;
&lt;br /&gt;
Ver todas as variáveis possíveis do profile: db2set -lr&lt;br /&gt;
Ver todas as variáveis que estão setadas no server: db2set -all&lt;br /&gt;
&amp;nbsp; onde&lt;br /&gt;
• [e] represents a registry setting for the current session or environment&lt;br /&gt;
• [u] represents a user-level registry&lt;br /&gt;
• [n] represents a node-level registry&lt;br /&gt;
• [i] represents an instance-level registry&lt;br /&gt;
• [g] represents a global-level registry&lt;br /&gt;
&lt;br /&gt;
Setar uma variável: db2set variavel=valor&lt;br /&gt;
Resetar uma variavel: db2set variavel=&lt;br /&gt;
&lt;br /&gt;
A principal variável de ambiente é a instance, ela define qual instância estamos manipulando. Para ver ela podemos utilizar o comando "db2 get instance"&lt;br /&gt;
&lt;br /&gt;
Para ver os parâmetros da instância e do banco de dados, respectivamente, utilizamos os comandos:&lt;br /&gt;
db2 get database manager configuration&lt;br /&gt;
db2 get database configuration for database_name&lt;br /&gt;
&lt;br /&gt;
Para alterar os valores de algum parâmetro de instância ou do banco de dados, utilizamos os respectivos comandos:&lt;br /&gt;
db2 update database manager configuration using parameter new_value&lt;br /&gt;
db2 update database configuration for database_name using parameter new_value&lt;br /&gt;
&lt;br /&gt;
Alguns parâmetros alterados só passam a fazer efeito quando o banco/instância é reiniciado, porém, podemos tentar forçar a alteração imediata de alguns parâmetros incluindo "immediate" no comando de alteração, por exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration using parameter new_value immediate&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Também podemos forçar que algum parâmetro somente seja alterado quando reiniciarmos a instância ou o banco, para isso utilizamos "deferred" na sintaxe, por exemplo:&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration using parameter new_value deferred&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Para ver as alterações que foram feitas nas variáveis, inclusive verificando se existem pendências, adicionamos "show detail" ao comando de verificação de variáveis, por exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;db2 attach to instance_name&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;db2 get database manager configuration show detail&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Se for necessário efetuar uma alteração para um parâmetro que não pode ser alterado sem um restart, você pode forçar o DB2 a se reiniciar, "chutando" os usuários ativos:&lt;br /&gt;
&lt;i&gt;db2stop force&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
É possível ver as aplicações que estão conectadas no banco com o comando:&lt;br /&gt;
&lt;i&gt;db2 list applications&lt;/i&gt;&lt;br /&gt;
E se quiser matar somente esta determinada aplicação, utilize o comando:&lt;br /&gt;
&lt;i&gt;force application (appl handle)&lt;/i&gt;&lt;br /&gt;
Onde Appl Handle é uma espécie de número do processo que pode ser obtido com o comando list applications.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.3 ---- Conectividade cliente / servidor&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Preparando o servidor para receber conexões:&lt;br /&gt;
&lt;i&gt;db2set DB2COMM=TCPIP&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Cada instância do DB2 "escuta" em uma porta, você pode definir a porta manualmente com o comando:&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration using svcename 50000&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Isso pode ser feito de outra forma também, a mais comum (em unix) é no arquivo services que costuma ficar em etc, você reservar a porta para a instância do db2, adicionando uma linha como:&lt;br /&gt;
&lt;i&gt;db2icdb2 50000/tcp&lt;/i&gt;&lt;br /&gt;
Onde db2icb2 é sua instância. Feito isso, ao invés de setar a porta na qual a instância vai escutar, nos setamos o serviço:&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration using svcename db2icdb2&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Toda alteração feita com portas e serviços requer o restart da instância, pois isso não é dinâmico.&lt;br /&gt;
&lt;br /&gt;
Utilizando o Configuration Assistant (db2ca) você pode facilmente configurar estes elementos.&lt;br /&gt;
&lt;br /&gt;
Para se conectar com um servidor, você precisa primeiro localizar o mesmo. Do lado do servidor, para habilitar que o mesmo seja localizado, é necessário que o DASAdmin (DB2 Administration Server) esteja rodando. Para isso efetuamos os seguintes comandos no servidor:&lt;br /&gt;
&lt;i&gt;db2admin start&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;db2 update admin configuration using discover search&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Feito isso, os clientes poderão "descobrir" seu servidor. Algo importante é que o DBA pode restringir a descoberta por Instância ou ainda por banco de dados com os seguintes comandos:&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration using discover_inst enable&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;db2 update database configuration for database_name using discover_db enable&lt;/i&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/Syaje29g3zI/AAAAAAAAAKM/4SpfwoKIiik/s1600-h/figura2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/Syaje29g3zI/AAAAAAAAAKM/4SpfwoKIiik/s320/figura2.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
A figura2.png ilustra muito bem este processo. É importante salientar que estes parâmetros somente dizem respeito a descoberta do processo em uma rede, e não tem relação com conectividade ou não remota, ou seja, se você desabilitar, as pessoas continuarão aptas a se conectar em seu servidor.&lt;br /&gt;
&lt;br /&gt;
O processo de encontrar e se conectar com o servidor não precisa ser feito em todas as máquinas de uma rede, existe um meio mais fácil, você pode trabalhar com arquivos chamados "access profiles", que nada mais são do que arquivos com as informações de conectividade com o servidor.&lt;br /&gt;
&lt;br /&gt;
Para exportar o arquivo, utilizamos o comando db2cfexp, para importar db2cgimp.&lt;br /&gt;
&lt;br /&gt;
Se você tem todos os dados para se conectar no servidor, você não precisa descobrir o mesmo, pode simplesmente catalogar o nó e depois o banco de dados com os comandos abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;db2 catalog tcpip node mynode remote db2server.mycompany.com server db2icdb&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;db2 catalog database sample as mysamp at node mynode&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
É importante saber que um nó (node) é a mesma coisa que um servidor DB2.&lt;br /&gt;
&lt;br /&gt;
Visualizando os servidores e bases de dados que você tem catalogado:&lt;br /&gt;
&lt;i&gt;db2 list node directory&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;db2 list database directory&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.4. Segurança&lt;/b&gt;&lt;br /&gt;
Basicamente um usuário para ter acesso ao DB2 precisa poder ter acesso ao servidor, isso quer dizer, precisa que o servidor valide o acesso do usuário a nível de Sistema Operacional. No caso do Linux, você precisa criar um usuário no SO para que ele tenha acesso no DB2.&lt;br /&gt;
&lt;br /&gt;
O tipo de autenticação é definido por instância através do parâmetro AUTHENTICATION, e pode ser:&lt;br /&gt;
• SERVER (default)&lt;br /&gt;
• SERVER_ENCRYPT&lt;br /&gt;
• KERBEROS&lt;br /&gt;
• KRB_SERVER_ENCRYPT&lt;br /&gt;
• CLIENT&lt;br /&gt;
Para alterar este parametro no servidor:&lt;br /&gt;
&lt;i&gt;db2 update database manager configuration authentication auth_type&lt;/i&gt;&lt;br /&gt;
Para setar no cliente:&lt;br /&gt;
&lt;i&gt;db2 catalog database db_name at node node_name authentication auth_type&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
O tipo de autenticação Cliente nos diz que o usuário que consegue logar em uma máquina que já tem acesso ao DB2, terá acesso ao banco de dados.&lt;br /&gt;
&lt;br /&gt;
- Níveis de autoridade: quer dizer basicamente o que um usuário pode fazer no banco. A figura abaixo mostra um organograma dos tipos de usuários.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyakBZs-IpI/AAAAAAAAAKU/x7As8onA6rg/s1600-h/figura3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyakBZs-IpI/AAAAAAAAAKU/x7As8onA6rg/s320/figura3.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
SYSADM: Tem praticamente todos os privilégios em uma instância e pode acessar dados.&lt;br /&gt;
SYSCTRL e SYSMAINT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tem alguns privilégios na instância, nos seus bancos e objetos dos bancos. Não tem acesso a dados.&lt;br /&gt;
DBADM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tem privilégios administrativos em bancos de dados especificados. Também tem total acesso aos dados no seu banco.&lt;br /&gt;
LOAD&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tem privilégio de carregar dados.&lt;br /&gt;
SYSMON&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Tem privilégio de resetar monitores e capturar snapshots.&lt;br /&gt;
SECADM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Administra proprietários, manipula sessões e labels.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Os usuários do tipo SYS*, são setados a nível de instância. Para isso, temos que colocar ou remover um determinado usuário do grupo, ex: SYSADM, SYSCTRL e SYSMAINT. Com o comando:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;db2 update dbm cfg using sysadm_group adm1&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
DBADM e LOAD são autoridades de nível do banco de dados, para eles utilizamos ddl para definições, exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;connect to&amp;nbsp; sample;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;grant dbadm on database to user&amp;nbsp; john;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;grant load on database to group&amp;nbsp; dbagrp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;revoke load on database from group&amp;nbsp; dbagrp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
- Privilégios: temos vários tipos de privilégios no DB2, dos quais os mais comuns são:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;De Banco de dados:&lt;/b&gt;&lt;br /&gt;
• CONNECT: permite que um usuário se conecte ao banco.&lt;br /&gt;
• BINDADD: Permissão para criar pacotes.&lt;br /&gt;
• CREATETAB: Criar tabelas.&lt;br /&gt;
• CREATE_NOT_FENCED Criar funções e stored procedures não fenced.&lt;br /&gt;
• QUIESCE_CONNECT: PErmissão para se conectar em uma base em QUIESCE.&lt;br /&gt;
• CREATE_EXTERNAL_ROUTINE: Criar stored procedures em linguagens tais como C, JAVA, OLE e Cobol&lt;br /&gt;
&lt;br /&gt;
De schema:&lt;br /&gt;
• CREATEIN: permite ao usuário criar objetos num esquema.&lt;br /&gt;
• ALTERIN: permite ao usuário alterar objetos num esquema.&lt;br /&gt;
• DROPIN: permite ao usuário dropar objetos num esquema.&lt;br /&gt;
&lt;br /&gt;
Table space: Permite utilizar o TS&lt;br /&gt;
&lt;br /&gt;
Tabela e View: Basicamente temos o Insert, Update, Select, delete, etc...&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Dando privilégios (Granting):&lt;br /&gt;
&lt;i&gt;grant select, update, delete on table employee to user Juliano&lt;/i&gt;&lt;br /&gt;
Dando privilégios e permitindo que o usuário os de também:&lt;br /&gt;
&lt;i&gt;grant select, update, delete on table employee to user Juliano with grant option&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Alguns privilégios vem automaticamente para o usuário conforme cria-se o mesmo e o aloca em um grupo.&lt;br /&gt;
&lt;br /&gt;
Para remover um privilégio, a instrução é a REVOKE.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.5. Agendamento de tarefas&lt;/b&gt;&lt;br /&gt;
Este tópico é muito simples então nem vou cobrir decentemente, mas, basciamente nos diz respeito a tarefas que podem ser agendadas, tarefas tais como REORG e RUNSTATS. Cria-se um script que será executado em horários/dias pré agendados.&lt;br /&gt;
Para se trabalhar com tarefas é necessário termos um banco chamado tools catalog, pois é nele que o DB2 vai armazenar os dados sobre nossas tarefas. Para criar o mesmo damos o comando:&lt;br /&gt;
&lt;i&gt;db2 create tools catalog toolscat create new database toolsdb&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.6. Logs e notificação&lt;/b&gt;&lt;br /&gt;
Cada instancia tem um notification log: db2diag.log , ele armazena os eventos que o DB2 loga.&lt;br /&gt;
&lt;br /&gt;
O parametro NOTIFYLEVEL define o nível de log que será feito no arquivo, seu valor vai de 0 a 4, onde 0 é não loga nada, e 4 loga todo tipo de erros e informações.&lt;br /&gt;
Uma nova entrada no log sempre tem um time stamp junto com mais informações sobre o erro.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.7. Instalação&lt;/b&gt;&lt;br /&gt;
No momento da criação de um banco de dados, é possível fazer com que o bd2 se auto configure, dessa forma, ele vai calcular os valores de memória e se instalar:&lt;br /&gt;
db2 create database db_name autoconfigure using config-keyword value,config-keyword value, ...&lt;br /&gt;
Também, é possível setar uma flag para tunning de memória automático, dessa forma o DB2 gerencia a memoria conforme necessário.&lt;br /&gt;
&lt;br /&gt;
Em breve publicarei a parte 2 do Guia de estudos para certificação!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html"&gt;Voltar para a Introdução. &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-5010582842918370855?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GDq7W2l4bJ8PdhtNgvdxPyrub8s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GDq7W2l4bJ8PdhtNgvdxPyrub8s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GDq7W2l4bJ8PdhtNgvdxPyrub8s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GDq7W2l4bJ8PdhtNgvdxPyrub8s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/AQBxCEUfv4o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/5010582842918370855/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731-parte-1.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5010582842918370855?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5010582842918370855?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/AQBxCEUfv4o/guia-de-estudos-db2-prova-731-parte-1.html" title="Guia de estudos DB2 - Prova 731 - Parte 1" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_5DFF_wS9zl4/S0SrtHckeqI/AAAAAAAAAK8/rjyTVCkuQeU/s72-c/im-certified-mark-168x64.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731-parte-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGQX04fCp7ImA9WxBXFkw.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-3364415139893825909</id><published>2010-01-06T04:26:00.000-08:00</published><updated>2010-01-27T09:43:40.334-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-27T09:43:40.334-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="certificação" /><category scheme="http://www.blogger.com/atom/ns#" term="731" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Guia de estudos DB2 - Prova 731 - Introdução</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyagihqN7WI/AAAAAAAAAJ0/ZDA0EAZh_XA/s1600-h/db2logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyagihqN7WI/AAAAAAAAAJ0/ZDA0EAZh_XA/s320/db2logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Desenvolvi este material para servir como uma base de consulta e suporte aos estudos para a prova de certificação de DBA DB2 (731). A maior parte do conteúdo é proveniente de anotações que eu fiz conforme ia estudando.&lt;br /&gt;
&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_5DFF_wS9zl4/SyagnnUas7I/AAAAAAAAAJ8/payOQQAHtqw/s1600-h/1583470778.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SyagnnUas7I/AAAAAAAAAJ8/payOQQAHtqw/s200/1583470778.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
Os estudos basearam-se no Livro "DB2 9 for Linux, Unix and Windows Database Administration", do autor Roger E. Sanders. Também existe um material de estudos online disponível gratuitamente &lt;a href="http://www.ibm.com/developerworks/offers/lp/db2cert/db2-cert731.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
É muito importante ter em mente que a prova é em &lt;b&gt;INGLÊS&lt;/b&gt;. Então recomendo fortemente que este guia seja utilizado como a primeira leitura para a prova, e depois, que você estude com base nos materiais em inglês. &lt;br /&gt;
&lt;br /&gt;
Dividi o estudo em 7 capítulos para que os leitores possam aproveitar o material do link acima: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731-parte-1.html"&gt;Parte 1 - Gerenciamento do Servidor&lt;/a&gt; - Como administrar seu servidor, consistência de dados, transações, locks, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-2.html"&gt;Parte 2 - Gerenciamento de dados &lt;/a&gt;- Como criar bases de dados, mecanismos de armazenagem, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-3.html"&gt;Parte 3 - Acesso ao banco de dados&lt;/a&gt; - Objetos do DB2, índices, compressão, etc, .&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jmmwrite.blogspot.com/2010/01/guia-de-estudos-db2-prova-731-parte-4.html"&gt;Parte 4 - Monitoramento&lt;/a&gt;- Mostra as ferramentas e técnicas comuns que DBAs tem que conhecer para administrar e configurar seu ambiente DB2.&lt;/li&gt;
&lt;li&gt;Parte 5 - Utilitários do DB2 - Movendo e mantendo dados, extraindo dados, populando tabelas, etc.&lt;/li&gt;
&lt;li&gt;Parte 6 - Alta disponibilidade - Backup e Recovery.&lt;/li&gt;
&lt;li&gt;Parte 7 - Recuperação de desastres.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Ao longo dos próximos posts estarei disponibilizando cada parte citada acima, talvez alguma parte dê mais que um post &lt;br /&gt;
&lt;br /&gt;
Este material não é indicado como uma introdução a Banco de Dados e DB2. Deve ser utilizado por quem &lt;b&gt;já tem uma ótima base e preferencialmente o certificado 730 ou equivalente.&lt;/b&gt; &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Mais sobre a carreira de DBA e as provas &lt;a href="http://www-03.ibm.com/certify/certs/08002105.shtml"&gt;aqui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-3364415139893825909?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i4nfWjLRTdJxPURtdadO1aQrAbo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i4nfWjLRTdJxPURtdadO1aQrAbo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i4nfWjLRTdJxPURtdadO1aQrAbo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i4nfWjLRTdJxPURtdadO1aQrAbo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/6KEnjMAwU3Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/3364415139893825909/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3364415139893825909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3364415139893825909?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/6KEnjMAwU3Y/guia-de-estudos-db2-prova-731.html" title="Guia de estudos DB2 - Prova 731 - Introdução" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyagihqN7WI/AAAAAAAAAJ0/ZDA0EAZh_XA/s72-c/db2logo.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/01/guia-de-estudos-db2-prova-731.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQEQXo_eip7ImA9WxBRFkQ.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6600342511831264027</id><published>2010-01-05T04:25:00.000-08:00</published><updated>2010-01-05T04:25:00.442-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-05T04:25:00.442-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebSphere" /><category scheme="http://www.blogger.com/atom/ns#" term="JAVA" /><title>Introdução a Web Services</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0JBlPc8LdI/AAAAAAAAAK0/8UrvpFCSysw/s1600-h/capaJava75_G.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0JBlPc8LdI/AAAAAAAAAK0/8UrvpFCSysw/s320/capaJava75_G.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Eu e meu amigo &lt;a href="http://dcon.com.br/jd.comment/"&gt;José Damico&lt;/a&gt; escrevemos um artigo para a Java Magazine 75 intitulado: Introdução a Web Services.&lt;br /&gt;
&lt;br /&gt;
O artigo começa introduzindo o leitor na atual conjuntura de integração e reusabilidade nas empresas e onde os Web Services se encaixam. Passamos pela anatomia básica de um Web Service explicando o lado cliente e servidor, e como a comunicação ocorre utilizando o protocolo SOAP. Explicados os conceitos, partimos para o desenvolvimento de um Web Service simples que recebe um parâmetro e retorna o mesmo concatenando-o com “alo”. Para finalizar, desenvolvemos um cliente que irá consumir este serviço.&lt;br /&gt;
&lt;br /&gt;
Muito obrigado ao &lt;b&gt;Eduardo Espinola&lt;/b&gt; pelo convite para participar do time de articulista da JM e as demais pessoas que colaboraram para a escrita do mesmo, espero que seja útil para a comunidade!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6600342511831264027?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lsTMvkMs5HWRxN3_5BR5rvPg068/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lsTMvkMs5HWRxN3_5BR5rvPg068/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lsTMvkMs5HWRxN3_5BR5rvPg068/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lsTMvkMs5HWRxN3_5BR5rvPg068/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/Th0AmmTgBYI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6600342511831264027/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/introducao-web-services.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6600342511831264027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6600342511831264027?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/Th0AmmTgBYI/introducao-web-services.html" title="Introdução a Web Services" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_5DFF_wS9zl4/S0JBlPc8LdI/AAAAAAAAAK0/8UrvpFCSysw/s72-c/capaJava75_G.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/introducao-web-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcEQXo5fyp7ImA9WxBRFk4.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-5734075628217845832</id><published>2010-01-04T11:23:00.000-08:00</published><updated>2010-01-04T11:23:20.427-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-04T11:23:20.427-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Introdução a Data Warehouse (DW for dummies)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyAXf7IO_VI/AAAAAAAAAJk/vLwtl1I82ZE/s1600-h/dw.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyAXf7IO_VI/AAAAAAAAAJk/vLwtl1I82ZE/s320/dw.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;OBS: &lt;/b&gt;Este artigo destina-se a pessoas que tem conhecimentos &lt;b&gt;básicos sobre&lt;/b&gt; banco de dados e querem saber &lt;b&gt;o que é&lt;/b&gt; Data Warehouse.&lt;br /&gt;
&lt;br /&gt;
Em uma empresa que utiliza um sistema de banco de dados, diariamente são efetuadas &lt;b&gt;N&lt;/b&gt; transações. Quando uma compra é efetuada por exemplo, ocorrem várias operações no banco (&lt;i&gt;selects, inserts, updates e deletes&lt;/i&gt;). Imagine um sistema maior agora, o que registra as ligações em uma empresa de telefonia celular. Pensando superficialmente, quando você inicia uma ligação, um &lt;i&gt;insert&lt;/i&gt; é executado, registrando os dados da ligação, tais como horário de início e número discado. Quando você desliga seu celular, é efetuado um &lt;i&gt;update&lt;/i&gt; na linha que foi inserida, registrando dentre outros dados, a hora na qual a ligação foi finalizada. Estas base de dados, tem que estar preparadas para responder rapidamente a transações pequenas e rápidas. Tais bases tem que ter um nível de disponibilidade altíssimo. Não podem cair nunca! Elas são conhecidas como bancos de dados transacionais ou OLTP - &lt;i&gt;Online Transaction Processing &lt;/i&gt;ou Processamento de transações em tempo-real.&lt;br /&gt;
&lt;br /&gt;
Os gerentes da empresa de telefonia demandam &lt;b&gt;relatórios&lt;/b&gt; sobre as ligações, então naturalmente você já deve estar imaginando um gigantesco &lt;i&gt;select&lt;/i&gt; sendo feito na tabela de ligações, cruzando dados com a tabela de clientes, cidades, estados, país, etc, etc, etc. Tudo isso para um simples relatório para ver os dados sobre as ligações que foram feitas em um determinado período por exemplo.&lt;br /&gt;
&lt;br /&gt;
Você acha possível rodar este "&lt;b&gt;simples&lt;/b&gt;" &lt;i&gt;select&lt;/i&gt; na base que está sofrendo as operações para cadastro de ligações? Sim, possível até que é! Porém é arriscadíssimo e demorado. Um &lt;i&gt;select&lt;/i&gt; como este pode facilmente gerar um estouro de memória em uma base, pode retardar outras operações, dentre vários outros problemas.&lt;br /&gt;
&lt;br /&gt;
Qual a solução? Por que não fazer uma "cópia" dos dados em um outro banco de dados distinto, o qual poderá sofrer enormes &lt;i&gt;selects&lt;/i&gt; sem afetar o sistema da empresa que não pode parar ou sofrer com lentidão. Essa base criada é a tal de Data Warehouse, também conhecida como DW!&lt;br /&gt;
&lt;br /&gt;
Mas em quais momentos essa "cópia" é feita? Depende! Cada empresa define o momento mais oportuno. Pode ser semanalmente, duas vezes por semana, antes de rodar a folha de pagamentos, etc. Geralmente as grandes empresas de telefonia iniciam a alimentação seus DWs a meia noite (e terminam por volta das 5 da manhã). Tente ligar para a sua operadora neste horário e perceba que o atendente vai falar que o sistema está lento.&lt;br /&gt;
&lt;br /&gt;
As técnicas envolvidas nesta "cópia" são as mais diversas possíveis. Porém você deve ter reparado que todas as ocorrências da palavra cópia no texto acima estão entre aspas certo? Normalmente, &lt;b&gt;não é feita uma simples cópia&lt;/b&gt;. São copiados somente os &lt;b&gt;dados relevantes&lt;/b&gt; para o DW, ou seja, os dados que serão utilizados nos relatórios, prognósticos, previsões, etc. Neste momento também podem ocorrer algumas transformações nos dados, alguma conversão, a aplicação de uma equação, de-normalização, etc. A esta operação é dado o nome de ETL - &lt;i&gt;Extraction, Transformation and Load&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Este processo de carregamento também é chamado de um processo &lt;i&gt;Batch&lt;/i&gt; ou em Lote. Pois movimenta grande quantidade de dados de uma só vez.&lt;br /&gt;
&lt;br /&gt;
Um Data Warehouse tem que ser otimizado para sofrer enormes operações de busca, porém um DW não sofre &lt;b&gt;somente &lt;i&gt;selects&lt;/i&gt;&lt;/b&gt;. Cada dia mais os DWs estão ficando "espertos", o termo utilizado comercialmente é &lt;b&gt;SMART&lt;/b&gt;. O que é isso exatamente? Imagine que você carregou seu DW com os dados das ligações e quer gerar um relatório que além dos dados cadastrados em banco irá trabalhar com os mesmos para gerar &lt;i&gt;forecasts&lt;/i&gt;, ou seja, previsões, dentre outras. Então várias operações podem ocorrer em banco para preparar os dados. Com base nos dados "antigos", o banco deve ser capaz de mostrar tendências de comportamento por exemplo. Então acabam ocorrendo outras operações no DW além do &lt;i&gt;select&lt;/i&gt; para preparar os dados.&lt;br /&gt;
&lt;br /&gt;
Em teoria, &lt;b&gt;qualquer&lt;/b&gt; banco de dados disponível no mercado pode ser utilizado com um DW. Obviamente que vão existir diferenças em desempenho, recursos e escalabilidade. É perfeitamente possível se criar um DW utilizando o MySQL, porém análises técnicas apontam que o mesmo não tem o nível de escalabilidade de um IBM DB2 ou um Oracle por exemplo. Convém a empresa interessada fazer uma extensa pesquisa de mercado antes de escolher seu produto.&lt;br /&gt;
&lt;br /&gt;
Quanto a equipamentos, normalmente um banco de dados já demanda um servidor muito poderoso e enorme quantidade de memória &lt;i&gt;ram&lt;/i&gt;. Para um DW, as exigências são maiores ainda. É importante observar que quando falo "um servidor", quero dizer um servidor de banco de dados que pode ser constituído por um ou N computadores. Em grandes bancos, um DW pode ser 50 computadores, cada um com 8 processadores de 8 cores e 200 &lt;i&gt;gigas&lt;/i&gt; de memória &lt;i&gt;ram&lt;/i&gt; por computador. Os dados em si são armazenados em equipamentos chamados &lt;i&gt;storages&lt;/i&gt;, totalizando uma capacidade de vários &lt;i&gt;Terabytes&lt;/i&gt;!&lt;br /&gt;
&lt;br /&gt;
Enfim, espero ter dado uma boa visão introdutória sobre DW. Se quiser se aprofundar mais, sugiro procurar por livros relacionados. O "Papa" do DW é o autor Ross Kimball, qualquer livro dele vai agregar muito. &lt;br /&gt;
&lt;br /&gt;
Em breve postarei artigos sobre &lt;i&gt;storages&lt;/i&gt; e servidores. Estou aberto a sugestões, críticas e dúvidas.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-5734075628217845832?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LtUjYovvvhm32yTkPi9318sja5E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LtUjYovvvhm32yTkPi9318sja5E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LtUjYovvvhm32yTkPi9318sja5E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LtUjYovvvhm32yTkPi9318sja5E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/_dFAV0GLNcA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/5734075628217845832/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2010/01/introducao-data-warehouse-dw-for.html#comment-form" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5734075628217845832?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/5734075628217845832?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/_dFAV0GLNcA/introducao-data-warehouse-dw-for.html" title="Introdução a Data Warehouse (DW for dummies)" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyAXf7IO_VI/AAAAAAAAAJk/vLwtl1I82ZE/s72-c/dw.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2010/01/introducao-data-warehouse-dw-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AQ345fCp7ImA9WxBREE8.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-2079606355638953600</id><published>2009-12-28T09:37:00.000-08:00</published><updated>2009-12-28T09:37:22.024-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-28T09:37:22.024-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IBM" /><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Conheça o IBM InfoShere</title><content type="html">Quer saber com o que exatamente eu trabalho? Ai vai:&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MD3YuctxNoo&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MD3YuctxNoo&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-2079606355638953600?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UcvwVCcaNqJ3OSuwga6pOKbqT_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UcvwVCcaNqJ3OSuwga6pOKbqT_4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UcvwVCcaNqJ3OSuwga6pOKbqT_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UcvwVCcaNqJ3OSuwga6pOKbqT_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/R8z0bPl0wX8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/2079606355638953600/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/conheca-o-ibm-infoshere.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/2079606355638953600?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/2079606355638953600?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/R8z0bPl0wX8/conheca-o-ibm-infoshere.html" title="Conheça o IBM InfoShere" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/conheca-o-ibm-infoshere.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CQX8zeyp7ImA9WxBSEEg.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-411472901088531991</id><published>2009-12-17T05:01:00.000-08:00</published><updated>2009-12-17T05:01:00.183-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-17T05:01:00.183-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Smart Planet" /><title>Transito mais inteligente para uma vida menos stressante</title><content type="html">O transito mais inteligente para uma vida menos stressante! É isso ai o que a IBM propões.&amp;nbsp; Será que os governantes estão prontos para investir e colhers os benefícios?&lt;br /&gt;
&lt;br /&gt;
Isso já é possível, em resumo, basta colocar rfid em tudo e fazer todos os dispositivos conversarem! Fácil, fácil, falta boa vontade! Veja que vídeo simples e que mostra a idéia:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xvlksON0zrU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xvlksON0zrU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-411472901088531991?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OKOxupQPOC3ogtIkZoenGGHzLdQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OKOxupQPOC3ogtIkZoenGGHzLdQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OKOxupQPOC3ogtIkZoenGGHzLdQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OKOxupQPOC3ogtIkZoenGGHzLdQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/oYcfVoGK4mU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/411472901088531991/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/transito-mais-inteligente-para-uma-vida.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/411472901088531991?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/411472901088531991?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/oYcfVoGK4mU/transito-mais-inteligente-para-uma-vida.html" title="Transito mais inteligente para uma vida menos stressante" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/transito-mais-inteligente-para-uma-vida.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DRHk7eyp7ImA9WxBTGUs.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-3313744204368197905</id><published>2009-12-16T04:36:00.000-08:00</published><updated>2009-12-16T04:36:15.703-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-16T04:36:15.703-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Coca Cola migra de Oracle para DB2 (e fica muito feliz)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5v9h_vYFI/AAAAAAAAAJU/cMK7Mr96lWE/s1600-h/db2logo.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5v9h_vYFI/AAAAAAAAAJU/cMK7Mr96lWE/s320/db2logo.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Recentemente foi publicado um &lt;a href="http://searchoracle.techtarget.com/news/article/0,289142,sid41_gci1370485,00.html"&gt;artigo sobre a migração da Coca Cola de Oracle para DB2&lt;/a&gt; no site Search Oracle em inglês. Fiz um resumo/tradução para vocês, ai vai:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Nesta ano(2009), no processo de upgrade do novo sistema SAP, a Cola Cola precisaria fazer um upgrade de seu banco de dados Oracle do 9i para o 10g para poder obter os benefícios e novos recursos do SAP.&lt;br /&gt;
&lt;br /&gt;
Porém isso demandaria a compra significativa de novas licenças do Oracle, demandando um alto investimento, enquanto se fossem utilizar o DB2, o valor a ser investido seria bem menor.&lt;br /&gt;
&lt;br /&gt;
Eles tinham a preocupação sobre a falta de conhecimento sobre o DB2, pois eles já estavam trabalhando com Oracle a mais que 10 anos.&lt;br /&gt;
&lt;br /&gt;
Porém a IBM e a SAP ofereceram treinamentos que fizeram a curva de aprendizado ser extremamente curta e a Coca percebeu que a falta de conhecimento não seria impactante. A própria SAP forneceu ferramentas para a migração Oracle -&amp;gt; DB2.&lt;br /&gt;
&lt;br /&gt;
A decisão da Coca Cola foi então migrar tudo que era possível para DB2.&lt;br /&gt;
&lt;br /&gt;
O time que fez a migração foi composto por 4 funcionários da Coca Cola e 1 da IBM, durando em média 2 meses e meio.&lt;br /&gt;
&lt;br /&gt;
Uma das bases de produção tinha aproximadamente 1 terabyte. Com a migração conseguiram 40% de compressão de dados. Provando assim as ótimas capacidades do DB2 em tratando-se de compressão de dados, tornando a mesma infra-estrutura que rodava Oracle, capaz de armazenar &lt;b&gt;MAIS&lt;/b&gt; dados, reduzindo o custo de armazenamento dos mesmos.&lt;br /&gt;
&lt;br /&gt;
O tempo de execução de processos batch foi &lt;b&gt;reduzido&lt;/b&gt; em &lt;b&gt;65%&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
O artigo cita outros fatos interessantes sobre a migração, que abriu precedentes para que outras fábricas migrem gradualmente, pois só obtiveram benefícios.&lt;br /&gt;
&lt;br /&gt;
A frase mais importante que fica do artigo é: &lt;br /&gt;
"We have been pretty pleased with the performance, compression savings and things like the self-tuning memory with DB2," he said. "But now the DBAs doing the work have a lot more time to focus on SAP issues rather than Oracle issues."&lt;br /&gt;
&lt;br /&gt;
Uma tradução indireta é: "Estamos muito felizes com a performance, compressão e coisas como tunning automático de memória do DB2", "Agora os &lt;b&gt;DBAs não tem tanto trabalho com problemas do Oracle e podem se dedicar muito mais no SAP&lt;/b&gt;."&lt;br /&gt;
&lt;br /&gt;
É isso ai pessoal. Aprendam DB2, vale a pena! Para quem quiser saber como começar, escrevi um &lt;a href="http://jmmwrite.blogspot.com/2009/11/aprenda-db2-um-dos-bancos-que-mais.html"&gt;post bem direto aqui&lt;/a&gt;! Vocês tem acesso a um livro em português grátis, podem baixar o DB2, tem acesso a suporte nos nossos fóruns, etc.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-3313744204368197905?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JomMRa1v3-9SVTnwua-dl51P0DE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JomMRa1v3-9SVTnwua-dl51P0DE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JomMRa1v3-9SVTnwua-dl51P0DE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JomMRa1v3-9SVTnwua-dl51P0DE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/JjsGvxMVsHU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/3313744204368197905/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/coca-cola-migra-de-oracle-para-db2-e.html#comment-form" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3313744204368197905?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/3313744204368197905?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/JjsGvxMVsHU/coca-cola-migra-de-oracle-para-db2-e.html" title="Coca Cola migra de Oracle para DB2 (e fica muito feliz)" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5v9h_vYFI/AAAAAAAAAJU/cMK7Mr96lWE/s72-c/db2logo.gif" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/coca-cola-migra-de-oracle-para-db2-e.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YGQX85fyp7ImA9WxBTGEo.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6427434402894414540</id><published>2009-12-15T04:12:00.000-08:00</published><updated>2009-12-15T04:12:00.127-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T04:12:00.127-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>DB2 - Fenced user, o que é isso?</title><content type="html">Pergunta muito comum para quem está conhecendo o DB2: O que é o tal de Fenced user?&lt;br /&gt;
&lt;br /&gt;
O usuário Fenced é utilizado para rodar funções definidas do usuário (user defined functions - UDFs) e determinadas stored procedures.&lt;br /&gt;
&lt;br /&gt;
Mais detalhes&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/start/c0011931.htm"&gt;&lt;/a&gt; &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.qb.server.doc/doc/t0007067.html"&gt;aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6427434402894414540?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7pH9KcrfPDtZXnTzlnmNRGUMGzk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7pH9KcrfPDtZXnTzlnmNRGUMGzk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7pH9KcrfPDtZXnTzlnmNRGUMGzk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7pH9KcrfPDtZXnTzlnmNRGUMGzk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/DIZk4bNDrhw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6427434402894414540/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/db2-fenced-user-o-que-e-isso.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6427434402894414540?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6427434402894414540?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/DIZk4bNDrhw/db2-fenced-user-o-que-e-isso.html" title="DB2 - Fenced user, o que é isso?" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/db2-fenced-user-o-que-e-isso.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYAQnk5fSp7ImA9WxBTGE8.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-8322488232450936593</id><published>2009-12-14T12:22:00.000-08:00</published><updated>2009-12-14T12:22:23.725-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-14T12:22:23.725-08:00</app:edited><title>Jogos online que envolvem dinheiro são "sadios"?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyaeOHebrhI/AAAAAAAAAJs/4Eabny67Ia0/s1600-h/colheita.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyaeOHebrhI/AAAAAAAAAJs/4Eabny67Ia0/s320/colheita.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Está havendo um aumento massivo no número de jogadores de jogos casuais via internet, um bom exemplo disso é o "Colheita Feliz", que é uma mini aplicação para o Orkut na qual os usuários criam uma fazenda e a administram, plantando e colhendo legumes e frutas, cuidando de animais tais como Galinhas, Vacas, etc. A fazenda vai rendendo “dinheiro virtual” e o mesmo pode ser utilizado para comprar sementes e animais mais caros, e assim vai se evoluindo no jogo. Além disso, para que sua fazenda cresça ou para comprar coisas avançadas, você vai precisar de experiência, que é ganha conforme se joga (lentamente). &lt;br /&gt;
&lt;br /&gt;
Só isso não garantiria o sucesso do jogo! O que realmente faz com que esse tipo de jogo se destaque é a possibilidade de interação com outros usuários do Orkut que também o tenham instalado. Nele você pode roubar coisas de outras pessoas, presenteá-las com flores, cuidar de suas plantações e animais e até jogar praga na fazenda alheia, ganhando/perdendo popularidade. &lt;br /&gt;
&lt;br /&gt;
Os itens mais avançados do jogo (pavão, frutas exóticas, etc) custam dinheiro de verdade para o "fazendeiro", se quiser tais itens o mesmo vai ter que passar o número do cartão de crédito e pagar por isso! Ai o Orkut ajuda o jogo a ganhar grandes proporções, pois as pessoas querem ser as melhores por natureza, tendo os bens mais caros (o mesmo sentimento que motiva uma mulher a querer uma bolsa Victor Hugo ou um óculos Dolce Gabana... e um homem a ter um carrão da hora), as pessoas não se conformam em ter uma fazendinha com uma galinha e plantação de Nabo. &lt;br /&gt;
&lt;br /&gt;
Ficamos com algumas importantes questões em aberto em relação a esse jogo: esse tipo de jogo on-line é mais viciante que um jogo off-line? Essa motivação em ter as coisas melhores move as pessoas a jogarem mais e gastar seu dinheiro para "evoluir"? Até onde isso é sadio? Temos que observar os aspectos negativos e positivos do jogo. &lt;br /&gt;
&lt;br /&gt;
É claro que eu estou jogando Fazenda Feliz para poder escrever este artigo com alguma base estatística, conhecendo pessoas que jogam. Em uma amostragem de 10 pessoas com perfis diferentes (homens, mulheres, casados, solteiros) que instalaram o jogo, 7 jogam diariamente, 2 joga eventualmente e 1 não gostou e abandonou. Dos 9 que jogam, 4 já gastaram algum dinheiro real e 3 me falaram que jogam no trabalho visitando a fazendo pelo menos uma vez por dia.&lt;br /&gt;
&lt;br /&gt;
Podemos dizer que jogos online que envolvem dinheiro podem ser classificados como jogo de azar, pois eles induzem claramente o usuário a gastar dinheiro, pois para alcançar as vias máximas do jogo, só pagando. É fato que a maioria dos jogos online (e não só os online) não agregam NADA intelectualmente, muito pelo contrário, só desagregam, a não ser que você seja uma criança aprendendo a fazer contas, cores, palavras, etc, aí os jogos podem até te ajudar a se desenvolver. Existem pesquisas que mostram que jogos online destroem a atenção das pessoas, que mesmo no trabalho ficam pensando no jogo ("como será que minha plantação está..."), e acabam jogando em horário de expediente quando possível. &lt;br /&gt;
&lt;br /&gt;
Porém não podemos dizer que jogos que não agregam nada não devam ser jogados, senão jogaríamos no lixo a maioria que está disponível por ai! As pessoas tem direito sim a fazerem algo para relaxar, algo que simplesmente não ocupe demais o cérebro, realmente, usufruir uma "porcaria", é o fator diversão.&lt;br /&gt;
&lt;br /&gt;
Existem jogos sim que estimulam as pessoas, e pesquisa que demonstram isso provando por A + B. Jogadores de videogame tem maior atividade cerebral. Porém este não é o caso de um jogo como Colheita Feliz por exemplo. &lt;br /&gt;
&lt;br /&gt;
Na minha modesta opinião (que pode mudar), jogos online que envolvem dinheiro podem ser jogado com cautela. Eu acredito que estes tipos de jogos irão dominar a cabeça de pelo menos metade das pessoas que os jogam e que elas vão acabar gastando dinheiro com isso e mais tempo que elas deveriam. Porém, é um problema gastar para jogar? Dependendo do tipo de jogo, eu acredito que sim! &lt;br /&gt;
&lt;br /&gt;
Algumas pessoas podem argumentar que os produtores do jogo precisam ganhar dinheiro de alguma forma. Na minha opinião os jogos online deveriam viver de publicidade ou de aluguel, porém, esta última opção só será valida quando tivermos banda realmente larga e conteúdo sob demanda decente, compraremos jogos (tal como um Guitar Hero) online e pagaremos pelo tempo que estivermos com ele, como uma locadora, ai sim, acho justo pagar, trata-se de um "aluguel" por um conteúdo de qualidade.&lt;br /&gt;
&lt;br /&gt;
Por enquanto, tenham cautela, usem a parte grátis dos jogos ou procurem por opções que não suguem seu suado dinheiro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-8322488232450936593?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9fjAQxpUSqB49SPCfIxeRUDW3UE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9fjAQxpUSqB49SPCfIxeRUDW3UE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9fjAQxpUSqB49SPCfIxeRUDW3UE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9fjAQxpUSqB49SPCfIxeRUDW3UE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/DZF0uG63C5c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/8322488232450936593/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/jogos-online-que-envolvem-dinheiro-sao.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8322488232450936593?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/8322488232450936593?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/DZF0uG63C5c/jogos-online-que-envolvem-dinheiro-sao.html" title="Jogos online que envolvem dinheiro são &quot;sadios&quot;?" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_5DFF_wS9zl4/SyaeOHebrhI/AAAAAAAAAJs/4Eabny67Ia0/s72-c/colheita.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/jogos-online-que-envolvem-dinheiro-sao.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMSX4zeip7ImA9WxBTFUs.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-225041893106514931</id><published>2009-12-11T12:36:00.001-08:00</published><updated>2009-12-11T12:36:28.082-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-11T12:36:28.082-08:00</app:edited><title>Frase para a geração X e Y</title><content type="html">Essa vale a pena, principalmente para a geração X e Y:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;"&gt;“Não andeis ansiosos por coisa alguma;                    antes em tudo sejam os vossos pedidos conhecidos diante de Deus                    pela oração e súplica com ações                    de graças.”&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;"&gt;                   Filipenses 4:6&lt;/span&gt;&lt;span style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-225041893106514931?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mg7UAMJE74TIjVTkd83kzBurXHw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mg7UAMJE74TIjVTkd83kzBurXHw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mg7UAMJE74TIjVTkd83kzBurXHw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mg7UAMJE74TIjVTkd83kzBurXHw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/4WfNbEkgiu4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/225041893106514931/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/frase-para-geracao-x-e-y.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/225041893106514931?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/225041893106514931?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/4WfNbEkgiu4/frase-para-geracao-x-e-y.html" title="Frase para a geração X e Y" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/frase-para-geracao-x-e-y.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCQ3s8fip7ImA9WxBTFEs.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-1905555761631890666</id><published>2009-12-10T08:06:00.000-08:00</published><updated>2009-12-10T08:09:22.576-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-10T08:09:22.576-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>Novo livro grátis - Getting started with IBM Data Studio for DB2</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.ibm.com/developerworks/wikis/download/attachments/121439173/GettingStarted_IBMDataStudi.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://www.ibm.com/developerworks/wikis/download/attachments/121439173/GettingStarted_IBMDataStudi.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Pessoal, a IBM está disponibilizando um novo livro gratuitamente: "Getting started with IBM Data Studio for DB2".&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Data Studio é uma ferramenta para gerenciar dados no DB2, muito interessante!&lt;br /&gt;
&lt;br /&gt;
Para download, &lt;a href="https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+ebook+-+Getting+started+with+IBM+Data+Studio+for+DB2"&gt;clique aqui.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Só para lembrar, já oferecemos gratuitamente o Livro "Iniciando com DB2", em português! &lt;a href="https://www.ibm.com/developerworks/wikis/display/DB2/FREE+Book-+Getting+Started+with+DB2+Express-C"&gt;Eis o link&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-1905555761631890666?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TKsZ4kIGNlyge0o8bi2HdnKCxw4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TKsZ4kIGNlyge0o8bi2HdnKCxw4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TKsZ4kIGNlyge0o8bi2HdnKCxw4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TKsZ4kIGNlyge0o8bi2HdnKCxw4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/4kNw9fG2wy4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/1905555761631890666/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/novo-livro-gratis-getting-started-with.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/1905555761631890666?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/1905555761631890666?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/4kNw9fG2wy4/novo-livro-gratis-getting-started-with.html" title="Novo livro grátis - Getting started with IBM Data Studio for DB2" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/novo-livro-gratis-getting-started-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MEQXY8fCp7ImA9WxBTE0s.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-6093297688456767134</id><published>2009-12-09T05:30:00.000-08:00</published><updated>2009-12-09T05:30:00.874-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-09T05:30:00.874-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Carreira" /><title>Estágio na IBM</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5_8Et5SSI/AAAAAAAAAJc/U1vhMkr9OwQ/s1600-h/passaporteibm.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5_8Et5SSI/AAAAAAAAAJc/U1vhMkr9OwQ/s200/passaporteibm.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Pessoal, a IBM está com 150 vagas de estágio previstas para o 1 Quartil de 2010. As inscrições no site foram abertas &lt;b&gt;segunda-feira (23/11) e irão até o dia 15/01&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
O Programa de Estágio (Passaporte IBM) tem como objetivo principal estimular o desenvolvimento profissional dos estudantes através de experiências práticas do dia-a-dia dos negócios, para que eles adquiram novos conhecimentos e se tornem profissionais qualificados e diferenciados.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blue-med-dark"&gt;  &lt;strong&gt;Quem pode participar?&lt;/strong&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blue-med-dark"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;  &lt;br /&gt;
&lt;/div&gt;São elegíveis ao Programa de Estágio IBM, estudantes regularmente &lt;b&gt;matriculados&lt;/b&gt; em instituições de ensino oficialmente reconhecidas, em cursos de nível médio/superior.&lt;br /&gt;
&lt;br /&gt;
Se o estagiário perder, por qualquer motivo, a condição de estudante ou se transferir para um curso não compatível com os objetivos da IBM, o estágio poderá ser dado por encerrado.&lt;br /&gt;
&lt;br /&gt;
Para se inscrever, vá em &lt;a href="http://www.ibm.com/br/estagio/"&gt;http://www.ibm.com/br/estagio/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;OBS: Não sei dar informações sobre salário, provas, etc....&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
Boa sorte!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-6093297688456767134?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k7fnQKuIUT0iACZzrGRER4OIlk8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7fnQKuIUT0iACZzrGRER4OIlk8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k7fnQKuIUT0iACZzrGRER4OIlk8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7fnQKuIUT0iACZzrGRER4OIlk8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/K7LzE5h04ZI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/6093297688456767134/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/estagio-na-ibm.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6093297688456767134?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/6093297688456767134?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/K7LzE5h04ZI/estagio-na-ibm.html" title="Estágio na IBM" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_5DFF_wS9zl4/Sx5_8Et5SSI/AAAAAAAAAJc/U1vhMkr9OwQ/s72-c/passaporteibm.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/estagio-na-ibm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYBQ3c4fCp7ImA9WxBTEkU.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-1731105393133767709</id><published>2009-12-08T06:22:00.000-08:00</published><updated>2009-12-08T06:22:32.934-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-08T06:22:32.934-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DB2 / Banco de dados" /><title>IBM e Consist fecham acordo que pode gerar US$ 200 milhões em receita</title><content type="html">A IBM e a &lt;a href="http://www.consist.com/"&gt;Consist&lt;/a&gt; fecharam um acordo de homologação e implementação dos software da empresa utilizando o banco de dados DB2. A Consist é uma empresa de software brasileira com presença internacional.&lt;br /&gt;
&lt;br /&gt;
Vale muito a pena conhecer o DB2, ele é o banco que mais cresce no mercado! Se quiser conhecer um pouco mais, fazer o download gratuito e estudar, veja &lt;a href="http://jmmwrite.blogspot.com/2009/11/aprenda-db2-um-dos-bancos-que-mais.html"&gt;este post meu mesmo.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Sobre as notícias, veja mais &lt;a href="http://www.consist.com.br/pub2/PublicNew/sitio/ccm_pagina.jsp?codcanal=noticias&amp;amp;docId=USPZ200912073637&amp;amp;pais=brasil&amp;amp;country=BR&amp;amp;language=pt&amp;amp;xslcontent=consistSiteDocumento.xsl"&gt;aqui&lt;/a&gt; e &lt;a href="http://www.tiinside.com.br/News.aspx?ID=158716"&gt;aqui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-1731105393133767709?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/10aPvsFSg9DeYG9RqDpkQuX3dqc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/10aPvsFSg9DeYG9RqDpkQuX3dqc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/10aPvsFSg9DeYG9RqDpkQuX3dqc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/10aPvsFSg9DeYG9RqDpkQuX3dqc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/JmKNk4wlpkY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/1731105393133767709/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/ibm-e-consist-fecham-acordo-que-pode.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/1731105393133767709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/1731105393133767709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/JmKNk4wlpkY/ibm-e-consist-fecham-acordo-que-pode.html" title="IBM e Consist fecham acordo que pode gerar US$ 200 milhões em receita" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/ibm-e-consist-fecham-acordo-que-pode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EEQH0yeip7ImA9WxNaGU4.&quot;"><id>tag:blogger.com,1999:blog-6274419107872357659.post-4074074520338560500</id><published>2009-12-04T05:00:00.000-08:00</published><updated>2009-12-04T05:00:01.392-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-04T05:00:01.392-08:00</app:edited><title>Tradutor simultâneo</title><content type="html">Pessoal, um amigo de trabalho encontrou um ótimo tradutor simultâneo. Ele vai mostrando a tradução conforme você vai digitando.&lt;br /&gt;
&lt;br /&gt;
Tem N linguagens.&lt;br /&gt;
&lt;br /&gt;
Bookmark nele: &lt;a href="http://tradukka.com/"&gt;http://tradukka.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6274419107872357659-4074074520338560500?l=jmmwrite.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CPqRzeWkQg404wYYNy-CnRcXpW0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CPqRzeWkQg404wYYNy-CnRcXpW0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CPqRzeWkQg404wYYNy-CnRcXpW0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CPqRzeWkQg404wYYNy-CnRcXpW0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Jmmwrite/~4/5TsCk15toZk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jmmwrite.blogspot.com/feeds/4074074520338560500/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://jmmwrite.blogspot.com/2009/12/tradutor-simultaneo.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/4074074520338560500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6274419107872357659/posts/default/4074074520338560500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jmmwrite/~3/5TsCk15toZk/tradutor-simultaneo.html" title="Tradutor simultâneo" /><author><name>Juliano Martins</name><uri>http://www.blogger.com/profile/03471128429981332638</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_5DFF_wS9zl4/SoGQiGvBdJI/AAAAAAAAADc/COFSioy-je0/S220/julianom.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jmmwrite.blogspot.com/2009/12/tradutor-simultaneo.html</feedburner:origLink></entry></feed>

