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