postgresql pratico

Download Postgresql Pratico

Post on 07-Jun-2015

1.639 views

Category:

Documents

7 download

Embed Size (px)

TRANSCRIPT

1

PostgreSQL Prtico(verso 8.1.4)

Ribamar FS ribafs@users.sourceforge.net http://ribafs.tk 17 de setembro de 2006 Revisado em 03/10/2006

2 NDICE Captulo 1 Introduo . . . . . . . . . Pgina . 4

2 - Instalao . . . . . . . . . 8 2.1 - No Linux 2.2 - No Windows 3 - DDL (Data Definition Language) . . . . . . . 13 3.1 - Criao e excluso de bancos, esquemas, tabelas, views, Constraints, etc 3.2 - Alteraes nos objetos dos bancos 3.3 - ndices, Tipos de Dados e Integridade Referencial 4 - DML (Data Manipulation Language) . . . . . . . 33 4.1 - Consultas (select,insert, update e delete) 4.2 - Consultas JOIN 4.3 - Sub Consultas 5 - Funes Internas . . . . . . . . 44 5.1 - Strings 5.2 - Matemticas 5.3 - Agrupamento (Agregao) 5.4 - Data/Hora 5.5 - Formatao de Tipos de Dados 5.6 - Converso de Tipos (CAST) 6 - Funes Definidas pelo Usurio e Triggers . . . . . . 54 6.1 - SQL 6.2 - PlpgSQL 6.3 Triggers 7 - DCL (Data Control Language) - Administrao . . . . . 67 7.1 - Administrao de usurios, grupos e privilgios 8 - Transaes . . . . . . . . . . 71 9 Administrao . . . . 9.1 - Backup e Restore 9.2 - Importar e Exportar 9.3 - Converter 9.4 - Otimizao e Desempenho 10 - Replicao . . . . . . . . . . 74

.

.

. . . .

. . . .

. . . .

. . . .

83 85 92 105

11 - Configuraes . . . . . . 10.1 - Configurar acessos (pg_hba.conf) 10.2- Configuraes diversas (postgresql.conf) 12 Metadados (Catlogo) . . . . 13 - Conectividade . . . . . . 13.1 - Com Java (JDBC) 13.2 - Com aplicativos Windows (ODBC) 13.3 - Com PHP 13.4 - Exemplos de conexo com PHP, Java e VB

14 - Ferramentas . . . . . . . . 14.1 - psql 14.2 - phpPgAdmin 14.3 - PgAdmin 14.4 - EMS PostgreSQL 14.5 - Azzurry Clay (modelagem com o Eclipse) 14.6 - dbVisualizer 14.7 - OpenOffice Base 15 Apndices . . . . . . . . 15.1 Planejamento e Projeto de Bancos de Dados 15.2 Implementao de Banco de Dados com o PostgreSQL 15.3 - Integridade Referencial - PostgreSQL 15.4 Dicas Prticas de uso do SQL 15.5 Dicas sobre Desempenho e Otimizaes do PostgreSQL 16 Exerccios . . . . . . . . 17 - Referncias . . . . . . . .

.

.

3 108

.

.

124

. .

. .

149 154

