Postgresql.pdf

(1470 KB) Pobierz
Microsoft Word - cap2_cross_reference_1st_page_page_nums_img_faltas_rf_corr–
Instituto Superior de Engenharia
do Porto
Departamento de Engenharia Informática
Autor : Miguel João Vieira Carvalho
Versão: 1.0
Data: Julho de 2003
672850760.002.png
Agradecimentos
Agradecimentos
Gostava de agradecer de forma muito especial ao meu orientador, o Eng. Jorge
Coelho, pelo empenho que colocou neste projecto e pelas críticas e correcções que ao
longo das treze versões do documento foi sempre fazendo.
Gostava também de agradecer ao Eng. Alexandre Bragança pelo facto de ter-me
ajudado logo desde o início a seleccionar os temas que deveriam ser abordados e
também por ter sido um dos meus professores de bases de dados.
Quero também agradecer ao Eng. Aníbal Oliveira, por me ter feito entender na
cadeira de Bases de Dados I, de forma tão simples e eficaz, muitos dos conceitos que
foram apresentados ao longo deste documento.
Para finalizar queria agradecer ao meu irmão, João Carvalho, pelo apoio prestado na
elaboração de alguns elementos gráficos.
Página ii
672850760.003.png
Índice
Índice
1. Conceitos Básicos
16
1.1. Breve História do Aparecimento das Bases de Dados
16
1.2. Requisitos Fundamentais de uma Base de Dados
17
1.2.1. Segurança
17
1.2.2. Integridade
18
1.2.3. Controlo da Concorrência
19
1.2.4. Recuperação/Tolerância a Falhas
19
1.3. SGBD Vs Sistema de Gestão de Ficheiros
20
1.3.1. Abstracção dos Dados
20
1.3.2. Independência Programa/Dados
20
1.3.3. Partilha dos Dados
21
1.3.4. Diminuição da Redundância
21
1.3.5. Desenvolvimento e Manutenção
22
1.3.6. Integridade dos Dados
22
1.4. Base de dados Relacionais
22
1.5. SQL
25
1.5.1. Aspectos do SQL
25
1.5.2. Linguagem de Definição de Dados
25
1.5.3. Linguagem de Manipulação de Dados
26
1.5.4. Triggers
26
1.5.5. Gestão de Transacções
27
2. SQL – Introdução
29
2.1. SQL no PostgreSQL
31
3. Instalação Linux
39
Página iii
672850760.004.png
Índice
3.1. Instalação Linux Através de RPM
39
3.2. Instalação Linux Através de Source Code
40
4. Como utilizar
45
4.1. Clientes
45
4.1.1. psql
45
4.1.2. pgAccess
47
4.1.3. pgAdmin/II
48
4.1.4. winSQL
49
4.2. Como Utilizar – Exemplo Prático
50
4.2.1. Criação da Conta de Acesso
51
4.2.2. Criação da Base de Dados
52
4.2.3. Autorizar o Utilizador
53
4.2.4. Activar a Nova Configuração
56
4.3. Instalação do Driver ODBC do PostgreSQL
57
4.3.1. Criar o DSN
57
5. Programar com o PostgreSQL
61
5.1. A Interface de Programação libpq
61
5.1.1. Gestão de Ligações
62
5.1.1.1. A Função PQconnectdb
63
5.1.1.2. A função PQsetdbLogin
64
5.1.2. Funções Para Processamento Síncrono de Queries
64
5.1.2.1. A Função PQexec
64
5.1.2.2. A Função PQresultStatus
65
5.1.2.3. A Função PQclear
65
5.1.3. Funções Para Obtenção de Informação do Resultado
65
5.1.4. Funções Para Obtenção de Valores do Resultado
66
5.1.5. Funções Para Processamento Assíncrono de Queries
67
Página iv
672850760.005.png
Índice
6. Funcionalidades Avançadas
69
6.1. Índices
69
6.1.1. Aparecimento dos Índices
69
6.1.2. Os Índices nos SGDBs
73
6.1.2.1. Representação por Árvores B+
73
6.1.2.2. Representação por Hashing
75
6.1.3. Dicas para Uso de Índices
78
6.1.4. Índices no PostgreSQL
81
6.1.4.1. Índices Mono coluna
82
6.1.4.2. Índices Multi coluna
82
6.1.4.3. Índices Únicos
84
6.1.4.4. Índices Funcionais
85
6.1.4.5. Índices Parciais
85
6.1.5. Avaliar o Uso dos Índices
86
6.2. Stored Procedures
88
6.2.1. Vantagens/Desvantagens
89
6.2.2. A linguagem PL/pgSQL
89
6.2.2.1. A linguagem PL/pgSQL
89
6.3. Triggers
95
6.3.1. Triggers no PostgreSQL
98
6.4. Controlo da Concorrência
98
6.4.1. Transacções
100
6.4.1.1. Transacções no PostgreSQL
102
6.4.1.2. Níveis de Isolamento
105
7. Campos Binários (BLOBs)
107
7.1. BLOBs no PostgreSQL
107
8. Usar o PostgreSQL com o PHP na Web
111
Página v
672850760.001.png
Zgłoś jeśli naruszono regulamin