UFPA
Informática
Bancos de Dados
Orientados a Objetos
Prof. Benedito Ferreira
Contribuições:
Profa. Carla Alessandra Lima Reis
Prof. Rodrigo Quites Reis
1
UFPA
Informática
1
INTRODUÇÃO
2
Evolução dos Sistemas de BD
Sistemas de Arquivos
Modelo Hierárquico
Modelo Rede
Modelo Relacional
UFPA
Informática
SGBD 3a Ger.
1950
1960
1970
1980
1990
1. Evolução dos Sistemas de BD
3
Principais vantagens do enfoque SGBD
UFPA
Informática
- Independência de dados
- Suporte a múltiplas visões
- Controle centralizado
As aplicações da tecnologia de bancos de
dados estão se expandindo continuamente,
uma vez que dados ocupam papel central
em qualquer sistema de informações
4
UFPA
Informática
CICLO DE VIDA DE UM SISTEMA
DE INFORMAÇÃO (em cascata)
5
UFPA
Informática
FASES DO PROJETO DE BANCOS DE DADOS
6
Exemplo de Projeto de BD
Relacional (Universidade)
Premissas Básicas
UFPA
Informática
- Todo aluno pertence a um (e somente um) curso;
- Cada curso deve ter no mínimo 10 alunos;
- Todo professor pertence a um (e somente um) departamento;
- Cada departamento deve ter no mínimo 10 professores;
- Cada departamento possui um chefe;
- Todo curso possui um professor coordenador;
- Um curso é constituído de várias disciplinas (não exclusivas);
- Cada disciplina pode ser ofertada em várias turmas;
- O aluno possui registro das disciplina já cursadas.
7
UFPA
Informática
1. Evolução dos Sistemas de BD
8
(Universidade)
Mapeamento ER- Relacional
Departamento(coddep, nome, ..., cod-chefe)
Professor(codprof, nome, endereco...., cod-depto)
Curso(codcurso, nome, ..., cod-coorden, cod-depto)
Aluno(matrícula, nome, ..., cod-curso)
UFPA
Informática
Disciplina(coddisc, nome, cred, ch)
1. Evolução dos Sistemas de BD
9
(Universidade)
Mapeamento ER- Relacional
Turma(numturma, cod-discipl, sala, horario,
cod-professor)
Grade-Curric(cod-curso, cod-disciplina)
Histórico(mat-aluno, cod-disciplina, semestre,
nota)
UFPA
Informática
Matrícula-aluno(mat-aluno, cod-discipl, numturma)
1. Evolução dos Sistemas de BD
10
1.1.2 Exemplos de tabelas para o BD
Universidade
Aluno
Matrícula Nome Ende- cod_curso
reço
9188006 José
xxxx 88
UFPA
Informática
cod_ Nome
curso
cod_ cod_
depto coord
9177006
Maria ddddd 77
77
Computação dinf
prof1
9288900
Ana
88
Eng. Civil
dciv
prof2
cod_
curso
CH,
CRED
Professor cod_prof
Departamento
Curso
ddeee 88
Nome cod_depto
prof1
João
dinf
prof2
Mario dciv
prof3
Joana dinf
cod_chefe
cod_ Nome
depto
dinf Informática prof3
dciv
Civil
prof2
Disciplina cod_ Nome
disc
disc1
B. Dados
77
...
disc2
Int. Civil
88
...
JáCursou_
matrí- cod_disc
Disciplina
cula
9188006 disc1
9177006 disc2
nota,
sem.
EXC
BOM
1. Evolução dos Sistemas de BD
11
Exemplos de Consultas SQL
Qual o endereço do Prof. Lucas Almeida?
UFPA
Informática
SELECT ENDERECO
FROM
PROFESSOR
WHERE NOME = ‘LUCAS ALMEIDA’
1. Evolução dos Sistemas de BD
12
Qual o nome do departamento onde trabalha o Prof.
‘Joel Freitas’?
SELECT DEPARTAMENTO.NOME
FROM PROFESSOR , DEPARTAMENTO
WHERE COD-DEPTO = CODDEP AND
PROFESSOR.NOME = ‘Joel Freitas’
UFPA
Informática
SELECT NOME
FROM DEPARTAMENTO
WHERE CODDEP IN
( SELECT COD-DEPTO
FROM PROFESSOR
WHERE NOME = ‘Joel Freitas’ )
1. Evolução dos Sistemas de BD
13
Qual o nome do coordenador do curso em que
estuda ‘Jonas Lobo’ ?
UFPA
Informática
SELECT P.NOME
FROM
PROFESSOR P, CURSO, ALUNO A
WHERE COD-CURSO = CODCURSO AND
COD-COORDEN = CODPROF AND
A.NOME = ‘Jonas Lobo’
1. Evolução dos Sistemas de BD
14
Qual o nome do chefe do departamento em que
trabalha ‘Júlio Serrão’ ?
UFPA
Informática
SELECT C.NOME
FROM
PROFESSOR C P, DEPARTAMENTO
WHERE P.COD-DEPTO = CODDEP AND
COD-CHEFE = C.CODPROF AND
P.NOME = ‘JÚLIO SERRÃO’
1. Evolução dos Sistemas de BD
15
BDOO - Motivação básica
UFPA
Informática
Sistemas e modelos de BD tradicionais
apresentam limitações no projeto e
implementação dos chamados BD não
convencionais.
16
Manifestos de SGBDOO

1o Manifesto:
– “The Object-Oriented Database
System Manifesto” [Atkinson et al.1989]
– Motivação:



Falta de modelo de dados comum
Falta de fundamentos formais
Grande atividade experimental
SGBDOO
Sistema
SGBD
+
OO
UFPA
Informática
– Proposta:



Características obrigatórias
Opcionais
Em aberto
1. Evolução dos Sistemas de BD
17
Manifestos de SGBDOO

1o Manifesto:
– Obrigatórias:








UFPA
Informática





Objetos Complexos
Identidade de Objetos
Encapsulamento
– Opcionais:
Tipos e Classes
 Herança múltipla
Hierarquia de classes e tipos
 Checagem de tipos
Ligação dinâmica e reescrita
 Transações (longas ou
aninhadas)
Completeza computacional
 Versões
Extensibilidade
Persistência
Gerência de armazenamento
Concorrência
Recuperação
Facilidade de consulta
1. Evolução dos Sistemas de BD
18
Manifestos de SGBDOO

2o Manifesto:
– “Third Generation Data Base System Manifesto”
[Committee for Advanced DBMS Function, 1990]
– Princípios:


UFPA
Informática

Suporte a estruturas de objetos mais ricas e regras
Não regredir os avanços do modelo relacional (acesso não
procedural e indep. de dados)
Sistemas Abertos
1. Evolução dos Sistemas de BD
19
Manifestos de SGBDOO

2o Manifesto:

– 13 proposições:






UFPA
Informática

Sistema de tipos rico
Herança simples e múltipla
Funções e encapsulamento
em ling. de alto nível
Identificadores únicos somente
se não houver chave
primária
Regras forçadas pelo SGBD
Acesso ao BD através de
ling. não procedural (alto
nível)




Especificação de coleções
Visões atualizáveis
Acessibilidade a partir de
múltiplas linguagens
Persistência suportada por
extensões ao compilador
SQL = linguagem
universal
Consultas e respostas
devem ser o menor
elemento de
comunicação
cliente/servidor
1. Evolução dos Sistemas de BD
20
Aplicações convencionais
UFPA
Informática
(mais comuns no ambiente tipicamente
comercial)
Processamento de arquivos grandes, de
estrutura simples e repetitiva.
Em geral, são facilmente desenvolvidas
com o auxílio de SGBDs convencionais
(1a. E 2a. gerações)
21
Aplicações convencionais
UFPA
Informática
 Características:
– Uniformidade: grande número de itens de dados
estruturados
– Orientação a registros
– Itens de dados pequenos
– Campos atômicos (1a forma normal)
– Transações curtas
– Esquemas conceituais estáticos
22
Aplicações não-convencionais
UFPA
Informática
Novas aplicações, cujos requisitos, em
geral, excedem a capacidade dos SGBDs
convencionais.
Requisitos e características:
- estrutura mais complexa para os objetos;
- transações longas;
- armazenamento de imagens e grandes ítens
textuais;
- novas operações (não padronizadas).
23
UFPA
Informática
Exemplos...
- Eng. de software: ferramentas CASE;
- CAD/CAM e CIM
- telecomunicações
- sistemas cartográficos
- BD multimídia
- BD textuais / automação de escritórios
- Aplicações médicas e científicas
- Sistemas Especialistas: dados + regras
24
Modelos de dados
UFPA
Informática
Tendência moderna: um modelo deve
representar a estrutura dos objetos
modelados, seu comportamento, e
também um conjunto de restrições de
integridade.
25
Modelagem: representação
- Deve ser feita através de conceitos o
mais próximo possível da aplicação;
UFPA
Informática
- Naturalidade: modelo deve “espelhar” a
realidade da aplicação e não o contrário.
26
Evolução dos modelos:
UFPA
Informática
Anos 60: modelos hierárquico e de redes (1a.
geração)
Anos 70: modelo relacional (2a. geração)
- base formal,
- homogeneidade,
- simplicidade na representação da
realidade
- álgebra relacional
27
Modelagem Semântica
UFPA
Informática
As limitações do modelo relacional em
termos do poder de expressão semântica
despertaram o interesse por modelos semânticos.
- Modelo E-R (Chen, 1976);
- Modelo Hierárquico Semântico;
- Modelo de Dados Semântico;
- Modelo rm/t.
28
Tendências das soluções
UFPA
Informática
Os desafios das novas aplicações
tem levado as pesquisas na área de BD a
aproximar essa tecnologia cada vez mais
a conceitos de outras áreas
Ex: linguagens de programação
(particularmente orientação a objetos) e
inteligência artificial (sistemas de bases
de conhecimento).
29
As novas aplicações possuem 3 dimensões:
Gerência de dados
Gerência de objetos
Gerência de conhecimento
UFPA
Informática
1.
2.
3.
30
BDOO
BDOO foram propostos visando atender
as necessidades das aplicações nãoconvencionais.
UFPA
Informática
Característica chave: permite ao projetista
especificar estrutura e comportamento de
objetos complexos.
31
Protótipos experimentais
- ORION (MCC)
- OPENOODB(Texas Instruments)
- IRIS (HP)
- ODE (AT&T Bell)
UFPA
Informática
- ENCORE/ObServer (Brown University)
32
Sistemas disponíveis comercialmente
- GEMSTONE/OPAL
- ONTOS
- Objectivity
- Versant
UFPA
Informática
- ObjectStore
- ARDENT
- POET
33
Importante meta dos BDOO:
UFPA
Informática
Manter uma correspondência direta
entre o “mundo real” e os objetos do BD,
de tal modo que os objetos não percam
sua integridade e identidade e possam
facilmente ser identificados e submetidos a operações.
34
Origem de OO
UFPA
Informática
O termo Orientado a objetos (OO) teve sua
origem em linguagens de programação
hoje...
- Engenharia de Software
- Bases de conhecimento
- Inteligência artificial
- etc.
35
Na linguagem SIMULA...
Classe: agrupa a estrutura de dados
interna de um objeto
UFPA
Informática
Tipos abstratos de dados: escondem a
estrutura de dados interna e especificam as
operações externas que podem ser aplicadas
a um objeto.  ENCAPSULAMENTO
Objeto 
estado(valor) +
comportamento(operações)
36
Classes de objetos:
Implementação do mecanismo de
abstração de classificação
UFPA
Informática
Outras implementações desse mecanismo:
- entidade (E-R)
- relação (Relacional)
- arquivo (sistemas “tradicionais”)
37
Exemplo informal:
Classes:
ALUNO
CURSO
DEPARTAMENTO
UFPA
Informática
Objetos
George
Ana
CBCC
Pedagogia
Estatística
Didática
.
.
.
.
.
.
38
Objetos X Variáveis
UFPA
Informática
Objetos podem possuir uma estrutura
arbitrariamente complexa: aplicação
ortogonal de construtores (array, tupla,
conjunto, etc.)
Objetos podem possuir operações para
si especificadas (definidas pelo
projetista/programador).
Objetos: estado + comportamento
39
Encapsulamento
Operações embutidas nos objetos são definidas
em duas partes:
- Assinatura ou interface: nome + argumentos
(parâmetros)
UFPA
Informática
- Método ou corpo: implementação da operação
 Operações são invocadas através do envio de
