Vous êtes sur la page 1sur 48

Apostila PostgreSQL 8.

Componentes: Arthur Baltazar


Catia Regina Giovane Gabrielli Jos Felipe Vitor Cardoso

N 06 N 08 N 21 N 27 N 42

Franco da Rocha 2010

ndice:
Introduo......................................................................................................................... 5 Caractersticas................................................................................................................... 5 Recursos Presentes na Verso mais Recente.................................................................... 6 Sobre o PostgreSQL ......................................................................................................... 6 Limite Valor ..................................................................................................................... 6 Um Pouco da Histria do PostgreSQL............................................................................. 7 Tipos de Dados do PostgreSQL ....................................................................................... 8 Tipos de dados: Caracteres ........................................................................................... 8 Tipos de dados: Numricos .......................................................................................... 8 Nmeros de preciso fixa ............................................................................................. 8 Tipos de ponto flutuante ............................................................................................... 9 Pseudo tipos seriais....................................................................................................... 9 Uso.................................................................................................................................. 10 Criao de banco de dados no PostgreSQL................................................................ 10 Referncias ..................................................................................................................... 49

II

Introduo
O PostgreSQL um SGBD (Sistema Gerenciador de Banco de Dados) objetorelacional de cdigo aberto, com mais de 15 anos de desenvolvimento. robusto e confivel, alm de ser extremamente flexvel e rico em recursos. Um de seus atrativos possuir recursos comuns a banco de dados de grande porte (SQL Server), o que o deixa apto a trabalhar, inclusive, com operaes de misso crtica. Alm disso, trata-se de um banco de dados verstil, seguro e gratuito disponvel sob uma licena BSD. O PostgreSQL considerado objeto-relacional por implementar, alm das caractersticas de um SGBD relacional, algumas caractersticas de orientao a objetos, como herana e tipos personalizados com conformidade e padres. Ele roda em todos os grandes sistemas operacionais, incluindo GNU/Linux, Unix (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), e MS Windows. Alm de tudo totalmente compatvel com ACID, tm suporte completo chaves estrangeiras, junes (JOIN), vises, gatilhos e procedimentos armazenados em mltiplas linguagens. Inclui a maior parte dos tipos de dados do ISO SQL: 1999, incluindo INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP. Suporta tambm sons ou vdeos. Possui interfaces nativas de programao para C/C++, Java, Net, Perl, Python, Ruby, Tcl, ODBC, entre outros, e uma documentao excepcional. O PostgreSQL teve patrocnio de diversas empresas, entre as quais se destacam: Fujitsu, Hub.Org, NTT Group, Red Hat, Skype, SRA e Sun Microsystems. O software tem adquirido prestgio na comunidade Linux, tendo recebido diversas vezes o prmio Linux Journal Editor's Choice de melhor Sistema de Gerenciamento de Banco de Dados. A aceitao do PostgreSQL tem se ampliado para alm da comunidade de cdigo aberto. H entre os seus usurios grandes empresas internacionais, rgos governamentais de vrios pases e universidades de prestgio mundial. Existe uma lista dos principais usurios no Brasil e no mundo e, tambm, h alguns estudos de caso de aplicaes que utilizam o PostgreSQL.

Caractersticas
Desenvolvedor: PostgreSQL Global Development Group; Primeiro lanamento: um de maio de 1995; ltima verso: 9.0; Idiomas: 23 idiomas; Plataforma (sistema Operacional): Multiplataforma;

Compatibilidade: Java, PHP, Python, Ruby, e C/C++; Suporte: recursos como triggers, views, stored procedures, SSL, MVCC, Website: http://www.PostgreSQL.org.br;

Recursos Presentes na Verso mais Recente


Consultas complexas Chaves Estrangeiras Integridade Transacional Controle de concorrncia multi-verso Suporte ao modelo hbrido objeto-relacional Gatilhos Vises Linguagem Procedural em vrias linguagens (PL/pgSQL, PL/Python, PL/Java, PL/Perl) para Procedimentos armazenados Indexao por texto Estrutura para guardar dados Georeferenciados PostGIS

