11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
401
Arquiteturas para SGBDs
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 402
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 402
Caracterização de SGBDs
Quanto ao Modelo de Dados:
relacional
orientado-a-objeto
semi-estruturado
outros
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 403
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 403
Caracterização de SGBDs
Quanto à Arquitetura:
centralizada
cliente-servidor
distribuída
paralela
estendível
outras
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 404
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 404
Caracterização de SGBDs
Quanto às características dos dados
ou da aplicação:
dados clássicos
texto/documentos
multimídia
geográfico
outros
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 405
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 405
Caracterização de SGBDs
Características das Arquiteturas:
Distribuição do Controle (Autonomia Local):
A0. sistemas totalmente integrados
A1. sistemas semi-autônomos
A2. sistemas autônomos
Distribuição dos Dados:
D0. sistemas centralizados
D1. sistemas cliente-servidor
D2. sistemas distribuídos (peer-to-peer systems)
Heterogeneidade:
H0. sistemas homogêneos
H1. sistemas heterogêneos
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 406
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 406
Caracterização de SGBDs
Exemplos de Arquiteturas:
(A0,H0,D1)
Sistemas locais integrados, homogêneos, com
arquitetura cliente-servidor (SGBD Cliente-Servidor)
(A2,H1,D1)
Sistemas locais autônomos, heterogêneos, com
arquitetura cliente-servidor
(A0,H0,D2)
Sistemas locais integrados, homogêneos, com
arquitetura distribuída (SGBDD Homogêneo)
(A2,D2,H2)
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 407
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 407
SGBDs Centralizados
Descrição do Banco de Dados:
nível externo:
especificação da organização
conceitual do BD, vista por um
grupo de usuários
nível conceitual:
especificação da organização
conceitual do BD, ou seja, o quê
o BD armazena
nível físico ou interno:
especificação das estruturas de
armazenamento do BD, ou seja,
como o BD está armazenado
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 408 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes
SGBDs Centralizados -
Arquitetura
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 409
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 409
SGBDs Cliente-Servidor
Servidor de Objetos:
servidor transfere objetos para a object cache area do
cliente
cliente é responsável por:
executar os métodos comandados pela aplicação
obter do servidor os objetos necessários
gerenciar os objetos armazenados na object cache area
local, incluindo a criação, atualização e remoção de objetos
servidor é responsável pelo:
processamento de consultas, incluindo a recolocação dos
objetos atualizados no banco
gerência de transações, incluindo a sincronização da object
cache area dos cliente
servidor pode fazer pre-fetch de objetos e enviá-los ao
cliente
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 410
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 410
SGBDs Cliente-Servidor
Servidor de Páginas:
servidor transfere páginas para a buffer pool
area do cliente
cliente é responsável por:
executar os métodos comandados pela aplicação
implementar toda a semântica associada a objetos
servidor é responsável pelo:
armazenamento físico dos objetos apenas
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 411
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 411
SGBDs Cliente-Servidor
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 412
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 412
SGBDs Distribuídos e
Homogêneos
BD Distribuído:
banco de dados armazenado em vários
servidores, conectados por uma rede de
comunicação de dados
SGBD Distribuído:
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 413
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 413
SGBDs Distribuídos e
Homogêneos
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 414
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 414
SGBDs Distribuídos e
Homogêneos
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 415
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 415
Multi-SGBDs Heterogêneos
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 416
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 416
SGBDs Paralelos
Combinam técnicas de gerência de dados e
processamento paralelo para aumentar
desempenho e confiabilidade:
particionamento do BD em discos controlados por
multiprocessadores resulta em aumento da taxa de
transferência de dados da memória secundária para
memória principal (I/O bandwidth)
paralelização do processamento interno de consultas
resulta em diminuição do tempo de resposta
paralelização do processamento de transações resulta
em aumento da capacidade do sistema (throughput)
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 417
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 417
SGBDs Paralelos
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 418
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 418
SGBDs e a WEB
WIIS - Web information integration system:
sistema para processar consultas sobre dados
extraídos de vários Web sites
WIIS X Multi SGBDD:
WIIS compartilham com Multi SGBDDs os
mesmos problemas
WIIS devem ainda lidar com:
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 419
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 419
SGBDs e a WEB
Enfoques para construção de WIIS:
Enfoque de Data Warehouse:
dados de várias fontes são extraídos e
armazenados em uma warehouse
dados são atualizados periodicamente
interessante quando:
os dados são pouco voláteis
processamento de consultas deve ser
eficiente
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 420
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 420
SGBDs e a WEB
Enfoques para construção de WIIS:
Multi-SGBD:
dados são mantidos nos Web sites
consultas são decompostas e enviadas aos várias
Web sites envolvidas
processamento de consultas é mais sofisticado
interessante quando:
o número de Web sites é muito grande;
os dados são voláteis
há pouco controle sobre os Web sites
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 421
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 421
SGBDs e a WEB
Componentes de um WIIS:
Wrapper:
programa construído para traduzir os dados de um Web site
para uma forma que pode ser processada pelo WIIS
Web source:
combinação de um Wrapper com o Web site associado
Mediated Schema:
conjunto de visões sobre os dados armazenados nos Web
sites
Source Descriptions:
conjunto de metadados e regras de reescrita indicando ao
WIIS como reformular as consultas sobre o mediated
schema para consultas sobre as Web sources
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 422
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 422
SGBDs para Estações Móveis
Características:
topologia:
um backbone fixo com estações de controle
também fixas
conjunto de células nas quais transitam as
estações móveis
localização dos dados:
dados residem tanto nas estações fixas
quanto nas móveis ("walkstations")
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 423
ECO022 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 423
SGBDs para Estações Móveis
Manutenção do Diretório:
Problema:
como localizar as estações móveis que contêm os dados desejados
Alternativas:
armazenar a localização da estação móvel apenas nas sua estação
de base
distribuir a informação sobre a localização das estações móveis
pre-anunciar o roteiro de cada estação móvel
Caching:
Problema:
limite da bateria da estação móvel impõe restrições sobre o grau de
caching
Alternativas:
mover consultas para estações fixas, transferindo apenas resultados
adotar filtros semânticos mais sofisticados para reduzir o tamanho
do cache
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
424 424
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 425
Banco de dados na Internet
Sistemas de Banco de dados com
base na web são comuns.
Em um sistema com base na web, o
protocolo de comunicações usado é o
protocolo de transferência de
hipertexto (http).
425 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 426
Banco de dados na Internet
O software servidor sendo executado
em um servidor web espera por uma
requisição de um usuário.
Quando uma requisição de usuário é
enviada, o software responde a ela e
retorna uma página correspondente.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 426
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 427
Banco de dados na Internet
Quando um banco de dados é usado em
conjunto com uma página web, um servidor
de banco de dados é adicionado ao
sistema.
Esse sistema pode ser configurado em três
camadas e é chamado de sistema
cliente/servidor de três camadas.
Consiste de uma camada de apresentação,
uma de lógica e uma de dados.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 427 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 428
Banco de dados na Internet
A camada de apresentação recebe entradas
de usuário, como condições de consulta,
que precisam ser passadas para o banco de
dados.
Processa resultados de consultas recebidas
pelo banco de dados para que eles possam
ser exibidos.
Um browser funciona como ferramenta de
apresentação para o usuário.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 428
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 429
Banco de dados na Internet
A camada de lógica efetua o processamento dos
dados.
Essa camada é onde os comandos SQL são
compostos.
Os processos executados são escritos em uma ou
mais linguagens de programação.
Dependendo dos conteúdos e da carga dos
processos, diversos servidores, tal como um
servidor de aplicações e um servidor web, podem
ser usados para lidar com o processamento.
429 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 430
Banco de dados na Internet
A camada de dados processa dados
em um servidor de banco de dados.
Os resultados de consultas são
retornados do banco de dados em
resposta a consultas SQL.
430 ECO031 - Banco de Dados - Aulas Teóricas -
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 431
Uso de Procedimentos
Armazenados
Em um sistema com base na web,
muito tráfego na rede pode ser um
problema.
Pode-se manter lógica de
programação dentro do próprio
servidor de banco de dados como
procedimento armazenado (stored
procedure).
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 431 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 432
Uso de Procedimentos
Armazenados
Procedimentos armazenados nos servidores de BD
ajudam a reduzir a carga na rede, porque eliminam
a necessidade de transferências frequentes de
consultas SQL.
Armazenar procedimentos torna mais fácil
desenvolver aplicativos, uma vez que processos
padronizados podem ser encapsulados em
procedimentos também torna mais fácil
desenvolver aplicativos, uma vez que processos
padronizados podem ser encapsulados em
procedimentos fáceis de usar
.
432 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 433
Banco de Dados Distribuído
Em um sistema com base na web, o
processamento é distribuído entre um
servidor de banco de dados, um servidor de
Internet e um programa navegador, cada
um responsável por diferentes tarefas.
Este tipo de sistema distribuído permite
flexibilidade e diminui a capacidade de
processamento necessária em cada
servidor.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 434
Banco de Dados Distribuído
Um servidor de BD por si só pode ser
distribuído entre diversos servidores.
Servidores de BD distribuídos podem ser
tratado como se fosse um único BD.
Se o BDD parece ser um servidor único, o
usuário não precisa se preocupar com a
localização dos dados ou com
transferências.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 435
Banco de Dados Distribuído –
Distribuição Horizontal
Utiliza diversos servidores de BD em
colaboração igualitária.
Cada servidor de BD pode usar dados dos
outros e, cada um está disponível para
todos os demais.
É um sistema projetado para ser resistente
a falhas, uma vez que problemas num
servidor não afetarão a operação do banco
como um todo.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 436
Banco de Dados Distribuído –
Distribuição Vertical
Atribui diferentes funções para diferentes
servidores de BD.
Um deles funciona como servidor principal e
executa um papel central, enquanto outros
estão encarregados de tarefas de
processamento enviadas a eles.
Facilita o gerenciamento do servidor
principal, embora possa receber uma
grande carga.
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 437
Particionamento de Dados
Em um BDD, os dados ficam
espalhados entre diversos servidores
de armazenamento.
Deve-se considerar cuidadosamente
como dividir os dados.
Eles podem ser particionados com:
Particionamento Horizontal
Particionamento Vertical
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 438
Particionamento Horizontal
É uma divisão tendo linhas como unidade.
Linhas resultantes dessa separação são
distribuídas por vários servidores.
Este tipo de particionamento é muito
utilizado quando dados que podem ser
ordenados em grupos relacionados,
frequentemente acessados ao mesmo
tempo, são armazenados em um mesmo
servidor.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 439
Particionamento Vertical
É o que divide dados utilizando
colunas como unidade.
Colunas resultantes dessa divisão são
distribuídas entre servidores.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 440
Evitando Inconsistências
BD em servidores diferentes num sistema
distribuído podem ser configurados para
agir como se fossem um único banco no
ponto de vista dos usuários.
Para conseguir isso, vários passos têm que
ser seguidos para lidar com o fato de que os
dados estão espalhados entre diversos
servidores.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 441
Evitando Inconsistências
Primeiro, sempre que ocorrer a
efetivação, os dados em todos os
servidores precisam ser atualizados
de forma consistente.
Em um sistema de BDD, o
método-padrão de efetivação pode fazer com
que um dos servidores seja atualizado
e outros não.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 442
Evitando Inconsistências
Isso é uma violação da propriedade de
atomicidade das transações, uma vez
que elas estariam sendo encerradas
não por uma efetivação (commit) nem
por uma reversão (rollback).
Isso também faria com que o sistema
de BD como um todo se tornasse
inconsistente.
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 443
Evitando Inconsistências
Uma efetivação em duas fases é
adotada em um sistema de BDD.
Cria uma única operação de
efetivação a partir de duas ações
diversas.
Uma operação de efetivação em duas
fases envolve um coordenador e
outros participantes.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 444
Evitando Inconsistências
Na primeira fase o coordenador
pergunta aos participantes se a
operação de efetivação é possível.
Os participantes enviam a mensagem
OK se for o caso.
Esse passo é conhecido como
preparação.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 445
Evitando Inconsistências
Na segunda fase, o coordenador envia
instruções para uma efetivação, e todos os
participantes procedem de acordo.
Se qualquer ponto falhar em assegurar o
procedimento de efetivação nessa operação
em duas fases, todos os participantes
recebem comandos para reversão.
É por isso que os BD em todos os
servidores permanecem consistentes entre
si.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 446
Replicação em Banco de
Dados
Alguns BDD contêm um BD em
duplicidade, ou réplica, que reduz a
carga da rede.
O BD primário é chamado de BD
principal, e a cópia é chamada de
réplica.
Há diversos tipos de Replicação.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 447
Replicação em Banco de
Dados
Somente leitura (read-only)
Uma réplica somente para leitura é
criada e baixada do BD principal no
servidor principal.
Para alterar os dados, os usuários devem
conectar-se ao servidor principal.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 448
Replicação em Banco de
Dados
Replicação ativa em todos os
servidores
Nesse método, o mesmo BD principal é
compartilhado por todos os servidores.
Atualizações em qualquer um dos
servidores são feitas em todos os outros.
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 449
Outras Aplicações de Banco
de Dados
XML
A linguagem extensível de marcação (XML) é
cada vez mais popular como um método de
armazenamento de dados.
O XML representa dados delimitando-os com
tags.
Já que essas tags podem trazer informações
sobre os dados que contêm, essa linguagem é
útil para armazenamento e recuperação de
dados.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 450
Outras Aplicações de Banco
de Dados
XML
O XML é útil porque sua sintaxe estritamente
estruturada facilita processos programados.
O XML aparece em arquivos de texto (fáceis de
editar) e pode se comunicar com outros
sistemas.
O XML é às vezes usado como um método de
representação de dados no lugar de um BD.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 451
Outras Aplicações de Banco
de Dados
XML
Sua ideia é baseada em marcações (tags)
Extremamente flexível
Dela derivam-se diversas linguagens (XHTML,
MathML, SMIL....)
Fácil de entender
Muito simples e legível
Pode ser utilizada por diversas aplicações
Pode ser formal e estruturado
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 452
Outras Aplicações de Banco
de Dados
XML
Separa do usuário a interface de apresentação
dos dados estruturados
Pode armazenar valores e elementos
Diferenças HTML e XML:
Html define como o documento deve ser
apresentado ao usuário
XML define dados que podem ser utilizados pela
aplicação
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 453
Outras Aplicações de Banco
de Dados
XML
Definido em um formato de árvore
Os elementos ficam divididos em raiz e filhos
Todas as tags abertas precisam ser fechadas
<> </>
Case sensitive
Espaços são considerados
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 454
Outras Aplicações de Banco
de Dados
XML
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 455
Outras Aplicações de Banco
de Dados
XML – Exemplo
<?xml version=“1.0” ?>
<produtos>
<fruta>
<codigo_produto>101</codigo_produto>
<nome_produto>Melão</nome_produto>
<preco_unitario>800</preco_unitario>
</fruta>
</produtos>
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 456
Outras Aplicações de Banco
de Dados
XML – Exemplo
<?xml version="1.0"?>
<aviso>
<para>Janice data="01/04/2000"</para>
<de>Jefferson</de>
<cabecalho>Lembre-se</cabecalho>
<corpo>Amanha voce tem prova de matematica</corpo>
</aviso>
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 457
Outras Aplicações de Banco
de Dados
XML – Exemplo
Usando um atributo para o sexo:
<pessoa sexo="feminino">
<nome>Ana</nome>
<sobrenome>Rachel</sobrenome>
</pessoa>
Usando um elemento para o sexo:
<pessoa>
<sexo>feminino</sexo>
<nome>Ana</nome>
<sobrenome>Rachel</sobrenome>
</pessoa>
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 458
Outras Aplicações de Banco
de Dados
XML
Linguagem para definir a estrutura do
documento XML
Verifica se são dados válidos
Verifica se esta bem formatado
Segundo a W3C, o XML não deve continuar a
ser lido a menos que passe pelo DTD
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 459
Outras Aplicações de Banco
de Dados
XML
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
XML
Parser
XML
Document
Parsed XML
“Not well-formed”
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 460
Outras Aplicações de Banco
de Dados
XML - DTD
Declarações <!____________>
Elementos <!ELEMENT ________>
Atributos <!ATTLIST ________>
Entidades <!ENTITY ________>
Novos tipos <!NOTATION ________>
Ex:
<!ELEMENT aviso(para, de, cabecalho, corpo)>
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 461
Outras Aplicações de Banco
de Dados
XML – DTD exemplo
<!DOCTYPE recipecollection [
...
<!ELEMENT recipe
(title,author?,date?,description,ingredients,preparation,related)>
<!ATTLIST recipe id ID
#REQUIRED
category (breakfast|lunch|dinner|dessert|unknown)
#IMPLIED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author ANY>
… ]>
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 462
Outras Aplicações de Banco
de Dados
XML – DTD exemplo
<!DOCTYPE curso [
<!ELEMENT curso (modulo+,glossario)>
<!ELEMENT modulo (pagina+)>
<!ELEMENT glossario (define*)>
<!ELEMENT pagina (texto?, imagem?, botao*)>
<!ELEMENT define (#PCDATA)>
<!ELEMENT botao (#PCDATA)>
<!ELEMENT texto (#PCDATA)>
<!ATTLIST pagina id CDATA #IMPLIED
titulo CDATA #IMPLIED>
<!ATTLIST botao tipo CDATA #IMPLIED>
<!ATTLIST define termo CDATA #IMPLIED>]>
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 463
Outras Aplicações de Banco
de Dados
XML – DTD exemplo – Documento que satisfaz a DTD
<curso>
<glossario>
<define termo="GUI">
Grafical Users Interface - Interface gráfico com o utilizador.
</define>
</glossario>
<modulo>
<pagina id="unix1" titulo="Interpretador de comandos">
<botao tipo="Objectivos">
Introdução à shell de UNIX e aos seus comandos básicos
</botao>
<texto>
No <ref>interpretador de comandos</ref> o utilizador pode executar linhas de
comando. BL´A-BL´A...
</texto>
</pagina>
</modulo>
</curso>
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 464
Outras Aplicações de Banco
de Dados
XML
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
Validating
XML
Parser
XML
Document
Parsed XML
“Not valid”
DTD or XSD
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 465
Outras Aplicações de Banco
de Dados
XML – Tecnologias Associadas
Formatar: CSS, XSLT
Transformar, visualizar: XSL
Ligar/incluir: XLINK, XPOINTER
Processar, navegar: XPATH, SAX, DOM
Definir: XML Schema, RELaX
Pesquisar: XQUERY, XQL
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 466
Outras Aplicações de Banco
de Dados
Banco de Dados Orientado a Objeto
Um BD relacional armazena dados em
formato de texto em tabelas.
Ele pode ser inadequado quando se lida
com certos tipos de dados.
O método orientado a objetos utiliza
objetos – conjunto de dados e instruções
sobre como esses dados devem ser
usados.
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 467
Outras Aplicações de Banco
de Dados
Banco de Dados Orientado a Objetos
É possível ocultar os dados e expor apenas as
operações sobre os dados para lidar com o
objeto como um componente independente.
Essa técnica é chamada de encapsulamento.
Em um BD orientado a objeto, cada objeto é
representado com um identificador.
Um objeto também pode ser chamado de
instância.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 468
Outras Aplicações de Banco
de Dados
Banco de Dados Orientado a Objetos
Pode-se gerenciar objetos compostos –
um objeto definido dentro de outro.
Pode-se armazenar dados que consistem
em uma imagem com texto como um
único objeto.
O BD permite gerenciamento flexível de
dados complexos.
ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes
11/19/10 ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 469
Outras aplicações de Banco
de Dados
Banco de Dados Orientado a Objetos
Vários conceitos podem facilitar o
desenvolvimento do BD, tais como, a
herança e outros conceitos da orientação
a objetos.
ECO031 - Banco de Dados - Aulas Teóricas -
Fabiana Costa Guedes 11/19/10 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 470