Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUO
Introduo
Mini-Mundo
Banco
de
Dados
Programadores / Usurios
Sistema
de BD
SGBD
Definio
dos dados
Dados
armazenados
Introduo
e programador. Em outros casos de sistemas muito grandes uma equipe pode envolver
um grande nmero de pessoas.
Administrador de Bancos de Dados (ABD ou DBA Database Administrator):
a pessoa com a maior responsabilidade sobre o BD. responsvel pelas tarefas mais
importantes relacionadas aos BD, dentre outras, por autorizar o acesso ao BD das
demais pessoas, coordenar e monitorar a sua utilizao, controlar toda a parte da
segurana.
Projetista de Bancos de Dados: a pessoa responsvel pelo projeto de
construo e utilizao do BD, envolvendo as tarefas de definio de quais dados
devero ser construdos e como eles sero construdos. Pode ser uma pessoa ou um
grupo de pessoas, que ir interagir com outras classes de usurios, tanto os analistas e
programadores, como os chamados usurios finais do sistema.
Analistas de
Software, aquelas
desenvolvem as
necessidades. Os
implementar estas
os testando.
10
Introduo
11
2
MODELOS DE DADOS
Titulo
Idioma
Editora
Ano
001
Introduo ao...
Portugus
Campus
1999 01
102,50
128,00
375
002
Fundamentals...
Ingls
Prentice
2000 03
97,75
102,00
591
003
Teoria das...
Portugus
LTC
2002 02
162,20
195,50
785
...
...
...
...
...
NumEd PrCusto
...
...
PrVenda NPags
...
...
Modelos de Dados
13
14
(b)
PrVenda
NPags
PrCusto
Cod
NumEd
LIVROS
Titulo
Ano
Idioma
Editora
Modelos de Dados
15
USURIOS FINAIS
VISO
EXTERNA
NVEL
EXTERNO
VISO
EXTERNA
mapeamento
externo/conceitual
NVEL
CONCEITUAL
ESQUEMA CONCEITUAL
mapeamento
conceitual/interno
NVEL
INTERNO
ESQUEMA INTERNO
16
Modelos de Dados
17
Questo 2.3. Defina os seguintes termos: DDL, DML, DCL, esquema de dados,
estado do banco de dados.
3.
MODELAGEM DE DADOS UTILIZANDO
O MODELO
ENTIDADE/RELACIONAMENTO
Definio
Simbologia
Atributos
Totalidade
So
caractersticas
comuns
instncias que formam entidades.
19
Cdigo
Ttulo
Idioma
rua
nmero
bairro
20
O conceito de chave foi introduzido por Peter Chen em 1976, com o motivo de
identificar uma instncia, porm a chave deve ser vista de forma mais ampla, como uma
restrio de integridade. Para o conceito de chave deve-se entender que a instncia
nica.
O valor de um atributo que chave no pode se repetir dentro do conjunto de todas
as instncias da entidade, sendo assim, conhecido o valor da chave, consegue-se
identificar de maneira nica a instncia.
Uma chave composta formada pela combinao de vrios atributos. Um tipo de
entidade pode possuir uma chave simples, ou uma chave composta, ou vrias chaves
simples (distintas), ou vrias chaves compostas. A Figura 3.2 representa esta distino.
21
ALUNOS
ALUNOS
Matrcula
Matrcula
AnoSem
CPF
Nmero
(b)
Matrcula
AnoSem
Nmero
Matrcula
CPF
20031
001
001
15245689652
20031
002
002
24563589526
20031
003
003
50109502515
20032
001
004
48563556784
20032
002
005
32569852365
22
CURSA
CURSOS
E1
R1
E2
R1 = e1,e2
Grau 2
E1
R2
E2
R2 = e1,e2,e3
Grau 3
E3
23
de dois papis distintos. Neste caso, o relacionamento ocorre entre instnicas distintas de
uma mesma entidade. Por exemplo:
E1
papel p1
(supervisor)
papel p2
(supervisionado)
R3
1
COORDENA
PROFESSORES
CURSOS
ALUNOS
1
CURSAM
CURSOS
24
Exemplo 3: Tipo de relacionamento n:m neste caso est sendo especificado que
um mesmo professor pode lecionar em n cursos, e que um curso formado por m
professores.
n
m
LECIONAM
PROFESSORES
CURSOS
R
elao de participao especifica se a existncia da entidade depende dela estar
associada ou no a outra entidade. Pode ser chamada de obrigatria (total) ou opcional
(parcial).
A relao de participao parcial representada de forma simples, pois
corresponde a maioria dos casos, e a obrigatria representada por trao duplo, como
pode ser observado no exemplo abaixo: Neste caso est sendo especificado que todo
aluno tem que, obrigatoriamente estar cursando algum curso, porm pode haver algum
curso que no possua alunos inscritos.
n
ALUNOS
1
CURSAM
CURSOS
CPF
25
DEPENDENTES
POSSUEM
FUNCIONARIOS
NOME
CARGO
SALARIO
NOME
PARENT
IDADE
26
4
MODELAGEM DE DADOS UTILIZANDO O
MODELO RELACIONAL
ESTUDANTE
Tuplas
Atributos
Nome
RG
Telefone
Endereo
Idade
CodCurso
Sara Pereira
5.555.555
21
Joo Moura
9.999.999
20
Marcos da Silva
4.444.444
18
Andr Carvalho
2.222.222
21
Paula Almeida
6.666.666
22
28
29
Restries de chaves
Um conjunto de atributos SK de R, tal que, para duas tuplas quaisquer t1 e t2 de
r(R), t1[SK] t2[SK] (t1 e t2 identificam de maneira nica) chamado de superchave de R.
Em outras palavras, uma superchave um conjunto formado por atributos que identificam
de forma nica uma tupla.
Uma chave de R uma superchave com a propriedade adicional de que nenhum
de seus subconjuntos tambm seja uma superchave de R. Em outras palavras, chave o
conjunto mnimo de atributos para identificar de forma nica uma tupla numa tabela.
Em geral, um esquema de relao R pode ter mais de uma chave, cada uma
dessas chaves chamada de chave candidata. Dentre as chaves candidatas, uma delas
indicada como chave primria (aquela que ser escolhida para identificar unicamente
uma tupla), as demais constituem as chaves alternativas.
Para uma melhor compreenso destes conceitos, observe o exemplo a seguir:
Seja uma relao contendo os dados de estudantes, contendo seu nmero
de matrcula, seu RG e seu CPF, dentre outros.
Sabe-se que estes trs atributos so nicos para cada estudante, sendo
assim os trs poderiam identificar unicamente um determinado estudante,
portanto poderiam ser considerados superchaves.
Alm disso, o conjunto formado por dois dos trs atributos, ou mesmo o
conjunto formado pelos trs atributos, tambm no se repete e neste caso
tambm seriam superchaves.
Porm, neste ltimo caso de um conjunto dos atributos, este no poderia ser
considerado chave, pois no o mnimo. Uma chave neste exemplo poderia
ser qualquer um dos trs atributos isolado.
Supondo-se que a matrcula seja escolhida dentre as trs possibilidades,
para identificar de forma nica um estudante, este atributo a chave
primria. Os demais, que no foram escolhidos, so chaves alternativas.
Restries de integridade de entidade
Nenhum componente de uma chave primria pode ser nulo. O valor nulo um
valor especial, que indica que determinada tupla no possui determinado atributo.
diferente do valor zero, por exemplo.
Restries de integridade referencial (RIR)
A restrio de integridade referencial envolve duas relaes distintas, ou dois
atributos distintos de uma relao. Por exemplo, supondo um relacionamento entre duas
entidades Estudantes e Cursos, onde estudantes esto ligados a um curso, podemos
supor que haja na relao dos estudantes um atributo contendo o cdigo do seu curso. A
restrio de integridade referencial define que este atributo cdigo do curso deve
corresponder ao valor da chave primria que identifica o curso realizado pelo estudante,
ou caso no esteja ligado a um curso, este valor seja nulo. No possvel este atributo
30
conter algum valor diferente dos que esto na chave primria da relao dos cursos.
Formalmente, seja FK um conjunto de atributos de um esquema de relao R1
definido sobre os mesmos domnios dos atributos da chave primria PK de um outro
esquema de relao R2. Ento, para qualquer tupla t1 de R1 uma das seguintes situaes
ocorre:
t1[FK] = t2[PK], onde t2 alguma tupla de R2, ou
t1[FK] nulo.
A restrio de integridade referencial entre R1 e R2 pode ser expressa pela notao
R1[FK] R2[FK], onde PK a chave primria de R2 e FK a chave estrangeira (foreign)
de R1.
A operao de atualizao de dados, que esto envolvidos numa restrio de
integridade referencial (RIR), uma tarefa que envolve certa cautela, uma vez que esta
restrio deve ser mantida aps a atualizao. Por exemplo, no caso dos Estudantes e
Cursos, um curso que possusse alunos inscritos no poderia ser simplesmente
removido da relao de cursos, sem que alguma atitude fosse tomada no atributo que se
refere ao seu cdigo, dentro da relao dos estudantes.
Associada a uma RIR: R1[x] R2[y] possvel definir uma opo de atualizao
de valores da chave primria. So trs as opes:
31
COND
( nome da relao )
Exemplos:
(ESTUDANTE) mostra como resultado todos os estudantes que
possuem 21 anos.
a)
IDADE=21
b)
CODCURSO=C
cdigo C.
c)
COND1
COND2
(R)) =
COND2
COND1
(R))
ATRIBUTOS
( nome da relao )
Exemplos:
a) NOME, IDADE (ESTUDANTE) mostra somente os atributos contendo os nomes e
as idades de todos os estudantes.
b) CODCURSO (ESTUDANTE) mostra somente os cdigos dos cursos de todos os
32
estudantes.
Combinando as duas operaes:
projeo
seleo
ATRIBUTOS
COND
( nome da relao ))
NOME
RESULT2
NOME (PROFESSOR)
(ESTUD_A)
33
CODCURSO=A(ESTUDANTE)
DADOS_EST
NOME, CODCURSO
(ESTUD_A)
CODCURSO=CODIGO
(EST_CURSOS)
CODCURSO=A(ESTUDANTE)
DADOS_EST
NOME, CODCURSO
EST_CURSO_A DADOS_EST
RESULT
(ESTUD_A)
CODCURSO=CODIGO
CURSOS
A condio de juno da forma COND1 AND COND2 ... COND3 , onde cada
COND i da forma A B, sendo A um atributo de R, B um atributo de S e um dos
operandos de comparao {=, <, , >, , }. Esta forma geral chamada de juno teta.
Uma operao de juno que envolva apenas condio de igualdade chamada
de equi-juno. Uma juno natural uma equi-juno na qual o segundo atributo de
cada condio de igualdade eliminado da relao resultante. Em geral, uma juno
natural define atributos de mesmo nome.
Notao: R*S ou R*A,BS (forma geral), onde A o atributo de R, B o atributo de S
de mesmo domnio de A; que ser eliminado (A=B subentendido).
34
35
Questo 4.8
Sobre o BD relacional da questo 3.6, realize as seguintes operaes da lgebra
relacional:
a) Liste todos os ttulos de livros adotados pela UFLA em 1998.
b) Liste os nomes das instituies do estado de MG.
c) Liste todos os livros escritos por C.J. Date.
d) Liste o nome e o telefone do contato das editoras que possuem livros em ingls.
e) Liste os preos dos livros de idioma portugus da rea de Bancos de Dados.
5.
MAPEAMENTO ER / RELACIONAL
Mapeamento ER / Relacional
37
MODELO RELACIONAL
Tipo de entidade
Esquema de relao
Atributo composto
Conjunto de atributos
Atributo multivalorado
Chave
38
6
NORMALIZAO
40
Normalizao
41
DISCIPLINA
PERODO
Olinda
Bancos de Dados
Olinda
Sistemas de Informao
Wilian
Arquitetura de Computadores
Wilian
Sistemas Digitais II
Antnio Maria
Bancos de Dados
No posso dizer:
DISCIPLINA
PROFESSOR
DISCIPLINA
PERODO
PROFESSOR
DISCIPLINA
2FN
3FN
42
Exemplos:
1. ESTUDANTES = {MATRCULA + NOME + ENDEREO + CODCURSO} e ENDEREO um
atributo composto, ENDEREO = {RUA + NUMERO + BAIRRO + CIDADE + UF}.
Normalizao
43
Definio da 3FN: Um esquema de relao est na 3FN se: estiver na 2FN e, alm
disso, nenhum atributo que no pertena a alguma das suas chaves for transitivamente
dependente da sua chave primria. Em outras palavras, para que uma relao esteja na
3FN preciso que esteja na 2FN e todo atributo, que no pertena a alguma chave for
no dependente de algum outro atributo, que tambm no pertena a alguma chave.
Seja o exemplo de uma relao que represente os dados referentes s msicas, da
seguinte forma: MSICA = {CDIGO + TTULO + GNERO + PAS_ORIGEM}, supondo
que neste exemplo, o PAS_ORIGEM refere-se ao GNERO musical e no a msica,
sendo assim, apesar de estar na 2FN, a relao no est na 3FN, pois existe
dependncia entre GNERO e PAS_ORIGEM. Com a normalizando ficaria:
MS_1 = {CDIGO + TTULO + GNERO}
MS_2 = {GNERO + PAS_ORIGEM}
O Quadro 6.1 apresenta um resumo das Formas Normais baseadas em chaves
primrias e suas correspondentes normalizaes.
Forma Normal
Teste
Soluo (Normalizao)
Primeira (1FN)
A relao no deve ter qualquer atributo Forme novas relaes para cada
no-atmico nem relaes agrupadas.
atributo
no-atmico
ou
relao
aninhada.
Segunda (2FN)
a chave
atributos,
deve ser
de uma
Terceira (3FN)
Quadro 6.1: Resumo das Formas Normais baseadas em chaves primrias e suas normalizaes.
44
Normalizao
45
7
LINGUAGEM DE CONSULTA SQL
VIEW
INDEX
47
Um ndice uma estrutura interna utilizada pelo SGBD para acessar os dados
dentro de uma tabela, de forma direta. Na prtica, sempre deve-se criar um ndice
para o atributo que chave primria e para os demais atributos que, em determinada
aplicao, sero mais acessados.
O comando DROP TABLE remove permanentemente uma tabela, viso ou
ndice de um banco de dados, removendo, assim, todos os seus dados. Sua sintaxe
a seguinte:
DROP TABLE nome da tabela ;
O comando ALTER TABLE altera a estrutura de uma tabela do banco de dados.
Sua sintaxe ir depender basicamente da alterao a ser realizada, por exemplo, para
incluir uma nova coluna na tabela, seria a seguinte:
ALTER TABLE nome da tabela ADD definio da coluna ;
48
49
8
UM EXEMPLO
52
8.1
Modelo Entidade-Relacionamento
Um Exemplo
53
Cdigo
Srie
Sala
NumAlunos
TURMAS
Ano
1
pertencem
Descrio
Cdigo
Matrcula
DISCIPLINAS
cursa
DataNasc
Pai
Responsveis
ESTUDANTES
Me
CargaHora
Nome
Rua
RG
Compl
Telefones
Endereo
Bairro
Cidade
UF
CEP
leciona
coordena
1
coordenador
Salrio
Cargo
CPF
FUNCIONRIOS
Nome
depende
de
DEPENDENTES
DataAdim
RG
Rua
N
professores
Compl
Endereo
Bairro
Cidade
Nome
Telefones
Parentesco
DataNasc
UF
CEP
54
coordena
DEPENDENTES
NumAlunos
Rua
PROFESSOR_DISCIPLINA
FUNCIONRIOS
DEPENDENTES
Pai
TURMAS
CPFProfessor
SerieCargo
Codigo
Sala
CPF
Nome RG CodDisciplina
Rua Compl Bairro CPF
Cidade Nome
UF CEP Parentesco
DataNasc DataAdim
Salario CPFCoord
DISCIPLINAS
Codigo
8.3.
COMANDOS
Descricao CargaHora
SQL
TEL_ESTUDANTE
Matricula
Telefone
TEL_FUNCIONRIO
CPF
Telefone
Um Exemplo
55
Matricula
CHAR(8)
NOT NULL,
Nome
VARCHAR(120)
NOT NULL,
RG
CHAR(15)
NOT NULL,
Rua
VARCHAR(50),
Compl
VARCHAR(20),
Bairro
VARCHAR(30),
Cidade
VARCHAR(30),
UF
CHAR(2),
CEP
VARCHAR(10),
DataNasc
DATE
NOT NULL,
Pai
VARCHAR(120)
NOT NULL,
Mae
VARCHAR(120)
NOT NULL,
Serie
CHAR(2)
NOT NULL,
Turma
CHAR(1)
NOT NULL,
PRIMARY KEY (Matricula),
UNIQUE (RG),
FOREIGN KEY (Serie, Turma) REFERENCES Turmas (Serie, Codigo));
56
Um Exemplo
57
9
SISTEMAS GERENCIADORES DE
BANCOS DE DADOS
9.1
Processamento de Consultas
60
61
62
pode acontecer, se ocorrer uma falha durante sua execuo, esta tem que ser
desfeita. Caso no fosse desta forma, o SGBD no conseguiria garantir a integridade
dos dados no BD.
A Figura 9.2 ilustra o diagrama de transio de estados para execuo de
transaes. Uma vez iniciada (BEGIN TRNSACTION) a transao estar ativa e
poder realizar tarefas de leitura e/ou escrita dos dados (READ / WRITE). Ao chegar
no final de todas as operaes da transao (END TRANSACTION), ela estar
parcialmente compromissada, somente depois de compromissada (COMMIT), uma
transao estar terminada com sucesso. Estando ativa ou parcialmente
compromissada, a transao pode sofrer algum tipo de falha, o que a levar ao estado
ABORT e/ou ROLLBACK, conseqentemente sendo terminada sem sucesso.
BEGIN
TRANSACTION
END
TRANSACTION
ATIVO
PARCIALMENTE
COMPROMISSADO
ABORT
COMMIT
COMPROMISSADO
ABORT /
ROLLBACK
FALHA
TERMINADO
A
B
B
C
D
Figura 9.3: Execuo simultnea de transaes.
tempo
63
T1
T2
T3
T4
T5
T6
tempo
64
T2 = read_item (X);
X := X N;
X := X + M;
write_item (X);
write_item (X);
read_item (Y);
Y := Y + N;
write_item(Y);
Dividindo estas transaes e as executando alternadamente, para que ambas
possam ser executadas ao mesmo tempo, podemos chegar nos seguintes problemas:
Problema de atualizao perdida ocorre quando transaes acessam o mesmo
item do BD, com suas operaes entrelaadas de uma forma que faz o valor do item
de BD ser incorreto.
T1
read_item (X);
X := X N;
tempo
write_item (X);
read_item (Y);
Y := Y + N;
write_item (Y);
T2
read_item (X);
X := X + M;
write_item (X);
65
T1
tempo
T2
read_item (X);
X := X N;
write_item (X);
read_item (X);
X := X + M;
write_item (X);
read_item (Y);
Quando uma transao submetida para execuo num SGBD, o sistema
responsvel por garantir que:
a) ou todos as operaes na transao sero completadas com sucesso e
seu resultado ser gravado permanentemente no BD;
b) ou a transao no ter efeito algum no BD ou em outra transao.
O SGBD no pode permitir que algumas operaes de uma transao T sejam
aplicadas ao BD, enquanto outras operaes de T no so. Isto pode acontecer se
ocorrer uma falha durante a execuo da transao.
1) Tipos de falhas que podem acontecer um sistema de BD:
2) Falha no computador (system crash): um erro de hardware ou software,
que pode causar a perda do contedo na memria.
3) Erro de sistema ou de transao: alguma operao na transao pode
causar uma falha, tal como, sobrecarga de valor inteiro, ou diviso por
zero.
4) Erros locais ou deteco de condies de exceo na transao: durante
a execuo, algumas condies podem ocorrer que necessitem do
cancelamento da transao, por exemplo, um dado para uma operao
pode no ser encontrado.
5) Obrigao de controle de concorrncia: o mtodo de controle de
concorrncia pode decidir abortar a transao, para ser recomeada
depois, por diversos motivos, como por exemplo, deadlock.
6) Falha em disco: alguns blocos do disco podem perder seus dados por
causa de um defeito no cabeote de leitura e escrita.
7) Problemas fsicos e sinistros: uma lista infinita de problemas que podem
acontecer, tais como falta de energia, fogo, sabotagem, erros de entrada
de dados, etc.
Um conceito importante no processamento de transaes o de
escalonamento. Um escalonamento (schedule) S de n transaes T1, T2, ..., Tn
66
uma ordenao das operaes dessas transaes, tal que, para cada transao Ti, as
operaes de Ti em S devem aparecer na mesma ordem em que elas aparecem em
Ti. Ou, escalonamento quando se pega um conjunto de transaes e define-se a
ordem em que elas vo ser executadas, para prover concorrncia no BD.
No escalonamento somente as operaes de read (r) e write (w) so
importantes. Ento um escalonamento S, para T1 e T2, sendo as mesmas transaes
apresentadas anteriormente, pode ser representado na forma:
Sa: r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1; ou
Sb: r1(X); w1(X); r2(X); w2(X); c2; r1(Y); a1;
Um escalonamento S serial se, para toda transao T participante de S,
todas as operaes de T so executadas consecutivamente em S, caso contrrio S
no serial. Um escalonamento S serializvel se for equivalente a um
escalonamento serial S.
Exemplos:
(a) escalonamento da transao T1 seguida pela transao T2
T1
T2
read_item (X);
X := X N;
tempo
write_item (X);
read_item (Y);
Y := Y + N;
write_item (Y);
read_item (X);
X := X + M;
write_item (X);
T1
T2
read_item (X);
X := X + M;
tempo
write_item (X);
read_item (X);
X := X N;
write_item (X);
read_item (Y);
Y := Y + N;
write_item (Y);
67
tempo
X := X + M;
write_item (X);
read_item (Y);
write_item (X);
Y := Y + N;
write_item (Y);
write_item (X);
read_item (X);
X := X + M;
write_item (X);
read_item (Y);
Y := Y + N;
write_item (Y);
68
A Figura 9.5 apresenta os grafos de precedncia para os exemplos (a), (b), (c) e
(d) anteriores:
X
(a)
(b)
T1
T2
X
(c)
T2
T1
T2
(d)
X
T1
T1
T2
X
X
Figura 9.5: Grafos de precedncia.
69
Bloqueios binrios
Nesta tcnica, somente dois estados so permitidos: bloqueado ou
desbloqueado, e duas operaes devem ser includas nas transaes: lock_item(X) e
unlock_item(X).
1) Quando o bloqueio binrio usado a transao deve obedecer s
seguintes regras:
2) Uma transao T deve executar uma operao de lock_item(X) antes de
qualquer operao de read_item(X) ou write_item(X) ser executada em T.
3) Uma transao T deve executar uma operao de unlock_item(X) depois
de qualquer operao de read_item(X) ou write_item(X) ter sido executada
completamente em T.
4) Uma transao T no vai executar a operao de lock_item(X) se o item X
j estiver bloqueado.
5) Uma transao T no vai executar a operao de unlock_item(X) se o item
X j estiver desbloqueado.
70
71
72
T2:
read_item(B)
write_item(B)
read_item(D)
write_item(D)
T3:
read_item(C)
write_item(B)
read_item(A)
write_item(A)
Supondo que o ocorreu uma falha e o log estava sendo escrito da seguinte
forma:
A
B
C
D
15
40
20
30
[start_transaction, T3]
[read_item, T3, C]
12
[write_item, T3, B 15, 12]
[start_transaction, T2]
[read_item, T2, B]
[write_item, T2, B, 12, 18]
18
[start_transaction, T1]
[read_item, T1, A]
[read_item, T1, D]
[write_item, T1, D, 20, 25]
25
[end_transaction, T1]
[read_item, T2, D]
[write_item, T2, D, 25, 26]
26
[end_transaction, T2]
[read_item, T3, A]
falha no sistema (system crash)
Observaes:
A transao T3 tem que ser desfeita (rollback), porque ela no atingiu o
ponto de comprometimento (end_transaction).
A transao T2 tem que ser desfeita (rollback), porque ela l o valor do
item B escrito por T3.
As outras operaes de write no log sero somente refeitas (REDO).
A Figura 9.6 representa as operaes no log, antes da falha:
73
write(B)
T3
begin
read(A)
read(B)
write(B)
T2
begin
read(D) write(D)
read(A)
read(D) write(D)
T1
begin
tempo
falha no sistema
(system crash)
74
U5
U2
U3
75
DBA
A2
A1
s (employee, department) wgo
A3
A4
s (employee)
A1:
A3:
DBA
all
A2
A1
s (department) wgo
A3
A4
s (employee),
u (employee.salary)
76
U1:
U1:
U2:
U3:
U4:
U3:
U3:
U1:
U6:
10
BANCOS DE DADOS ORIENTADOSA
OBJETOS E OBJETO - RELACIONAIS
78
Objetos
O2, Starburst (IBM)
Conhecimento
Query (SQL)
No Query
SGBD
Relacional
SGBD
Objeto-Relacional
Sistemas de
Arquivo
SGBD
Orientado a Objeto
Nvel de
Consulta
79
80
Tecnologia em desenvolvimento;
Sistemas ainda apresentam problemas
de funcionalidade e desempenho.
O.R.
Sistemas
de arquivos
SGBDs tradicionais
(Rede, hierrquico)
70
SGBDs relacionais
(SQL)
80
SGBDs OO / OR
(ODMG, SQL3)
90
Tempo
(em anos)
81
LIVRO
Ttulo
Autores
Editora
AnoPubl
Tpicos
cataloga, remove,
retira, devolve,
bloqueia, libera
Tipo do objeto
Caractersticas do tipo do objeto Livro
82
Encapsulamento:
Na definio de um objeto duas partes so distintas: a interface e a
implementao:
Interface (visvel): define a estrutura e um conjunto de operaes para a
manipulao do objeto.
Implementao
implementadas.
(no
visvel):
define
como
as
operaes
so
i) reutilizao de software;
ii) facilidade de modelagem; e
iii) representao natural e concisa.
Mtodos e mensagens:
Para um objeto se comunicar com outro, ele usa uma mensagem. como se
fosse uma chamada a uma rotina. Mensagem a especificao de uma operao a
ser realizada sobre um objeto, ou seja, a invocao de um procedimento (mtodo).
S possvel alterar o estado de um objeto atravs do envio de mensagens.
Um mtodo uma funo que implementa a resposta quando uma mensagem
enviada para um objeto. Ou seja, mtodo a implementao de um objeto. Um
83
11
BANCOS DE DADOS DISTRIBUDOS
86
87
88
89
90
91
Replicao de Dados
92
duas etapas.
1a) Um elemento escolhido como coordenador manda um aviso de PREPARAR
COMMIT a todos os servidores envolvidos na transao.
2a) Aps ter recebido a resposta de todos, pode: se todas as respostas foram
positivas, enviar aos participantes a ordem de REALIZAR COMMIT; ou ordenar que
cancelem a transao.
Assim, ou todos faro o commit ou nenhum far, garantindo integridade.
93
94
11.8.1
Projeto de Segmentao
Exemplo: CLIENTES
SEGMENTO A
SEGMENTO B
SEGMENTO C
Segmentao Vertical
Uma tabela pode ser segmentada verticalmente, com alguns atributos
armazenados num local e outros armazenadas em outros locais, a depender das
necessidades das aplicaes de cada local.
Vamos considerar uma tabela EMPREGADOS. Se assumirmos que os atributos
SLARIO e HORA-EXTRA so utilizados somente por aplicaes administrativas,
ento o par SLARIO, HORA-EXTRA uma segmentao vertical apropriada.
95
EMPREGADOS
NOME-EMP
ID-EMP
SALRIO
HORA-EXTRA
Segmento A
Segmento B
11.8.2
96
97
confiabilidade fundamental.
Hbrida
A estratgia de distribuio de dados hbrida combina as tcnicas utilizadas nas
estratgias de distribuio de dados particionadas e replicada. Ela tem por objetivo
obter algumas vantagens de cada uma delas, mas, conseqentemente, resulta em
algumas complexidades.
A estratgia de dados hbrida possui como principais caractersticas:
possibilidade de dividir o BD em segmentos lgicos (do mesmo modo que feito na
estratgia particionada) e de que os segmentos sejam replicados em diversos locais
(assim como na estratgia replicada). O SGBDD deve sincronizar o nmero de
segmentos armazenados associado com cada segmento lgico, o que aumenta o grau
de complexidade exigido do SGBDD.
Flexibilidade a maior vantagem desta estratgia, pois apresenta uma gama
muito maior de possibilidade de distribuio dos dados do que as outras estratgias j
estudadas. Com esta estratgia, o projetista pode elaborar um projeto de distribuio
que se adeqe mais naturalmente s necessidades da organizao. Como existe
uma gama maior de possibilidades, cabe ao projetista fazer um estudo aprofundado
das aplicaes e dados da empresa e conseguir extrair, ao mximo, as vantagens que
a estratgia hbrida pode proporcionar.
O Quadro 11.1 apresenta um comparativo das estratgias de distribuio de
dados, com o objetivo de facilitar a seleo do projetista no momento da escolha da
estratgia de distribuio de dados que, por sua vez, deve ser a mais conveniente.
Este quadro comparativo apresenta, basicamente, as vantagens e desvantagens de
cada uma delas.
Estratgias de
Distribuio
Centralizada
Replicada
Particionada
Hbrida
Vantagens
Desvantagens
Reduo de sobrecarga;
Alta disponibilidade dos dados;
Alto desempenho;
Alta confiabilidade.
98
11.8.4
99
Nesta seo prope-se uma metodologia para o projeto de BDD, com o intuito
de estabelecer uma seqncia lgica que possa auxiliar o projetista no momento da
distribuio dos dados.
Caractersticas das aplicaes
de fundamental importncia fazermos um estudo detalhado das
caractersticas das aplicaes antes de iniciarmos o projeto da distribuio, pois tais
caractersticas possuem grande influncia na trajetria do projeto da distribuio.
Entretanto, esse estudo necessrio apenas para as aplicaes mais importantes,
isto , aquelas que so executadas freqentemente ou cujas performances so
crticas. As caractersticas das aplicaes, que devem ser levadas em considerao
so as seguintes:
O local onde cada aplicao se origina (tambm chamado de local de
origem da aplicao);
A freqncia de ativao da aplicao, isto , o nmero de ativaes
solicitadas por unidade de tempo. No caso geral de aplicaes que podem
ter sada em vrios locais, precisamos conhecer a freqncia de ativao
de cada aplicao em cada local.
Qualificar essas caractersticas no uma tarefa fcil, por isso o projeto de
BDD possui um significado muito amplo e subjetivo.
No nvel da distribuio determinamos a segmentao do BD e a alocao dos
segmentos nos BD locais. Para que estas determinaes sejam alcanadas com
sucesso, devemos ter uma ateno especial no momento da elaborao do projeto de
BDD, pois cada detalhe de vital importncia para a performance do BDD. Dessa
maneira, se algum erro for cometido nesta fase e no for descoberto no incio do
projeto, as conseqncias podero ser muito graves, resultando em perda de
desempenho e de capital investido.
Classificando Aplicaes Crticas e Importantes
Aps conhecermos melhor as principais caractersticas das aplicaes
importantes do BD, o prximo passo classific-las em aplicaes crticas ou no, a
fim de podermos estabelecer prioridades.
Uma atividade crtica se caracteriza por ser crucial para o bom funcionamento
da organizao. Normalmente ela possui uma alta freqncia de ativao e necessita
de um baixo tempo de resposta. Uma aplicao pode ser importante no sentido de
possuir uma alta freqncia de ativao, todavia pode no ser classificada como uma
atividade crtica, por no necessitar de um baixo tempo de resposta. Tambm dizemos
que uma aplicao no crtica quando, apesar dela necessitar de um baixo tempo de
resposta, a sua freqncia de ativao baixa.
Quando as atividades apresentarem um grau de prioridade 0, no precisaremos
nos aprofundar no estudo de suas caractersticas. Provavelmente as tabelas por elas
100
101
A especificao dos itens uma tarefa que deve ser realizada com bastante
ateno, pois uma especificao incorreta pode acarretar ao projeto, caractersticas
no desejveis, comprometendo at, em alguns casos, todo o projeto do BD. A seguir
apresentaremos alguns possveis problemas e conseqncias decorrentes de uma
especificao incorreta dos itens.
Conseqncias:
Especificaes difceis de serem compreendidas;
Sistemas no confiveis;
Projetos terminados fora do prazo;
Oramento alto;
Elaborao de um projeto deficiente, pois foi elaborado de acordo com
uma especificao incompleta;
Escolha de estratgia(s) de distribuio de dados que no aproveita todo o
potencial do BD;
Redundncia de atividades e dados;
Vasta gama de itens desnecessrios;
Complexidade desnecessria do projeto.
11.10
102
103
Referncia Bibliogrfica:
DELOBEL, C., LCLUSE, C. & RICHARD, P. Databases: From Relational to ObjectOriented System. International Thomson Computer Press, 1995.