Sobre o PostgreSQL
Como um banco de dados de nvel corporativo, o PostgreSQL possui funcionalidades sofisticadas como o Controle de Concorrncia Multiversionado (MVCC), Recuperao em um Ponto no Tempo (PITR), Tablespaces (diviso lgica), Replicao Assincrnica, Transaes Agrupadas, Cpias de Segurana Quente (hotbackup), um sofisticado Planejador de Consultas e Registrador de Transaes Sequenciais (WAL) para tolerncia falhas. Suporta conjuntos de caracteres internacionais, codificao de caracteres multibyte, Unicode e sua ordenao por localizao, sensibilidade formatao (maisculas e minsculas). altamente escalvel, tanto na quantidade enorme de dados que pode gerenciar, quanto no nmero de usurios concorrentes que pode acomodar. Existem sistemas ativos com o PostgreSQL em ambiente de produo que gerenciam mais de 4TB de dados. Alguns limites do PostgreSQL esto includos na tabela abaixo.

Limite Valor
Tamanho Mximo do Banco de Dados Ilimitado Tamanho mximo de uma Tabela 32 TB Tamanho Mximo de uma Linha 1.6 TB Tamanho Mximo de um Campo 1 GB Mximo de Linhas por Tabela: Ilimitado Mximo de Colunas por Tabela 2501600 dependendo do Mximo de ndices por Tabela: Ilimitado 6

Um Pouco da Histria do PostgreSQL


O sistema gerenciador de banco de dados PostgreSQL teve seu incio na Universidade de Berkeley, na Califrnia, em 1986. poca, um programador chamado Michael Stonebraker liderou um projeto para a criao de um servidor de banco de dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituio denominado Ingres. Essa tecnologia foi ento comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porm, mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres linguagem SQL. Este projeto recebeu o nome de Postgres95. Em 1996, quando o projeto estava estvel, o banco de dados recebeu o nome de PostgreSQL. No entanto, enquanto ainda possua o nome Postgres95, o banco de dados teve vrias mudanas. O seu cdigo foi totalmente revisado e a linguagem SQL foi definida como padro. Tambm em 1996, o projeto foi renomeado para PostgreSQL a fim de refletir a nova linguagem de consulta ao banco de dados: SQL. A primeira verso de PostgreSQL foi a 6.0, liberada em janeiro de 1997. Desde ento, um grupo de desenvolvedores e de voluntrios de todo o mundo, coordenados pela Internet, tm mantido o software e desenvolvido novas funcionalidades. As principais caractersticas acrescentadas nas verses 6.x so o: MVCC (Controle de Concorrncia Multiverses), melhorias no SQL e novos tipos de dados nativos (novos tipos de datas e hora e tipos geomtricos). Em maio de 2000 foi liberada a verso 7.0. As verses 7.x trouxeram as seguintes novas funcionalidades: Write-Ahead Log (checa as transaes de dados), Schemas SQL, Outer Joins (juno de dados), Suporte IPv6, Indexao por Texto, Suporte SSL e informaes estatsticas do banco de dados. A verso 8.0 foi lanada em janeiro de 2005 e entre outras novidades, foi a primeira a ter suporte nativo para Microsoft Windows (tradicionalmente, o PostgreSQL s rodava de forma nativa em sistemas Unix e, em sistemas Windows - atravs da biblioteca Cygwin). Dentre as muitas novidades da verso 8.x, pode-se destacar o suporte a Tablespaces, Savepoints, Point-in-time Recovery, e Two-Phase Commit (2PC). Em julho de 2009 foi lanada a verso mais nova a 8.4, que detm ferramentas e comandos para administrao e monitoramento novos ou melhorados. Cada usurio tem sua funcionalidade favorita que tornar o seu dia-a-dia com o PostgreSQL mais fcil e produtivo. Dentre as principais se destacam: Restaurao Paralela de Bases de Dados, aumentando a velocidade de recuperao de cpia de segurana (backup) em at oito vezes; Permisses por Coluna, permitindo um controle mais granular de dados sigilosos; Suporte a Configurao Regional por Banco de Dados, tornando o PostgreSQL mais til em ambientes com mltiplos idiomas; Upgrades In-place com o pg_migrator beta, permitindo migraes das 8.3 para a 8.4 sem tirar o banco do ar por muito tempo; Novas Ferramentas de Monitoramento de Consultas, dando aos administradores mais detalhes sobre a atividade das consultas.

