PostgreSQL Prático - ?· • O PostgreSQL suporta grande parte do SQL ANSI, inclusive do SQL 2003,…

Embed Size (px)

Text of PostgreSQL Prático - ?· • O PostgreSQL suporta grande parte do SQL ANSI, inclusive do SQL...

  • 1

    PostgreSQL Prtico(verso 8.1.4)

    Ribamar FS ribafs@users.sourceforge.net http://ribafs.tk17 de setembro de 2006

    mailto:ribafs@users.sourceforge.nethttp://ribafs.tk/DeboraFernandaCarimbo

  • Livros Grtis

    http://www.livrosgratis.com.br

    Milhares de livros grtis para download.

  • 2NDICE

    Captulo Pgina

    1 Introduo . . . . . . . . . . 4

    2 - Instalao . . . . . . . . . 82.1 - No Linux2.2 - No Windows

    3 - DDL (Data Definition Language) . . . . . . . 133.1 - Criao e excluso de bancos, esquemas, tabelas, views, Constraints, etc3.2 - Alteraes nos objetos dos bancos3.3 - ndices, Tipos de Dados e Integridade Referencial

    4 - DML (Data Manipulation Language) . . . . . . . 344.1 - Consultas (select,insert, update e delete)4.2 - Consultas JOINS4.3 - Sub Consultas

    5 - Funes Internas . . . . . . . . 455.1 - Strings5.2 - Matemticas5.3 - Agrupamento (Agregao)5.4 - Data/Hora5.5 - Formatao de Tipos de Dados5.6 - Converso de Tipos (CAST)

    6 - Funes Definidas pelo Usurio e Triggers . . . . . . 556.1 - SQL6.2 - PlpgSQL6.3 Triggers

    7 - DCL (Data Control Language) - Administrao . . . . . 687.1 - Usurios, grupos e privilgios

    8 - Transaes . . . . . . . . . . 72

    9 Administrao . . . . . . . . . . 759.1 - Backup e Restore9.2 - Importar e Exportar 9.3 - Converter9.4 - Otimizao e Desempenho

    10 - Replicao . . . . . . . . . . 84

    11 - Configuraes . . . . . . . . . . 8610.1 - Copiar o script de inicializao dos contribs10.2 - Adicionar ao Path10.3 - Configurar acessos (pg_hba.conf)10.4- Configuraes diversas (postgresql.conf)

    12 Metadados (Catlogo) . . . . . . . . 92

    13 - Conectividade . . . . . . . . . . 10513.1 - Com Java (JDBC)13.2 - Com aplicativos Windows (ODBC)13.3 - Com PHP13.4 - Exemplos de conexo com PHP, Java e VB

  • 314 - Ferramentas . . . . . . . . . . 108

    14.1 - psql14.2 - phpPgAdmin14.3 - PgAdmin14.4 - EMS PostgreSQL14.5 - Azzurry Clay (modelagem com o Eclipse)14.6 - dbVisualizer14.7 - OpenOffice Base

    15 Apndices . . . . . . . . . . 12415.1 Planejamento e Projeto de Bancos de Dados 15.2 Implementao de Banco de Dados com o PostgreSQL15.3 - Integridade Referencial - PostgreSQL15.4 Dicas Prticas de uso do SQL15.5 Dicas sobre Desempenho e Otimizaes do PostgreSQL

    16 Exerccios . . . . . . . . . . 149

    17 - Referncias . . . . . . . . . . 154

  • 41 - Introduo

    Histria dos SGDBsAnos 60 - utilizados sistemas gerenciadores de arquivos (ISAM e VSAM), usados at hoje.Anos 70 - Gerenciadores de Bancos de dados de rede. Extinguiram-se 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:- Um 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, 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.

    http://pt.wikipedia.org/wiki/2006http://pt.wikipedia.org/wiki/C?digo_abertohttp://pt.wikipedia.org/w/index.php?title=AMR_Research&action=edithttp://pt.wikipedia.org/wiki/2004http://pt.wikipedia.org/wiki/Mar?ohttp://pt.wikipedia.org/wiki/Softwarehttp://pt.wikipedia.org/

  • 5Tabelas 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);)

    http://pgdocptbr.sourceforge.net/pg80/history.htmlhttp://www.postgresql.org/docs/current/interactive/history.html

  • 6Traz tambm opes de extenso pelo usurio: Tipos de dados Funes Operadores Funes de Agregao (Agrupamento) Mtodos de ndice Linguagens Procedurais (Stored Procedures)

    LicenaSua licena BSD, portanto pode ser utilizado, modificado e distribudo por qualquer pessoa ou empresa para qualquer finalidade, sem qualquer encargo, em quaisquer dos sistemas operacionais suportados.

    Empresas que Utilizam PostgreSQLBASF (PDF format)FujitsuAppleRedHatSunPervasive Mohawk SoftwareProximity Radio ParadiseShannon Medical CenterSpiros Louis StadiumThe Dravis Group OSS ReportVanten Inc.SRARamblerNetezzaVA SoftwareTravel PostNational Weather Service

    Aplicaes Corporativas de Alto Volume: Uma Soluo com o PostgreSQLA 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. E-xistem 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 tele-fonia 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 produt