<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Linguagens de Banco de Dados</title><link>http://elderstroparo.blogspot.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LinguagensDeBancoDeDados" /><description>você vai encontrar qualquer uma descrição de uma linguagem de Banco de Dados de computador, enfim como é um Blogger será poucas informações mas de boa ajuda e bem necessária a todos o visitantes
Obrigado</description><language>en</language><managingEditor>noreply@blogger.com (Elder Stroparo)</managingEditor><lastBuildDate>Fri, 16 Mar 2012 10:04:26 PDT</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">52</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><feedburner:info uri="linguagensdebancodedados" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><media:copyright>Todos os direitos Reservados</media:copyright><media:thumbnail url="http://img638.imageshack.us/img638/4042/figuradados.jpg" /><media:keywords>Banco,de,Dados,BD,Linguagens,de,Bancos,de,Dados,Sistema,Gerenciador,de,Banco,de,Dados,Relacional,SGBDR</media:keywords><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Technology/Software How-To</media:category><itunes:owner><itunes:email>elder-stroparo@bol.com.br</itunes:email><itunes:name>Elder Stroparo</itunes:name></itunes:owner><itunes:author>Elder Stroparo</itunes:author><itunes:explicit>no</itunes:explicit><itunes:image href="http://img638.imageshack.us/img638/4042/figuradados.jpg" /><itunes:keywords>Banco,de,Dados,BD,Linguagens,de,Bancos,de,Dados,Sistema,Gerenciador,de,Banco,de,Dados,Relacional,SGBDR</itunes:keywords><itunes:subtitle>Banco de Dados</itunes:subtitle><itunes:summary>Aqui você vai encontrar qualquer uma descrião de uma linguagem de Banco de Dados de computador</itunes:summary><itunes:category text="Technology"><itunes:category text="Software How-To" /></itunes:category><item><title>Servidor de Banco de Dados</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/bkfDmUd3Hac/servidor-de-banco-de-dados.html</link><category>Servidor de Bando de Dados</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sat, 28 Jan 2012 10:25:32 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-6544387161994159436</guid><description>&lt;a href="http://3.bp.blogspot.com/-Cc7Bi9hnnEk/TyQ7LjECS1I/AAAAAAAAAK0/-D_tP25buTE/s1600/mainframe.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 262px; height: 192px;" src="http://3.bp.blogspot.com/-Cc7Bi9hnnEk/TyQ7LjECS1I/AAAAAAAAAK0/-D_tP25buTE/s400/mainframe.jpg" alt="" id="BLOGGER_PHOTO_ID_5702748097734658898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div  style="text-align: center; font-family:arial;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Servidor de Banco de Dados&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;Bom para quem não tem um bom conhecimento de Servidor de Banco de Dados vou explicar um pouco sobre isto.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;O que é &lt;span style="font-weight: bold;"&gt;Servidor&lt;/span&gt;?&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;Um &lt;span style="font-weight: bold;"&gt;Servidor&lt;/span&gt; é um sistema de computação que fornece serviços a uma rede de computadores. Esses serviços podem ser de natureza diversa, como por exemplo, arquivos e correio eletrônico. Os computadores que acessam os serviços de um servidor são chamados clientes. As redes que utilizam servidores são do tipo cliente-servidor, utilizadas em redes de médio e grande porte (com muitas máquinas) e em redes onde; a questão da segurança desempenha um papel de grande importância. O termo servidor é largamente aplicado a computadores completos, embora um servidor possa equivaler a um &lt;span style="font-weight: bold;"&gt;software&lt;/span&gt; ou a partes de um sistema computacional, ou até mesmo a uma máquina que não seja necessariamente um computador.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;A história dos servidores tem, obviamente, a ver com as redes de computadores. Redes permitiam a comunicação entre diversos computadores, e, com o crescimento destas, surgiu a idéia de dedicar alguns computadores para prestar algum serviço à rede, enquanto outros se utilizariam destes serviços. Os servidores ficariam responsáveis pela primeira função.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;Com o advento das redes, foi crescendo a necessidade das redes terem servidores e minicomputadores, o que acabou contribuindo para a diminuição do uso dos &lt;span style="font-weight: bold;"&gt;mainframes&lt;/span&gt;.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;O crescimento das empresas de redes e o crescimento do uso da Internet entre profissionais e usuários comuns foi o grande impulso para o desenvolvimento e aperfeiçoamento de tecnologias para servidores.&lt;/span&gt;&lt;br  style="font-family:arial;"&gt;&lt;br  style="font-family:arial;"&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;O que é &lt;span style="font-weight: bold;"&gt;Banco de Dados&lt;/span&gt;?&lt;/li&gt;&lt;/ul&gt;&lt;br  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;Bancos de dados, ou bases de dados, são coleções de informações que se relacionam de forma que crie um sentido. São de vital importância para empresas, e há duas décadas se tornaram a principal peça dos sistemas de informação. Normalmente existem por vários anos sem alterações em sua estrutura.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;São operados pelos &lt;span style="font-weight: bold;"&gt;Sistemas Gerenciadores de Bancos de Dados (SGBD)&lt;/span&gt;, que surgiram na década de 70. Antes destes, as aplicações usavam sistemas de arquivos do sistema operacional para armazenar suas informações. Na década de 80 a tecnologia de SGBD relacional passou a dominar o mercado, e atualmente utiliza-se praticamente apenas ele. Outro tipo notável é o SGBD Orientado a Objetos, para quando sua estrutura ou as aplicações que o utilizam mudam constantemente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Explicando melhor..&lt;/span&gt;&lt;br style="font-weight: bold;font-family:arial;" &gt;&lt;br  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;Com a junção de um&lt;span style="font-weight: bold;"&gt; Servidor&lt;/span&gt; e uma base de &lt;span style="font-weight: bold;"&gt;Banco&lt;/span&gt; você terá um &lt;span style="font-weight: bold;"&gt;Servidor de Banco de Dados&lt;/span&gt;, assim você poderá manipular informações contidas em uma base de banco de dados. Por menor que sejam, possuem quantidades cada vez maiores de armazenagem de dados e informações. Conseguindo manipulação destas informações que se tornam impossível de ser realizada manualmente (via papéis, principalmente), pois sua utilização além de demorada (devido a catalogação dos dados) é passível de erros principalmente ocasionados pelo desgaste do operador em conseguir resgatar informações requisitadas. Nesse sentido, torna-se mais fácil encontrar a informação numa base de dados que recorre a uma das tecnologias de informação de maior sucesso e confiança. Ou seja, as bases de dados estendem a função do papel ao guardar a informação em computadores.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Muitas empresas adotaram o &lt;span style="font-weight: bold;"&gt;NT/2000&lt;/span&gt; não como uma plataforma de rede,  mas como um servidor de banco de dados para alojar servidores &lt;span style="font-weight: bold;"&gt;SQL Server &lt;/span&gt; ou&lt;span style="font-weight: bold;"&gt; Oracle&lt;/span&gt;. Atualmente, muito do trabalho em banco de dados está sendo  feito em plataformas &lt;span style="font-weight: bold;"&gt;NT/2000&lt;/span&gt;.&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;p  style="font-family:arial;"&gt;Mas o uso destes servidores de banco de dados com Linux vem crescendo  bastante, Para tanto, utilizam-se servidores &lt;span style="font-weight: bold;"&gt;MySQL &lt;/span&gt;ou o&lt;span style="font-weight: bold;"&gt; PostGresSQL&lt;/span&gt;;  este último clone de um antigo sistema &lt;span style="font-weight: bold;"&gt;Unix&lt;/span&gt; chamado &lt;span style="font-weight: bold;"&gt;Ingres&lt;/span&gt;.&lt;/p&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;p  style="font-family:arial;"&gt;Num passado recente, muitos administradores de rede não queriam  confiar seus preciosos dados a um programa gratuito como o &lt;span style="font-weight: bold;"&gt;MySQL&lt;/span&gt;, mas  isto mudou. Atualmente há muitos sites de comércio eletrônico e de  grandes Intranets rodando em plataforma &lt;span style="font-weight: bold;"&gt;Linux&lt;/span&gt;, e o&lt;span style="font-weight: bold;"&gt; MySQL&lt;/span&gt; provou ser  rápido, estável e confiável, tudo isto com uma grande (enorme) vantagem,  é gratuito!&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-6544387161994159436?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/bkfDmUd3Hac" height="1" width="1"/&gt;</description><media:thumbnail url="http://3.bp.blogspot.com/-Cc7Bi9hnnEk/TyQ7LjECS1I/AAAAAAAAAK0/-D_tP25buTE/s72-c/mainframe.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2012/01/servidor-de-banco-de-dados.html</feedburner:origLink></item><item><title></title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/SsBvGy2ZX5w/normal-0-21-false-false-false-pt-br-x.html</link><category>Siglas</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sat, 28 Jan 2012 06:33:13 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-6924901600436421668</guid><description>&lt;div  style="text-align: center;font-family:arial;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;LISTA DE SIGLAS (Geral de Banco de Dados)&lt;br /&gt;&lt;/span&gt;&lt;xml&gt;&lt;w:worddocument&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;w:browserlevel&gt;&lt;/w:browserlevel&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val=""&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;m:wrapindent val="1440"&gt;&lt;m:intlim val="subSup"&gt;&lt;m:narylim val="undOvr"&gt;&lt;/m:narylim&gt;&lt;/m:intlim&gt;&lt;/m:wrapindent&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;/w:worddocument&gt;&lt;/xml&gt;&lt;/div&gt;&lt;xml style="font-family:arial;"&gt;&lt;w:worddocument&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val=""&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;m:wrapindent val="1440"&gt;&lt;/m:wrapindent&gt;&lt;!--[endif]--&gt;&lt;!----&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:lsdexception&gt; &lt;/w:lsdexception&gt;&lt;!--[endif]--&gt;&lt;!----&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:auto;  mso-para-margin-left:0cm;  text-align:justify;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;!--[endif]--&gt;    &lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:latentstyles&gt;&lt;/xml&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;/w:worddocument&gt;&lt;/xml&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: center;"&gt;&lt;xml  style="font-family:arial;"&gt;&lt;w:worddocument&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val=""&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;xml&gt;&lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;&lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;&lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;&lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;&lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;&lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;&lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;&lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;&lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;&lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;&lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;&lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;&lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;&lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;&lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;&lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;&lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;&lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;Bom estou falando alguma siglas básicas que envolve Banco de Dados.&lt;/p&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:latentstyles&gt;&lt;/xml&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;/w:worddocument&gt;&lt;/xml&gt;&lt;/div&gt;&lt;br /&gt;&lt;xml style="font-family: arial;"&gt;&lt;w:worddocument&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val=""&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;xml&gt;&lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;&lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;&lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;&lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;&lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;&lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;&lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;&lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;&lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;&lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;&lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;&lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;&lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;&lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;&lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;&lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;&lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;&lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:latentstyles&gt;&lt;/xml&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;/w:worddocument&gt;&lt;/xml&gt;&lt;/div&gt;&lt;xml style="font-family: arial;"&gt;&lt;w:worddocument&gt;&lt;w:trackmoves&gt;&lt;w:trackformatting&gt;&lt;w:punctuationkerning&gt;&lt;w:validateagainstschemas&gt;&lt;w:donotpromoteqf&gt;&lt;w:compatibility&gt;&lt;w:breakwrappedtables&gt;&lt;w:snaptogridincell&gt;&lt;w:wraptextwithpunct&gt;&lt;w:useasianbreakrules&gt;&lt;w:dontgrowautofit&gt;&lt;w:splitpgbreakandparamark&gt;&lt;w:dontvertaligncellwithsp&gt;&lt;w:dontbreakconstrainedforcedtables&gt;&lt;w:dontvertalignintxbx&gt;&lt;w:word11kerningpairs&gt;&lt;m:mathpr&gt;&lt;m:mathfont val="Cambria Math"&gt;&lt;m:brkbin val="before"&gt;&lt;m:brkbinsub val=""&gt;&lt;m:smallfrac val="off"&gt;&lt;m:dispdef&gt;&lt;m:lmargin val="0"&gt;&lt;m:rmargin val="0"&gt;&lt;m:defjc val="centerGroup"&gt;&lt;xml&gt;&lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;&lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;&lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;&lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;&lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;&lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;&lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;&lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;&lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;&lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;&lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;&lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;&lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;&lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;&lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;&lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;&lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;&lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;&lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;&lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;&lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;&lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;&lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;&lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;&lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;&lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;ANSI&lt;/span&gt; - American National Standards Institute;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;CRUD&lt;/span&gt; - Acrônimo da expressão em língua Inglesa Create, Retrieve, Update e Destroy,usada para definir quatro operações básicas usadas em bancos de dadosrelacionais;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;DAO&lt;/span&gt; - Data Acess Object;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;DBA&lt;/span&gt; - DataBase Administrator;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;DB4o&lt;/span&gt; - DataBase for Object;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;DBOO&lt;/span&gt; - Banco de dados orientado a objeto;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;HQL&lt;/span&gt; - Hibernate Query Language;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;JAVA/SE&lt;/span&gt; - Java Standard Edition;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;JDBC&lt;/span&gt; - Java Database Connectivity;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;DER&lt;/span&gt; - Diagrama Entidade-Relacionamento;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;ODBC&lt;/span&gt; - Open Data Base Connectivity;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;ODMG&lt;/span&gt; - Object Database Management Group;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;OO&lt;/span&gt; - Orientação à Objeto;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;RDBMS&lt;/span&gt; - Relational database management systemSIG- Sistema de Informação Geográfica;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;SGDB&lt;/span&gt; - Sistema Gerenciador de Banco de Dados;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;SGDBOO&lt;/span&gt; - Sistema Gerenciador de Banco de Dados Orientado a Objeto;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;SGDBR&lt;/span&gt; - Sistema Gerenciador de Banco de Dados Relacional;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: left;font-family:arial;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt; - Structured Query Language;&lt;/p&gt;    &lt;p class="MsoNormal" face="arial" style="margin-bottom: 0.0001pt; text-align: left;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;UML&lt;/span&gt; - Unified Modeling Language;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: left;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;XML&lt;/span&gt; - Extensible Markup Language;&lt;/p&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:lsdexception&gt;&lt;/w:latentstyles&gt;&lt;/xml&gt;&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;/m:brkbinsub&gt;&lt;/m:brkbin&gt;&lt;/m:mathfont&gt;&lt;/m:mathpr&gt;&lt;/w:word11kerningpairs&gt;&lt;/w:dontvertalignintxbx&gt;&lt;/w:dontbreakconstrainedforcedtables&gt;&lt;/w:dontvertaligncellwithsp&gt;&lt;/w:splitpgbreakandparamark&gt;&lt;/w:dontgrowautofit&gt;&lt;/w:useasianbreakrules&gt;&lt;/w:wraptextwithpunct&gt;&lt;/w:snaptogridincell&gt;&lt;/w:breakwrappedtables&gt;&lt;/w:compatibility&gt;&lt;/w:donotpromoteqf&gt;&lt;/w:validateagainstschemas&gt;&lt;/w:punctuationkerning&gt;&lt;/w:trackformatting&gt;&lt;/w:trackmoves&gt;&lt;/w:worddocument&gt;&lt;/xml&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-6924901600436421668?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/SsBvGy2ZX5w" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2011/04/normal-0-21-false-false-false-pt-br-x.html</feedburner:origLink></item><item><title></title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/he-XOweREqg/siglas-postgresql-ola-novamente-estou.html</link><category>Siglas</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 15 Apr 2011 11:44:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-3061137984623330914</guid><description>&lt;div  style="text-align: center; font-family: arial;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Siglas - PostgreSQL&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;Olá novamente estou postando algumas siglas agora sobre &lt;span style="font-weight: bold;"&gt;Postgre&lt;/span&gt;, algumas siglas aqui para melhor entendimento nas leituras, como a maioria destas siglas  perde o seu significado na tradução, preferi deixá-las em seu idioma  original.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0); font-family: arial;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;b&gt;&lt;br /&gt;Referential integrity:&lt;/b&gt;&lt;/span&gt; &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Também conhecido como "integridade          referencial", esse recurso consiste em restrições ou          regras existentes para uma correta inserção de dados, por          exemplo, para impedir que uma tabela seja preenchida sem que isso ocorra          em outra;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Schemas:&lt;/b&gt;&lt;/span&gt; &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Recurso que permite cruzar informações          em um mesmo banco de dados, mas em estruturas diferentes;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SQL:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Sigla para Structured Query Language, é uma linguagem          utilizada em bancos de dados relacionais;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SSL:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Sigla para Secure Sockets Layer, consiste em um protocolo          para a troca segura de informações;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Stored procedures:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Ssse recurso consiste em comandos SQL "guardados"          no servidor para, por exemplo, executar tarefas repetitivas, evitando          que um cliente tenha que executá-las constantemente;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Transactions:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Também conhecidas como transações,          as transactions são instruções executadas em um bloco          designado por parâmetros que indicam seu início e seu fim;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Triggers:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Também chamados de gatilhos, os triggers são          recursos que permitem o acionamento de uma seqüência de comandos          logo em seguida ou logo após um evento;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Views:&lt;/b&gt;&lt;/span&gt;          &lt;span style="font-family: arial;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;Os views consistem em um tipo de tabela virtual formada por          campos extraídos de uma tabela "verdadeira", facilitando          o controle sob os dados acessados.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-3061137984623330914?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/he-XOweREqg" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2011/04/siglas-postgresql-ola-novamente-estou.html</feedburner:origLink></item><item><title></title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/GEGDGoJpk68/siglas-sql-server-ola-meus-amigos-vou.html</link><category>Siglas</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 15 Apr 2011 11:42:03 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-5568517677140075927</guid><description>&lt;div  style="text-align: center; font-family: arial;font-family:arial;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-size:130%;" &gt;Siglas - SQL Server&lt;/span&gt;&lt;/div&gt;&lt;p  style="color: rgb(0, 0, 0); text-align: justify; font-family: arial;font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;Olá meus amigos vou postar algumas siglas aqui sobre a linguagem SQL Server para melhor entendimento nas leituras, como a maioria destas siglas perde o seu significado na tradução, preferi deixá-las em seu idioma original.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-size:100%;" &gt;ACID                      – Atomicity  Consistency Isolation Durability&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta sigla é utilizada para definir as propriedades                      que uma transação deve possuir.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-size:100%;"&gt;&lt;span lang="PT-BR"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;ADO                      – Activex Data Objects&lt;/span&gt;&lt;br /&gt;             Faz referência a uma biblioteca de objetos ActiveX para acesso                      a dados. Geralmente é através destes objetos que um programador                      em ASP ou VB acessa o SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;ANSI-92                      – American National Standarts Institute 92&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;ANI-92 é um conjunto de regras e requisitos                      estipulados pelo orgão ANSI para definição de banco de dados                      relacionais.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;BLOB                      – Binary Large Objects&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;É um tipo de dado que um campo de uma tabela                      pode armazenar. No SQL Server os tipos de dados ntext, text,                      and image podem ser considerados como do tipo BLOB.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;BOL                      – Books OnLine&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta sigla é uma abreviação para a documentação                      eletrônica oficial do SQL Server.&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;" class="MsoBodyText"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;DBCC                      - DataBase Console Commands&lt;/span&gt;&lt;br /&gt;             &lt;/span&gt;&lt;span style="text-decoration: none;" lang="PT-BR"&gt;Apesar de algumas documentações ainda constar como DataBase Consistancy                      Checker, são comandos que fazem a consistência lógica e física                      de um banco de dados do SQL Server.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;DCL                      – Data Control Language&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Designação para os comandos GRANT, DENY e                      REVOKE do SQL Server que fazem o controle de permissões dos                      objetos do banco de dados.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;DDL                      – Data Definition Language&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Designação para os comandos CREATE, ALTER                      e DRP (e seus derivados) que fazem o controle da criação/alteração/exclusão                      dos objetos do banco de dados do SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;DML                      – Data Manipulation Language&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             Desiginação para os comandos INSERT, UPDATE e DELETE  que                      fazem o controle da manipulação de dados do banco de dados                      do SQL Server.&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;DTS                      – Data Transformation Services&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;É a tecnologia desenvolvida pela Microsoft                      para a manipulação e transformação de dados tanto para SQL                      Server como para outra fonte de dados.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;EM                      – Enterprise Manager&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta é uma abreviação para a ferramenta de                      gerenciamento de interface gráfica do SQL Server. Na verdade                      o EM nada mais é do que um snap-in para o MMC (Microsoft Management                      Console) que por sua vez é uma interface compartilhada para                      gerenciamento gráfico de algumas ferramentas da Microsoft                      e de terceiros.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;JDBC                      – Java DataBase Connectivity&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Um driver JDBC é o método de acesso que permite                      aplicações desenvolvidas em linguagem Java acessar diferentes                      fontes de dados, incluindo o SQL Server.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-size:100%;"&gt;&lt;span lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;MDX                      – MultiDimensional eXpression&lt;/span&gt;&lt;br /&gt;             São expressões que permitem o acesso a dados espalhados através                      de mútiplas dimensões em um cubo de dados, por exemplo.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-size:100%;"&gt;&lt;span lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;MER                      – Modelo Entidade Relacionamento&lt;/span&gt;&lt;br /&gt;             &lt;/span&gt;É um modelo lógico do banco de dados que  contém as                      entidades (tabelas) , atributos (campos) e relacionamento                      entre as entidades. Todo banco de dados deve começar a ser                      desenvolvido a partir do MER feito para um determinado processo                      de negócio.&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;MS                      DTC – Microsoft Distributed Transaction Coordinator&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             É um serviço, como o serviço MSSQLServer, que permite o controle                      de transações distribuídas feitas sobre fontes de dados remotas.&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;OLAP                      – OnLine Analytical Processing&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta sigla faz referência a ambientes onde                      os dados dificilmente são atulizados e servem para auxiliar                      no processo de tomada de decisão.&lt;/span&gt;&lt;span&gt;                                     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;OLTP                      – OnLine Transaction Processing&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             Esta sigla faz referência a ambientes onde a entrada e atualização                       dos dados é muito intensa.&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;ODBC                      – Open Database Connectivity&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Um driver ODBC é o método de acesso que permite                      aplicações desenvolvidas em diversas linguagens acessar diferentes                      fontes de dados, incluindo o SQL Server.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;OLE                      DB – Object Linking and Embendig DataBase&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;OLE DB é uma biblioteca de funções básicas                      para acesso a dados. O ADO visto anteriormente utiliza o OLE                      DB com um provider ou um ODBC. Todo o método de acesso das                      ferramentas padrão do SQL Server é feito através do OLE DB.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;RAID                      – Redundant Array of Independent Disks&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta sigla serve para identificar um sistema                      de controle de discos físicos para aumento de performance,                      confiabilidade, capacidade de armazenamento e alta disponibilidade.                      Apesar de ser implementado no sistema operacional (Windows)                      este sistema pode influenciar muito a utilização do SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;RDBMS                      – Relational DataBase Management System&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;Esta sigla identifica que um servidor de                      banco de dados gerencia base de dados relacionais. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;SQL                      – Structured Query Language&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;É a notação padrão para linguagens de instruções                      enviadas a banco de dados. Deve ser utilizada em conjunto                      com um banco de dados relacional.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;SQL-DMO                      – SQL Distributed Management Objects&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;É uma coleção de objetos que permite a utilização                      de componentes nativos do SQL Server. Com estes objetos podemos                      construir ferramentas como o Enterprise Manager ou o Quey                      Analyzer.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                   &lt;p  style="color: rgb(0, 0, 0); font-family: arial;font-family:arial;"&gt; &lt;span style="font-weight: bold;font-size:100%;" &gt;UDF                      – User Defined Function&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;             &lt;span lang="PT-BR"&gt;São pequenos programas que podem conter instruções                      Transact-SQL que serão executadas dentro do banco de dados                      somente.&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-5568517677140075927?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/GEGDGoJpk68" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2011/04/siglas-sql-server-ola-meus-amigos-vou.html</feedburner:origLink></item><item><title></title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/-6AVxWn_xco/ola-meus-amigos-estou-postando-sobre-um.html</link><category>Banco de Dados em 2011</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 15 Apr 2011 08:23:57 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-3319503989584055184</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-w5HS2PrrpjM/TahiyDh2TrI/AAAAAAAAAKo/XSu601y4yo8/s1600/Bando%2Bde%2BDados%2B2011.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 313px; height: 277px;" src="http://1.bp.blogspot.com/-w5HS2PrrpjM/TahiyDh2TrI/AAAAAAAAAKo/XSu601y4yo8/s400/Bando%2Bde%2BDados%2B2011.png" alt="" id="BLOGGER_PHOTO_ID_5595831149088100018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="text-align: justify;font-family:arial;" &gt;Olá meus amigos, estou postando sobre um assunto que achei na rede sobre &lt;span style="font-weight: bold;"&gt;Bando de Dados &lt;/span&gt;em 2011, este artigo mostra cinco previsões feitas pelo blog da Xeround &lt;a href="http://www.xeround.com/"&gt;Xeround.com&lt;/a&gt; para os &lt;span style="font-weight: bold;"&gt;Banco de Dados em 2011&lt;/span&gt;. A primeira previsão é uma bomba, vamos começar: Let's Go!!!&lt;br /&gt;&lt;/p&gt; &lt;ol style="font-family: arial;"&gt;&lt;li&gt;&lt;strong&gt;Bancos de Dados relacionais “voltam a ser uma boa escolha”:&lt;/strong&gt;&lt;/li&gt;&lt;p style="text-align: justify;"&gt;Parece que toda a propaganda em cima do NoSql irá decrescer. DBAs e  empresas retornação para o já comprovado SQL. Toda a promessa de  escalabilidade e distribuição que levou à adoção do NoSql não pode  compensar a falta de funções mais básicas transacionais e relacionais,  que são requisitos básicos para qualquer aplicação comercial.&lt;br /&gt;Casos alternativos serão encontrados utilizando NoSql, como por exemplo  DW / BI, aonde o grande conjunto de dados e vários tipos englobados são a  chave do alto desempenho.&lt;/p&gt;&lt;li&gt;&lt;strong&gt;Empresas e desenvolvedores irão perceber que banco de dados na nuvem tem necessidades específicas:&lt;/strong&gt;&lt;/li&gt;&lt;p style="text-align: justify;"&gt;Essa é uma discussão que está amadurecendo. Enquanto alguns começam a  perceber os benefícios da nuvem, outros percebem que a cloud não é  apenas abstração da virtualização.&lt;br /&gt;Bancos de Dados não são apenas a parte mais crítica de uma aplicação,  mas está tornando claro que banco de dados nas nuvens são diferentes das  instalações tradicionais. A tendência é de que as bases de dados nas  nuvens tenham forte crescimento neste ano.&lt;/p&gt;&lt;li&gt;&lt;strong&gt;Este será o ano do DBaaS (Datavase as a Service)&lt;/strong&gt;&lt;/li&gt;&lt;p style="text-align: justify;"&gt;A promessa de bancos de dados nas nuvens vai além da simples redução  de custos e eficiência das operações. É tudo sobre a simplicidade e uma  filosofia de “não se preocupar”. Problemas de configuração e as  operações em andamento serão automatizadas, ou serão simples como um  apertar de botões.&lt;br /&gt;A possibilidade é de que você possa levantar seu banco na nuvem em questão de minutos.&lt;br /&gt;E a melhor possibilidade de todas, é a transição suave, sem necessidade de mudanças de códigos.&lt;/p&gt;&lt;li&gt;&lt;strong&gt;Preços por Utilização de SaaS:&lt;/strong&gt;&lt;/li&gt;&lt;p style="text-align: justify;"&gt;Este modelo tem a vantagem de evitar o excesso de subscrições por  usuários ou por recursos. Os bancos de dados e modelos de infraestrutura  serão pressionados a aplicar o mesmo modelo do SaaS, pagamento por uso  real.&lt;br /&gt;O modelo de precificação tradicional para bancos de dados da empresa  serão ajustados para refletir a flexibilidade e a natureza dinâmica da  nuvem.&lt;/p&gt;&lt;li&gt;&lt;strong&gt;Elasticidade é a Chave:&lt;/strong&gt;&lt;/li&gt;&lt;p style="text-align: justify;"&gt;Se antes, os desenvolvedores tinham que escolher entre a elasticidade  e a simplicidade de NoSql, e as transações em capacidades de consultas  no SQL, neste ano veremos que podemos ter ambas soluções.&lt;br /&gt;Elasticidade reflete tudo isto, escalabilidade, disponibilidade e distribuição.&lt;br /&gt;A idéia é de que este princípio da elasticidade seja automático, sem a  necessidade de esbarrar na monitoração e configuração manual. Poderá ter  uma solução de banco de dados garantindo escalabilidade automática,  tuning e backup. &lt;/p&gt;&lt;/ol&gt; &lt;p style="font-family: arial; text-align: justify;"&gt;As previsões são bem interessantes, mas saibam que a empresa que as  “previu”, é uma empresa que oferece Banco de Dados nas Nuvens, então não  cortem os pulsos pois pode ter sido um pouco tendenciosa.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;Fonte&lt;br /&gt;&lt;/div&gt;&lt;p style="font-family: arial; text-align: center;"&gt;&lt;a href="http://blog.xeround.com/2011/01/five-predictions-for-your-database-in-2011"&gt;http://blog.xeround.com/2011/01/five-predictions-for-your-database-in-2011&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-3319503989584055184?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/-6AVxWn_xco" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/-w5HS2PrrpjM/TahiyDh2TrI/AAAAAAAAAKo/XSu601y4yo8/s72-c/Bando%2Bde%2BDados%2B2011.png" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2011/04/ola-meus-amigos-estou-postando-sobre-um.html</feedburner:origLink></item><item><title>Procedimento Armazenado</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/8bNbcpYbc8U/procedimento-armazenado.html</link><category>Procedimento Armazenado</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Wed, 09 Mar 2011 06:55:45 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-4625188906238215259</guid><description>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-J85vMjgMMKs/TXePHK7X88I/AAAAAAAAAKg/m6uUoHfrf_g/s1600/stored_procedures.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 205px;" src="http://1.bp.blogspot.com/-J85vMjgMMKs/TXePHK7X88I/AAAAAAAAAKg/m6uUoHfrf_g/s400/stored_procedures.png" alt="" id="BLOGGER_PHOTO_ID_5582087616504263618" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div face="arial" style="text-align: justify;"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Procedimento Armazenado (Stored Procedure)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;Procedimento armazenado&lt;/b&gt; ou &lt;b&gt;Stored Procedure&lt;/b&gt; é uma coleção de comandos em &lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt; para dispensamento de &lt;span style="font-weight: bold;"&gt;Banco de Dados&lt;/span&gt;.  Encapsula tarefas repetitivas, aceita parâmetros de entrada e retorna  um valor de status (para indicar aceitação ou falha na execução). O  procedimento armazenado pode reduzir o tráfego na rede, melhorar a  performance, criar mecanismos de segurança, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O que é um Stored Procedure?&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;R: &lt;span style="font-weight: bold;"&gt;Stored Procedure&lt;/span&gt; é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no &lt;span style="font-weight: bold;"&gt;Banco de Dados&lt;/span&gt;  e pode ser chamado a qualquer momento tanto pelo &lt;span style="font-weight: bold;"&gt;SGBD&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;Sistema  Gerenciador de Banco de Dados&lt;/span&gt;) quanto por um sistema que faz interface  com o mesmo.&lt;br /&gt;&lt;br /&gt;Você pode criar uma &lt;span style="font-weight: bold;"&gt;Stored Procedure&lt;/span&gt; em linha de comando no &lt;span style="font-weight: bold;"&gt;Query Analizer&lt;/span&gt; com a seguinte sintaxe:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 8px solid rgb(192, 192, 192);" align="left"&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:arial;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;Create  procedure busca&lt;br /&gt;@nomedebusca varchar (50)&lt;br /&gt;as&lt;br /&gt;select nome1, nome2&lt;br /&gt;from nome_da_tabela&lt;br /&gt;where nome = @nomedebusca&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Ou&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;/pre&gt;&lt;div align="justify"&gt;&lt;div style="border: 8px solid rgb(192, 192, 192);" align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;CREATE PROCEDURE nome_do_stored_procedure&lt;br /&gt;[&lt;br /&gt;{@parametro tipo_de_dados_parametro}[=valor_default] [output]&lt;br /&gt;]&lt;br /&gt;[,...n]&lt;br /&gt;AS&lt;br /&gt;comando1,&lt;br /&gt;comando2,&lt;br /&gt;comando3,&lt;br /&gt;...,&lt;br /&gt;comando2&lt;code&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;GO&lt;/code&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;Algumas considerações:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:arial;"&gt;&lt;li&gt;Somente poderão executar o comando &lt;span style="font-weight: bold;"&gt;CREATE STORED PROCEDURE&lt;/span&gt;, usuários que  são membros da role de servidor sysadmin ou das roles de  &lt;span style="font-weight: bold;"&gt; Banco de Dados  db_owner&lt;/span&gt; e&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;db_ddladmin&lt;/span&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;ul  style="text-align: justify;font-family:arial;"&gt;&lt;li&gt;Em um Stored Procedure, podemos incluir qualquer comando T-SQL, com  exceção dos seguintes: &lt;span style="font-weight: bold;"&gt;CREATE PROCEDURE, CREATE DEFAULT, CREATE RULE,  CREATE TRIGGER E CREATE VIEW&lt;/span&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;ul  style="text-align: justify;font-family:arial;"&gt;&lt;li&gt;Em um&lt;span style="font-weight: bold;"&gt; Stored Procedure&lt;/span&gt; podemos referenciar tabelas, &lt;span style="font-weight: bold;"&gt;Views&lt;/span&gt;, outras &lt;span style="font-weight: bold;"&gt;Stored Procedures&lt;/span&gt; e&lt;span style="font-weight: bold;"&gt; tabelas temporárias&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;Bom, é isso meus amigos espero que isso ajude algo.. foi básica e bem filtrada a minha explicação.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-4625188906238215259?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/8bNbcpYbc8U" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/-J85vMjgMMKs/TXePHK7X88I/AAAAAAAAAKg/m6uUoHfrf_g/s72-c/stored_procedures.png" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2011/03/procedimento-armazenado.html</feedburner:origLink></item><item><title>Normalização de Dados</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/qpsapdW0KEE/normalizacao-de-dados.html</link><category>Normalização de Dados</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Wed, 09 Mar 2011 06:27:20 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-7898957131299316361</guid><description>&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_W4mx9wreaj4/TVEv38zL5qI/AAAAAAAAAKY/ZzjlDntey9o/s1600/normalizacao-banco-de-dados.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 400px; height: 178px;" src="http://2.bp.blogspot.com/_W4mx9wreaj4/TVEv38zL5qI/AAAAAAAAAKY/ZzjlDntey9o/s400/normalizacao-banco-de-dados.jpg" alt="" id="BLOGGER_PHOTO_ID_5571286852294141602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Bom &lt;span style="font-weight: bold;"&gt;Normalização de Dados&lt;/span&gt; para quem nunca ouviu falar eu vou comentar um pouco mais sobre tudo isso aos novatos na área de Banco de Dados. Vou tentar ser o mais breve e objetivo possível. A &lt;b&gt;Normalização de Dados&lt;/b&gt; é uma série de passos que se segue no  projeto de um banco de dados que permite um armazenamento consistente e  um eficiente acesso aos dados em um banco de dados relacional. Esses  passos reduzem a redundância de dados e as chances dos dados se tornarem  inconsistentes.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;No entanto, muitas &lt;span style="font-weight: bold;"&gt;SGBDs&lt;/span&gt; relacionais não têm separação suficiente entre o projeto lógico da base de dados e a implementação física do &lt;span style="font-weight: bold;"&gt;banco de dados&lt;/span&gt;,  e isso tem como conseqüência que as consultas feitas a um banco de  dados totalmente normalizado têm um mau desempenho. Nestes casos, usa-se  por vezes a &lt;span style="font-weight: bold;"&gt;desnormalização&lt;/span&gt; para melhorar o desempenho, com o custo de menores garantias de consistência.&lt;/p&gt;&lt;p  style="text-align: center;font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Definição&lt;/span&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;Consiste em definir o formato lógico adequado para as estruturas de dados identificados no projeto lógico do sistema, com o objetivo de minimizar o espaço utilizado pelos dados e garantir a integridade e confiabilidade das informações.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;A normalização é feita, através da análise dos dados que compõem as estruturas utilizando o conceito chamado “&lt;strong&gt;Formas Normais&lt;/strong&gt; (FN)”. As FN são conjuntos de restrições nos quais os dados devem satisfazê-las. Exemplo, pode-se dizer que a estrutura está na &lt;em style="font-weight: bold;"&gt;primeira forma normal&lt;/em&gt; (1FN), se os dados que a compõem satisfizerem as restrições definidas para esta etapa.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;A normalização completa dos dados é feita, seguindo as restrições das &lt;strong&gt;quatro formas normais&lt;/strong&gt;&lt;br /&gt;existentes, sendo que a passagem de uma FN para outra é feita tendo como base o resultado obtido na etapa anterior, ou seja, na FN anterior.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;Para realizar a normalização dos dados, é primordial que seja definido um campo chave para a estrutura, campo este que permite irá identificar os demais campos da estrutura.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;strong&gt;Formas Normais&lt;/strong&gt; &lt;span style="font-weight: bold;"&gt;existentes:&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;1 – &lt;strong&gt;Primeira Forma Normal&lt;/strong&gt; (&lt;em&gt;1FN&lt;/em&gt;)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;Consiste em retirar da estrutura os elementos repetitivos, ou seja, aqueles dados que podem compor uma estrutura de vetor. Podemos afirmar que uma estrutura está normalizada na 1FN, se não possuir elementos repetitivos. Exemplo:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;Estrutura original&lt;/span&gt;:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Notas Fiscais&lt;span style="font-weight: bold;"&gt; (&lt;/span&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Num. NF&lt;/span&gt;, Série, Data emissão, Cod. do Cliente, Nome do cliente, Endereço do cliente, CGC do cliente&lt;/strong&gt;, Relação das mercadorias vendidas (onde para cada mercadoria temos: &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;strong&gt;Código da Mercadoria, Descrição da Mercadoria, Quantidade vendida, Preço de venda e Total da venda desta mercadoria&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;) e &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;strong&gt;Total Geral da Nota&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;) &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Analisando a estrutura acima, observamos que existem &lt;span style="text-decoration: underline;"&gt;várias mercadorias&lt;/span&gt; em uma única Nota Fiscal, sendo portanto &lt;span style="text-decoration: underline;"&gt;elementos repetitivos&lt;/span&gt; que deverão ser retirados.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Estrutura na primeira forma normal (1FN):&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;Arquivo de Notas Fiscais (&lt;span style="text-decoration: underline;"&gt;Num. NF&lt;/span&gt;, Série, Data emissão, Código do Cliente, Nome Cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify; font-family: arial;font-family:arial;"&gt;Arquivo de Vendas (&lt;span style="text-decoration: underline;"&gt;Num. NF&lt;/span&gt;, &lt;span style="text-decoration: underline;"&gt;Código da Mercadoria&lt;/span&gt;, Descrição da Mercadoria, Quantidade vendida, Preço de venda e Total da venda desta mercadoria)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify; font-family: arial;font-family:arial;"&gt;Obs. Os campos sublinhados identificam as &lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;chaves&lt;/strong&gt;&lt;/span&gt; das estruturas.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Como resultado desta etapa ocorre um desdobramento dos dados em duas estruturas, a saber:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Primeira estrutura (Arquivo de Notas Fiscais): Dados que compõem a estrutura original, excluindo os elementos repetitivos.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Segundo estrutura (Arquivo de Vendas): Dados que compõem os elementos repetitivos da  estrutura original, tendo como chave o campo chave da estrutura original (Num. NF) e o campo chave da estrutura de repetição (Código da Mercadoria).&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;2 – &lt;/span&gt;&lt;strong&gt;Segunda Forma Normal&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt; (&lt;/span&gt;&lt;em style="font-weight: bold;"&gt;2FN&lt;/em&gt;&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Consiste em retirar das estruturas que possuem chaves compostas (campo chave sendo formado por mais de um campo), os elementos que são funcionalmente dependente de parte da chave. Podemos afirmar que uma estrutura está na 2FN, se ela estiver na 1FN e não possuir campos que são funcionalmente dependente de parte da chave.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Exemplo:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Estrutura na primeira forma normal (1FN):&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Notas Fiscais (Num. NF, Série, Data emissão, Código do Cliente, Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Vendas (Num. NF, Código da Mercadoria, Descrição da Mercadoria, Quantidade vendida, Preço de venda e Total da venda desta mercadoria)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Estrutura na segunda forma normal (2FN):&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Notas Fiscais (Num. NF, Série, Data emissão, Código do Cliente, Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Vendas (Num. NF, Código da Mercadoria, Quantidade vendida e Total da venda desta mercadoria)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de venda)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Como resultado desta etapa, houve um desdobramento do arquivo de Vendas (o arquivo de Notas Fiscais, não foi alterado, por não possuir chave composta) em duas estruturas a saber:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Primeira estrutura (Arquivo de Vendas): Contém os elementos originais, sendo excluídos os dados que são dependentes apenas do campo Código da Mercadoria.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Segundo estrutura (Arquivo de Mercadorias): Contém os elementos que são identificados apenas pelo Código da Mercadoria, ou seja, independentemente da Nota Fiscal, a descrição e o preço de venda serão constantes.&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;3 –&lt;/span&gt; &lt;strong&gt;Terceira Forma Normal&lt;/strong&gt; &lt;span style="font-weight: bold;"&gt;(&lt;/span&gt;&lt;em style="font-weight: bold;"&gt;3FN&lt;/em&gt;&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Consiste em retirar das estruturas os campos que são funcionalmente dependentes de outros  campos que não são chaves. Podemos afirmar que uma estrutura está na 3FN, se ela estiver na 2FN e não possuir campos dependentes de outros campos não chaves.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Exemplo:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Estrutura na segunda forma normal (2FN):&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Notas Fiscais (Num. NF, Série, Data emissão, Código do Cliente, Nome do cliente, Endereço do cliente, CGC do cliente e Total Geral da Nota)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Vendas (Num. NF, Código da Mercadoria, Quantidade vendida e Total da venda desta mercadoria)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de venda)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;Estrutura na terceira forma normal (3FN):&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Notas Fiscais (Num. NF, Série, Data emissão, Código do Cliente e Total Geral da  Nota)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Vendas (Num. NF, Código da Mercadoria, Quantidade vendida e Total da venda desta mercadoria)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Arquivo de Mercadorias (Código da Mercadoria, Descrição da Mercadoria, Preço de venda)  Arquivo de Clientes (Código do Cliente, Nome do cliente, Endereço do cliente e CGC do cliente)&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Como resultado desta etapa, houve um desdobramento do arquivo de Notas Fiscais, por ser o único que possuía campos que não eram dependentes da chave principal (Num. NF), uma vez que independente da Nota Fiscal, o Nome, Endereço e CGC do cliente são inalterados. Este procedimento permite evitar inconsistência nos dados dos arquivos e economizar espaço por eliminar o armazenamento freqüente e repetidas vezes destes dados. A cada nota fiscal comprada pelo cliente, haverá o armazenamento destes dados e poderá ocorrer divergência entre eles.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial; font-weight: bold;"&gt;As estruturas alteradas foram pelos motivos, a saber:&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Primeira estrutura (Arquivo de Notas Fiscais): Contém os elementos originais, sendo excluído os dados que são dependentes apenas do campo Código do Cliente (informações referentes ao cliente).&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Segundo estrutura (Arquivo de Clientes): Contém os elementos que são identificados apenas pelo Código do Cliente, ou seja, independente da Nota Fiscal, o Nome, Endereço e CGC dos clientes serão constantes.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Após a Normalização, as estruturas dos dados estão projetadas para eliminar as inconsistências e redundâncias dos dados, eliminando desta forma qualquer problema de atualização e operacionalização do sistema. A versão final dos dados poderá sofrer alguma alteração, para atender as necessidades específicas do sistema, a critério do analista de desenvolvimento durante o projeto físico do sistema.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-7898957131299316361?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/qpsapdW0KEE" height="1" width="1"/&gt;</description><media:thumbnail url="http://2.bp.blogspot.com/_W4mx9wreaj4/TVEv38zL5qI/AAAAAAAAAKY/ZzjlDntey9o/s72-c/normalizacao-banco-de-dados.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2011/02/normalizacao-de-dados.html</feedburner:origLink></item><item><title>Tecnologia OLAP</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/J5DS_2P9U4I/tecnologia-olap.html</link><category>OLAP</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Tue, 08 Feb 2011 10:09:58 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-5190707946677467216</guid><description>&lt;div face="arial" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_W4mx9wreaj4/TVBV7P5dQ7I/AAAAAAAAAKQ/6HNizHpAqv0/s1600/OLAP.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 380px; height: 385px;" src="http://4.bp.blogspot.com/_W4mx9wreaj4/TVBV7P5dQ7I/AAAAAAAAAKQ/6HNizHpAqv0/s400/OLAP.jpg" alt="" id="BLOGGER_PHOTO_ID_5571047215425471410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Olá pessoal hoje vou falar de uma tecnologia chamada e para vocês terem uma melhor entendimento sobre oque estarei falando eu vou citar algumas definições para melhor entendimento deste assunto chamado &lt;b&gt;OLAP&lt;/b&gt;,ou &lt;b&gt;On-line Analytical Processing&lt;/b&gt; é a capacidade para manipular e analisar um grande volume de dados sob múltiplas perspectivas.&lt;/p&gt;&lt;div face="arial" style="text-align: justify;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;As aplicações &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt; são usadas pelos gestores em qualquer nível da  organização para lhes permitir análises comparativas que facilitem a sua  tomada de decisões diárias.&lt;/p&gt;&lt;div face="arial" style="text-align: justify;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Classifica-se em&lt;span style="font-weight: bold;"&gt; ROLAP, MOLAP, HOLAP, DOLAP E WOLAP&lt;/span&gt;.&lt;/p&gt;&lt;p style="font-family: arial; text-align: center;"&gt;&lt;b&gt;Benefícios&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; "&lt;span style="font-weight: bold;"&gt;Online analytical processing&lt;/span&gt;", ou &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt; fornece para organizações um  método de acessar, visualizar, e analisar dados corporativos com alta  flexibilidade e performance. A tecnologia  quanto maior e complexa a informação armazenada, mais difícil é para  retirá-la. A tecnologia  acaba com estas dificuldades levando a  informação mais próxima ao usuário que dela necessite. Portanto, o &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt; é  freqüentemente utilizado para integrar e disponibilizar informações  gerenciais contidas em bases de dados operacionais, sistemas &lt;span style="font-weight: bold;"&gt;ERP&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;CRM&lt;/span&gt;,  sistemas contábeis, e Data Warehouses. Estas características tornaram-no  uma tecnologia essencial em diversos tipos de aplicações de suporte à  decisão e sistemas para executivos.  &lt;/div&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;Citar uma outra visão geral de &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt; é um&lt;span style="font-size:100%;"&gt;&lt;strong&gt; Business      Intelligence (BI) &lt;/strong&gt;&lt;/span&gt;como citei pouco atrás&lt;/div&gt;&lt;div face="arial" style="text-align: justify;"&gt;&lt;em&gt;             &lt;/em&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;             &lt;ul&gt;&lt;li&gt;                 &lt;p align="left"&gt;É um processo de coleta, transformação, análise e          distribuição de dados para melhorar a decisão de negócios;&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                 &lt;p align="left"&gt;Sua infra-estrutura tecnológica é composta de &lt;em&gt;data          warehouses&lt;/em&gt; ou &lt;em&gt;data marts&lt;/em&gt;, ferramentas &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; EIS&lt;/span&gt;, &lt;em style="font-weight: bold;"&gt;data  mining&lt;/em&gt;, consultas         e relatórios e &lt;span style="font-weight: bold;"&gt;software&lt;/span&gt; de visualização  dos dados;&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                 &lt;p align="left"&gt;Os bancos de dados são a infra-estrutura básica de          qualquer sistema de &lt;em style="font-weight: bold;"&gt;business intelligence&lt;/em&gt;. São neles que vão  estar armazenados os         dados que serão transformados em  informações competitivas.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;PT-BR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="color:black;"&gt;Hoje &lt;b&gt;OLAP&lt;/b&gt; é um dos muitos componentes do &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;Framework&lt;/span&gt;&lt;/b&gt;&lt;/em&gt; de &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;Business&lt;/span&gt;&lt;/b&gt;&lt;/em&gt;&lt;b&gt; &lt;em&gt;&lt;span style=""&gt;Intelligence&lt;/span&gt;&lt;/em&gt;&lt;/b&gt;&lt;em&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;/em&gt; assim como outras tecnologias de &lt;b&gt;Suporte à Decisão&lt;/b&gt;, tais como: &lt;b&gt;visualização de dados&lt;/b&gt;, &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;data mining&lt;/span&gt;&lt;/b&gt;&lt;/em&gt;,&lt;b&gt; &lt;em&gt;&lt;span style=""&gt;data warehousing&lt;/span&gt;&lt;/em&gt;&lt;/b&gt;. Alguns fornecedores têm feito o esforço de incluir na sua linha de produtos estas tecnologias de suporte à decisão, outros fornecedores optaram por um produto aberto formando parcerias com fornecedores de produtos complementares.&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="color:black;"&gt;Muitas outras tecnologias de suporte à decisão devem se integrar com a tecnologia &lt;b&gt;OLAP&lt;/b&gt;, incluindo pacotes de análise estatística, sistemas de informações geográficas (&lt;b&gt;GIS&lt;/b&gt;), e ferramentas de visualização de dados.&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;"&gt;&lt;span style="color:black;"&gt;A maioria de vendedores de servidores &lt;b&gt;OLAP&lt;/b&gt; oferecem &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;add-ins&lt;/span&gt;&lt;/b&gt;&lt;/em&gt; para planilha eletrônica como opção de &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;front-end&lt;/span&gt;&lt;/b&gt;&lt;/em&gt;, possibilitando, com isto, apresentar dados multidimensionais via planilha eletrônica. A principal vantagem desta abordagem é que ela combina a exibição flexível, a força em formatação e os cálculos para fins específicos das planilhas com o gerenciamento de dados, cálculos e performance da tecnologia de banco de dados multidimensionais. Os fornecedores de servidores &lt;b&gt;OLAP&lt;/b&gt; só precisam produzir diferentes versões de seus &lt;em&gt;&lt;b&gt;&lt;span style=""&gt;add-ins&lt;/span&gt;&lt;/b&gt;&lt;/em&gt; para cada nova versão da planilha. &lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;&lt;p style="font-family: arial; text-align: center;"&gt;&lt;b&gt;Modelo de Dados&lt;/b&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-family: arial;font-family:arial;"&gt; Em um modelo de dados &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt;, a informação é conceitualmente organizada em cubos que armazenam valores quantitativos ou medidas. Dentro de cada dimensão de um modelo &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt;, os dados podem ser  organizados em uma hierarquia que define diferentes níveis de detalhe.  Por exemplo, dentro da dimensão tempo, você poderá ter uma hierarquia  representando os níveis anos, meses, e dias. Da mesma forma, a dimensão  região poderá ter os níveis país, região, estado e cidade. Assim, um  usuário visualizando dados em um modelo &lt;span style="font-weight: bold;"&gt;OLAP&lt;/span&gt; irá navegar para cima  (&lt;span style="font-weight: bold;"&gt;drill up&lt;/span&gt;) ou para baixo (&lt;span style="font-weight: bold;"&gt;drill down)&lt;/span&gt; entre níveis para visualizar  informação com maior ou menor nível de detalhe sem a menor dificuldade.  &lt;span style="font-weight: bold;"&gt;Algumas Aplicações&lt;/span&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;A aplicação do &lt;span style="font-weight: bold;"&gt;OLAP &lt;/span&gt;é bastante diversificada e seu uso encontra-se em  diversas áreas de uma empresa. Alguns tipos de aplicação aonde a  tecnologia é empregada são:&lt;/p&gt;&lt;div style="font-family: arial; text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;- Finanças Análise de &lt;span style="font-weight: bold;"&gt;L&amp;amp;P&lt;/span&gt;, Relatórios &lt;span style="font-weight: bold;"&gt;L&amp;amp;P&lt;/span&gt;, Orçamento, Análise de Balanço, Fluxo de Caixa, Contas a Receber, …&lt;/p&gt;&lt;div style="font-family: arial; text-align: justify;"&gt; &lt;/div&gt;&lt;p face="arial" style="font-family: arial; text-align: justify;"&gt;- Vendas Análise de vendas (por região, produto, vendedor, etc.),  Previsões, Lucratividade de Cliente/Contrato, Análise de Canais de  Distribuição, ….&lt;/p&gt;&lt;div style="font-family: arial; text-align: justify;"&gt; &lt;/div&gt;&lt;p face="arial" style="text-align: justify;"&gt;- Marketing Análise de Preço/Volume, Lucratividade de Produto, Análise de Mercados, …&lt;/p&gt;&lt;div style="font-family: arial; text-align: justify;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify; font-family: arial;font-family:arial;"&gt;- Recursos Humanos Análise de Benefícios, Projeção de Salários,  Análise de "&lt;span style="font-weight: bold;"&gt;Headcount&lt;/span&gt;", … Manufatura Gerência de Estoque, Cadeia de  Fornecimento, Planejamento de Demanda, Análise de custos de  matéria-prima.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-5190707946677467216?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/J5DS_2P9U4I" height="1" width="1"/&gt;</description><media:thumbnail url="http://4.bp.blogspot.com/_W4mx9wreaj4/TVBV7P5dQ7I/AAAAAAAAAKQ/6HNizHpAqv0/s72-c/OLAP.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2011/02/tecnologia-olap.html</feedburner:origLink></item><item><title>Banco de Dados Distribuídos</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/pvrl14aAPqc/banco-de-dados-distribuidos.html</link><category>Banco de Dados Distribuídos</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Thu, 27 Jan 2011 08:20:34 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-4056805611319479411</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_W4mx9wreaj4/TUGakwwGjdI/AAAAAAAAAKE/IK1HFzWqBCM/s1600/computadoresjuntos.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 271px;" src="http://1.bp.blogspot.com/_W4mx9wreaj4/TUGakwwGjdI/AAAAAAAAAKE/IK1HFzWqBCM/s400/computadoresjuntos.jpg" alt="" id="BLOGGER_PHOTO_ID_5566900570759269842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Bom vou hoje falar a você um pouco mais sobre &lt;b&gt;Banco de Dados Distribuído&lt;/b&gt; (&lt;b&gt;BDD&lt;/b&gt;) ele é uma coleção de vários &lt;span style="font-weight: bold;"&gt;Base de Dados&lt;/span&gt; logicamente inter-relacionados, distribuídos por uma rede de computadores. Existem dois tipos de banco de dados distribuídos, os &lt;i&gt;homogêneos&lt;/i&gt; e os &lt;i&gt;heterogêneos&lt;/i&gt;.  Os homogêneos são compostos pelos mesmos bancos de dados, já os  Heterogêneos são aqueles que são compostos por mais de um tipo de banco  de dados.&lt;/p&gt;&lt;div face="arial" style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Melhor explicando num banco de dados distribuídos os arquivos podem estar replicados ou  fragmentados, esses dois tipos podem ser encontrados aos longos dos nós  do sistema de BDD's. Quando os dados se encontram replicados, existe  uma cópia de cada um dos dados em cada nó, tornando as bases iguais (ex:  tabela de produtos de uma grande loja). Já na fragmentação, os dados se  encontram divididos ao longo do sistema, ou seja a cada nó existe uma  base de dados diferente se olharmos de uma forma local, mas se  analisarmos de uma forma global os dados são vistos de uma forma única,  pois cada nó possui um catálogo que contém cada informação dos dados dos  bancos adjacentes.&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;Podendo a replicação dos dados pode se dar de maneira síncrona ou assíncrona.  No caso de replicação síncrona, cada transação é dada como concluída  quando todos os nós confirmam que a transação local foi bem sucedida. Na  replicação assíncrona, o nó principal executa a transação enviando  confirmação ao solicitante e então encaminha a transação aos demais nós.&lt;/p&gt;&lt;h2  style="font-weight: bold; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="mw-headline" id="Arquitetura_B.C3.A1sica"&gt;Arquitetura Básica&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;dl style="text-align: justify; font-family: arial;"&gt;&lt;dt&gt;Aplicações Locais&lt;/dt&gt;&lt;dd&gt;aplicações que não requerem dados de outros lugares.&lt;/dd&gt;&lt;dt&gt;Aplicações Globais&lt;/dt&gt;&lt;dd&gt;aplicações que requerem dados de outros lugares.&lt;/dd&gt;&lt;/dl&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Alguns cuidados com a Distribuição de Dados&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: justify; font-family: arial;"&gt;&lt;li&gt;&lt;b&gt;A distribuição é transparente&lt;/b&gt; — usuários devem poder  interagir com o sistema como se ele fosse um único sistema lógico. Isso  se aplica ao desempenho do sistema, métodos de acesso, entre outras  coisas.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Transações são transparentes&lt;/b&gt; — cada transação deve manter a  integridade do banco de dados dentre os múltiplos bancos de dados.  Transações devem também ser divididas em subtransações, cada  subtransação afetando um sistema de banco de dados...&lt;/li&gt;&lt;/ul&gt;&lt;h2  style="font-weight: bold; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="mw-headline" id="Vantagens_de_bancos_de_dados_distribu.C3.ADdos"&gt;Vantagens de Bancos de Dados Distribuídos&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;ul style="text-align: justify; font-family: arial;"&gt;&lt;li&gt;&lt;b&gt;Reflete a estrutura organizacional&lt;/b&gt; — fragmentos do banco de dados estão localizados nos departamentos que se relacionam com os dados que estes persistem.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Autonomia Local&lt;/b&gt; — um departamento pode controlar seus dados (já que é o mais familiarizado com estes).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Maior disponibilidade&lt;/b&gt; — uma falha em um banco de dados afetará somente um fragmento, ao invés do banco de dados inteiro.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Melhor performance&lt;/b&gt; — os dados estão localizados próximo do  local de maior demanda e os sistemas de banco de dados por si só são  paralelizáveis, permitindo carregar no banco de dados para o  balanceamento entre servidores (a elevada carga em um módulo do banco de  dados não irá afetar os outros módulos de banco de dados em um banco de  dados distribuído).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Econômico&lt;/b&gt; — custa menos criar uma rede de pequenos computadores com o mesmo poder que um único computador maior.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Modularidade&lt;/b&gt; — sistemas podem ser modificados, adicionados ou  removidos do banco de dados distribuído sem afetar os outros módulos  (sistemas).&lt;/li&gt;&lt;/ul&gt;&lt;h2  style="font-weight: bold; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="mw-headline" id="Desvantagens_de_banco_de_dados_distribu.C3.ADdos"&gt;Desvantagens de banco de dados distribuídos&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div style="text-align: justify; font-family: arial;"&gt; &lt;/div&gt;&lt;ul style="text-align: justify; font-family: arial;"&gt;&lt;li&gt;&lt;b&gt;Complexidade&lt;/b&gt; — trabalho extra deve ser feito pelos &lt;span style="font-weight: bold;"&gt;DBAs&lt;/span&gt;  para garantir que a natureza da distribuição do sistema é transparente.  Trabalho extra deve ser feito para manter sistemas múltiplos  diferentes, ao invés de um único grande. Design de banco de dados extra  deve também ser feito para levar em conta a natureza desconectada do  banco de dados - por exemplo, joins tornam-se proibitivamente caros  quando são rodados entre múltiplas plataformas.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Implantação mais cara&lt;/b&gt; — o aumento da complexidade e uma infraestrura mais extensa significa custo extra de trabalho&lt;/li&gt;&lt;li&gt;&lt;b&gt;Segurança&lt;/b&gt; — fragmentos de banco de dados remotos devem ser  seguros e, como eles não são centralizados então os lugares remotos  também devem ser seguros. A infraestrutura também deve ser segura (por  exemplo, pela encriptação dos links de rede entre os lugares remotos).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Difícil de manter a integridade&lt;/b&gt; — em sistemas distribuídos,  reforçar a integridade ao longo de uma rede pode exigir demais dos  recursos da rede para ser viável.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Inexperiência&lt;/b&gt; — pode ser difícil trabalhar com banco de dados  distribuídos e como é uma área relativamente nova ainda não há tantos  casos (ou experiências) práticos de seu uso disponíveis como exemplo.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Falta de padrões&lt;/b&gt; – ainda não há metodologias e ferramentas para ajudar usuários a converter um SGBD centralizado para um SGBD distribuído.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Design do banco de dados mais complexo&lt;/b&gt; – além das  dificuldades normais, o design de um banco de dados distribuídos tem que  considerar a fragmentação dos dados, alocação dos fragmentos em lugares  específicos e a replicação de dados.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="single_a_q" rel="question"&gt;&lt;span&gt;Espero que vocês tenham gostado e entendido um pouco mais sobre (BDD) ou melhor falando Bando de Dados Distribuídos.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-4056805611319479411?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/pvrl14aAPqc" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/_W4mx9wreaj4/TUGakwwGjdI/AAAAAAAAAKE/IK1HFzWqBCM/s72-c/computadoresjuntos.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2011/01/banco-de-dados-distribuidos.html</feedburner:origLink></item><item><title>Utilizando MD5 em Criptográfia</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/H1N8GUfe7G0/utilizando-md5-em-criptografia.html</link><category>Funções de Criptografia</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Mon, 27 Dec 2010 14:15:32 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-7335442110693328929</guid><description>&lt;div align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_W4mx9wreaj4/TRkPY7kM-_I/AAAAAAAAAJ8/S9PUu9Y3CVU/s1600/md5555.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 278px; height: 51px;" src="http://3.bp.blogspot.com/_W4mx9wreaj4/TRkPY7kM-_I/AAAAAAAAAJ8/S9PUu9Y3CVU/s400/md5555.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5555488536319032306" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Aqui desenvolvi com algumas pesquisas e montei umas &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Function&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; para &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; para validação de logins ao &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Banco de Dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; utilizando &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;MD5&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, podem notar ele originalmente foi feito apenas para alimentar o md5 database md5.rednoize.com, porém você também pode utiliza-lo para efetuar pesquisas.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Código &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;:&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;span style="color:#000000;"&gt;&lt;code&gt;#!/usr/bin/php -q&lt;br /&gt;&lt;span style="color:#0000BB;"&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#FF8000;"&gt;//Alterar a linha para #!/pathdophp/php -q -d short_open_tag=on&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$servidor &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"md5.rednoize.com"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;/span&gt;&lt;span style="color:#FF8000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#007700;"&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\033[32m"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"------------------------------------\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"- md5hash - http://md5.rednoize.com -\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"- Criado por: Elder Stroparo     -\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"- E-Mail: seuemail[arroba]email.com     -\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"- Seg, 27 de Dezembro de 2010         -\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"------------------------------------\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;settype&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$template&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"string"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#FF8000;"&gt;//$template = "1234567890abcdefghijklmnopqrstuvwxyz"; //Letras e Numeros.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$template &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"123456789"&lt;/span&gt;&lt;span style="color:#007700;"&gt;; &lt;/span&gt;&lt;span style="color:#FF8000;"&gt;//Somente numeros.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#007700;"&gt;function &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;GetRandomString&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$length&lt;/span&gt;&lt;span style="color:#007700;"&gt;) {&lt;br /&gt;       global &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$template&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;settype&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$length&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"integer"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;settype&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rndstring&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"string"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;settype&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$a&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"integer"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;       &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;settype&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$b&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"integer"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;       for (&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$a &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;0&lt;/span&gt;&lt;span style="color:#007700;"&gt;; &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$a &lt;/span&gt;&lt;span style="color:#007700;"&gt;&amp;lt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$length&lt;/span&gt;&lt;span style="color:#007700;"&gt;; &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$a&lt;/span&gt;&lt;span style="color:#007700;"&gt;++) {&lt;br /&gt;               &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$b &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;rand&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;0&lt;/span&gt;&lt;span style="color:#007700;"&gt;, &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;strlen&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$template&lt;/span&gt;&lt;span style="color:#007700;"&gt;) - &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;1&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;               &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rndstring &lt;/span&gt;&lt;span style="color:#007700;"&gt;.= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$template&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$b&lt;/span&gt;&lt;span style="color:#007700;"&gt;];&lt;br /&gt;       }&lt;br /&gt;       return &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rndstring&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;}&lt;br /&gt;if (&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argc&lt;/span&gt;&lt;span style="color:#007700;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;3&lt;/span&gt;&lt;span style="color:#007700;"&gt;) {&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"Para \"quebrar\" uma md5 use "&lt;/span&gt;&lt;span style="color:#007700;"&gt;.&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;0&lt;/span&gt;&lt;span style="color:#007700;"&gt;].&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;" -m\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"Para adicionar uma nova senha ao banco de dados (md5.rednoise.com) utilize: "&lt;/span&gt;&lt;span style="color:#007700;"&gt;.&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;0&lt;/span&gt;&lt;span style="color:#007700;"&gt;].&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;" -q\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"[#] Alimentando o banco de dados...\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"[!] Para finalizar pressione CTRL+C\r\n\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;while (&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;1&lt;/span&gt;&lt;span style="color:#007700;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rand &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;GetRandomString&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;7&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rand&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;" - "&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;file_get_contents&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"http://&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$servidor&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;/?p&amp;amp;q=&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$rand&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;if (&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;1&lt;/span&gt;&lt;span style="color:#007700;"&gt;] == &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"-m"&lt;/span&gt;&lt;span style="color:#007700;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$q &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;2&lt;/span&gt;&lt;span style="color:#007700;"&gt;];&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"[!] Consultando servidor..."&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"[*] A senha é: "&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;file_get_contents&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"http://&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$servidor&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;/?p&amp;amp;q=&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$q&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;&amp;amp;b=MD5-Search"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;}&lt;br /&gt;if (&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;1&lt;/span&gt;&lt;span style="color:#007700;"&gt;] == &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"-q"&lt;/span&gt;&lt;span style="color:#007700;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$q &lt;/span&gt;&lt;span style="color:#007700;"&gt;= &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$argv&lt;/span&gt;&lt;span style="color:#007700;"&gt;[&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;2&lt;/span&gt;&lt;span style="color:#007700;"&gt;];&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"[*] Senha &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$q&lt;/span&gt;&lt;span style="color:#DD0000;"&gt; - md5: "&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#0000BB;"&gt;file_get_contents&lt;/span&gt;&lt;span style="color:#007700;"&gt;(&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"http://&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$servidor&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;/?p&amp;amp;q=&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;$q&lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"&lt;/span&gt;&lt;span style="color:#007700;"&gt;);&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n[!] Adicionada com sucesso!"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color:#DD0000;"&gt;"\r\n"&lt;/span&gt;&lt;span style="color:#007700;"&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000BB;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/code&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom espero que tenham gostando deste exemplo em &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PHP, &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;ai está um modelo de como utilizar o &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;MD5&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, ele está alimentando o bando de dados e gerando uma sequencia diretamente do servidor &lt;a href="http://md5.rednoize.com/"&gt;http://md5.rednoize.com&lt;/a&gt; (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;MD5 HASH&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-7335442110693328929?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/H1N8GUfe7G0" height="1" width="1"/&gt;</description><media:thumbnail url="http://3.bp.blogspot.com/_W4mx9wreaj4/TRkPY7kM-_I/AAAAAAAAAJ8/S9PUu9Y3CVU/s72-c/md5555.gif" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/12/utilizando-md5-em-criptografia.html</feedburner:origLink></item><item><title>Funções de Criptográfia</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/z7dpGJL6o3c/funcoes-de-criptografia.html</link><category>Funções de Criptografia</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Mon, 27 Dec 2010 10:43:35 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-5266700901581804726</guid><description>&lt;div style="text-align: justify;"&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_W4mx9wreaj4/TRizK0F0euI/AAAAAAAAAJc/im3i-SN6Q5s/s1600/cripto.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 68px;" src="http://2.bp.blogspot.com/_W4mx9wreaj4/TRizK0F0euI/AAAAAAAAAJc/im3i-SN6Q5s/s320/cripto.JPG" alt="" id="BLOGGER_PHOTO_ID_5555387138724625122" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Bom vou falar hoje um pouco sobre o termo &lt;span style="font-weight: bold;"&gt;Funções de&lt;/span&gt; &lt;/span&gt;&lt;strong style="font-family: arial;"&gt;Criptográfia &lt;/strong&gt;&lt;span style="font-family:arial;"&gt;que é meios de proteger as informações armazenadas em um &lt;span style="font-weight: bold;"&gt;Banco de Dados&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;p style="text-align: justify;" face="arial"&gt;Os &lt;strong&gt;Banco de Dados&lt;/strong&gt; são muito importante eles  utilizam para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal. Para tal existem diversos tipos, os quais variam em complexidade e sobre tudo em segurança.&lt;/p&gt;&lt;p style="text-align: justify;" face="arial"&gt;A &lt;strong&gt;Criptográfia &lt;/strong&gt;são técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário, oque atorna difícil de ser lida por alguém não autorizado. Assimsendo, só o receptor da mensagem pode ler a informação com facilidade.&lt;/p&gt;&lt;p style="text-align: justify;" face="arial"&gt;&lt;strong&gt;Visão Geral:&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; a criptografia tem quatro objetivos principais&lt;/p&gt;&lt;p style="text-align: justify;" face="arial"&gt;&lt;strong&gt;confidencialidade da mensagem&lt;/strong&gt;: só o destinatário autorizado deve ser capaz de extrair o conteúdo da mensagem da sua forma cifrada. Além disso, a obtenção de informação sobre o conteúdo da mensagem (como uma distribuição estatística de certos caracteres) não deve ser possível, uma vez que, se o for, torna mais fácil a análise criptográfica.&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;strong&gt;integridade da mensagem&lt;/strong&gt;: o destinatário deverá ser capaz de determinar se a mensagem foi alterada durante a transmissão.&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;strong&gt;autenticação do remetente&lt;/strong&gt;: o destinatário deverá ser capaz de identificar o remetente e verificar que foi mesmo ele quem enviou a mensagem.&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;strong&gt;não-repúdio ou irretratabilidade do emissor&lt;/strong&gt;: não deverá ser possível ao emissor negar a autoria da mensagem.&lt;br /&gt;&lt;br /&gt;Nem todos os sistemas ou algoritmos criptográficos são utilizados para atingir todos os objetivos listados acima. Normalmente, existem algoritmos específicos para cada uma destas funções. Mesmo em sistemas criptográficos bem concebidos, bem implementados e usados adequadamente, alguns dos objetivos acima não são práticos (ou mesmo desejáveis) em algumas circunstâncias. Por exemplo, o remetente de uma mensagem pode querer permanecer anônimo, ou o sistema pode destinar-se a um ambiente com recursos computacionais limitados.&lt;br /&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Comentando melhor sobre as funções de criptográfia Criptografia&lt;/p&gt;&lt;p style="font-family: arial; text-align: center;"&gt;&lt;strong&gt;Criptografia, MD2, MD4, SHA, Hash, MD5, MD6 (não utilizavél).&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;strong&gt;Criptografia&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;(&lt;strong&gt;Do Grego kryptós&lt;/strong&gt;, "&lt;strong&gt;escondido&lt;/strong&gt;", &lt;strong&gt;e gráphein&lt;/strong&gt;, "&lt;strong&gt;escrita&lt;/strong&gt;") é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da "chave secreta"), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade. É um ramo da Matemática, parte da Criptologia.&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;strong&gt;MD2&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;é um algoritmo de hash que cria um valor de hash de 128 bits funciona semelhante ao algoritmo de &lt;strong&gt;MD4 &lt;/strong&gt;e foram desenvolvidos pela &lt;strong&gt;RSA Data Security, Inc&lt;/strong&gt;.&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;strong&gt;MD4&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;é um algoritmo de hash que cria um valor de hash de 128 bits funciona semelhante ao algoritmo de &lt;strong&gt;MD2&lt;/strong&gt; e foram desenvolvidos pela &lt;strong&gt;RSA Data Security, Inc&lt;/strong&gt;.&lt;br /&gt;Ele foi desenvolvido em 1990, mas um ano após foi sucedido pelo &lt;strong&gt;MD5&lt;/strong&gt; por possuir falhas de segurança. A lógica desse algoritmo influenciou a criação de outros algoritmos como o &lt;strong&gt;MD5&lt;/strong&gt;, &lt;strong&gt;SHA-1 &lt;/strong&gt;e o &lt;strong&gt;RIPEMD&lt;/strong&gt;. O &lt;strong&gt;MD4&lt;/strong&gt; também é usado para computar o hash de senhas em sistemas &lt;strong&gt;Microsoft NT&lt;/strong&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;SHA&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;(&lt;span style="font-weight: bold;"&gt;Secure Hash Algorithm&lt;/span&gt;) está relacionada com as funções criptográficas. A função mais usada nesta família, a SHA-1, é usada numa grande variedade de aplicações e protocolos de segurança, incluindo &lt;span style="font-weight: bold;"&gt;TLS, SSL, PGP, SSH, S/MIME e IPSec. SHA-1&lt;/span&gt; foi considerado o sucessor do &lt;span style="font-weight: bold;"&gt;MD5&lt;/span&gt;. Ambos têm vulnerabilidades comprovadas. Em algumas correntes, é sugerido que o&lt;span style="font-weight: bold;"&gt; SHA-256&lt;/span&gt; ou superior seja usado para tecnologia crítica. Os algoritmos &lt;span style="font-weight: bold;"&gt;SHA&lt;/span&gt; foram desenhados pela &lt;span style="font-weight: bold;"&gt;National Security Agency&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;NSA&lt;/span&gt;) e publicados como um padrão do governo &lt;span style="font-weight: bold;"&gt;Norte-Americano&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;O primeiro membro da família, publicado em 1993, foi oficialmente chamado &lt;span style="font-weight: bold;"&gt;SHA&lt;/span&gt;; no entanto, é frequentemente chamado &lt;span style="font-weight: bold;"&gt;SHA-0&lt;/span&gt; para evitar confusões com os seus sucessores. Dois anos mais tarde, &lt;span style="font-weight: bold;"&gt;SHA-1&lt;/span&gt;, o primeiro sucessor do &lt;span style="font-weight: bold;"&gt;SHA&lt;/span&gt;, foi publicado. Desde então quatro variantes foram lançadas com capacidades de saída aumentadas e um design ligeiramente diferente: &lt;span style="font-weight: bold;"&gt;SHA-224&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;SHA-256, SHA-384, e SHA-512&lt;/span&gt; — por vezes chamadas de &lt;span style="font-weight: bold;"&gt;SHA-2&lt;/span&gt;.&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Hash&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (&lt;span style="font-weight: bold;"&gt;0 a 9 e A a F&lt;/span&gt;), representando &lt;span style="font-weight: bold;"&gt;1/2 byte&lt;/span&gt; cada. O conceito teórico diz que "&lt;span style="font-weight: bold;"&gt;hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de &lt;span style="font-weight: bold;"&gt;hash&lt;/span&gt; retornar à informação original.&lt;br /&gt;&lt;br /&gt;Como a sequência do hash é limitada, muitas vezes não passando de &lt;span style="font-weight: bold;"&gt;512 bits&lt;/span&gt;, existem colisões (sequências iguais para dados diferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.&lt;br /&gt;&lt;br /&gt;Uma função de &lt;span style="font-weight: bold;"&gt;hash&lt;/span&gt; recebe um valor de um determinado tipo e retorna um código para ele. Enquanto o ideal seria gerar identificadores únicos para os valores de entrada, isso normalmente não é possível: na maioria dos casos, o contra-domínio de nossa função é muito menor do que o seu domínio, ou seja, x (&lt;span style="font-weight: bold;"&gt;o tipo de entrada&lt;/span&gt;) pode assumir uma gama muito maior de valores do que  (&lt;span style="font-weight: bold;"&gt;o resultado da função de hash&lt;/span&gt;).&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;MD5&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;(&lt;span style="font-weight: bold;"&gt;Message-Digest algorithm 5&lt;/span&gt;) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela &lt;span style="font-weight: bold;"&gt;RSA Data Security, Inc&lt;/span&gt;., descrito na &lt;span style="font-weight: bold;"&gt;RFC 1321&lt;/span&gt;, e muito utilizado por softwares com protocolo ponto-a-ponto (&lt;span style="font-weight: bold;"&gt;P2P, ou Peer-to-Peer, em inglês&lt;/span&gt;) na verificação de integridade de arquivos e logins.&lt;br /&gt;&lt;br /&gt;Foi desenvolvido em 1991 por &lt;span style="font-weight: bold;"&gt;Ronald Rivest&lt;/span&gt; para suceder ao &lt;span style="font-weight: bold;"&gt;MD4&lt;/span&gt; que tinha alguns problemas de segurança. Por ser um algoritmo unidirecional, uma hash &lt;span style="font-weight: bold;"&gt;md5&lt;/span&gt; não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida). O &lt;span style="font-weight: bold;"&gt;MD5 &lt;/span&gt;também é usado para verificar a integridade de um arquivo através, por exemplo, do programa md5sum, que cria a hash de um arquivo. Isto pode-se tornar muito útil para downloads de arquivos grandes, para programas &lt;span style="font-weight: bold;"&gt;P2P&lt;/span&gt; que constroem o arquivo através de pedaços e estão sujeitos a corrupção dos mesmos. Como autenticação de login é utilizada em vários sistemas operacionais unix e em muitos sites com autentificação.&lt;br /&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;MD6&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;sobre a &lt;span style="font-weight: bold;"&gt;Criptografia MD6 MD6 &lt;/span&gt;(&lt;span style="font-weight: bold;"&gt;Message-Digest algorithm 6&lt;/span&gt;) é uma função hash criptográfico. Ele usa uma árvore de &lt;span style="font-weight: bold;"&gt;Merkle&lt;/span&gt;-como a estrutura, e em 2008, &lt;span style="font-weight: bold;"&gt;Ronald Rivest&lt;/span&gt; e outros, publicaram uma nova versão do algoritmo o &lt;span style="font-weight: bold;"&gt;MD6&lt;/span&gt; com hash de tamanhos &lt;span style="font-weight: bold;"&gt;224, 256, 384 ou 512 bytes&lt;/span&gt;. O algoritmo &lt;span style="font-weight: bold;"&gt;MD6&lt;/span&gt; iria participar do concurso para ser o novo algoritmo &lt;span style="font-weight: bold;"&gt;SHA-3&lt;/span&gt;, porém após removeu-o do concurso por considera-lo muito lento, anuncionado que os computadores de hoje são muito lentos para usar o &lt;span style="font-weight: bold;"&gt;MD6&lt;/span&gt;.&lt;/p&gt;&lt;p  style="text-align: center;font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Em breve estarei postando as funções de criptográfia de acordo com cada algoritimo&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-5266700901581804726?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/z7dpGJL6o3c" height="1" width="1"/&gt;</description><media:thumbnail url="http://2.bp.blogspot.com/_W4mx9wreaj4/TRizK0F0euI/AAAAAAAAAJc/im3i-SN6Q5s/s72-c/cripto.JPG" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/12/funcoes-de-criptografia.html</feedburner:origLink></item><item><title>Procedures e Funções em PL/SQL</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/kQh8ZIUmBwg/procedures-e-funcoes-em-plsql.html</link><category>Procedures e Funções em PL/SQL</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Mon, 20 Dec 2010 07:34:58 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-8706719340071779559</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_W4mx9wreaj4/TQ9itvIau6I/AAAAAAAAAJQ/dIq4Ns6e3Kw/s1600/pl-sql.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 148px;" src="http://2.bp.blogspot.com/_W4mx9wreaj4/TQ9itvIau6I/AAAAAAAAAJQ/dIq4Ns6e3Kw/s320/pl-sql.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5552765403456519074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Bom pessoal a pedido de algumas pessoas está ai o tutorial sobre &lt;strong&gt;PL/SQL&lt;/strong&gt; de uma maneira bem simples, utilizando a linguagem PL/SQL para fazer &lt;strong&gt;Procedures&lt;/strong&gt;, e &lt;strong&gt;Functions.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Bom então vamos a luta.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;Procedures e Funções&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Uma função nada mais é do que pedaços de código, definidos pelo utillizador ou pré-definidos pela linguagem, utilizados para manipular dados. Aceitam um ou mais argumentos, devolvendo um valor. O argumento é uma constante, variável ou o nome de uma coluna. O valor devolvido serve para classificar a função: será numérica se o valor devolvido é numérico, char se devolve um char. As funções são utilizadas para manipular dados, tornando mais potentes as consultas. Dividem-se em três grandes grupos: manipulação de linhas, manipulação de grupos de linhas e funções analíticas. Dentro do primeiro grupo há funções para manipular caracteres, números, datas e funções que permitem converter dados de um tipo para outro. As funções de grupo permitem obter um valor que depende do grupo de linhas, por exemplo uma média, variância ou um máximo. As funções analíticas misturam os dois tipos anteriores: devolvem um valor por cada linha, mas esse valor depende do grupo.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;E uma procedure nada mais é do um bloco &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; nomeado. A grande vantagem sobre um bloco &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; anônimo é que pode ser compilado e armazenado no banco de dados como um objeto de schema. Graças a essa característica as procedures são de fácil manutenção, o código é reutilizável e permitem que trabalhemos com módulos de programa.&lt;br /&gt;&lt;br /&gt;Uma procedure é, então, um bloco &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; nomeado que pode aceitar argumentos (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;também chamado de parâmetros&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) e pode ser chamada por um programa, uma sessão &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ou uma &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;trigger&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;Durante a instalação do banco de dados Oracle um script é executado automaticamente e cria toda a estrutura necessária para que as procedures sejam executadas. Eventualmente esse procedimento automático pode falhar devido a alguma falha física no disco rígido, nesse caso o usuário &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SYS&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; pode recriar a estrutura através do script &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SQL DBMSSTDX.SQL.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Para criar uma procedure o usuário precisa ter o privilégio de sistema &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;CREATE PROCEDURE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, para criar a procedure em outros schemas o usuário deve ter o privilégio de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;CREATE ANY&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PROCEDURE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. Este é um ponto muito interessante sobre as procedures, os privilégios para criação de procedures têm que ser concedidos explicitamente, ou seja, não pode ser adquirido através de roles.&lt;br /&gt;&lt;br /&gt;Para executar uma procedure externa é necessário ter o privilégio de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;EXECUTE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. Caso queira alterar a procedure de outro schema deve ter o privilégio de sistema &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;ALTER ANY PROCEDURE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;A sintaxe básica de uma procedure é:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;CREATE [OR REPLACE] PROCEDURE [schema.]nome_da_procedure&lt;br /&gt;[(parâmetro1 [modo1] tipodedado1,&lt;br /&gt;parâmetro2 [modo2] tipodedado2,&lt;br /&gt;...)]&lt;br /&gt;IS|AS&lt;br /&gt;Bloco PL/SQL&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Onde:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;REPLACE &lt;/strong&gt;- indica que caso a procedure exista ela será eliminada e substituída pela nova versão criada pelo comando;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BLOCO PL/SQL&lt;/strong&gt; - inicia com uma cláusula &lt;strong&gt;BEGIN&lt;/strong&gt; e termina com &lt;strong&gt;END &lt;/strong&gt;ou &lt;strong&gt;END&lt;/strong&gt; nome_da_procedure;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOME_DA_PROCEDURE&lt;/strong&gt; - indica o nome da procedure;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PARÂMETRO&lt;/strong&gt; - indica o nome da variável &lt;strong&gt;PL/SQL&lt;/strong&gt; que é passada na chamada da procedure ou o nome da variável que retornará os valores da procedure ou ambos. O que irá conter em parâmetro depende de &lt;strong&gt;MODO&lt;/strong&gt;;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MODO&lt;/strong&gt; - Indica que o parâmetro é de entrada (&lt;strong&gt;IN&lt;/strong&gt;), saída (&lt;strong&gt;OUT&lt;/strong&gt;) ou ambos (&lt;strong&gt;IN OUT&lt;/strong&gt;). É importante notar que&lt;strong&gt; IN&lt;/strong&gt; é o modo default, ou seja, se não dissermos nada o modo do nosso parâmetro será, automaticamente, &lt;strong&gt;IN&lt;/strong&gt;;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TIPODEDADO&lt;/strong&gt; - indica o tipo de dado do parâmetro. Pode ser qualquer tipo de dado do SQL ou do &lt;strong&gt;PL/SQL&lt;/strong&gt;. Pode usar referencias como &lt;strong&gt;%TYPE&lt;/strong&gt;, &lt;strong&gt;%ROWTYPE&lt;/strong&gt; ou qualquer tipo de dado escalar ou composto. Atenção: não é possível fazer qualquer restrição ao tamanho do tipo de dado neste ponto.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IS|AS&lt;/strong&gt; - a sintaxe do comando aceita tanto&lt;strong&gt; IS&lt;/strong&gt; como &lt;strong&gt;AS&lt;/strong&gt;. Por convenção usamos &lt;strong&gt;IS&lt;/strong&gt; na criação de procedures e &lt;strong&gt;AS&lt;/strong&gt; quando estivermos criando pacotes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BLOCO PL/SQL&lt;/strong&gt; - indica as ações que serão executadas por aquela procedure.&lt;br /&gt;&lt;br /&gt;Vamos ver um exemplo de procedure para ajudar nosso entendimento:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;CREATE OR REPLACE PROCEDURE aumenta_sal (p_empno IN emp.empno%TYPE) IS&lt;br /&gt;BEGIN&lt;br /&gt;UPDATE&lt;br /&gt;scott.emp&lt;br /&gt;SET&lt;br /&gt;sal = sal * 1.10&lt;br /&gt;WHERE&lt;br /&gt;empno = p_empno;&lt;br /&gt;END aumenta_sal;&lt;br /&gt;/&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Neste exemplo estamos criando uma procedure para aumentar o salário de um funcionário em &lt;strong&gt;10%&lt;/strong&gt;. A primeira linha define o &lt;strong&gt;NOME DA PROCEDURE&lt;/strong&gt;, que vai ser &lt;strong&gt;AUMENTA_SAL&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;A linha dois define o parâmetro &lt;strong&gt;P_EMPNO&lt;/strong&gt; no modo &lt;strong&gt;IN&lt;/strong&gt;. Ou seja, vai ser um dado informado na chamada da procedure. Em seguida determinamos que ele será do mesmo tipo e tamanho que a coluna &lt;strong&gt;EMPNO&lt;/strong&gt; da tabela &lt;strong&gt;EMP&lt;/strong&gt;. Isso é feito através da referencia &lt;strong&gt;EMP.EMPNO%TYPE&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Podemos verificar o estado de nossa procedure através de uma simples consulta:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;SELECT object_name, status&lt;br /&gt;FROM user_objects&lt;br /&gt;WHERE object_name LIKE '%AUMENTA%';/&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Agora podemos verificar o funcionamento de nossa procedure:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;strong&gt;&lt;code&gt;&lt;/strong&gt;SELECT empno, sal&lt;br /&gt;FROM scott.emp;&lt;/code&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;EMPNO      SAL&lt;br /&gt;---------&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;7839       5000&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;7698       2850&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;7782       2450&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;CALL AUMENTA_SAL(7839);&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Ou&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;EXECUTE AUMENTA_SAL(7839);&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;SELECT empno, sal  FROM scott.emp;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;     EMPNO        SAL&lt;br /&gt;--------&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;      7839       5500&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;      7698       2850&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;      7782       2450&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Podemos notar que o salário do funcionário 7839 aumentou em 10%.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Funções&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Sintaxe Básica:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;CREATE [OR REPLACE] FUNCTION nome_da_função[( parameter1 [ mode1] datatype1,parameter2 [ mode2] datatype2,. . .)]RETURN tipo_de_dadoIS|ASBloco PL/SQL;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Ao contrário das procedures as funções tem que retornar ao menos um valor.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;CREATE OR REPLACE FUNCTION pega_sal&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;       (p_id IN emp.empno%TYPE)&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;       RETURN NUMBER&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;     IS&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;       v_sal emp.sal%TYPE :=0;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;     BEGIN&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;       SELECT sal&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;         INTO v_sal&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;         FROM scott.emp&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;        WHERE empno = p_id;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;     RETURN v_sal;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;END pega_sal;/&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Executando&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;VARIABLE g_sal NUMBER&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;EXECUTE :g_sal := pega_sal(7839)&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;PRINT g_sal&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Função para calcular CPMF&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;CREATE OR REPLACE FUNCTION cpmf(p_value IN NUMBER)&lt;br /&gt;  RETURN NUMBER IS&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;BEGIN  &lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;RETURN (p_value * 0.038);&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;END&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt; cpmf;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;/&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;SELECT empno, ename, sal, cpmf(sal)&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;FROM scott&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;.emp&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;WHERE deptno = 10;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-8706719340071779559?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/kQh8ZIUmBwg" height="1" width="1"/&gt;</description><media:thumbnail url="http://2.bp.blogspot.com/_W4mx9wreaj4/TQ9itvIau6I/AAAAAAAAAJQ/dIq4Ns6e3Kw/s72-c/pl-sql.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/12/procedures-e-funcoes-em-plsql.html</feedburner:origLink></item><item><title>Mapeamento Objeto Relacional</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/Mmdqjlwwcgk/mapeamento-objecto-relacional.html</link><category>Mapeamento Objeto Relacional</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 09 Jul 2010 18:22:27 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-1277654851187928528</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_W4mx9wreaj4/TDfK9oV7k5I/AAAAAAAAAIE/6qzKGWvvVZM/s1600/mapeamento+ob+relacional.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 190px;" src="http://3.bp.blogspot.com/_W4mx9wreaj4/TDfK9oV7k5I/AAAAAAAAAIE/6qzKGWvvVZM/s320/mapeamento+ob+relacional.png" alt="" id="BLOGGER_PHOTO_ID_5492081430751843218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="" onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;Bom vou falar hoje sobre&lt;b&gt; Mapeamento Objeto Relacional (ORM, O / RM,&lt;/b&gt; e &lt;b&gt;O / R mapeamento)&lt;/b&gt; em  software de computador é uma programação  técnica para conversão de dados incompatíveis entre sistemas do tipo  em banco de dados relacional e orientada objetos  linguagens de programação.&lt;/span&gt; &lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span class="google-src-text" style="direction: ltr; text-align: left;"&gt;This  creates, in effect, a "virtual object database " that can be used from within the programming language.&lt;/span&gt;  Isso cria, de fato, um "virtual objeto de banco de dados"que podem ser usados dentro da linguagem de  programação.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;b style="font-family: arial;"&gt;Mapeamento Objeto Relacional&lt;/b&gt;&lt;span style="font-family:arial;"&gt; é uma técnica de  desenvolvimento utilizada para reduzir a impedância  da programação orientada aos objetos utilizando banco de dados relacionais. As tabelas do banco de dados são representadas  através de classes e os registros de cada tabela  são representados como instâncias das classes correspondentes.&lt;/span&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Bom esta técnica, o programador não precisa se preocupar com os  comandos em linguagem &lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;; ele irá usar uma interface de programação simples que faz todo o trabalho de persistência.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;Não é necessária uma correspondência direta entre as tabelas de dados  e as classes do programa. A relação entre as tabelas onde originam os  dados e o objecto que os disponibiliza é configurada pelo programador,  isolando o código do programa das alterações à organização dos dados nas  tabelas do &lt;span style="font-weight: bold;"&gt;Banco de Dados&lt;/span&gt;.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;A forma como este mapeamento é configurado depende da ferramenta que  estamos a usar. Como exemplo, o programador que use &lt;span style="font-weight: bold;"&gt;Hibernate&lt;/span&gt;  na linguagem &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt; &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; pode  usar ficheiros &lt;span style="font-weight: bold;"&gt;XML&lt;/span&gt;  ou o sistema de anotações  que a linguagem providencia.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-1277654851187928528?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/Mmdqjlwwcgk" height="1" width="1"/&gt;</description><media:thumbnail url="http://3.bp.blogspot.com/_W4mx9wreaj4/TDfK9oV7k5I/AAAAAAAAAIE/6qzKGWvvVZM/s72-c/mapeamento+ob+relacional.png" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/07/mapeamento-objecto-relacional.html</feedburner:origLink></item><item><title>Cliente-Servidor Vantagens e Desvantagens</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/J6IinGX6evA/cliente-servidor-vantagens-e.html</link><category>Cliente-servidor</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 19 Dec 2010 17:11:22 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-1843693495936373420</guid><description>&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom vo citar algumas &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Vantagens&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; e &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Desvantagens&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; do &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Cliente-Servidor&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; para vocês entenderem melhor sobre este assunto o que é bom e não é bom para você que não está apto em &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Banco de Dados &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;que isto é fundamental &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Cliente-Servidor&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Vantagens&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Na maioria dos casos, a arquitetura cliente-servidor permite que os papéis e responsabilidades de um sistema de computação para ser distribuído entre vários computadores independentes que são conhecidos por si só através de uma rede. Isso cria uma vantagem adicional para essa arquitetura: maior facilidade de manutenção. Por exemplo, é possível substituir, reparar, atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam a ser a consciência e não afetado por essa mudança;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Todos os dados são armazenados nos servidores, que geralmente possuem controles de segurança muito maior do que a maioria dos clientes. Servidores podem controlar melhor o acesso e recursos, para garantir que apenas os clientes com as permissões adequadas podem acessar e alterar dados;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Desde o armazenamento de dados é centralizada, as atualizações dos dados são muito mais fáceis de administrar, em comparação com o paradigma P2P, onde uma arquitetura P2P, atualizações de dados podem precisar ser distribuída e aplicada a cada ponto na rede, que é o time-consuming é passível de erro, como pode haver milhares ou mesmo milhões de pares;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Muitas tecnologias avançadas de cliente-servidor já estão disponíveis, que foram projetadas para garantir a segurança, facilidade de interface do usuário e facilidade de uso;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Funciona com vários clientes diferentes de capacidades diferentes.&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Desvantagens&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Redes de tráfego de bloqueio é um dos problemas relacionados com o modelo cliente-servidor. Como o número de solicitações simultâneas de cliente para um determinado servidor, o servidor pode ficar sobrecarregado;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;O paradigma cliente-servidor não tem a robustez de uma rede P2P. Sob cliente-servidor, se um servidor crítico falhar, os pedidos dos clientes não podem ser cumpridos. Em redes P2P, os recursos são normalmente distribuídos entre vários nós. Mesmo se um ou mais nós partem e abandonam baixar um arquivo, por exemplo, os nós restantes ainda deve ter os dados necessários para completar o download.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-1843693495936373420?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/J6IinGX6evA" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2010/05/cliente-servidor-vantagens-e.html</feedburner:origLink></item><item><title>Características do Cliente e do Servidor</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/-dsQJz98_9U/caracteristicas-do-cliente-e-do.html</link><category>Cliente-servidor</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 19 Dec 2010 17:09:16 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-2913454609561124504</guid><description>&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom hoje ainda vou comentar sobre &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Cliente-Servidor&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; ainda.. vamos lá.&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Características do Cliente&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;Sempre inicia pedidos de servidores;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Espera por respostas;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Recebe respostas;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Normalmente, se conecta a um pequeno número de servidores de uma só vez;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Normalmente, interage diretamente com os usuários finais através de qualquer interface com o usuário , como interface gráfica do usuário.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Características do Servidor&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;Sempre esperar por um pedido de um dos clientes;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Serve os clientes pedidos, em seguida, responde com os dados solicitados aos clientes;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Um servidor pode se comunicar com outros servidores, a fim de atender uma solicitação do cliente.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom são essas ai as características do &lt;strong&gt;Cliente-Servidor &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;espero que seja útil a vocês. Para mim é sim.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-2913454609561124504?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/-dsQJz98_9U" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2010/05/caracteristicas-do-cliente-e-do.html</feedburner:origLink></item><item><title>Cliente-servidor</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/EYGrfTOuMZk/cliente-servidor.html</link><category>Cliente-servidor</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Thu, 13 May 2010 11:37:24 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-120235523326667881</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_W4mx9wreaj4/S-xG1G5dH6I/AAAAAAAAAHc/ZXWDWoJva2Y/s1600/cliente+servidor.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_W4mx9wreaj4/S-xG1G5dH6I/AAAAAAAAAHc/ZXWDWoJva2Y/s320/cliente+servidor.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5470825525546917794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Olá pessoal bom faz um tempo que eu não faço nenhum posts e hoje estou devolta vou fazer alguns posts sobre &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Cliente-servidor.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; Cliente-servidor&lt;/strong&gt; é um modelo computacional que separa &lt;strong&gt;clientes&lt;/strong&gt; e &lt;strong&gt;servidores&lt;/strong&gt;, sendo interligados entre si geralmente utilizando-se uma rede de computadores. Cada &lt;strong&gt;cliente&lt;/strong&gt; pode enviar requisições de dado para algum dos &lt;strong&gt;servidores&lt;/strong&gt; conectados e esperar pela resposta. Por sua vez, algum dos &lt;strong&gt;servidores&lt;/strong&gt; disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o &lt;strong&gt;cliente&lt;/strong&gt;. Apesar do conceito ser aplicado em diversos usos e aplicações, a arquitetura é praticamente a mesma.&lt;br /&gt;&lt;br /&gt;Muitas vezes os &lt;strong&gt;clientes&lt;/strong&gt; e &lt;strong&gt;servidores&lt;/strong&gt; se comunicam através de uma rede de computador com &lt;strong&gt;&lt;em&gt;hardwares&lt;/em&gt;&lt;/strong&gt; separados, mas o &lt;strong&gt;cliente&lt;/strong&gt; e &lt;strong&gt;servidor&lt;/strong&gt; podem residir no mesmo sistema. A máquina servidor é um host que está executando um ou mais programas de servidor que partilham os seus recursos com os &lt;strong&gt;clientes.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;E lembrando também um &lt;strong&gt;cliente&lt;/strong&gt; não compartilha de seus recursos, mas solicita o conteúdo de um &lt;strong&gt;servidor&lt;/strong&gt; ou função de serviço. Os &lt;strong&gt;clientes&lt;/strong&gt;, portanto, iniciam sessões de comunicação com os &lt;strong&gt;servidores &lt;/strong&gt;que esperam as solicitações de entrada.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Uma breve descrição sobre este assunto é a &lt;/span&gt;&lt;span style="font-family:arial;"&gt;característica de &lt;strong&gt;cliente-servidor&lt;/strong&gt;, descreve a relação de programas em um aplicativo. O componente de servidor fornece uma função ou serviço a um ou muitos clientes, que iniciam os pedidos de serviços.&lt;br /&gt;&lt;br /&gt;Obtendo a funções como a troca de e-mail, acesso à internet e acessar banco de dados, são construídos com base no modelo cliente-servidor. &lt;strong&gt;Por exemplo&lt;/strong&gt;, um navegador da web é um programa cliente em execução no computador de um usuário que pode acessar informações armazenadas em um servidor web na Internet. Usuários de serviços bancários acessando do seu computador usam um cliente navegador da Web para enviar uma solicitação para um servidor web em um banco. Esse programa pode, por sua vez encaminhar o pedido para o seu próprio programa de banco de dados do cliente que envia uma solicitação para um servidor de banco de dados em outro computador do banco para recuperar as informações da conta. O saldo é devolvido ao cliente de banco de dados do banco, que por sua vez, serve-lhe de volta ao cliente navegador exibindo os resultados para o usuário.&lt;br /&gt;&lt;br /&gt;O modelo &lt;strong&gt;cliente-servido&lt;/strong&gt;&lt;strong&gt;r&lt;/strong&gt;, se tornou uma das idéias centrais de computação de rede. Muitos aplicativos de negócios a serem escrito hoje utilizam o modelo cliente-servidor. Em marketing, o termo tem sido utilizado para distinguir a computação distribuída por pequenas dispersas computadores da "&lt;strong&gt;computação&lt;/strong&gt;" monolítica centralizada de computadores mainframe.&lt;br /&gt;&lt;br /&gt;Cada instância de &lt;em&gt;&lt;strong&gt;software&lt;/strong&gt;&lt;/em&gt; do cliente pode enviar requisições de dados a um ou mais servidores ligados. Por sua vez, os servidores podem aceitar esses pedidos, processá-los e retornar as informações solicitadas para o &lt;strong&gt;cliente&lt;/strong&gt;. Embora este conceito possa ser aplicado para uma variedade de razões para diversos tipos de aplicações, a arquitetura permanece fundamentalmente a mesma.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom é isso ai amigos espero que o básico vocês peguem porque é muito útil saber destes pequenos detalhes de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;cliente-servido&lt;/strong&gt;&lt;strong&gt;r&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-120235523326667881?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/EYGrfTOuMZk" height="1" width="1"/&gt;</description><media:thumbnail url="http://4.bp.blogspot.com/_W4mx9wreaj4/S-xG1G5dH6I/AAAAAAAAAHc/ZXWDWoJva2Y/s72-c/cliente+servidor.png" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/05/cliente-servidor.html</feedburner:origLink></item><item><title>Criando uma Trigger</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/E6R3mLrMudY/criando-uma-trigger.html</link><category>Triggers</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 12 Feb 2010 13:55:39 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-2464386949471814231</guid><description>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom vo fazer um exemplo de como criar um gatilho em uma tabela, o usuário deve possuir o privilégio &lt;strong&gt;TRIGGER&lt;/strong&gt; na tabela. &lt;br /&gt;&lt;br /&gt;Na versão atual, gatilhos de declaração (&lt;strong&gt;STATEMENT triggers&lt;/strong&gt;) não estão implementados. &lt;br /&gt;&lt;br /&gt;Consulte o comando &lt;strong&gt;DROP TRIGGER&lt;/strong&gt; para obter informações sobre como remover gatilhos. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Exemplos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Verificar se o código do distribuidor existe na tabela de distribuidores antes de inserir ou atualizar uma linha da tabela filmes: &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;CREATE TRIGGER se_dist_existe&lt;br /&gt;    BEFORE INSERT OR UPDATE ON filmes FOR EACH ROW&lt;br /&gt;    EXECUTE PROCEDURE verificar_chave_primaria ('did', 'distribuidores', 'did');&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Antes de remover um distribuidor, ou de atualizar o seu código, remover todas as referências para a tabela filmes: &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;CREATE TRIGGER se_filme_existe&lt;br /&gt;    BEFORE DELETE OR UPDATE ON distribuidores FOR EACH ROW&lt;br /&gt;    EXECUTE PROCEDURE verificar_chave_primaria (1, 'CASCADE', 'did', 'filmes', 'did');&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;O segundo exemplo também pode ser implementado usando uma chave estrangeira, como em:&lt;br /&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;CREATE TABLE distribuidores (&lt;br /&gt;    did      DECIMAL(3),&lt;br /&gt;    nome     VARCHAR(40),&lt;br /&gt;    CONSTRAINT se_filme_existe&lt;br /&gt;    FOREIGN KEY(did) REFERENCES filmes&lt;br /&gt;    ON UPDATE CASCADE ON DELETE CASCADE  &lt;br /&gt;);&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Está situação eu fiz no &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; com (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SQL99&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom embreve farei mais &lt;strong&gt;posts&lt;/strong&gt; acompanhem.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-2464386949471814231?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/E6R3mLrMudY" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2010/02/criando-uma-trigger.html</feedburner:origLink></item><item><title>O que é Trigger?</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/vszNFClo5QM/o-que-e-trigger.html</link><category>Triggers</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 12 Feb 2010 08:46:14 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-8915595113962930613</guid><description>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_W4mx9wreaj4/S3V0t6TNAnI/AAAAAAAAAHA/PkiqSBygVII/s1600-h/GATILHO.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;" src="http://4.bp.blogspot.com/_W4mx9wreaj4/S3V0t6TNAnI/AAAAAAAAAHA/PkiqSBygVII/s400/GATILHO.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5437380457212478066" /&gt;&lt;/a&gt;&lt;br /&gt;Bom aqui este tópico vou falar sobre as &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; é um (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Gatilho&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) as melhores coisas que existem em um banco de dados para o programador elas dão uma dorzinha de cabeça mas que... facilitam muito a vida do desenvolvedor do &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;software&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, mais vamos para entendimento melhor, temos que saber para que serve uma &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Trigger&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; e qual a sua função dentro do banco. Então &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Let's GO!!!&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Uma descrição básica e rápida ela é o&lt;/span&gt;&lt;span style="font-family:arial;"&gt; comando no banco &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;CREATE TRIGGER&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; introduz um novo gatilho no &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;banco de dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; atual. O &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;gatilho&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; fica associado com a relação tabela e executa a função especificada função. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;O &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;gatilho&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; pode ser especificado para disparar antes (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;BEFORE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) da operação ser realizada na tupla (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;antes das restrições serem verificadas e o INSERT, UPDATE ou DELETE serem efetuados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) ou após (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;AFTER&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) a operação ser realizada (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;ou seja, após as restrições serem verificadas e o INSERT, UPDATE ou DELETE ter completado&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;). Se o &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;gatilho&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; disparar antes do evento, o gatilho pode evitar a operação para a tupla atual, ou modificar a tupla sendo inserida (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;para as operações de INSERT e UPDATE somente&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;). Se o gatilho disparar após o evento todas as modificações, incluindo a última inserção, atualização ou exclusão, são "&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;visíveis&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;" para o &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;gatilho&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. &lt;br /&gt;&lt;br /&gt;O &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SELECT&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; não modifica nenhuma linha, portanto não é possível criar gatilhos para &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SELECT&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. Regras e visões são mais apropriadas para este caso. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Sintaxe ficariam assim:&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Name &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;(CREATE TRIGGER  --  define um novo gatilho);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Synopsis &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;(BEFORE | AFTER);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Entradas&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; (nome, tabela, evento, função);&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Saídas&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; (Mensagem retornada se o gatilho for criado com sucesso);&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom  mais para frente irei postar várias Tiggers para vários tipos de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Linguagens de Banco de Dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; como exemplo &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Postgre, Firebird, Oracle&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; entre outros...&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;1º O que são Triggers?&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Triggers são códigos de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; armazenados dentro do &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;banco de dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, onde podemos definir um "&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;bloco&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;" &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; para que seja executado automaticamente pelo &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;banco&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, assim toda vez que uma instrução &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ( &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;evento DML&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ) for aplicada para uma tabela específica ele irá executar um determinado evento automaticamente.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2º Para que serve uma Trigger?&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Bom volto a falar ela esta dentro do &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Banco de Dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; e tem uma &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;função&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; muito boa a &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Trigger&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; dentro do seu banco será de uma utilidade enorme, imaginem que temos um &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;banco de dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; com &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;1.500,000&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;registros&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, onde&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; os funcionários da empresa ganham por hora&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, e você tem que &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;atualizar o banco de horas de cada funcionário por dia&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, alguns comandos poderia fazer isso por nós, mas seria um pouco complicado e desgastante, então, por este motivo, criamos nossas &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, onde definimos o que deve ser mudado na tabela num único arquivo e depois acionamos um único comando &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;DML&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) para ele, assim, ele irá atualizar os &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;1.500,000 &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;de registros de uma única só vez.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;3º Implementação da Trigger dentro do banco?&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Devemos tomar algumas precauções sobre a implementação das &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; dentro do &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;banco&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, fique atento para estes tópicos :&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Use triggers para garantir a execução de comandos para uma tabela específica;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Não fique criando &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;triggers&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; que duplique regras já definidas em &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;CONSTRAINTS&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; do banco;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;O &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Oracle&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; recomenda que limitamos os nossos códigos no máximo em &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;60 linhas&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Caso você tenha que criar algo mais complexo crie&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt; stored procedure&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, será mais utíl;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;ATENÇÃO &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;cuidado ao criar as &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Triggers&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; que disparem sob uma instrução &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; na sua &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Tabela&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, não pode alterar a tabela porque isso iria &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;disparar&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; a &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Triggers&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; mais de &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;N vezes&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; no sistema, e a memória do equipamento não iria agüentar ocasionandos &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;bugs&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; de memória e resultados &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;errôneos&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4º Pontos fundamentais das Triggers?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Segurança e Integridade&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Podemos utilizar as Triggers para garantir uma segurança maior no nosso banco, ela tem como tarefa restringir o acesso as tabelas e controlar as atualizações.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Auditoria&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Como disse anteriormente, as Triggers são executadas automaticamente, assim, podemos utilizá-las para fazer auditoria sobre acesso ao banco de dados.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Replicação de Dados&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;São excelentes para criar uma política de replicação síncrona de uma tabela para outra.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Apartir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Controle de dados&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Caso uma tabela tenha dados, cujo valor depende de outras tabelas, as Triggers pode atualizar automaticamente a coluna com os valores derivados.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Próximos posts vou comentar sobre a &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Preparação&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; das &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; passo-a-passo e um resumo sobre os comandos, assim vocês poderam na ultima coluna, estar dominando a criação e a utilização deste mecanismo.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-8915595113962930613?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/vszNFClo5QM" height="1" width="1"/&gt;</description><media:thumbnail url="http://4.bp.blogspot.com/_W4mx9wreaj4/S3V0t6TNAnI/AAAAAAAAAHA/PkiqSBygVII/s72-c/GATILHO.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/02/o-que-e-trigger.html</feedburner:origLink></item><item><title>Tipos de Constraints</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/YkLdpp7DAB0/tipos-de-constraints.html</link><category>Constraints</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 12 Feb 2010 07:34:36 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-7476170570077114779</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_W4mx9wreaj4/S3VyQgLKdtI/AAAAAAAAAG4/5JFD23_uYS8/s1600-h/constraints.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 397px; height: 400px;" src="http://4.bp.blogspot.com/_W4mx9wreaj4/S3VyQgLKdtI/AAAAAAAAAG4/5JFD23_uYS8/s400/constraints.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5437377752959973074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom agora vou falar sobre os tipos de &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraints;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul align="justify"&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint DEFAULT&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint CHECK&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint PRIMARY KEY&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint FOREIGN KEY&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Basicamente falando, integridade de dados é a maneira de dizer que os dados que estão na sua base são confiáveis. Existem dois tipos de implementar integridade de dados nos &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Bancos de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;: &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Declarativa e Procedural&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Declarativa&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; diz respeito ao uso das constraints e das rules. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Procedural&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; diz respeito ao uso de &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Stored Procedures e Triggers&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. (recomendo que leia este outro tópico sobre &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://elderstroparo.blogspot.com/search/label/Triggers"&gt;Triggers&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;...)&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Observações: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- É possível criar uma constraint após a criação da tabela.&lt;br /&gt;- Uma &lt;strong&gt;Constraint&lt;/strong&gt; pode ser definida a nível de coluna ou a nível de tabela.&lt;br /&gt;- &lt;strong&gt;Constraints&lt;/strong&gt; são armazenadas no &lt;strong&gt;Dicionário de Dados&lt;/strong&gt; e podem ser facilmente recuperadas se possuírem nomes razoáveis.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint DEFAULT&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Bom &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint Defaukt&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; ela serve para indicar um valor padrão para um campo, quando o mesmo não for especificado. Exemplo: se a tabela &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;TESTE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; possui dois campos, &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;COD&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; e &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;NOME&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, e para o campo &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;NOME &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;existe uma constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;DEFAULT&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; criada, ao inserirmos dados nesta tabela podemos somente fornecer o conteúdo do campo &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;COD&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, pois o conteúdo do campo &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;NOME&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; será automaticamente preenchido com o valor definido na constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;DEFAULT&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint deve ser utilizada para manter &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;integridade de domínio&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. Também podemos utilizar esta &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;como um objeto independente, assim como as rules. Não podemos criar constraints em campos com o tipo de dados &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;rowversion&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; e campos que possuem uma propriedade&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt; IDENTITY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; definida.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint CHECK&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;nos permite criar uma regra para o preenchimento de um certo campo em uma tabela. Nesta regra podemos utilizar valores de outros campos da mesma tabela para fazer a validação dos dados. Ou melhor u&lt;/span&gt;&lt;span style="font-family:arial;"&gt;m método para validar a integridade de todos os dados que entram em sua base e &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Check Constraints&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; é ótimo para garantir todos  os dados que entram em seus sistemas através de novas soluções ou interfaces.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;As &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Check Constraints&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; também melhoram o aproveitamento de seu sistema. O gerenciador de banco de dados verifica o cumprimento das &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Check Constraints&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; no nível mais baixo do sistema operacional e por isso a verificação destas regras tem uma carga de trabalho menor do que teria através de aplicativos.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Esta &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;deve ser utilizada para manter integridade de domínio e integridade referencial.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Esta &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; pode ser desabilitada, para caso de uma grande inserção de dados na tabela.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint PRIMARY KEY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint serve para definirmos um ou mais campos como chaves primárias. Uma chave primária é o atributo de um ou mais campos que identifica unicamente um registro em uma tabela. Podemos criar somente uma constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;PRIMARY KEY &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;por tabela e não podemos colocar o valor &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;NULL&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; nos campos que compõem a chave primária.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint deve ser utilizada para manter integridade de entidade. Quando esta constraint é criada na tabela, um índice também é automaticamente criado sobre as colunas que fazem parte da &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;chave primária&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. Este índice não pode ser apagado diretamente, devemos apagar a &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;PRIMARY KEY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; primeiro.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Observações:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;- A &lt;strong&gt;Constraint Primary Key &lt;/strong&gt;é uma combinação das constraints &lt;strong&gt;Unique e Not Null&lt;/strong&gt;. &lt;br /&gt;- Um índice único é automaticamente criado.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint faz a validação de valores únicos em uma coluna de uma tabela. Se um campo estiver definido com a &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;constraint &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; nenhum valor repetido poderá ser fornecido para esta campo. Diferente da &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;PRIMARY KEY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, podemos colocar várias constraints &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; por tabela mas para cada campo que possue uma constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; somente podemos inserir o valor &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;NULL&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; uma vez.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint deve ser utilizada para manter integridade de entidade. Quando esta constraint é criada na tabela, um índice também é automaticamente criado sobre a coluna sobre a qual a constraint está definida. Este índice não pode ser apagado diretamente, devemos apagar a constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; primeiro.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Observações:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;- Designa uma coluna ou uma combinação de colunas de tal forma que duas linhas não possam ter o mesmo valor.&lt;br /&gt;- Valores nulos são aceitos.&lt;br /&gt;- Automaticamente é criado um índice único para a(s) &lt;strong&gt;coluna(s) especificada(s)&lt;/strong&gt;.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Constraint&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;FOREIGN KEY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint é utilizada para implementar o conceito de chave estrangeira e serve para indicar que o conteúdo de um campo deve se referenciar a um outro campo que possua ou uma chave primária ou uma constraint &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;UNIQUE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Quando o campo que está sendo referenciado residir na mesma tabela, não precisamos uitilizar a palavra-chave &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;FOREIGN KEY&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, podendo somente utilizar &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;REFERENCES&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. Esta constraint também pode ser desabilitada, para o caso de uma grande inserção de dados na tabela. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Esta constraint deve ser utilizada para manter integridade refencial e podemos ainda programar eventos em cascata utilizando as cláusulas &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;ON DELETE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; e &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;ON UPDADE&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Observações:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;- Estabelece um relacionamento com a chave primária ou única da mesma ou de outra tabela.&lt;br /&gt;- Deve referenciar um valor existente na tabela pai ou ser nulo.&lt;br /&gt;- &lt;strong&gt;Chaves estrangeiras&lt;/strong&gt; são baseadas em dados e são puramente lógicas, isto é, não são ponteiros físicos.&lt;br /&gt;- Uma &lt;strong&gt;chave estrangeira&lt;/strong&gt;, parte de uma chave primária, não pode ser nula pois uma chave primária não pode ser nula, nem parcialmente nula. &lt;br /&gt;- Havendo a cláusula &lt;strong&gt;ON DELETE CASCADE&lt;/strong&gt;, uma deleção na tabela pai causa a deleção das linhas relacionadas na tabela filho.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom é isso ai espero que tenha respondido muitas perguntas e o porque haha... e muitos programadores desconhece desse assunto mas entendem muito sem saber o que é esses simples recursos que faz sem saber o nome que é &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Constraints&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; isso nos &lt;strong&gt;Bancos de Dados&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;É isso em breve muitos exemplos...&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-7476170570077114779?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/YkLdpp7DAB0" height="1" width="1"/&gt;</description><media:thumbnail url="http://4.bp.blogspot.com/_W4mx9wreaj4/S3VyQgLKdtI/AAAAAAAAAG4/5JFD23_uYS8/s72-c/constraints.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/02/tipos-de-constraints.html</feedburner:origLink></item><item><title>O que é uma Constraints?</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/NhW6BnDspRs/o-que-e-uma-constraints.html</link><category>Constraints</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 12 Feb 2010 07:37:10 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-6592593082173175261</guid><description>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Olá! vamos falar hoje sobre "O que é uma &lt;strong&gt;Constraints&lt;/strong&gt;?"&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom é um assunto bem interessante, as &lt;strong&gt;CONSTRAINTS&lt;/strong&gt;, que nada mais são restrições que você estabelece para uma coluna no banco de dados, que nada mais é de um método para validar a integridade de todos os dados que entram em sua base.&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom antes de você começar a ler este tópico recomendo você ler antes sobre a &lt;/span&gt;&lt;a href="http://elderstroparo.blogspot.com/search/label/Integridade%20no%20Banco%20de%20Dados"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade no Banco de Dados&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; então depois de ler... volte aqui haha.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Constraints bom podemos ter os seguintes tipos:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Primary Key (PK)&lt;/strong&gt; = Está restrição cria um índice único para um conjunto de colunas ou uma coluna para Chave Primaria.&lt;/span&gt;&lt;/li&gt;&lt;li align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Unique&lt;/strong&gt; = Está Contraint determina que uma coluna não poderá ter 2 linhas com o mesmo valor.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Foreign Key (FK ou Chave Estrangeira)&lt;/strong&gt; = Determina uma coluna ou um conjunto de colunas que possuem valores em outras tabelas, referente a uma referência ou um relacionamento.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Check &lt;/strong&gt;= Especifica a condição que a coluna precisa para salvar o registro.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Not Null&lt;/strong&gt; = Determina que a coluna tem preenchimento obrigatório.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom agora deu para você entender melhor sobre o que estamos falando né haha, as opções de restrições (&lt;strong&gt;Constraints&lt;/strong&gt;), temos que aplicar isso na prática, e para isso vou utilizar um exemplo bem simples. Vamos imaginar que você tem que criar uma tabela para receber informações de consultas de empregados na sua empresa, onde no formulario de cadastro existe os campos &lt;strong&gt;Código, Nome, Departamento, Sexo, Idade e E-mail&lt;/strong&gt;. Então nosso código deverá ter os seguintes campos todas com suas restrições para inclusão.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #c0c0c0 8px solid; BORDER-TOP: #c0c0c0 8px solid; BORDER-LEFT: #c0c0c0 8px solid; BORDER-BOTTOM: #c0c0c0 8px solid" align="left"&gt;&lt;code&gt;SQL&lt;/code&gt;&lt;code&gt; 1º CREATE TABLE EMPREGADOS (&lt;br /&gt;2&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; COD NUMBER(6) NOT NULL CONSTRAINT CODEMP_PK PRIMARY KEY,&lt;br /&gt;3&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; NOME VARCHAR2(20) NOT NULL,&lt;br /&gt;4&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; DEPARTAMENTO VARCHAR2(40) NOT NULL CONSTRAINT DEPTO_FK REFERENCES DEPTO&lt;br /&gt;5&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; INITIALLY DEFERRED, &lt;br /&gt;6&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; SEXO CHAR(1) NOT NULL CONSTRAINT CHECK_SEXO CHECK (SEXO IN ('F','M')),&lt;br /&gt;7&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; IDADE NUMBER(2) CONSTRAINT CHECK_IDADE CHECK (IDADE &gt; 18),&lt;br /&gt;8&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; EMAIL VARCHAR2(40) NOT NULL UNIQUE&lt;br /&gt;9&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; )&lt;br /&gt;10&lt;/code&gt;&lt;code&gt;º&lt;/code&gt;&lt;code&gt; TABLESPACE USERS;&lt;/code&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Agora vamos analisar o código linha por linha afim de entendermos o que está acontecendo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1º Linha&lt;/strong&gt;: Está sendo criada a tabela chamada &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;EMPREGADOS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;2º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Vamos criar uma coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;COD&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; onde tem preenchimento obrigatório e está relacionada com outra tabela chamada &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;CODEMP (Código Empregado) &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;como chave primaria.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;3º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Criamos uma coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;NOME&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; que o preenchimento é obrigatório.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;4º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Criamos uma coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;DEPARTAMENTO&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; onde o preenchimento é obrigatório e como chave estrangeira para a tabela &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;DEPTO&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; e a cláusula &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;DEFERRED&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; significa que a transição poderá ser adiada até o fim da execução do serviço do banco.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;6º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Criação da coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;SEXO&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; onde tem preenchimento obrigatório e só será aceito os caracteres &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;F (Feminino) e M (Masculino)&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;7º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Criamos uma coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;IDADE&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; onde a idade do empregado da empresa tem que ser superior a 18 anos.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;8&lt;/span&gt;&lt;span style="font-family:arial;"&gt;º Linha&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;: Criação da coluna &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;EMAIL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; onde o preenchimento é obrigatório e não permite que os valores da coluna seja repetido.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;10º Linha&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;: Estamos determinando a área de reserva para aquela tabela.&lt;br /&gt;&lt;br /&gt;PRONTO! é isso agora você já deve saber utilizar as restrições para suas tabelas e deixar elas mais utilizáveis no sistema.&lt;br /&gt;&lt;br /&gt;Até a próxima.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-6592593082173175261?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/NhW6BnDspRs" height="1" width="1"/&gt;</description><feedburner:origLink>http://elderstroparo.blogspot.com/2010/02/o-que-e-uma-constraints.html</feedburner:origLink></item><item><title>Integridade no Banco de Dados</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/nkbG30YthxM/integridade-no-banco-de-dados.html</link><category>Integridade no Banco de Dados</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Fri, 12 Feb 2010 07:36:16 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-6348115435650639734</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_W4mx9wreaj4/S3TIf2HBQKI/AAAAAAAAAGw/XXkU-zPGmsE/s1600-h/integridade.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 376px; height: 246px;" src="http://3.bp.blogspot.com/_W4mx9wreaj4/S3TIf2HBQKI/AAAAAAAAAGw/XXkU-zPGmsE/s400/integridade.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5437191099569488034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Olá Pessoal, beleza... estou devolta... &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Bom comecei este artigo pensando em falar sobre &lt;strong&gt;&lt;a href="http://elderstroparo.blogspot.com/search/label/Constraints"&gt;Constraints&lt;/a&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;a href="http://elderstroparo.blogspot.com/search/label/Triggers"&gt;Triggers&lt;/a&gt;&lt;/strong&gt;, mas antes, deveria falar sobre o que é uma &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Integridade no Banco de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;, então, resolvi preparar este artigo que descreve os tipos e exemplificar cada um deles. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Vamos lá! Let's GO!!!&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade&lt;/strong&gt; é fundamental! &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Quando vamos projetar um &lt;strong&gt;Banco de Dados&lt;/strong&gt;, imaginamos as possíveis formas para que nossa aplicação grave os dados corretamente no &lt;strong&gt;Banco de Dados&lt;/strong&gt;, mas as vezes, esquecemos de definir, a nível de banco, quais as validações que devem ser feitas para evitar inconsistências nos dados e que, futuramente, se tornariam dores de cabeça. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Em um &lt;strong&gt;Banco de Dados&lt;/strong&gt;, possuímos &lt;strong&gt;3&lt;/strong&gt; &lt;strong&gt;formas de Integridade&lt;/strong&gt;: &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;- Integridade de Domínio &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;- Integridade de Entidade &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;- Integridade Referencial &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade de Domínio &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Neste tipo de&lt;strong&gt; integridade&lt;/strong&gt;, as validações ocorrem em cada campo de nossa tabela (&lt;strong&gt;ou entidade&lt;/strong&gt;), como por exemplo se um campo deve aceitar valores &lt;strong&gt;Null&lt;/strong&gt; ou apenas uma faixa de valores, por exemplo: &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Temos um campo &lt;strong&gt;Sexo&lt;/strong&gt;, que só deve aceitar valores do tipo &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ou &lt;strong&gt;F&lt;/strong&gt; e, independente de nossa aplicação, não deverá aceitar outros valores. Com integridade de domínio, podemos fazer isto facilmente. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade de Entidade&lt;/strong&gt; &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Já na &lt;strong&gt;integridade de entidade&lt;/strong&gt;, temos validações um nível acima, onde definimos quais campos de nossa tabela são chaves primárias (&lt;strong&gt;PK&lt;/strong&gt;) ou únicas (&lt;strong&gt;UK&lt;/strong&gt;). &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Um exemplo de chave única é o campo de CPF que nunca pode se repetir. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;OBS: Geralmente chaves únicas são chamadas de chaves candidatas, pois são candidatas a chave primária, mas não são uma. &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integridade referencial &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;E por último, mas não menos importante, vemos a &lt;strong&gt;Integridade Referencial&lt;/strong&gt;, onde criamos nossas referências a campos do tipo &lt;strong&gt;PK&lt;/strong&gt; ou &lt;strong&gt;UK&lt;/strong&gt; de outras tabelas, as famosas chaves estrangeiras &lt;strong&gt;FK&lt;/strong&gt;. Lembre-se que eu não posso criar uma referência (&lt;strong&gt;relacionamento&lt;/strong&gt;) de uma coluna se esta não for uma chave primária de outra tabela. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Este tipo de &lt;strong&gt;integridade é fundamental&lt;/strong&gt; para verificar se um dado será inserido de forma correta e, como é uma chave estrangeira, se este dado realmente existe. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Vamos tirar por exemplo uma tabela chamada &lt;strong&gt;PEDIDO&lt;/strong&gt; e uma &lt;strong&gt;CLIENTE&lt;/strong&gt;. Eu só posso &lt;strong&gt;adicionar um registro&lt;/strong&gt; de &lt;strong&gt;PEDIDO&lt;/strong&gt; se existir um &lt;strong&gt;CLIENTE&lt;/strong&gt; relacionado a ele, e é assim que as verificações acontecem, no momento da inclusão ou alteração, o &lt;strong&gt;SGBD&lt;/strong&gt; verifica se o registro existe e caso não, &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;retorna um erro&lt;/strong&gt;. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Bom, vimos neste artigo um pouco sobre integridade no banco de dados, no próximo irei falar sobre como criar &lt;strong&gt;Constraints&lt;/strong&gt; e &lt;strong&gt;Triggers&lt;/strong&gt; possamos pôr em prática o que vimos hoje. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Até a próxima.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-6348115435650639734?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/nkbG30YthxM" height="1" width="1"/&gt;</description><media:thumbnail url="http://3.bp.blogspot.com/_W4mx9wreaj4/S3TIf2HBQKI/AAAAAAAAAGw/XXkU-zPGmsE/s72-c/integridade.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/02/integridade-no-banco-de-dados.html</feedburner:origLink></item><item><title>História do SQL Server</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/XXyUpDrJ6Xo/historia-do-sql-server.html</link><category>Histórias dos Bancos</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 31 Jan 2010 11:53:44 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-8132747262120512986</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_W4mx9wreaj4/S2XQKvbjhJI/AAAAAAAAAGY/vbAroSJjwVo/s1600-h/sql+server.jpeg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 64px;" src="http://1.bp.blogspot.com/_W4mx9wreaj4/S2XQKvbjhJI/AAAAAAAAAGY/vbAroSJjwVo/s200/sql+server.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5432977408441681042" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom falarei sobre o &lt;strong&gt;SQL Server&lt;/strong&gt;, tudo começou em 27 de março de &lt;strong&gt;1987&lt;/strong&gt;, o presidente da &lt;strong&gt;Microsoft na época&lt;/strong&gt;, &lt;strong&gt;Jon Shirley&lt;/strong&gt;, e o co-fundador e presidente da &lt;strong&gt;Sybase&lt;/strong&gt;, &lt;strong&gt;Mark Hoffman&lt;/strong&gt;, assinaram um acordo onde a &lt;strong&gt;Microsoft &lt;/strong&gt;obteria direitos exclusivos ao produto &lt;strong&gt;DataServer&lt;/strong&gt; da &lt;strong&gt;Sybase &lt;/strong&gt;para o &lt;strong&gt;OS/2.&lt;/strong&gt; Já a &lt;strong&gt;Sybase&lt;/strong&gt; além de obter os &lt;strong&gt;royalties&lt;/strong&gt; da&lt;strong&gt; Microsoft&lt;/strong&gt;, ganharia credibilidade com o endosso de sua tecnologia pela &lt;strong&gt;Microsoft&lt;/strong&gt;.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Para ganhar aceitação no mundo dos bancos de dados para &lt;strong&gt;PC&lt;/strong&gt;, onde o &lt;strong&gt;dBASE&lt;/strong&gt; da &lt;strong&gt;Ashton-Tate&lt;/strong&gt; tinha boa parte do mercado, o “&lt;strong&gt;novo&lt;/strong&gt;” &lt;strong&gt;sistema de gerenciamento de banco de dados da Microsoft &lt;/strong&gt;(&lt;strong&gt;licenciado pela Sybase&lt;/strong&gt;) precisaria interessar à grande comunidade do &lt;strong&gt;dBASE&lt;/strong&gt;. E a maneira mais direta de fazer isso era fazer a &lt;strong&gt;Ashton-Tate&lt;/strong&gt; endossar o produto, e foi exatamente o que a&lt;strong&gt; Microsoft&lt;/strong&gt; fez, um acordo com a &lt;strong&gt;Ashton-Tate&lt;/strong&gt;.&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;A &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;primeira versão&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; beta do&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt; Ashton-Tate/Microsoft SQL Serve&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;r foi lançada no segundo semestre de 1988&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;A &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;versão 1.1&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; do &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Microsoft SQL Server&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; foi lançada no segundo semestre de 1990.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;No início de &lt;strong&gt;1991&lt;/strong&gt; o acordo entre a &lt;strong&gt;Microsoft&lt;/strong&gt; e a &lt;strong&gt;Sybase&lt;/strong&gt; foi retificado, possibilitando à&lt;strong&gt; Microsoft&lt;/strong&gt; o acesso de “&lt;strong&gt;somente-leitura&lt;/strong&gt;” ao &lt;strong&gt;código-fonte&lt;/strong&gt; do &lt;strong&gt;SQL Server&lt;/strong&gt; para fins de suporte. Neste mesmo ano a &lt;strong&gt;Microsoft&lt;/strong&gt; lançou uma &lt;strong&gt;versão&lt;/strong&gt; de manutenção, o &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;SQL Server 1.11&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;O &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Microsoft SQL Server versão 4.2 for OS/2&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; entrou em teste beta no segundo semestre de &lt;strong&gt;1991&lt;/strong&gt;, tendo sido um desenvolvimento conjunto entre a &lt;strong&gt;Microsoft&lt;/strong&gt; e a&lt;strong&gt; Sybase&lt;/strong&gt;. A &lt;strong&gt;versão 4.2 (16-bit)&lt;/strong&gt; foi lançada em março de &lt;strong&gt;1992.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Em outubro de &lt;strong&gt;1992&lt;/strong&gt;, surgiu a primeira &lt;strong&gt;versão beta do SQL Server for Windows NT&lt;/strong&gt; e em agosto de &lt;strong&gt;1993&lt;/strong&gt; era lançada a &lt;strong&gt;versão&lt;/strong&gt; final para o &lt;strong&gt;Windows NT 3.1&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;O primeiro &lt;strong&gt;beta do SQL Server 6.0&lt;/strong&gt; (&lt;strong&gt;também chamado de SQL95&lt;/strong&gt;) surgiu no final de outubro de &lt;strong&gt;1994&lt;/strong&gt;, e em julho de &lt;strong&gt;1995&lt;/strong&gt; era lançado oficialmente o&lt;strong&gt; Microsoft SQL Server 6.0&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Em dezembro de &lt;strong&gt;1995&lt;/strong&gt; é liberado uma versão beta completa do&lt;strong&gt; SQL Server 6.5.&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;O &lt;strong&gt;SQL Server 7.0 &lt;/strong&gt;(&lt;strong&gt;codinome Sphinx&lt;/strong&gt;) chegou ao mercado no início de &lt;strong&gt;1999&lt;/strong&gt; e colocou o &lt;strong&gt;SQL Server&lt;/strong&gt; no mercado de &lt;strong&gt;sistemas de gerenciamento de base de dados relacionais de classe empresarial&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Em setembro de &lt;strong&gt;1999&lt;/strong&gt; é distribuído o &lt;strong&gt;Beta 1 do SQL Server 2000&lt;/strong&gt; (&lt;strong&gt;versão 8.0 de codinome Shiloh&lt;/strong&gt;), o &lt;strong&gt;Beta 2&lt;/strong&gt; foi lançado em abril de &lt;strong&gt;2000&lt;/strong&gt; e em agosto a &lt;strong&gt;versão&lt;/strong&gt; final do &lt;strong&gt;Microsoft SQL Server 2000&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Em novembro de &lt;strong&gt;2005&lt;/strong&gt; é lançado ao público o &lt;strong&gt;SQL Server 2005&lt;/strong&gt; (&lt;strong&gt;codinome Yukon&lt;/strong&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;O SQL server hoje&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://2.bp.blogspot.com/_W4mx9wreaj4/S2Xdi9Lz_8I/AAAAAAAAAGg/mL8IedWJsV8/s200/sql_server_2008_logo.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5432992118101770178" /&gt;&lt;span style="font-family:arial;"&gt;Atualemten lançou a &lt;strong&gt;versão&lt;/strong&gt; final do &lt;strong&gt;Microsoft SQL Server 2008&lt;/strong&gt; (&lt;strong&gt;codinome Katmai&lt;/strong&gt;) foi lançada em agosto de &lt;strong&gt;2008&lt;/strong&gt;, entre as novidades estão funções para compressão de dados, suporte a informações geo-espaciais e gerenciamento baseado em políticas, além de novas opções de relatórios e serviços de análise.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;O &lt;strong&gt;MS SQL Server é um SGBD&lt;/strong&gt; - &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;sistema gerenciador de Banco de dados relacional criado pela Microsoft. Com a nova versão o Microsoft SQL Server 2008&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; é fornecida uma plataforma de dados confiável, produtiva e inteligente que permite que você execute suas aplicações de missão crítica mais exigentes, reduza o tempo e o custo com o desenvolvimento e o gerenciamento de aplicações e entregue percepção que se traduz em ações estratégicas em toda sua organização.O &lt;strong&gt;SQL&lt;/strong&gt; É um &lt;strong&gt;Banco de dados&lt;/strong&gt; robusto e usado por sistemas corporativos dos mais diversos portes. O &lt;strong&gt;Microsoft SQL Server 2008&lt;/strong&gt; fornece uma plataforma confiável de dados que permite que a execução de aplicações de missão crítica mais exigentes.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;“&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;Pessoas têm ilhas de dados em suas organizações, e precisam de uma plataforma que forneça a 'malha' que realmente una tudo e as tornem mais valiosas que a soma de suas partes. É disso que se trata o &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;SQL Server 2008&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;.”&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Algumas &lt;strong&gt;funções&lt;/strong&gt; do &lt;strong&gt;SQL Server&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Trigger&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Stored procedure&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;SQL User Function&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Extended Stored Procedure&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom é isso ai o site oficial &lt;/span&gt;&lt;a href="http://www.microsoft.com/sql/default.mspx"&gt;&lt;span style="font-family:arial;"&gt;SQL Server.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-8132747262120512986?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/XXyUpDrJ6Xo" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/_W4mx9wreaj4/S2XQKvbjhJI/AAAAAAAAAGY/vbAroSJjwVo/s72-c/sql+server.jpeg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/01/historia-do-sql-server.html</feedburner:origLink></item><item><title>Invasões e as Vulnerabilidade de (BD)</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/ynbZJhfhj8k/invasoes-e-vulnerabilidade.html</link><category>Invasões e as Vulnerabilidade de (BD)</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 31 Jan 2010 10:21:01 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-7435899249432363743</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_W4mx9wreaj4/S2XH4r8-o9I/AAAAAAAAAF4/hn8bFCRQch8/s1600-h/cadeado+com+chave.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 374px; height: 291px;" src="http://4.bp.blogspot.com/_W4mx9wreaj4/S2XH4r8-o9I/AAAAAAAAAF4/hn8bFCRQch8/s400/cadeado+com+chave.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5432968302177461202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Olá vou comntar a vocês sobre &lt;strong&gt;Invasõe&lt;/strong&gt;s e &lt;strong&gt;Vulnerabilidades em Banco de Dados (BD)&lt;/strong&gt;, primeiramente vou descrever um pouco o significado dos dois termos porque são muitos amplos tenta falar com poucas palavra e com uma boa conclusão para vocês leitores do meu &lt;strong&gt;Blog&lt;/strong&gt;. Bom vamos lá &lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Invasão&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; é um meio em que alguem consegue obter os seus dados e informações confidenciais de forma através de um computador acessando a outro computador isto se classifica como um crime eletrônico que geralmente se referem a toda a atividade onde um computador ou uma rede de computadores. Bom isso tem vários timos de invasões de invasores como os &lt;/span&gt;&lt;span style="font-family:arial;"&gt;intrusos dos sistemas que actuam de duas formas distintas vou citar dois exemplos &lt;/span&gt;&lt;span style="font-family:arial;"&gt;(&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;intrusos passivos &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;procuram apenas ler ficheiros não autorizados&lt;/span&gt;&lt;span style="font-family:arial;"&gt;) &lt;/span&gt;&lt;span style="font-family:arial;"&gt;e os&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;(&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;intrusos activos &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;actuam de forma maliciosa, procurando efectuar alterações não autorizadas nos dados&lt;/span&gt;&lt;span style="font-family:arial;"&gt;). &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Atualmente as descoberta desses conteúdos está cada vez mais difícil devido ao uso de técnicas criptográficas, que vem permitindo esconder a informação em textos ou outros documentos, enviando-os sem serem perceptíveis e conseguindo obter os dados das informaçãos.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Vulnerabilidade &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;è um meio vulnerável fácil, bom na computação significa ter &lt;strong&gt;brecha&lt;/strong&gt; em um sistema computacional, também conhecida como &lt;strong&gt;bug &lt;/strong&gt;(inseto do famoso &lt;strong&gt;ENIAC&lt;/strong&gt;). Esta mesma pode ser explorada em um determinado sistema ou serviço vulnerável que esteja rodando na máquina.Umas das grandes vulnerabilidades mais exploradas nos dias de hoje, são as do tipo &lt;strong&gt;buffer&lt;/strong&gt; &lt;strong&gt;overflow&lt;/strong&gt;, que muitas vezes pode dar privilégios de &lt;strong&gt;administrador&lt;/strong&gt; para o &lt;strong&gt;invasor&lt;/strong&gt;, &lt;strong&gt;rodar códigos maliciosos remotamente&lt;/strong&gt;, &lt;strong&gt;burlar particularidades de cada sistema&lt;/strong&gt;, &lt;strong&gt;ataques de Negação de Serviços&lt;/strong&gt; (&lt;strong&gt;DDoS&lt;/strong&gt;), e &lt;strong&gt;acesso irestrito ao sistema&lt;/strong&gt;. Bom existem ferramentas específicas para se explorar as &lt;strong&gt;vulnerabilidades&lt;/strong&gt;, cada ferramenta para a sua respectiva &lt;strong&gt;vulnerabilidade&lt;/strong&gt; a ser explorada (&lt;strong&gt;na maioria das vezes escritas em linguagem C e Assembly&lt;/strong&gt;), essas ferramentas são chamadas de &lt;strong&gt;exploits&lt;/strong&gt;. Outro exemplo prático imagine uma corrente e um anel dela aberto isto é ser &lt;strong&gt;VULNERABILIDADE&lt;/strong&gt; da corrente.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom acho que deu para se entender o que é &lt;strong&gt;Invasões&lt;/strong&gt; e &lt;strong&gt;Vunerabilidades&lt;/strong&gt; bom então vou postar sobre algumas &lt;strong&gt;invasões&lt;/strong&gt; e &lt;strong&gt;brechas&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; em &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;sistemas de Banco de Dados&lt;/strong&gt; acompanhem.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-7435899249432363743?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/ynbZJhfhj8k" height="1" width="1"/&gt;</description><media:thumbnail url="http://4.bp.blogspot.com/_W4mx9wreaj4/S2XH4r8-o9I/AAAAAAAAAF4/hn8bFCRQch8/s72-c/cadeado+com+chave.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/01/invasoes-e-vulnerabilidade.html</feedburner:origLink></item><item><title>Segurança de Banco de Dados</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/JerkXdVsTFE/seguranca-de-banco-de-dados.html</link><category>Segurança de Banco de Dados</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 31 Jan 2010 09:34:41 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-776172604757900090</guid><description>&lt;div align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WmzgQX6-I/AAAAAAAAAFo/gByEcFWdON0/s1600-h/cadeado.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 159px;" src="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WmzgQX6-I/AAAAAAAAAFo/gByEcFWdON0/s400/cadeado.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5432931929254521826" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Olá pessol bom falarei hoje sobre a &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Segurança de Banco de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. É um termo muito abrangente não vou conseguir citar todas as vulnerabilidade de todos os &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Banco de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; com as formas de invasões e também não vo conseguir citar todas as seguranças especificas de cada &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Banco de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; mas vou tentar nos proximos post nesta categoria falar mais profundamente especificando cada &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Banco&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; hoje uma explicação geral da Segurança de &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Banco de Dados&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. Bom vamos lá...&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Os &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Bancos de Dados &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;são utilizados para armazenar diversos tipos de informações, desde dados sobre uma &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;conta de e-mail&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt; até dados importantes da &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Receita Federal&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:arial;"&gt;. E a&lt;/span&gt;&lt;span style="font-family:arial;"&gt;tualmente a &lt;strong&gt;informação&lt;/strong&gt; é um recurso crítico no &lt;strong&gt;dia-a-dia&lt;/strong&gt; das organizações. Através da &lt;strong&gt;informática&lt;/strong&gt;, todas as operações básicas das empresas estão sendo automatizadas isso como um &lt;/span&gt;&lt;span style="font-family:arial;"&gt;exemplo, &lt;strong&gt;controle de estoque&lt;/strong&gt;, &lt;strong&gt;faturamento&lt;/strong&gt;, &lt;strong&gt;pagamentos&lt;/strong&gt;, além de &lt;strong&gt;suporte a diversas funções da administração como previsão&lt;/strong&gt;, &lt;strong&gt;orçamento e controle financeiro&lt;/strong&gt;. Para que essas funções sejam possíveis, é necessária a utilização de um &lt;strong&gt;Banco de Dados &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;e a u&lt;/span&gt;&lt;span style="font-family:arial;"&gt;tilização deles em muitas aplicações vem abrangendo praticamente todo o campo dos programas de computador.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Para tal existem diversos tipos, os quais variam em complexidade e sobretudo em segurança:&lt;/span&gt;&lt;/p&gt;&lt;ul align="justify"&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Criptografia&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Senhas&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Backup&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom falar um pouco sobre &lt;strong&gt;Criptografia&lt;/strong&gt; para explicar melhor o que é, e porque usa a informação a onde ela pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (&lt;strong&gt;detentor da "chave secreta"&lt;/strong&gt;), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade.&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;Uma visão geral da &lt;strong&gt;Criptografia&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Confidencialidade da Mensagem&lt;/strong&gt;: só o destinatário autorizado deve ser capaz de extrair o conteúdo da mensagem da sua forma cifrada. Além disso, a obtenção de informação sobre o conteúdo da mensagem (como uma distribuição estatística de certos caracteres) não deve ser possível, uma vez que, se o for, torna mais fácil a análise criptográfica.&lt;br /&gt;&lt;strong&gt;Integridade da Mensagem&lt;/strong&gt;: o destinatário deverá ser capaz de determinar se a mensagem foi alterada durante a transmissão.&lt;br /&gt;&lt;strong&gt;Autenticação do Remetente&lt;/strong&gt;: o destinatário deverá ser capaz de identificar o remetente e verificar que foi mesmo ele quem enviou a mensagem.&lt;br /&gt;&lt;strong&gt;Não-Repúdio ou Irretratabilidade do Emissor&lt;/strong&gt;: não deverá ser possível ao emissor negar a autoria da mensagem.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Enfim tem vários tipos de &lt;strong&gt;Criptografias.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;Uma visão geral de &lt;strong&gt;Senhas&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;A senha (PT-Brasil) ou palavra-chave (PT-Portugal), por vezes referida no inglês &lt;strong&gt;password&lt;/strong&gt;, é uma palavra ou uma &lt;strong&gt;ação secreta&lt;/strong&gt; previamente convencionada entre duas partes como forma de reconhecimento. Em um sistemas de computação, &lt;strong&gt;senhas&lt;/strong&gt; são amplamente utilizadas para &lt;strong&gt;Autenticar Usuários&lt;/strong&gt; e conceder-lhes &lt;strong&gt;privilégios&lt;/strong&gt; — para agir como &lt;strong&gt;administradores&lt;/strong&gt; de um sistema, por exemplo — ou permitir-lhes o acesso a informações personalizadas armazenadas no sistema em fim ela serve para ajudar a proteger sua &lt;strong&gt;privacidade&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;Uma visão geral de &lt;strong&gt;Backup&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Backups&lt;/strong&gt; em &lt;strong&gt;informática&lt;/strong&gt;, &lt;strong&gt;Cópia de Segurança&lt;/strong&gt; é a &lt;strong&gt;Cópia de Dados&lt;/strong&gt; de um dispositivo de armazenamento a outro para que possam ser restaurados em caso da perda dos dados originais, o que pode envolver apagamentos acidentais ou corrupção de dados.&lt;br /&gt;&lt;br /&gt;Vem se difundidos em vários meios de cópias de segurança incluem &lt;strong&gt;CD-ROM&lt;/strong&gt;,&lt;strong&gt; DVD&lt;/strong&gt;, &lt;strong&gt;disco rígido&lt;/strong&gt;, &lt;strong&gt;disco rígido externo&lt;/strong&gt; (&lt;strong&gt;compatíveis com USB&lt;/strong&gt;), &lt;strong&gt;fitas magnéticas&lt;/strong&gt; e a &lt;strong&gt;cópia de segurança externa&lt;/strong&gt; (&lt;strong&gt;online&lt;/strong&gt;). Esta transporta os dados por uma rede como a Internet para outro ambiente, geralmente para equipamentos mais sofisticados, de grande porte e alta &lt;strong&gt;segurança&lt;/strong&gt;. Outra forma pouco difundida de &lt;strong&gt;cópia de segurança&lt;/strong&gt; é &lt;strong&gt;feita via rede&lt;/strong&gt;. Na própria rede local de computadores, o &lt;strong&gt;administrador&lt;/strong&gt; ou o &lt;strong&gt;responsável&lt;/strong&gt; pela &lt;strong&gt;cópia de segurança grava os dados em um formato de arquivo&lt;/strong&gt;, processa e distribui as partes constituintes da cópia nos computadores da rede, de forma segura (&lt;strong&gt;arquivos são protegidos&lt;/strong&gt;), &lt;strong&gt;criptografada&lt;/strong&gt; &lt;strong&gt;(para não haver extração ou acesso aos dados na forma original&lt;/strong&gt;) e &lt;strong&gt;oculta&lt;/strong&gt; (&lt;strong&gt;na maioria das vezes o arquivo é ocultado&lt;/strong&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom &lt;strong&gt;Backups&lt;/strong&gt; é um meio de &lt;strong&gt;salvar as informaçãos&lt;/strong&gt; para não obter a perca da &lt;strong&gt;Base de Dados&lt;/strong&gt; do sistema ou qualquer aplicativo que obtenho informações é isso ai haha.&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Concluindo&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom é isto ai a &lt;strong&gt;Segurança&lt;/strong&gt; de um &lt;strong&gt;Banco de Dado&lt;/strong&gt;s ela contem estes procedimento básico qualquer um &lt;strong&gt;Banco de Dados&lt;/strong&gt; embreve irei citar mais sobre as &lt;strong&gt;Segurança&lt;/strong&gt;s voltada a cada especifico tipo de &lt;strong&gt;Banco como&lt;/strong&gt; exeplo &lt;strong&gt;PostgreSQL&lt;/strong&gt;, &lt;strong&gt;MySQL&lt;/strong&gt;, &lt;strong&gt;Oracle&lt;/strong&gt;, &lt;strong&gt;Firebird&lt;/strong&gt; e enfim muitos outros e também irei citar &lt;/span&gt;&lt;span style="font-family:arial;"&gt;outros meio como &lt;strong&gt;Invasão&lt;/strong&gt; e &lt;strong&gt;Vulnarabilidades&lt;/strong&gt; aos &lt;strong&gt;Banco de Dados&lt;/strong&gt; mas em outra catégoria ai está o link (&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Invasões aos Banco de Dados &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;e as&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Vulnerabilidade aos Banco de Dados&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;). É isso ai espero que gostem.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-776172604757900090?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/JerkXdVsTFE" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WmzgQX6-I/AAAAAAAAAFo/gByEcFWdON0/s72-c/cadeado.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/01/seguranca-de-banco-de-dados.html</feedburner:origLink></item><item><title>MySQL Proxy</title><link>http://feedproxy.google.com/~r/LinguagensDeBancoDeDados/~3/a-uMyUQpj-A/mysql-proxy.html</link><category>MySQL</category><author>elder-stroparo@bol.com.br (Elder Stroparo)</author><pubDate>Sun, 31 Jan 2010 07:33:25 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3441342879044051463.post-4646099833792906045</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WhucIsD6I/AAAAAAAAAFg/U38dPt2CYm8/s1600-h/MySQL_Proxy.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 320px;" src="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WhucIsD6I/AAAAAAAAAFg/U38dPt2CYm8/s320/MySQL_Proxy.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5432926344691060642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom hoje irei falar um pouquinho sobre o &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;MySQL Proxy&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; é uma aplicação, em fase inicial, que você instala entre sua aplicação e o &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;MySQL&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;Permite monitorar, analizar e transformar as comunicações. Sua flexibilidade permite um número ilimitado de usuários, balanceamento de carga, teste de falha, análise de &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;querys&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;filtros e modificações de querys&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; e muito mais.&lt;br /&gt;&lt;br /&gt;Disponível para &lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;Mac OSX&lt;/strong&gt;, &lt;strong&gt;FreeBS&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, &lt;strong&gt;IBM AIX&lt;/strong&gt; e &lt;strong&gt;Sun Solaris&lt;/strong&gt;, isso mesmo, para &lt;strong&gt;Windows&lt;/strong&gt; ainda não esta disponível por ter problemas com uma biblioteca &lt;strong&gt;libevent&lt;/strong&gt;, porém em breve estará disponível também.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Bom isto ai é um ele é um &lt;strong&gt;Otimizador de Banco de Dados &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;muito bom.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Downloads: &lt;strong&gt;&lt;a href="http://forge.mysql.com/wiki/MySQL_Proxy"&gt;MySQL Proxy&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3441342879044051463-4646099833792906045?l=elderstroparo.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/LinguagensDeBancoDeDados/~4/a-uMyUQpj-A" height="1" width="1"/&gt;</description><media:thumbnail url="http://1.bp.blogspot.com/_W4mx9wreaj4/S2WhucIsD6I/AAAAAAAAAFg/U38dPt2CYm8/s72-c/MySQL_Proxy.jpg" height="72" width="72" /><feedburner:origLink>http://elderstroparo.blogspot.com/2010/01/mysql-proxy.html</feedburner:origLink></item><copyright>Todos os direitos Reservados</copyright><media:credit role="author">Elder Stroparo</media:credit><media:rating>nonadult</media:rating><media:description type="plain">Banco de Dados</media:description></channel></rss>

