Bancos de dados orientados a objetos: conceito, conceitos básicos, gerenciamento, exemplos

Índice:

Bancos de dados orientados a objetos: conceito, conceitos básicos, gerenciamento, exemplos
Bancos de dados orientados a objetos: conceito, conceitos básicos, gerenciamento, exemplos
Anonim

Em bancos de dados orientados a objetos (OODBs), os usuários podem definir operações em um banco de dados específico, que é composto de objetos que podem ser de uma ampla variedade de tipos e para os quais as operações são definidas. Eles podem lidar eficientemente com informações binárias, como objetos multimídia. Outro benefício adicional do OODB é que ele pode ser programado com pequenas diferenças de procedimento sem afetar todo o sistema.

Pré-requisitos para a criação do padrão

A história dos bancos de dados OODB orientados a objetos começa no final do século passado. Eles foram criados para atender às necessidades de novos aplicativos. A suposição era que os bancos de dados orientados a objetos revolucionariam os sistemas de software durante a década de 1990. Agora está claro que este não é o caso. No entanto, o ressurgimento deste conceito através das comunidades de software livre e a identificação de aplicações adequadas para o mesmo motiva uma revisão das característicasOODB, que é uma alternativa aos bancos de dados relacionais onipresentes.

Pré-requisitos para a criação do padrão
Pré-requisitos para a criação do padrão

A orientação a objetos oferece flexibilidade para lidar com alguns ou todos os requisitos e não se limita aos tipos de dados e linguagens de consulta de bancos de dados tradicionais. Uma característica fundamental dos OODBs é a capacidade que eles fornecem ao desenvolvedor, permitindo que ele especifique tanto a estrutura de objetos complexos quanto as operações da aplicação. Outro motivo para a criação de OODBs é o crescente uso de linguagens para desenvolvimento de software.

Bancos de dados tornaram-se a base de muitos sistemas de informação, mas os bancos de dados tradicionais são difíceis de usar quando os aplicativos que os acessam são escritos em C++, Smalltalk ou Java. Por exemplo, os bancos de dados orientados a objetos 1C foram projetados de forma que possam ser integrados diretamente com aplicativos usando linguagens orientadas a objetos adotando seus conceitos: Visual Studio. Net, C++, C, Microsoft SQL Server e outros.

A principal vantagem do OODB é a eliminação completa da necessidade de RMs1 (impedância) com melhorias de desempenho subsequentes.

A principal vantagem do OODB
A principal vantagem do OODB

Falhas:

  1. Mecanismos de consulta muito primitivos, nenhuma plataforma auto-padrão aceita.
  2. Não é possível armazenar procedimentos porque os objetos só podem ser acessados no cliente.
  3. Imaturidade no mercado.
  4. Sem agrupamento físico de objetos.

Paradigma de objeto

Paradigma de objeto
Paradigma de objeto

Bancos de dados orientados a objetos são bancos de dados programáveis que armazenam dados complexos e seus relacionamentos diretamente sem atribuir linhas e colunas, tornando-os mais adequados para aplicativos que trabalham com grandes lotes. Os objetos têm relacionamentos muitos-para-muitos e são acessíveis através do uso de ponteiros associados a eles para estabelecer relacionamentos. Como qualquer programável, o OODB fornece um ambiente de desenvolvimento de aplicativos e um repositório persistente pronto para exploração. Ele armazena e manipula informações que podem ser digitalizadas na forma de objetos, oferece acesso rápido e grande capacidade de processamento.

Conceitos básicos usados em um banco de dados orientado a objetos:

  • identidade do objeto;
  • tipo construtor;
  • compatibilidade de idioma;
  • hierarquias de tipo e herança;
  • processando objetos complexos;
  • polimorfismo e sobrecarga de operadores;
  • criando versões.
Controle de versão
Controle de versão

