<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diário de um DBA &#187; Vida Real</title>
	<atom:link href="http://silasmendes.com/dba/category/vida-real/feed" rel="self" type="application/rss+xml" />
	<link>http://silasmendes.com/dba</link>
	<description>Tecnologia &#38; Banco de Dados</description>
	<lastBuildDate>Sun, 15 Apr 2012 12:20:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Seu banco de dados na nuvem! O que mudou?</title>
		<link>http://silasmendes.com/dba/sql-azure-o-que-mudou</link>
		<comments>http://silasmendes.com/dba/sql-azure-o-que-mudou#comments</comments>
		<pubDate>Tue, 10 Apr 2012 12:53:52 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[nuvem]]></category>
		<category><![CDATA[sql azure]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=1040</guid>
		<description><![CDATA[Hoje vamos “falar” um pouco sobre o SQL Azure; um SQL Server apto a gerenciar seu banco de dados na nuvem. A idéia do SQL Azure parte do mesmo princípio de outras soluções na nuvem: você paga pelo que usa, &#8230; <a href="http://silasmendes.com/dba/sql-azure-o-que-mudou">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h4>Hoje vamos “falar” um pouco sobre o SQL Azure; um SQL Server apto a gerenciar seu banco de dados na nuvem.</h4>
<h4>A idéia do SQL Azure parte do mesmo princípio de outras soluções na nuvem: você paga pelo que usa, tem alta disponibilidade desde planos mais básicos e reduz (ao menos teoricamente) custos com gerenciamento&#8230; mas tudo isso já foi abordado no <em>post</em> anterior, portanto, aqui focaremos nas principais características do SQL Azure e suas diferenças comparadas à versão stand-alone que instalamos em nossos servidores.</h4>
<h4><a href="http://silasmendes.com/dba/wp-content/uploads/2012/04/image_thumb.png"><img class="size-medium wp-image-1056 aligncenter" title="image_thumb" src="http://silasmendes.com/dba/wp-content/uploads/2012/04/image_thumb-300x192.png" alt="" width="300" height="192" /></a></h4>
<h4><strong><em>Transparência</em></strong></h4>
<h4>Em primeiro lugar, é preciso entender que como as demais soluções na nuvem, a administração do SQL Azure é <em>muito</em> transparente para o usuário. Se hoje, você DBA se preocupa com  as questões físicas da sua instância, como a localização dos seus datafiles, tamanho dos arquivos de log, rotinas de backup, recovery model, atualização de service packs, etc&#8230; esqueça. Tudo isso é abstraído no SQL Azure.</h4>
<h4>Comandos como <span style="color: #0000ff;">xp_cmdshell</span>, <span style="color: #0000ff;">backup database</span>, <span style="color: #0000ff;">restore database</span> não são suportados pelo SQL Azure.</h4>
<h4><strong>Bases de dados diferentes<br />
</strong></h4>
<h4>Uma mudança significante que pode afetar a forma como trabalhamos com o SQL Server é que no SQL Azure  não podemos realizar operações entre bases de dados diferentes; isso se aplica desde consultas, até cenários de replicação, database snapshot, mirroring e etc.</h4>
<h4><strong>Bancos de sistemas</strong></h4>
<h4>Outra coisa que você sentirá falta: o SQL Azure não expõe todas as bases de dados de sistema (model, tempdb, etc). A única exposta é a master, mas ela não tem exatamente o mesmo papel da master nas versões <em>stand-alone</em> e mesmo sendo o administrador da instância, não é possível criar objetos na master do SQL Azure.</h4>
<h4><strong>Segurança</strong></h4>
<h4>Na segurança, justamente por seu banco de dados estar na nuvem, não existe a opção de <em>Windows Authentication</em>; aqui você utilizará somente o <em>SQL Server authentication</em>.</h4>
<h4>Outras opções de segurança foram adicionadas para você administrar seu ambiente na nuvem. Você poderá, por exemplo, definir uma faixa de IPs que terão permissão para acessar sua instância.</h4>
<h4>Para o gerenciamento de logins utilizamos o <em>Azure Management Portal</em>. No Management Studio não temos mais interface para esta finalidade (mas ainda podemos mante-los via script).</h4>
<h4><strong>Desenvolvimento</strong></h4>
<h4>Para o desenvolvedor T-SQL não existem mudanças drásticas. Stored procedures, triggers, funções, transações, índices e etc são plenamente suportados.</h4>
<h4>Uma das principais mudanças é que nesta edição não é possível criar tabela temporária global. Consultas distribuídas, CLR, service broker também não são suportados.</h4>
<h4>Para ver uma lista completa do que não é suportado, consulte este <a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee336250.aspx" target="_blank">link</a>.</h4>
<h4><strong>Armazenamento</strong></h4>
<h4>Atualmente o SQL Azure em sua ediçao <em>Web Edition</em> permite armazenarmos até 5 GB; na ediçao <em>Business</em> o limite de armazenamento chega a 150 GB (percebemos aqui uma certa limitaçao que pode inviabilizar algumas soluçoes, mas certamente esta é uma limitaçao temporária).</h4>
<h4><strong>Resumindo&#8230;</strong></h4>
<h4>Pensar num SQL Server onde não temos sequer a opção de fazer backup parece assustador; mas é preciso compreender que<a href="http://silasmendes.com/dba/wp-content/uploads/2012/04/images.jpg"><img class="alignright size-full wp-image-1067" title="images" src="http://silasmendes.com/dba/wp-content/uploads/2012/04/images.jpg" alt="" width="158" height="158" /></a> este é o ponto focal do Azure: abstrair os pontos de administração!</h4>
<h4>Vimos aqui algumas das principais diferenças entre o SQL Azure e o SQL Server que instalamos em nossos servidores locais (stand-alone).</h4>
<h4>Nos próximos posts darei dicas de como começar a utilizar o SQL Azure e sobre como planejar a migraçao do seu banco de dados para a nuvem.</h4>
<h4>Por enquanto continuamos aqui, com a cabeça nas nuvens e os pés no chão ;)</h4>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/sql-azure-o-que-mudou/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Você na nuvem!</title>
		<link>http://silasmendes.com/dba/voce-na-nuvem</link>
		<comments>http://silasmendes.com/dba/voce-na-nuvem#comments</comments>
		<pubDate>Wed, 28 Mar 2012 01:02:48 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[nuvem]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=1013</guid>
		<description><![CDATA[Em meados de 2007 comecei a ouvir de forma recorrente a palavra “nuvem” invadir os círculos de bate papo da turma de TI. A idéia da nuvem era fortemente baseada no conceito de computação em grade, onde inúmeros computadores eram &#8230; <a href="http://silasmendes.com/dba/voce-na-nuvem">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h4><a href="http://silasmendes.com/dba/wp-content/uploads/2012/03/clouddw.jpg"><img class="alignleft size-full wp-image-1014" title="clouddw" src="http://silasmendes.com/dba/wp-content/uploads/2012/03/clouddw.jpg" alt="" width="226" height="269" /></a>Em meados de 2007 comecei a ouvir de forma recorrente a palavra “nuvem” invadir os círculos de bate papo da turma de TI. A idéia da nuvem era fortemente baseada no conceito de computação em grade, onde inúmeros computadores eram interligados e juntos somavam uma quantidade abundante de recursos computacionais. Grandes empresas como Amazon, Google e Microsoft começaram a explorar o lado comercial desta idéia, vendendo seus recursos para empresas que desejavam hospedar suas aplicações remotamente. O termo nuvem foi adotado porque o acesso a estes super conjunto de computadores se dá pela internet e para o cliente não importa necessariamente qual hardware está suportando esta estrutura; a idéia é justamente deixar essa infraestrutura transparente para os clientes.</h4>
<h4>Nesta epoca diversos “evangelistas” pregavam de forma veemente que dentro de poucos anos toda a estrutura de servidores das empresas seria descartada e tudo seria transportado para a nuvem: ERPs, CRMs, servidores de e-mail, bancos de dados&#8230; tudo estaria na nuvem. Isso levantou muita polêmica, mas a idéia tinha suas vantagens pois com isso as empresas teriam mais foco em seu próprio negócio e não teriam gastos diretos com manutenção de hardware, software, licenças, salas refrigeradas, consumo de energia e etc.</h4>
<h4>Participei desses círculos de forma bem neutra, pois algo que eu estranhava nesse cenário é que tudo dependia de um bom <em>link</em> com a internet e justamente, <a title="Pane na Telefônica" href="http://www.estadao.com.br/noticias/cidades,pane-na-telefonica-derruba-web-e-para-servicos-pelo-estado,200088,0.htm" target="_blank">em Julho de 2008 presenciamos uma pane na Telefônica </a>que deixou São Paulo desconectado; grandes empresas e inclusive o orgãos do governo ficaram sem <em>link</em> por horas e o prejuízo foi grande.</h4>
<h4>Num cenário desses, qual diretor de TI apostaria na hospedagem de seus serviços na nuvem, sendo que a depêndencia com um <em>link</em> é vital?!</h4>
<h4>De lá pra cá passaram-se 4 anos. O assunto “nuvem” ainda continua na crista da onda, mas já não de forma tão febril quanto antes. Mas o que tenho observado é que, sim, estamos aos poucos indo pra nuvem e a mudança está começando por nós, <em><strong>usuários</strong></em>.</h4>
<h4><a href="http://silasmendes.com/dba/wp-content/uploads/2012/03/sync-dropbox.jpg"><img class="alignleft size-medium wp-image-1015" title="sync-dropbox" src="http://silasmendes.com/dba/wp-content/uploads/2012/03/sync-dropbox-300x206.jpg" alt="" width="300" height="206" /></a>Hoje a agenda e fotos do meu celular estão sincronizados com a nuvem. Quando trocar de aparelho bastará associar meu login para ter tudo de volta. Atualmente também hospedo meus principais arquivos no DropBox, aplicativo onde armazeno meus arquivos na nuvem e sincronizo uma cópia em todos os PCs que possuo, inclusive tablets e celulares. HDs <strong><em>não</em></strong> são confiáveis, de uma hora pra outra dão um problema e te deixam na mão, então porque não deixar tudo na nuvem?</h4>
<h4>Por U$ 50,00 anuais tenho 200 GB de espaço no Google para armazenar meus vídeos e fotos. Isso mitiga todos os riscos? Não. É claro que o Google e o DropBox podem perder meus arquivos, mas o risco não é comparado ao ter meus arquivos num único HD. Essas empresas armazenam nossos arquivos em <em>datacenters</em> espalhados pelo mundo, com profissionais dedicados 24&#215;7 na manutenção destes ambientes.</h4>
<h4>Mas quais as vantagens da nuvem para nós usuarios, além da alta disponibilidade e a possibilidade de acessar seus arquivos de qualquer parte do mundo? Uma vantagem interessante é que você paga pelo que usa; se hoje 200 GB é muito para armazenar todas as suas fotos, então contrate 20 GB iniciais e pague somente U$ 5,00 anuais. Agora pense o quanto isto pode ser interessante pra sua empresa. Imagine aqueles períodos sazonais onde sua empresa tem grande demanda comercial e a necessidade de consumo de recursos computacionais é maior?!</h4>
<h4>Enfim; para essa coisa virar ainda é necessário muito investimento em infraestrutura no Brasil e quando isso se concretizar, eu acredito sim, que nós (empresas e usuários) estaremos nas nuvens!</h4>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/voce-na-nuvem/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>COMMIT 2011</title>
		<link>http://silasmendes.com/dba/commit-2011</link>
		<comments>http://silasmendes.com/dba/commit-2011#comments</comments>
		<pubDate>Mon, 26 Dec 2011 16:48:44 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[Feliz Ano Novo]]></category>
		<category><![CDATA[IBTA]]></category>
		<category><![CDATA[MCITP]]></category>
		<category><![CDATA[MCT]]></category>
		<category><![CDATA[ocp]]></category>
		<category><![CDATA[TCC]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=996</guid>
		<description><![CDATA[Escrevo este post ainda surpreso com a velocidade que este ano passou. Como previ no post inaugural de 2011, 365 dias é pouco para fazer tanta coisa&#8230; mas o que importa é que tentamos e realizamos algumas das metas iniciais &#8230; <a href="http://silasmendes.com/dba/commit-2011">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/COMMIT.png"><img class="alignleft size-full wp-image-999" title="COMMIT" src="http://silasmendes.com/dba/wp-content/uploads/2011/12/COMMIT.png" alt="" width="263" height="62" /></a>Escrevo este post ainda surpreso com a velocidade que este ano passou. Como previ no <a href="http://silasmendes.com/dba/begin-transaction-2011" target="_blank">post inaugural de 2011</a>, 365 dias é pouco para fazer tanta coisa&#8230; mas o que importa é que tentamos <em><strong>e realizamos</strong></em> algumas das metas iniciais :)</p>
<p>Fecho o ano formado em Banco de Dados pelo IBTA; o TCC foi um trabalho puxado, mas junto com meus camaradas <strong>Flavio Trigolo</strong> e <strong>Altair Alexandre</strong> conseguimos uma nota 10 de tirar o folego :) Sem dúvidas, o resultado foi fruto da dedicação e vontade em fazermos um trabalho de qualidade. Agradeço a esses dois caras pela super força!</p>
<p>Logo no início do ano <a href="http://silasmendes.com/dba/70-450-mcitp-dba" target="_blank">atualizei o MCITP para o SQL Server 2008</a> e adquiri o MCT; agora sou um instrutor oficial Microsoft :) Agora acreditem, o melhor do MCT eu descobri depois: a biblioteca disponível para os MCTs é sensacional, uma excelente fonte de estudos.</p>
<p>O OCP não rolou; e a desculpa é fajuta (mas verdadeira): faltou tempo.</p>
<p>O projeto atual está a todo vapor e estou trabalhando como nunca&#8230; mas é um projeto sensacional; pra resumir o cenário imagine: a construção de um ERP (do zero) para um grande varejista do mercado&#8230; é este o lugar que estou trabalhando.</p>
<p>Aqui no blog foram 5500 visitas em média por mês&#8230; infelizmente em contrapartida eu falhei com a meta dos 2 posts por mês; essa meta ficou aquém do que eu havia planejado, mas pretendo compensar esse desfalque em 2012.</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas1.jpg"><img class="aligncenter size-full wp-image-1010" title="estatisticas" src="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas1.jpg" alt="" width="475" height="171" /></a><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas.jpg"><br />
</a>Na vida pessoal, graças a Deus, a vida com a família tem ido muito bem. A filhota completa em Janeiro 1 ano de idade e tem crescido com muita saúde. Não há felicidade maior que isso para um pai fresco, risos&#8230;</p>
<p>Enfim, que venha 2012!</p>
<p>A você, meu amigo, meus sinceros votos de um ano rico em saúde e conhecimento. Continuaremos juntos por aqui.</p>
<p>Forte abraço,</p>
<p><em><strong>Silas Mendes</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/commit-2011/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Teched 2011</title>
		<link>http://silasmendes.com/dba/teched-2011</link>
		<comments>http://silasmendes.com/dba/teched-2011#comments</comments>
		<pubDate>Thu, 06 Oct 2011 02:00:45 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[denali]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[TechEd]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=971</guid>
		<description><![CDATA[Semana passada rolou o Teched 2011 e eu estive lá durante os 2 dias do evento. Reencontrei muitos amigos e conheci outros que só conhecia da comunidade virtual. Show de bola, fortalecendo o networking :) Assisti 8 trilhas e acho &#8230; <a href="http://silasmendes.com/dba/teched-2011">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/10/logo-teched-2011.png"><img class="alignleft size-full wp-image-979" title="logo-teched-2011" src="http://silasmendes.com/dba/wp-content/uploads/2011/10/logo-teched-2011.png" alt="" width="265" height="121" /></a>Semana passada rolou o Teched 2011 e eu estive lá durante os 2 dias do evento. Reencontrei muitos amigos e conheci outros que só conhecia da comunidade virtual. Show de bola, fortalecendo o <em>networking</em> :)</p>
<p>Assisti 8 trilhas e acho interessante tecer minhas considerações:</p>
<p><strong>General Session</strong></p>
<p>Essa foi a trilha de abertura do evento e abordou em resumo todas as novidades do mundo Microsoft para os próximos meses. Gostei. Teve um toque de show com direito a discurso do presidente da Microsoft Brasil, algumas demos apresentando o System Center 2012, Windows Phone 7, SQL Server Denali, Office 365, Cloud, Cloud, Cloud, Cloud (isso mesmo; acho que ouvi essa palavra umas 100 vezes, risos) e etc.</p>
<p>Em especial gostei:</p>
<ul>
<li> da notícia da fabricação do XBOX no Brasil;</li>
<li>da apresentação do Windows Phone e suas aplicações;</li>
<li>do System Center interagindo com dispositivos Android e iOS;</li>
<li>dos novos relatórios (super dinâmicos) do Reporting Services sendo exibidos/editados no browser (via SharePoint).</li>
</ul>
<p>Achei esta sessão um pouco longa; durou cerca de 3 horas&#8230; mas vamos falar um pouco das outras palestras:</p>
<p><strong>O que há de novo no Microsoft SQL Server Code-Named “Denali”</strong></p>
<p>Foi a segunda palestra que assisti e sinceramente, foi decepcionante. Não posso avaliar o conhecimento dos palestrantes, mas o conteúdo e a apresentação estavam muito aquém do que se espera de um evento desse porte. Sai dessa trilha na esperança de que o nível melhorasse nas próximas&#8230; e melhorou.</p>
<p><strong>Como montar um ambiente de alta disponibilidade com o Hyper-V</strong></p>
<p>O palestrante Rodrigo Immaginario mandou muito bem nessa sessão, abordando as vantagens e desvantagens das diferentes formas de implementação de um cluster + Hyper-V. O cara acessou o ambiente de produção dele no Espírito Santo e fez um <em>live migration</em> “no quente”. Gostei.</p>
<p><strong>Microsoft SQL Server Code-Named “Denali” AlwaysOn: Introduzindo a nova geração de soluções para alta disponibilidade</strong></p>
<p>Uma das melhores trilhas que assisti&#8230; Nilton Pinheiro fez uma  apresentação impecável da nova <em>feature</em> de alta disponibilidade do Denali: <strong><em>AlwaysOn</em></strong>. Foi nesta trilha que descobri algo muito interessante no Denali: agora poderemos instalar o SQL Server num Windows Server Core! Bacana!</p>
<p>No 2º dia assisti as seguintes trilhas:</p>
<p><strong>T-SQL: o que você deve saber do Microsoft SQL Server 2008 R2 e as novidades do SQL Server Code-Named “Denali”</strong></p>
<p>Excelente trilha com o Gustavo Maia. O cara apresentou com muita propriedade as novidades da linguagem T-SQL no SQL Server 2008 R2 e Denali, fazendo comparativos entre SGBDs, apresentando dados históricos, e etc. Enfim, essa palestra foi muito bacana porque eu ainda não tinha parado pra olhar as novidades do T-SQL no Denali; somou muito!</p>
<p><strong>Boas práticas para o SQL Server em ambientes virtualizados</strong></p>
<p>O palestrante Airton Leal mandou muito bem; era nítido o domínio do cara nas tecnologias de virtualização e ele deu dicas preciosíssimas para quem quer trabalhar com ambiente virtualizado. Uma informação muito interessante que ele disponibilizou: se você tem um sistema rodando numa maquina física e deseja transporta-lo para uma maquina virtual, esteja ciente que o <em>overhead </em>mínimo no desempenho será de 12%. Essa informação foi bem bacana, porque muita gente defende que não tem custo nenhum; afirmação que para mim sempre pareceu bem absurda. O único ponto que achei muito estranho nessa palestra: o título! Tudo era focado em boas práticas para ambientes virtualizados, porém, nada focado em SQL Server. Mesmo assim, somou!</p>
<p><strong>Cenários de otimização com o SQL Server “Denali” e 2008</strong></p>
<p>Trilha de alto nível técnico com o Luti e Fabiano Amorim&#8230; os caras deram dicas preciosas de otimização, todas muito bem argumentadas e demonstradas. Se eu não tivesse feito o curso de <em>internals</em> e de índices (com o Luti), diria que essa teria sido, para mim, a melhor trilha do evento, pois em 1 hora, os caras deram informações que você não encontra na maioria dos livros de <em>tunning</em>. Muito bom mesmo!</p>
<p><strong>Raio-X do SQL Server: Arquitetura interna do gerenciador de banco de dados</strong></p>
<p>Outra trilha fantástica! Inicialmente não tinha me programado para assistir essa palestra, porque fiz o curso de internals recentemente; mas mudei os planos mais na curiosidade e fui surpreendido pela apresentação do Catae e do Felipe Pimenta&#8230; em 1 hora os caras conseguiram resumir e discorrer sobre os principais pilares da arquitetura do SQL Server. Muita gente saiu dessa trilha com o cérebro fritando, mas os palestrantes foram ótimos e se esforçaram em serem o mais didático possível. Fechei o Teched com 2 trilhas nível 400 de verdade :)</p>
<p><strong>Conclusão</strong></p>
<p>O evento foi muito bom, com excelente organização e pontualidade. A maioria dos palestrantes eram “feras” e isso enriqueceu muito a experiência. Agora a pergunta que muita gente me faz: “voltaria ao evento em 2012?”. E eu respondo: o evento é muito bom, porém ainda acho que não vale o preço (principalmente quando o profissional paga do próprio bolso, risos). Enfim, poderiam dar uma melhorada no valor; ou quem sabe, no próximo ano, meu cliente resolve pagar essa conta; afinal ele é um dos principais beneficiados com esse investimento :D</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/teched-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BEGIN TRANSACTION 2011</title>
		<link>http://silasmendes.com/dba/begin-transaction-2011</link>
		<comments>http://silasmendes.com/dba/begin-transaction-2011#comments</comments>
		<pubDate>Thu, 13 Jan 2011 12:19:24 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[ano novo]]></category>
		<category><![CDATA[MCITP]]></category>
		<category><![CDATA[ocp]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=773</guid>
		<description><![CDATA[Um belo ano terminou e agora 2011 começa efetivamente pra mim. E já começou em ritmo alucinante com o nascimento da minha filha (vide post anterior); sem dúvidas uma experiência marcante, sensacional e indescritível. Apesar das noites sem sono (sim, &#8230; <a href="http://silasmendes.com/dba/begin-transaction-2011">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/Feliz-2011-Ano-Novo-7.jpg"><img class="alignleft size-medium wp-image-777" title="Feliz-2011" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/Feliz-2011-Ano-Novo-7-300x233.jpg" alt="" width="300" height="233" /></a>Um belo ano terminou e agora 2011 começa efetivamente pra mim. E já começou em ritmo alucinante com o nascimento da minha filha (<a href="http://silasmendes.com/dba/hidaddy" target="_blank">vide <em>post</em> anterior</a>); sem dúvidas uma experiência marcante, sensacional e indescritível. Apesar das noites sem sono (sim, já estou passando por essa fase, risos) a sensação é de que um evento que foge a nossa razão está ocorrendo a cada momento&#8230; e a gente percebe que tudo irá mudar daqui pra frente, e isso é <strong><em>fantástico</em></strong>!</p>
<p>Mas enfim, falando um pouco sobre profissão e bancos de dados, posso dizer que 2010 foi um ano memorável. Adquiri muito conhecimento, tanto em SQL Server como em Oracle. O SQL Server continua a minha principal plataforma de banco de dados, mas foi interessante estender o olhar para outro gerenciador e notar as diferenças, pontos fortes e fracos de ambos&#8230; percebi que é muito importante ter referências; afinal quando temos um único ponto de vista, não podemos falar com propriedade de outros&#8230;</p>
<p>Além disso entrei num projeto onde estou rodeado de uma dezena de DBAs. Além de excelentes contatos (risos), conquistei muitos amigos. Um ambiente assim é um sonho pra qualquer pessoa que deseja se desenvolver ainda mais. Implantamos a primeira parte de um sistema em produção, o processo exigiu muito esforço mas entrou no ar e foi gratificante.</p>
<p>Aqui no blog foram aproximadamente 3000 visitas por mês, pode parecer pouco, mas pra quem começou sem qualquer pretensão é um belo número!</p>
<p>Mas 2011 promete muito mais&#8230;</p>
<p>Pretendo escrever um pouco mais por aqui, tentando manter uma freqüência de pelo menos 2 posts por mês&#8230; aqui no projeto teremos o desafio de implantar a segunda parte do sistema em produção&#8230; último semestre da faculdade, junto com apresentação do TCC&#8230; quero adquirir mais uns MCITPs (e quem sabe um OCA) e enfim&#8230;</p>
<p>Se parar pra pensar é muita coisa pra fazer em 300 e poucos dias&#8230; mas vamos lá! Saúde e entusiasmo pra todos nós!</p>
<pre class="brush: sql; title: ; notranslate">
BEGIN TRANSACTION 2011
</pre>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/begin-transaction-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hi Daddy!</title>
		<link>http://silasmendes.com/dba/hidaddy</link>
		<comments>http://silasmendes.com/dba/hidaddy#comments</comments>
		<pubDate>Tue, 11 Jan 2011 18:55:55 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=767</guid>
		<description><![CDATA[Sempre conversamos aqui sobre bancos de dados&#8230; mas hoje &#8220;quebro o protocolo&#8221; para apresentar aos meus amigos nerds minha filhinha, nascida na última quarta-feira (05/01/2010)&#8230; sensação fantástica e indescritível&#8230; Demais :) Até +]]></description>
			<content:encoded><![CDATA[<p>Sempre conversamos aqui sobre bancos de dados&#8230; mas hoje &#8220;quebro o protocolo&#8221; para apresentar aos meus amigos <em>nerds </em>minha filhinha, nascida na última quarta-feira (05/01/2010)&#8230; sensação fantástica e indescritível&#8230;</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/P1060121_m.jpg"><img class="aligncenter size-medium wp-image-768" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/P1060121_m-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Demais :)</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/hidaddy/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ho Ho Ho!!!</title>
		<link>http://silasmendes.com/dba/ho-ho-ho</link>
		<comments>http://silasmendes.com/dba/ho-ho-ho#comments</comments>
		<pubDate>Fri, 24 Dec 2010 11:02:58 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Bla bla bla]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[boas festas]]></category>
		<category><![CDATA[felicidades]]></category>
		<category><![CDATA[feliz natal]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=755</guid>
		<description><![CDATA[:))))]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> </span></p>
<pre class="brush: sql; title: ; notranslate">
USE BOAS_FESTAS
GO
PRINT 'FELIZ NATAL!!!!!!!'
GO
</pre>
<p>:))))</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/ho-ho-ho/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Movimentando arquivos da base de dados</title>
		<link>http://silasmendes.com/dba/movimentando-arquivos</link>
		<comments>http://silasmendes.com/dba/movimentando-arquivos#comments</comments>
		<pubDate>Mon, 20 Dec 2010 21:15:43 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[ALTER DATABASE]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datafile]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[movimentar]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=743</guid>
		<description><![CDATA[Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc. Nosso cenário: Os arquivos de dados e &#8230; <a href="http://silasmendes.com/dba/movimentando-arquivos">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc.</p>
<p><strong>Nosso cenário</strong>: Os arquivos de dados e log da base de dados <strong>MoveArquivo</strong> estão no mesmo disco. Para otimizar a performance decidimos movimentar o arquivo de log para outro disco.</p>
<p>Existem diversos meios de realizar esta tarefa, a seguir iremos analisar uma delas (e a que particularmente acho mais prática):</p>
<p><strong>“Mão na massa”</strong></p>
<p>Primeiro, precisamos ter algumas informações em mãos; por exemplo, o nome lógico do arquivo que será alterado e o local atual do arquivo de log de nossa base de dados:</p>
<p>Para isso podemos utilizar o comando <strong>sp_helpdb</strong>:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg"><img class="aligncenter size-full wp-image-745" title="01_move_arquivo" src="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg" alt="" width="708" height="60" /></a></p>
<p>Ok; já sabemos onde está nosso arquivo de log. Agora precisamos alterar este endereço e para isto utilizamos o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
USE MASTER
GO
ALTER DATABASE MoveArquivo
MODIFY FILE (NAME = 'MoveArquivo_log', FILENAME = 'E:\SQLDbs\Log\MoveArquivo_log.ldf')
GO
</pre>
<p>Após execução do comando temos a seguinte mensagem:</p>
<p><span style="color: #ff0000;">The file &#8220;MoveArquivo_log&#8221; has been modified in the system catalog. <strong>The new path will be used the next time the database is started.</strong></span><strong></strong></p>
<p>Temos então, numa tradução livre, o alerta: <em>“O novo caminho só será utilizado após reinicialização da base”</em>. Então fique atento! Este comando não alterou efetivamente o endereço físico do arquivo; para concluir a operação precisamos reiniciar a base.</p>
<p>Para não afetarmos a operação dos outros bancos da instância e para reduzirmos o tempo de parada, não vamos mexer com o serviço do SQL Server; vamos apenas alterar o estado da base de dados, deixando-a offline:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET offline
GO
</pre>
<p>Após execução deste comando a base fica indisponível para qualquer usuário e agora podemos copiar fisicamente o arquivo de log para seu novo endereço. Neste momento, através de um CTRL + C, CTRL+ V (ou qualquer outro meio de copiar um arquivo no Windows) copiamos o arquivo para seu novo endereço.</p>
<blockquote><p><em>Atenção: tenha certeza de copiar o arquivo para o mesmo endereço informado no primeiro comando ALTER DATABASE.</em></p></blockquote>
<p>Finalizada a cópia, podemos reiniciar nossa base de dados com o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET online
GO
</pre>
<p>Pronto! Arquivo de log movimentado para novo endereço.</p>
<p>O mesmo procedimento pode ser utilizado para outros tipos de arquivos (como arquivos de dados). Para as bases de sistema (MASTER, TEMPDB, etc) não será possível utilizar a opção SET ONLINE/OFFLINE; neste caso teremos que reiniciar o serviço do SQL Server, afetando a disponibilidade de toda instância.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/movimentando-arquivos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Registrando modificações com o CDC</title>
		<link>http://silasmendes.com/dba/cdc-change-data-capture</link>
		<comments>http://silasmendes.com/dba/cdc-change-data-capture#comments</comments>
		<pubDate>Sun, 07 Nov 2010 12:03:26 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[capturar]]></category>
		<category><![CDATA[cdc]]></category>
		<category><![CDATA[change data capture]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logar]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=725</guid>
		<description><![CDATA[A edição Enterprise do SQL Server 2008 veio com uma funcionalidade nova e bastante interessante conhecida como CDC, abreviação de Change Data Capture. Esta função permite que o DBA capture e registre todas as mudanças feitas numa determinada tabela, de &#8230; <a href="http://silasmendes.com/dba/cdc-change-data-capture">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A edição Enterprise do SQL Server 2008 veio com uma funcionalidade nova e bastante interessante conhecida como CDC, abreviação de <strong>Change Data Capture</strong>. Esta função permite que o DBA capture e registre todas as mudanças feitas numa determinada tabela, de forma bastante simples.</p>
<p>Em versões anteriores do SQL Server, poderíamos utilizar <em>triggers</em> DML para suprir necessidades similares, e para isso tínhamos que programar a <em>trigger</em> que seria disparada e que gravaria a alteração em outra tabela; no entanto, este processo demandava esforço e exigia um controle na manutenção das <em>triggers </em>e tabelas de apoio. Com o CDC, a partir do momento que o DBA habilita-o em determinada tabela, o SQL Server se responsabiliza por toda a estrutura necessária para capturar e registrar as mudanças.</p>
<p><strong>Como funciona?</strong></p>
<p>O CDC captura e registra alterações baseado no log do SQL Server; basicamente ele utiliza o mesmo mecanismo da replicação transacional: o CDC lê o log do SQL Server e registra as alterações em suas tabelas. Note que este processo é assíncrono, ou seja, um dado é alterado e a alteração fica registrada no log; periodicamente é feita uma leitura no log e as alterações são registradas nas tabelas do CDC (criadas pelo SQL Server no <em>schema</em> CDC).</p>
<p><strong>&#8220;Mão na massa&#8221;</strong></p>
<p>Agora vamos exemplificar um cenário simples utilizando o CDC, monitorando uma única tabela.</p>
<p>No primeiro passo iremos criar a tabela que será utilizada em nossos testes:</p>
<pre class="brush: sql; title: ; notranslate">
-- Cria tabelas para teste

CREATE TABLE Funcionario (
codigoFuncionario INT NOT NULL,
nome VARCHAR(60),
idade INT,
numeroCPF CHAR(11)
);
GO
ALTER TABLE Funcionario
ADD CONSTRAINT PK_CodFunc
PRIMARY KEY (codigoFuncionario);
</pre>
<p>Agora ativamos o CDC na base de dados e na tabela Funcionario:</p>
<pre class="brush: sql; title: ; notranslate">
-- Habilita CDC banco

EXEC sys.sp_cdc_enable_db;
GO
-- Habilita CDC na tabela Funcionario

EXECUTE sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'Funcionario',
@role_name = 'roleCDC';
</pre>
<p>Ao habilitar o CDC, o SQL Server cria <em>jobs</em> que serão executados pelo SQL Server Agent. Estes <em>jobs</em> serão os responsáveis pelo registro das alterações nas tabelas do CDC; logo, para o CDC funcionar corretamente, lembre-se que o SQL Server Agent deve estar em execução.</p>
<p>Com o CDC habilitado, vamos popular a tabela Funcionario:</p>
<pre class="brush: sql; title: ; notranslate">
-- Carga de dados

INSERT INTO Funcionario (codigoFuncionario, nome, idade, numeroCPF)
VALUES
(1, 'Silas Mendes', 29, '08643238736'),
(2, 'Antonio Robberto', 36, '04686398765'),
(3, 'Joana Maxado', 45, '52341369844'),
(4, 'Roberto',null, null),
(5, 'Armando Filo', null, '41397601223');
</pre>
<p>Agora já podemos consultar a tabela do CDC que armazena as alterações na tabela Funcionario:</p>
<blockquote><p><em>Observe que a tabela do CDC está no esquema CDC.</em></p></blockquote>
<p><strong><em> </em></strong></p>
<blockquote><p><em>Lembre-se que este é um processo assíncrono, portanto ao executar o comando abaixo, pode ser que a tabela ainda não tenha sido atualizada; neste caso, repita a execução do comando.</em></p></blockquote>
<pre class="brush: sql; title: ; notranslate">

SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_insert2.jpg"><img class="aligncenter size-full wp-image-731" title="CDC_insert" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_insert2.jpg" alt="" width="730" height="46" /></a></p>
<p>No resultado são retornadas 9 colunas. Neste momento atente-se à coluna <strong>__$operation</strong>. Note que ela está com o valor: <strong>2</strong>. O valor 2 significa que estes registros foram resultado de inserções.</p>
<p>Vamos continuar manipulando os dados para verificar os reflexos das alterações nas tabelas do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
-- UPDATEs na tabela Funcionario

UPDATE Funcionario
SET Nome = 'Antonio Roberto'
WHERE codigoFuncionario = 2;

UPDATE Funcionario
SET Nome = 'Joana Machado'
WHERE codigoFuncionario = 3 ;

UPDATE Funcionario
SET Nome = 'Roberto Nespolitano',
Idade = 18, NumeroCPF = '08468354173'
WHERE codigoFuncionario = 3;
</pre>
<p>Observe o registro das alterações na tabela do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_update.jpg"><img class="aligncenter size-full wp-image-733" title="CDC_update" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_update.jpg" alt="" width="731" height="47" /></a></p>
<p>Agora observe que aumentou a quantidade de registros da tabela do CDC. Além das inserções (__$operation = 2) temos também o ANTES e DEPOIS nas operações de UPDATE. Observe agora que, onde o campo <strong>__$operation </strong>é igual a <strong>3</strong> o registro contém o estado antes do UPDATE, e onde o campo <strong>__$operation = 4</strong> temos o estado do registro após o UPDATE.</p>
<p>Para finalizar nosso exemplo, vamos realizar uma exclusão e verificar como essa alteração é registrada:</p>
<pre class="brush: sql; title: ; notranslate">
DELETE FROM Funcionario
WHERE codigoFuncionario IN (2,3);
</pre>
<p>Execute novamente a consulta na tabela do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_delete.jpg"><img class="aligncenter size-full wp-image-734" title="CDC_delete" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_delete.jpg" alt="" width="731" height="46" /></a></p>
<p>Agora notamos: onde o campo <strong>__$operation = 1 </strong>temos os registros que foram excluídos da tabela Funcionario.</p>
<p><strong>CONCLUSÃO</strong></p>
<p>Como observamos, basicamente são necessários 4 passos para utilizar o CDC:</p>
<ul>
<li>Utilizar a versão Enterprise (ou superior) do SQL Server 2008;</li>
<li>O serviço SQL Server Agent deve estar ativo;</li>
<li>Ativar o CDC no banco de dados utilizando a procedure <strong>sp_cdc_enable_db</strong>;</li>
<li>Ativar o CDC nas tabelas que serão monitoradas utilizando a procedure <strong>sp_cdc_enable_table</strong>.</li>
</ul>
<p>Vimos também que na tabela de registro do CDC temos diversos valores para o campo <strong>__$operation</strong>, sendo: <strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="139" valign="top"><strong>Comando DML</strong></td>
<td width="107" valign="top"><strong>__$operation</strong></td>
</tr>
<tr>
<td width="139" valign="top">DELETE</td>
<td width="107" valign="top">1</td>
</tr>
<tr>
<td width="139" valign="top">INSERT</td>
<td width="107" valign="top">2</td>
</tr>
<tr>
<td width="139" valign="top">Antes do UPDATE</td>
<td width="107" valign="top">3</td>
</tr>
<tr>
<td width="139" valign="top">Depois do UPDATE</td>
<td width="107" valign="top">4</td>
</tr>
</tbody>
</table>
<p>Hoje abordamos somente os processos básicos do CDC. Irei estender este assunto em outros  posts, onde pretendo abordar alguns detalhes interessantes desta nova <em>feature </em>do SQL Server 2008.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/cdc-change-data-capture/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DML, DDL?!? O que é isso?</title>
		<link>http://silasmendes.com/dba/dml-ddl-o-que-e-isso</link>
		<comments>http://silasmendes.com/dba/dml-ddl-o-que-e-isso#comments</comments>
		<pubDate>Mon, 18 Oct 2010 17:03:04 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[dcl]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=718</guid>
		<description><![CDATA[A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira: Comandos que definem dados; Comandos que manipulam dados; Comandos de controle de dados. Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente &#8230; <a href="http://silasmendes.com/dba/dml-ddl-o-que-e-isso">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div>
<p>A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira:</p>
<ul>
<li> Comandos que definem dados;</li>
<li>Comandos que manipulam dados;</li>
<li>Comandos de controle de dados.</li>
</ul>
<blockquote><p>Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente as citadas acima.</p></blockquote>
<ul>
<li><strong>DDL</strong></li>
</ul>
<p>Quando você cria um banco de dados, ele inicialmente está “vazio”; antes de começar a consultar e alterar dados é preciso definir onde e como as informações serão gravadas dentro do novo banco; então você cria diversas tabelas explicitando o tipo de dados de cada campo, as chaves estrangeiras, os índices, as regras e etc. Estes comandos de criação e alteração de estrutura são os comandos de DEFINIÇÃO dos dados, pois definem como os dados serão armazenados; em inglês são chamados de: <strong><em>Data Definition Language</em></strong><strong> (DDL)</strong>. Logo, quando falamos em comandos do tipo <strong>DDL</strong> estamos falando de comandos do tipo: CREATE, ALTER ou DROP; comandos que criam, alteram ou excluem objetos como tabelas, procedures, índices, relacionamentos e etc.</p>
<p>Exemplos de comandos DDL:</p>
<pre class="brush: sql; title: ; notranslate">

-- Cria uma tabela

CREATE TABLE Pessoa(
codigoPessoa char(11),
nomePessoa varchar(50));

-- Altera tabela

ALTER TABLE Pessoa
ADD numeroTelefone varchar(11);

-- Exclui tabela

DROP TABLE Pessoa;
</pre>
<ul>
<li><strong>DML</strong></li>
</ul>
<p>Depois que você criou suas tabelas, definiu relacionamentos, índices e etc., é hora de  manipular seus dados; os comandos SQL que MANIPULAM dados são os populares SELECT, INSERT, UPDATE e DELETE. Em inglês esses comandos são chamados de <em><strong>Data Manipulation Language</strong></em> o que explica a abreviação <strong>DML</strong>.</p>
<blockquote><p>Em algumas literaturas o comando SELECT não é considerado um comando de manipulação de dados, sendo enquadrado numa outra categoria: DQL, Data Query Language, em português: Linguagem de consulta.</p></blockquote>
<p>Exemplos de comandos DML:</p>
<pre class="brush: sql; title: ; notranslate">

-- Seleciona dados

SELECT nome+' '+sobrenome
FROM Pessoa;

-- Altera dados

UPDATE Pessoa
SET codigoPessoa = '35649869711';

-- Exclui dados

DELETE Pessoa;
</pre>
<ul>
<li><strong> DCL</strong></li>
</ul>
<p>Com o banco de dados pronto e rodando é importante definir quem poderá acessá-lo, enfim, precisamos definir a segurança do seu banco. Em inglês, os comandos responsáveis pelo controle dos dados são chamados de <em><strong>Data Control Language</strong></em> (<strong>DCL</strong>). Os comandos <strong>GRANT </strong>e <strong>REVOKE </strong>fazem parte deste grupo.</p>
<pre class="brush: sql; title: ; notranslate">

-- Permissão de seleção na tabela Pessoa para a usuária Maria

GRANT SELECT ON Pessoa TO Maria;

-- Permissão de seleção e inserção na tabela Pessoa para o usuário Alberto

GRANT SELECT, INSERT ON Pessoa TO Alberto;

-- Negando alterações na tabela Pessoa para usuários do grupo GRP_RH

DENY INSERT, UPDATE, DELETE ON Pessoa TO GRP_RH;
</pre>
<ul>
<li><strong> CONCLUSÃO</strong></li>
</ul>
<p>A linguagem SQL é constituída de diferentes tipos de comandos e estes comandos são agrupados em três categorias principais, sendo: comandos <strong>DDL </strong>as instruções que definem estruturas de armazenamento dos dados; <strong>DML </strong>os comandos que manipulam os dados e <strong>DCL </strong>os comandos que controlam o acesso aos dados.</p>
<p>Durante as atividades do dia-a-dia você utilizará com mais freqüência os comandos do tipo DDL e DML.</p>
<p>Até +</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/dml-ddl-o-que-e-isso/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

