Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


PostgreSQL - Apostilas - Informática Part3, Notas de estudo de Informática

Apostilas de Informática sobre PostgreSQL, Instalação, Linux, Windows, DDL (Data Definition Language), Criação e exclusão de bancos, esquemas, tabelas, views, Constraints, DML (Data Manipulation Language), Funções Internas, Funções Definidas pelo Usuário e Triggers, DCL (Data Control Language) - Administração.

Tipologia: Notas de estudo

2013

Compartilhado em 27/08/2013

Garoto
Garoto 🇪🇸

4.6

(121)

1 / 52

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
106
//String url = "jdbc:postgresql:agenda"; //Assim pega os defaults
Connection con;
String query = "select * from amigos”;
Statement stmt;
try {
Class.forName("org.postgresql.Driver");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
con = DriverManager.getConnection(url,"postgres", "postgres");
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
int rowCount = 1;
while (rs.next()) {
System.out.println("Registro " + rowCount + ": ");
for (int i = 1; i <= numberOfColumns; i++) {
System.out.print(" Campo " + i + ": ");
System.out.println(rs.getString(i));
}
System.out.println("");
rowCount++;
}
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.print("SQLException: ");
System.err.println(ex.getMessage());
}
}
}
Conexão Com o Visual BASIC
Podemos nos conectar a uma base de dados PostgreSQL usando o Visual Basic via ADO.
Para isto temos que usar um driver ODBC para a plataforma Windows.
Voce vai precisar ter o PostgreSQL instalado e o driver ODBC também.
Instala-se o psqlODBC e configura-se a conexão com o banco desejado.
If so then use something like
CurrentProject.Connection.Execute StrSql2
If not linked tables then use something like
Dim cnn as new ADODB.Connection
cnn.Open "DSN=my_dbs_dsn_name" 'or a full PostgreSQL connection string to save a trip
to the registry
cnn.Execute StrSql2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34

Pré-visualização parcial do texto

Baixe PostgreSQL - Apostilas - Informática Part3 e outras Notas de estudo em PDF para Informática, somente na Docsity!

//String url = "jdbc:postgresql:agenda"; //Assim pega os defaults Connection con; String query = "select * from amigos”; Statement stmt; try { Class.forName("org.postgresql.Driver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } try { con = DriverManager.getConnection(url,"postgres", "postgres"); stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); int rowCount = 1; while (rs.next()) { System.out.println("Registro " + rowCount + ": "); for (int i = 1; i <= numberOfColumns; i++) { System.out.print(" Campo " + i + ": "); System.out.println(rs.getString(i)); } System.out.println(""); rowCount++; } stmt.close(); con.close(); } catch(SQLException ex) { System.err.print("SQLException: "); System.err.println(ex.getMessage()); } } } Conexão Com o Visual BASIC Podemos nos conectar a uma base de dados PostgreSQL usando o Visual Basic via ADO. Para isto temos que usar um driver ODBC para a plataforma Windows. Voce vai precisar ter o PostgreSQL instalado e o driver ODBC também. Instala-se o psqlODBC e configura-se a conexão com o banco desejado. If so then use something like CurrentProject.Connection.Execute StrSql If not linked tables then use something like Dim cnn as new ADODB.Connection cnn.Open "DSN=my_dbs_dsn_name" 'or a full PostgreSQL connection string to save a trip to the registry cnn.Execute StrSql

Outro exemplo: Criar um DSN ODBC "pgresearch" via ADO e use: Dim gcnResearch As ADODB.Connection Dim rsUId As ADODB.Recordset ' open the database Set gcnResearch =3D New ADODB.Connection With gcnResearch .ConnectionString =3D "dsn=3Dpgresearch" .Properties("User ID") =3D txtUsername .Properties("Password") =3D txtPassword .Open End With Acessando com o Visual C#.net, ver link: http://www.linhadecodigo.com.br/artigos.asp?id_ac=

