Bancos de Dados não Convencionais

Propaganda
Bancos de Dados não
Convencionais
Conteúdo
1. Introdução
– Integração de BDs com outras áreas
• Visão dos sistemas
• Visão das aplicações
– Limitações dos BDs Relacionais
– Sistemas de BDs Pós-Relacionais
2. Bancos de Dados Orientado a Objetos
3. Bancos de Dados Objeto-Relacionais
4. Seminários
Profa. Valéria Gonçalves Soares
DI/UFPB
Modelos de Dados
Tradicionais
1. Introdução
„ Bancos
de Dados têm se tornado um
componente essencial na vida diária da
sociedade moderna.
– Sistemas bancários, reserva de hotel ou
de passagem aérea, biblioteca digital, ou,
controle de estoque de supermercados.
„
„
–
–
–
–
–
„ Esses
sistemas são todos exemplos do
que chamamos aplicações tradicionais
de bancos de dados.
Necessidades das novas
Aplicações
„ Estruturas
mais
complexas
Satisfatórios para muitos tipos de
aplicações comerciais;
Restritos para aplicações mais complexas
como:
bancos de dados para projeto de engenharia
Experimentos científicos
Telecomunicações
SIG
Multimídia.
Características das novas
Aplicações
de
objetos;
„ Transações de maior duração;
„ Novos
tipos de dados para o
armazenamento de imagens;
„ Necessidade de definição de novas
operações.
„
„
„
„
Bancos de Dados Multimídia podem
armazenar imagens, vídeo clips e mensagens
de sons;
Sistemas de Informações Geográficas
podem armazenar e analisar mapas, dados
climáticos e imagens de satélites;
Data Warehouses e OLAP são usados para
extrair e utilizar informações para tomada
de decisões;
Bancos de dados Ativos e tempo real são
usados no controle industrial e em
processos de manufatura.
1
Diferentes Aplicações
Sistemas de Bancos de Dados
BD Multimídia
BD Distribuídos
Sistemas
Distribuídos
& Internet
BD Distribuídos
OLAP
Sist. de Suporte
a Decisão
Comércio
Eletrônico
BD Multimídia
Sist. de Suporte
a Decisão
BD Dimensional
Sistemas de
Bancos de Dados
Aplicações de
Bancos de Dados
Outras áreas
Espacial
BD Ativo
Data Mining
BD OO
Espacial
Limitações dos BDs
Relacionais
„
„
„
„
CAD/CAM/SIGs
Diagnóstico
Monitoramento
BDD
BD de
Restrições
BDDOO
„
Linguagens de
Programação
Espaço Temporal
BDOO
Ativo
BDD Ativo
Restrições
integridade
Temporal
BDOO
Outras áreas
Inteligência
Artificial
Linguagens de
Programação
BDD
BD Temporal
Sistemas
Distribuídos
& Internet
DW
Inteligência
Artificial
DW
Digital
Publishing
Não possuem mecanismos para a definição e
manipulação de tipos de dados complexos
Não suportam itens de dados de grandes
tamanhos
Permitem apenas consultas com noções
precisas
Não permitem consultas ad-hoc
Baixa performance e dificuldades de
implementação
para aplicações mais
complexas
DW
BDOO
BD Espacial
BD Ativo
“Pontos Fortes” dos BDs
Relacionais
Extensões ou novos modelos devem oferecer:
– declaratividade
– robustez
– simplicidade (usa poucos conceitos poderosos)
– fundamentos formais
– tecnologia madura e eficiente para:
• oferecer persistência
• garantir segurança
• gerenciar memória secundária
• controlar transações
Sistemas de BDs PósRelacionais
„
BD x DSS:
– BD Multidimensional
– Data
Mart
„
– BD Distribuídos
Warehouse/Data
• BD Federados
– BD Temporal
„
• Arquitetura de
Mediadores
BD x Aplicações:
– BD x Agentes
– BD Ativo
– BD Multimídia
– BD Orientado a Objetos
– BD Objeto-Relacional
„
BD x IA:
– BD Dedutivo
BD x Sist.
Distribuídos/Internet:
„
BD x SIG
– BD Espacial
2. Bancos de Dados Orientados
a Objetos
„ Porque
sistemas e objetos?
– Os produtos SQL e modelo relacional
eram inadequados;
– A idéia de incorporar características de
orientação a objetos a sistemas de
bancos de dados surgiu naturalmente.
„ Principal
objetivo:
– Elevar o nível de abstração acabando com
o uso de chaves estrangeiras.
– BD Dedutivo OO
– BD de Restrições
2
Bancos de Dados Orientados
a Objetos
„
„
„
Se propõem a atender as necessidades de
aplicações mais complexas;
Metodologia OO oferece flexibilidade para
manipular alguns desses requisitos sem
limitar ao tipo de dado ou à linguagem de
consulta específica;
Poder de especificar a estrutura de
objetos complexos e as operações que
podem ser aplicadas a estes objetos.
Bancos de Dados Orientados a
Objetos
„ Dificuldades:
– Muita informação no banco de dados ⇒
simplifica alguns problemas e dificulta a
solução de outros;
Revisão dos Conceitos de OO
„
Um objeto tipicamente possui dois
componentes: o estado (valor) e o seu
comportamento (operações).
Características do BDOO
„
– Objeto X Variável
„
Objetos em LPOO existem apenas durante
a execução do programa enquanto que em
BDOO objetos podem ser armazenados
permanentemente, de modo a serem
persistentes.
„
– Chave Primária no Banco de Dados Relacional
Características do BDOO
„
„
„
Objetos apresentam uma estrutura de
de complexidade arbitrária descrevem um objeto.
O encapsulamento é obtido definindo uma
operação em duas partes:
– A assinatura da interface, que especifica
o nome e os seus argumentos,
– O método ou o corpo, que especifica a
implementação da operação.
Operações podem ser invocadas através da
troca de mensagens entre objetos.
objeto
Mantém uma correspondência direta entre
o mundo real e os objetos do banco de
dados de modo que os objetos não percam
sua integridade e identidade.
BDOO provêem uma identificação de
sistema única OID (Object identifier) para
cada objeto.
Outras Características OO
„
„
Hierarquia de Tipos e Classes e Herança :
características
que
permitem
a
especificação de novos tipos que herdam
suas estruturas e operações de tipos ou
classes previamente definidos.
Polimorfismo de operadores: se refere à
habilidade de uma operação ser aplicada em
diferentes tipos de objetos. Ex. Um nome
de operação pode referenciar várias
implementações distintas.
3
Estrutura do Objeto
2.1 Identidade do Objeto
„
„ BDOO
provê uma identidade única
para cada objeto independente
armazenado no BD. Esta identidade é
provida pelo Object Identifier (OID).
„ A principal característica do OID é
que ele é imutável.
„ OID é independente dos valores dos
atributos do objeto.
„
„
O estado corrente de um objeto complexo
pode ser construído a partir de outros
objetos pelo uso de construtores de
objetos.
Uma maneira de representar os objetos é
ver cada um deles como uma tripla (i, c, v)
de modo que i é o identificador único do
objeto, c é o construtor de tipo e v é o
estado do objeto.
Os construtores básicos são atômicos,
tupla e conjunto. Mas também podem incluir
lista, bag e array.
Exemplos de Especificação
de Tipos
Construtores de Tipos
„
„
„
Uma linguagem de definição de objeto
(ODL) pode ser usada para definir o tipo de
um objeto em uma aplicação.
O construtor de tipo pode ser usado para
definir a estrutura de dados de um
esquema de banco de dados OO.
Também pode-se incorporar definições de
operações (métodos) dentro de esquemas
OO.
Exemplos de Especificação
de Tipos
define type Departamento:
tuple(
dnome:
dnumero:
gdept:
string;
integer;
tuple(gerente:Empregado;
datainicio:Data; );
localizacoes: set(string);
empregados: set(Empregado);
projeto:
set(Projeto); );
define type Empregado:
tuple(
pnome:
inicial:
unome:
cpf:
datanasc:
endereco:
sexo:
salario:
superior:
dept:
define type Data
tuple (
ano:
integer;
mes:
integer;
dia:
integer;
string;
char;
string;
string;
Data;
string;
char;
float;
Empregado;
Departamento;
);
);
2.2 Encapsulamento de Operações,
Métodos e Persistência
„
„
A principal idéia do encapsulamento é
definir um comportamento de um tipo de
objeto baseado em operações. A estrutura
interna do objeto é escondida e apenas o
mesmo é acessível apenas por suas
operações.
A implementação de uma operação pode ser
especificada por uma linguagem de
programação de propósitos gerais.
4
Comportamento do Objeto
„
Usuários
externos
ao
objeto
são
informados a respeito do mesmo apenas
através de sua interface, que define o
nome e os argumentos de suas operações.
– A implementação é escondida dos usuários
externos, bem como a definição das estruturas
internas e a implementação das operações que
acessam essas estruturas.
– Em terminologia OO a parte da interface de
cada operação é chamada de assinatura, e a
implementação da operação é chamada de
método.
„
Um método é invocado através do envio de
mensagens ao objeto.
Comportamento do Objeto
„
Muitas vezes, em bancos de dados, a
exigência de que todos os objetos sejam
completamente encapsulados se torna
muito rigoroso.
– A estrutura de um objeto pode apresentar
atributos visíveis e escondidos.
„
„
„
Operações que atualizam o estado de um
objeto são encapsulados.
O termo classe é utilizado para referenciar
a definição do tipo do objeto.
Operações típicas incluem o construtor e o
destrutor.
Exemplo de definição de uma
classe de objetos
define class Empregado:
type tuple( pnome:
inicial:
unome:
cpf:
datanasc:
endereco:
sexo:
salario:
superior:
dept:
operations idade:
cria_emp:
destroi_emp:
end Empregado;
string;
char;
string;
string;
Data;
string;
char;
float;
Empregado;
Departamento;
integer;
Empregado;
boolean;
Persistência de Objetos
„
– Objetos transientes existem durante a
execução do programa e depois desaparecem ao
término do mesmo.
– Objetos persistentes são armazenados no banco
de dados e persistem após o término do
programa.
• Nomeação e alcançabilidade
);
Nomeação
mecanismo envolve dar um único
e persistente nome ao objeto através
do qual ele possa ser recuperado por
este e outros programas.
„ O objetos persistentes nomeados são
usados como pontos de entrada
através dos quais os usuários passam
a acessar o banco de dados.
Alcançabilidade
„
„ Esse
– Não muito prático.
Um objeto é tipicamente criado através de
um programa de aplicação que invoca o seu
método construtor. Nenhum objeto está
definido
para
ser
permanentemente
armazenado no banco de dados.
Torna o objeto alcançável através de um
outro objeto.
– Um objeto B é dito alcançável a partir do objeto
A se uma seqüência de referências no grafo do
objeto leva do objeto A ao objeto B.
„
Se por exemplo, definirmos um objeto
persistente nomeado N, cujo estado é uma
lista de objetos de alguma classe C, podese criar objetos persistentes da classe C,
adicionando os mesmos a esta lista,
fazendo-os então alcançáveis a partir de N.
Então N define um coleção persistente de
objetos da classe C.
– BD Tradicionais X BD OO
5
Exemplo de Objetos
Persistentes
2.3 Hierarquias de Tipos e
Herança
Define class ConjDepartamentos:
type set(Departamento);
operations
adic_dept(d:Departamento): boolean;
remove_dept(d:Departamento): boolean;
cria_dept_conj: ConjDepartamentos;
destroi_dept_conj: boolean;
End ConjDepartamentos;
Persistent name TodosDepartamentos: ConjDepartamentos;
...
d:= cria_dept;
B:= TodosDepartamentos.adic_dept(d);
Existem numerosos objetos de um mesmo tipo
em aplicações de BD.
„ Uma característica de BDOO é que o sistema
permite a definição de novos tipos baseados
em outros pré-definidos, levando a uma
hierarquia de tipos.
„ Tipicamente um tipo é definido pela atribuição
de um nome e pela definição de atributos e
operações.
„ Muitas vezes os atributos e as operações são
chamados de
funções, onde os atributos
representam funções sem argumentos.
„
Hierarquias de Tipos
Hierarquia de Tipos
„
„
Em sua forma mais simples, um tipo pode
ser definido pela atribuição de um nome e
então pela lista de suas funções visíveis
(públicas).
Sintaxe:
„
Exemplo:
„
„
EMPREGADO: Nome, Endereco, Datanasc, Idade, CPF,
Salario, DataContratacao, TempoTrabalho
ALUNO: Nome, Endereco, Datanasc, Idade, CPF,
Graduacao, CR
TYPE_NAME: function, function, ..., function
PESSOA: Nome, Endereco, Datanasc, Idade, CPF
O conceito de subtipos é útil quando o
projetista ou o usuário pode criar um novo
tipo que é similar, mas não idêntico, a um
tipo já definido.
Exemplos:
„
Tanto ALUNO como EMPREGADO possuem
funções
definidas
para
PESSOA
adicionadas de mais algumas próprias.
Hierarquias de Tipos
„ ALUNO
e EMPREGADO, podem,
então, ser definidos como subtipos de
PESSOA:
EMPREGADO subtype_of PESSOA: Salario,
DataContratacao, TempoServico
ALUNO subtype_of PESSOA: Graduacao, CR
Hierarquias de Tipos
„ Em
geral um subtipo inclui todas as
funções que estão definidas para o
supertipo, adicionadas a algumas
funções que são especificas ao
subtipo.
– Desta forma, é possível definir uma
hierarquia de tipos para mostrar todos
os relacionamentos entre os supertipos e
seus subtipos.
6
Exemplo de Subtipos na
Geometria
OBJETO_GEOMETRICO:
PontoReferencia
Forma,
Area,
„ Extensões
RETANGULO subtype_of
OBJETO_GEOMETRICO: largura,
comprimento
TRIANGULO subtype_of OBJETO_GEOMETRICO:
lado1, lado2, angulo
CIRCULO
subtype_of
OBJETO_GEOMETRICO:
Raio
Outra maneira de declarar os subtipos:
RETANGULO
OBJETO_GEOMETRICO
largura, comprimento
Extensões Correspondentes
a Hierarquia de Tipos
subtype_of
(Forma=´retangulo´):
são coleções de objetos de
um mesmo tipo.
„ É comum em aplicações de BD que
cada tipo ou subtipo tenham uma
extensão associada ao mesmo a qual
armazena a coleção de todos os
objetos persistentes de todos os
tipos ou subtipos.
Extensões Correspondentes a
Hierarquia de Tipos
„
„
„
Uma restrição é que cada objeto em uma extensão que
corresponde a um subtipo também deve ser membro
da extensão que corresponde a seu supertipo.
– Em alguns BDOO existe uma classe ROOT ou
OBJECT cuja extensão contém todos os objetos do
sistema.
Uma coleção persistente guarda a coleção de objetos
que são armazenados permanentemente no banco de
dados e desta forma pode ser acessado e
compartilhado por múltiplos programas.
Uma coleção transiente existe temporariamente
durante a execução de um programa e não é mantida
após o final do programa.
2.4 Objetos Complexos
„
– Um objeto complexo estruturado é composto de
componentes e é definido pela aplicação de
construtores
de
tipos
disponíveis
recursivamente em vários níveis.
– Um objeto complexo não-estruturado é
tipicamente um tipo de dado que requer uma
grande quantidade de armazenamento, tais
como tipos de dados que representam uma
imagem ou grande objeto textual.
Objetos Complexos nãoestruturados
„
„
Esta
característica,
permite
o
armazenamento e a recuperação de grandes
objetos que são necessários em uma
aplicação de BD. Também são conhecidos
por binary large objects ou BLOBS.
São não-estruturados porque o BD não
conhece a sua estrutura. Apenas as
aplicações que os manipulam que podem
interpretar seu significado.
Existem dois tipos de objetos complexos:
estruturado e não-estruturado.
Objetos Complexos nãoestruturados
O SGBD não tem a capacidade prévia de
processar diretamente condições de seleção e
outras operações baseadas nos valores destes
dados.
– Em BDOO esta característica pode ser
alcançada através da definição de um novo
tipo abstrato de dados e provendo métodos
para a sua seleção, comparação e
visualização dos mesmos.
„ Como BDOO permitem a criação de novos
tipos, incluindo sua estrutura e operações,
podemos considerar que os BDOO apresentam
um Sistema de Tipos Extensível.
„
7
Objetos Complexos
Estruturados
Objetos Complexos nãoestruturados
„
Por exemplo, suponha que uma aplicação
deseje selecionar a partir de uma coleção
de imagens bitmaps, aquelas que contenham
um determinado padrão.
– O usuário pode definir um programa de
reconhecimento de padrões como um métodos
dos objetos bitmaps. Desta forma, o BDOO
pode recuperar o objeto e invocar o método
para realizar a consulta desejada.
„
„
„
Objetos Complexos Estruturados
„
Por exemplo, seja o objeto DEPARTAMENTO
composto de uma estrutura de tupla com os
seguintes atributos: DNOME, DNUMERO, GDEPT,
LOCALIZACOES, EMPREGADOS, e PROJETOS.
– Apenas dois desses atributos, DNOME e
DNUMERO, apresentam valores básicos, os
demais apresentam valores complexos.
• O atributo GDEPT apresenta uma estrutura de tupla,
e os outros três atributos (LOCALIZACOES,
EMPREGADOS, PROJETOS) apresentam estrutura
de conjunto.
– Em um terceiro nível, o atributo GDEPT com sua
atributos estrutura de tupla, onde um de seus
atributos apresenta uma referência para uma
outra tupla.
Semânticas de Referência
„
„
Outros Conceitos OO
„ Polimorfismo:
Este conceito permite
que um mesmo nome de operador ou
símbolo seja relacionado com duas ou
mais implementações do operador,
dependendo do tipo do objeto a que o
mesmo está aplicado.
„ Exemplo: Cálculo da Área em Objetos
Geométricos.
Um objeto complexo estruturado apresenta
uma estrutura que é definida pelos
construtores de tipos providos pelo BDOO.
Então a estrutura do objeto é definida e
conhecida pelo BDOO.
Dois tipos de referência semântica existem
entre um objeto complexo e seus
componentes em cada nível. Semântica de
propriedade e Semântica de referência.
Chamamos de Semântica de Propriedade
quando os sub-objetos de um objeto
complexo
são
encapsulados
e
são
considerados parte do objeto complexo
(dnome, dnumero, gdept e localizacoes)
Chamamos de Semântica de Referência
quando os componentes do objeto complexo
são eles próprios objetos independentes
que podem ser referenciados (empregados
e projetos)
Herança Múltipla
„
„
Herança múltipla ocorre quando um certo
subtipo T é subtipo de dois ou mais tipos, e
desta forma, herda funções de todos os
supertipos.
Um problema que isso pode acarretar é que
os supertipos dos quais o subtipo herda
podem apresentar funções diferentes para
um mesmo nome, gerando ambigüidades.
– Sistema checa -> usuário seleciona
– Utilizar defaults
– Não
permitir
herança
múltipla
ambiguidades.
->
se
8
Herança Seletiva
„ Herança
Seletiva ocorre quando um
subtipo herda apenas algumas funções
de um supertipo. Outras funções não
são herdadas.
„ Neste caso, uma cláusula EXCEPT é
usada na lista de funções do supertipo
que não deverão ser herdadas pelos
seus subtipos.
Exercícios de Revisão
Qual a diferença existente entre
objetos transientes e persistentes
em BDOO? Quais as maneiras
possíveis de tornar um objeto
persistente?
2. Qual a diferença entre objetos
complexos estruturados e não
estruturados?
1.
9
Download