Friday 2 February 2018

Trade offs entre sistemas de gerenciamento de banco de dados relacionais e orientados a objetos


Sistemas de contabilidade de bancos de dados hierárquicos e relacionais: Aspectos críticos e trade-offs.


Carlo Caserio autor Luciano Marchi Gabriele Pulcini.


Embora a transição de bancos de dados hierárquicos para relacionamentos tenha marcado um ponto crucial no desenvolvimento de sistemas contábeis, o conceito de hierarquia não foi totalmente abandonado. O objetivo desta pesquisa é destacar os aspectos críticos e os trade-offs entre as estruturas hierárquicas e relacionais de um sistema de contabilidade de banco de dados (DAS). Primeiro, abordamos as relações entre a estrutura de contabilidade do banco de dados e a codificação de dados contábeis: a codificação hierárquica, além dos esquemas de codificação seqüencial, pode ter diferentes implicações na seletividade / precisão / eficiência do DAS. Em seguida, investigamos o impacto que tanto a estrutura como os esquemas de codificação de dados têm em consultas selecionadas e consultas de atualização: os modelos hierárquicos permitem uma maior eficiência na realização de consultas selecionadas, mas maior rigidez na execução de consultas de atualização; inversamente, os modelos relacionais permitem maior flexibilidade de consultas de atualização, mas maior complexidade na realização de consultas seletivas. Finalmente, oferecemos sugestões para gerenciar os trade-offs entre os dois tipos de DAS.


Referências.


Informações sobre direitos autorais.


Autores e afiliações.


Carlo Caserio 1 autor Luciano Marchi 1 Gabriele Pulcini 1 1. Departamento de Economia e Gestão da Universidade de Pisa, Pisa, Itália.


Sobre este capítulo.


Recomendações personalizadas.


Cite o capítulo.


.RIS Papers Reference Manager RefWorks Zotero.


.BIB BibTeX JabRef Mendeley.


Compartilhe o capítulo.


Download instantâneo legível em todos os dispositivos Possuí-lo para sempre Imposto de venda local incluído, se aplicável.


Cite o capítulo.


.RIS Papers Reference Manager RefWorks Zotero.


.BIB BibTeX JabRef Mendeley.


Compartilhe o capítulo.


Mais de 10 milhões de documentos científicos ao seu alcance.


Switch Edition.


&cópia de; 2017 Springer International Publishing AG. Parte de Springer Nature.


UMA EXPLORAÇÃO DE.


Dare Obasanjo.


Introdução: Por que os sistemas de gerenciamento de banco de dados orientados a objetos?


No mundo de hoje, os aplicativos Client-Server que dependem de um banco de dados no servidor como um armazenamento de dados, enquanto os pedidos de manutenção de vários clientes são bastante comuns. A maioria dessas aplicações usa um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS) como seu armazenamento de dados enquanto usa uma linguagem de programação orientada a objetos para o desenvolvimento. Isso causa uma certa ineficiência, pois os objetos devem ser mapeados para as tuplas no banco de dados e vice-versa em vez de os dados serem armazenados de forma consistente com o modelo de programação. O "impedimento de impedância" causado por ter que mapear objetos em tabelas e vice-versa tem sido aceito como uma penalidade de desempenho necessária. Este artigo tem como objetivo buscar uma alternativa que evite essa penalidade.


O objetivo deste trabalho é fornecer respostas às seguintes questões.


O que é um sistema de gerenciamento de banco de dados orientado a objetos (OODBMS)? Um OODBMS é uma alternativa viável para um RDBMS? Quais são as compensações e benefícios de usar um OODBMS em um RDBMS? O que o código que interage com um OODBMS parece?


Visão geral dos sistemas de gerenciamento de banco de dados orientados a objetos.


Um OODBMS é o resultado da combinação de princípios de programação orientados a objetos com princípios de gerenciamento de banco de dados. São aplicados conceitos de programação orientados a objetos, como encapsulamento, polimorfismo e herança, bem como conceitos de gerenciamento de banco de dados, como as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) que levam à integridade do sistema, suporte a uma linguagem de consulta ad hoc e gerenciamento de armazenamento secundário sistemas que permitem gerenciar grandes quantidades de dados. O Manifesto do banco de dados orientado a objetos [Atk 89] lista especificamente os seguintes recursos como obrigatórios para um sistema suportar antes que ele possa ser chamado de OODBMS; Objetos complexos, Identidade do objeto, Encapsulamento, Tipos e Classes, Hierarquias de Classe ou Tipo, Sobreposição, sobrecarga e ligação tardia, Completude computacional, Extensibilidade, Persistência, Gerenciamento de armazenamento secundário, Concorrência, Recuperação e uma Instalação de Consulta Ad Hoc.