\q - sair \c nomebanco nomeuser – Conectar a outro banco \i /path/script.sql -- importar script.sql \timing -- iniciar/parar o cronômetro para atividades \dT+ -- lista os tipos de dados do PG com detalhes \cd -- mudar para outro diretório \d – lista tabelas, índices, sequências ou views \d nometabela – mostra estrutura da tabela \dt – lista tabelas \di – lista indices \ds – lista sequências \dv – lista views \dS – lista tabelas do sistema \dn – lista esquemas \dp – lista privilégios \du – lista usuários \dg – lista grupos \l - lista todos os bancos do servidor, juntamente com seus donos e codificações \e - abre o editor vi com a última consulta \o - inicia/termina a criação de arquivo. Ex.: \o arquivo.sql ! comando_do_sistemaoperacional -- executa o arquivo do sistema operacional ? - ajuda geral dos comandos do psql \h * - exibe ajuda de todos os comandos \h comandosql – ajuda específica sobre o comando SQL, ex.: \h alter table \H – ativa/desativa saída em HTML \encoding – exibe codificação atual Boa sugestão: \h CREATE DATABASE \h CREATE ROLE Exemplo de saída de consulta em HTML pelo PostgreSQL: Gerando um relatório em HTML diretamente através do PostgreSQL \o relatorio.html SELECT * FROM cep_tabela WHERE uf='CE'; Obs.: Lembre que o PostgreSQL é case sensitive. Com isso teremos um arquivo HTML contendo todos os registros retornados pela consulta em uma tabela HTML, como no exemplo abaixo:

cep tipo logradouro bairro municipio uf
60420440 Rua Vasco da Gama Montese Fortaleza CE
Console do psql **14.2 - phpPgAdmin** Baixar de - http://phppgadmin.sourceforge.net/
  • Copiar para o diretório web
  • Editar o arquivo conf/config.inc.php e alterar para dois servidores (um local e outro remoto): ... // Display name for the server on the login screen $conf['servers'][0]['desc'] = 'Local'; // Hostname or IP address for server. Use '' for UNIX domain socket. // use 'localhost' for TCP/IP connection on this computer $conf['servers'][0]['host'] = '127.0.0.1'; ... // Example for a second server (PostgreSQL Remoto) $conf['servers'][1]['desc'] = 'Remoto'; $conf['servers'][1]['host'] = '10.99.00.11'; $conf['servers'][1]['port'] = 5432; $conf['servers'][1]['defaultdb'] = 'nomebancodefault'; ... // If extra login security is true, then logins via phpPgAdmin with no // password or certain usernames (pgsql, postgres, root, administrator) // will be denied. Only set this false once you have read the FAQ and // understand how to change PostgreSQL's pg_hba.conf to enable

14.4 - EMS PostgreSQL O EMS é um ótimo gerenciador de diversos tipos de bancos, inclusive do PostgreSQL. Download – http://www.sqlmanager.net/en/products/postgresql/manager (para Windows existe uma versão free, a lite) Aqui vou abordar as atividades principais e básicas de uso do EMS:

  • Abrir em banco
  • Criar em novo banco
  • Criar tabelas
  • Criar campos
  • Criar chave primária
  • Criar chave estrangeira (relacionamento)
  • Importar script .sql para um banco existente
  • Exportar banco como script sql
  • Executar consultas sql Após executar aparece algo como (versão 3.1.5.2 lite for Windows):

CRIAR UM NOVO BANCO

  • Em Getting Starting (acima e à direita) clique no botão Create new database
  • Então digite o nome do novo banco:
  • E clique no botão Next
  • Então entre com os dados do servidor (como abaixo):
  • Na próxima tela mude algo somente se tiver certeza:
  • Clique em Next