uma mensagem ao objeto.
40
Encapsulamento
Encapsulamento possibilita independência de
dados e operações:
UFPA
Informática
Modificações na estrutura interna de um
objeto e na implementação de operações sem
repercussões nas aplicações que interagem
com aquele objeto.
41
Encapsulamento
UFPA
Informática
 Alguns modelos OO exigem que todas as
operações que um usuário possa aplicar a um
objeto devem ser pré-definidas:
encapsulamento absoluto
Rigidez muito grande que, em muitos casos,
é relaxada:
- Especificação de seleções pelo usuário;
- Consultas ad hoc.
42
BDOO X “tradicionais”
UFPA
Informática
Nos BDOO as informações sobre um
objeto (incluindo operações) tendem a
estar reunidas.
Nos BD “tradicionais” essas
informações costumam ficar
“pulverizadas” em várias tabelas e
registros.
43
LPOO
UFPA
Informática
LPOO’s puras: explicitamente projetadas
para serem orientadas a objetos
Ex: Smaltalk
LPOO’s híbridas: incorporação dos
conceitos de OO em uma linguagem já
existente.
Ex: C++
44
LPOO X BDOO
LPOO
Objetos são transientes: existem
somente durante a execução de um programa.
UFPA
Informática
BDOO
Objetos são persistentes: são
armazenados permanentemente.
45
IDENTIFICADORES ÚNICOS
BDOO devem prover um identificador
único (OID) para cada objeto.
UFPA
Informática
OID versus chave primária:
Se os valores da CP mudam, teremos
uma nova tupla.
No mod. relacional, um mesmo objeto
pode ter diferentes nomes para a CP,
em diferentes relações.
46
Padrão para linguagens e modelos
À medida que SGBDOO tornam-se disponíveis,
surge a necessidade de um padrão
UFPA
Informática
ODMG: Object Database
Management Group
47
ODMG (Object Database Management Group)
– Consórcio formado por fabricantes de SGBDOO
– Padrão de interface para SGBDOO
– Versões: ODMG 1.0 (93), ODMG 1.2 (95), ODMG
2.0 (97), ODMG 3.0 (2000)
– Componentes:



UFPA
Informática

Modelo de Objetos
ODL - Object Definition Language
OQL - Object Query Language (baseado em SQL-92)
Ligações (bindings) com LPOO: C++, Smalltalk, Java
(mais recente)
1. Evolução dos Sistemas de BD
48
Hierarquias de classes/tipos
Nos modelos OO, podemos construir novas
classes (ou tipos) a partir de outras
previamente definidas.
Herança:
UFPA
Informática
As subclasses herdam tanto estrutura como
operações da(s) classe(s) base.
49
Hierarquias de classes/tipos
Benefícios:
- Torna-se mais fácil desenvolver os
tipos/classes incrementalmente.
UFPA
Informática
- Reutilização dos esquemas.
50
Download

BDOO