A partir da descrição acima mencionada, um OODBMS deve ser capaz de armazenar objetos que são quase indistinguíveis do tipo de objetos suportados pela linguagem de programação alvo com a menor limitação possível. Os objetos persistentes devem pertencer a uma classe e podem ter um ou mais tipos atômicos ou outros objetos como atributos. As regras normais de herança devem ser aplicadas com todos os seus benefícios, incluindo polimorfismo, superação de métodos herdados e ligação dinâmica. Cada objeto tem um identificador de objeto (OID) que usou como uma forma de identificar de maneira exclusiva um objeto particular. OIDs são permanentes, gerados pelo sistema e não baseados em nenhum dos dados do membro dentro do objeto. Os OIDs tornam o armazenamento de referências para outros objetos no banco de dados mais simples, mas podem causar problemas de interligação referencial se um objeto for excluído, enquanto outros objetos ainda têm referências ao OID. Um OODBMS é, portanto, um ambiente de desenvolvimento orientado a objetos de escala completa, bem como um sistema de gerenciamento de banco de dados. Os recursos que são comuns no mundo RDBMS, como transações, a capacidade de lidar com grandes quantidades de dados, índices, detecção de impasse, recursos de backup e restauração e mecanismos de recuperação de dados também existem no mundo OODBMS.


Uma característica principal de um OODBMS é que acessar objetos no banco de dados é feito de forma transparente, de modo que a interação com objetos persistentes não é diferente de interagir com objetos na memória. Isso é muito diferente de usar um RDBMSs na medida em que não é necessário interagir através de uma sub-linguagem de consulta, como SQL, nem há motivo para usar uma Interface de Nível de Chamada, como ODBC, ADO ou JDBC. As operações de banco de dados geralmente envolvem a obtenção de uma base de dados de raiz do OODBMS, que normalmente é uma estrutura de dados como um gráfico, vetor, tabela de hash ou configurá-lo e atravessá-lo para obter objetos para criar, atualizar ou excluir do banco de dados. Quando um cliente solicita um objeto do banco de dados, o objeto é transferido do banco de dados para o cache do aplicativo onde ele pode ser usado como um valor transitório que é desconectado de sua representação no banco de dados (as atualizações para o objeto em cache não afetam o objeto no banco de dados) ou pode ser usado como um espelho da versão no banco de dados em que as atualizações para o objeto são refletidas no banco de dados e as mudanças no objeto na base de dados exigem que o objeto seja reabastecido do OODBMS.


Comparações de OODBMSs para RDBMSs.


Existem conceitos no modelo de banco de dados relacionais que são semelhantes aos do modelo de banco de dados de objetos. Uma relação ou tabela em um banco de dados relacional pode ser considerada análoga a uma classe em um banco de dados de objetos. Uma tupla é semelhante a uma instância de uma classe, mas é diferente na medida em que possui atributos, mas sem comportamentos. Uma coluna em uma tupla é semelhante a um atributo de classe, exceto que uma coluna pode conter apenas tipos de dados primitivos enquanto um atributo de classe pode armazenar dados de qualquer tipo. Finalmente, as classes possuem métodos que são computacionalmente completos (o que significa que o controle de propósito geral e as estruturas computacionais são fornecidos [McF 99]), enquanto que os bancos de dados relacionais normalmente não possuem capacidades de programação computacionalmente completas, embora alguns idiomas de procedimento armazenados estejam próximos.


Abaixo está uma lista de vantagens e desvantagens de usar um OODBMS em um RDBMS com uma linguagem de programação orientada a objetos.


Vantagens.


Objetos e relacionamentos compostos: objetos em um OODBMS podem armazenar um número arbitrário de tipos atômicos e outros objetos. Assim, é possível ter uma grande classe que detém muitas classes de tamanho médio que possuem muitas classes menores, até o infinito. Em um banco de dados relacional, isso deve ser feito, tendo uma enorme tabela com muitos campos nulos ou através de uma série de tabelas menores, normalizadas, que estão ligadas através de chaves estrangeiras. Ter muitas tabelas menores ainda é um problema, uma vez que uma junção deve ser realizada sempre que se deseja consultar dados com base na relação "Has-a" entre as entidades. Também um objeto é um modelo melhor da entidade do mundo real do que as tuplas relacionais em relação a objetos complexos. O fato de um OODBMS ser mais adequado para lidar com dados complexos e inter-relacionados que um RDBMS significa que um OODBMS pode superar um RDBMS em dez a mil vezes dependendo da complexidade dos dados que estão sendo tratados.


