Sie sind auf Seite 1von 22

Sumrio

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 131 138 143 148 153 153 154 155 159 161 161 161 162

vi

SumRIO

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apndice Comandos SQL Usados com Frequncia . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 175 177 183 185 194 196 196 197 197 198 198 198 199 199 201 201 201 202 202 202 203 205 205

Sumrio

vii

Bom, pelo menos ela parece inofensiva... sim...

Bom, acho que 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?

Sei que uma pergunta muito bsica...

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

temos administrado criando arquivos por departamento.


ven das

Produt o

Cu l ie nte

Sim, e temos muitos problemas...

Ah, ento cada departamento por si, n.

sei, sei...

O que est acontecendo no reino?


O Reino de Kod usa um sistema baseado em arquivos para gerenciar seus dados. Mas parece que o sistema tem alguns problemas. Quais so, exatamente? Vamos ver em detalhes. O Reino tem trs departamentos: o de mercadorias, o de negcios internacionais e o de exportao. O de mercadorias mantm registro de todas as frutas produzidas no pas, o de negcios internacionais responsvel pelos pases estrangeiros que so parceiros de negcios do reino e o de exportao registra as quantidades de frutas que o reino exporta.

Os dados esto duplicados


A princesa Ruruna no est satisfeita com o sistema atual. Mas por qu? Cada departamento no reino gerencia seus dados independentemente. Por exemplo, o departamento de mercadorias e o de exportao criam cada um arquivos para gerenciar dados sobre frutas. Dessa forma, os dados so duplicados sem necessidade entre todos os departamentos. Cada um deles gasta tempo inserindo seus dados, e ocupa espao desnecessrio em seus discos rgidos, para s, depois imprimir formulrios de checagem, e todo esse processo um desperdcio. Alm disso, dados mantidos em um departamento em particular nunca so compartilhados eficientemente com os outros.
Princesa Ruruna

Os dados so duplicados.

Depto. de Mercadorias

Depto. de Negcios
Internacionais

Depto. de Exportao

16

Captulo 1

No po o ace ar dados de vendas.

Princesa Ruruna

banco de dados

Eu po o ace ar dados de vendas.

Depto. de
Mercadorias

Depto. de Negcios
Internacionais

Depto. de Exportao

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

m?

banco de dados

ma?

Depto. de
Mercadorias

Internacionais

Depto. de Negcios

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

preciso estar preparado para falhas.

20

Captulo 1

cada registro contm campos do mesmo tipo.

Cdigo do Produto

Nome do Produto Melo Morango

Preo Unitrio 800 g 150 g 120 g 200 g 100 g 160 g 130 g 200 g

Comentrios com sementes

Registro

Ma Limo Pinho Caqui Pssego Kiwi

azedo com casca

ah, Entendi.

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

Ento, em seguida, vamos pensar sobre o cdigo do produto um pouco mais detalhadamente.
Hmmm... Registro... Campo... tanta coisa para decorar...

nome do produto

mel o m or a m a l i mo p i n h o c aq u i

aqui!

in Ca

28

Captulo 2

Alm disso, algumas vezes um campo tem um papel importante no banco de dados.

Papel importante?

Sim. Por exemplo,

Esse campo especial chamado de chave (key).

O cdigo do produto no arquivo que voc viu agora h pouco.

Esse campo tem um papel importante: identificar os dados.

chave primria

Bom, eu sei alguma coisa sobre tabelas.


fcil de entender se voc j lida com dados usando uma tabela.

Esse cdigo chamado de chave primria (primary key).

o d. Cpr

to de odu d.ro pc

Esse um dos mritos do modelo de dados relacional.

No sabia que existiam tantos termos.

Mesmo pessoas que no sabem muito sobre bancos de dados podem trabalhar com dados.

o que um banco de dados relacional?

35

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 Ma Limo
tabela de produto 1

Preo Unitrio 120 G 200 G


tabela de produto 2

Nome do Produto Pinho Caqui


tabela de produto 1

Preo Unitrio 100 G 350 G


tabela de produto 2

Ma Limo

Melo Morango

Pinho Caqui

Ma Limo

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 Melo Morango
tabela de produto 1

Preo Unitrio 800 G 150 G


tabela de produto 2

Ma Limo

Melo Morango

Pinho Caqui

o que um Banco de Dados relacional? 41

Em primeiro lugar, pensamos que seria mais fcil criar um banco de dados...

A Tica diz que o procedimento correto criar um modelo e analisar o gerenciamento de exportao atual baseando-se nele.
Por favor sente-se.

uma lio meio longa...

Bom, esto prontos? Usaremos um modelo de anlise chamado...

E de Entidade e R de Relacionamento.

Ko d

Obrigada.

Se consegussemos entender as condies reais do Reino de Kod...

Ento temos que estudar algo novo.

Modelo E-R!

Entidade e relacionamento...

E = de ida nt E

Nem eu.
Rela R = cion a me

nto

E-R...?

No conheo esses nomes...

52

Captulo 3

Esse ... um relatrio que fazemos quando exportamos frutas para um pas estrangeiro.
FluP

Este relatrio demonstra bem o estado atual das exportaes.

Sim, de fato! Ento, usamos os dados de todos os relatrios...

Para criar uma tabela no banco de dados.

Tabular!!

VUsh

Ainda no. Primeiro...

vamos...

Aqui est.
Cdigo Do Relatrio DatA
Cdigo Dest. de Exp. nome Dest. de Exp. CDIGO DO PRODUTO

Nome do produto Melo morango ma Limo Melo ma limo

PREO QuantiDADE Unitrio 800 g 150 g 120 g 200 g 800 g 120 g 200 g 1100 300 1700 500 2500 2000 700

1101

5/3

12

Reino de Minami Imprio Alfa Reino de Ritol Reino de Minami Reino de Ritol

101 102

1102 1103 1104

7/3 8/3 10/3

23 25 12

103 104 101 103 104

1105

12/3

25

Tabela criada a partir dos relatrios de vendas

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 Cdigo do Cliente Nome do Cliente Cdigo do Produto Nome do Produto Preo Unitrio Cdigo de Classificao do produto Nome de Classificao do Produto

Data

Quantidade

Passos para projetar um Banco de Dados


Voc aprendeu como projetar um banco de dados! No entanto, voc tem que fazer mais do que isso. preciso projetar uma estrutura de arquivos detalhada dentro do banco de dados e desenvolver mtodos para importar e exportar dados. De forma geral, pode-se dividir todo o projeto do banco de dados em trs partes: esquemas conceitual, interno e externo. O esquema conceitual refere-se a um mtodo que retrata o mundo real. Em outras palavras, uma forma de determinar a estrutura lgica de um banco de dados. O esquema conceitual realizado levando-se em considerao um entendimento do mundo real baseado no modelo E-R e normalizao de tabelas. O esquema interno refere-se ao banco de dados visto de dentro de um computador. Isso quer dizer que uma forma de determinar a estrutura fsica de um banco de dados. O esquema interno projetado aps a criao de um mtodo para fazer pesquisas no banco de dados rapidamente. O esquema externo refere-se a um banco de dados como ele visto pelos usurios ou aplicativos. O esquema externo projetado aps a criao de dados necessrios para os aplicativos.

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
Um modelo E-R usado para analisar entidades e relacionamentos. Relacionamentos entre entidades podem ser um-para-um, um-para-muitos e muitospara-muitos. 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

Aqui estou eu!

Oh, um novo lugar para estudar! A esto vocs!!


Fl ap

flip

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.

Para fazer isso, vamos usar SQL.

Sql??

Hi hi!

Parece difcil...

90

Captulo 4

No sabia que o preo mdio era assim to alto...

H muitas coisas sobre meu prprio pas que eu no sei.