Tipos de Dados do PostgreSQL Tipos de dados: Caracteres


No PostgreSQL, existem trs tipos bsicos que podem comportar caracteres alfanumricos: char, varchar e text. A diferena entre eles est nos limites e estrutura de armazenamento dos dados. O tipo char(n) armazena uma cadeia de caracteres com tamanho fixo, tendo como n o seu tamanho mximo. Ocupa 4+n bytes em disco (se a cadeia de caracteres for menor que n, o campo preenchido com espaos em branco direita). Esses 4 bytes fixos so utilizados pelo PostgreSQL para armazenar informaes referentes ao tipo e tamanho do campo. O tipo varchar(n) tem como diferena possuir tamanho de armazenamento varivel, limitado a ncaracteres. Ocupa 4 + m bytes, onde m o nmero de caracteres efetivamente usados. O terceiro tipo, denominado text, possui tamanho varivel e um limite muito grande de armazenamento. Equivale a um varchar(4000000000) e pode ser utilizado para armazenar campos BLOB do tipo texto.

Tipos de dados: Numricos


Os tipos numricos se subdividem em nmeros inteiros, de preciso fixa, de ponto flutuante e os pseudo tipos seriais.

Inteiros
Esse tipo armazena nmeros sem componentes fracionais. Nmeros inteiros possuem limites mximos e mnimos, e qualquer tentativa de se armazenar valores fora dessa faixa ir gerar um erro. Existem os seguintes tipos inteiros:

smallint ou int2 2 bytes (16 bits) int, integer ou int4 4 bytes (32 bits) int8, bigint 8 bytes (64 bits) Na maior parte dos casos, o tipo integer oferece a melhor relao performance versus capacidade de armazenamento. O tipo bigint, por ser mais pesado e conseqentemente mais lento, deve ser usado somente quando a faixa de armazenamento do integer realmente no for suficiente.

Nmeros de preciso fixa


Os nmeros de preciso fixa so criados com o tipo numeric. Seu uso recomendado para armazenar valores monetrios e outras quantias nas quais a exatido necessria. 8

Tipos de ponto flutuante


Os tipos de dado real e double precision so tipos numricos no exatos de preciso varivel. Na prtica, estes tipos so geralmente implementaes do "Padro IEEE 754 para Aritmtica Binria de Ponto Flutuante" (de preciso simples e dupla, respectivamente), conforme suportado pelo processador, sistema operacional e compilador utilizados. No exato significa que alguns valores no podem ser convertidos exatamente para o formato interno, sendo armazenados como aproximaes. Portanto, ao se armazenar e posteriormente imprimir um valor podem ocorrer pequenas discrepncias. A gerncia destes erros, e como se propagam atravs dos clculos como, por exemplo: Se for necessrio armazenamento e clculos exatos (como em quantias monetrias), em vez de tipos de ponto flutuante deve ser utilizado o tipo numeric. Se for desejado efetuar clculos complicados usando tipos de ponto flutuante para algo importante, especialmente dependendo de certos comportamentos em situaes limites (infinito ou muito prximo de zero), a implementao deve ser avaliada cuidadosamente. A comparao de igualdade de dois valores de ponto flutuante pode funcionar conforme o esperado, ou no.

Pseudo tipos seriais


Os tipos de dado serial e bigserial no so tipos verdadeiros, mas meramente uma notao conveniente para definir colunas identificadoras nicas (semelhante propriedade AUTO_INCREMENTO existente em alguns outros bancos de dados).

Uso
Criao de banco de dados no PostgreSQL
Exemplo Biblioteca: Aps instalar o PostgreSQL, clique em iniciar > todos os programas > PostgreSQL > pgAdmin III

10

Antes de tudo, necessrio conectar-se com o servidor. Clique com o boto direito no servidor desejado e clique em conectar, ou apenas clique duas vezes no servidor.

Depois de conectado, clique no + do seu servidor conectado e com o boto direito do mouse clique em Banco de Dados > Novo Banco de Dados

