introdução ao bd postgre

27

Upload: thesco-oliveira

Post on 18-Jun-2015

5.072 views

Category:

Education


1 download

DESCRIPTION

Trabalho de apresentação do banco de dados Postgre. Disciplina: Análise e gerenciamento de BD Nível iniciante. Fatec ZS 2011

TRANSCRIPT

Page 1: Introdução ao BD Postgre
Page 2: Introdução ao BD Postgre

HistóriaO Postgres, desenvolvido originalmente no Departamento de Ciência de Computação da Universidade de Berkeley, foi pioneiro em muitos dos conceitos objeto-relacionais que agora estão disponíveis em alguns bancos de dados comerciais. Fornece suporte a linguagem SQL92/SQL99, integridade de transações e extensibilidade de tipos. O PostgreSQL é um descendente com código aberto do código original desenvolvido em Berkeley.

Page 3: Introdução ao BD Postgre

CaracterísticasO PostgreSQL é um poderoso sistema gerenciador de banco de dados objeto-relacional de código aberto. Tem mais de 15 anos de desenvolvimento ativo e uma arquitetura que comprovadamente ganhou forte reputação de confiabilidade, integridade de dados e conformidade a padrões. Roda em todos os grandes sistemas operacionais:

GNU/Linux,UnixAIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64,e MS Windows

Page 4: Introdução ao BD Postgre

CaracterísticasÉ totalmente compatível com ACID, tem suporte completo a chaves estrangeiras, junções (JOINs), visões, gatilhos e procedimentos armazenados (em múltiplas linguagens). Inclui a maior parte dos tipos de dados do ISO SQL:1999, incluindo INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP. Suporta também o armazenamento de objetos binários, incluindo figuras, sons ou vídeos. Possui interfaces nativas de programação para:

C/C++,Java,.Net,Perl,Python, Ruby, Tcl, ODBC

Page 5: Introdução ao BD Postgre

CaracterísticasComo um banco de dados de nível corporativo, o PostgreSQL possui funcionalidades sofisticadas como:

o controle de concorrência multiversionado (MVCC), recuperação em um ponto no tempo (PITR),tablespaces,replicação assíncrona,transações agrupadas (savepoints),cópias de segurança(online/hot backup),planejador de consultas (otimizador),registrador de transações sequencial(WAL) para tolerância a falhas.

Page 6: Introdução ao BD Postgre

CaracterísticasSuporta conjuntos de caracteres internacionais,codificação de caracteres multibyte,Unicode e sua ordenação por localização,sensibilidade a caixa (maiúsculas e minúsculas) e formatação.

Page 7: Introdução ao BD Postgre

CaracterísticasÉ altamente escalável, tanto na quantidade enorme de dados que pode gerenciar, quanto no número de usuários concorrentes que pode acomodar. Existem sistemas ativos com o PostgreSQL em ambiente de produção que gerenciam mais de 4TB de dados. Alguns limites do PostgreSQL estão incluídos na tabela abaixo:

Tamanho Máximo do Banco de Dados IlimitadoTamanho máximo de uma Tabela 32 TBTamanho Máximo de uma Linha 1.6 TBTamanho Máximo de um Campo 1 GBMáximo de Linhas por Tabela IlimitadoMáximo de Colunas por Tabela 250–1600Máximo de Índices por Tabela Ilimitado

Page 8: Introdução ao BD Postgre

PeculiaridadesPostgreSQL automaticamente converte todos identificadores (tipo nomes de tabela/coluna) para minúsculo na criação do objeto e na query. Para força o uso misto de maiúsculo ou minúsculo, você precisa usar escape no identificador usando aspas dupla ("").

Page 9: Introdução ao BD Postgre

PeculiaridadesPostgreSQL não tem comandos especiais para obter informação dos dados do banco de dados (dicionário de dados) (tipo todas as tabelas do banco de dados atual). Ao invés, há um schema padrão chamado information_schema no PostgreSQL 7.4 e superior contendo views do sistema com todas as informações necessárias, em um form fácil de acessá-las.

Page 10: Introdução ao BD Postgre

pSQLO psql é um cliente no modo terminal do PostgreSQL. Permite digitar comandos interativamente, submetê-los para o PostgreSQL e ver os resultados. Como alternativa, a entrada pode vir de um arquivo. Além disso, disponibiliza vários meta-comandos e diversas funcionalidades semelhantes às do interpretador de comandos (shell) para facilitar a criação de scripts e automatizar um grande número de tarefas.

Page 11: Introdução ao BD Postgre

PGADMINExistem várias ferramentas de administração disponíveis para o PostgreSQL. A mais popular é a pgAdmin, e existem várias outras ferramentas comerciais disponíveis.

Page 12: Introdução ao BD Postgre

Criação de bancoADD SERVERADDRESS 127.0.0.1 DESCRIPTION CDTeste SERVICE Teste PORT 5432 MAINTENANCE DB Postgres USERNAME PostgresSENHA system

Page 13: Introdução ao BD Postgre

Criação de tabelascreate table cd (codigo_cd int not null,codigo_gravadora int not null,nome_cd varchar(50) not null,preco_venda decimal (5,2) not null,data_lancamento smalldatetime not null,cd_indicado int not null);  create table cd (codigo_cd integer UNIQUE NOT NULL,codigo_gravadora integer not null,nome_cd varchar(50) not null,preco_venda numeric (5,2) not null,data_lancamento timestamp not null,cd_indicado integer not null);

Page 14: Introdução ao BD Postgre

Criação de tabelas – Chaves PK e FKalter table cd add primary key (codigo_cd);alter table cd ADD CONSTRAINT cd_codigo_cd_pkey PRIMARY KEY (codigo_cd);

alter table cd add foreign key (cd_indicado) references cd;alter table cdadd constraint fk_cd_cdforeign key (codigo_cd)references cd (codigo_cd);

Page 15: Introdução ao BD Postgre

Criação de tabelas - Inserçõesinsert into estado values('AC', 'Acre');insert into estado values('AL', 'Alagoas');insert into estado values('AP', 'Amapá');

insert into estado (id, title, author_id, subject_id)VALUES (41472, 'Practical PostgreSQL', 1212, 4);

Page 16: Introdução ao BD Postgre

RestriçõesConstrain CHECKAo criar uma tabela podemos prever que o banco exija que o valor de um campo satisfaça uma expressão --Restrição de verificação CREATE TABLE products ( product_no integer, name text, price numeric CHECK (price > 0)); --Restrição de valor não nulo CREATE TABLE products ( product_no integer NOT NULL, name text NOT NULL, price numeric NOT NULL CHECK (price > 0));

Page 17: Introdução ao BD Postgre

RestriçõesConstrain UNIQUEGarante que os dados contidos em uma coluna ou um grupo de colunas, é único no que diz respeito a todas as linhas na tabela.

CREATE TABLE products ( product_no integer UNIQUE, name text, price numeric);

Page 18: Introdução ao BD Postgre

HerançaCREATE TABLE cidades (nome text,populacao real,altitude int -- (em pés));CREATE TABLE capitais (estado char(2)) INHERITS (cidades);

Page 19: Introdução ao BD Postgre

EsquemasUm banco de dados pode conter vários esquemas e dentro de cada um desses podemos criar várias tabelas. Ao invés de criar vários bancos de dados, criamos um e criamos esquemas dentro desse. Isso permite uma maior flexibilidade, pois uma única conexão ao banco permite acessar todos os esquemas e suas tabelas. Portanto devemos planejar bem para saber quantos bancos precisaremos, quantos esquemas em cada banco e quantas tabelas em cada esquema.

Page 20: Introdução ao BD Postgre

RegrasO comando CREATE RULE cria uma regra aplicada à tabela ou visão especificada.Uma regra faz com que comandos adicionais sejam executados quando um determinado comando é executado em uma determinada tabela.É importante perceber que a regra é, na realidade, um mecanismo de transformação de comando, ou uma macro de comando.

As RULES (regras) permitem executar uma ação alternativa em: inclusão, alteração, exclusão e seleção (somente em caso de visões).Em outras palavras, uma regra faz com que sejam executados comandos adicionais quando é executado um determinado comando em uma tabela.

Diferentemente das regras, os TRIGGERS (gatilhos) podem ser acionados antes (before) ou depois (after) de alguma ação de insert, update e delete.

Page 21: Introdução ao BD Postgre

Diferenças entre o SQL Server e PostgreSQL Escolhendo um servidor de banco de dados não é simples. SQL Server, PostgreSQL e todos oferecem uma forma de organizar e armazenar dados, mas cada um tem seus próprios benefícios exclusivos. Escolha a que melhor atenda às suas necessidades começa com a compreensão das diferenças entre essas opções.

Page 22: Introdução ao BD Postgre

Diferenças entre o SQL Server e PostgreSQL Sistema Operacional Nem todos os servidores de banco de dados podem ser executados em qualquer sistema operacional. O programa de banco de dados PostgreSQL pode ser executado em Windows 2000 ou superior, Mac, Unix e Linux. SQL Server só roda em Windows XP ou qualquer versão do Windows 2000 ou superior.

Page 23: Introdução ao BD Postgre

Diferenças entre o SQL Server e PostgreSQL Instalação e Manutenção Instalação e manutenção de banco de dados é o que vai gastar a maior parte do seu tempo depois de baixá-lo. SQL Server é bem mais complicado que o PostgreSQL. Independentemente disso, em ambos será necessário algum treino para entender e administrar se a pessoa encarregada de bases de dados da organização é nova para a tecnologia.

Page 24: Introdução ao BD Postgre

Diferenças entre o SQL Server e PostgreSQL Vistas Os programas variam um pouco na forma como você pode usar views. O SQL Server permite views atualizáveis, materializaveis, e intercambiáveis. O PostgreSQL também suporta exibições atualizáveis, mas o designer tem que escrever regras contra views ordenadas para atualizá-las.

Page 25: Introdução ao BD Postgre

Diferenças entre o SQL Server e PostgreSQL Recursos disponíveis apenas no PostgreSQL O banco de dados PostgreSLQ tem mais recursos internos. Por exemplo, permite que o SQL dinâmico e ação em funções. Em outras palavras, você pode usar funções de ação dentro de declarações SELECT. Suporta índices funcionais e parciais e é o único que pode definir funções personalizadas agregadas em C, SQL, plpgsql, e qualquer linguagem PL.

Page 26: Introdução ao BD Postgre

Recursos disponíveis apenas no PostgreSQL O banco de dados PostgreSLQ tem mais recursos internos. Por exemplo, permite que o SQL dinâmico e ação em funções. Em outras palavras, você pode usar funções de ação dentro de declarações SELECT. Suporta índices funcionais e parciais e é o único que pode definir funções personalizadas agregadas em C, SQL, plpgsql, e qualquer linguagem PL.

Diferenças entre o SQL Server e PostgreSQL

Page 27: Introdução ao BD Postgre

Dúvidas?

Obrigado.