- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用MongoDB实现语义数据库- 第1部分
就像我先前所写的:
语义数据库:概念。体系结构和实现。( c ) 操作中的语义数据库( )使用mongodb聚合器的$lookup 。
语义数据库是一种新型的数据库存储。 因为数据库引擎还不存在,所以我们必须在现有引擎之上构建它。 在以前的文章中,我讨论了如何在SQL数据库之上构建语义数据库。 本文将探讨如何在 NoSQL 数据库之上构建语义数据库,并说明一些使用 NoSQL 数据库的优点。
MongoDB版本的出现,使得( 真实的) 变得更容易,因为版本 3.2支持与 $lookup 聚合器的LEFT OUTER 联接。
本文介绍如何在MongoDB中为语义数据库创建基本CRUD操作。
第二部分将介绍一个真实的例子,并且无疑会发现本文中的实现缺陷。 虽然第一部分涉及使用单个语义类型的关系层次结构,第二部分将讨论语义类型之间的关系。
第三部分将是一 !
代码在哪里?
代码在GitHub上: /cliftonm/mongodbSemanticDatabase
由于这是一个不断变化的工作,请从那里下载最新的代码。 例如本文中存在的一些 Newtonsoft ( 特别是 JObject)的使用已经在最新的实现和测试中取代了 BsonDocument。
语义数据库的基本概念
基本上,语义数据库捕获关系。 有两种主要的关系::
· static,将结构( 赋予意义) 定义为语义术语( 符号)的隐式关系。 它们通常用面向对象编程有一个和的相同术语表示。
· 在语义术语和动态关系中,关系本身有意义的static 或者动态显式关系,而动态关系可以随着时间的推移而改变。 在编程中,这些关系通常在代码中隐式表达,例如字典或者它的他 key-value 对集合。 动态关系通常有一个时间框架--一个开始和结束。
我已经在面向关系编程的系列中编写了关于显式动态关系的文章:
罗密欧和朱丽叶关系定位程序。你真的想要敏捷? 关系导向程序在敏捷项目管理中的附加作用。
语义数据库实际上结合了语义和relationality的特性,我们将在这里演示。
一个 static的隐式语义关系示例
人的NAME 是隐含语义关系的一个很好的例子。 ( 但并非在所有文化中,当然在文化中也存在差异)的人名由第一个 NAME 和最后一个 NAME 组成。 符号名字和姓氏本身就是符号姓名的专用化。 最后,符号姓名是符号( 在这里数据类型中)string的专门化。这些都是有一个还有,它是一种is。
显式关系的示例
特殊语义类型之间存在关系,我们可以将它们分为 static 和动态关系。
static 关系示例
固定关系是那些从不随时间变化的。 例如一个人在一生中总是与另外两个人,mom和dad 。有关系,当然,人和出生星座之间的关系是一个动态的关系。
动态关系的示例
static 关系不同,不是每个人都有一个儿子或者女儿。 这种关系可能会出现,当它发生时,它与特定的时间戳关联。 人的NAME 可以是动态关系--考虑昵称和别名。 所有权,住宅,婚礼,宗教属性,唱片表,聚会属性--这些是潜在动态关系的例子。 大多数关系是动态的,在特定时间间隔内发生( 可能是重复的) 。
显式关系本身就是语义
诸如mom。女儿。共和党人。Buddhist等关系是语义。 它们表示一种关系或者一种状态,这样我们就可以说:
[X] 是 [Z]--表示这种关系,比如的[Y],marc是Elisabeth的儿子
或者
[X] 是一个 [Y]--表示一个关系状态,例如,marc是一个 Anthroposophist
或者
[X] [Y] [Z]。--表示一个活动,如在marc拥有一个 cat
这些都是语义上的( 哈哈哈哈) 描述关系。 如果我们说有状态,比如。[X] 是一个 [Y],我们可以以把这个转化为介词短语,变成[X] 是带有 [Y]的[Z]或者者类似。 例如Marc是个男人作为一种状态可以用关系式描述,无论哪种情况,我们都做了一些有用的--,我们已经将它的明确地描述了Marc与性别的关系。 尽管使用语言语义足够了 !
结构关系与符号关系
语义数据库必须捕获层次结构。结构。符号以及符号与它的他符号之间的关系。 例如如果有两个符号,一个用于人的NAME,另一个用于地址,则可以轻松查询非典型关系: 给我所有名字的第一个名字也是街上的街道名称。
NoSQL 数据库的优势
虽然这是一个可以以在SQL数据库中轻松想象的查询,但它假定该模式已经经存在。 NoSQL 数据库的优点在于架构本身是动态的:
· 隐式符号的结构( 考虑名称和地址在区域性之间的差异) 。
· 可以轻松添加新符号( 只需添加一个新集合) 。
· 可以以轻松添加符号之间的新关系( 简单地添加与。两个
您可能关注的文档
最近下载
- 2024大学生人文知识竞赛题库及参考答案.docx VIP
- 2025三年级上册道德与法治 第5课《走近科学家》(第二课时)教学课件.pptx
- 四年级上册道德与法治课件第四课时与家务活“签约”人教部编版.ppt VIP
- 第三次全国土壤普查耕地质量等级评价技术规范.pdf VIP
- UVmini-1240使用指南 岛津紫外可见光分光光度计.pdf VIP
- 【2024】人教鄂教版科学六年级上册每课教学反思(带目录) .pdf VIP
- 教学-高中物必修一、二、三基本知识背记检查清单大傻B.ppt VIP
- 2025年新能源太阳能光伏产业发展白皮书.docx VIP
- 设备管理成熟度(星级)评价准则.pdf VIP
- GB50231-2009 机械设备安装工程施工及验收通用规范.docx VIP
文档评论(0)