Para considerar completamente todos os aspectos que caracterizam um banco de dados orientado a objetos, é importante observar todos os paradigmas de objetos importantes:

  1. Encapsulation é uma propriedade que permite ocultar informações de outros objetos, evitando assim acessos incorretos ou conflitos.
  2. Herança é uma propriedade pela qual os objetos herdam o comportamento em uma hierarquia de classes.
  3. Polimorfismo é uma propriedade de uma operação com a qual pode ser aplicada adiferentes tipos de objetos.
  4. A interface ou assinatura de uma operação inclui o nome e os tipos de dados de seus argumentos ou parâmetros.
  5. A implementação ou método de uma operação é especificada separadamente e pode ser alterada sem afetar a interface. Aplicativos de usuário podem trabalhar com dados chamando operações especificadas por meio de seus nomes e argumentos, independentemente de como foram implementados.

Aulas e funcionalidades

Aulas e funcionalidades
Aulas e funcionalidades

Ao considerar o conceito de classes em OODB, é necessário distinguir entre os termos "classe" e "tipo". Um tipo é usado para descrever um conjunto de objetos com comportamento semelhante. Nesse sentido, depende de quais operações podem ser chamadas no objeto. Uma classe é uma coleção de objetos que compartilham a mesma estrutura interna, portanto ela define uma implementação, enquanto um tipo descreve como usá-la.

O termo instanciação refere-se ao fato de que a instanciação de uma classe pode ser usada para produzir um conjunto de objetos que possuem a mesma estrutura e comportamento definidos pela classe.

Uma característica muito importante para a evolução dos objetos é que ele pode mudar sua classe, incluindo atributos e operações, mantendo a identidade. Isso exigiria um mecanismo para lidar com a integridade semântica resultante.

Herdar o banco de dados orientado a objetos de uma organização permite que uma classe seja definida como uma subclasse de uma superclasse já existente. Ele herdará todos os atributos e métodos deste último e pode, opcionalmente, definirter. Este conceito é um mecanismo importante para apoiar a reutilização. As mesmas partes da estrutura de duas classes diferentes só podem ser definidas uma vez em uma superclasse comum, portanto, menos código será escrito. Existem alguns sistemas que permitem que uma classe seja uma subclasse de mais de uma superclasse. Esse recurso é chamado de herança múltipla em oposição à herança simples.

Exemplo de um banco de dados orientado a objetos

Geralmente é útil usar o mesmo nome para métodos diferentes, mas semelhantes, da superclasse de mídia das classes de imagem e vídeo. Muitos arquivos podem ser visualizados por diferentes visualizadores. Eles geralmente precisam visualizar todas as fotos e vídeos usando o método "exibir", e o programa apropriado deve ser iniciado. Quando a função é chamada e um link para o vídeo é passado, o media player é iniciado. Para implementar este recurso, primeiramente é necessário definir a operação de "apresentação" na superclasse de mídia comum das classes de imagem e vídeo. Cada uma das subclasses redefine a operação de pesquisa para suas necessidades específicas. Isso resulta em métodos diferentes que têm o mesmo nome de operação. Neste caso, usar esta função tem uma vantagem importante.

estrutura OODB

Estrutura OODB
Estrutura OODB

O paradigma orientado a objetos é baseado no encapsulamento de dados e códigos relacionados a cada objeto em um único módulo. Conceitualmente, todas as interações entre ele e o restante do sistema são realizadas por meio de mensagens. Daí a interfaceentre eles é determinado pelo conjunto permitido.

Em geral, cada objeto está associado a um conjunto:

  1. Variáveis que contêm dados de objetos e correspondem aos atributos do modelo ER.
  2. Mensagens que ele responde. Cada um pode ou não ter parâmetros, um ou mais.
  3. Métodos, cada um dos quais é um código que implementa mensagens e retorna um valor em resposta a elas.

O envio de mensagens em ambiente OO não implica o uso de SMS físico em redes de computadores. Pelo contrário, refere-se à troca de solicitações entre objetos, independentemente dos detalhes corretos de sua implementação. Às vezes, uma expressão chama um método para acionar o fato de que uma mensagem foi enviada para um objeto e usa a execução do método correspondente.

Identidade do objeto

Identidade do objeto
Identidade do objeto

O sistema de banco de dados orientado a objetos fornece uma identificação única para cada objeto independente armazenado no banco de dados. Geralmente é implementado usando um identificador de objeto exclusivo gerado pelo sistema ou OID. O valor OID é invisível para o usuário externo, mas o sistema o utiliza internamente para gerenciar links entre objetos.