A SQL tambm tem uma funo que totaliza os valores dos dados recuperados..

)oirati n u_ocerp(gva

5 ,71 3
Exato.

No timo?

Ento podemos obter outros dados alm da mdia?

Claro. Por exemplo...

A quantidade de itens, sua soma, mdia, valores mximos e mnimos, todos podem ser obtidos especificando uma funo de totalizao.

Funes de Totalizao em SQL

Funo
COUNT(*) COUNT(nome_coluna) COUNT(DISTINCT nome_coluna) SUM(nome_coluna) AVG(nome_coluna) MAX(nome_coluna) MIN(nome_coluna)

Descrio Resulta na quantidade de linhas Resulta na quantidade de itens que no forem nulos na coluna Resulta na quantidade de itens distintos na coluna Resulta na soma dos valores da coluna em todas as linhas Resulta na mdia dos valores da coluna por todas as linhas Resulta no valor mximo na coluna Resulta no valor mnimo na coluna

Assim...

Uau!

Vamos Aprender Sobre SQL!

99

Assim, voc pode recuperar dados de relatrio de vendas das tabelas, mesmo que elas estejam divididas.

cdigo do relatrio

Data 5/3 5/3 7/3 8/3 10/3 12/3 12/3

cdigo dest. nome dest. de cdigo do de Exp. produto Exp.

nome do produto Melo morango ma limo Melo ma limo

preo Unitrio

Quantidade

1101 1101 1102 1103 1104 1105 1105

12 12 23 25 12 25 25

Reino de Minami Reino de Minami Imprio Alfa Reino de Ritol Reino de Minami Reino de Ritol Reino de Ritol

101 102 103 104 101 103 104

800 g 150 g 120 g 200 g 800 g 120 g 200 g

1100 300 1700 500 2500 2000 700

Essa a mesma tabela original. Ns a recriamos!

Pode-se recuperar dados relativos a relatrios de vendas mesmo que se gerencie os produtos, destinos de exportaco e vendas independentemente.

Isso timo!!

Uau!

Agora deixem eu comear.

Clap, clap, clap

Um dia, o Andy e a Becky acessaram o banco de dados ao mesmo tempo.

banco de dados

acesso

Uhuuu!

No banco de dados, o Andy leu a tabela de produto, especificamente as mas.

30 mas Eu vejo 30 agora.

t.

Ele ento acrescentou 10 ao estoque escrevendo uma operao de banco de dados.

Vou adicionar 10.

Terei 40 ento.

Enquanto isso, a Becky tambm leu o nmero de mas, 30, e acrescentou 10.

30 mas
Eu vejo 30 agora.

tem 30 agora!

Isso est certo?

Mas depois dessa operao, o banco de dados mostra o nmero atual de mas como 40.

Vou adicionar 10.

Vou adicionar 10.

Terei 40 ento.

Terei 40 ento.

40 mas

128

Captulo 5

Nossa Tabela de Produtos.

Cdigo produto 101 102 103 104 201 202 301 302

nome produto Melo Morango Ma Limo Pinho Caqui Pssego Kiwi

preo Unitrio 10000 g 12500 g 8000 g 6000 g 9000 g 12400 g 5000 g 6000 g

O que tem de errado com ela?

Os preos. Os preos!

Os preos? Os valores na coluna de preo unitrio esto todos bagunados!

Iss o um q ca m e l u e ro o !!

Ah, no!!!

Como pode?!

O pessoal do Departamento de Mercadorias pode pesquisar, inserir, atualizar e excluir dados do produto. O pessoal do Departamento de Negcios Internacionais pode pesquisar e inserir dados do produto, mas no pode atualiz-los ou exclu-los. O pessoal do Departamento de Exportao pode pesquisar dados do produto, mas no pode inserir, atualizar ou excluir.

Banco de dados

Depto. de Mercadorias

Depto. de Negcios Internacionais

Depto. de Exportao

PESQUISAR INSERIR ATUALIZAR EXCLUIR

SIM SIM SIM SIM

PESQUISAR INSERIR ATUALIZAR EXCLUIR

SIM SIM NO NO

PESQUISAR INSERIR ATUALIZAR EXCLUIR

SIM NO NO NO

No vamos apenas restringir o nmero de usurios - vamos tambm configurar permisses para cada usurio que puder acessar o banco de dados.

Ah, sim... deixando isso de lado, o que eu queria dizer ...

Essa uma boa oportunidade para voc considerar casar comigo, e...

Ah, mas espere...!

Dessa forma, podemos evitar problemas e o banco de dados ainda pode ser compartilhado.

V UP

142

Captulo 5

Bancos de Dados e a web


Um sistema de banco de dados ligado web.

Por exemplo?

web?

Uau, eu estava querendo este livro.

No mundo todo, as pessoas podem comprar vrias coisas em pginas na web.

m Co
Alis, vou compr-lo.

pr

ad

o.

Chegou! Legal!

Isso parece to fcil!

Por exemplo, voc pode comprar qualquer livro que quiser...

Ento... voc no tem que fazer uma lista de ttulos e ir at uma livraria!

Eu apoio totalmente um sistema assim!

navegando numa pgina da web.

lista de compras do Rei

Maravilhoso!

Vamos ver, qual o prximo?

Os bancos de dados esto em todos os lugares!

177

Muitos servidores oferecem proteo extra contra falhas, tambm!

Ti-ca! Ti-ca!

Isso significa que o sistema do banco de dados como um todo no vai cair, mesmo se a falha ocorrer em alguns servidores no sistema.

no cho

Falha

Mas lembrem-se: necessrio certo cuidado para lidar com o seu banco de dados dessa forma.

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

<?xml version="1.0" ?>

<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>

Bancos de dados orientado a objeto


Um banco de dados relacional armazena dados em formato de texto em tabelas. No entanto, ele pode ser inadequado quando se lida com certos tipos de dados. a que entra um banco de dados orientado a objeto (BDOO). O mtodo orientado a objeto utiliza objetos - conjuntos de dados e instrues sobre como esses dados devem ser usados. Voc pode ocultar os dados e expor apenas as operaes sobre os dados para lidar com o objeto como um componente independente. Essa tcnica chamada de encapsulamento. Em um banco de dados orientado a objeto, cada objeto representado com um identificador. s vezes, um objeto tambm chamado de instncia. Em um banco de dados orientado, voc pode tambm gerenciar objetos compostos um objeto definido dentro de outro. Isso significa, por exemplo, que voc pode armazenar dados que consistem em uma imagem com texto como um nico objeto. O banco de dados orientado a objeto permite gerenciamento flexvel de dados complexos.

Ruruna Kod Banco de dados orientado a objeto Perfil reino de Kod Princesa

os bancos de dados esto em todos os lugares!

203

Das könnte Ihnen auch gefallen