Replicação de Dados com InterBase/Firebird
|
|
- Francisca Alves Fidalgo
- 8 Há anos
- Visualizações:
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 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 maisBANCO 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 maisSistemas 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 maisDESENVOLVIMENTO 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 maisTriggers 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 maisAPOSTILA 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 maisBanco 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 maisCADERNOS 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 maisCOMANDO 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 maisPL/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 maisAutor: 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 mais2008.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 maisADMINISTRAÇÃ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 maisSISTEMA 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 maisListando 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 maisTabelas 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 maisTarefa 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 maisModelo 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 maisLINGUAGEM 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 maisBD 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 maisITIL 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 maisLaborató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 maisBases 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 maisNeste 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 maisLogado 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 maisInformá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 maisComandos 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 maisSQL 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 maisSistemas 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 maisLinguagem 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 maisAULA 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 maisData 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 maisTrabalhando 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 maisIntegraçã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 maisAula 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 maisLINGUAGEM 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 maisBanco 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 maisModem 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 maisLaborató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 maisGatilhos (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 maisTarefa 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 maisRELATÓ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 maisSeguranç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 maisMANUAL 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 maisPrimeiros 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 maisBanco 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 maisIndú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 maisTé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 maisIntroduçã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 maisGerenciamento 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 maisUsando 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 maisRegras 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 mais1. 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 maisCriando 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 maisA 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 maisSistemas 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 maisConceitos 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 maisOracle 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 maisConectar 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 maisResoluçã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 maisEngenharia 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 maisApostilas 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 maisUsando 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 maisMetadados. 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 maisTransaçõ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 maisResumo 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 maisBanco 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 maisGuia 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 maisCapí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 maisGenerated 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 maisUm 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 maisProf.: 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 maisManual 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 maisProva 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 maisBases 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 maisBusca 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 maisNeste 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 maisCó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 maisRepresentaçã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 maisIntroduçã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 maisCONFIGURAÇÃ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 maisGESTÃ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 maisProjeto 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 maisProgramaçã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 maisETEC 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 maisLINX 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 maisSQL: 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 maisFigura 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 maisPROCEDIMENTOS 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 maisEste 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 maisFAPLAN - 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 mais3.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 maisManipulaçã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 maisMais configuração OptraImage
1 fax Personalizarconfiguraçõesdecópia...2 Definirmanualmenteasinformaçõesbásicasdofax...3 Criardestinospermanentesdefax...5 Alterarasconfiguraçõesderecebereenviarfax...7 Ajustarasopçõesdeenviodefax...8
Leia maisAlteraçã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 maisSIMULADO 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 maisProjeto 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