11

Normalmente, o criador se torna o dono do novo banco de dados. Super usurios podem criar bases de dados detidas por outros usurios, usando a clusula OWNER. Eles podem at mesmo criar bancos de dados pertencentes a usurios sem privilgios especiais. Os usurios comuns com privilgio CREATEDB s podem criar bases de dados detidas por si prprios. Por padro, o novo banco de dados ser criado clonando o banco de dados padro do sistema template1. Um modelo diferente pode ser especificado por cdigo, nome do modelo. Em particular, escrevendo TEMPLATE template0, voc pode criar um banco de dados virgem contendo apenas os objetos padro pr-definidos pela verso do PostgreSQL. Isso til se voc deseja evitar a cpia de qualquer objeto da instalao local que possa ter sido adicionado ao template1.

12

Aparecer a janela onde se definir os parmetros do banco de dados a ser criado: Nome: definido o nome do banco de dados; Dono: O nome do usurio do banco de dados que ser o novo banco de dados, se no for inserido um nome ficar como DEFAULT para utilizar o padro; Modelo: O nome do modelo a partir do qual pretende criar o novo banco de dados, se no escolhido, ser usado o modelo padro (template1); Tablespace: O nome da tabela que ser associado ao novo banco de dados, ou DEFAULT para utilizar o espao de tabelas do banco de dados modelo. Esta tabela ser o tablespace padro para os objetos criados neste banco de dados; Connection Limit: Quantas conexes simultneas podem ser feitas a este banco de dados. -1 (O padro) significa sem limite.

NOTA: Na guia SQL possvel visualizar e alterar o cdigo de criao do banco de dados Neste exemplo, o nome do banco de dados ser Biblioteca e ser usado o modelo Template1 conforme a imagem abaixo.

13

Aps a criao, ser possvel visualizar o banco de dados que foi criado, clicando no sinal de + em Banco de dados do lado esquerdo da tela, na guia propriedades no lado direito da tela.

Para criar as tabelas, chaves e etc.: Digitando o cdigo poderamos clicar em cima do banco criado com o boto direito do mouse e clicar em script Create. Veremos essa opo mais adiante. Note que 14

no Painel SQL no canto direito inferior da tela est a visualizao do cdigo que foi criado quando criamos o banco de dados pela interface.

15

1. 2. 3. 4.

Demonstraremos primeiro a criao do banco de dados pela interface: A esquerda da tela, clique no sinal de + do banco de dados criado; Clique no sinal de + de esquemas; Clique no sinal de + de public; Clique com o boto direito em Tabelas e clique em Nova Tabela.

Criaremos seis tabelas: Usuario; Acervo; Livro; Revista; TipoUsuario; Emprstimo.

16

Demonstraremos algumas formas de se criar campos, restries e ndices. A tabela Usuario ter os campos: CodUsuario; CodTipo; Nome; Endereco; Telefone Criaremos agora a tabela Usuario:

No campo nome coloque o nome da tabela Na prxima etapa criaremos os campos da tabela, mas antes, repare no campo OID e a opo desmarcada Possui OIDS: Se uma tabela criada com WITH OIDS, cada registro recebe um OID nico. OIDs so automaticamente atribudos como inteiros de 4 bytes que so nicos ao longo de toda instalao. Contudo, eles so limitados em 4 bilhes e, ento, os OIDs comeam a ser duplicados. O PostgreSQL utiliza OIDs para ligar as tabelas do sistema. Para numerar registros nas tabelas dos usurios, melhor utilizar SERIAL ao invs de OIDs porque seqncias SERIAIS so nicas somente em uma tabela; e so menos propcias a atingir o limite. SERIAL8 est disponvel para armazenar valores de seqncia com oito bytes.

17

Clique na guia Colunas; Para adicionar as colunas das tabelas clique em adicionar.

Assim que clicar no boto Adicionar aparecer a seguinte janela:

18

