Felipe Nery Rodrigues Machado Banco de Dados Projeto e Implementação 2 Edição 4 Reimpressão São Paulo 2011 Editora Érica Ltda. 3
Projeto Sumário Capítulo 1 O Que É Projeto de Banco de Dados 15 Modelagem de Dados 16 Que É Abstração? 18 Minimundo 20 Banco de Dados 20 Modelo Conceituai 20 Modelo Lógico 21 Modelo Físico 22 O Projeto de Banco de Dados 23 O Modelo EntidadeRelacionamento (ER) 25 A Implementação de Banco de Dados 26 Conclusão 28 Capítulo 2 Abstração em Modelagem de Dados 29 Classificação de Abstração 30 Agregação de Abstração 31 Generalização de Abstração 31 A Cozinha 33 Começar por Dados 35 Agregações Binárias 35 Cardinalidade Mínima 36 Cardinalidade Máxima 38 Exercícios de Abstração 39 Capítulo 3 Bancos de Dados Relacionais 41 Introdução 41 Teoria Relacional 42 Características Principais de uma Relação (Tabela Relacional) 45 Domínio 46 Chave Primária 48 Valores Nulos e Integridade de Identidade 53 Regra de Integridade de Identidade 55 Chave Primária 55 Chave Estrangeira 56 Integridade Referencial 59 Restrições para Garantira Integridade Referencial 61 Resumo de Restrições de Integridade Relacional 63 Exercícios Capítulo 4 Modelo EntidadeRelacionamento 67 Elementos de um Modelo ER 69 Entidades Relacionamentos 72 Atributos Grau de Relacionamento 77 64 70 74 8 Banco de Dados e Implementação
O Conectividade de um Relacionamento 78 Conectividade UmparaUm 79 Conectividade UmparaMuííos 80 Conectividade MuitosparaMuitos 81 Atributos em um Relacionamento 82 Opcionalidade de Relacionamento 84 Condicionalidade de um Relacionamento 84 Relacionamentos Reflexivos 85 Resolução de Relacionamentos MuitosparaMuitos 87 Entidade Fraca ou Dependente 94 Como Reconhecer Entidades na Prática 94 Como Reconhecer Relacionamentos 95 Uma Distribuidora de Filmes 96 Exercícios. 101 Capítulo 5 Extensões do Modelo EntidadeRelacionamento 105 Generalização: Supertipos e Subtipos 105 Relacionamentos Ternários 109 Modelagem de Atributos (Modelagem Lógica) 111 O Problema 113 Quando os Fatos Podem Confundir 118 Capítulo 6 Agregação: Uma Extensão Especial 125 O Hotel 132 Explicação Adicional sobre as Chaves 139 Clínicas Médicas 139 A Fábrica 147 Regras para Identificar e Utilizar Agregação 149 Agregação Reflexiva 155 Produto Composto e Componente 158 Uma Distribuidora de Filmes Retorno 160 Conclusão 161 Capítulo 7 Tratamento de Interpretações de Dados 163 Pontos de Vista Diferentes 163 Relacionamentos entre Interpretações 166 Tratamento de Subinterpretações 169 Mais Interpretação 171 Diagrama Hierárquico de Interpretações 178 Conclusão 179 Cuidado, Abra o Olho! 180 Capítulo 8 Normalização 181 Conceituação 181 Primeira Forma Normal (1FN) 183 Segunda Forma Normal (2FN) 188 Terceira Forma Normal (3FN) 191 Forma Normal de Boyce/Codd (FNBC) 194 Entidade Cliente 196 9
Um Mapeamento Administração Entidade Agência 196 Entidade Empréstimos 197 Quarta Forma Normal (4FN) 199 Quinta Forma Normal (5FN) 204 Roteiro de Aplicação da Normalização 204 Aplicação da 1FN 204 Aplicação da 2FN 204 Aplicação da3fn 205 Aplicação da FNBC 205 Aplicação da 4FN 205 Aplicação da 5FN 205 Considerações Finais sobre Normalização 206 Desnormalização dos Dados 207 Alguns Motivos para a Desnormalização 207 Capítulo 9 Estudo de Caso 209 O Problema de Cirurgias 209 Modelagem 210 Capítulo 10 Hierarquias 221 Tratamento de Hierarquias de Dados 221 Capítulo 11 Modelo Físico 225 O Modelo Físico em Si 225 Propriedades de uma Coluna 226 A Opção de Nulo 227 Uma Regra de Validação 227 Valor Padrão 228 Visões de Dados 228 índices do Banco de Dados 230 Chaves Substitutas 230 As Generalizações 231 Tabelas do Exemplo 232 Relação entre Modelo Lógico e Modelo Físico 234 Capítulo 12 de Objetos ER 239 Mapeamento de Objetos para Tabelas (ER) 240 Regrai 241 Classes com Coleções de Objetos 242 Regra 2 242 Regra 3 de Associações UmparaUm 243 Regra 4 de Associações UmparaMuitos 244 Regra 5 de Associações UmparaMuitos com Classe de Associação 244 Regra 6 de Associações MuitosparaMuitos 245 Regra 7 de Associações MuitosparaMuitos com Classe de Associação 245 Regra 8 de Generalizações 246 Regra 9 de Agregações 248 Considerações Finais 249 10 Banco de Dados Projeto e Implementação
Capítulo 13 Álgebra Relacional 251 Álgebra Relacional e Operações Relacionais 251 Os Operadores de Álgebra Relacional 252 Operação de Projeção Operação de Seleção Produto Cartesiano 260 Operação Renomear 268 Operação de União (Binária) 275 Operação de Diferença (Binária) 278 Operação de Intersecção de Tabelas 282 Operação de Junção 284 Operação de Divisão 290 Exercícios Resolvidos e Operadores Adicionais 293 Funções em Álgebra Relacional 299 Projeção Generalizada 301 Operação de Semijunção 307 Junção Externa (OuterJoin) 309 Exercícios Propostos 311 Capítulo 14SQL 315 A Importância da Linguagem SQL 315 A Linguagem SQL 316 Vantagens e Desvantagens da Linguagem SQL 318 O Exemplo 319 Criação e Distribuição de Tabelas 322 Criação de Tabelas 323 Criação de Chaves Primárias Compostas 326 Eliminação de uma Tabela 327 Alteração da Estrutura das Tabelas 327 Coluna Calculada 329 Criação de Ações em Cascata 330 A Cláusula ON DELETE CASCADE e ON UPDATE CASCADE 330 Regras de Validação 330 Extração de Dados de uma Tabela: SELECT 331 Seleção de Colunas Específicas da Tabela 331 Seleção de Todas as Colunas da Tabela 333 Alteração do Heading (Cabeçalho) da Coluna 334 Manipulação de Dados Numéricos: Operadores Aritméticos 335 Seleção de Somente Algumas Linhas da Tabela 335 Comparações na Cláusula WHERE 336 Ordenação dos Dados Selecionados 343 Realização de Cálculos com Informação Selecionada 346 Utilização de Funções de Agregação sobre Conjuntos 347 Busca de Máximos e Mínimos (MAX, MIN) 347 Totalização dos Valores de Colunas (SUM) 347 Cálculo de Médias (AVG) 348 Contagem dos Registros (COUNT) 348 Utilização da Cláusula DISTINCT 348 Agrupamento de Informações Selecionadas (GROUP BY e HAVING) 349 253 256 11
Banco UPDATE GRANT Utilização com HAVING 351 Recuperação de Dados de Várias Tabelas (JOINS) 351 O Conceito de Qualificadores de Nome 351 InnerJoins 353 Cross Join ou Produto Cartesiano 354 OuterJoins 355 Uso de Aliases 359 Junção de Mais de Duas Tabelas 360 Utilização de Consultas Encadeadas (Subqueries) 363 Inserir, Modificar e Apagar Registros 367 Adição de Registro à Tabela 367 Adição de Registros com um SELECT 368 Atualização de um Registro 369 Alteração de Registros com Dados de Outra Tabela 371 Apagar Registros da Tabela 372 Apagar Registros da Tabela com Base em Dados de Outra Tabela 373 Utilização de Views 373 Criação de uma View por meio de um Join 375 Utilização de uma View 376 Listagem 376 Inserção de Linhas numa View 376 Modificação de uma Linha da View 377 Apagar 377 Eliminação de uma View 377 Garantia dos Privilégios de Acesso e REVOKE 378 Comando GRANT (Garantir) 378 Lista de Opções de Privilégios 379 Comando REVOKE (Revogação) 380 Trabalho com índices 381 Um Checklist para Criação de Índices 381 Quando Não Criar índices 382 Criação de índices 382 Eliminação de índices 383 Tópicos Avançados de SQL 384 Combinação de Resultados de Pesquisas (UNION) 384 Realização de um Join entre uma Tabela e Ela Mesma 385 Estudo de Caso de Dados 386 Bibliografia 393 índice Remissivo 395 12 Banco de Dados Projeto e Implementação