INSTITUTO DE COMPUTAÇÃO

 

Fundamentos de Bancos de Dados

Apresentação - Inscrições - Disciplinas - Docentes - Livros - FAQs - Eventos - Alunos e Ex-Alunos - Vídeos


 Fundamentos de Bancos de Dados

Este é um texto introdutório na área de bancos de dados, dirigido a estudantes, praticantes e administradores que queiram ter uma visão unificada de modelagem de dados, projeto de bancos de dados relacionais e programação na linguagem SQL. O texto não pressupõe conhecimento prévio dos tópicos abordados e apresenta uma estrutura top-down: a modelagem de dados é centrada no modelo entidade-relacionamento e as principais características do modelo relacional são apresentadas por meio de exemplos. Contém uma introdução abrangente à linguagem SQL cujos conceitos e sintaxe são introduzidos informalmente.

PREÇO PARA ALUNO DO INSTITUTO DE COMPUTAÇÃO - UNICAMP: R$ 46,00 em abril de 2012 
NÚMERO DE PÁGINAS: 271 páginas

 

Sumário

1 Conceitos básicos

19

   1.1 Bancos de dados versus coleção de arquivos

20

   1.2 Sistemas gerenciadores de bases de dados

21

   1.3 Um exemplo: a base de dados Torneios de Tênis da ATP

23

   1.4 Conexões lógicas a sistemas gerenciadores de bases de dados

25

       1.4.1 Conexões tipo time sharing

25

       1.4.2 Conexão tipo servidor de arquivos

26

       1.4.3 Conexão tipo cliente-servidor

26

       1.4.4 Conexão via servidor de aplicações

28

       1.4.5 Conexão via servidor Web (Internet)

28

2 Modelagem de dados

31

   2.1 Projeto top down de bases de dados

31

   2.2 O modelo entidade-relacionamento

33

       2.2.1 Tipos de atributos

35

2.2.2 Relacionamentos

36

       2.2.3 Conjunto de entidades fracos

39

       2.2.4 Auto-relacionamentos

39

       2.2.5 *Extensões ao modelo entidade-relacionamento

41

       2.2.6 Un exemplo de projeto conceitual usando o MER: a BD Torneios de Tênis da ATP

44

       2.2.7 Convenções para nomes - considerações práticas

46

       2.2.8 Exercícios

47

3 Projeto lógico de dados

51

   3.1 Modelos lógicos históricos

51

   3.2 O modelo relacional

52

       3.2.1 Valores nulos

55

       3.2.2 Restrições de integridade

55

       3.2.3 Restrições sobre atributos

56

       3.2.4 Mapeamento do MER para o modelo relacional

57

       3.2.5 Mapeamento do projeto conceitual da BD Torneios de Tênis para o MR

61

       3.2.6 Exercícios

61

4 Linguagem de manipulação de dados realcionais

63

   4.1 Álgebra relacional (AR)

63

       4.1.1 Exemplos de consultas usando álgebra relacional

67

       4.1.2 Um exemplo mais elaborado: composições de materiais

69

       4.1.3 *Operador divisão da álgebra relacional

71

   4.2 Cálculo relacional de tuplas (CRT)

73

       4.2.1 Exercícios resolvidos sobre CRT

76

   4.3 Exercícios

77

5 Conceitos de normalização de dados relacionais

81

   5.1 Motivação

81

   5.2 O conceito de dependência funcional (df)

82

       5.2.1 Regras de interferência de Armstrong

83

       5.2.2 Formas normais (FN) de relações

84

       5.2.3 Quarta forma normal

86

       5.2.4 *O conceito de fecho de um conjunto de atributos

88

       5.2.5 Decomposição de relações não normalizadas

90

   5.3 Considerações práticas sobre normalização

94

   5.4 Exercícios

95

6 A Linguagem SQL

99

   6.1 Histórico

99

   6.2 Características básicas

100

       6.2.1 O ambiente de um SGBD relacional

101

       6.2.2 Tipos de dados

103

       6.2.3 Comandos para definição de dados

104

       6.2.4 Comandos para alterar a definição de tabelas

109

       6.2.5 Um guia prático para nomes de tabelas e colunas

110

   6.3 O comando select

110

       6.3.1 Características básicas

111

       6.3.2 Operadores de comparação

113

       6.3.3 Conectores lógicos and, or, not

114

       6.3.4 Operadores between

114

       6.3.5 Operadores in, not in

114

       6.3.6 Operador like

115

       6.3.7 Funções para manipular cadeias de caracteres

116

       6.3.8 Operação de junção

118

       6.3.9 Sinônimos para nomes de tabelas (alias)

119

       6.3.10 Problemas com operadores nulos

120

       6.3.11 Subconsultas com o operador in