A principal propriedade de um OID é ser imutável. O valor OID para um objeto específico nunca deve ser alterado. Isso preserva a identidade do mundo real que está sendo representado. Também é preferível que cada OID seja usado apenas uma vez, mesmo que seja removido do banco de dados, seu OID não deve ser atribuído a outro. Também é frequentemente considerado inadequado baseá-lo em umo endereço do objeto armazenado, pois reorganizá-los no banco de dados pode alterar o OID. No entanto, alguns sistemas usam o endereço físico como OID para aumentar a eficiência da recuperação de objetos. Um framework orientado a objetos impõe automaticamente restrições relacionais, geralmente mais aplicáveis: domínio, chave, integridade do objeto e integridade referencial.

Três construtores principais

Três construtores principais
Três construtores principais

No OODB, valores ou estados de objetos complexos podem ser criados a partir de outros utilizando construtores de determinados tipos. Uma maneira de representá-los é pensar em cada um como um trio (i, c, v), onde i é o identificador exclusivo do objeto (OID), c é o construtor, ou seja, um ponteiro para como o valor do objeto é criado e v é o valor ou estado do objeto. Pode haver vários construtores dependendo do modelo de dados e do sistema OO.

Três construtores básicos de banco de dados orientados a objetos:

  • átomos;
  • tuplas;
  • conjuntos.

Outros usos mais comuns são listas e gráficos. Há também o domínio D, que contém todos os valores atômicos básicos disponíveis diretamente no sistema. Eles normalmente incluem números inteiros, números reais, cadeias de caracteres, datas e qualquer outro tipo de dados que o sistema manipula diretamente. Tanto a estrutura de objetos quanto as operações estão incluídas nas definições de classe.

Compatibilidade com linguagens de programação

Os conceitos básicos de bancos de dados orientados a objetos são usados emcomo ferramentas de design e codificadas para trabalhar com o banco de dados.

Existem várias linguagens possíveis nas quais esses conceitos podem ser integrados:

  1. Expandindo uma linguagem para processamento de dados como SQL adicionando tipos complexos e OOP. Os sistemas fornecem extensões orientadas a objetos para sistemas relacionais, chamados sistemas relacionais orientados a objetos.
  2. Usando uma linguagem de programação orientada a objetos existente e estendendo-a para trabalhar com bancos de dados. São chamadas de linguagens de programação persistentes e permitem que os desenvolvedores trabalhem diretamente com os dados sem precisar passar por uma linguagem de processamento de dados como o SQL. Eles são chamados de persistentes porque os dados continuam a existir após o término do programa que os criou.

Ao decidir qual opção usar, tenha em mente que linguagens persistentes tendem a ser poderosas, e é relativamente fácil cometer erros de programação que danificam o banco de dados. A complexidade das linguagens dificulta otimizações automáticas de alto nível, como a redução de E/S de disco. Em muitas aplicações, a capacidade de fazer consultas declarativas é importante, mas linguagens persistentes atualmente não permitem tais consultas sem problemas.

Hierarquia de tipos de herança

Esquemas de banco de dados orientados a objetos normalmente requerem um grande número de classes. No entanto, várias classes são semelhantes entre si. Para permitir uma representação direta das semelhanças entre elas, você precisa colocarem uma hierarquia de especializações. Este conceito é semelhante aos modelos ER. As especializações de classe são chamadas de subclasses, que definem atributos e métodos adicionais para uma classe existente. Objetos criados com subclasses herdam tudo do pai. Algumas dessas características herdadas podem ter sido emprestadas daqueles mais altos na hierarquia.

Os objetos são considerados complexos porque exigem uma grande quantidade de espaço de armazenamento e não fazem parte dos tipos de dados padrão que o OODBS (Object Oriented Database Management) geralmente oferece. Como o tamanho dos objetos é significativo, o SOOBMS pode receber uma parte de um objeto e fornecê-la a um aplicativo antes de adquirir o objeto inteiro. Ele também pode usar métodos de buffer e cache para obter partes de um objeto antecipadamente, antes que um aplicativo possa acessá-las.

OODB permite que os usuários criem novos tipos que incluem estrutura e operações, neste caso o sistema de tipos extensíveis. Você pode criar bibliotecas de novos tipos definindo sua estrutura e operações. Muitos deles podem armazenar e receber um grande objeto estruturado na forma de strings e caracteres ou bits, que são passados "como estão" para o programa aplicativo para interpretação.

