Funções de Acessos ao PostgreSQL - Uma visão prática

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

Download "Funções de Acessos ao PostgreSQL - Uma visão prática"

Transcrição

1 PostgreSQL

2 Funções de Acessos ao PostgreSQL - Uma visão prática Introdução Por Ernani Medeiros A redução do TCO é, hoje, uma lei nas organizações.não só organizações mas governos estão partindo para o software livre a fim de reduzir o TCO. Observações de que esse ou aquele software não tem suporte porque é livre, não estão mais satisfazendo os Administradores. Empresas estão substituindo softwares, colocando Linux em lugar do Windows, PostgreSQL no lugar do SQL Server ou Oracle, Netscape 7.0 no lugar do IE, Gimp no lugar de Photoshop, Apache no lugar de IIS, e para modelagem UML, Poseidon no lugar do Rational Rose e OpenOffice no lugar do MSOffice. Há muitas outras substituições acontecendo e percebe-se que isso não tem volta. Até as estações mais simples, estão sendo migradas para Linux. Aqui estamos tendo a visão necessária de facilitadores nesta migração. DBAs, pessoal de Infra- Estrutura, pessoal de desenvolvimento, enfim todos ajudando a realizar a mudança de plataforma, de Banco de Dados e de Linguagens. Temos a necessidade da redução de TCO mas a falta de conhecimento é um empecilho para a adoção de novas tecnologias. Os envolvidos tendem a pensar em total falta de orientação para problemas corriqueiros quando necessitam adotar uma linguagem, banco de dados ou mesmo ambiente operacional novo. Assistimos vários diálogos entre Desenvolvedores e Database Administrators parecidos com este: Desenvolvedor. Não sei, como obter este conjunto de registros, através deste select. DBA. Ah, faça uma chamada. Desenvolvedor. Mas como da minha linguagem faço esta chamada? DBA. Bem aí já passou a ser um problema seu. Creio que o grande erro deste diálogo esta na última frase, ela deveria ser: - Bem, vamos pesquisar, você de um lado e eu de outro. Depois sentamos para concluir. Temos a necessidade de dominar uma tecnologia logo de início para erramos menos. Então, temos aqui duas necessidades. Uma decorrente da outra. Precisamos reduzir o TCO e para isso, precisamos aprender mais sobre softwares distribuídos sob licença BSD. A nossa intenção, neste artigo, é colaborar no atendimento destas necessidades. Apresentamos o PostgreSQL, que é distribuído sob licença BSD e portanto, fator a ser considerado na redução do TCO corporativo. Para facilitar sua adoção, mostramos exemplos de Criação de Banco, Criação de Linguagens, Criação de Usuários, Criação de Tabelas e Criação de funções de: Inclusão; Alteração; Exclusão; Retorno de um único registro;