Desvantagens.


Mudanças de esquema: em um RDBMS, modificar o esquema do banco de dados, criando, atualizando ou excluindo tabelas geralmente é independente do aplicativo real. Em um aplicativo baseado em OODBMS, modificando o esquema, criando, atualizando ou modificando uma classe persistente geralmente significa que as alterações devem ser feitas para as outras classes no aplicativo que interagem com instâncias dessa classe. Isso normalmente significa que todas as mudanças de esquema em um OODBMS envolverão uma recompilação do sistema. Também atualizar todos os objetos de instância dentro do banco de dados pode demorar um longo período de tempo dependendo do tamanho do banco de dados.


Quem está atualmente usando um OODBMS para lidar com dados de missão crítica?


Interagindo com um OODBMS.


Abaixo estão exemplos de código Java para acessar um banco de dados relacional e acessar um banco de dados de objetos. Compare o tamanho do código em ambos os exemplos. Os exemplos são para uma aplicação de mensagens instantâneas.


Código Java acessando uma ObjectStore & # 8482; base de dados.


Código Java JDBC que acessa um banco de dados DB2 da IBM e # 8482;


Código Java acessando uma ObjectStore & # 8482; base de dados.


Código Java JDBC que acessa um banco de dados DB2 da IBM e # 8482;


Código Java acessando uma ObjectStore & # 8482; base de dados.


Código Java JDBC que acessa um banco de dados DB2 da IBM e # 8482;


Lista de sistemas de gerenciamento de banco de dados orientados a objetos.


Proprietário.


Código aberto.


Descrição do aplicativo MultiEdit.


O MultiEdit permite que vários usuários, potencialmente em diferentes máquinas, editem um arquivo simultaneamente. Cada usuário tem sua própria visão do arquivo, e cada visualização inclui seu próprio cursor. Os usuários podem inserir texto em (os mesmos ou diferentes pontos) do arquivo simultaneamente. É um requisito essencial da aplicação que o conteúdo do arquivo deve sempre ser mantido consistente com as ações dos usuários.


Este projeto usa uma arquitetura Cliente / Servidor para lidar com a dificuldade de manter a consistência entre vários clientes tentando editar o mesmo documento de uma só vez. Cada documento é um objeto da classe ShareableDocument armazenado em um banco de dados orientado a objetos que é acessível remotamente através de um DocumentManager que fica no servidor e lida com solicitações de clientes. Sempre que um usuário precisa acessar um documento, ele é carregado a partir do banco de dados pelo DocumentManager e enviado para eles através da rede. A partir daí, sempre que uma edição é executada pelo usuário, o curso da tecla real e a posição do cursor são enviadas ao servidor que atualiza uma cópia na memória do objeto antes de transmitir o evento a todos os usuários que atualmente acessam o documento, incluindo o usuário que originalmente executou a edição.


A principal desvantagem do método acima é que o usuário que está digitando o documento provavelmente experimentará um atraso entre quando um caractere é digitado e quando ele aparece na GUI que depende da velocidade da rede. Além disso, se houver uma interrupção da rede ou erro semelhante, o usuário não pode editar o documento.


As salvaguardas são simplesmente solicitações ao servidor para persistir na cópia de memória do documento, que é mais eficiente do que enviar todo o documento para o servidor. ShareableDocuments não são salvos, a menos que especificamente especificado por um usuário ou quando um usuário fechar um documento. O aplicativo também permite ao usuário bloquear todo ShareableDocuments que impede que outros modifiquem os documentos, mas ainda podem ver as edições feitas pelo proprietário do bloqueio em tempo real.


Descrição das principais classes no sistema.


Usuário Esta é uma representação de um usuário do sistema que está armazenado na ObjectStore & # 8482; base de dados.


PersistableRemoteObject Esta é uma interface que descreve operações que podem ser realizadas em um objeto remoto compartilhado por vários usuários.


Proprietário Uma interface que descreve qualquer entidade que possui (ou seja, criou) um PersistableRemoteObject.


ShareableDocument Esta é uma representação de um documento que pode ser editado por vários usuários ao mesmo tempo ou bloqueado por um único usuário. Ele também está armazenado na ObjectStore & # 8482; banco de dados e implementa a interface PersistableRemoteObject.


RemoteObjectFactory Esta é uma interface que descreve a quantidade mínima de serviços que um servidor que gerencia PersistableRemoteObjects deve fornecer.


DocumentManager Esta é uma interface que descreve os métodos que são acessíveis remotamente em um objeto que gerencia ShareableDocuments. É uma subclasse da interface RemoteObjectFactory.


DocumentManagerImpl Esta é a classe real que lida com o gerenciamento de acesso a ShareableDocuments por vários usuários. Ele implementa a interface DocumentManager e é uma subclasse de Java. rmi. UnicastRemoteObject que permite que ele seja acessado remotamente.


DocumentContext Isso mantém informações em um ShareableDocument que está sendo acessado por um ou mais usuários. Uma tabela destes é mantida na classe DocumentManagerImpl para acompanhar todos os ShareableDocuments que estão sendo compartilhados de uma só vez.


ClientView Esta é a GUI com a qual o usuário interage.


ClientControl Isso faz o tratamento de eventos para o ClientView.


ClientModel Este é o modelo subjacente para o ClientView que contém estruturas de dados, mantém o estado e se comunica com o servidor. Ele implementa a interface ClientListener.


ClientListener Esta é uma interface que descreve os métodos que são acessíveis remotamente no ClientModel. O método que permite ao cliente receber eventos de teclado do servidor está nesta interface.


ClientState Este é um objeto que representa o estado atual do ClientView.


LoginDialog GUI usado para fazer logon no servidor.


AddUserDialog GUI usada para adicionar um novo usuário ao sistema.


DocumentSelectionDialog GUI usado para selecionar qual documento editar.


Diagrama de estado MultiEdit.


Decisões de Design Descartadas e Futuro Desenvolvimento Futuro de MultiEdit.


Conclusão.


Este artigo é a parte final do meu estudo indepedente supervisionado pelo Dr. Sham Navathe e Wai Gen Yee.


A Universidade das Índias Ocidentais, Mona.


A Faculdade de Ciências e Tecnologia.


Sistemas de Gerenciamento de Banco de Dados.


o Objetivos dos Sistemas de Gerenciamento de Banco de Dados.


Organizações lógicas e físicas.


Esquema e subesquema, trade-offs entre a utilização de dados.


o Controle de dados.


o Visão geral do processo de design.


o Projeto de banco de dados e o modelo Entidade-Relacionamento.


o Redução ao esquema relacional.


o Características de um bom design relacional.


o Teoria da Dependência Funcional.


o Decomposição usando dependências funcionais.


o Primeiro, segundo, terceiro.


o Boyce COdd Forma Normal (BCNF)


o Quarta forma normal.


o Álgebra relacional.


o Cálculo relacional.


o Idiomas de consulta estruturados - SQL.


o Otimização de consultas.


o Interface do usuário e ferramentas.


o Interface da Web para um banco de dados.


o Autorização em SQL.


o Segurança do aplicativo.


o Sistemas distribuídos.


o Sistemas orientados a objetos.


o Sistemas baseados no conhecimento.


RECURSOS ACADÊMICOS.


Manuais de graduação.


Horários.


Semestre 1 Semestre 2.


Recursos prospectivos / Novos Estudantes 2017/2018.


Sistemas on-line.


CONTATE-NOS.


Faculdade de Ciências & amp; Tecnologia.


A Universidade das Índias Ocidentais Mona, Jamaica.


CONTATE-NOS.


Tel: (876) 999-9999.


Fax: (876) 888-8888.


A Universidade das Índias Ocidentais.


Fax: (876) 927-2765.


Nossas 5 faculdades e 12 escolas profissionais oferecem mais de 200 programas para cerca de 15 mil estudantes de graduação, graduação e estudos contínuos.


A UWI, Mona ocupa o primeiro lugar na Jamaica entre os programas credenciados de nível terciário. Em 2012, a Universidade foi novamente um dos 100 melhores empregadores da Jamaica.


Diferença entre RDBMS e OODBMS.


Postado em 22 de abril de 2011 por Roshan Ragel.


Um sistema de gerenciamento de banco de dados orientado a objetos (OODBMS), às vezes referido como Sistema de Gerenciamento de Base de Dados de Objetos (ODMS) é um Sistema de Gerenciamento de Banco de Dados (SGBD) que suporta modelagem e criação de dados como objetos. OODBMS fornece suporte para classes de objeto, propriedade de classe e herança de método por sub classes e seus objetos. Um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS) também é um SGBD, mas que é baseado no modelo relacional. Os SGBDs mais populares atualmente em uso são RDMSs.


Conforme mencionado anteriormente, o RDBMS é baseado no modelo relacional e os dados em um RDMS são armazenados na forma de tabelas relacionadas. Assim, um banco de dados relacional pode simplesmente ser visto como uma coleção de uma ou mais relações ou tabelas com colunas e linhas. Cada coluna corresponde a um atributo da relação e cada linha corresponde a uma gravação que consiste em valores de dados para uma entidade. Os RDMSs são desenvolvidos estendendo modelos hierárquicos e de rede, que eram dois sistemas de banco de dados anteriores. Os principais elementos de um RDBMS são os conceitos de integridade e normalização relacional. Esses conceitos baseiam-se nas 13 regras para um sistema relacional desenvolvido por Ted Codd. Seguir três fundamentos importantes devem ser seguidos por um RDBMS. Em primeiro lugar, todas as informações devem ser realizadas na forma de uma tabela. Em segundo lugar, cada valor encontrado nas colunas da tabela não deve ser repetido e, finalmente, o idioma de consulta padrão (SQL) deve ser usado. A maior vantagem dos RDBMSs é a facilidade para que os usuários criem / acessem e ampliem dados. Após a criação de um banco de dados, o usuário pode adicionar novas categorias de dados ao banco de dados sem alterar o aplicativo existente. Existem também algumas limitações notáveis ​​nos RDBMSs. Uma limitação é que sua falta de eficiência ao trabalhar com outras linguas que não o SQL e todas as informações devem ser em tabelas onde as relações entre entidades são definidas por valores. Além disso, os RDMSs não possuem área de armazenamento suficiente para lidar com dados, como imagens, áudio digital e vídeo. Atualmente, a maioria dos DBMSs dominantes, como a família DB2 da IBM, o Oracle, o Microsoft Access e o SQL Server são o RDMS.


OODBMS é um SGBD que permite que a informação seja representada na forma de objetos, como é usado na programação orientada a objetos. Os OODBMSs foram desenvolvidos nos anos 80 para superar as limitações nos RDMSs, como o gerenciamento de dados grandes e complexos. OODBMS fornece um ambiente de desenvolvimento de aplicativos integrado juntando-se a programação orientada a objetos com tecnologia de banco de dados. Os OODBMSs aplicam conceitos de programação orientados a objetos, como encapsulamento, polimorfismo e herança, bem como conceitos de gerenciamento de banco de dados, como Atomicidade, Consistência, Isolamento e Durabilidade. Idiomas orientados a objetos como Java, C #, Visual Basic e C ++ podem funcionar bem com OODBMSs. Como tanto a linguagem de programação quanto o OODBMS usam o mesmo modelo orientado a objetos, os programadores podem manter a consistência facilmente entre os dois ambientes.


Embora RDBMS e OODBMS sejam ambos SGBD, eles diferem no modelo que eles usam para representar dados. OODBMSs usam modelo orientado a objetos enquanto os RDBMSs usam o modelo relacional. Ambos têm suas próprias vantagens e desvantagens. OODBMS pode armazenar / acessar dados complexos de forma mais eficiente do que RDBMS. Mas aprender OODBMS pode ser complexo devido à tecnologia orientada a objetos, em comparação com a aprendizagem de RDBMS. Portanto, escolher um sobre o outro depende do tipo e complexidade dos dados que precisam ser armazenados / gerenciados.


Publicações relacionadas:


"Diferença entre RDBMS e OODBMS". Diferença entre. 22 de abril de 2011.


Deixe uma resposta Cancelar resposta.


Tópicos em destaque.


Diferença entre o Apple iPhone 8 Plus e o Samsung Galaxy S8 Plus.


Diferença entre o Apple iPhone X e o Samsung Galaxy Note 8.


Diferença entre o iPhone 8 eo iPhone X.


Últimas postagens.


Direitos autorais e cópia; 2010-2017 Diferença entre. Todos os direitos reservados. Termos de Uso e Política de Privacidade: Legal.

No comments:

Post a Comment