Banco de Dados em Aplicações Cliente-Servidor - ISBN
85-7331-054-5
Editora Infobook, Rio de Janeiro, 1997
Rubens N. Melo, Sidney D. da Silva, Asterio K. Tanaka
A utilização de sistemas de banco de dados na implementação
de aplicações comerciais vem sendo feita em escala crescente
há cerca de três décadas. A grande mudança observada
nos últimos anos foi no ambiente computacional típico para
o qual a maioria dessas aplicações está sendo desenvolvida
- o ambiente de processamento distribuído, com alguma forma de arquitetura
cliente/servidor. Essa mudança é refletida na atual demanda
por profissionais que possuam conhecimento do novo ambiente tecnológico,
de forma a poder projetar adequadamente os bancos de dados e os programas
de aplicação. Com este livro, os autores buscam contribuir
para a formação e o aperfeiçoamento de administradores
de bancos de dados e desenvolvedores de aplicações, com foco
no ambiente de processamento com arquitetura cliente/servidor.
OS AUTORES
Rubens Nascimento Meloé engenheiro eletrônico pelo ITA, onde também fez mestrado e doutorado. É um dos pesquisadores pioneiros da área de banco de dados no Brasil. Foi professor do ITA e do IME, professor visitante em universidades na Alemanha e nos EUA, e consultor para várias empresas. Atualmente, é professor do Departamento de Informática da PUC-Rio, onde é o coordenador acadêmico dos cursos de especialização e de extensão em Informática, há mais de 15 anos.
Sidney Dias da Silva é graduado em Administração Pública pela FGV-SP, e pós-graduado em Informática na PUC-Rio, onde fez mestrado e doutorado. Desde 1976 atua como profissional de computação nas áreas de engenharia de software e de banco de dados. Como professor, lecionou em cursos de graduação e de especialização em Informática, na Católica de Brasília, na PUC-Rio (CCE) e na Universidade Mackenzie – São Paulo, onde atualmente é professor colaborador.
Asterio Kiyoshi Tanaka
é oficial de Engenharia pela AMAN e engenheiro civil pelo IME, onde
fez mestrado em Informática. É Ph.D. em Ciência
da Computação pelo Georgia Institute of Technology, EUA.
Foi professor e chefe do Departamento de Engenharia de Sistemas do IME,
onde hoje é pesquisador colaborador. Atualmente, é consultor
de sistemas de informação e professor do Centro de Ciências
Exatas e de Tecnologia da Universidade do Rio de Janeiro (UNI-RIO).
Conteúdo
Capítulo 1 - Introdução 1
1.1 Evolução dos sistemas de informação
1
1.2 Fundamentos de banco de dados 5
1.2.1 Arquitetura de esquemas para sistemas de banco
de dados 5
1.2.2 Modelos de banco de dados e SGBDs 6
1.2.3 Outras características de SGBDs 13
1.2.4 Classes de usuários de banco de dados
15
1.3 Sumário 18
Capítulo 2 - A Tecnologia Utilizada no Ambiente Cliente-Servidor
19
2.1 Sistemas Abertos 20
2.2 OMG/CORBA 23
2.3 A Tecnologia Usada em Clientes 26
2.3.1 A Plataforma de Hardware 27
2.3.2 O Sistema Operacional 27
2.3.3 A Interface de Conectividade 28
2.3.4 Programas de aplicação 28
2.3.5 Interface Gráfica do Usuário
29
2.4 A Tecnologia Usada em Servidores 31
2.4.1 A Plataforma de Hardware 32
2.4.2 O Sistema Operacional 34
2.4.3 O Sistema Operacional de Rede 36
2.4.4 A Interface de Conectividade 37
2.4.5 O Sistema de Gerência de Bancos de Dados
37
2.5 A Tecnologia Usada em Redes 38
2.5.1 Arquiteturas e Padrões 39
2.5.2 Protocolos 41
2.5.3 Redes Locais 47
2.5.4 Redes de Longa Distância 52
2.6 Sumário 54
Capítulo 3 - A Arquitetura da Aplicação 55
3.1 Os Componentes de Uma Aplicação 56
3.2 A Distribuição dos Componentes da Aplicação
58
3.2.1 Apresentação Distribuída
58
3.2.2 Apresentação Remota 59
3.2.3 Função Distribuída 59
3.2.4 A Distribuição das Funções
de Gerência de Dados 60
3.2.5 Princípios para Distribuição
de Processos 61
3.2.6 Arquiteturas Cliente-Servidor 62
3.3 Mecanismos de Comunicação Entre Processos 64
3.3.1 Interface de Programação para
Aplicações 64
3.3.2 Middleware 65
3.3.3 Chamada de Procedimento Remoto (RPC) 67
3.3.4 Comunicação pelo Uso de Soquetes
69
3.4 Sumário 70
Capítulo 4 - O Modelo Relacional e a Linguagem SQL 71
4.1 Conceitos básicos do Modelo Relacional 71
4.1.1 Integridade de dados no Modelo Relacional
74
4.1.2 Álgebra Relacional 77
4.2 A linguagem SQL e seus comandos para definição de
dados 81
4.2.1 Esquemas em SQL 82
4.2.2 Domínios em SQL 83
4.2.3 Tabelas e Restrições de Integridade
em SQL 84
4.2.4 Visões em SQL 87
4.3 Comandos SQL para Manipulação de Dados 88
4.3.1 Consultas em SQL 88
4.3.2 Modificação de Dados em SQL
89
4.4 Restrições de Integridade Usando Triggers e Procedimentos
Armazenados 90
4.5 Outros Comandos SQL 93
4.5.1 Índices 94
4.5.2 Autorização e Controle de Acesso
94
4.5.3 Controle de Transações 95
4.6 Interfaces de Programação para Aplicações
96
4.6.1 API SQL de Comandos Embutidos 96
4.6.2 API SQL de Chamada de Função
98
4.6.3 API SQL de Comandos Embutidos vs. API SQL
de Chamada de Função 99
4.6.4 SQL Dinâmica 100
4.7 Outras Interfaces para Acesso a Bancos de Dados 101
4.8 Sumário 102
Capítulo 5 - Gerência de Transações 103
5.1 Uma Arquitetura de Referência para Implementação
de SGBDs 104
5.2 Processamento de Consultas 106
5.3 Execução de Transações 110
5.3.1 A leitura que não pode ser repetida
112
5.3.2 O acesso a dados que não são
definitivos 112
5.3.3 As alterações de dados perdidas
112
5.4 As Propriedades das Transações 113
5.5 Controle de Concorrência 114
5.5.1 Mecanismos Básicos de Controle de Concorrência
115
5.5.2 Controle Pessimista Baseado em Bloqueios 116
5.5.3 Granularidade dos Bloqueios 118
5.6 Recuperação de Transações 119
5.6.1 Imagens Anteriores , Imagens Posteriores e
Log 120
5.6.2 Falhas no Ambiente de Banco de Dados e suas
Recuperações 120
5.7 Sumário 122
Capítulo 6 - Projeto de Bancos de Dados Relacionais 124
6.1 Projeto Conceitual com o Modelo Entidade-Relacionamento 125
6.1.1 Estratégias de Projeto Conceitual 126
6.1.2 Integração de Visões
128
6.2 Projeto Lógico 129
6.2.1 Transformação do Esquema Conceitual
em um Esquema Lógico 129
6.2.2 Normalização de Relações
130
6.2.3 Equivalência Funcional entre o Modelo
ER e as Relações Normalizadas 143
6.3 Projeto Físico de Banco de Dados Relacional 146
6.3.1 Critérios para o Projeto Físico
146
6.3.2 Fatores que Influenciam o Projeto Físico
146
6.3.3 Organização de Arquivos e Seleção
de Índices 148
Comandos SQL de criação das tabelas
da Figura 6.2 149
6.4 Sumário 152
Capítulo 7 - Bancos de Dados Distribuídos 153
7.1 Características dos Sistemas de Bancos de Dados Distribuídos
155
7.1.1 As Regras de Date para Bancos de Dados Distribuídos
156
7.1.2 Vantagens e Desvantagens dos Sistemas de Bancos
de Dados Distribuídos 158
7.2 Sistemas de Gerência de Bancos de Dados para Bancos de Dados
Distribuídos 160
7.3 O Projeto de Bancos de Dados Distribuídos 162
7.4 A Fragmentação de Relações 164
7.5 O Problema da Alocação dos Fragmentos 167
7.6 A Réplica de Dados 168
7.6.1 Extratos de Tabelas 169
7.6.2 Réplica de Tabelas 171
7.7 Comparação entre as Técnicas de Distribuição
173
7.8 Execução de Consultas e Gerência de Transações
no Ambiente Distribuído 174
7.8.1 O Critério de Correção
da Execução das Transações Distribuídas
175
7.8.2 A Garantia da Atomicidade das Transações
Distribuídas 176
7.9 A Administração de Bancos de Dados no Ambiente Distribuído
177
7.10 Sumário 179
Capítulo 8 - Acesso a Dados Distribuídos por Sistemas
de Banco de Dados Independentes 180
8.1 A Definição de Um Esquema Global a Partir dos Esquemas
dos BDs Existentes 183
8.2 Sistemas de Bancos de Dados Distribuídos Heterogêneos
184
8.2.1 A Otimização de Consultas 186
8.2.2 O Controle de Acesso a Dados 187
8.2.3 A Gerência de Transações
187
8.3 O Uso de Interfaces Padronizadas para Acesso a Múltiplos
Bancos de Dados 189
8.3.1 A Solução da Microsoft: o Padrão
ODBC 190
8.3.2 Restrições ao Uso da Abordagem
de Interface Comum 196
8.4 O Uso de Protocolos Comuns para Acesso a Múltiplos Bancos
de Dados 198
8.4.1 A Solução da IBM: o Padrão
DRDA 198
8.5 O Modelo de Gateway 201
8.6 Sumário 201
Capítulo 9 - Tópicos Correntes em Banco de Dados 203
9.1 Bancos de Dados Paralelos 203
9.1.1 Arquiteturas de Sistemas de Bancos de Dados
Paralelos 204
9.1.2 Processamento Paralelo de Consultas 206
9.1.3 Aspectos para Pesquisa 208
9.2 Bancos de dados ativos 208
9.2.1 Componentes dos bancos de dados ativos 210
9.2.2 Características ativas em SGBDs relacionais
212
9.2.3 Aspectos para pesquisa 214
9.3 Orientação a objeto em banco de dados 216
9.3.1 Orientação a objetos versus
orientação a valor 218
9.3.2 Abordagens de implementação
de orientação a objeto em banco de dados 219
9.4 Acesso a Bancos de Dados no Ambiente da Internet e de Intranets
220
9.4.1 O Acesso a Bancos de Dados com Paginadores
Estendidos 221
9.4.2 O Acesso a Bancos de Dados com Servidores
de Páginas Estendidos 223
9.4.3 Problemas no Acesso a Bancos de Dados 224
9.5 Data WareHouse 224
9.5.1 O Processo de Projeto de Bancos de Dados no
Ambiente de Data Warehouse 225
9.5.2 O Acesso a Dados no Ambiente de Data Warehouse
227
9.6 Sumário 229
Referências Bibliográficas 230
Índice Remissivo 234