tutorial do postgresql 8

Download Tutorial Do PostGreSQL 8

Post on 08-Jun-2015

1.965 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

Tutorial em Português do PostGreSQL 8.x

TRANSCRIPT

Tutorial do PostgreSQL 8

Projeto de Traduo para o Portugus do Brasil(http://sourceforge.net/projects/pgdocptbr/)

The PostgreSQL Global Development Group

Rio de Janeiro, 29 de dezembro de 2005

Documentao do PostgreSQL 8.0.0 Projeto de Traduo para o Portugus do Brasil (http://sourceforge.net/projects/pgdocptbr/) The PostgreSQL Global Development Group Copyright1996-2005 por The PostgreSQL Global Development Group Legal NoticePostgreSQL is Copyright 1996-2005 by the PostgreSQL Global Development Group and is distributed under the terms of the license of the University of California below. Postgres95 is Copyright 1994-5 by the Regents of the University of California. Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies. IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN AS-IS BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Traduzido por Halley Pacheco de Oliveira ()

Revisado por Diogo de Oliveira Biazus Marcia Tonon

Tutorial do PostgreSQL 8.xBem vindo ao Tutorial do PostgreSQL. Os poucos captulos a seguir tm por objetivo fornecer uma introduo simples ao PostgreSQL, aos conceitos de banco de dados relacional e linguagem SQL, para os iniciantes em qualquer um destes tpicos. Somente pressuposto um conhecimento geral sobre a utilizao de computadores. Nenhuma experincia com Unix ou em programao necessria. Esta parte tem como objetivo principal fornecer experincia prtica sobre os aspectos importantes do PostgreSQL. No h nenhuma inteno em dar-se um tratamento completo ou abrangente dos tpicos cobertos. Aps ler este tutorial pode-se prosseguir atravs da leitura da Parte II para obter um maior conhecimento formal da linguagem SQL, ou da Parte IV para obter informaes sobre o desenvolvimento de aplicativos para o PostgreSQL. Aqueles que instalam e gerenciam seus prprios servidores tambm devem ler a Parte III.

Captulo 1. Incio1.1. InstalaoPara que se possa usar o PostgreSQL necessrio instal-lo, obviamente. possvel que o PostgreSQL j esteja instalado na mquina, seja porque est includo na distribuio do sistema operacional , ou porque o administrador do sistema fez a instalao. Se este for o caso, devem ser obtidas informaes na documentao do sistema operacional, ou com o administrador do sistema, sobre como acessar o PostgreSQL.1

No havendo certeza se o PostgreSQL est disponvel, ou se pode ser utilizado para seus experimentos, ento voc mesmo poder fazer a instalao. Proceder desta maneira no difcil, podendo ser um bom exerccio. O PostgreSQL pode ser instalado por qualquer usurio sem privilgios, porque no necessrio nenhum acesso de superusurio (root). Se for instalar o PostgreSQL por si prprio, ento leia o Captulo 14 para conhecer as instrues de instalao, e depois retorne para este guia quando a instalao estiver terminada. Certifique-se de seguir de perto a seo sobre a configurao das variveis de ambiente apropriadas. Se o administrador do sistema no fez a configurao da maneira padro, talvez seja necessrio algum trabalho adicional. Por exemplo, se a mquina servidora de banco de dados for uma mquina remota, ser necessrio definir a varivel de ambiente PGHOST com o nome da mquina servidora de banco de dados. Tambm, talvez tenha que ser definida a varivel de ambiente PGPORT. A regra bsica esta: quando se tenta iniciar um programa aplicativo e este informa que no est conseguindo conectar com o banco de dados, deve ser consultado o administrador do servidor ou, caso seja voc mesmo, a documentao, para ter certeza que o ambiente est configurado de maneira apropriada. Caso no tenha entendido o pargrafo anterior ento, por favor, leia a prxima seo.

1.2. Fundamentos da arquiteturaAntes de prosseguir, necessrio conhecer a arquitetura de sistema bsica do PostgreSQL. Compreender como as partes do PostgreSQL interagem torna este captulo mais claro. No jargo de banco de dados, o PostgreSQL utiliza o modelo cliente-servidor. Uma sesso do PostgreSQL consiste nos seguintes processos (programas) cooperando entre si:

Um processo servidor, que gerencia os arquivos de banco de dados, recebe conexes dos aplicativos cliente com o banco de dados, e executa aes no banco de dados em nome dos clientes. O programa servidor de banco de dados se chama postmaster. O aplicativo cliente do usurio (frontend) que deseja executar operaes de banco de dados. Os aplicativos cliente podem ter naturezas muito diversas: o cliente pode ser uma ferramenta no modo caractere, um aplicativo grfico, um servidor Web que acessa o banco de dados para mostrar pginas Web, ou uma ferramenta especializada para manuteno do banco de dados. Alguns aplicativos cliente so fornecidos na distribuio do PostgreSQL, sendo a maioria desenvolvido pelos usurios.2

Como tpico em aplicaes cliente-servidor, o cliente e o servidor podem estar em hospedeiros diferentes. Neste caso se comunicam atravs de uma conexo de rede TCP/IP. Deve-se ter isto em mente, porque arquivos que podem ser acessados na mquina cliente podem no ser acessveis pela mquina servidora (ou somente podem ser acessados usando um nome de arquivo diferente). O servidor PostgreSQL pode tratar vrias conexes simultneas de clientes. Para esta finalidade iniciado um novo processo (fork ) para cada conexo. Deste ponto em diante, o cliente e o novo processo servidor se comunicam sem interveno do processo postmaster original. Portanto, o postmaster est sempre executando aguardando por novas conexes dos clientes, enquanto os clientes e seus processos servidor associados surgem e desaparecem (obviamente tudo isso invisvel para o usurio, sendo mencionado somente para ficar completo).3

1.3. Criao de banco de dadosO primeiro teste para verificar se possvel acessar o servidor de banco de dados tentar criar um banco de dados. Um servidor PostgreSQL pode gerenciar muitos bancos de dados. Normalmente utilizado um banco de dados em separado para cada projeto ou para cada usurio. Possivelmente, o administrador j criou um banco de dados para seu uso. Ele deve ter dito qual o nome do seu banco de dados. Neste caso esta etapa pode ser omitida, indo-se direto para a prxima seo. Para criar um novo banco de dados, chamado meu_bd neste exemplo, deve ser utilizado o comando:$ createdb meu_bd

Que deve produzir a seguinte resposta:CREATE DATABASE

Se esta resposta for mostrada ento esta etapa foi bem sucedida, podendo-se pular o restante da seo . Se for mostrada uma mensagem semelhante acreatedb: comando no encontrado

ento o PostgreSQL no foi instalado da maneira correta, ou no foi instalado, ou o caminho de procura no foi definido corretamente. Tente executar o comando utilizando o caminho absoluto:$ /usr/local/pgsql/bin/createdb meu_bd

O caminho na sua mquina pode ser diferente. instrues de instalao para corrigir a situao. Outra resposta pode ser esta:5

4

Fale com o administrador, ou verifique novamente as

createdb: could not connect to database template1: could not connect to server: No such file or directory Is the server running locally and accepting

connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

-- Traduo da mensagem (N. do T.)createdb: no foi possvel conectar ao banco de dados template1 : no foi possvel conectar ao servidor: Arquivo ou diretrio inexistente O servidor est executando localmente e aceitando conexes no soquete do domnio Unix "/tmp/.s.PGSQL.5432"?

Significando que o servidor no foi inicializado, ou que no foi inicializado onde o createdb esperava que fosse. Novamente, verifique as instrues de instalao ou consulte o administrador. Outra resposta pode ser esta:createdb: could not connect to database template1: FATAL: user "joel" does not exist

-- Traduo da mensagem (N. do T.)createdb: no foi possvel conectar ao banco de dados template1: FATAL: o usurio "joel" no existe

onde mencionado o seu prprio nome de login. Isto vai acontecer se o administrador no tiver criado uma conta de usurio no PostgreSQL para seu uso (As contas de usurio do PostgreSQL so distintas das contas de usurio do sistema operacional). Se voc for o administrador, obtenha ajuda para criar contas no Captulo 17. Ser necessrio se tornar o usurio do sistema operacional que instalou o PostgreSQL (geralmente postgres) para criar a primeira conta de usurio. Tambm pode ter sido atribudo para voc um nome de usurio do PostgreSQL diferente do nome de usurio do sistema operacional; neste caso, necessrio utilizar a chave -U, ou definir a varivel de ambiente PGUSER, para especificar o nome de usurio do PostgreSQL. Caso se possua uma conta de usurio, mas esta conta no possua o privilgio necessrio para criar bancos de dados, ser exibida a seguinte mensagem:createdb: database creation failed: ERROR: permission denied to create database

-- Traduo da mensagem (N. do T.)createdb: a criao do banco de dados falhou: ERRO: negada a permisso para criar banco de dados

Nem todo usurio possui autorizao para criar bancos de dados. Se o PostgreSQL no permitir criar o banco de dados, ento o administrador deve conceder permisso para voc criar bancos de dados. Consulte o administrador caso isto