3 Retorno de um conjunto de registros; Uso destas funções diretamente no prompt de comando; Uso destas funções com PHP. Cremos que estes exemplos são básicos para a iniciação de qualquer DBA e ou desenvolvedor com uma nova tecnologia de banco de dados. Formas de Acesso ao PostgreSQL Vamos partir da premissa que você já tem o banco de dados PostgreSQL instalado e configurado no Windows, linux ou Unix. Seu servidor Apache, aceita conexões em PHP e você não tem dificuldades em SQL. Não se irrite, o espaço que tenho aqui é restrito. Só para você ter uma idéia do poder do PostgreSQL, ele pode ser instalado em MS-Windows 9x (95 ou 98), Me, NT 4.0 com SP 6ª ou superior (Workstation ou Server), 2000 com SP 2 ou superior (Professional, Server ou Advanced Server), Linux (Red Hat 6.2, 7.0, 7.2, 7.3. Mandraque 7.2, 8.0, 8.1, 8.2, SuSE 7.0, 7.2 e TurboLinux 6.0), BeOS 5.04 ou acima, BSD/OS e FreeBSD versão 4.2 ou superior, IBM AIX Risc6000, HP-UX versões e ou superior, MacOS X versões 10.1.x, SUN Solaris (versões 2.6, 7, 8 para Sparc e 2.8 para x86) e todas as ditribuições Linux e UNIX não citadas e mais novas. Caso, você queira uma boa dica de instalação do PostgreSQL no Windows, vá até o endereço ou leia o livro de Álvaro Pereira Neto, PostgreSQL Técnicas Avançadas Soluções para Desenvolvedores e Administradores de Banco de Dados, editora Érica. As primeiras 70 páginas são dedicadas à instalação do PostgreSQL no Windows, Linux e Solaris. A diferença entre os dois approaches é que o pessoal da Visual Objects instala o Banco no Windows, com inicialização a partir de um script o pg, com os comandos pg start e pg stop, desenvolvido por Jonathas Pereira da Logness Software. Álvaro Pereira Neto, no seu livro, instala o ipc-deamon como um serviço. Adotei o formato da Visual Objects, porque no meu caso não é necessário ter um servidor disponível, caso este seja o seu caso, use a solução do Álvaro Pereira Neto. Outra opção é a adoção da solução da DBExperts ( que implementa o PostgreSQL para Windows a partir da instalação de um CD. Ferramentas Você pode usar PGAdmin II ( PGAcces ( DBTools ( O último citado funciona tanto para PostgreeSQL como para MySQL. Todos têm interface gráfica para Windows. Porém, recomendo que você utilize psql, porque na hora do vamos ver, poderá ser o único recurso de que você disporá para as suas tarefas. Prefira utilizar scripts. Eles evitam os erros em linhas de comando e podem ser executados no futuro. Crie um diretório para scripts, exemplo: E:\PostgreSql\scripts ou /cgydriver/e/postgresql/scripts olhando pelo ponto de vista do Bash.

4 Criando um usuário Dependendo da instalação que você levou a cabo, o PostgreSQL, pode ter criado o usuário postgres. Este é o superusuário do banco de dados. Não esqueça de mudar sua senha. É recomendável que você crie um usuário para o seu banco, além do usuário postgres. Os passos para esta execução são: Conecte-se ao banco template1, usando uma das sintaxes: psql U postgres template1 <enter> ou psql template1 <enter> psql U postgres template1 W <enter> ou A primeira sintaxe explicita o usuário, a segunda é possível desde que o seu usuário tenha feito a instalação do PostgreSQL. A terceira sintaxe, informa ao PostgreSQL que a senha é requerida, através do argumento W, logo após você teclar <enter>, o PostgreSQL vai-lhe pedir a senha através do prompt: $password:, apenas digite a senha teclando <enter> em seguida. O PostgreSQL vai-lhe responder com a resposta apresentada na lista 1: Welcome to psql 7.3.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# Lista 1 - Retorno da conexão com o banco template1 do PostgreSQL Agora que estamos logados no banco template1, precisamos criar um usuário para manipular nosso banco de testes. Antes, apenas uma palavra sobre o Banco de Dados template1. Este banco de dados existe porque todos os outros bancos de dados criados no PostgreSQL o utilizarão como modelo. Qualquer coisa que você ache necessário ter em todos os seus bancos de dados deve ser inserida neste banco. A partir dele o PostgreSQL fará os clones necessários. Veja que isto não é herança, conceito que o PostgreSQL já suporta, mas que vamos abordar em outra matéria. Já podemos criar nosso usuário, queremos que ele possa criar um banco de dados e possa, também, criar grupos e usuários. Isso é recomendável, já que não devemos utilizar o usuário postgres, visto que este é um superusuário. Sempre aconselho que este usuário, postgres, deve ter sua senha alterada e guardada pelo Administrador do Banco e o Gerente da Área. Esta é uma ação que lhe vai poupar alguns grandes problemas de administração. No prompt do bash digite a sintaxe que segue abaixo, o exemplo da criação e conseqüente retorno do PostgreSQL estão na lista 2:

5 CREATE USER seuusuario WITH PASSWORD 'suasenha' CREATEDB CREATEUSER ;< enter> template1=# CREATE USER usuteste WITH PASSWORD 'abc1def2' CREATEDB CREATEUSER; CREATE USER template1=# Lista 2 - Criação do usuário usuteste e a senha "abc1def2". O PostgreSQL responde, para maioria dos comandos, o nome do comando digitado. Veja que aqui, ele respondeu CREATE USER, significando que está tudo bem com todos os aspectos deste comando. Pronto, este usuário poderá se conectar ao banco template1 e criar outro banco. Esta é nossa próxima ação. Criando linguagens Neste passo, criaremos a linguagem plpgsql, que é poderosa e vai-nos ajudar a criar as funções de acesso, que possibilitaram nossos programadores criarem funções de acesso ao banco de dados. Você pode criar variadas linguagens para utilizar no PostgreSQL, isso faz parte do seu poder. Como exemplo você pode criar PL/Tcl, PL/Perl, PL/Python e PL/pgSQL. Também é possível você utilizar C. O PostgreSQL, não cria estas linguagens inicialmente, porque não sabe qual você utilizará. Para exemplo vamos criar suporte a linguagem PL/pgSQL. Primeiramente, vamos criar o controlador da linguagem PL/pgSQL, seu handler. Use a sintaxe mostrada a seguir em um arquivo de script e o execute, conforme mostrado anteriormente, com o comando \i: --Cria a função que controla o plpgsql CREATE FUNCTION plpgsql_call_handler () RETURNS LANGUAGE_HANDLER AS '$libdir/plpgsql' LANGUAGE C; --Linguagem: plpgsql CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler; Bem, isto é tudo de que precisamos, todos os nossos bancos de dados poderão, doravante, se utilizar desta linguagem para criar funções de acesso. Criando o banco Vamos criar um banco para nosso exemplo. Para nossos fins, vou criar um banco, dando-lhe o nome de BancoTeste. Ele servirá para nossas experiências com o PostgreSQL. O usuário que estiver logado no momento da criação do banco, se torna o proprietário deste. É quem poderá destruir este banco, posteriormente, caso necessário. Ao destruir um banco, todos os seus objetos e dados são, também, destruídos. Apenas o primeiro banco de dados, template1, não precisou de um procedimento especial para ser criado, pois quem o criou foi o comando initdb, que tratou, também, de inicializar as áreas de dados.

6 Se você usar os procedimentos de instalação sugeridos pelo pessoal da Visual Objects ( e ler o script deles, entenderá bem o que o comando initdb faz. A sintaxe para a criação do banco de dados é: CREATE DATABASE nome do banco <enter>. O PostgreSQL fornece um programa alternativo para a criação de banco, assim como para a maioria dos comandos de administração de bancos. No caso da criação de banco existe a sintaxe alternativa de createdb nome do banco <enter>, que não realiza mágica alguma, conecta-se ao banco template1 e executa o comando CREATE DATABASE como você o faria. Pode haver uma situação que você quer que o banco tenha outro proprietário, isto acontece em aplicações Internet onde você tem vários tipos de banco de dados, por motivos de segurança. Isto pode ser feito tanto no comando CREATE DATABASE como no programa createdb, basta utilizar a sintaxe CREATE DATABASE nome do banco OWNER nome do proprietário. No nosso exemplo, podemos nos desconectar do template1 e nos conectarmos como usuteste, para criarmos este novo banco ou utilizarmos a sintaxe com OWNER, é o que faremos. Digite, no prompt do bash: CREATE DATABASE bancoteste OWNER usuteste< enter>; Observe, na lista 3, a digitação deste comando e o conseqüente retorno do PostgreSQL. template1=# CREATE DATABASE bancoteste OWNER usuteste; CREATE DATABASE template1=# Lista 3 - Criação do Banco BancoTeste com o proprietário UsuTeste. Vamos criar nossas tabelas. Criando Tabelas Bem, reconheçamos que não é muito inteligente você fazer todo o trabalho de digitação para criação de todos os procedimentos no prompt do bash. Assim, vou sugerir que você crie scripts. Como, já seção ferramentas, você deve ter um diretório criado para os seus scripts. No nosso exemplo é o E:\PostgreSql\scripts. Vamos usá-lo. Criaremos um arquivo.sql e o salvaremos como criatb.sql e o executaremos no prompt do bash. Primeiro digite as seguintes linhas no arquivo criatb.sql: -- Seqüência: sql_tb_cliente_seq CREATE SEQUENCE sql_tb_cliente_seq INCREMENT 1 MINVALUE 1 MAXVALUE CACHE 1; SELECT setval('sql_tb_cliente_seq', 1); -- Cria Tabela: tb_cliente

7 CREATE TABLE tb_cliente ( iid_cliente int4 DEFAULT nextval('sql_tb_cliente_seq'::text) NOT NULL, s_nome varchar(100), s_ varchar(50), b_opt boolean, CONSTRAINT sql_cliente_pkey PRIMARY KEY (iid_cliente) ) WITHOUT OIDS; Aqui são necessárias algumas considerações. A seqüência é algo que uso, para todas as tabelas, quando trabalho com um banco relacional. Visto que trabalho com aplicações orientadas a objetos e bancos relacionais, crio a seqüência para emular o object identifier, requerido pela Orientação a Objetos. É apenas uma questão de proselitismo, já que prosélito pode ser considerado aquele que se aproxima assim com o grego informa: gr. prosélytos, 'aquele que se aproxima', pelo lat. tard. Proselytu. ))!. Bem, está seria a função da palavra chave OIDS que segue a sintaxe da criação de tabelas pelo PostgreSQL. Caso eu queira usar o que o PostgreSQL me sugere, basta substituir WITHOUT OIDS por WITH OIDS. Somente utilizo esta sintaxe para tabelas que irão se beneficiar da herança, do contrário é conhecido problemas de performance com este comando para tabelas muito grandes. Assim, se você usar herança e tabelas pequenas, use WITH OIDS sem medo. CREATE SEQUENCE cria uma seqüência que pode ser usada por qualquer tabela, chamada de sql_tb_cliente_seq. Dei-lhe este nome, porque quero que apenas a tabela tb_cliente a utilize. A seqüência será incrementada sempre em 1 e se iniciará em 1. Seu teto máximo é o número absurdo depois da clausula MAXVALUE, setval já informa o valor do número inicial, que é 1. O PostgreSQL, fornece nextval, que lhe retornará o próximo de uma seqüência e, também, curval que retorna a seqüência corrente. Pesquise a utilização. Na criação da tabela, informo que o número que utilizará seqüência é um número de 4 bytes (int4), poderia ser de 8 bytes (bigint). O campo iid_cliente irá guardar o nosso número seqüencial de cliente, é um inteiro de 4 bytes. O campo s_nome irá guardar o nome do nosso cliente, é do tipo varchar com no máximo 100 bytes. Tem o tipo de dado varchar porque pode ter qualquer quantidade de 1 a 100 bytes. O campo s_ irá guardar o do nosso cliente, é do tipo varchar com no máximo 50 bytes. O campo b_opt é um flag, utilizado apenas para mostrarmos o uso de tipos de dados boolean. Crie, sempre, em primeiro lugar as seqüências para depois partir para a criação das tabelas que a utilizam.

8 Bem, veja a seqüência de comandos que me utilizei para realizar a criação das tabelas. A lista 4, mostra esta seqüência de forma completa. template1=# \q esales@atenas ~ $ cd /cygdrive/e/postgresql/scripts/bancoteste esales@atenas /cygdrive/e/postgresql/scripts/bancoteste $ ls criatb.sql esales@atenas /cygdrive/e/postgresql/scripts/bancoteste $ psql -U usuteste bancoteste Welcome to psql 7.3.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit bancoteste=# \i criatb.sql CREATE SEQUENCE setval (1 row) psql:criatb.sql:12: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit ind ex 'sql_cliente_pkey' for table 'tb_cliente' CREATE TABLE bancoteste=# Lista 4 - A seqüência de criação de tabela, com um arquivo de script. Algumas poucas explicações. O comando \q, permitiu que eu saísse do banco template1, equivale a quit. O comando cd permitiu a mudança para o diretório onde estão meus scripts. O comando ls listou os arquivos do meu diretório de script, no meu caso tinha apenas um script chamado de criatb.sql. O comando psql U usuteste bancoteste, permitiu que eu me conectasse ao banco bancoteste criado utilizando o usuário criado anteriormente. O comando \i permitiu que eu definisse um arquivo de script para ser executado, no nosso caso criatb.sql. Já que estamos no diretório do script não precisamos dar maiores informações. O PostgreSQL, informou a criação da seqüência com o retorno CREATE SEQUENCE e o retorno CREATE TABLE, informou a perfeita criação da tabela. Veja, também, que o PostgreSQL informou uma nota, que nos posiciona sobre a criação de uma PK, ou primary key, no nosso caso sql_cliente_pkey que se refere ao campo iid_cliente, conforme mostramos na criação da tabela. De maneira alguma crie uma tabela sem a devida chave primária. Caso eu tivesse mais de um campo, na chave primaria, informaria isso os separando por virgula. Suponha que eu quisesse criar uma FK (foreign key), utilizaria a sintaxe abaixo, logo após a constraint de criação de chave primaria. CONSTRAINT FK_nome_da_tabela_fkey FOREIGN KEY (nome_do_campo) REFERENCES nome_da_tabela_que_contem_o_campo_origem. Suponha, também que eu quisesse criar um índice adicional nesta tabela, bastava utilizar a sintaxe a seguir: CREATE INDEX nome_do_indice ON nome_da_tabela (nome_do_campo_que_sera_indice);

9 Funções de Acesso Bem, criamos o banco e suas tabelas, assim como suas seqüências, chaves primárias, estrangeiras e índices adicionais. Para concluirmos, precisamos, fornecer a nossos programadores, exemplos de acesso. Como estamos na era da Internet, vamos municiar nossos programadores com exemplos de acesso, usando PHP. A partir do PHP, os programadores podem expandir nosso exemplo para qualquer outra linguagem, apesar de que no futuro, vou-lhes fornecer exemplos em JAVA, pois acho altamente pertinente. Como bons administradores de dados, vamos deixar na Intranet da empresa, nosso modelo relacional, nosso dicionário de dados à disposição de nosso pessoal técnico, como também nossos exemplos de acesso para consulta futura dos nossos programadores. Isso tudo faz parte do desenvolvimento interativo de software que tanto defendo. Excluindo objetos e dados do banco Todos os comandos de criação de funções, serão executados a partir de um arquivo de script, conforme já mostrado, assim não vou repetir estes passos. Gostaria de preveni-lo de que talvez seja necessário um script de destruição. Para isso siga a sintaxe a seguir: DROP FUNCTION nome_da_função(tipos_de_dados_dos_argumentos); DROP SEQUENCE nome_da_seqüência; DROP TABLE nome_da_tabela; DROP DATABASE nome_do_banco_de_dados; Para simplesmente esvaziar uma tabela, use: TRUNCATE TABLE nome_da_tabela; Você pode ter dois scripts, um de criação de funções e outro de deleção. Ao aparecerem erros, destrua todas as funções e crie todas novamente. Função de Inclusão Nossas funções de inserção seguirão um padrão. Isso é muito interessante, já que podemos automatizar estas criações, usando uma aplicação em Java ou mesmo em PHP. Todas as tabelas terão, pelo menos, uma função de incluir, de excluir, de alterar, de retornar todos e de retornar apenas um. Este enfadonho trabalho pode ser automatizado por esta aplicação. Para criar uma função você necessita apenas de uma padronização de nomes e do dicionário de dados para conhecer os nomes e tipos de atributos de uma tabela. Criemos a função de inclusão, conforme segue: CREATE OR REPLACE FUNCTION nome_da_função(tipos_esperados) returns integer as ' DECLARE Seção de declarações BEGIN INSERT INTO tabela (nome_dos_campos_da_tabela) VALUES (valores_de_entrada_na_função); RETURN 1; END;' LANGUAGE 'plpgsql';

10 Não temos novidades aqui. A sintaxe é auto-explicativa. Vamos diretamente ao que foi retornado pelo bash, quando digitamos esta função no seu prompt. A lista 5 mostra esta evolução. bancoteste=# CREATE OR REPLACE FUNCTION proc_insert_tb_cliente(varchar(100), va rchar(50), bancoteste(# boolean) returns integer as ' bancoteste'# DECLARE bancoteste'# str_nome ALIAS FOR $1; bancoteste'# str_ ALIAS FOR $2; bancoteste'# bol_solic ALIAS FOR $3; bancoteste'# BEGIN bancoteste'# INSERT INTO tb_cliente (s_nome, s_ , b_opt) bancoteste'# VALUES (upper(str_nome), lower(s_ ), bol_solic); bancoteste'# RETURN 1; bancoteste'# END;' LANGUAGE 'plpgsql'; CREATE FUNCTION bancoteste=# Lista 5 - Criando uma função de incluir dados As linhas digitas, no nosso arquivo de script, foram: CREATE OR REPLACE FUNCTION proc_insert_tb_cliente(varchar(100), varchar(50), boolean) returns integer as ' DECLARE str_nome ALIAS FOR $1; str_ ALIAS FOR $2; bol_solic ALIAS FOR $3; BEGIN INSERT INTO tb_cliente (s_nome, s_ , b_opt) VALUES (upper(str_nome), lower(s_ ), bol_solic); RETURN 1; END;' LANGUAGE 'plpgsql'; Veja que são as mesmas que se apresentam no prompt do bash, apenas que não tem o prompt do bash a precedê-las. Algumas observações. A função proc_insert_tb_cliente, espera três tipos de dados: varchar(100), onde guardaremos o nome do cliente, varchar(50), onde guardaremos o do cliente e nosso boolean para uso futuro. No PostgreSQL, não informamos os nomes dos argumentos como acontecem em outros bancos, apenas seus tipos. Existem outras variações porém somente as abordarei no futuro. A seção de DECLARE é que resolve a questão de nomes, ali criamos aliasses para as entradas, informando sua ordem através das diretivas $1,$2,$n. Dentro do bloco BEGIN e END, podemos e devemos utilizar qualquer cláusula SQL que julguemos necessárias. Veja que utilizei as palavras chaves upper e lower, somente como exemplo. Pesquise a documentação do PostgreSQL, no formato HTML e que você encontra em: Diretório de Instalação:\PostgreSql\cygwin\usr\doc\postgresql-7.3.2\html\index.html. O retorno da função é um 1 apenas para indicar um retorno, já que toda função deve retornar algo. Mais à frente dou um exemplo de uma função que retorna um cursor inteiro.

11 Vamos utilizar esta função fazendo um teste diretamente no prompt do basch, você também utilizar um script para isso. Digite as linhas abaixo e veja o retorno do PostgreSQL. BEGIN;<enter> select * from proc_insert_tb_cliente('ernani Medeiros', 'esales-consultor@fabricaweb.com.br', TRUE);<enter> COMMIT;<enter> No basch, estas linhas ficariam como é mostrado na lista 6. bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_insert_tb_cliente('ernani Medeiros', 'esales-co nsultor@fabricaweb.com.br', TRUE); proc_insert_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 6 - Inserindo dados a partir de uma função. O único comentário digno de nota aqui e que é a novidade é a forma de chamarmos uma função no PostgreSQL. Sempre você utilizará a seqüência de BEGIN; SELECT * FROM nome_da_função e seus argumentos, seguidos da cláusula COMMIT;. Isso garantirá que o suporte a transações do banco está sendo usado. Qualquer retorno diferente disso, é um erro. Verifique a sua digitação. O PostgreSQL retorna o número da linha que contém o erro e o possível erro. Corrija os erros e execute novamente a seqüência de CREATE OR REPLACE FUNCTION, pois esta substituirá a que contém erros. Verifique que se você tentar usar este comando com uma função cujo nome foi alterado, o PostgreSQL não permitirá. Primeiro será necessária o drop na função anterior para em seguida à utilização de CREATE OR REPLACE FUNCTION. O retorno de 1 row, indica que o dado está inserido na nossa tabela. Para checarmos isso, basta executarmos, conforme a lista 7. bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS esales-consultor@fabricaweb.com.br t (1 row) bancoteste=# Lista 7 - Retorno de um select na tabela de cliente.

12 Criando as funções de Update e Delete Seguindo o mesmo padrão, vamos criar as funções de update e delete para a tabela tb_cliente. Em seguida, você vê o que deve ser digitado e a resposta do bash. Função de Update: CREATE OR REPLACE FUNCTION proc_update_tb_cliente(int4, varchar(100), varchar(50), boolean) returns integer as ' DECLARE id_cli ALIAS FOR $1; str_nome ALIAS FOR $2; str_ ALIAS FOR $3; bol_solic ALIAS FOR $4; BEGIN UPDATE tb_cliente SET s_nome=upper(str_nome), s_ =lower(str_ ), b_opt=bol_solic WHERE iid_cliente=id_cli; RETURN 1; END;' LANGUAGE 'plpgsql'; O único comentário aqui, é que precisamos do id do cliente para efetivar o update. Em seguida digite no bash a seqüência: BEGIN;<enter> select * from proc_update_tb_cliente(2,'ernani Medeiros', 'esales-consultor@fabricaweb.com.br', FALSE);<enter> COMMIT;<enter> Observe, agora, a lista 8 com o resultado. O primeiro select mostra o registro com o campo b_opt com o valor t, já o segundo mostra f, portanto a execução da função foi bem sucedida. bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS esales-consultor@fabricaweb.com.br t (1 row) bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_update_tb_cliente(2,'ernani Medeiros', 'esalesconsultor@fabricaweb.com.br', FALSE); proc_update_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS esales-consultor@fabricaweb.com.br f (1 row) bancoteste=# Lista 8 - Executando a função de update

13 Para a função de delete digite os seguintes comandos no arquivo de script: CREATE OR REPLACE FUNCTION proc_delete_tb_cliente(int4) returns integer as ' DECLARE id_cli ALIAS FOR $1; BEGIN DELETE FROM tb_cliente WHERE iid_cliente=id_cli; RETURN 1; END;' LANGUAGE 'plpgsql'; Em seguida, digite as seguintes linhas no prompt do basch: BEGIN;<enter> select * from proc_delete_tb_cliente(2);<enter> COMMIT;<enter> Não existe nenhum segredo nesta função, precisamos apenas do id do nosso cliente para podermos excluí-lo. Veja que na maioria das vezes, não executamos um delete físico como mostrado aqui. Normalmente realizamos um update mudando um campo flag, que indicaria que o registro não é mais ativo, dentro da função de delete. A exclusão física e não lógica de um registro é apenas uma questão de segurança. Veja as linhas do basch, mostrando a execução da função de deleção e o select, provando que a deleção ocorreu realmente, logo em seguida na lista 9. bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_delete_tb_cliente(2); proc_delete_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt (0 rows) bancoteste=# Lista 9 - Executando a função de Deleção Criando as funções de Consulta Talvez não existam funções de maior uso do que as funções que realizam consultas ao banco de dados. Absolutamente, todos os programas que utilizam se de banco de dados realizam consultas. É, alias para isso que um banco existe: persistir dados e recuperá-los. Por isso veja com maus olhos a deleção de registros de um banco de dados. Bem, para retornarmos um registro de um banco de dados, utilizamos a palavra reservada RECORD. Dentro desta estrutura de dados, conterá o registro que desejamos. Digite os seguintes comandos em um arquivo de script:

14 CREATE OR REPLACE FUNCTION proc_obterum_tb_cliente(int) RETURNS SETOF RECORD AS ' SELECT * FROM tb_cliente WHERE iid_cliente = $1; ' LANGUAGE SQL; Veja a forma que peço ao PostgreSQL para retornar um registro (RETURNS SETOF RECORD). Aqui alterei a linguagem para SQL puro, o que não implica em criação de nenhuma linguagem, pois isso já é default do PostgreSQL, fiz isso para exemplificar uma nova forma de retorno de um único registro. Acredite, existem outras formas. Vamos ver o retorno do bach. Porém, peço a sua atenção para a forma como chamo esta função. Passo para a função dois arrays, um contendo a estrutura dos campos que desejo retirar e outra contendo a estrutura em que desejo manter o retorno. Isso é outra demonstração de poder do PostgreSQL, pois posso retornar o que quiser de um registro bastando, para isso, definir na minha cláusula Select os campos que desejo, aqui pedi todos. Isto não deixa de ser um cursor. Existem outras formas além do RECORD, espero ter-lhe encorajado a ir à pesquisa. A lista 10 mostra o resultado da execução desta função. bancoteste=# BEGIN; BEGIN bancoteste=# SELECT * FROM proc_obterum_tb_cliente(3) AS (f1 int, f2 varchar(10 0), f3 varchar(50), f4 boolean); f1 f2 f3 f ERNANI MEDEIROS esales-consultor@fabricaweb.com.br t (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 10 - Executando a função que retorna um registro Agora vamos retornar vários registros, a diferença que merece nota aqui é a criação de um cursor. Este possibilita o retorno de um conjunto de registros que respeita a sua cláusula select. Digite as seguintes linhas, para a criação desta função: CREATE OR REPLACE FUNCTION proc_obtertodos_tb_cliente(int4) RETURNS refcursor AS ' DECLARE cur refcursor; reginicial ALIAS FOR $1; BEGIN OPEN cur FOR SELECT * FROM tb_cliente WHERE iid_cliente > reginicial ORDER BY iid_cliente LIMIT 50; RETURN cur; END;' LANGUAGE 'plpgsql'; Algumas observações são necessárias. Veja que define como primeiro registro a ser mostrado o reginicial. Somente me interessam os registros superiores a reginicial. Também, somente me interessam 50 registros de cada vez, daí eu ter usado a cláusula LIMIT. Desta forma, posso criar um sistema de navegação de 50 em 50 registros, basta-me passar para a função o registro inicial, que sempre será o último da última consulta.

15 Isso é muito usado em sistemas de navegação de Internet. O PostgreSQL, fornece uma palavra chave (OFFSET). Esta palavra chave informa ao PostgreSQL quantas linhas devem ser puladas antes do início da seleção. OFFSET igual a zero é o mesmo que não apresentar OFFSET. Se ambos estiverem na cláusula SQL então, primeiro o PostgreSQL pula a quantidade pedida em OFFSET para depois iniciar o retorno pedido em LIMIT. No exemplo desprezei a cláusula OFFSET pois já sei quantos registros quero e sempre sei onde devo começar. Caso usasse a cláusula OFFSET, a sintaxe seria semelhante a: LIMIT 50 OFFSET x; Onde x é o montante de linhas que desejo pular. As linhas que você deve digitar no prompt do bash, são: BEGIN;<enter> SELECT * FROM proc_obtertodos_tb_cliente(1);<enter> FETCH ALL FROM "<unnamed cursor 1>";<enter> COMMIT;<enter> Veja a lista 11, com o resultado do bash. bancoteste=# BEGIN; BEGIN bancoteste=# SELECT * FROM proc_obtertodos_tb_cliente(1); proc_obtertodos_tb_cliente <unnamed cursor 1> (1 row) bancoteste=# FETCH ALL FROM "<unnamed cursor 1>"; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS esales-consultor@fabricaweb.com.br t (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 11 - Retornando vários registros em um cursor. As observações são relativas ao nome do cursor. Como não especifiquei o nome do cursor, o PostgreSQL retornou <unnamed cursor 1>. Se outra chamada dentro da mesma seção, fosse feita a esta função, o cursor seria <unnamed cursor 2>, <unnamed cursor n>, etc. Porém, como todas as linguagens tem orientação para chamar, usar e fechar uma conexão logo em seguida, isto não tem muita utilidade, mas não deixa de ser interessante você também passar o nome do cursor para uma função que retorna vários registros. Utilizo o FETCH ALL FROM, porque sei que apenas receberei 50 registros de cada vez. Finalmente, como em todas as execuções realizo o commit. Montando o exemplo para PHP Bem, agora só nos falta realizar estas mesmas chamadas a partir de uma linguagem como o PHP, que alguns chamam de script. O PHP, tem um conjunto de funções para serem utilizadas exclusivamente com o banco PostgreSQL, como se banco nativo do PHP este fosse. Tal a

16 importância que este banco recebe do povo que desenvolve PHP. Sei, sei, sei, o MySql também, mas falamos aqui do PostgreSQL não é? Vamos lá, na tabela 1, você pode ver uma lista das funções que são utilizadas pelo PHP para acesso ao PostgreSQL. Temos o nome da função e seu uso. Para habilitar o uso destas funções, localize a entrada [PostgreSQL] no arquivo PHP.ini e habilite as linhas desta seção. Por motivos de espaço, não vamos reproduzi-las aqui. Vamos apenas reportar as funções que nos interessam, veja a rica documentação do PHP para maiores detalhes pg_connect() pg_query() pg_num_rows() pg_fetch_row() pg_close() Resumo de Funções de Acesso do PHP ao PostgreSQL Abre uma conexão PostgreSQL. Executa uma consulta (query). Retorna o número de registros afetados. Retorna uma linha como um array enumerado. Fecha uma conexão com o Banco PostgreSQL. Estas funções do PHP, nos serão suficientes para o exemplo. Veja os resultados, em html, retornados pelo browser.

17 Não temos necessidade de comentarmos estes resultados, eles são visualmente auto-explicativos. Também não vamos comentar as linhas de código em PHP feitas e que nas listas a seguir. As linhas estão comentadas, diretamente no código. É evidente que este é um ponto de partida e, mais do que isto, é apenas um exemplo para nossos programadores passarem a utilizar o banco na sua melhor forma: funções. São muito mais rápidas, com seu plano de acesso já preparado pelo PostgreSQL e como pré-compiladas, o PostgreSQL não necessita checar a sintaxe SQL a cada acesso. Com o auxílio de uma ferramenta que crie estas funções por tabela, não teremos muitos problemas para implementar este tipo de solução. <?php /*Aqui temos o pedido de que tipo de função desejamos: 1 - Queremos o usuo da função de inclusão; 2 - Queremos o uso da função de alteração; 3 - Queremos o uso da função de exclusão; 4 - Queremos o uso da função de retorna um registro; 5 - Queremos o uso da função que retorna 50 registros.*/ $tipofuncaosolicitada = 1; Lista 12 - Inicio do código em PHP function Incluir(){ //Aqui nos conectamos com o banco $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_insert_tb_cliente('curso de UML com Interatividade de Software', 'atendimento@fabricaweb.com.br', TRUE);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a inclusão do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna50(); return; Lista 13 - A função de incluir em PHP

18 function Alterar(){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_update_tb_cliente(3,'ernani Medeiros', 'esalesconsultor@fabricaweb.com.br', TRUE);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a atualização do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna1(3); return; Lista 14 - A função de Alterar em PHP. function Excluir($reg){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_delete_tb_cliente($reg);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a deleção do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna50(); return; Lista 15 - A função de excluir em PHP.

19 function Retorna1($reg){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_obterum_tb_cliente($reg) AS "; $cur.="(f1 int, f2 varchar(100), f3 varchar(50), f4 boolean);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); /*Aqui descobrimos quantas linhas retornaram.*/ $num = pg_num_rows($result); /*Aqui montamos nossos registros.*/ if ($num>0){ $r = pg_fetch_row($result, $i); $iid_cliente = $r[0]; $s_nome=$r[1]; $s_ =strtolower($r[2]); $b_opt=$r[3]; /*Aqui colocamos o resultado em uma tabela HTML.*/ echo "<font color='#000099' face='verdana, Arial, Helvetica, sans-serif'"; echo "style='font-size= x-small;background-color=#ffcc66;font-style=bold;' size='- 1'>"; echo "<table width='90%' height='*' cols=4 border='1'><tr>"; echo "<td colspan='4' align='center'>registros retornados do banco de dados</td></tr>"; echo "<tr><td>";echo $r[0];echo "</td>"; echo "<td>";echo $r[1];echo "</td>"; echo "<td>";echo $r[2];echo "</td>"; if($r[3]=="t") { echo "<td>"; echo "<input type='checkbox' checked name='sim"; echo $r[0]; echo "'></td>"; else { echo "<td>"; echo "<input type='checkbox' name='sim"; echo $r[0]; echo "'></td>"; echo "</tr>"; echo "</table></font>"; else{ echo "<b>nenhum registro retornado</b>"; /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); return; Lista 16 - A função que retorna um registro em PHP.

20 function Retorna50(){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_obtertodos_tb_cliente(1);"; $cur.="fetch ALL FROM \"<unnamed cursor 1>\";"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); /*Aqui descobrimos quantas linhas retornaram.*/ $num = pg_num_rows($result); /*Aqui montamos nossos registros.*/ echo "<font color='#000099' face='verdana, Arial, Helvetica, sans-serif'"; echo "style='font-size= x-small;background-color=#ffcc66;font-style=bold;' size='-1'>"; echo "<table width='90%' height='*' cols=4 border='1'><tr>"; echo "<td colspan='4' align='center'>registros retornados do banco de dados</td></tr>"; for ($i=0; $i < $num; $i++) { $r = pg_fetch_row($result, $i); $iid_cliente = $r[0]; $s_nome=$r[1]; $s_ =strtolower($r[2]); $b_opt=$r[3]; /*Aqui colocamos o resultado em uma tabela HTML.*/ echo "<tr><td>";echo $r[0];echo "</td>"; echo "<td>";echo $r[1];echo "</td>"; echo "<td>";echo $r[2];echo "</td>"; if($r[3]=="t") { echo "<td>"; echo "<input type='checkbox' checked name='sim"; echo $r[0]; echo "'></td>"; else { echo "<td>"; echo "<input type='checkbox' name='sim"; echo $r[0]; echo "'></td>"; echo "</tr>"; echo "</table></font>"; /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); return; Lista 17 - Função que retorna 50 registros em PHP.

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

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

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

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Instalando o Internet Information Services no Windows XP

Instalando o Internet Information Services no Windows XP Internet Information Services - IIS Se você migrou recentemente do Windows 95 ou 98 para o novo sitema operacional da Microsoft Windows XP, e utilizava antes o Personal Web Server, deve ter notado que

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

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

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

PHP Material de aula prof. Toninho (8º Ano)

PHP Material de aula prof. Toninho (8º Ano) Na aula anterior entendemos como se faz o acesso aos nossos arquivos PHP; Como construir um script em php. Nesta aula (3) vamos entender: Como roda o PHP Inserindo comentários Visualizando páginas a partir

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

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

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

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item Sites da web. Servidor WEB Desenvolvedores de sites que querem aprender ou testar ASP, ou mesmo profissionais que precisam desenvolver páginas ASP ou ASP.Net, não precisam necessariamente ter um servidor na web com

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

No Fedora, instalamos os pacotes mysql e mysql-server, usando o yum: Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido

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

Lazarus pelo SVN Linux/Windows

Lazarus pelo SVN Linux/Windows Lazarus pelo SVN Linux/Windows Sei que não faltam artigos sobre como obter e compilar o Lazarus e o FPC pelo SVN, mas sei também que nunca é de mais divulgar um pouco mais e talvez escrever algo diferente.

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas 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

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

Como incluir artigos:

Como incluir artigos: Como incluir artigos: O WordPress é uma ferramenta muito flexível, com muitas variações e ajustes que podem torná-lo algo muito simples e também muito sofisticado conforme os recursos que são configurados

Leia mais

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS JANEIRO 2015 1 Sumário 1. Introdução...3 2. Pré-Requisitos...4 2.1. Instalação do Java Development Kit

Leia mais

Guia de instalação para ambiente de Desenvolvimento LINUX

Guia de instalação para ambiente de Desenvolvimento LINUX Guia de instalação para ambiente de Desenvolvimento LINUX Conteúdo deste manual Introdução O guia de instalação... 3 Capítulo 1 Instalando o servidor Web Apache... 4 Teste de instalação do Apache... 9

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2012/2013 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql Criar database: Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com Preparando o ambiente do Banco de dados Mysql CREATE DATABASE `tempuino` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licenç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

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

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

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação FACULDADE SENAC-RS PELOTAS Analise e Desenvolvimento de Sistemas RODRIGO ALMEIDA PEREIRA Sistemas de Informação Pelotas/RS Maio de 2013 Sumário 1. Introdução 1 2. Um pouco de sua história 1 3. Requerimentos

Leia mais

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. 1/20 PgAdmin O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. Site para download. Caso queira a última versão - http://www.pgadmin.org/download/ É uma

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

Conexão rápida entre dois computadores em uma plataforma Linux

Conexão rápida entre dois computadores em uma plataforma Linux Conexão rápida entre dois computadores em uma plataforma Linux Algumas vezes, novos usuários de Linux acabam achando difícil transferir aquivos entre duas máquinas Linux em rede (no meu caso via cabo).

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Operador de Computador. Informática Básica

Operador de Computador. Informática Básica Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Ferramentas de Administração. PostgreSQL

Ferramentas de Administração. PostgreSQL Ferramentas de Administração ao SGBD PostgreSQL Diego Rivera Tavares de Araújo diegoriverata@gmail.com Introdução Mas o que é PostgreSQL? Introdução as ferramentas O PostgreSQL pode ser acessado a partir

Leia mais

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações. Integração de Controle de versão com Redmine. A integração do controle de versão pode permitir uma interatividade bem interessante entre os tickets e projetos do redmine com o controle de versão segue

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert... Apostila FIREBIRD 1 Firebird Equipe: BARBARA CAROLINE SOUZA DE OLIVEIRA Nº 04 GUILHERME ROBERTO PINTO DE SOUZA Nº 16 JOSÉ ROSA MARTINS NETO Nº 22 RAFAEL ALVES DE SOUSA Nº 36 WELLINGTON COSTA SANTOS OLIVEIRA

Leia mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃO: 1 - Conectando na sua conta INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

1. Instalei o DutotecCAD normalmente no meu computador mas o ícone de inicialização do DutotecCAD não aparece.

1. Instalei o DutotecCAD normalmente no meu computador mas o ícone de inicialização do DutotecCAD não aparece. 1. Instalei o DutotecCAD normalmente no meu computador mas o ícone de inicialização do DutotecCAD não aparece. Para acessar o programa através do comando na barra de prompt, basta digitar dutoteccad e

Leia mais

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011 Manual de backup do banco de dados PostgreSQL - Versão 2 Setembro-2011 E-Sales Oobj Tecnologia da Informação Av. D, n. 246, Qd. A-04, Lt.02, Ap. 02, Jardim Goiás Goiânia/GO, CEP: 74805-090 Fone: (62) 3086-5750

Leia mais

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP Programação WEB Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula III Introdução PHP Introdução PHP PHP=Hypertext Pre-Processor Linguagem de script open

Leia mais

Instalando e Configurando o Oracle XE

Instalando e Configurando o Oracle XE Instalando e Configurando o Oracle XE Execute o instalador do Oracle XE (OracleXEUniv.exe) e aguarde enquanto os arquivos de instalação são descompactados; A seguir, clique em Next para iniciar o procedimento;

Leia mais

Segurança de Acesso a Banco de Dados no MS SQL Server

Segurança de Acesso a Banco de Dados no MS SQL Server Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador,

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

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

Iniciando o MySQL Query Brower

Iniciando o MySQL Query Brower MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado

Leia mais

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon Trabalho de Sistema de Informações Aluno: Paulo Roberto Carvalho da Silva Instalação e configuração aplicativo Ocomon O trabalho tem como objetivo o estudo de caso,a instalação, configuração e funcionamento

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

Manual de Atualização Versão 3.6.4.

Manual de Atualização Versão 3.6.4. Manual de Atualização Versão 3.6.4. Sumário 1. AVISO... 1 2. INTRODUÇÃO... 2 3. PREPARAÇÃO PARA ATUALIZAÇÃO... 3 4. ATUALIZANDO GVCOLLEGE E BASE DE DADOS... 7 5. HABILITANDO NOVAS VERSÕES DO SISTEMA....

Leia mais

PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006.

PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. PHP: Formulários e upload de múltiplos arquivos Por Alfred Reinold Baudisch 28 de fevereiro de 2006. Veja como montar um formulário para upload de múltiplos arquivos e como processá-lo com o PHP, usando

Leia mais

http://www.multside.com.br CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

http://www.multside.com.br CODE IGNITER INSTALAÇÃO & BANCO DE DADOS CODE IGNITER INSTALAÇÃO & BANCO DE DADOS INSTALAÇÃO Instalar o code-igniter é muito simples, basta que você tenha um servidor que rode PHP 5 (para saber consulte a documentação PHP do seu servidor). Após

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

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

Passo a Passo da instalação da VPN

Passo a Passo da instalação da VPN Passo a Passo da instalação da VPN Dividiremos este passo a passo em 4 partes: Requisitos básicos e Instalação Configuração do Servidor e obtendo Certificados Configuração do cliente Testes para saber

Leia mais

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Ele considera que você já tem o Joomla! instalado no seu computador. Caso você queira utilizá lo em um servidor na web,

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

Esse artigo foi escrito tendo como base o Banco de Dados MSSQLServer 2000. &KDPDQGR6WRUHG3URFHGXUHVDSDUWLUGR&ODULRQ

Esse artigo foi escrito tendo como base o Banco de Dados MSSQLServer 2000. &KDPDQGR6WRUHG3URFHGXUHVDSDUWLUGR&ODULRQ ,QWURGXomR Esse artigo foi escrito tendo como base o Banco de Dados MSSQLServer 2000. &KDPDQGR6WRUHG3URFHGXUHVDSDUWLUGR&ODULRQ Para chamar uma Stored Procedure em Clarion, utilizamos a sentença Call, como

Leia mais

STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork

STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork STK (Start Kit DARUMA) Extensão PHP para DarumaFrameWork A DarumaFramework está com suas funções nativas ao programador PHP devido a extensão de aplicativo php_darumaframework. Para usar esta extensão,

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

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

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL Este tutorial tem por objetivo explicar a criação de bancos de dados espaciais usando o Postgis que é a extensão espacial do PostgreSQL. Os passos que serão

Leia mais

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,

Leia mais

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM ÍNDICE ITEM Página 1. Objetivo... 3 2. Requisitos... 3 3. Diretório do Slim... 3 4. Procedimento para Transferência de Servidor... 3 4.1 Compartilhamento da

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

1 - Como Instalar e Configurar Apache, PHP e MySQL no Windows

1 - Como Instalar e Configurar Apache, PHP e MySQL no Windows 1 - Como Instalar e Configurar Apache, PHP e MySQL no Windows 1.1 - Estrutura Inicial de Diretórios 1.2 - Instalação Apache (Servidor WEB) Primeiramente baixe o software (instalador) no site oficial do

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 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM ÍNDICE ITEM Página 1. Objetivo... 3 2. Requisitos... 3 3. Diretório do Millennium... 3 4. Procedimento para Transferência de Servidor... 3 4.1 Compartilhamento

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

Introdução ao Tableau Server 7.0

Introdução ao Tableau Server 7.0 Introdução ao Tableau Server 7.0 Bem-vindo ao Tableau Server; Este guia orientará você pelas etapas básicas de instalação e configuração do Tableau Server. Em seguida, usará alguns dados de exemplo para

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! UNIVERSIDADE DE SÃO PAULO (USP) ESCOLA DE ARTES, CIÊNCIAS E HUMANIDADES (EACH) TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! Autoria e revisão por: PET Sistemas

Leia mais

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Criando uma Calculadora Primeiramente deve se criar uma estrutura para armazenar os arquivos necessários para o funcionamento da calculadora.

Leia mais

Configurando o IIS no Server 2003

Configurando o IIS no Server 2003 2003 Ser ver Enterprise Objetivo Ao término, você será capaz de: 1. Instalar e configurar um site usando o IIS 6.0 Configurando o IIS no Server 2003 Instalando e configurando o IIS 6.0 O IIS 6 é o aplicativo

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 Sobre o PostGIS PostGIS é um Add-on (complemento, extensão)

Leia mais

IMPORTANDO ARQUIVOS SHAPEFILE PARA O POSTGIS VIA PROMPT DO DOS

IMPORTANDO ARQUIVOS SHAPEFILE PARA O POSTGIS VIA PROMPT DO DOS IMPORTANDO ARQUIVOS SHAPEFILE PARA O POSTGIS VIA PROMPT DO DOS INTRODUÇÃO Neste tutorial iremos tratar de uma situação comum durante os trabalhos de geoprocessamento que envolvam banco de dados geográficos,

Leia mais