informática ufpa bdoo 1 bancos de dados orientados a objetos prof. benedito ferreira...
TRANSCRIPT
Info
rmá
tica
UF
PA
BDOO
1
Bancos de DadosBancos de DadosOrientados a ObjetosOrientados a Objetos
Bancos de DadosBancos de DadosOrientados a ObjetosOrientados a Objetos
Prof. Benedito Ferreira
Contribuições:
Profa. Carla Alessandra Lima Reis
Prof. Rodrigo Quites Reis
Info
rmá
tica
UF
PA
BDOO
2
INTRODUÇÃO
1
Info
rmá
tica
UF
PA
BDOO
3
Evolução dos Sistemas de BDEvolução dos Sistemas de BD
Sistemas de Arquivos
1950 1960 1970 1980 1990
Modelo Hierárquico
Modelo Rede
Modelo Relacional
SGBD 3a Ger.
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
4
- Independência de dados- Suporte a múltiplas visões- Controle centralizado
Principais vantagens do enfoque SGBD
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
Info
rmá
tica
UF
PA
BDOO
5
CICLO DE VIDA DE UM SISTEMA DE INFORMAÇÃO (em cascata)
Info
rmá
tica
UF
PA
BDOO
6
FASES DO PROJETO DE BANCOS DE DADOS
Info
rmá
tica
UF
PA
BDOO
7
Premissas Básicas
- 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.
Exemplo de Projeto de BD Relacional (Universidade)
Exemplo de Projeto de BD Relacional (Universidade)
Info
rmá
tica
UF
PA
BDOO
81. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
9
(Universidade)Mapeamento ER- Relacional(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)
Disciplina(coddisc, nome, cred, ch)
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
10
(Universidade)Mapeamento ER- Relacional(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)
Matrícula-aluno(mat-aluno, cod-discipl, numturma)
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
11
1.1.2 Exemplos de tabelas para o BD Universidade1.1.2 Exemplos de tabelas para o BD Universidade
cod_curso
Nome cod_depto
cod_coord
77 Computação dinf prof1
88 Eng. Civil dciv prof2
cod_curso
Nome cod_depto
cod_coord
77 Computação dinf prof1
88 Eng. Civil dciv prof2
Matrícula Nome Ende-reço
cod_curso
9188006 José xxxx 88
9177006 Maria ddddd 77
9288900 Ana ddeee 88
Matrícula Nome Ende-reço
cod_curso
9188006 José xxxx 88
9177006 Maria ddddd 77
9288900 Ana ddeee 88
cod_prof Nome cod_depto
prof1 João dinf
prof2 Mario dciv
prof3 Joana dinf
cod_prof Nome cod_depto
prof1 João dinf
prof2 Mario dciv
prof3 Joana dinf
cod_depto
Nome cod_chefe
dinf Informática prof3
dciv Civil prof2
cod_depto
Nome cod_chefe
dinf Informática prof3
dciv Civil prof2
cod_disc
Nome cod_curso
CH,CRED
disc1 B. Dados 77 ...
disc2 Int. Civil 88 ...
cod_disc
Nome cod_curso
CH,CRED
disc1 B. Dados 77 ...
disc2 Int. Civil 88 ...
matrí-cula
cod_disc nota,sem.
9188006 disc1 EXC
9177006 disc2 BOM
matrí-cula
cod_disc nota,sem.
9188006 disc1 EXC
9177006 disc2 BOM
Aluno
Professor
Departamento
Curso
Disciplina
JáCursou_Disciplina
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
12
Exemplos de Consultas SQLExemplos de Consultas SQL
Qual o endereço do Prof. Lucas Almeida?
SELECT ENDERECOFROM PROFESSOR WHERE NOME = ‘LUCAS ALMEIDA’
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
13
Qual o nome do departamento onde trabalha o Prof. ‘Joel Freitas’?Qual o nome do departamento onde trabalha o Prof. ‘Joel Freitas’?
SELECT DEPARTAMENTO.NOMEFROM PROFESSOR , DEPARTAMENTOWHERE COD-DEPTO = CODDEP AND PROFESSOR.NOME = ‘Joel Freitas’
1. Evolução dos Sistemas de BD
SELECT NOMEFROM DEPARTAMENTOWHERE CODDEP IN ( SELECT COD-DEPTO FROM PROFESSOR WHERE NOME = ‘Joel Freitas’ )
Info
rmá
tica
UF
PA
BDOO
14
SELECT P.NOMEFROM 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
Qual o nome do coordenador do curso em que estuda ‘Jonas Lobo’ ?
Info
rmá
tica
UF
PA
BDOO
15
SELECT C.NOMEFROM 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
Qual o nome do chefe do departamento em que trabalha ‘Júlio Serrão’ ?
Info
rmá
tica
UF
PA
BDOO
16
Sistemas e modelos de BD tradicionais apresentam limitações no projeto e implementação dos chamados BD não convencionais.
BDOO - Motivação básica
Info
rmá
tica
UF
PA
BDOO
17
Manifestos de SGBDOOManifestos 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
– Proposta: Características obrigatórias Opcionais Em aberto
SGBDOO
+SGBDOO
+SGBDSGBD SistemaOO
SistemaOO
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
18
Manifestos de SGBDOOManifestos de SGBDOO
1o Manifesto: – Obrigatórias:
Objetos Complexos Identidade de Objetos Encapsulamento Tipos e Classes Hierarquia de classes e tipos Ligação dinâmica e reescrita Completeza computacional Extensibilidade Persistência Gerência de armazenamento Concorrência Recuperação Facilidade de consulta
– Opcionais: Herança múltipla Checagem de tipos Transações (longas ou
aninhadas) Versões
1. Evolução dos Sistemas de BD
Info
rmá
tica
UF
PA
BDOO
19
2o Manifesto:
– “Third Generation Data Base System Manifesto” [Committee for Advanced DBMS Function, 1990]
– Princípios: 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
Manifestos de SGBDOOManifestos de SGBDOO
Info
rmá
tica
UF
PA
BDOO
20
2o Manifesto: – 13 proposições:
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)
1. Evolução dos Sistemas de BD
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
Manifestos de SGBDOOManifestos de SGBDOO
Info
rmá
tica
UF
PA
BDOO
21
(mais comuns no ambiente tipicamente comercial)
Processamento de arquivos grandes, de estrutura simples e repetitiva.
Aplicações convencionais
Em geral, são facilmente desenvolvidas com o auxílio de SGBDs convencionais (1a. E 2a. gerações)
Info
rmá
tica
UF
PA
BDOO
22
Aplicações convencionais
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
Info
rmá
tica
UF
PA
BDOO
23
Novas aplicações, cujos requisitos, em geral, excedem a capacidade dos SGBDs convencionais.
Aplicações não-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).
Info
rmá
tica
UF
PA
BDOO
24
- 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
Exemplos...
Info
rmá
tica
UF
PA
BDOO
25
Tendência moderna: um modelo deve representar a estrutura dos objetos modelados, seu comportamento, e também um conjunto de restrições de integridade.
Modelos de dados
Info
rmá
tica
UF
PA
BDOO
26
- Deve ser feita através de conceitos o mais próximo possível da aplicação;
Modelagem: representação
- Naturalidade: modelo deve “espelhar” a realidade da aplicação e não o contrário.
Info
rmá
tica
UF
PA
BDOO
27
Anos 60: modelos hierárquico e de redes (1a. geração)
Evolução dos modelos:
Anos 70: modelo relacional (2a. geração)- base formal, - homogeneidade, - simplicidade na representação da
realidade - álgebra relacional
Info
rmá
tica
UF
PA
BDOO
28
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.
Modelagem Semântica
Info
rmá
tica
UF
PA
BDOO
29
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).
Tendências das soluções
Info
rmá
tica
UF
PA
BDOO
30
1. Gerência de dados2. Gerência de objetos3. Gerência de conhecimento
As novas aplicações possuem 3 dimensões:
Info
rmá
tica
UF
PA
BDOO
31
BDOO
BDOO foram propostos visando atender as necessidades das aplicações não-convencionais.
Característica chave: permite ao projetista especificar estrutura e comportamento de objetos complexos.
Info
rmá
tica
UF
PA
BDOO
32
Protótipos experimentais
- ORION (MCC)
- OPENOODB(Texas Instruments)
- IRIS (HP)
- ODE (AT&T Bell)
- ENCORE/ObServer (Brown University)
Info
rmá
tica
UF
PA
BDOO
33
Sistemas disponíveis comercialmente
- GEMSTONE/OPAL
- ONTOS
- Objectivity
- Versant
- ObjectStore
- ARDENT
- POET
Info
rmá
tica
UF
PA
BDOO
34
Importante meta dos BDOO:
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 submeti-dos a operações.
Info
rmá
tica
UF
PA
BDOO
35
Origem de OO
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.
Info
rmá
tica
UF
PA
BDOO
36
Classe: agrupa a estrutura de dados interna de um objeto
Na linguagem SIMULA...
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)
Info
rmá
tica
UF
PA
BDOO
37
Classes de objetos:
Implementação do mecanismo de abstração de classificação
Outras implementações desse mecanismo: - entidade (E-R) - relação (Relacional) - arquivo (sistemas “tradicionais”)
Info
rmá
tica
UF
PA
BDOO
38
Exemplo informal:
Classes:
ALUNO CURSO DEPARTAMENTO
Objetos
George CBCC Estatística Ana Pedagogia Didática
. . . . . .
Info
rmá
tica
UF
PA
BDOO
39
Objetos X Variáveis
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
Info
rmá
tica
UF
PA
BDOO
40
Encapsulamento
Operações embutidas nos objetos são definidas em duas partes:
- Assinatura ou interface: nome + argumentos (parâmetros)
- Método ou corpo: implementação da operação
Operações são invocadas através do envio de uma mensagem ao objeto.
Info
rmá
tica
UF
PA
BDOO
41
Encapsulamento
Encapsulamento possibilita independência de dados e operações:
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.
Info
rmá
tica
UF
PA
BDOO
42
Alguns modelos OO exigem que todas as operações que um usuário possa aplicar a um objeto devem ser pré-definidas: encapsulamento absoluto
Encapsulamento
Rigidez muito grande que, em muitos casos,é relaxada:- Especificação de seleções pelo usuário;- Consultas ad hoc.
Info
rmá
tica
UF
PA
BDOO
43
BDOO X “tradicionais”
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.
Info
rmá
tica
UF
PA
BDOO
44
LPOO’s puras: explicitamente projetadas para serem orientadas a objetosEx: Smaltalk
LPOO’s híbridas: incorporação dos conceitos de OO em uma linguagem já existente.Ex: C++
LPOO
Info
rmá
tica
UF
PA
BDOO
45
LPOO
Objetos são transientes: existem somente durante a execução de um programa.
BDOO
Objetos são persistentes: são armazenados permanentemente.
LPOO X BDOO
Info
rmá
tica
UF
PA
BDOO
46
IDENTIFICADORES ÚNICOS
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.
BDOO devem prover um identificador único (OID) para cada objeto.
Info
rmá
tica
UF
PA
BDOO
47
Padrão para linguagens e modelos
À medida que SGBDOO tornam-se disponíveis,
surge a necessidade de um padrão
ODMG: Object Database Management Group
Info
rmá
tica
UF
PA
BDOO
48
ODMG (Object Database Management Group)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:
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
Info
rmá
tica
UF
PA
BDOO
49
Hierarquias de classes/tipos
Nos modelos OO, podemos construir novas classes (ou tipos) a partir de outras previamente definidas.
Herança:As subclasses herdam tanto estrutura como operações da(s) classe(s) base.
Info
rmá
tica
UF
PA
BDOO
50
Hierarquias de classes/tipos
Benefícios:
- Torna-se mais fácil desenvolver os tipos/classes incrementalmente.
- Reutilização dos esquemas.