4 1 - Introduo Histria dos SGDBs Anos 60 - utilizados sistemas gerenciadores de arquivos (ISAM e VSAM), usados at hoje. Anos 70 - Gerenciadores de Bancos de dados de rede. Desapareceram nos anos 90. Anos 80 - SGBDRs (Oracle, DB2, SQLServer) Anos 90 - SGBDOR (Oracle, DB2, PostgreSQL e Informix) Anos 90 - SGBDOO (Cach) SGBD = Composto por programas de gerenciamento, armazenamento e acesso aos dados, com a finalidade de tornar gil e eficiente a manipulao dos dados. Dicionrio de dados - metadados, dados sobre os dados, ou seja, informaes sobre a estrutura dos bancos de dados (nomes de tabelas, de campos, tipos de dados, etc). DBA - Database Administrator, com as funes de: - Definir e modificar esquemas, estruturas de armazenamento e mtodos de acesso - Liberar privilgios de acesso - Especificao de restrio de integridade Simplificando temos (no PostgreSQL), em termos de estrutura: - O SGBD formado por bancos de dados, tablespaces, usurios e alguns programas auxiliares; - Um banco de dados formado pelos esquemas e linguagens; - Um esquema formado por funes de agrupamento, funes do usurio, triggers, procedures, sequncias, tabelas e views; - Tabelas so formadas por campos, constraints, ndices e triggers. - Em termos de dados uma tabela formada por registros e campos. Segundo a Wikipedia (http://pt.wikipedia.org): ... A apresentao dos dados pode ser semelhante de uma planilha eletrnica, porm os sistemas de gesto de banco de dados possuem caractersticas especiais para o armazenamento, classificao e recuperao dos dados. Os bancos de dados so utilizados em muitas aplicaes, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados so o mtodo de armazenamento preferencial para aplicaes multiusurio, nas quais necessrio haver coordenao entre vrios usurios. Entretanto, so convenientes tambm para indivduos, e muitos programas de correio eletrnico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados. Em Maro, 2004, AMR Research (como citado em um artigo da CNET News.com listado na seco de "Referncias") previu que aplicaes de banco de dados de cdigo aberto seriam amplamente aceitas em 2006. Esquemas so subdivises de bancos de dados, cuja funo permitir um melhor nvel de organizao. Projetos de mesma categoria, que precisem acessar uns aos outros devem ficar em um mesmo banco, podendo ficar em esquemas separados.

5 Tabelas so subdivises de um esquema, nelas realmente ficam armazenados os dados de um banco. Uma tabela parece realmente com uma tabela em papel, tipo planilha, com linhas e colunas. Cada linha representa um registro de banco de dados e cada cruzamento de coluna com linha representa um campo de tabela. Tipo de Dados de um campo restringe o conjunto de valores (domnio) que pode ser atribudo ao campo e atribui semntica aos dados armazenados. Um campo do tipo numrico no aceita dados do tipo texto ou similar. Citao da Introduo do documento sobre otimizao do PostgreSQL POSTGRESQL um SGBD objeto-relational (SGBDOR) desenvolvido via Internet por um grupo de desenvolvedores espalhados pelo globo. uma alternativa de cdigo fonte-aberta para SGBDs comerciais como Oracle e Informix. O POSTGRESQL foi desenvolvido originalmente na Universidade de Califrnia em Berkeley. Em 1996, um grupo comeou o desenvolvimento do SGBD na Internet. Eles usam e-mail para compartilhar idias e servidores de arquivos para compartilhar cdigo. POSTGRESQL agora comparvel SGBDs comerciais em termos de caractersticas, desempenho e confiana. Hoje tem transaes, views, procedimentos armazenados, e constranints de integridade referencial. Apia um nmero grande de interfaces de programao, como ODBC, Java (JDBC), TCL/TK, PHP, Perl e Python, entre outros. POSTGRESQL continua avanando a um tremendo passo, graas a um grupo talentoso de desenvolvedores via Internet. (Bruce Momjian - 16th January 2003) Projeto POSTGRES (1986-1994): Partiu do projeto do SGBD Ingres de Berkeley. Projetista: Michael Stonebraker. Em 1995 dois estudantes de Berkeley (Jolly Chen e Andrew Yu) adicionam suporte a SQL. Seu novo nome: Postgres95. Foi totalmente reescrito em C e tambm adotou a SQL. Foi originalmente patrocinado pelo DARPA, ARO, NSF e ESL Inc. Em 1996: Disponibilizado na Internet sob o nome de PostgreSQL. O PostgreSQL aniversariou no dia 08/07/2006, quando completou 10 anos (08/07/1996). Seu dcimo aniversrio foi comemorado nos dias 08 e 09 de julho prximo, em Toronto, Canad, com algumas conferncias sobre o mesmo. Atualmente est na verso 8.1.4 (14/09/2006). Para saber mais sobre a histria do PostgreSQL visite o site oficial em: http://www.postgresql.org/docs/current/interactive/history.html Ou em portugus em: http://pgdocptbr.sourceforge.net/pg80/history.html Caractersticas: O PostgreSQL suporta grande parte do SQL ANSI, inclusive do SQL 2003, alm de oferecer outros recursos importantes, como: Comandos complexos Chaves estrangeiras (Foreign Key) Gatilhos (Triggers) Vises (views) Integridade de Transaes Controle de Simultaneidade Multiverso (MVCC) Suporta mltiplas transaes online concorrentes entre usurios. Suporte a Rules (sistema de regras que reescreve diretivas SQL) Criao de tabelas temporrias (CREATE TEMP TABLE nome(listadecampos tipos);)

6 Traz tambm opes de extenso pelo usurio para: Tipos de dados Funes Operadores Funes de Agregao (Agrupamento) Mtodos de ndice Linguagens Procedurais (Stored Procedures) Licena Sua licena BSD, portanto pode ser utilizado, modificado e distribudo por qualquer pessoa ou empresa para qualquer finalidade, sem encargo, em quaisquer dos sistemas operacionais suportados. Algumas Empresas que Utilizam PostgreSQL BASF (PDF format) Fujitsu Apple RedHat Sun Pervasive Mohawk Software Proximity Radio Paradise Shannon Medical Center Spiros Louis Stadium The Dravis Group OSS Report Vanten Inc. SRA Rambler Netezza VA Software Travel Post National Weather Service Aplicaes Corporativas de Alto Volume: Uma Soluo com o PostgreSQL A utilizao da dupla PostgreSQL+Linux nas empresas cresce rapidamente e um exemplo de como produtos Open Source podem ajudar empresas a racionalizar os custos de TI. Uma das caractersticas do PostgreSQL a sua capacidade de lidar com um grande volume de dados. Existem aplicaes em produo com tabelas possuindo mais de 100 milhes de linhas. No Brasil, existem casos de sucesso de empresas lidando com bases com dezenas de milhes de registros gerenciadas pelo PostgreSQL. Uma das maiores implantaes de PostgreSQL no Brasil na Atrium Telecom, empresa de telefonia corporativa de So Paulo. O PostgreSQL utilizado como banco de dados do sistema de billing e tem uma base de dados de mais de 100GB e efetua 1 milho de transaes dirias. As maiores tabelas do sistema contam com mais de 70 milhes de linhas. A utilizao do banco de dados PostgreSQL cada vez mais ampla nas empresas que buscam um servidor de banco de dados altamente sofisticado, com alta performance, estvel e capacitado para lidar com grandes volumes de dados. O fato de ser um produto Open Source, sem custos de licena para nenhum uso, torna o PostgreSQL uma alternativa extremamente atraente para empresas que buscam um custo total de propriedade (TCO) menor para os ativos de TI.

7 Citao de: http://www.dib.com.br/dib%20cd/LC2003/P%C3%A1ginas/LC2003_Conf.html Metr de So Paulo e DATAPREV tambm utilizam o PostgreSQL. Sobre o Autor Ribamar FS Desenvolvedor de aplicativos web para a Intranet do DNOCS (Departamento Nacional de Obras Contra as Secas). Desenvolve atualmente em PHP com PostgreSQL. Trabalhou no DNOCS por algum tempo como administrador de redes Linux e FreeBSD. graduado em Engenharia Civil pela Universidade de Fortaleza (UNIFOR) Com especializao em I