14
Banco de Dados não convencionais - Banco de Dados Orientado a Objeto Aula 7

Banco de Dados Orientado a Objeto

Embed Size (px)

Citation preview

Page 1: Banco de Dados Orientado a Objeto

Banco de Dados não convencionais - Banco de Dados

Orientado a Objeto

Aula 7

Page 2: Banco de Dados Orientado a Objeto

• Os modelos de dados já estudados anteriormente possuem tecnologia eficiente para desenvolvimento tradicional de banco de dados:– possuem desvantagens em relação a aplicações

mais complexas (engenharia e manufatura ( CAD/CAM), banco de dados gráficos, banco de dados científico, sistemas de informação geográfica, banco de dados multimídia;

– estas aplicações possuem características a nível de dados mais complexas que dados tradicionais, devido a isto é necessário um modelo de dados mais poderoso para lidar com eles;

Page 3: Banco de Dados Orientado a Objeto

– A complexidade dos dados visualiza-se à nível:• estrutural: estrutura das informações a serem

manipuladas e armazenadas mais complexas;• transações mais longas;• novos tios de dados para armazenar imagens ou

grandes campos de texto;

• definição de operações não padronizadas ;

– BDOO ou OODB se propõe a suportar esta características requeridas para aplicações mais complexas;

– o BDOO oferece flexibilidade na criação de tipos de dados e modos de consulta, o que não ocorre em banco de dados convencionais:

• tipos de dados pré-definidos;• linguagem de consulta padrão;

Page 4: Banco de Dados Orientado a Objeto

– a principal característica do BDOO é o poder, proporcionado ao projetista do sistema, de especificar estruturas complexas de objetos e as operações a serem aplicadas a estes objetos;

– a origem de Banco de Dados Orientado a Objetos surgiu a partir da linguagem de programação orientada a objetos;

– a OO é aplicada em diversas áreas:• banco de dados;• engenharia;• bases de conhecimento;

Revisão de conceitos de Orientação a Objetos

Page 5: Banco de Dados Orientado a Objeto

• Inteligência artificial;• e sistemas de computação geral;

– primeira linguagem orientada a objetos surgiu na década de 60 chamada SIMULA, possuía as seguintes características:

• conceitos de classe, • estrutura interna dos dados de um objeto em um

declaração de classe;

– após, pesquisadores propuseram o conceito de tipos abstratos de dados, os quais escondem estruturas e especificações internas dos dados de possíveis operações externas que poderiam causar algum danos, modificando informações;

– este conceito de esconder dados foi chamado encapsulamento;

Page 6: Banco de Dados Orientado a Objeto

– Na década de 70 a XEROX desenvolveu a linguagem SMALTALK pai das linguagens orientadas a objeto, e utilizada até hoje;

• SMALTALK é uma linguagem “realmente” orientada a objetos , ou seja, linguagem orientada a objeto pura foi construída baseada em conceitos de orientação a objetos, e não “apenas possui recursos de orientação a objetos”, como por exemplo o C++, que incorporou recursos de orientação a objetos no tradicional linguagem C;;

• foi a primeira linguagem a incorporar conceitos tais como herança;

– em uma linguagem orientada a objetos o objeto existe somente durante a execução do programa;

Page 7: Banco de Dados Orientado a Objeto

– um Banco de Dados Orientado a Objetos possibilita a capacidade de um objeto ser criado e existir permanentemente, ou seja , persistir;

– um BDOO armazena objetos persistentes permanentemente em uma memória secundária, permitindo o compartilhamento destes objetos entre múltiplos programas e aplicações;

– a persistência requisita a incorporação de características bem conhecidas em sistemas de gerenciamento de banco de dados, tais como:

• mecanismos de indexação ;• controle de concorrência;• recuperação;

Page 8: Banco de Dados Orientado a Objeto

– Em uma interface de sistema de BDOO com uma ou mais linguagens orientada a objetos fornece persistência e compartilhamento de capacidades de objetos;

– o objetivo de um BDOO é manter a correspondência direta entre o mundo-real e os objetos do banco de dados, a ponto que os objetos não percam a sua integridade e identidade e possam ser facilmente identificados e acessados;

– o BDOO fornece um único identificador para cada objeto chamado de identificador do objeto(OID):

– comparando este conceito ao modelo relacional:

Page 9: Banco de Dados Orientado a Objeto

• para cada relação devemos ter uma chave primária, que é identificado por atributo(s), sendo que este valor identifica cada tupla unicamente;

• se o valor da chave primária for trocado, a tupla será identificada por um outro atributo, mesmo assim ela ainda representa o objeto do mundo real;

• no mundo rela um objeto, dependendo da situação pode ser representado por uma chave ou por outra;

– em um BDOO os objetos podem ter estruturas de complexidade arbitrária, ou seja, em determinado momento da inserção de um objeto ele pode ser mais ou menos complexo de acordo com suas características;

– a estrutura interna de uma objetos inclui a especificação de variáveis de instância ( valor que define o estado interno de um objeto);

Page 10: Banco de Dados Orientado a Objeto

– uma variável de instância é similar ao conceito de atributo em um BDC, com exceção do recurso de que a variável de instância pode ser encapsulada dentro do objeto e assim não fica visível para o usuário externo;

– uma variável de instância um tipo de dado complexo arbitrário, ou seja, utilizada ao nível de complexidade necessário no momento;

– os sistemas orientados a objetos permitem a definição de operações ou funções que podem ser aplicadas para objetos de um tipo específico, desta forma alguns, alguns modelos de oo insistem que todas as operações que um usuário pode aplicar em um objeto deve ser definido, isto força um encapsulamento completo dos objetos;

Page 11: Banco de Dados Orientado a Objeto

– O encapsulamento não é um processo muito fácil de ser realizado , sendo então dividido em duas etapas:

• 1- interface ou assinatura da operação: especifica o nome da operação e os argumentos (parâmetros);

• 2 - método ou corpo especifica a implementação da operação, . A operação pode ser invocada passando um mensagem par o objeto, que inclui o nome da operação e o parâmetro, então o objeto executa o método para determinada operação.

• Este encapsulamento permite modificação da estrutura interna de um objeto e implementação de suas operações sem a necessidade de modificar a estrutura interna da superclasse;

Page 12: Banco de Dados Orientado a Objeto

– Outro conceito importante em sistema OO é o tipo de hierarquia de classe e herança;

– a herança permite especificação de novos tipos e classes que herdam muitas das estruturas e operações que forma previamente definidas em classes;

– permite a reutilização de tipos de definições já existentes ou a criação de novos tipos de objetos, minimizando redundância de informações;

• o problema que envolve BDOO é a representação de relacionamentos entre objetos:

Page 13: Banco de Dados Orientado a Objeto

– o completo encapsulamento no modelo OO leva a argumentar que os relacionamentos não deveriam ser explicitamente representados, mas ao invés disso deveriam ser descritos por métodos de definição apropriados que localizariam objetos que estão relacionados;

– em BDOO esta abordagem não se desempenha muito bem em banco de dados complexos e com um muitos relacionamentos, os relacionamentos são identificados via referências, da mesma maneira que trabalha os OIDs nos objetos;

Page 14: Banco de Dados Orientado a Objeto

– alguns sistemas OO fornecem a capacidade de negociar múltiplas versões do mesmo objeto) quando criamos uma versão nova do objeto, objetos de versões mais antigas e ativos em alguma aplicação não precisam ser alterados . O sistema suporta armazenar dos objetos de versões diferente;

• outro conceito existente é o operador de polimorfismo , que se refere a uma habilidade de operação ser aplicada para diferentes tipos de objetos, em uma situação, um operador nome pode se referir a distintas implementações de acordo com o tipo de objeto que será aplicado a ele;