Replicação de Dados com InterBase/Firebird

Tamanho: px
Começar a partir da página:

Download "Replicação de Dados com InterBase/Firebird"

Transcrição

1 Replicação de Dados com InterBase/Firebird By Matt Hopkins, Dunstan Thomas (UK) Ltd. Borland Developers Conference 1998 Este artigo irá descrever os conceitos básicos da replicação de dados e como isto pode ser implementado de maneira relativamente simples usando as características embutidas no InterBase/Firebird. O que é Replicação de Dados? Replicação de dados é copia de dados para uma ou mais Bases de Dados de forma que a informação seja consiste em todas as bases. Existem dois tipos básicos de replicação síncrona e assíncrona. Com replicação síncrona, todas as cópias ou réplicas dos dados são mantidas exatamente sincronizadas e consistentes. Se uma cópia é atualizada as mudanças serão imediatamente aplicadas para todas as outras bases de dados com a mesma transação. A replicação síncrona é apropriada quando esta exata consistência é importante para o negócio. Com replicação assíncrona, ou armazene e replique, as cópias dos dados ficarão temporariamente desincronizadas. Se uma cópia é atualizada, a mudança será aplicada e propagada para as outras cópias num segundo passo, em uma transação separada que pode ocorrer segundos, horas ou dias mais tarde. As cópias por outro lado podem ficar temporariamente sem sincronia, mas a uma certa altura os dados irão convergir para um mesmo valor em todas as cópias. Este artigo descreverá exclusivamente a replicação assíncrona de dados. Quais Componentes são necessários para a Replicação de Dados? Capturando as mudanças da Origem dos Dados Todas as estratégias de replicação de dados requerem um método para capturar as mudanças em uma base de dados replicada. Estão aqui dois mecanismos: Log de Transações e Triggers (Gatilhos). O log de transação se parece com um mecanismo chamado log sniffing que copia as transações marcadas para replicação para uma área de preparação para transmissão. Esta técnica é argumentada por ter baixo impacto no servidor da base dados por que ela requer um mínimo de utilização da CPU quando esta lendo o log em memória e escrevendo para o disco. Isto é implementado em produtos de replicação por fornecedores como Informix, Sybase, e MS SQL/Server. O segundo mecanismo é usar triggers da base de dados para propagar as mudanças quando elas ocorrem em uma tabela de log da base de dados para transmissão. Como a linguagem procedural da base de dados pode ser usada para estes métodos, ela provê maior flexibilidade em decidir quais os dados serão replicados. Esta técnica de replicação é implementada por fornecedores como Ingress e Oracle. Esta será também a técnica que nós utilizaremos quando replicarmos com InterBase/Firebird. Transmitir Mudanças da Base de Dados Origem para todas as Bases de Dados Alvo Transmitir mudanças para replicação requer softwares que leiam os logs (registros) de mudanças e se conectem a todos os servidores de bases de dados alvo localizados em uma LAN ou WAN e aplique estas mudanças na base de dados alvo. Este software é conhecido como gerenciador de replicação e devem também gerar log s de erros e conflitos de atualização. Como estes Componentes de Replicação de Dados podem ser Implementados em InterBase/Firebird? Logando as Mudanças dos Dados Certo, para criarmos o nosso ENGINE de replicação nós primeiro precisamos criar duas Bases de Dados de exemplo (origem e destino) com duas tabela idênticas em cada um.

2 CREATE DATABE "source.gdb" PAGE_SIZE 1024 CREATE TABLE TEAMS ( TEAM_ID INTEGER NOT NULL, TEAM_NAME VARCHAR(100), TEAM_MGR VARCHAR(40), PRIMARY KEY (TEAM_ID)); CREATE TABLE CHANGES ( CHANGE_ID INTEGER NOT NULL, CHANGE_TYPE CHAR(1) NOT NULL, SOURCE_KEY_FIELD VARCHAR(31) NOT NULL, SOURCE_KEY INTEGER NOT NULL, SOURCE_TABLE VARCHAR(31), USERNAME VARCHAR(31), PRIMARY KEY (CHANGE_ID)); CREATE GENERATOR NEW_TEAM_ID; CREATE GENERATOR NEW_CHANGE_ID; Agora vamos adicionar a trigger para a tabela CHANGES para pegar o valor único do generator do InterBase/Firebird. CREATE TRIGGER CHANGES_NEWID FOR CHANGES BEFORE INSERT NEW.CHANGE_ID = GEN_ID(NEW_CHANGE_ID,1); END Repare que nós não estamos adicionando uma trigger para gerar um único ID para a tabela TEAMS; a razão para isto será discutida na próxima seção. Agora que temos nossas bases de dados de exemplos, nós precisamos criar um mecanismo para logar todas as mudanças nas nossas tabelas. Como mencionado anteriormente, nós incorporaremos um método trigger para logar as mudanças das nossas tabelas para replicação. Esta técnica nos traz o benefício de ser fácil de usar, ao contrário dos log s de transação, permitem o uso de uma lógica de programação personalizada através da linguagem procedural do InterBase/Firebird. Como são três os tipos de mudanças que podem ocorrer em uma tabela Inserção, Atualização e Deleção, nós precisaremos três triggers para cada tabela que será replicada: /* After an Insert */ CREATE TRIGGER TEAMS_REPL_INSERT FOR TEAMS AFTER INSERT INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("I","TEAM_ID",NEW.TEAM_ID,"TEAMS",USER);