O método pode acessar diretamente os atributos do objeto alvo por nome, incluindo qualquer herdado de classes pai, mas deve acessar atributos de outros objetos com sinais secundários. O conceito permite associar o mesmo nome de operador ou símbolo aduas ou mais implementações diferentes dele, dependendo do tipo de objetos aos quais se aplica.

Construindo Aplicativos

Criação de aplicativos
Criação de aplicativos

Muitos aplicativos de banco de dados que usam sistemas OO requerem várias versões do mesmo objeto. Normalmente, as atividades de manutenção são aplicadas a um sistema de software à medida que seus requisitos mudam e envolvem a alteração de alguns dos módulos de desenvolvimento e implementação. Caso o sistema já esteja rodando e um ou mais módulos precisem ser alterados, o desenvolvedor deve criar uma nova versão de cada um deles fazendo alterações.

Observe que pode haver mais de duas versões de um objeto, caso sejam necessárias duas além do módulo original. Versões próprias do mesmo módulo de software podem ser atualizadas ao mesmo tempo. Isso é chamado de projeto de banco de dados orientado a objetos paralelo. No entanto, sempre chega um ponto em que eles precisam ser mesclados para que o OODB híbrido incorpore as alterações feitas para que sejam compatíveis.

Condições orientadas a objetos

Todos os sistemas computacionais devem ter propriedades de sua arquitetura para serem consideradas. Por exemplo, um sistema deve ter tabelas para ser considerado relacional. OODB não é exceção e contém algumas propriedades básicas da arquitetura de objetos. No entanto, no mundo real, muitas dessas propriedades são discutidas e algumas, como herança múltipla, são consideradas melhorias no modelo de banco de dados orientado a objetos, em vez decomo parte da linha de base. Por exemplo, na linguagem orientada a objetos Smalltalk, herança múltipla não é suportada, embora seja considerada parte da arquitetura de objetos.

Métodos para uma classe definem um conjunto de operações que podem ser executadas em um objeto. Por exemplo, quando aplicado a um objeto, ele retorna um valor ou realiza alguma operação para atualizar os valores. Às vezes, os métodos não o retornam. Se o método fosse projetado para atualizar o número de passageiros de um veículo, nenhum valor seria retornado, mas o elemento de dados no destino o alteraria.

Objetos são um conceito fundamental em OODB. Essencialmente, os objetos são uma representação abstrata das coisas do mundo real que estão armazenadas nele. Um objeto é uma instância de uma classe no sentido de que está excluído de sua definição.

Você pode pensar em um objeto como um pacote independente que possui três partes:

  1. Informações pessoais próprias, valores de dados.
  2. Procedimentos privados que irão manipular valores através da definição da classe.
  3. Abra a interface para que este objeto possa se comunicar com outros.

Exemplos OODB

Usar OODB simplifica a conceituação porque é mais natural representar as informações que precisam ser armazenadas. Para modelar a estrutura ou lógica de um banco de dados, o uso de diagramas de classes permite introduzir classes com seus relacionamentos estruturais e herança. Para modelar parte da dinâmica, interação ecomportamento entre objetos, um diagrama de seqüência será utilizado para representar a interação entre objetos localizados em um relacionamento temporário, descrevendo os estados possíveis para que possam ser encontrados dado o estado alterado após a ocorrência do evento.

Exemplos de OODB
Exemplos de OODB

Um exemplo de banco de dados orientado a objetos é mostrado abaixo.

Exemplos de bancos de dados orientados a objetos
Exemplos de bancos de dados orientados a objetos

Eles têm um nome e um tempo de vida, que pode ser temporário ou permanente. A chave OODB é a capacidade que eles fornecem ao desenvolvedor para especificar quantas estruturas e operações serão aplicadas a eles. Há flexibilidade e suporte para lidar com tipos de dados complexos. Você pode criar classes e subclasses, por exemplo, a base de clientes pode ter uma subclasse do link desse cliente, e ela herdará todos os atributos e características da classe original, essa abordagem permite processar dados complexos de forma rápida e flexível.

Recomendado: