热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OrientDB基本概念

OrientDB的主要功能是支持多模型对象,即支持不同的模型,如文档,图形,键值和实体对象。它包含一个单独的API来支持所有这四种模型。文档模型术语文档模型属于NoSQL数据库。这

OrientDB的主要功能是支持多模型对象,即支持不同的模型,如文档,图形,键/值和实体对象。 它包含一个单独的API来支持所有这四种模型。

文档模型

术语文档模型属于NoSQL数据库。 这意味着数据存储在文档中,并且该组文档被称为集合。 从技术上讲,文档表示一组键/值对或者也称为字段或属性。

OrientDB使用类,簇和链接等概念来存储,分组和分析文档。

下表说明了关系模型,文档模型和OrientDB文档模型之间的比较 –

关系模型文档模型OrientDB文档模型
集合类或簇
文档文档
键/值对文档字段
关系无法使用链接

图模型

图形数据结构是一种数据模型,可以按照边(弧)互连的顶点(节点)形式存储数据。 OrientDB图形数据库的思想来自属性图。 顶点和边是Graph模型的主要构件。 它们包含的属性可以使这些属性与文档类似。

下表显示了图形模型,关系数据模型和OrientDB图形模型之间的比较。

关系模型图模型OrientDB图形模型
顶点和边缘类扩展“V”(用于顶点)和“E”(用于边缘)的类
顶点顶点
顶点和边缘属性顶点和边缘属性
关系边缘边缘

键/值模型

键/值模型意味着数据可以以键/值对的形式存储,其中值可以是简单和复杂的类型。 它可以支持文档和图形元素作为值。

下表说明了关系模型,键/值模型和OrientDB键/值模型之间的比较。

关系模型键/值模型OrientDB键/值模型
Bucket类或集群
键/值对文档
不可用文档字段或顶点/边缘属性
关系不可用链接

对象模型

此模型已由面向对象编程继承,并支持类型之间的继承(子类型扩展超类型),引用基类时的多态性和编程语言中使用的对象之间的直接绑定。

下表说明了关系模型,对象模型和OrientDB对象模型之间的比较。

关系模型对象模型OrientDB对象模型
类或簇
对象文档或顶点
对象属性文档字段或顶点/边缘属性
关系指针链接

在详细介绍之前,最好了解与OrientDB相关的基本术语。 以下是一些重要的术语。

记录

可以从数据库中加载并存储的最小单位。 记录可以存储在四种类型中。

  • 文件
  • 记录字节
  • 顶点
  • 边缘

记录ID

OrientDB生成记录时,数据库服务器会自动为记录分配一个单元标识符,称为RecordID(RID)。 RID看起来像:表示簇标识号,表示簇中记录的绝对位置。

文档

文档是OrientDB中最灵活的记录类型。 文档是软输入的,由具有已定义约束的模式类定义,但您也可以在不使用任何模式的情况下插入文档,即它也支持无模式模式。

可以通过导出和导入JSON格式轻松处理文档。 例如,看看下面的JSON示例文档。 它定义了文档的详细信息。

{
"id" : "1201",
"name" : "Jay",
"job" : "Developer",
"creations" : [
{
"name" : "Amiga",
"company" : "Commodore Inc."
},
{
"name" : "Amiga 500",
"company" : "Commodore Inc."
}
]
}

RecordBytes

记录类型与RDBMS中的BLOB类型相同。 OrientDB可以加载和存储文档记录类型以及二进制数据。

顶点
OrientDB数据库不仅是一个文档数据库,也是一个图形数据库。 VertexEdge等新概念用于以图形的形式存储数据。 在图形数据库中,最基本的数据单元是节点,它在OrientDB中称为顶点。 顶点存储数据库的信息。

边缘

有一个独立的记录类型称为Edge,它将一个顶点连接到另一个顶点。 边是双向的,只能连接两个顶点。 OrientDB中有两种边缘类型,一种是常规的,另一种是轻量级的。

该类是一种数据模型和从面向对象编程范例中绘制的概念。 基于传统的文档数据库模型,数据以集合的形式存储,而在关系数据库模型中,数据存储在表中。 OrientDB遵循Document API和OPPS范例。 作为一个概念,OrientDB中的类与关系数据库中的表有最密切的关系,但是(不像表)类可以是无模式,全模式或混合的。 类可以从其他类继承,创建类的树。 每个类都有自己的一个或多个集群(如果没有定义,则默认创建)。


集群是用于存储记录,文档或顶点的重要概念。 简而言之,Cluster是存储一组记录的地方。 默认情况下,OrientDB将为每个类创建一个群集。 一个类的所有记录都存储在与该类具有相同名称的同一个群集中。最多可以在数据库中创建32,767(2 ^ 15-1)个群集。

CREATE类是用于创建具有特定名称的集群的命令。 创建群集后,可以使用群集通过在创建任何数据模型期间指定名称来保存记录。

关系

OrientDB支持两种关系:引用和嵌入。 引用关系意味着它存储与关系的目标对象的直接链接。 嵌入式关系意味着它将关系存储在嵌入它的记录中。 这种关系比参考关系更强。

数据库
数据库是访问真实存储的接口。 IT人员理解高级概念,如查询,模式,元数据,索引等。 OrientDB还提供多种数据库类型。 有关这些类型的更多信息,请参阅数据库类型。


    推荐阅读
    • Web开发框架概览:Java与JavaScript技术及框架综述
      Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
    • REST与RPC:选择哪种API架构风格?
      在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
    • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
      本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
    • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
      本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
    • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
    • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
    • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
    • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
    • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
    • MySQL 数据操作:增、删、查、改全面解析
      MySQL 数据操作:增、删、查、改全面解析 ... [详细]
    • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
      开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
    • 为何Serverless将成为未来十年的主导技术领域?
      为何Serverless将成为未来十年的主导技术领域? ... [详细]
    • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
    • 在使用C#编程语言从MySQL数据库中获取最近插入的记录ID时,我遇到了一些问题。具体来说,在执行以下SQL语句时出现了困难:`START TRANSACTION; SET @LASTID = 0; INSERT INTO Accounts (Col1, Col2) VALUES ('value1', 'value2'); SET @LASTID = LAST_INSERT_ID(); COMMIT;` 本文将详细探讨如何正确实现这一功能,并提供解决方案和最佳实践。 ... [详细]
    • 本文将深入探讨MySQL与MongoDB在游戏账户服务中的应用特点及优劣。通过对比这两种数据库的性能、扩展性和数据一致性,结合实际案例,帮助开发者更好地选择适合游戏账户服务的数据库方案。同时,文章还将介绍如何利用Erlang语言进行高效的游戏服务器开发,提升系统的稳定性和并发处理能力。 ... [详细]
    author-avatar
    福州-台江_616
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有