CRIAR TABELAS

  • Execute um duplo clique no novo banco
  • Observe a estrutura criada para o novo banco:
  • Clique sobre Tables com o botão direito e New Table (ou tecle Ctrl+N)
  • Acima digitamos o nome da tabela onde existe table
  • Então clicamos na aba Fields.
  • Mais um duplo clique, agora em Column Name, para que apareça o Wizard de Campos:
  • Veja que o nome do campo é “codigo”. Que ele é do tipo BIGINT e também é chave primária.
  • Veja agora como aparece nosso campo (com uma pequena chave à direita): Isso mostra que este campo é nossa chave primária.

ABRIR UM BANCO EXISTENTE

Caso queiramos trabalhar em um banco que já exista no servidor, vamos apenas abri-lo:

  • Após abrir o EMS apenas executamos um duplo clique sobre o nome do banco.
  • Caso o nome do banco não esteja aparecendo no EMS clicamos no primeiro botão da barra de ferramentas (Register Database) e informamos os dados do servidor
  • Clicamos em Next.
  • E selecionamos o banco na lista Database Name:
  • E clicamos em Finish COMO CRIAR UMA CHAVE ESTRANGEIRA (FOREIGN KEY)
  • Após criar a tabela e os campos, devemos criar a segunda tabela, que irá se relacionar com a primeira através de um campo (chave estrangeira).
  • Vamos supor duas tabelas: pedidos e pedido_itens, que irão se relacionar através do campo código em pedido e cod_pedido em pedido_itens, como abaixo: pedido (codigo, descricao, data, preco_unitario) pedido_itens (codigo, cod_pedido, quantidade)
  • Para que um campo de uma tabela se relacione com outro, ele deve ser do mesmo tipo que o outro.
  • Abra a tabela pedido_itens
  • Então abaixo e à direita selecione o campo que vai se relacionar com este (codigo) e clique na seta para a direita. Então clique em OK. Veja que em OnDelete action e em On Update Action existem diversas opções. Veja meu tutorial sobre o assunto em: http://ribafs.clanshosting.com
  • Então clique em Commit. Agora vejamos como fica o código SQL da nossa tabela pedido_itens. Clique na aba DDL e verá: CREATE TABLE "public"."pedido_itens" ( "codigo" BIGINT NOT NULL, "cod_pedido" BIGINT, "quantidade" INTEGER, CONSTRAINT "pedido_itens_pkey" PRIMARY KEY("codigo"), CONSTRAINT "pedido_itens_fk" FOREIGN KEY ("cod_pedido") REFERENCES "public"."pedidos"("codigo") ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE ) WITH OIDS;

EXPORTANDO UM BANCO COMO SCRIPT

Uma forma muito comum de se exportar um banco é na forma de script, especialmente para abrir num outro servidor do mesmo tipo:

  • Clique no menu Tools – Extract Metadata
  • Selecione o banco que deseja exportar e clique em Next
  • Na combo File name selecione o diretório e nome de arquivo para onde deseja exportar e clique em Salvar. Então clique em Next.
  • Escolha se quer exportar somente dados, somente estrutura ou ambos e clique em Next.
  • Apenas clique em Finish e ao terminar em Close. IMPORTANDO UM BANCO DE UM SCRIPT Esta é a operação inversa da anterior mas com algumas diferenças. Se formos importar tudo, devemos ter aqui apenas um banco vazio.
  • Abrir o banco no EMS
  • Clicar em Tools – SQL Script
  • Ao centro clique em Open script e indique onde está o script a ser importado.
  • Se tudo for importado a contendo clique no botão Refresh Tables à direita do botão Create para visualizar a importação. EXECUTANDO CONSULTAS SQL NO EMS Uma boa utilidade para o gerenciador EMS é a de teste de consultas SQL.
  • Abra o banco, abra o executor de script, digite a consulta em SQL e execute para saber os resultados.
  • Sempre que tiver alguma dúvida sobre uma consulta execute aqui para testar antes.

