# PostgreSQL Prático/Introdução
## 1 - Introdução

História 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 manipulação dos dados.
Dicionário de dados - metadados, dados sobre os dados, ou seja, informações sobre a estrutura dos bancos de dados (nomes de tabelas, de campos, tipos de dados, etc).
DBA - Database Administrator, com as funções de: - Definir e modificar esquemas, estruturas de armazenamento e métodos de acesso - Liberar privilégios de acesso - Especificação de restrição de integridade
Simplificando temos (no PostgreSQL), em termos de estrutura:
- O SGBD é formado por bancos de dados, tablespaces, usuários e alguns programas auxiliares;
- Um banco de dados é formado pelos esquemas e linguagens;
- Um esquema é formado por funções de agrupamento, funções do usuário, triggers, procedures, sequências, tabelas e views; - Tabelas são 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 apresentação dos dados pode ser semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação e recuperação dos dados.
Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados são o método de armazenamento preferencial para aplicações multiusuário, nas quais é necessário haver coordenação entre vários usuários. Entretanto, são convenientes também para indivíduos, e muitos programas de correio eletrônico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados.
Em Março, 2004, AMR Research (como citado em um artigo da CNET News.com listado na secção de "Referências") previu que aplicações de banco de dados de código aberto seriam amplamente aceitas em 2006.
Esquemas – são subdivisões de bancos de dados, cuja função é permitir um melhor nível de organização.
Projetos de mesma categoria, que precisem acessar uns aos outros devem ficar em um mesmo banco, podendo ficar em esquemas separados. Tabelas – são subdivisões 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 (domínio) que pode ser atribuído ao campo e atribui semântica aos dados armazenados. Um campo do tipo numérico não aceita dados do tipo texto ou similar.
Citação da Introdução do documento sobre otimização do PostgreSQL
POSTGRESQL é um SGBD objeto-relational (SGBDOR) desenvolvido via Internet por um grupo de desenvolvedores espalhados pelo globo. É uma alternativa de código fonte-aberta para SGBDs comerciais como Oracle e Informix.
O POSTGRESQL foi desenvolvido originalmente na Universidade de Califórnia em Berkeley. Em 1996, um grupo começou o desenvolvimento do SGBD na Internet. Eles usam e-mail para compartilhar idéias e servidores de arquivos para compartilhar código. POSTGRESQL é agora comparável à SGBDs comerciais em termos de características, desempenho e confiança. Hoje tem transações, views, procedimentos armazenados, e constranints de integridade referencial. Apóia um número grande de interfaces de programação, como ODBC, Java (JDBC), TCL/TK, PHP, Perl e Python, entre outros. POSTGRESQL continua avançando a um tremendo passo, graças 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 também 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 décimo aniversário foi comemorado nos dias 08 e 09 de julho próximo, em Toronto, Canadá, com algumas conferências sobre o mesmo. Atualmente está na versão 8.1.4 (14/09/2006).
Para saber mais sobre a história do PostgreSQL visite o site oficial em: http://www.postgresql.org/docs/current/interactive/history.html
Ou em português em: http://pgdocptbr.sourceforge.net/pg80/history.html
Características:
* O PostgreSQL suporta grande parte do SQL ANSI, inclusive do SQL 2003, além de oferecer outros recursos importantes, como:
* Comandos complexos
* Chaves estrangeiras (Foreign Key)
* Gatilhos (Triggers)
* Visões (views)
* Integridade de Transações
* Controle de Simultaneidade Multiversão (MVCC)
* Suporta múltiplas transações online concorrentes entre usuários.
* Suporte a Rules (sistema de regras que reescreve diretivas SQL)
* Criação de tabelas temporárias (CREATE TEMP TABLE nome(listadecampos tipos);)
Traz também opções de extensão pelo usuário para:
* Tipos de dados
* Funções
* Operadores
* Funções de Agregação (Agrupamento)
* Métodos de Índice
* Linguagens Procedurais (Stored Procedures)
Licença
Sua licença é BSD, portanto pode ser utilizado, modificado e distribuído 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
Aplicações Corporativas de Alto Volume: Uma Solução com o PostgreSQL
A utilização 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 características do PostgreSQL é a sua capacidade de lidar com um grande volume de dados. Existem aplicações em produção com tabelas possuindo mais de 100 milhões de linhas. No Brasil, existem casos de sucesso de empresas lidando com bases com dezenas de milhões de registros gerenciadas pelo PostgreSQL.
Uma das maiores implantações de PostgreSQL no Brasil é na Atrium Telecom, empresa de telefonia corporativa de São 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 milhão de transações diárias. As maiores tabelas do sistema contam com mais de 70 milhões de linhas.
A utilização do banco de dados PostgreSQL é cada vez mais ampla nas empresas que buscam um servidor de banco de dados altamente sofisticado, com alta performance, estável e capacitado para lidar com grandes volumes de dados. O fato de ser um produto Open Source, sem custos de licença 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. Citação de: http://www.dib.com.br/dib%20cd/LC2003/P%C3%A1ginas/LC2003_Conf.html
Metrô de São Paulo e DATAPREV também utilizam o PostgreSQL.