Beruflich Dokumente
Kultur Dokumente
2012
BANCO DE DADOS
Introduo ao estudo de bancos de dados
Este e-book visa elucidar conceitos iniciais para o entendimento dos
Bancos de Dados, desde o aspecto conceitual, passando pela modelagem
de dados e estruturao de um projeto fsico.
Ricardo R. Barcelar
http://www.ricardobarcelar.com.br
ricardobarcelar@email.com.br
APRESENTAO
APRESENTAO
Ricardo R. Barcelar
Parte
1
HISTRIA DOS BANCOS DE DADOS
esquema. Os usurios precisavam conhecer a estrutura fsica do BD para poder realizar uma
consulta.
Um dos primeiros sistemas de banco de dados foi o IMS (Information Management
System) da IBM lanado no final da dcada de 60.
Mesmo a IBM sendo a companhia que inventou o conceito original e o padro SQL, eles
no produziram
am o primeiro sistema comercial de banco de dados. O feito foi realizado pela
Honeywell Information Systems Inc.,
Inc., cujo sistema foi lanado em junho de 1976. O sistema era
baseado em muitos princpios do sistema que a IBM concebeu, mas foi modelado e
implementado fora da IBM.
b) AT & T
Semelhante a Sprint, os Estados Unidos mais antiga empresa de telecomunicaes AT
& T mantm um dos maiores bancos de dados. Arquitetonicamente falando, a AT & T a maior
base de dados a nata da cultura, uma vez que ostenta ttulos, incluindo o maior volume de
dados em uma nica base (312 terabytes), o segundo maior nmero de linhas em uma nica
base (1,9 trilho), que inclui a AT & Ts extensa chamada de registros.
Nmeros: 323 terabytes de informao 1,9 trilhes telefonemas em registros.
c) World Data Centre for Climate
Acondicionado em um supercomputador de 35 milhes de euros usado para
investigao extensa sobre o clima, capaz de dar a resposta para o aquecimento global. O
World Data Centre for Climate (WDCC) como o nome indica, o WDCC uma entidade que faz
pesquisas climticas no mundo todo. Essa uma das reas que mais exigem processamento e
capacidade de armazenamento de dados. O WDCC possui 220 terabytes de dados facilmente
acessveis na Internet, bem como seus 110 terabytes (ou 24.500 DVDs) usados para
simulao de dados, e seis PETABYTES de dados internos da empresa.
Nmeros: 6 PETABYTES igual aproximadamente 1.343.296 DVDs.
O que podemos concluir com isso:
- Trivializao do uso da tecnologia de banco de dados?
- Proliferao de produtores e consumidores de dados?
- Aplicaes armazenando da ordem de petabytes ou mais?
1.6 E O FUTURO?
O uso de BD mveis so os novos produtos que vem surgindo para comercializao em
vrios segmentos. Processos de transaes distribudas comeam a se tornar uma regra em
vrias reas de planejamento de negcios.
Fica a indagao para a quantidade de dados existente no mundo. sabido que
necessrio um novo modelo de armazenamento dados sob pena da escassez de meios para
guarda de dados. Sobretudo, v-se o surgimento de novos modelos de armazenamento de
dados que no futuro podem tornar obsoletos os atuais arqutipos de banco de dados.
Seremos alm do mais fica a pergunta se seremos capazes de consultar um Banco de
Dados de registros mdicos/genticos de um futuro empregado de nossa empresa?
Parte
2
SISTEMAS DE GERNCIA DE BANCO DE DADOS
aquele no qual os dados esto organizados de cima para baixo ou estrutura de rvore
invertida. Por exemplo, os dados sobre um projeto para uma empresa podem seguir este tipo
de modelo. Este mtodo de ligao semelhante relao entre pais e filhos: a criana no
existir sem os pais. o que mais bem se adapta a situaes nas quais as relaes lgicas
entre os dados podem ser representadas com a abordagem (um-para-muitos).
Projet
Departamento
Empregado 1
Empregado 2
Departament
Empregado
Empregad
Projeto 1
Departamento
A
Projeto 2
Departamento
B
10
11
12
13
1 pequeno trecho de programa de computador, armazenado em um SGBD, que pode ser chamado freqentemente
por um programa principal.
14
15
16
A figura 9, logo abaixo apresenta outra viso, desta vez da arquitetura interna de um
SGBD centralizado.
17
18
MODELAGEM DE DADOS
Parte
3
MODELAGEM DE DADOS
Define-se como modelo de dados um conjunto de conceitos que podem ser utilizados
para descrever a estrutura lgica e fsica de um banco de dados.
Contudo, uma etapa no descrita, mas de suma importncia para qualquer etapa da
modelagem de dados a anlise de requisitos que representa uma etapa onde sero
coletadas as informaes de uma abstrao do mundo real o minimundo.
19
MODELAGEM DE DADOS
MODELAGEM DE DADOS
21
MODELAGEM DE DADOS
22
MODELAGEM DE DADOS
Figura 12 Entidade/Relacionamento
3.2.4.1 Entidades
Entidades so objetoss que existem no mundo real com uma identificao distinta e com
um significado prprio. Tambm so descritas como objetos da realidade
ade na qual se deseja
manter informaes no banco de dados. Normalmente representado por um substantivo na
descrio do negcio.
23
MODELAGEM DE DADOS
Figura 14 - Entidades
NOTAO:
iagrama Entidade-Relacionamento
Entidade
uma entidade representada atravs de
Em um Diagrama
retngulo contendo o nome da entidade, como no exemplo abaixo:
3.2.4.2 Atributos
So informaes que qualificam uma entidade e descrevem seus elementos ou
caractersticas. Quanto transpostos para o modelo
modelo fsico so chamados de colunas ou campos.
Um atributo uma caracterstica, logo no contm um grupo de informaes.
importante utilizar sempre uma viso espacial de dados, a fim de enxergar o todo e
no uma nica ocorrncia. Existem diversos tipos de
de atributo, dentre eles:
- Atributos simples
- Compostos
- Multivalorados
- Especiais
24
MODELAGEM DE DADOS
Figura 16 - Atributo
Normalmente existem atributos que tem funes especiais em uma entidade. Dessas
algumas
mas servem como identificadores, a saber:
- Chave primria: o atributo ou grupamento de atributos cujo valor identifica
unicamente uma entidade dentre todas as outras. Deve ter contedo reduzido e valor constante
no tempo. Pode ser natural ou artificial.
- Chave candidata: o atributo ou grupamento de atributos que tem a propriedade de
identificao nica. Pode vir a ser a chave primria.
- Chave estrangeira: quando um atributo de uma entidade a chave primria de
outra entidade com a qual ela se relaciona.
rela
- Chave composta: formada pelo grupamento de mais de um atributo.
NOTAO:
25
MODELAGEM DE DADOS
Figura 18 - Tuplas
3.2.4.4 Relacionamentos
o fato ou acontecimento que liga dois objetos existentes no mundo real, ou seja, o
fato que efetua a juno de duas ou mais tabelas.
NOTAO:
Vrias so as possibilidades
possibilidade de relacionamentos,
s, como sero vistos a frente.
frente Um
relacionamento caracterizado por um verbo, como: Pessoas moram em Apartamentos.
26
MODELAGEM DE DADOS
- Relacionamento um-para-um:
um
cada elemento de uma entidade relaciona-se
relaciona
com um
e somente um elemento de outra entidade.
- Relacionamento um-para-muitos:
um
cada elemento de uma entidade relaciona-se
relaciona
com
muitos elementos de outra entidade. o mais comum no mundo real.
- Relacionamento muitos-para-muitos:
muitos
caracteriza-se
se pelo relacionamento possuir
dados que so inerentes ao fato e no s entidades.
27
MODELAGEM DE DADOS
28
MODELAGEM DE DADOS
b) Quanto a natureza
Indica se as ocorrncias de uma entidade participam de forma Opcional ou
Compulsria.
29
MODELAGEM DE DADOS
- Compulsria
- Opcional
NOTAO:
3.4.4.6. Auto-Relacionamento
Relacionamento
Cada
ada elemento de uma entidade relaciona-se
relaciona se com um ou mais elementos da mesma
entidade, ou seja, demonstra o relacionamento de ocorrncias de uma entidade com outras
ocorrncias da mesma entidade. So definidos papeis de cada lado do relacionamento.
Exemplos: Pea, Pessoa, Funcionrio, etc.
Figura 30 - Auto-relacionamento
30
MODELAGEM DE DADOS
Os Relacionamentos
cionamentos ternrios devem ser utilizados com muito cuidado,
cuidado pois muitas
vezes induzem a criao de bancos de dados no normalizados.. Como regra geral deve-se
deve
criar um relacionamento ternrio apenas quando no for possvel representar a regra de
negcio desejada
esejada em um ou mais relacionamentos binrios.
Neste exemplo fica cllara a situao de modelagem chamada entidade fraca, onde a
chave primria da entidade fraca (neste caso, a entidade Exemplar) formada pela chave
primria da entidade forte (no caso, a entidade Obra), mais algum atributo que diferencie seus
registros (como o nmero do exemplar).
Nota-se assim que a entidade fraca estar sempre carregando o relacionamento com
sua entidade forte, sugerindo sempre uma leitura como um exemplar de uma determinada
obra, neste caso.
31
MODELAGEM DE DADOS
Os conceitos de conjuntos
conj
de entidades fortes e fracas esto relacionados s
dependncias de existncia introduzidas anteriormente. Um membro
membro de um conjunto de
entidade forte por definio uma entidade dominante, enquanto um membro
me
de um conjunto
de entidade fraca uma entidade
dade subordinada.
Embora
a um conjunto de entidades fracas no tenha uma chave primria, necessria
uma forma de distino entre todas essas entidades no conjunto de entidades que dependa de
uma entidade forte particular. O discriminador (ou chave parcial)
parc
de um conjunto de entidade
fraca um conjunto de atributos que permite que esta distino seja feita,
feita por exemplo, o
discriminadorr do conjunto de entidades fracas transao o atributo nmero-transao,
nmero
uma
vez que para cada conta um nmero de transao univocamente identifica uma nica
transao.
A chave primria de
e um conjunto de entidades fracas formada pela chave primria do
conjunto de entidades fortes
forte do qual ele dependente de existncia (ou dependncia
existencial), mais seu discriminador. No caso do conjunto de entidades transao, sua chave
primria {nmero-conta,
conta, nmero-transao},
nmero
}, onde nmero conta identifica a entidade
dominante de uma transao e nmero-transao
nmero transao distinguem entidades de transao dentro da
mesma conta.
As entidades fracas
as so representadas por um retngulo duplicado. O conjunto de
relaes que identificam as entidades
e
fracas so representadass por losngulos duplicados. Os
atributos que constituem a chave parcial (ou discriminadores) so sublinhados de forma
tracejada.
NOTAO:
3.4.4.8. Especializao/Generalizao
A generalizao trata-se
trata
de uma abstrao na qual um conjunto de entidades
semelhantes, possivelmente
ssivelmente com alguns atributos comuns e outros diferentes e com a mesma
chave primria, vistos como uma nica entidade.
A especializao possui o mesmo conceito. A diferena est na origem das entidades.
NOTAO:
32
MODELAGEM DE DADOS
Nas figuras a seguir podemos identificar com mais facilidade a diferena entre
especializao e generalizao. Assim, na figura 28 observa-se
obs
se que a anlise da
representao parte do geral para o especfico. Neste caso, secretria, engenheiro e motorista
possuem especificaes prprias, contudo todos eles so funcionrio. Simplesmente foram
especializados como funcionrios.
Figura 36 Generalizao
33
MODELAGEM DE DADOS
Figura 37 - Especializao
34
Parte
4
REGRAS DO MODELO CONCEITUAL
35
36
37
uma empresa) como atributo (categoria funcional como atributo da entidade EMPREGADO) ou
atravs de uma especializao (cada categoria funcional corresponde a uma especializao de
entidade empregado).
Uma especializao deve ser usada quando se sabe que as classes especializadas de
entidades possuem propriedades (atributos, relacionamentos, generalizaes, especializaes)
particulares. Assim, no caso do exemplo acima, faz sentido especializar a entidade empregado
de acordo com a categoria funcional, no caso de as classes particulares possurem atributos ou
relacionamentos prprios.
Ainda no exemplo dos empregados, o sexo do empregado mais bem modelado como
atributo de empregado, caso no existam propriedades particulares de homens e mulheres a
modelar na realidade considerada.
38
39
40
41
ABORDAGEM RELACIONAL
Parte
5
ABORDAGEM RELACIONAL
42
ABORDAGEM RELACIONAL
Assim sendo, podemos concluir que um modelo lgico para o Banco de Dados acima
deve definir quais as tabelas que o banco contm e, para cada tabela, quais os nomes das
colunas.
Essa estrutura tambm pode ser representada da seguinte forma:
TipoDeProduto(CodTipoProd,DescrTipoProd)
Produto(CodProd,DescrProd,PrecoProd,CodTipoProd)
CodTipoProd referencia TipoDeProduto
5.1.1 Tabela
Uma tabela um conjunto no ordenado de linhas (tuplas, na terminologia acadmica).
Cada linha composta por uma srie de campos (valor de atributo, na terminologia
acadmica). Cada campo identificado por nome de campo (nome de atributo, na terminologia
acadmica). O conjunto de campos das linhas de uma tabela que possuem o mesmo nome
formam uma coluna.
Figura 51 - Tabela
5.1.2 Chaves
O conceito bsico para estabelecer relaes entre linhas de tabelas de um banco de
dados relacional o da chave. Em um banco de dados relacional, h ao menos dois tipos de
chaves a considerar: a chave primria e a chave estrangeira.
a) Chave Primria: uma coluna ou uma combinao de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela.
43
ABORDAGEM RELACIONAL
A existncia de uma chave estrangeira impe restries que devem ser garantidas em
diversas situaes de alterao do banco de dados:
- Quando da incluso de uma linha na tabela que contm a chave estrangeira, deve ser
garantido que o valor da chave estrangeira aparea na coluna da chave primria referenciada.
No exemplo acima, isso significa que um novo empregado deve atuar em um departamento j
existente no banco de dados.
- Quando da alterao do valor da chave estrangeira deve ser garantido que o novo
valor de uma chave estrangeira aparea na coluna da chave primria referenciada.
- Quando da excluso de uma linha da tabela que contm a chave primria referenciada
pela chave estrangeira deve ser garantido que na coluna chave estrangeira no aparea o
valor da chave primria que est sendo excluda. No exemplo acima, isso significa que um
departamento no pode ser excludo, caso nele ainda existirem empregados.
44
ABORDAGEM RELACIONAL
As restries dos tipos acima especificados devem ser garantidas automaticamente por
um SGBD relacional.
45
ABORDAGEM RELACIONAL
46
Parte
6
TRANSFORMAO ENTRE MODELOS
t aqui foram vistas duas formas de modelagem de dados: a Abordagem EntidadeRelacionamento e a Abordagem Relacional. Estas abordagens propem modelar os
dados em diferentes nveis de abstrao. A Abordagem Entidade-Relacionamento
voltada modelagem de dados de forma independente do SGBD considerado.
adequada para construo do modelo conceitual. J a Abordagem Relacional modela os dados
em nvel de SGBD relacional. Um modelo neste nvel de abstrao chamado de Modelo
Lgico.
A figura abaixo d uma viso geral dos processos de transformao entre modelos.
47
de acessos a disco, j que estes consomem o maior tempo na execuo de uma instruo de
banco de dados.
- Obter um banco de dados que simplifique o desenvolvimento e a manuteno de
aplicaes.
A fim de alcanar estes objetivos, as regras de traduo foram definidas tendo por base,
entre outros, os seguintes princpios:
- Evitar junes
- Diminuir o nmero de Chaves Primrias
- Evitar campos opcionais (campos null)
48
Observa-se que para uma relao N:N, h a necessidade de se criar uma nova tabela
que conter as chaves estrangeiras de Engenheiro e de Projeto, podendo, neste caso, conter
outros atributos como o caso do atributo funo.
Alm desses casos existem outros onde h a necessidade da criao de uma nova
tabela, contudo depender da anlise realizada sobre o problema. Para isso, conveniente
conhecer as regras expressas no quadro abaixo:
49
50
NORMALIZAO
Parte
7
NORMALIZAO
Ainda dentro do Modelo Lgico de dados importante saber que a criao de um banco
de dados no advm somente da anlise de requisitos,
requisitos, podendo se formar a partir de uma
coleo de dados armazenados de forma organizada, porm no informatizado. Assim sendo,
importante para o analista ou DBA saber aproveitar esta organizao e construir modelo de
dados baseado no que j existe.
Dentro deste novo conceito de modelagem dos dados importante rever nas sees
anteriores os conceitos de independncia de dados e de consistncia de dados. Neste ltimo,
destaca-se
se o fato da consistncia de dados poder ser obtida de diversas formas, a saber:
s
- Pelo Sistema Gerenciador de Banco de Dados;
Dados
- Pelos aplicativos; e
- Pela prpria construo do sistema.
51
NORMALIZAO
Exemplos:
RG
Nmero_Projeto
{ Nome_Projeto, Localizao }
{ RG_Empregado, Nmero_Projeto }
Horas
52
NORMALIZAO
Matrcula
Nome
Endereo
85001
Pedro
Av. D1, 25
85001
Pedro
Av. D1, 25
85001
Pedro
Av. D1, 25
86005
Ana
Av. C-4, 35
...
...
...
...
...
...
...
...
Disciplina
Descrio
Instrutor
CP302
Banco de Dados
Nestor
CP303
Comunicaes
Ana
CP304
Eng. Software
Jorge
CP302
Banco de Dados
Nestor
...
...
...
...
...
Instrutor
Sala
Nestor
102
Ana
500
Jorge
102
Nestor
1024
7.2 NORMALIZAO
O processo de normalizao pode ser visto como o processo no qual so eliminados
esquemas de relaes (tabelas) no satisfatrias, decompondo-as, atravs da separao de
seus atributos em esquemas de relaes menos complexas, mas que satisfaam as
propriedades desejadas.
O processo de normalizao como foi proposto inicialmente por Codd. Esse processo
conduz um esquema de relao atravs de uma bateria de testes para certificar se o mesmo
53
NORMALIZAO
NORMALIZAO
- Tem por objetivo corrigir registros em que, para a chave primria, ocorrem "grupos de
repetio", ou seja, atributos que possam assumir mltiplos valores.
Regra:
Se um depsito de dados apresentar grupos de repetio, desmembr-lo, criando
depsitos menores e sem grupo de repetio, ou separar tabelas aninhadas.
Exemplo:
55
NORMALIZAO
56
NORMALIZAO
57
Parte
8
ESTRATGIAS DE PROJETO DE BANCO DE DADOS
Projetar um banco de dados envolve basicamente duas metodologias principais: TopDown e Bottom-Up. A primeira, parte da representao de mais alto nvel de abstrao para a
de mais baixo nvel de abstrao, e a segunda parte da representao de mais baixo nvel de
abstrao para a mais alta.
Levantamento de requisitos
Projeto Conceitual
Projeto lgico
Projeto fsico ou implementao
58
LEVANTAMENTO ITEMIZADO
a) Servidor:
- Possui uma identificao nica na faculdade;
- Est lotado em um departamento;
- Exerce uma funo no departamento.
59
O Resultado um esquema fsico ou script SQL pronto para ser aplicado no Sistema
Gerenciador de Banco de Dados.
60
61
8.2.3 Normalizao
a decomposio sistemtica da tabela no normalizada em vrias tabelas relacionais.
um processo baseado na aplicao de regras (formas normais).
O objetivo a eliminao de redundncia no armazenamento e organizao dos dados
em entidades lgicas.
62
LINGUAGEM DE INTERROGAO
Parte
9
LINGUAGEM DE INTERROGAO
Aspecto importante a ressaltar sobre a lgebra relacional que ela uma rea da
Matemtica que inspirou o modelo relacional.
63
LINGUAGEM DE INTERROGAO
9.2 CONCEITOS
- Relao: representada por uma tabela de duas dimenses (linhas e colunas);
- Tupla: corresponde a uma linha da relao;
- Atributo: corresponde s colunas da relao;
- Chave primria: conjunto de atributos que identificam univocamente cada tupla da
relao;
- Chave estrangeira: atributo de uma relao que chave primria de outra relao.
- Operadores Tradicionais:
Unio (union):
Interseo:
difference): Diferena (set-difference):
Produto Cartesiano (cartesian product): x
- Operadores Relacionais:
Restrio/Seleo (select):
Projeo (project):
Juno Theta:
. Juno Natural:
Diviso:
A Seleo e Projeo so operaes UNRIAS.
64
LINGUAGEM DE INTERROGAO
As outras trs operaes (Produto Cartesiano, Unio e Diferena) operam, cada uma,
sobre um par de relaes.
As operaes da lgebra Relacional sempre operam sobre relaes e devolvem como
resultado uma relao.
Interseco
Diferena
Produto Cartesiano
Projeo
Juno
Diviso
65
LINGUAGEM DE INTERROGAO
9.2.2.3. SIMBOLOGIA
9.2.2.4. EXEMPLIFICAO
a. Unio - R S
A unio de duas relaes A e B o conjunto de todas as tuplas pertencentes a relao
A ou pertencentes a relao B.
Exemplo:
A = conjunto de tuplas de forncedores de Joinville
B = conjunto de tuplas de fornecedores que fornecem P1
C = A unio B
66
LINGUAGEM DE INTERROGAO
#F
F1
F2
F4
b. Interseco - R S
A interseco de duas relaes A e B o conjunto de todas as tuplas pertencentes a
relao A e pertencentes a relao B.
Exemplo:
A = conjunto de tuplas de fornecedores de Joinville
B = conjunto de tuplas de fornecedores que fornecem P1
C = A interseco B
67
LINGUAGEM DE INTERROGAO
#F
F1
F1
F4
F4
#P
P3
P5
P3
P5
e. Seleo - F (R)
a operao usada para construir um subconjunto horizontal de uma relao, cujas
tuplas satisfaam uma determinada condio.
Exemplo:
C = SELEO(fornecedor, (cidade = Joinville))
Cidade=Joinville (Fornecedor)
#F Nome Condio Cidade
F1 Pedro
20 Joinville
F4 Carlos
20 Joinville
f. Projeo - i1, i2, ..., im(R)
a operao usada para construir um subconjunto vertical de uma relao, cujas tuplas
satisfaam uma determinada condio.
Exemplo:
C = PROJEO(fornecedor, (#F, denominao, cidade))
Denominao
Pedro
Joo
Marcos
Carlos
Cidade
Joinville
Florianpolis
Florianpolis
Joinville
g. Juno - R S
De duas relaes R1 e R2, que possuem um atributo em comum D, o subconjunto do
produto cartesiano das duas relaes, cujos valores dos elementos do atributo comum sejam
iguais nas duas relaes.
Na relao resultante elimina-se a repetio da coluna D.
Exemplo:
C = JUNO(fornecedor, pedido(#F))
68
LINGUAGEM DE INTERROGAO
Fornecedor Pedido
#F
F1
F1
F1
F1
F1
F1
F2
h. Diviso - R / S
Seja A uma relao binria com atributos x e y e B uma relao unria com atributo z,
com y e z definidos sobre o mesmo domnio. Definimos a operao diviso, como sendo o
conjunto dos elementos x com os pares (x,y) pertencentes a A para todos os valores y
pertencentes a B.
Exemplo:
C = DIVISO(A, B ((#P))
69
LINGUAGEM DE INTERROGAO
70
LINGUAGEM DE INTERROGAO
71