15 - Apêndices 15.1 – Planejamento e Projeto de Bancos de Dados Projeto de bancos de dados é genérico e se aplica a qualquer SGBDR. É com um bom planejamento do banco de dados que se determina o quão eficaz foi o processo de análise. Introdução O projeto do banco de dados e também os testes são muito importantes para a eficiência e consistência das informações e do aplicativo. É muito importante gastar algum tempo nesta etapa, pois depois de algum tempo de implantado fica muito trabalhoso alterar estruturas de bancos e aplicativos. Projetos de banco de dados ineficazes geram consultas que retornam dados inesperados, relatórios que retornam valores sem sentido, etc. Um banco de dados bem projetado fornece um acesso conveniente às informações desejadas e resultados mais rápidos e precisos. Exemplo de software de administração de SGBD para o PostgreSQL - PGAdmin Informações de bancos de dados relacionais são armazenadas em tabelas ou entidades no Modelo Entidade Relacionamento (MER). Dicas sobre Campos

  • Não armazenar resultado de cálculos ou dados derivados de outros
  • Armazenar todas as informações (campos) separadamente. Cuidado com campos que contém duas ou mais informações. Selecionando o Campo para a Chave Primária A chave primária é o campo ou campos que identificam de forma exclusiva cada registro.
  • Não é permitido valores nulos na chave nem duplicados
  • Caso a tabela não tenha um campo que a identifique, pode-se usar um campo que numere os registros seqüencialmente Dica de Desempenho: O tamanho da chave primária afeta o desempenho das operações, portanto usar o menor tamanho que possa acomodar os dados do campo. Exemplo Tabela - Clientes Campo - Nome (atributo) Chave Primária (Primary-Key) - CPF Todos os campos correspondentes a um único CPF juntamente com seus valores formam um Registro ou Linha (Row) A correta determinação das tabelas, bem como dos campos é algo primordial no sucesso do projeto do banco de dados. Chave Primária - obriga que todos os registros terão o campo correspondente à chave primária exclusivo (únicos - unique). Num cadastro de clientes, todos os clientes cadastrados terão um campo CPF exclisivo. Caso se tente inserir dois clientes com o mesmo CPF o banco não permitirá e emitirá uma mensagem de erro acusando tentativa de violação da chave primária. Exemplos de Campos indicados para chave primária:
  • CPF

• CNPJ

  • Matrícula de aluno
  • Matrícula de funcionário Uma chave primária pode ser formada por mais de um campo, quando um único campo não é capaz de caracterizar a tabela. Cada tabela somente pode conter uma única chave primária. Relacionamentos - Um banco de dados é formado por várias tabelas. Idealmente essas tabelas devem ser relacionadas entre si para facilitar a troca de informações e garantir a integridade. Para relacionar tabelas usamos chaves existentes nas mesmas. Tipos de Relacionamentos
  • Um para um
  • Um para vários
  • Vários para vários Relacionamento Um para Um Aquele onde os campos que fazem o relacionamento são chaves primárias. Cada registro de uma tabela se relaciona com apenas um registro da outra tabela. Este relacionamento não é muito comum. Exemplo: CorrentistaBanco - Conjuge Relacionamento Um para Vários ou Vários para Um Aquele onde uma tabela tem um campo chave primária que se relaciona com outra tabela através de um campo chave estrangeira. É o tipo de relacionamento mais utilizado. Exemplos:
  • Clientes - Pedidos
  • Produtos - Itens
  • Categorias - Itens
  • Fornecedores - Produtos
  • NotaFiscal - Produtos Veja que cada um da esquerda se relaciona com vários do da direita. Importante:
  • O número de campos do relacionamento não precisa ser o mesmo
  • O tipo de dados dos campos do relacionamento deve ser igual, assim como o tamanho dos campos e formatos - Chave primária - Chave estrangeira (um - vários) Relacionamento Vários para Vários Este tipo de relacionamento não dá para ser implementado no modelo relacional, portanto sempre que nos deparamos com um deles devemos dividir em dois relacionamentos um para vários (criando uma terceira tabela, que armazenará o lado vários dos relacionamentos). Exemplo: Pedidos - Produtos Cada pedido pode conter vários produtos, assim como cada produto pode estar em vários