Escolar Documentos
Profissional Documentos
Cultura Documentos
BDem Manga
BDem Manga
Prefcio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
O que um Banco de Dados? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Por que precisamos de Bancos de Dados? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
O que est acontecendo no reino? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Os dados esto duplicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Podem ocorrer conflitos nos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Dados so difceis de atualizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Um Banco de Dados - a nossa soluo! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Como usar um Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
O que um banco de dados relacional? . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Terminologia de Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bancos de Dados relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipos de modelos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operaes de extrao de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operaes de conjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operaes relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O Banco de Dados relacional vence! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Respostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
34
39
39
39
43
45
47
48
48
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Vamos projetar um banco de dados! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
O modelo E-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normalizao de uma tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O que o modelo E-R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Como analisar um modelo E-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 Caso: Relacionamento um-para-um . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Caso: Relacionamento um-para-muitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Caso: Relacionamento muitos-para-muitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normalizando uma tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passos para projetar um Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Respostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
56
74
74
74
75
75
76
78
79
81
81
82
4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Vamos aprender sobre SQL! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Uso de SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Pesquisa de dados usando um comando SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Uso de funes de totalizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Juno de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Criao de uma tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Viso geral sobre SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Pesquisa nos dados usando um comando SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Criao de critrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Operadores de comparao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Padres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Pesquisas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Funes de agregao numricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Totalizao de dados com agrupamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Pesquisa de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Uso de uma subconsulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Uso de uma subconsulta correlata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Juntando tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Criao de uma tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Insero, atualizao ou excluso de linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Criao de uma visualizao (View) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Respostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Vamos usar um Banco de Dados! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
O que uma transao? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O que uma trava (bloqueio)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Segurana de Bancos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acelerando as coisas com indexao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recuperao de desastres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Propriedades das transaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Atomicidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consistncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Isolamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Durabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quando um desastre ocorre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipos de falhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pontos de checagem (checkpoints) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi SumRIO
126
131
138
143
148
153
153
154
155
159
161
161
161
162
ndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Otimizao de uma consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Laos aninhados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fuso ordenada (sort merge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Otimizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Respostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
162
164
164
165
166
166
167
167
167
6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
os Bancos de Dados esto em todos os lugares! . . . . . . . . . . . . . . 169
Banco de Dados em uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bancos de Dados e a web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bancos de Dados distribudos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Procedimentos armazenados e gatilhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bancos de Dados na Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uso de procedimentos armazenados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O que um Banco de Dados distribudo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Distribuio horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Distribuio vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Particionamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Particionamento horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Particionamento vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Evitando inconsistncias com efetivao em duas fases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Replicao de Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Somente leitura (Read-Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Replicao ativa em todos os servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outras aplicaes de Bancos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bancos de dados orientado a objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
177
183
185
194
196
196
197
197
198
198
198
199
199
201
201
201
202
202
202
203
205
205
Apndice
Comandos SQL Usados com Frequncia . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Sumrio vii
Bom, pelo
menos ela
parece
inofensiva...
Bom, acho
que sim...
sim...
No vamos falar de
mim! Vocs abriram
o livro para
aprender sobre
bancos de dados...
Ento
vamos
comear.
Para criar
um banco de
dados...
certo?
Espere,
espere!!
Mas o que um
banco de dados?
Ah, vocs
no sabem
o que .
Vocs esto
lidando com
vrios valores e
nmeros, no?
os valores e
nmeros sobre
produtos,
clientes e
vendas
Cu l
ie
Produt
o
temos
administrado
criando
arquivos por
departamento.
nte
Sim, e temos
muitos
problemas...
sei, sei...
ven das
Princesa
Ruruna
Depto. de
Mercadorias
16 Captulo 1
Depto. de
Negcios
Internacionais
Depto. de
Exportao
Princesa
Ruruna
No posSo
acesSar dados
de vendas.
Eu posSo
acesSar dados
de vendas.
banco de dados
Depto. de
Exportao
Depto. de
Negcios
Depto. de
Mercadorias
Internacionais
O novo sistema pode ter outros problemas tambm. O banco de dados pode ser usado
por muitas pessoas ao mesmo tempo. Suponha que algum no departamento de negcios
internacionais e algum no departamento de exportao tentem alterar o nome de uma
fruta ao mesmo tempo - o primeiro de Ma para M, e o segundo de Ma para MA. Se
eles fizerem isso, o que acontecer com o nome do produto? Para um banco de dados que
ser usado por muitas pessoas, esse tipo de problema deve ser considerado.
Princesa
Ruruna
banco de dados
m?
ma?
Depto. de
Mercadorias
Depto. de
Negcios
Internacionais
Depto. de
Exportao
Voc tambm deve ter cuidado para no perder nenhum dado. Alm disso, o sistema
pode ficar fora do ar ou um disco rgido pode falhar, fazendo com que dados sejam corrompidos. O banco de dados precisa ter mecanismos para recuperar-se desses tipos comuns de
falhas.
banco de dados
20 Captulo 1
preciso estar
preparado para falhas.
Cdigo do
Produto
Registro
ah, Entendi.
Nome do
Produto
Preo
Unitrio
Comentrios
Melo
800g
com sementes
Morango
150g
Ma
120g
Limo
200g
azedo
Pinho
100g
com casca
Caqui
160g
Pssego
130g
Kiwi
200g
Alta qualidade
campo
Por exemplo,
Cdigo do
Produto um
valor de trs
dgitos...
cdigo do
produto
E Nome do
Produto tem dez
caracteres ou
menos.
cdigo do
produto
nome do produto
Ento, em seguida,
vamos pensar
sobre o cdigo
do produto
um pouco mais
detalhadamente.
Hmmm...
Registro...
Campo...
tanta
coisa para
decorar...
mel o
m or a
m a
l i mo
p i n h o
c aq u i
28 Captulo 2
aqui!
in
Ca
Papel
importante?
Alm disso,
algumas vezes
um campo tem um
papel importante
no banco de
dados.
Sim. Por
exemplo,
O cdigo do
produto no
arquivo que
voc viu agora
h pouco.
Esse campo
especial
chamado de chave
(key).
chave
primria
Esse cdigo
chamado de
chave primria
(primary key).
No sabia que
existiam tantos
termos.
rdo.
Cp
dueto
od
d
p.rco
Esse um dos
mritos do
modelo de dados
relacional.
Mesmo pessoas
que no sabem
muito sobre
bancos de dados
podem trabalhar
com dados.
Diferena
Diferena uma operao que extrai linhas de apenas uma das tabelas. Por exemplo,
uma operao de diferena pode extrair todos os produtos da primeira tabela que no
esto includos na segunda. Os resultados dependem de qual tabela contm as linhas
para extrair, de qual tabela inclui as linhas para subtrair.
Nome do Produto
Preo Unitrio
Nome do Produto
Preo Unitrio
Ma
120G
Pinho
100G
Limo
200G
Caqui
350G
tabela de
produto 1
Ma
Limo
Melo
Morango
tabela de
produto 2
tabela de
produto 1
Pinho
Caqui
Ma
Limo
tabela de
produto 2
Melo
Morango
Pinho
Caqui
Interseco
Voc tambm pode extrair produtos que esto inclusos em ambas as Tabelas de Produto 1
e 2. Essa operao chamada de operao de interseco. Aqui vemos o resultado da interseco das Tabelas de Produto 1 e 2.
Nome do Produto
Preo Unitrio
Melo
800G
Morango
150G
tabela de
produto 1
Ma
Limo
tabela de
produto 2
Melo
Morango
Pinho
Caqui
Em primeiro lugar,
pensamos que seria
mais fcil criar um
banco de dados...
uma
lio meio
longa...
Ko
d
Por
favor
sente-se.
Obrigada.
Se consegussemos
entender as
condies reais do
Reino de Kod...
Bom, esto
prontos?
Usaremos um
modelo de
anlise chamado...
Modelo E-R!
Entidade e
relacionamento...
E de Entidade e R de
Relacionamento.
E = de
a
tid
n
E
Nem eu.
Rela
R =
cion
a me
nto
E-R...?
52 Captulo 3
No conheo
esses nomes...
Esse ... um
relatrio que
fazemos quando
exportamos
frutas para um pas
estrangeiro.
Este relatrio
demonstra bem o
estado atual das
exportaes.
FluP
Tabular!!
VUsh
Ainda no.
Primeiro...
vamos...
Aqui est.
Cdigo Do
Relatrio
DatA
1101
5/3
Cdigo Dest.
de Exp.
12
nome Dest.
de Exp.
Reino de
Minami
Imprio
Alfa
Reino de
Ritol
1102
7/3
23
1103
8/3
25
1104
10/3
12
Reino de
Minami
1105
12/3
25
Reino de
Ritol
CDIGO DO
PRODUTO
101
Nome do
produto
PREO
QuantiDADE
Unitrio
Melo
800g
1100
102
morango
150g
300
103
ma
120g
1700
104
Limo
200g
500
101
Melo
800g
2500
103
ma
120g
2000
104
limo
200g
700
57
Q9
A tabela a seguir representa um sistema de recebimento de pedidos. Normalize-a na
terceira forma normal. Suponha que os produtos sejam classificados por cdigo.
Cdigo
de
Pedido
Data
Cdigo
do
Cliente
Nome
do
Cliente
Cdigo
do
Produto
Nome
do
Produto
Preo
Unitrio
Cdigo de
Classificao
do produto
Nome de
Classificao
do Produto
Quantidade
Esquema interno
Esquema Conceitual
Esquema externo
A Princesa Ruruna e o Cain criaram um banco de dados com foco no esquema conceitual neste captulo. Eles esto no processo de melhoria do banco de dados.
Agora que voc completou o projeto bsico de um banco de dados, vamos examinar
seu uso no prximo captulo.
Resumo
Os dados em uma tabela devem ser normalizados antes que possam ser usados para
criar um banco de dados relacional.
O projeto de um banco de dados pode ser dividido em trs tipos: esquemas conceitual,
interno e externo.
vamos projetar um banco de dados! 81
Oh, um novo
lugar para
estudar!
A esto
vocs!!
flip
Fl
ap
Est fresquinho
aqui fora.
Flap
Ento, chegamos
em um ponto onde
podemos projetar
um banco de dados.
Finalmente...
A prxima coisa a
fazer estudar
como utilizar o
banco de dados
que criamos.
Hip, hip,
hurra!
Concordo
com voc.
Quando usar
o banco de
dados, vocs tm
que inserir ou
recuperar dados,
como j sabem.
Sql??
Hi
hi!
90 Captulo 4
Parece
difcil...
H muitas coisas
sobre meu prprio
pas que eu no sei.
No sabia que o
preo mdio era
assim to alto...
A SQL tambm
tem uma funo
que totaliza os
valores dos dados
recuperados..
)oirati n u_ocerp(gva
5 ,71 3
No timo?
Exato.
Ento podemos
obter outros dados
alm da mdia?
A quantidade de itens,
sua soma, mdia,
valores mximos
e mnimos, todos
podem ser obtidos
especificando uma
funo de totalizao.
Funo
Descrio
COUNT(*)
COUNT(nome_coluna)
COUNT(DISTINCT nome_coluna)
SUM(nome_coluna)
AVG(nome_coluna)
MAX(nome_coluna)
MIN(nome_coluna)
Assim...
Uau!
nome do
produto
preo
Unitrio
Melo
800g
1100
102
morango
150g
300
Imprio Alfa
103
ma
120g
1700
104
limo
200g
500
Melo
800g
2500
2000
cdigo do
relatrio
Data
1101
5/3
12
Reino de
Minami
101
1101
5/3
12
Reino de
Minami
1102
7/3
23
1103
8/3
25
Reino de
Ritol
1104
10/3
12
Reino de
Minami
101
1105
12/3
25
Reino de
Ritol
103
ma
120g
1105
12/3
25
Reino de
Ritol
104
limo
200g
Quantidade
700
Essa a mesma
tabela original. Ns a
recriamos!
Isso
timo!!
Uau!
Agora deixem eu
comear.
Um dia, o Andy
e a Becky
acessaram o
banco de dados
ao mesmo
tempo.
Clap,
clap,
clap
banco de
dados
acesso
Uhuuu!
30 mas
Eu vejo
30
agora.
t.
Terei 40
ento.
tem 30
agora!
30 mas
Eu vejo
30
agora.
Isso
est
certo?
Terei 40
ento.
Terei
40
ento.
40 mas
128 Captulo 5
Nossa Tabela
de Produtos.
Cdigo produto
preo Unitrio
Melo
10000g
102
Morango
12500g
103
Ma
8000g
104
Limo
6000g
201
Pinho
9000g
Caqui
12400g
Pssego
5000g
Kiwi
6000g
101
202
301
302
O que tem de
errado com
ela?
nome produto
Os preos.
Os preos!
Os preos?
Os valores
na coluna de
preo unitrio
esto todos
bagunados!
Ah, no!!!
Como pode?!
Iss
o
um q
ca m e l u e
ro o
!!
Banco de
dados
Depto. de
Mercadorias
PESQUISAR
INSERIR
ATUALIZAR
EXCLUIR
SIM
SIM
SIM
SIM
No vamos apenas
restringir o nmero de
usurios - vamos tambm
configurar permisses
para cada usurio que
puder acessar o banco de
dados.
Depto. de Negcios
Internacionais
PESQUISAR
INSERIR
ATUALIZAR
EXCLUIR
Depto. de
Exportao
PESQUISAR
INSERIR
ATUALIZAR
EXCLUIR
SIM
SIM
NO
NO
142 Captulo 5
SIM
NO
NO
NO
V UP
Ah, mas
espere...!
Por exemplo?
web?
Uau, eu
estava
querendo
este livro.
m
Co
No mundo todo, as
pessoas podem comprar
vrias coisas em pginas
na web.
Isso parece to
fcil!
pr
ad
o.
Alis, vou
compr-lo.
Por exemplo,
voc pode
comprar
qualquer livro
que quiser...
Chegou!
Legal!
Eu apoio
totalmente um
sistema assim!
navegando numa
pgina da web.
Maravilhoso!
lista de
compras
do Rei
Vamos
ver,
qual o
prximo?
Muitos
servidores
oferecem
proteo extra
contra falhas,
tambm!
Ti-ca!
Ti-ca!
no cho
Falha
Nossa!
Por exemplo?
Alm disso, todos
os servidores devem
ser atualizados
apropriadamente caso
ocorra qualquer
problema na rede.
Quando uma transao
efetivada, voc deve
garantir consistncia em
todo seu banco de dados
distribudo.
184 Captulo 6
<produtos>
<fruta>
<codigo_produto>101</codigo_produto>
<nome_produto>Melo</nome_produto>
<preco_unitario>800</preco_unitario>
</fruta>
<fruta>
<codigo_produto>102</codigo_produto>
<nome_produto>Morango</nome_produto>
<preco_unitario>150</preco_unitario>
</fruta>
<fruta>
<codigo_produto>103</codigo_produto>
<nome_produto>Ma</nome_produto>
<preco_unitario>120</preco_unitario>
</fruta>
</produtos>
Ruruna Kod
reino de Kod
Banco de dados
orientado a objeto
Princesa
Perfil