122

       6.3.12 Subconsultas com operador de comparação

123

       6.3.13 Operadores all e any em subconsultas

124

       6.3.14 Operadores exists e not exists

125

       6.3.15 Escopo de nomes em comandos select

126

       6.3.16 Operadores união (union), interseção (intersect) e diferença (except)

127

       6.3.17 Cláusula order by

128

       6.3.18 Funções que produzem valores agregados

129

       6.3.19 Funções agragado na cláusula select

129

       6.3.20 Miscelânea

131

   6.4 Atualização de tabelas

132

       6.4.1 Comando insert

132

       6.4.2 Comando update

133

       6.4.3 Comando delete

134

       6.4.4 Tabelas temporárias, tabelas criadas dinamicamente

134

   6.5 *Características avançadas do comando select

135

       6.5.1 Cláusula group by

135

       6.5.2 Cláusula select com função agregado seguida de cláusula group by

136

       6.5.3 Cláusula having

137

       6.5.4 Exercícios

139

       6.5.5 Junção natural e junção exterior

144

   6.6 Visões (Views)

146

       6.6.1 Comandos para manipular visões

147

       6.6.2 Atualização de visões

149

   6.7 *Expressões com tipos de dados para datas e horas

150

       6.7.1 Visão geral

151

       6.7.2 Expressões aritméticas envolvendo datetime e interval

153

       6.7.3 Exemplos

154

       6.7.4 Compatibilidade de atribuições e comparações

155

   6.8 *Usos avançados do comando select

156

       6.8.1 Exercícios

162

       6.8.2 **Expressões-tabelas

163

       6.8.3 Exercícios

171

       6.8.4 **Utilização dos operadores de diferença e interseção na formulação de consultas complexas

174

      6.8.5 Um roteiro para elaboração de consultas complexas

176

       6.8.6 Exercícios

177

       6.8.7 Operadores case, match e unique

177

       6.8.8 Idiossincrasias, peculiaridades

179

       6.8.9 Exercícios

180

7 Restrições de integridade, stored procedures e triggers

185

   7.1 Restrições de integridade

185

       7.1.1 Restrições sobre uma tabela base

186

       7.1.2 Restrições sobre tabela base do tipo check (condition)

187

       7.1.3 Restrições sobre domínios

189

       7.1.4 Asserções

190

       7.1.5 Tratamento de violação de restrições de integridade referencial

191

       7.1.6 Verificação postergada de restrições

192

       7.1.7 Exercícios

193

   7.2 Procedimentos armazenados (stored procedures)

194

   7.3 SQL procedural

196

   7.4 Gatilhos (triggers)

199

       7.4.1 Visão geral

199

       7.4.2 Quando usar before triggers ou after triggers?

203

       7.4.3 Problemas na implementação de gatilhos

203

       7.4.4 Exercícios

204

8 Programação SQL via linguagem hospedeira

205

   8.1 Sintaxe básica

205

       8.1.1 SQL dinâmico

210

       8.1.2 Um exemplo: SQL dinâmico para acesso a BDs relacionais heteroêneas via WEB

212

9 Administração e segurança de dados, transações

217

   9.1 Organização de um SGBD padrão SQL

217

       9.1.1 Tabelas do catálogo (information_squema)

218

   9.2 Segurança de dados

219

   9.3 O conceito de transação

222

       9.3.1 Transações concorrentes

225

       9.3.2 Controle de concorrência

226

       9.3.3 Níveis de isolação de transações em SQL/92

228

10 Recursos do padrão SQL: 1999

231

   10.1 Extensões ao modelo relacional

231

       10.1.1 Novos tipos de dados

231

       10.1.2 Novos predicados

232

       10.1.3 Operadores Rollup e Cube

233

       10.1.4 Privilégios para roles

235

   10.2 **Recursão em consultas SQL

235

       10.2.1 Exercícios

238

   10.3 Recursos de orientação a objetos

240

A Comparação de SGBDS relacionais

243

   A.1 Exemplos de acesso a bases de dados relacionais viz Php

244

       A.1.1 Exemplo de acesso a uma BD MySql

244

       A.1.2 Exemplo de acesso a uma BD Firebird ou Interbase

247

       A.1.3 Exemplo de acesso a uma BD Postgres

249

       A.1.4 Exemplo de uma acesso a uma BD Oracle

250

   A.2 Um exemplo completo: processador SQL interativo

253

   A.3 Ambientes de programação SQL

260

       A.3.1 Arquivos de configuração

262

Referências bibliográficas

263

Índice Remissivo

265

 

Instituto de Computação :: Universidade Estadual de Campinas :: Av. Albert Einstein, 1251 - Cidade Universitária, Campinas/SP - Brasil, CEP 13083-852 • Fone: [19] 3521-5838