Vamos aos campos: Nome: digite o nome da coluna a ser criada Tipo de dado: Digite o tipo de dado da coluna; Neste exemplo usaremos o tipo de dado serial que um auto-incremento. Como CodUsuario ser a chave primria e foi um campo criado justamente para relacionar a tabela Usuario com as outras tabelas, interessante que seja criado o numero automaticamente sem que o usurio precise preencher esse campo. No NULL: marque esta opo sempre que o campo (coluna) a ser inserido no possa ser nulo. Neste caso, marcaremos essa opo, j que o campo a ser criado se tornar chave-primria. Aps marcar as opes clique em OK. Note que Apareceu na janela a coluna que adicionamos Clique em Adicionar novamente, dessa vez o nome do campo CodTipo escolheremos o tipo de dado integer, pois esse campo ser chave estrangeira nessa tabela. Na tabela TipoUsuario, que ser a de origem, ele ser chave primria do tipo serial. Esse campo tambm no ser nulo.

Adicione tambm as colunas nome e endereco, s que esses sero do tipo Text.

19

Agora adicionaremos o campo Telefone. Este campo ter o valor padro de 11 caracteres. Clique em OK.

Note que esto listados todos os campos adicionados e a descrio de cada campo:

20

21

Agora Definiremos a Chave Primria: Clique na guia restries, mantenha a opo chave primria na caixa de texto e clique em adicionar:

22

Aparecer a janela abaixo: Clique na guia Colunas na caixa de texto. Na parte inferior da mesma janela ter todas as colunas que criamos da tabela. Escolha a opo CodUsuario , em seguida clique no boto Adicionar.

Agora Clique na guia Propriedades e em Nome defina o nome para a chave primaria, no nosso caso colocaremos pk_CodUsuario aonde pk vem de Primary Key. Clique em OK.

23

24

Note que a chave Primria que criamos j est listada. Observe tambm que na caixa de texto abaixo no h mais a opo Chave Primria. Se j houvesse outras tabelas e j existisse o campo para referenciar a chave estrangeira, poderamos criar agora, mas como no h, clique em OK.

25

Clicando no sinal de + de Tabelas, estar visvel a tabela que criamos. Clicando no sinal de + da Tabela criada, estar visvel o nmero de colunas, restries, ndices, regras, e outros. Se voc clicar no sinal de + de Colunas ver todas as colunas criadas, do mesmo jeito no sinal de + de restries ver a chave primria que criamos, se voc adicionar chaves estrangeiras, restrio de verificao ou de unificao tambm as encontrar em restries.

Clique novamente com o boto direito do mouse em tabelas Dessa vez faremos um caminho um pouco diferente.

26

27

Criaremos a Tabela Acervo, ela conter as colunas:


CodItem DataInscricao Quantidade Paginas Observaes

Digite o nome da nova tabela, que dessa vez ser Acervo, e clique em OK.

28

Clique no sinal de + em Acervo clique com o boto direito em Colunas e clique em Nova Coluna.

29

Repare que este outro modo de se chegar mesma janela de definio de colunas que chegamos antes. CodItem ser a chave primria desta tabela, foi criado apenas para ser chave primria, j que nenhuma das colunas estava apta, por isso, ser definido o tipo de dado serial e no ser nulo. Clique em OK.

30

A coluna CodItem j est adicionada na tabela Acervo. Clique novamente em Colunas com o boto direito do mouse >Nova Coluna e voc ver a mesma janela. A coluna DataInscricao ser do tipo date, pois registrar a data de inscrio dos livros e revistas da biblioteca e no poder ser nulo.Clique em OK.

Crie a coluna Quantidade como tipo de dado Integer e sendo not null, a coluna Paginas como Integer tambm, porm podendo ser nulo e crie tambm a coluna Observacoes como tipo de dado Text podendo conter valores nulos.

31

Depois de criados, devero estar aparecendo assim:

Definiremos a nica restrio desta tabela que a chave primria: Clique com o boto direito do mouse em Restries > Novo Objeto > Nova Chave Primria

32

V para a guia Colunas escolha a coluna CodItem e clique em Adicionar.

Deve ficar como na figura abaixo:

33

Agora Clique na guia Propriedades, Digite o nome para a chave primria e clique em OK.

Clique no sinal de + de Restries e veja a chave primria:

34

Crie a tabela livro, ela ter as seguintes colunas:


CodItem :ser do tipo integer e ser not null; Titulo: ser do tipo text e ser not null; Subtitulo: ser do tipo text; Autor: ser do tipo text e ser not null; Editora: ser do tipo text; ISBN: ser do tipo text, ser not null e ter 10 caracteres obrigatrios.

Dever ficar assim:

35

Definiremos agora a chave primria que ser CodItem e deixaremos o nome como PK_Livro:

CodItem tambm ser chave estrangeira,clique em restries novamente >novo objeto>nova chave estrangeira.

36

Na janela que aparece Coloque um nome para a chave estrangeira, nesse caso colocaremos fk_CodItem onde FK vem de Foreign Key. Em referncias escolha a tabela a ser referenciada.

Clique na aba Colunas em Coluna Local escolha a coluna que ser chave estrangeira. Em Referenciado escolha a coluna da tabela referenciada que ser a referencia de chave estrangeira. Clique em Adicionar e em seguida em OK.

37

A chave estrangeira que criamos j aparece em Restries

Vamos criar os ndices agora. Nesta tabela sero 3:Titulo,Autor e ISBN.Clique com o boto direito do mouse em ndices>Novo ndice.

38

Defina o nome de ndice a ser criado. Nos campos: Unicidade: Faz com que o sistema procure por valores duplicados na tabela quando o ndice criado, se existirem dados na tabela, e sempre que novos dados forem adicionados. A tentativa de inserir ou de atualizar dados, que produza um valor duplicado, gera um erro. Mtodo de Acesso: O nome do mtodo de acesso a ser utilizado pelo ndice. O mtodo de acesso padro o BTREE. O PostgreSQL implementa quatro mtodos de acesso para os ndices: BTREE: uma implementao das "B-trees" de alta concorrncia de LehmanYao. RTREE: implementa "R-trees" padro, utilizando o algoritmo de partio quadrtica de Guttman. HASH: uma implementao das disperses lineares de Litwin. GIST: Generalized Index Search Trees (rvores de Procura de ndice Generalizadas).

39

NOTAS: O otimizador de consultas do PostgreSQL vai considerar o uso de um ndice Btree sempre que um atributo indexado estiver envolvido em uma comparao utilizando um dos seguintes operadores: <, <=, =, >=, > O otimizador de consultas do PostgreSQL vai considerar o uso de um ndice Rtree sempre que um atributo indexado estiver envolvido em uma comparao utilizando um dos seguintes operadores: <<, &<, &>, >>, @, ~=, && O otimizador de consultas do PostgreSQL vai considerar o uso de um ndice hash sempre que um atributo indexado estiver envolvido em uma comparao utilizando o operador =. Atualmente somente os mtodos de acesso B-tree e Gist suportam ndices com mais de uma coluna. Por padro, at 16 chaves podem ser especificadas (este limite pode ser alterado na gerao do PostgreSQL). Na implementao atual, somente o B-tree suporta ndices nicos. Uma classe de operador pode ser especificada para cada coluna de um ndice. A classe de operador identifica os operadores a serem utilizados pelo ndice desta coluna. Por exemplo, um ndice B-tree sobre inteiros de quatro bytes vai utilizar a classe de operadores int4_ops; esta classe de operadores inclui funes de comparao para inteiros de quatro bytes. Na prtica, a classe de operadores padro para o tipo de dado do campo normalmente suficiente. O ponto principal em haver classes de operadores que, para alguns tipos de dado, pode haver mais de uma ordenao que faa sentido. Por exemplo, pode se desejar ordenar o tipo de dado do nmero complexo tanto pelo valor absoluto, quanto pela parte real, o que pode ser feito definindo-se duas classes de operadores para o tipo de dado e, ento, selecionando-se a classe apropriada para a construo do ndice. Tambm existem algumas classes de operadores com finalidades especiais: As duas classes de operadores box_ops e bigbox_ops suportam ndices R-tree para o tipo de dado box. A diferena entre as duas que bigbox_ops ajusta as coordenadas da caixa para baixo, evitando excees de ponto flutuante ao executar multiplicao, adio e subtrao de coordenadas com nmeros de ponto flutuante muito grande (Nota: isto era verdade h algum tempo atrs, mas atualmente as duas classes de operadores utilizam ponto flutuante e so efetivamente idnticas).

