基于三元语义的关系数据库动态建模工具Socrates
Socrates, Relational Database Dynamic Models Make Tools
摘要 Summary
Socrates
是一个基于关系型数据库和ORM的通用数据库工具。它通过三元语义表达了对动态数据结构的存储和管理功能。使得开发人员可以在关系数据库中管理结构可变的
数据。三元语义可以方便的表达单一信息之间的关系,因此它很适合用来表达有向图,甚至有向有环的网状模型,或路径长度很长的关系。
- 预计时长:25分钟
- 难度 Level :面向中级听众
- 类别 Categories:数据库 databases
详细内容 Description
Outline
=======
.. contents:: :local:
项目背景 Background on project
---------------------------------------
* 需要建立一个数据库,支持多个统计报表输出,每个报表都是临时性的,数据量不大,但是报表的格式和内容变化很大
* 需要支持当前不能预期的数据内容
*需要支持一些网状关系模型,节点间的关系变更频繁,经常需要沿节点间的路径进行访问
* 游戏中的人物、道具等信息,展开为关系表会非常庞大,但是往往只有一部分字段有信息,此类稀疏数据结构用关系数据库表达比较浪费
需要解决的问题 Problems to solve
------------------------------------
* 数据表的业务信息有内在的一致性,为每种变化建立一个新的数据表不经济
*频繁变化结构的数据,每次调整表结构不现实
* 关系数据库的模型适合表示大量同类数据的关系,但表达深度的递归关系,如树状结构,是比较难操作的
* 一些应用,如游戏中的人物、道具等信息,展开为关系表会非常庞大,但是往往只有一部分字段有信息,此类稀疏数据结构用关系数据库表达比较浪费
项目介绍 What's socrates?
------------------------------------
*Socrates 基于三元语义模型,可以方便的表达动态的数据结构和关系
* 模型分为两个层次:条目和子句
* 每个子句是一个(主语,谓语,宾语)三元结构
* 每个主语表示一个条目,每一到多个同一主语的子句描述一个完整的条目
* 谓语表示主语拥有的特征
* 宾语表示主语在当前谓语下表达的信息内容
* 每个条目可以看成一个类字典的结构
* 谓语是可读的文本,它的命名是其唯一标识特性
* 宾语可以使用数据库平台所支持的任意数据类型
* Socrates封装关系数据库的静态强类型本质,在使用接口上表现为动态数据模型
* 访问层上,Socrates基于Python的ORM工具SQLAlchemy,可以使用SQLAlchemy的强大功能进行操作
*Socrates 在数据库层表现为一个统一序列器,若干个存储表,十个元语命令的数据行,存储表可以由用户动态添加
动机 Why socrates?
------------------------
* 小粒度数据,可以方便的对单一属性精确的访问
* 支持对数据进行类似字典操作的访问
* 每一个数据条目就是一个类似字典的结构,可以独立的增删数据,不影响其它条目
* 条目之间可以通过子句方便的建立关系
*
支持多种不同数据库,允许使用具体平台的特定数据类型
简单的演示 Basic recurrence
----------------------------------
* 在不同数据库平台上“On Command”建立一个Socrates环境
* 注册新类型、新谓语
* 添加条目,建立关系
进一步的演示 More sophisticated recurrence
-----------------------------
* 查询子句和条目
* 沿条目关系进行访问
* 访问和操作条目中的子句
* 谓词表达式
Other capabilities of socrates
------------------------------
* 性能讨论
* 并发和分布
* 异构数据库的多节点集群
结尾
----------
* Socrates 提供了灵活的数据管理方式,为动态和复杂数据的管理提供了一种通用的方式
* Socrates 在DSL和分布式集群方面还可以有所发展
* Socrates 的性能还有很大的提升空间
分享到:
相关推荐
PyCon2020 Python 实战派 —— 全自动漏洞挖掘机 pdf
python 开发者的pradise,可以看看增加经验
Pycon亚洲2018 这是我在新加坡Pycon Asia 2018上的演示文稿的补充python脚本。 该演讲的标题为“维护健壮和可维护的并发程序”。视频会话的录音可以在找到指示python脚本是使用Python 3.6.4版本编写和测试的。 ...
api-pycon2014, 我的PyCon talk"Writing RESTful Web Services with Flask"的代码 使用 Flask 编写rest式的rest 这个库包含一个完整的API项目,利用我在 PyCon 2014中讨论的技术,讨论如何构建漂亮的API以使用 Flask...
使用Python进行大数据分析和可视化Topic在2015年PYCON上海分享了9.12和北京9.19 和有效的Python函数式编程技术,工具和实践主题将在北京PyCon 2015上以9.19共享和该存储库将托管我在China PyCon 2015中共享的主题的...
#欢迎来到 PyCon 2015 的 Cloudpipe! 准备/安装 您必须在本次研讨会中使用 Python 2 并安装我们的multyvac fork: pip install vac :warning: 如果您已经安装了 multyvac,您可能想要删除~/.multyvac 。 另请...
pycon9 一个来自PyMi的Pycon9幻灯片的地方。
PyCon15ToGCal描述将 PyCon 演讲和主题演讲活动移植到 Google 日历的命令行应用程序。安装您需要在 Google 开发者控制台上创建一个,并获得日历的权限。 此应用程序需要密钥和秘密。 我强烈建议你为这个项目创建一个...
flask-pycon2014, 我的PyCon 2014教程"Flask By Example"的代码 Flask 示例我的PyCon 2014教程"Flask 按示例"的代码。要求一些以前的python 编码体验HTML和CSS的基本知识一点JavaScript肯定不会伤害到要求支持 ...
Pycon US 2019在克利夫兰举办的研讨会: 驯服Python包装的狂野西部 来自美国Pycon 2019维护者峰会的闪电演讲: 使用标准库重构代码 从Petaluma的North Bay Python 2018中可以看出: 资源 礼帽 范例程式码 lib2to3 ...
sklearn_pycon2014, 包含我的PyCon 2014 scikit文件的存储库学习教程 PyCon 2014-scikit学习教程注意:对于更新的教程内容,请参见 http://github.com/jakevdp/sklearn_tutorial/ 。:杰克 VanderPlas电子邮件:...
PyCon 2015 Scikit学习教程 注意:有关更新的教程内容,请参见 授课教师:Jake VanderPlas 电子邮件: 推特: github的: 该存储库将包含与我的PyCon 2015 scikit-learn教程相关的文件和其他信息。 视频 本教程...
pycon-2017-eda-tutorial, PyCon 2017教程的资源,"Exploratory data analysis in python" EDA教程这个 repo 保存了为教程开发的内容,在 python的Exploratory探索性数据分析中,在 2017年05月17日的PyCon 。...
pycon_reco 抓取 Pycon 谈话描述、主题建模,并使用主题构建推荐器。 在 nbviewer 中查看笔记本
PyCon India 2018申请PyConIndia的移动应用要求:Kivy安装: 依赖关系从pip安装pip install -r requirements.txt在制品要测试安装kivy并运行以下命令: $ python eventsapp/main.py -m screen:droid2,portrait -m ...
新的PyCon Italia网站的monorepo,基于Django,Strawberry,NextJS和React。 如何设定 该项目由两个服务组成,一个后端和一个前端。 请按照的来设置后端。 注意: 当前,要运行前端,您还需要启动并运行后端,...
staticpyconPyCon China 2014 官网生成工具2015 官网发布分支:发布:代理:构建环境配置virtualenv venv-foo # 预先 .gitignore 了 venv-* 和 test 所以不用担心. ./venv-foo/bin/activatepip install -r requirements...
为Pycon APAC 2018准备 先决条件 在本研讨会中,我们将利用免费的Azure笔记本平台,使您不必在计算机上进行任何设置。 Azure Notebooks是一项免费服务,它提供Jupyter Notebooks以及R,Python和F#的支持包。 这项...
PyCon_UK_2007_PyQt_and_Qt_Designer.pdf
PyCon 2015中国示例代码免费软件:MIT许可证安装去做变更日志0.1.0 在里面贡献$ git clone https://github.com/akun/pycon2015.git$ cd pycon2015$ virtualenv pycon2015_venv$ source pycon2015_venv/bin/activate$...