domingo, 9 de dezembro de 2007

Banco de Dados em Aplicacoes Cliente-Servidor


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

Prefácio xiii

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

Nenhum comentário: