Banco de Dados Apresentação.pmd

Propaganda
Banco de Dados
Desmistificado
Andrew J. Oppel
Banco de Dados Desmistificado
Copyright © 2004 da Editora Alta Books Ltda.
Todos os direitos reservados e protegidos pela Lei 5988 de 14/12/73. Nenhuma parte deste
livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam
quais forem os meios empregados: eletrônico, mecânico, fotográfico, gravação ou quaisquer outros.
Todo o esforço foi feito para fornecer a mais completa e adequada informação, contudo a editora
e o(s) autor(es) não assumem responsabilidade pelos resultados e usos da informação fornecida.
Recomendamos aos leitores testar a informação, bem como tomar todos os cuidados necessários
(como o backup), antes da efetiva utilização. Este livro não contém CD-ROM, disquete ou qualquer
outra mídia.
Erratas e atualizações: Sempre nos esforçamos para entregar a você, leitor, um livro livre de
erros técnicos ou de conteúdo; porém, nem sempre isso é conseguido, seja por motivo de alteração
de software, interpretação ou mesmo quando alguns deslizes constam na versão original de alguns
livros que traduzimos. Sendo assim, criamos em nosso site, www.altabooks.com.br, a seção Erratas,
onde relataremos, com a devida correção, qualquer erro encontrado em nossos livros.
Avisos e Renúncia de Direitos: Este livro é vendido como está, sem garantia de qualquer tipo,
seja expressa ou implícita.
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/
ou comercial são de responsabilidade de seus proprietários. A Editora informa não estar associada
a nenhum produto e/ou fornecedor apresentado no livro. No decorrer da obra, imagens, nomes de
produtos e fabricantes podem ter sido utilizados, e desde já a Editora informa que o uso é apenas
ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou desmerecimento do produto/
fabricante.
Produção: Editorial Editora Alta Books
Tradução: Andreza Cardoso
Revisão: Shirley Lima
Diagramação: Leandro Zuhlke
O código de propriedade intelectual de 1º de Julho de 1992 proíbe expressamente o uso coletivo
sem autorização dos detentores do direito autoral da obra, bem como a cópia ilegal do original. Esta
prática generalizada nos estabelecimentos de ensino, provoca uma brutal baixa nas vendas dos
livros a ponto de impossibilitar os autores de criarem novas obras.
Av. Nilo Peçanha, 155, cjs. 1101 a 1106 - Castelo Rio de Janeiro – RJ. CEP: 20020-100
Tel: 21 2532-6556/ Fax: 2215-0225
www.altabooks.com.br
e-mail: [email protected]
Para todos aqueles com quem
aprendi muito sobre diversas
coisas, incluindo muitos professores,
alunos e co-autores que tive o prazer
de conhecer.
Sobre o autor
Andrew J. (Andy) Oppel formou-se na The Boy’s Latin School of Maryland and of Transylvania
University (Lexington, KY) em ciência da computação, em 1974. Desde então, atuou em várias
áreas ligadas à ciência da computação, incluindo programador, programador/analista, arquiteto de
sistemas, gerente de projetos, administrador sênior de bancos de dados, gerente de grupo de bancos
de dados, consultor, designer de bancos de dados e arquiteto de dados. Há mais de 20 anos é professor
no curso de extensão da Universidade da Califórnia (Berkeley) e, em 2000, recebeu o prêmio Honored
Instructor Award. Seu trabalho como professor inclui o desenvolvimento de dois cursos de extensão
na Universidade da Califórnia: “Conceitos de sistemas de gerenciamento de bancos de dados” e
“Introdução a sistemas relacionais de gerenciamento de bancos de dados”. Ele também recebeu seu
certificado Oracle 9i Database Associate em 2003. Atualmente, trabalha como o principal arquiteto
de dados da Ceridian, empresa líder no fornecimento de soluções em recursos humanos. Além de
sistemas de computação, Andy gosta de música (guitarra e vocal), rádio amador (vice-diretor da
Pacific Division, American Radio Relay League) e futebol (juiz).
Andy criou e implementou centenas de bancos de dados para uma grande variedade de aplicações,
incluindo pesquisa médica, banco, seguro, fabricação de roupas, telecomunicações, comunicações
sem fio e recursos humanos. Sua experiência com bancos de dados inclui IMS, DB2, Sybase,
Microsoft SQL Server, Microsoft Access, MySQL e Oracle (versões 7, 8, 8i e 9i).
Sumário
Capítulo 1 .............................................................................. 1
Conceitos básicos do banco de dados ............................................................................................... 1
Propriedades de um banco de dados ................................................................................................. 1
A camada física ................................................................................................................................. 3
A camada lógica ................................................................................................................................ 4
A camada externa .............................................................................................................................. 4
Modelos predominantes de banco de dados ...................................................................................... 5
Um breve histórico dos bancos de dados ........................................................................................ 14
Por que se concentrar no modelo relacional? .................................................................................. 16
Capítulo 2 ........................................................................... 21
Explorando componentes do banco de dados relacional ................................................................ 21
Componentes conceituais do design de banco de dados ................................................................. 21
Relacionamentos um-para-um ......................................................................................................... 23
Relacionamento um-para-muitos .................................................................................................... 24
Relacionamentos muitos-para-muitos ............................................................................................. 25
Relacionamentos recursivoas .......................................................................................................... 26
Componentes lógicos/físicos do design do banco de dados ........................................................... 27
Restrições de chave primária ........................................................................................................... 30
Restrições referenciais ..................................................................................................................... 31
Tabelas de intersecção ..................................................................................................................... 34
Restrições NÃO NULO ................................................................................................................... 35
Restrições VERIFICAR .................................................................................................................. 35
Imposição de restrições usando ativadores ..................................................................................... 36
Capítulo 3 ........................................................................... 41
Consultas a bancos de dados baseadas em formulários .................................................................. 41
QBE: As raízes das consultas baseadas em formulários ................................................................. 41
Introdução ao Microsoft Access ...................................................................................................... 42
O painel de relações do Microsoft Access ...................................................................................... 44
O Modo Eestrutura de tabela do Microsoft Access ......................................................................... 45
Criando consultas no Microsoft Access .......................................................................................... 47
Capítulo 4 ........................................................................... 71
Introdução ao SQL .......................................................................................................................... 71
A história do SQL ............................................................................................................................ 72
Introdução ao Oracle SQL ............................................................................................................... 73
Onde estão os dados? ...................................................................................................................... 76
Data Query Language (DQL): O comando SELECT ..................................................................... 78
Associando tabelas .......................................................................................................................... 85
Funções Agregadas ......................................................................................................................... 88
Data Manipulation Language (DML) ............................................................................................... 90
O comando UPDATE ....................................................................................................................... 92
O comando DELETE ........................................................................................................................ 92
Comandos Data Definition Language (DDL) ................................................................................... 93
Restrições referenciais ..................................................................................................................... 94
Restrições únicas ............................................................................................................................. 95
Restrições de verificação ................................................................................................................. 95
Comandos Data Control Language (DCL) ....................................................................................... 97
Capítulo 5 ......................................................................... 101
O ciclo de vida do banco de dados ................................................................................................ 101
O método tradicional ..................................................................................................................... 101
Conduzir entrevistas ...................................................................................................................... 104
Conduzir uma pesquisa ................................................................................................................. 104
Observação .................................................................................................................................... 105
Análise de documentos .................................................................................................................. 105
Métodos não-tradicionais .............................................................................................................. 108
Capítulo 6 .......................................................................... 113
Design lógico do banco de dados usando a normalização ............................................................ 113
A necessidade de normalização ..................................................................................................... 114
Aplicando o processo de normalização ......................................................................................... 116
Formulário normal Boyce-Codd ................................................................................................... 124
Quarto formulário normal ............................................................................................................. 126
Quinto formulário normal ............................................................................................................. 126
Formulário normal de domínio e chave (DKNF, Domain-key Normal Form) ............................. 127
Desnormalização ........................................................................................................................... 127
Problemas práticos ........................................................................................................................ 127
Os modos de exibição do usuário .................................................................................................. 128
Solução do autor ............................................................................................................................ 130
Os modos do usuário ..................................................................................................................... 133
Solução do autor ............................................................................................................................ 135
Capítulo 7 ......................................................................... 139
Modelagem de dados e processos ................................................................................................. 139
Modelagem do relacionamento com entidades ............................................................................. 139
Formato de Chen ........................................................................................................................... 140
O formato IDEF1X ........................................................................................................................ 141
Modelo de processo ....................................................................................................................... 146
Relacionando entidades e processos ............................................................................................. 152
Capítulo 8 .......................................................................... 157
Design físico do banco de dados ................................................................................................... 157
Desenvolvendo tabelas .................................................................................................................. 157
Implementando os subtipos como são ........................................................................................... 160
Implementando cada subtipo como uma tabela discreta ............................................................... 161
Transformando subtipos na tabela de supertipos .......................................................................... 162
Convenções de nomenclatura de tabelas ....................................................................................... 163
Convenções de nomenclatura de colunas ...................................................................................... 163
Convenções de nomenclatura de restrições ................................................................................... 164
Convenção de nomenclatura de índices ........................................................................................ 164
Convenções de nomenclatura de modos de exibição .................................................................... 164
Integrando regras da empresa e integridade de dados ................................................................... 165
Desenvolvendo modos de exibição ............................................................................................... 169
Adicionando índices para o desempenho ...................................................................................... 170
Capítulo 9 ......................................................................... 175
Conectando bancos de dados ao mundo externo .......................................................................... 175
Modelos de distribuição ................................................................................................................ 175
Modelo servidor/cliente de três camadas ...................................................................................... 179
O modelo cliente/servidor de N camadas (computação de Internet) ............................................ 180
Conectando bancos de dados à Web ............................................................................................. 182
CGI (Common Gateway Interface) ............................................................................................... 184
Server-Side Includes ..................................................................................................................... 184
Gateways não-CGI ........................................................................................................................ 185
Conectando bancos de dados a aplicativos ................................................................................... 185
JDBC (Java Database Connectivity) ............................................................................................. 186
Capítulo 10 ....................................................................... 191
Segurança do banco de dados ....................................................................................................... 191
Por que a segurança é necessária? ................................................................................................. 191
Segurança do servidor do banco de dados .................................................................................... 192
Isolar a rede da empresa da Internet .............................................................................................. 193
Proteger todo acesso à rede sem fio .............................................................................................. 195
Cliente do banco de dados e segurança de aplicativo ................................................................... 197
Segurança de acesso ao banco de dados ....................................................................................... 199
Segurança do banco de dados no Microsoft SQL Server e no Sybase ......................................... 200
Segurança do banco de dados no Oracle ....................................................................................... 202
Exemplos de privilégio do sistema do Microsoft SQL Server (servidor e comando) .................. 204
Exemplos de privilégio do sistema do Oracle ............................................................................... 204
Privilégios de objeto ...................................................................................................................... 205
Monitoramente e auditoria de segurança ...................................................................................... 206
Capítulo 11 ........................................................................ 211
Implementação do banco de dados ................................................................................................ 211
Processamento de cursos ............................................................................................................... 211
Gerenciamento de transações ........................................................................................................ 213
Suporte para transações no Microsoft SQL Server ....................................................................... 214
Suporte para transações no Oracle ................................................................................................ 215
Bloqueio e impasse do banco de dados ......................................................................................... 215
Ajuste de desempenho ................................................................................................................... 219
Ajuste de consultas ao banco de dados ......................................................................................... 219
Controle de alterações ................................................................................................................... 222
Capítulo 12 ....................................................................... 227
Bancos de dados para processamento analítico online ................................................................. 227
Armazenamentos de dados ............................................................................................................ 227
Arquitetura da tabela de resumo .................................................................................................... 229
Arquitetura de armazenamento de dados do esquema de estrela .................................................. 230
Bancos de dados multidimensionais .............................................................................................. 232
Mineração de dados ....................................................................................................................... 234
Exame final....................................................................... 239
Respostas dos Testes e do Exame final .......................... 255
Agradecimentos
Devo muito a meus pais por terem me dado uma edução excelente e por terem me ensinado e
gostar tanto de aprender como de ensinar. Agradeço à Boy’s Lation School of Maryland e ao diretor
Jack H. Williams por terem me ensinado a escrever direito. Meus agradecimentos à Transylvania
University e ao Dr. James E. Miller por terem me introduzido ao mundo fascinante dos sistemas de
informação e por terem me dado as ferramentas para continuar aprendendo. Gostaria de agradecer
as pessoas maravilhosas da Mc Graw-Hill/Osborne pela oportunidade de escrever meu primeiro
livro e por seu suporte excelente durante o processo de escrita. Por fim, agradeço minha esposa
Laurie e nossos filhos Keith e Luke pelo apoio, paciência e compreensão durante as longas horas
que passei produzindo este livro.
Introdução
Trinta anos atrás, os bancos de dados eram encontrados apenas em laboratórios especiais de
pesquisa, onde os cientistas da área de computação buscavam maneiras de torná-los eficientes e
úteis, e publicavam suas descobertas em inúmeras pesquisas. Hoje, os bancos de dados são uma
parte ubíqua da indústria da tecnologia da informação (TI) e dos negócios em geral. Usamos os
bancos de dados de maneira direta e indireta todos os dias – transações bancárias, reservas de
viagem, relações de emprego, buscas em sites da Web, compras e a maioria das outras transações
são registradas e feitas por meio de bancos de dados.
Assim como acontece com muitas tecnologias de crescimento rápido, os padrões da indústria
ficaram para trás do desenvolvimento da tecnologia de banco de dados, resultando em um miríade
de produtos comerciais, cada um seguindo a visão de um determinado fornecedor de software.
Além disso, surgiu uma série de modelos diferentes de bancos de dados, sendo o modelo relacional
o mais comum. Desmistificando Banco de Dados examina todos os principais modelos relacionais,
incluindo hierárquico, rede, voltado ao objeto e relacional de objeto. No entanto, Desmistificando
Banco de Dados se concentra mais nos modelos de banco de dados relacionais e relacionais de
objeto porque eles são os mais usados na indústria de TI e devem permanecer assim por um bom
tempo.
O desafio mais significativo ao implementar um banco de dados é desenvolver sua estrutura
corretamente, sem entender completamente o problema que o banco de dados precisa solucionar e
sem conhecer as melhores práticas para organizar os dados necessários, o banco de dados se torna
difícil de lidar e requer atenção constante. Desmistificando Banco de Dados se concentra na
transformação dos requisitos em um modelo de banco de dados funcional com ênfase especial em
um processo chamado de normalização, que é uma técnica comprovadamente eficaz para desenvolver
bancos de dados relacionais. Na verdade, a normalização pode ser aplicada com sucesso em outros
modelos de banco de dados. E, mantendo a noção de que você não pode projetar um carro se nunca
tiver dirigido um, a linguagem SQL é introduzida para que o leitor possa “dirigir” um banco de
dados antes de conhecer os detalhes de como projetá-lo.
Usei minha longa experiência como designer, administrador e instrutor de banco de dados para
escrever este guia auto-didático sobre o mundo fascinante e complexo da tecnologia dos bancos de
dados. Há exemplos incluídos que usam o Microsoft Access e o Oracle. Bancos de dados de exemplo
que são fornecidos por esses fornecedores (o banco de dados Northwind do Microsoft Access e o
esquema de banco de dados Human Resources do Oracle) são usados nos exemplos sempre que
possível, para que você possa experimentá-los diretamente em seu sistema. Um teste de revisão é
fornecido no final de cada capítulo juntamente com um amplo exame no final do livro.
Se você tiver comentários, entre em contato.
Andrew J. (Andy) Oppel
[email protected]
Professor do curso de extensão da Universidade da Califórnia Berkeley
Principal arquiteto de dados da Ceridian
Certificado pelo Oracle9i Database Associate
Download