3 /* After an Update */ CREATE TRIGGER TEAMS_REPL_UPDATE FOR TEAMS AFTER UPDATE INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("U","TEAM_ID",NEW.TEAM_ID,"TEAMS",USER); /* After a Delete */ CREATE TRIGGER TEAMS_REPL_DELETE FOR TEAMS AFTER DELETE INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("D","TEAM_ID",OLD.TEAM_ID,"TEAMS",USER); Isto é tudo o que é necessário para logar mudanças de dados para replicação de dados em InterBase/Firebird. Observe que por causa da simplicidade, nós precisamos que as tabelas replicadas tenham uma chave inteira única e que somente este é o que será armazenado na tabela CHANGES. Nós podemos armazenar todos valores dos campos que foram mudados, mas como nós replicaremos um SNAPSHOT dos dados armazenando apenas as chaves e a operação, nós podemos pegar o valor corrente em cada tabela com o mecanismo de replicação. Uma coisa a mais antes de passarmos para o mecanismo de replicação nós precisaremos criar a base de dados de destino com o mesmo metadata da origem. Isto pode ser feito através da geração da cópia da base de dados origem com o flag metadadata-only marcado e restaurar esta cópia no destino.gdb. Replicando as Mudanças nos Dados Agora nós iremos criar o servidor de replicação utilizando Delphi 32-bit. A idéia é que o usuário possa configurar a replicação para um certo tempo ou acioná-la manualmente pressionando um botão Replicar Agora. Um log de todas as atividades será mostrado em Memo e todos os erros que ocorrerem serão mostrados outro Memo. O alias de origem e o alias alvo serão passados como parâmetros de linha de comando, algo como isto: C:\REPLD SOURCEDB TARGETDB

4 O fonte para garantir que serão sempre dois parâmetros é este: if (ParamStr(1) = '') or (ParamStr(2) = '') then MessageDlg('Usage: "REPLD.EXE SOURCE_ALI TARGET_ALI"',mtError,[mbOK],0) Else Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; Toda replicação será feita em um procedimento Replicate, como este: procedure TForm1.Replicate; var qrychangelist : TQuery; strchangetype : String; qrychangelist := TQuery.create(Application); with qrychangelist do DatabaseName := 'SourceDB'; sql.add('select * from changes'); open; while not eof do if (fieldbyname('change_type').asstring = 'I') then strchangetype := 'Insert'; ReplicateInsert(fieldByName('SOURCE_TABLE').asString, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger) end else if (fieldbyname('change_type').asstring = 'U') then strchangetype := 'Update'; ReplicateUpdate(fieldByName('SOURCE_TABLE').asString, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger) end else if (fieldbyname('change_type').asstring = 'D') then strchangetype := 'Delete'; ReplicateDelete(fieldByName('SOURCE_TABLE').asString, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger) memolog.lines.add( DateTimeToStr(Now)+' '+strchangetype+ ' '+fieldbyname('source_key').asstring+ ' on '+fieldbyname('source_table').asstring); DeleteFromChanges(fieldByName('CHANGE_ID').asInteger); next;

5 close; qrychangelist.free; E para cada ação (Inserir, Deletar, Atualizar) um procedimento individual é chamado desta forma: Replicar Inserções: procedure TForm1.ReplicateInsert(const strtablename, strkeyfield: String; const ikey: Integer); var qrysource, qrytarget : TQuery; i : SmallInt; qrysource := TQuery.create(Application); with qrysource do DatabaseName := 'SourceDB'; with sql do add('select * from '+strtablename); add(' where ('+strkeyfield+' = '+IntToStr(iKey)+');'); open; while not eof do qrytarget := TQuery.create(Application); with qrytarget do DatabaseName := 'TargetDB'; with sql do add('insert into '+strtablename); add('('); for i := 0 to qrysource.fieldcount-1 do if (i < qrysource.fieldcount-1) then add(' '+qrysource.fields[i].fieldname+',') else add(' '+qrysource.fields[i].fieldname) add(')'); add('values'); add('('); for i := 0 to qrysource.fieldcount-1 do

6 if (i < qrysource.fieldcount-1) then add(' :'+qrysource.fields[i].fieldname+',') else add(' :'+qrysource.fields[i].fieldname) add(')'); prepare; for i := 0 to qrysource.fieldcount-1 do qrytarget.params[i].asstring := qrysource.fields[i].asstring; execsql; qrytarget.free; next; close; except on e: Exception do memoerrors.lines.add(datetimetostr(now)+' '+e.message); qrysource.free; Replicar Atualizações: procedure TForm1.ReplicateUpdate( const strtablename, strkeyfield: String; const ikey: Integer); var qrysource, qrytarget : TQuery; i : SmallInt; qrysource := TQuery.create(Application); with qrysource do DatabaseName := 'SourceDB'; with sql do add('select * from '+strtablename); add(' where ('+strkeyfield+' = '+IntToStr(iKey)+');'); open; while not eof do

7 qrytarget := TQuery.create(Application); with qrytarget do DatabaseName := 'TargetDB'; with sql do add('update '+strtablename); add('set'); for i := 0 to qrysource.fieldcount-1 do if (i < qrysource.fieldcount-1) then add(' '+qrysource.fields[i].fieldname+ ' = :'+qrysource.fields[i].fieldname+',') else add(' '+qrysource.fields[i].fieldname+ ' = :'+qrysource.fields[i].fieldname) add(' where ('+strkeyfield+' = '+IntToStr(iKey)+');'); prepare; for i := 0 to qrysource.fieldcount-1 do qrytarget.params[i].asstring := qrysource.fields[i].asstring; execsql; qrytarget.free; next; close; except on e: Exception do memoerrors.lines.add(datetimetostr(now)+' '+e.message); qrysource.free;

8 Replicando Deleções: procedure TForm1.ReplicateDelete(const strtablename, strkeyfield: String; const ikey: Integer); var qrysource : TQuery; i : SmallInt; qrysource := TQuery.create(Application); with qrysource do DatabaseName := 'TargetDB'; sql.add('delete from '+strtablename); sql.add(' where ('+strkeyfield+' = '+IntToStr(iKey)+')'); execsql; execsql; except on e: Exception do memoerrors.lines.add(datetimetostr(now)+' '+e.message); qrysource.free; Note que este exemplo não suporta tipos BLOB. É necessário um pouco mais de código para implementar esta funcionalidade, mas é possível utilizá-los. Agora, conecte o value do SpinBox com o timer e então você ajusta o ciclo de replicação: procedure TForm1.SpinEdit1Change(Sender: TObject); Timer1.Interval := (SpinEdit1.Value * 1000); Execute isto, e enquanto REPLD está rodando, faça algumas mudanças na tabela TEAMS na base de dados de origem certificando-se de adicionar um valor de chave única e então cheque a base de dados alvo (depois do ciclo de replicação) para ver as mudanças replicadas. Replicação Bi-direcional Enquanto estiver na base de dados alvo, cheque as mudanças da tabela. Você pode observar que as mudanças replicadas da base de dados de origem também aparecem nesta tabela. O problema é que o mecanismo para logar nossas mudanças não diferencia entre aquelas mudanças feitas pelo usuário e as mudanças feitas pelo mecanismo de replicação. Se nós iniciarmos uma replicação bi-direcional usando nosso REPLD sem especificar um usuário de replicação nós podemos criar um loop infinito. Portanto, nós necessitaremos criar um usuário de replicação para este exemplo nós o chamaremos de REPLICATE em cada servidor InterBase/Firebird que estiver rodando e recusar as mudanças feitas por este usuário. Isto faz que tenhamos que mudar as trigger s de log de mudanças para cada tabela que necessite replicação como segue:

9 /* After an Insert */ ALTER TRIGGER TEAMS_REPL_INSERT FOR TEAMS AFTER INSERT IF (USER <> "REPLICATE") THEN INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("I","TEAM_ID",NEW.TEAM_ID,"TEAMS",USER); /* After an Update */ ALTER TRIGGER TEAMS_REPL_UPDATE FOR TEAMS AFTER UPDATE IF (USER <> "REPLICATE") THEN INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("U","TEAM_ID",NEW.TEAM_ID,"TEAMS",USER); /* After a Delete */ ALTER TRIGGER TEAMS_REPL_DELETE FOR TEAMS AFTER DELETE IF (USER <> "REPLICATE") THEN INSERT INTO CHANGES (CHANGE_TYPE, SOURCE_KEY_FIELD, SOURCE_KEY, SOURCE_TABLE,USERNAME) VALUES ("D","TEAM_ID",OLD.TEAM_ID,"TEAMS",USER); Agora nós rodaremos duas versões do REPLD: C:\REPLD SOURCEDB TARGETDB C:\REPLD TARGETDB SOURCEDB E quando nós formos logar nestes bancos, nós precisaremos logar como REPLICATE. Isto nos proverá uma replicação bi-direcional. Você pode notar que quando você move de um modelo de replicação mestre-escravo para um modelo ponto-a-ponto muitas complexidades ao redor devem ser consideradas antes de implementar a replicação. Estas dicas, e como fazer uso de algumas delas são descritas na próxima seção.

10 Replicando as Mudanças Quando Ocorrem (próximo à replicação síncrona) Se nós precisarmos replicar as tabelas quando elas são alteradas e não em um determinado ciclo de tempo, nós termos que utilizar os mecanismos de eventos do InterBase/Firebird. Isto requer dois passos gerar (ou postar) um evento e responder a este evento. Para gerar o evento, nós precisaremos adicionar uma nova trigger na tabela CHANGES: CREATE TRIGGER CHANGES_ALERT FOR TEAMS AFTER INSERT POST_EVENT "NEW_CHANGE"; Para responder ao evento, nós precisaremos adicionar um componente IBEventAlerter a nossa aplicação REPLD, registrando o interesse no evento NEW_CHANGE pela adição disto na propriedade Events, e ligando o evento OnEventAlert ao procedimento replicate: procedure TForm1.IBEventAlerter1EventAlert(Sender: TObject; EventName: string; EventCount: Longint; var CancelAlerts: Boolean); Replicate; Tente isto. Replicando Tabelas com Chaves Compostas Para simplificarmos, no exemplo seguinte nós iremos replicar somente tabelas com índice simples (inteiros). A mesma técnica, com pequenas alterações, pode ser usada para manusear tabelas com índices compostos. A principal diferença entre manusear chaves compostas mistas e chaves inteiras simples é a forma como as mudanças são logadas. Ao invés de uma simples tabela CHANGES, no caso de chaves compostas é necessário uma tabela de "log" para cada tabela base que será replicada. Replicar através uma WAN com R (Remote Access Services) O serviço de Acesso Remoto (R) em Windows NT e Rede Discada (Dial-Up) em Windows 95 permitem que muitos serviços possam estar disponíveis em uma rede que pode ser acessada através de um modem. Isto quer dizer que se quisermos podemos modificar o mecanismo de replicação para replicarmos bases remotas através de um modem, adicionando suporte à R. O caminho mais fácil em Delphi para implementar R é através de um componente. Existe uma enorme quantidade de componentes shareware e freeware para isto na Internet. Para estes exemplo, nós usaremos TRas do Daniel Polistchuck que está disponível em Como o componente e a API R descomplicou as coisas para nós, adicionar R ao REPLD precisará somente algumas poucas linhas de código. Primeiro nós precisamos modificar o procedimento Replicate e então este chamará a conexão R quando as mudanças forem replicadas.

11 procedure TForm1.Replicate; with qrychangelist do DatabaseName := 'SourceDB'; sql.add('select * from changes'); if active then close; open; if (recordcount > 0) then memolog.lines.add(datetimetostr(now)+' Dialing DT'); R1.EnName := 'DT'; R1.Connect; Como você pode ver, nós adicionamos um teste para verificar se existem registros e chamamos o componente R para chamar a conexão DT. Nós também teremos que mover o resto do código que existia anteriormente para o evento OnConnect do componente R e tornar a query (qrychangelist) global para o form: procedure TForm1.R1Connect(Sender: TObject); var strchangetype : String; with qrychangelist do memolog.lines.add(datetimetostr(now)+' Connected to DT'); while not eof do if (fieldbyname('change_type').asstring = 'I') then strchangetype := 'Insert'; ReplicateInsert( fieldbyname('source_table').asstring, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger) end else if (fieldbyname('change_type').asstring = 'U') then strchangetype := 'Update'; ReplicateUpdate( fieldbyname('source_table').asstring, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger) end else if (fieldbyname('change_type').asstring = 'D') then strchangetype := 'Delete'; ReplicateDelete( fieldbyname('source_table').asstring, fieldbyname('source_key_field').asstring, fieldbyname('source_key').asinteger)

12 memolog.lines.add( DateTimeToStr(Now)+' '+strchangetype+' '+ fieldbyname('source_key').asstring+ ' on '+fieldbyname('source_table').asstring); DeleteFromChanges(fieldByName('CHANGE_ID').asInteger); next; close; R1.Disconnect; memolog.lines.add(datetimetostr(now)+' Disconnected from DT'); Isto é tudo que nós precisamos para conectar a uma base remota, replicando qualquer mudança, e então desconectando. Isto é simples? Não. Com a replicação vem um amontoado de problemas que necessitam ser prevenidos através de boas decisões, planejamento adequado e algumas vezes uma boa programação no software. Seguem algumas dicas: Conflitos de Atualização Assegurar a convergência em ambientes de replicação assíncrona é crítico para toda aplicação. De qualquer forma, o que acontece se o mesmo dado (Ex.: a mesma coluna na mesma linha) é atualizado em duas bases ao mesmo tempo, ou o mais precisamente dentro do mesmo intervalo de replicação? Isto é conhecido como um conflito de atualização. Para assegurar a convergência, conflitos de atualização devem ser detectados e resolvidos para que então o dado tenha o mesmo valor em cada base. Quanto mais freqüente você propagar as suas mudanças (isto é, menos intervalo de replicação ou período de tempo), menos conflitos de atualização ocorrerão. Alternativamente, conflitos de atualização podem ser evitados pela limitação de posse ou o direito de atualização dado à um elemento para uma base. De fato, muitos acreditam que a resolução de conflitos é um processo que preferencialmente cabe ao desenvolvedor de software. Pela eliminação de possibilidades de conflitos através de planejamento e procedimento, o software não precisará resolver conflitos, que em teoria nunca ocorrerão. Esta visão, por outro lado, é um tanto quanto limitada quando clientes precisam que várias opções para resolução de conflitos sejam construídas na ferramenta de replicação. Chaves Únicas e Generators Tipicamente quando trabalhamos com chaves inteiras únicas, uma trigger before insert (antes da inserção) é adicionada com chamadas a geradores de números para adicionar novos valores. Quando trabalhamos com replicação isto pode gerar problemas. O problema é manter a sincronização entre duas ou mais bases de dados. Dê uma olhada no seguinte exemplo: Na primeira base, o gerador usado para uma certa tabela é 5. Quando um novo registro é adicionado, um trigger incrementa to valor do gerador em 1 e fornece 6 para a chave do novo registro. O registro é replicado para uma outra base de dados identica. Na base dois, o valor do gerador é 100. Quando o registro da primeira base é inserido na tabela correspondente, o trigger sobrepõe o 6 com o novo valor incrementado, valor 101. A solução tem duas partes. A primeira é confiar no cliente para dar valores ás chaves e não usar triggers. Segundo, reservar blocos de números para as várias base e então cada uma será dona de certos valores de chave. Um integer em Interbase/Firebird pode armazenar até 2 bilhões de números, então, cada bloco pode ser dividido em um conjunto de milhões, se necessário.

13 Os geradores de cada base podem ser inicializados com o número inicial de cada bloco usando-se os comando SET GENERATOR: SET GENERATOR GEN_NAME TO ; Inicialização Se você replicar a fonte de dados nos alvos, então você deve inicialiazar aqueles alvos de maneira que iniciem em sincronia com a fonte. Tipicamente, você pode fazer isto com uma cópia completa dos dados para a base alvo; simplesmente implementando um dump da base origem e recarregando isto na base alvo. Mudanças na DDL O que acontece quando você muda o metadata? Se você adicionar um campo a uma tabela em uma base, estas mudanças também precisarão ser feitas em todas as bases replicadas. Sumário Replicação de bases de dados é um tópico interessante e está sendo requisitado (ou preferencialmente exigido) por mais e mais clientes em todo o mundo, de fato, mais de 50% dos projetos iniciados em dezembro de 1996 na Dunstan Thomas tem replicação como um requerimento de sistema. A replicação tem o potencial de prover maior rendimento, tempo de resposta rápido e reduzir custo de comunicação e gargalos nas redes para usuários-finais geograficamente dispersos. Com InterBase/Firebird e o poder do Microsoft R, replicação de dados não é somente possível, mas está disponível hoje. Artigo Original: Matt Hopkins Tradução e adaptação: Comunidade Firebird de Língua Portuguesa Visite a Comunidade em: Jiancarlos Kleinebing polo@softline.com.br A Comunidade Firebird de Língua Portuguesa foi autorizada pelo Autor do Original para elaborar esta tradução.

Replicação de Dados no Interbase

Replicação de Dados no Interbase Replicação de Dados no Interbase Por Matt Hopkins, Dunstan Thomas(UK) LTD.Borland Developers Conferece 1998 - nessa época ainda não existia o componente IBReplicator Origem: http://www.ibphoenix.com/ibp_howto10.html

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:

Leia mais

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO Questão : 45 71 79 A questão 45 do código 04, que corresponde à questão 71 do código 20 e à questão 79 do código 88 Nº de Inscrição: 4020557 Considere as tabelas abaixo: Pessoal e Endereco: Pessoal Endereco

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13 ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13 Índice 1. Administração de SGBDs - Continuação...3 1.1. Recuperação (Recovery)... 3 1.1.1. Recuperação de sistema... Erro! Indicador não definido. 1.1.2. Recuperação

Leia mais

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL VERSÃO 359 U N I P A C K NOTA FISCAL ELETRÔNICA CONTENDO ITENS COM CFOP S DISTINTOS RIO DE JANEIRO 25 DE JULHO DE 2013 SUMÁRIO 1- INTRODUÇÃO... 03 2- MOTIVAÇÃO... 03

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Tabelas vista de estrutura

Tabelas vista de estrutura Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

Modelo Cliente/Servidor Por HIARLY ALVES

Modelo Cliente/Servidor Por HIARLY ALVES UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE CONCEITOS Cliente x Servidor. Cliente É um programa (software) executado

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Laboratório de Banco de Dados II Aula 1. Stored Procedures Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome

Leia mais

Bases de Dados 2007/2008. Aula 8

Bases de Dados 2007/2008. Aula 8 Bases de Dados 2007/2008 Aula 8 1. T-SQL 2. VARIÁVEIS 3. CURSORES 4. PROCEDIMENTOS 5. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. www.devm edia.com.br [versão para im pressão] MySQL TRIGGERS Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. MySQL TRIGGERS Neste artigo, serão apresentados

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

Informática básica Telecentro/Infocentro Acessa-SP

Informática básica Telecentro/Infocentro Acessa-SP Informática básica Telecentro/Infocentro Acessa-SP Aula de hoje: Verificando data e hora, desligando o computador, janelas, copiar colar, excluindo um arquivo. Prof: Lucas Aureo Guidastre Verificando data

Leia mais

Comandos de repetição while

Comandos de repetição while Programação de Computadores I UFOP DECOM 2014 2 Aula prática 6 Comandos de repetição while Resumo Nesta aula vamos trabalhar com problemas cuja solução envolve realizar um cálculo ou tarefa repetidas vezes,

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery Sistemas Operacionais Curso Técnico Integrado Profa: Michelle Nery Conteúdo Programático CONTAS DE E GRUPOS DE O Microsoft Management Console - MMC Permissões de Segurança de um Console Contas de Usuários

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Data Transformation Services (DTS) por Anderson Ferreira Souza

Data Transformation Services (DTS) por Anderson Ferreira Souza Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Integração de livros fiscais com o Microsoft Dynamics AX 2009

Integração de livros fiscais com o Microsoft Dynamics AX 2009 Microsoft Dynamics AX Integração de livros fiscais com o Microsoft Dynamics AX 2009 White paper Este white paper descreve como configurar e usar a integração de livros fiscais entre o Microsoft Dynamics

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS LINGUAGEM SQL PARA CSULTAS EM MICROSOFT ACCESS Objetivos: Neste tutorial serão apresentados os principais elementos da linguagem SQL (Structured Query Language). Serão apresentados diversos exemplos práticos

Leia mais

Banco de Dados. Profª. Ana Leda

Banco de Dados. Profª. Ana Leda Banco de Dados Profª. Ana Leda Introdução 1 DADO PROCESSAMENTO INFORMAÇÃO 2 Dados x Informação DADO = REPRESENTAÇÃO DE UM FATO, OBJETO, EVENTO, PESSOA, ETC. ENTIDADE = FATO, OBJETO, EVENTO, PESSOA, ETC,

Leia mais

Modem e rede local. Guia do usuário

Modem e rede local. Guia do usuário Modem e rede local Guia do usuário Copyright 2007 Hewlett-Packard Development Company, L.P. As informações contidas neste documento estão sujeitas a alterações sem aviso. As únicas garantias para produtos

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

RELATÓRIOS GERENCIAIS

RELATÓRIOS GERENCIAIS RELATÓRIOS GERENCIAIS Neste treinamento vamos abordar o funcionamento dos seguintes relatórios gerenciais do SisMoura: Curva ABC Fluxo de Caixa Semanal Análise de Lucratividade Análise Financeira o Ponto

Leia mais

Segurança. Guia do Usuário

