Bancos de Dados Orientados a Objetos
Download
Report
Transcript Bancos de Dados Orientados a Objetos
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