40

Clique na guia Colunas escolha a coluna que ser o ndice, neste caso, a coluna Titulo clique em adicionar depois clique em OK.

Faa a mesma coisa com Autor e ISBN. Dever ficar como na figura abaixo:

41

Criaremos agora uma restrio de unicidade para a tabela ISBN. A restrio de unicidade garante que os dados contidos na coluna, ou no grupo de colunas, sejam nicos em relao a todas as outras linhas da tabela. Clique com o boto direito do mouse em Restries > Novo Objeto > Nova Restrio de Unicidade.

42

Clique na guia Colunas escolha a coluna desejada, neste caso a coluna ISBN, clique em Adicionar e clique em OK.

Desta vez, deixaremos o PostgreSQL colocar um nome para restrio.Veja na imagem abaixo:

43

Demonstraremos agora a criao das outras 3 tabelas por cdigo. V ao menu Ferramentas >Query Tool:

A tabela Revista ter os campos:


CodItem que ser do tipo integer e not null; Nome que ser do tipo text e not null; Tema que ser do tipo text; Ano que ser do tipo integer e not null; Numero que ser do tipo text; ISSN que ser do tipo text, not null e ter oito caracteres.

A tabela TipoUsuario ter os campos:


CodTipo ser do tipo serial e not null; Tipo ser do tipo text e not null; Multa ser do tipo money; Prazo ser do tipo integer e not null.

E por fim, a Tabela Emprstimo ter os campos:


CodEmprestimo ser do tipo serial e not null; CodItem ser do tipo integer e not null; CodUsuario ser do tipo integer e not null; DataEmprestimo ser do tipo date e not null; DataDevolucao ser do tipo date; Observaes ser do tipo text.

44

Quando aparecer a janela da Query, digite o cdigo como na imagem abaixo: Onde:
CREATE TABLE: Cria Tabelas; Os nomes da tabelas e colunas sendo criadas e referencias so digitadas dentro de aspas (); Vrgula (,) indica que h mais comando (como se fosse um e); Ponto e vrgula (;) indica o final do comando; O sinal de parntese [( ] abrindo como se fosse o inicio e o sinal de parntese fechando [)] como se fosse o fim do cdigo de um comando;

45

Na figura abaixo estamos adicionando Campos indexados e restrio de unicidade:

Criando a Tabela TipoUsuario e a chave primria:

46

Criando a ultima tabela, Emprestimo, adicionando chave primria e ndice:

Clique no boto Executar Consulta, Escrever Resultado Para o arquivo destacado na imagem abaixo. Veja que a Query foi executada com sucesso:

47

Feche a janela da Query, aparecer uma mensagem perguntando se voc quer salvar a consulta, no nosso caso no salvaremos. Clique com o boto direito do mouse em tabelas e clique em atualizar:

E pronto! Note que as Tabelas que criamos esto listadas, est criado nosso exemplo de Banco de Dados.

48

Referncias
http://www.infowester.com/postgremysql.php http://www.devmedia.com.br/articles/post-6390-Introducao-ao-PostgreSQL.html http://wiki.PostgreSQL.org/wiki/Introdu%C3%A7%C3%A3o_e_Hist%C3%B3rico http://www.youtube.com/watch?v=rPR0NCrO1R4&feature=related http://www.htmlstaff.org/PostgreSQLmanual/sql-createindex.html http://pgdocptbr.sourceforge.net/pg74/ddl-constraints.html http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/DDL/Cria%C3%A7%C3% A3o_e_Exclus%C3%A3o_de_Bancos,_Esquemas,_Tabelas,_Views,_Constraints,_e tc http://pt.wikipedia.org/wiki/UTF-8 http://pt.wikipedia.org/wiki/PostgreSQL http://www.PostgreSQL.org.br http://pgdocptbr.sourceforge.net/pg80/extend-type-system.html http://www.htmlstaff.org/PostgreSQLmanual/sql-createindex.html http://www.bau-de-dev.com/banco-de-dados/trabalhando-com-chaves-primariasprimary-key-no-PostgreSQL

49

50

Vous aimerez peut-être aussi