SQL e Teoria Relacional
Como escrever códigos SQL precisos
Descrição do livro
O SQL é repleto de dificuldades e armadilhas para os descuidados. Você pode evitá-las se compreender a teoria relacional, mas apenas se souber colocar a teoria em prática.
Neste livro esclarecedor, o autor C. J. Date explica a teoria relacional em profundidade e demonstra por meio de numerosos exemplos e exercícios como você pode aplicá-la diretamente no seu uso de SQL.
Esta edição inclui material novo sobre consultas recursivas, novos operadores de atualização e tópicos como operadores agregados, agrupamentos e desagrupamentos e atualização de views. Se você tem uma experiência de modesta à avançada em SQL, aprenderá a lidar com uma série de dilemas SQL comuns:
Por que a nomenclatura correta das colunas é tão importante?
Nulos em seu banco de dados estão fazendo com que você receba respostas erradas. Por quê? O que você pode fazer quanto a isso?
É possível escrever uma consulta SQL para encontrar funcionários que nunca estiveram no mesmo departamento por mais de seis meses de cada vez?
SQL suporta “comparações quantificadas”, mas é melhor evitá-las. Por quê? Como você as evita?
Restrições são de importância crucial, mas a maioria dos produtos SQL não oferece suporte adequado a elas. O que você pode fazer para resolver essa situação?
A teoria e a prática dos bancos de dados evoluiram muito desde que o modelo relacional foi desenvolvido há mais de 40 anos. O livro SQL e Teoria Relacional aproveita décadas de pesquisa para apresentar a abordagem mais atualizada de SQL disponível.
Ver menos ▲Sumário
Sumário
- Sobre o autor
- Prefácio à primeira edição
- Prefácio à segunda edição
- Preparando o cenário
- O modelo relacional é muito mal-compreendido
- Algumas observações sobre terminologia
- Princípios, não produtos
- Uma revisão do modelo original
- Modelo versus implementação
- Propriedades de relações
- Relações de base versus relações derivadas
- Relações versus relvars
- Valores e variáveis
- Observações de encerramento
- Exercícios
- Tipos e domínios
- Tipos e relações
- Comparações de igualdade
- Atomicidade de valores de dados
- O que é um tipo?
- Tipos escalares versus tipos não escalares
- Tipos escalares em SQL
- Verificação de tipo e coerção em SQL
- Collations em SQL
- Tipos de linhas e tabelas em SQL
- Observações de encerramento
- Exercícios
- Tuplas e relações, linhas e tabelas
- O que é uma tupla?
- Linhas em SQL
- O que é uma relação?
- Relações e seus corpos
- Relações são n-dimensionais
- Comparações relacionais
- TABLE_DUM e TABLE_DEE
- Tabelas em SQL
- Nomenclatura de colunas em SQL
- Observações de encerramento
- Exercícios
- Sem duplicatas, sem nulos
- O que há de errado com as duplicatas?
- Duplicatas: questões adicionais
- Evitando duplicatas em SQL
- O que há de errado com os nulos?
- Evitando nulos em SQL
- Uma observação sobre junções externas
- Observações de encerramento
- Exercícios
- Relvars de base, tabelas de base
- Atualizações ocorrem em nível de conjunto
- Atribuição relacional
- Mais sobre chaves candidatas
- Mais sobre chaves estrangeiras
- Relvars e predicados
- Relações versus tipos
- Exercícios
- SQL e álgebra relacional I: os operadores originais
- Algumas preliminares
- Mais sobre fechamento
- Restrição
- Projeção
- Junção
- União, intersecção e diferença
- Quais operadores são primitivos?
- Formulação de expressões, um passo de cada vez
- O que significam expressões relacionais?
- Avaliação de expressões de tabela em SQL
- Transformação de expressão
- A dependência de nomes de atributos
- Exercícios
- SQL e álgebra relacional II: operadores adicionais
- União exclusiva
- Semijunção e semidiferença
- Extensão
- Relações de imagem
- Divisão
- Operadores de agregação
- Um bis das relações de imagem
- Sumarização
- Um bis da sumarização
- GROUP, UNGROUP e atributos valorados de relação
- Consultas “e se”
- Uma nota sobre recursão
- E quanto a ORDER BY?
- Exercícios
- SQL e restrições
- Restrições de tipo
- Restrições de tipo em SQL
- Restrições de bancos de dados
- Restrições de bancos de dados em SQL
- Transações
- Por que a verificação de restrições de bancos de dados deve ser imediata
- Mas algumas verificações não têm de ser postergadas?
- Restrições e predicados
- Questões miscelâneas
- Exercícios
- SQL e visões
- Visões são relvars
- Visões e predicados
- Operações de recuperação
- Visões e restrições
- Operações de atualização
- Para que servem as visões?
- Visões e instantâneos
- Exercícios
- SQL e lógica
- Por que precisamos da lógica?
- Proposições simples e compostas
- Predicados simples e compostos
- Quantificação
- Cálculo relacional
- Mais sobre quantificação
- Algumas equivalências
- Observações de encerramento
- Exercícios
- Uso de lógica para formular expressões SQL
- Algumas leis de transformação
- Exemplo 1: Implicação lógica
- Exemplo 2: Quantificação universal
- Exemplo 3: Implicação e quantificação universal
- Exemplo 4: Subconsultas correlacionadas
- Exemplo 5: Nomenclatura de subexpressões
- Exemplo 6: Mais sobre nomenclatura de subexpressões
- Exemplo 7: Lidando com ambiguidade
- Exemplo 8: Utilizando COUNT
- Exemplo 9: Consultas de junção
- Exemplo 10: Quantificação UNIQUE
- Exemplo 11: Comparações ALL ou ANY
- Exemplo 12: GROUP BY e HAVING
- Exercícios
- Tópicos variados em SQL
- SELECT *
- Tabelas explícitas
- Qualificação de nome
- Variáveis de intervalo
- Subconsultas
- Expressões “possivelmente não determinísticas”
- Conjuntos vazios
- Uma gramática BNF simplificada
- Exercícios
- O modelo relacional
- O modelo relacional versus outros modelos
- A significância da teoria
- O modelo relacional definido
- Variáveis de bancos de dados
- Objetivos do modelo relacional
- Alguns princípios de bancos de dados
- O que resta ser feito?
- Diferenças entre a SQL e o modelo relacional
- Uma abordagem relacional às informações faltantes
- Decomposição vertical
- Decomposição horizontal
- O que significam as entradas sombreadas?
- Restrições
- Consultas
- Mais sobre predicados
- Exercícios
- Uma gramática da Tutorial D
- Sumário de recomendações
- Respostas aos exercícios
- Capítulo 1
- Capítulo 2
- Capítulo 3
- Capítulo 4
- Capítulo 5
- Capítulo 6
- Capítulo 7
- Capítulo 8
- Capítulo 9
- Capítulo 10
- Capítulo 11
- Capítulo 12
- Apêndice C
- Sugestões para leitura adicional
Livros relacionados
Recursos
Opinião dos leitores
Jose R M
Este é um bom livro, recomendo sem dúvidas, muito explicativo.
Rodrigo C L
Mais um ótimo livro que estou lendo para ter o melhor aproveitamento de um banco de dados. Além de conhecer a Novatec e a qualidade de seus livros, este livro também foi recomendado pela Microsoft no Training Kit 70-461 e está sendo ótimo para esclarecer muitas dúvidas.
Geraldo H N
O autor dispensa comentários. Imprescindível para iniciantes e profissionais.
Cicero T P L F
O nome do autor é tudo!