Segurança. Guia do Usuário Segurança Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Microsoft é uma marca registrada da Microsoft Corporation nos Estados Unidos. As informações contidas neste documento

Leia mais

MANUAL DA SECRETARIA

MANUAL DA SECRETARIA MANUAL DA SECRETARIA Conteúdo Tela de acesso... 2 Liberação de acesso ao sistema... 3 Funcionários... 3 Secretaria... 5 Tutores... 7 Autores... 8 Configuração dos cursos da Instituição de Ensino... 9 Novo

Leia mais

Primeiros passos das Planilhas de Obra v2.6

Primeiros passos das Planilhas de Obra v2.6 Primeiros passos das Planilhas de Obra v2.6 Instalação, configuração e primeiros passos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Preparar inicialização das

Leia mais

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Avançados Banco de Dados Ativo Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...

Leia mais

Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS

Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS Novembro de 2013 Introdução Este documento fornece um resumo de alterações

Leia mais

Técnicas de Normalização por Phaser

Técnicas de Normalização por Phaser Técnicas de Normalização por Phaser http://phpbrasil.com/articles/article.php/pagerrow/0/id/146 Dos fatores mais importantes no desenvolvimento de páginas dinâmicas é a definição de banco de dados. Se

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

Gerenciamento da Integração (PMBoK 5ª ed.)

Gerenciamento da Integração (PMBoK 5ª ed.) Gerenciamento da Integração (PMBoK 5ª ed.) O PMBoK diz que: O gerenciamento da integração do projeto inclui os processos e as atividades necessárias para identificar, definir, combinar, unificar e coordenar

Leia mais

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições

Leia mais

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando

Leia mais

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona. Aula 14 Redes de Computadores 24/10/07 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber ROTEAMENTO EM UMA REDE DE COMPUTADORES A máscara de sub-rede é utilizada para determinar

Leia mais

Criando um banco de dados

Criando um banco de dados Após ter projetado o banco de dados, você pode criá-lo utilizando a interface ou com a linguagem. É possível que você queira adicionar tabelas existentes ao banco de dados e depois modificá-las para aproveitar

Leia mais

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO DESENVOLVENDO UM PROJETO 1. Pense em um tema de seu interesse ou um problema que você gostaria de resolver. 2. Obtenha um caderno

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

Conectar diferentes pesquisas na internet por um menu

Conectar diferentes pesquisas na internet por um menu Conectar diferentes pesquisas na internet por um menu Pré requisitos: Elaboração de questionário Formulário multimídia Publicação na internet Uso de senhas na Web Visualização condicionada ao perfil A

Leia mais

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite Resolução de Problemas de Rede Disciplina: Suporte Remoto Prof. Etelvira Leite Ferramentas para manter o desempenho do sistema Desfragmentador de disco: Consolida arquivos e pastas fragmentados Aumenta

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/ Aula 14-07/05/2006 1 Processo de Software Qual é a diferença entre uma atividade de arcabouço e uma atividade guarda chuva?

Leia mais

Apostilas OBJETIVA Atendente Comercial / Carteiro / Op. Triagem e Transbordo CORREIOS - Concurso Público 2015 2º CADERNO. Índice

Apostilas OBJETIVA Atendente Comercial / Carteiro / Op. Triagem e Transbordo CORREIOS - Concurso Público 2015 2º CADERNO. Índice 2º CADERNO Índice Pg. Microsoft Office: Excel 2010... Exercícios pertinentes... 02 63 Microsoft Office: Power Point 2010... Exercícios pertinentes... 104 146 Internet e Intranet. Conceitos básicos, navegadores

Leia mais

Usando o Conference Manager do Microsoft Outlook

Usando o Conference Manager do Microsoft Outlook Usando o Conference Manager do Microsoft Outlook Maio de 2012 Conteúdo Capítulo 1: Usando o Conference Manager do Microsoft Outlook... 5 Introdução ao Conference Manager do Microsoft Outlook... 5 Instalando

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

Resumo de alterações da versão 2.0 para a 3.0 do PA-DSS

Resumo de alterações da versão 2.0 para a 3.0 do PA-DSS Indústria de cartões de pagamento (PCI) Padrão de segurança de dados de formulário de pagamento Resumo de alterações da versão 2.0 para a 3.0 do PA-DSS Novembro de 2013 Introdução Este documento fornece

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO Capítulo 2. VARIÁVEIS DO TIPO INTEIRO OBJETIVOS DO CAPÍTULO Conceitos de: variáveis do tipo inteiro, atribuição, avisos e erros de compilação, erros de execução, comentários dentro do programa-fonte Operadores

Leia mais

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. Capitulo 1

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. Capitulo 1 Capitulo 1 Montagem de duas pequenas redes com a mesma estrutura. Uma é comandada por um servidor Windows e outra por um servidor linux, os computadores clientes têm o Windows xp Professional instalados.

Leia mais

Um jogo de preencher casas

Um jogo de preencher casas Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Manual das planilhas de Obras v2.5

Manual das planilhas de Obras v2.5 Manual das planilhas de Obras v2.5 Detalhamento dos principais tópicos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Gerando previsão de custos da obra (Módulo

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Maio de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi usada

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Busca em Memória. Secundária

Busca em Memória. Secundária UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Busca em Memória Secundária e Gomes da Costa yandre@din.uem.br 1 Busca de um item em uma massa de dados que não cabe na memória principal; Procura-se

Leia mais

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One. Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One. 1 Ao final deste tópico, você estará apto a: Descrever as funções de segurança fornecidas pelo System Landscape

Leia mais

Cópia de Segurança e Recuperação Manual do utilizador

Cópia de Segurança e Recuperação Manual do utilizador Cópia de Segurança e Recuperação Manual do utilizador Copyright 2009 Hewlett-Packard Development Company, L.P. Windows é uma marca comercial registada nos EUA da Microsoft Corporation. As informações aqui

Leia mais

Representação de Algoritmos - Linguagens de Programação

Representação de Algoritmos - Linguagens de Programação Representação de Algoritmos - Linguagens de Programação A representação de algoritmos em uma pseudo-linguagem mais próxima às pessoas é bastante útil principalmente quando o problema a ser tratado envolve

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

CONFIGURAÇÃO DO BIOS E CARACTERÍSTICAS DE SEGURANÇA

CONFIGURAÇÃO DO BIOS E CARACTERÍSTICAS DE SEGURANÇA CAPÍTULO VINTE DOIS CONFIGURAÇÃO DO BIOS E CARACTERÍSTICAS DE SEGURANÇA Nesse capítulo, você irá aprender como acessar o Menu da Configuração do BIOS e manipular várias configurações para controle de hardware.

Leia mais

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1) GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1) MICROSOFT OUTLOOK 2003 - OBJECTIVOS OBJECTIVOS: Enumerar as principais funcionalidades do Outlook; Demonstrar a utilização das ferramentas do correio electrónico;

Leia mais

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade Projeto da Disciplina Parte1: Estudo de Viabilidade ENTREGA: 09/04/09 Professor: Carlos José Maria Olguin Um Estudo de Viabilidade Você deve fazer um estudo de viabilidade para um projeto de sistema de

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI CRIANDO UMA AUTENTICAÇÃO DE USUÁRIO UTILIZANDO O COMPONENTE QUERY A autenticação de usuários serve para

Leia mais

LINX POSTOS AUTOSYSTEM

LINX POSTOS AUTOSYSTEM LINX POSTOS AUTOSYSTEM Manual Sumário 1 INTRODUÇÃO AO POSTGRES...3 2 INSTALAÇÃO...3 2.1 Download...3 2.2 Instalação...4 3 CONFIGURAÇÃO...7 3.1 CIDR-ADDRESS...8 3.2 Biometria...9 4 LINHA DE COMANDO...10

Leia mais

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO? Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007. Vírus no Linux? Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007. Interface de uma distribuição Linux Uma das

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Manipulação de Arquivos em Pascal

Manipulação de Arquivos em Pascal Manipulação de Arquivos em Pascal Estrutura de Dados II Aula 03 UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox 1 Para implementar programa infantil para ordenação (alfabética) de

Leia mais

Mais configuração OptraImage

Mais configuração OptraImage 1 fax Personalizarconfiguraçõesdecópia...2 Definirmanualmenteasinformaçõesbásicasdofax...3 Criardestinospermanentesdefax...5 Alterarasconfiguraçõesderecebereenviarfax...7 Ajustarasopçõesdeenviodefax...8

Leia mais

Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc

Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc DOSPrinter Manual do Utilizador Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc Data última versão: 20.03.2006 Versão : 1.1 Data criação: 01.03.2006 Faro R. Dr. José Filipe Alvares, 31 8005-220

Leia mais

SIMULADO DO TESTE DE RESOLUÇÃO DE PROBLEMAS

SIMULADO DO TESTE DE RESOLUÇÃO DE PROBLEMAS SIMULADO DO TESTE DE RESOLUÇÃO DE PROBLEMAS PROPOSTA Este simulado é um material de apoio para você se preparar para o Teste de Resolução de Problemas, com o objetivo de: 1. Compartilhar dicas e normas

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais