法国通信系统工程师学校与研究中心(Eurecom)数据科学系助理教授 Appuswamy 和伦敦帝国理工学院 SCALE 实验室负责人 Heinis 等人近期发表了一篇关于在 DBMS 存储层操作 DNA 的论文《OligoArchive: Using DNA in the DBMS storage hierarchy》。

论文研究了在数据库存储层次结构中集成 DNA 的问题。更具体地,其提出了以下两个问题:

  • 数据库经验如何帮助优化 DNA 编码和解码?
  • 生化机制如何应用于对 DNA 操作进行体外、近数据的 SQL 查询处理?

为了回答这两个问题,该研究引入了一个叫 OligoArchive 的架构,这是一种使用基于 DNA 的存储系统作为关系数据库归档层的架构。

DNA 的存储系统简单讲也就是指基于 ATCG 这些碱基所组成的一套存储信息的方案,类比 0/1 二进制,这种存储系统具有四进制。用 DNA 作为存储介质,优势是容量大与存储时间长,有数据指出 1 克 DNA 能够存储大约 2 拍字节,相当于大约 300 万张 CD;同时用 DNA 存储数据保存时间可能长达数千年;此外与硬盘、磁带等存储介质不同,DNA 不需要经常维护,而且在读取方式上,DNA 存储不涉及兼容性问题。

天然存在的 DNA 是有两条核苷酸链的双螺旋结构,而用于数据存储的 DNA 是单链核苷酸序列,又叫寡核苷酸(oligo),它是使用每次一个核苷酸来组装 DNA 的化学过程合成的。

OligoArchive 架构通过将基于磁带的归档层替换为基于 DNA 的归档层来改变 DBMS 存储层次结构,论文具体介绍了数据库引擎和 DNA 存储设备之间的分工,以及 DNA 存储设备应在 OligoArchive 中使用的接口。

数据库与 DNA 存储分工是这样的:数据库系统执行关系数据和寡核苷酸序列之间的转换。在 put 操作期间,DNA 存储系统合成 DNA 链并将它们存储在库中;在 get 操作期间,对 DNA 链进行测序并将读数返回。

研究人员通过为 PostgreSQL 构建归档和恢复工具(pg_oligo_dump 与 pg_oligo_restore)证明 OligoArchive 可以在实践中实现,这些工具执行模式识别编码和解码 DNA 上的关系数据,并使用这些工具将 12KB TPC-H 数据库归档到 DNA,进行体外计算,并将其恢复。

论文中的实验表明,使用合成 DNA 存档和恢复数据不仅可行,而且还可以利用数据库知识经验优化 DNA 编码和解码过程,甚至直接在 DNA 上执行 SQL 操作

具体内容查看论文:

http://cidrdb.org/cidr2019/papers/p98-appuswamy-cidr19.pdf

转自:https://www.oschina.net/news/108488/oligoarchive-using-dna-in-the-dbms-storage-hierarchy

直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证相关推荐

  1. 大数据有多可怕?科学家成功在DNA上编写sql,或能实现永生

    几年前,连研究人员都不愿使用DNA来存储数据,觉得这么做太超前了,不具有任何实用价值.而在前不久,科学家宣称可以使用合适的软件和生化模块来扩展PostgreSQL,并在DNA上运行SQL,一时间关于大 ...

  2. html页面执行sql语句,关于在页面上执行sql语句

    在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句. html代码如下: New Document 执行 输入的sql: 然后最重要的是如何获取选中的文本并且让其在后台执 ...

  3. Java 8 如何以并发方式在同一个流 上执行多种操作

    Java 8 中,流有一个非常大的(也可能是最大的)局限性,使用时,对它操作一次仅能得到一个处理结果.实际操作中,如果你试图多次遍历同一个流,结果只有一个,那就是遭遇下面这样的异常: java.lan ...

  4. oracle:使用cmd命令在远程oracle服务器上执行sql语句

    在自动化测试过程中有时候我们需要自动跑一些sql脚本来维护自动化测试数据库,那么这时候我们可以选择批处理命令来执行sql语句. 环境准备: 执行sql服务器需要安装有oracle客户端. 步骤如下: ...

  5. 字段为NULL导致MyBatis在Oracle上执行SQL报错,无效的列类型

    在oracle中的null为不确定的意思,存储null时,mybatis解析不到oracle字段类型.所以写SQL时最好加上具体的字段类型.如 insert into user(id,name,age ...

  6. 怎样在sqlite3上执行SQL语句

    1. 简单sql语句使用: 在任意目录下新建一个数据库,比如student . 命令: sqlite3 student.db 出现如下提示: SQLite version 3.7.2 Enter &q ...

  7. linux上执行sql乱码,linux sqlplus乱码怎么办

    linux sqlplus乱码怎么办?Linux下SQLPlus中文乱码处理 1.首先查询数据库字符集SQL> select userenv('language') from dual; USE ...

  8. HTML5:插入视频及在视频层面上执行的操作

    DEMO:http://craftymind.com/factory/html5video/CanvasVideo.html   点击播放的视频将产生奇特的效果. 注:请使用FF及Chrome浏览器浏 ...

  9. 如何在多个SQL Server上执行作业

    介绍 (Introduction) In earlier chapter, we explained how to run queries in multiple SQL servers using ...

最新文章

  1. Citrix Synergy 2014 重要信息快速一览
  2. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
  3. Node.js学习(篇章一)
  4. jQuery 1.11 / 2.1 beta 版发布
  5. Linux学习-0927
  6. android stuido 快捷键
  7. 玛雅Maya 2022 for Mac(三维动画制作软件)
  8. 如何批量新建文件夹并命名
  9. Django下载、安装
  10. Arduino 和 TB6612FNG 驱动直流电机
  11. Ps钢笔工具及其附属工具的用法
  12. OpenMAX编程-音视频等组件介绍
  13. 安卓原生系统_全球首个原生安卓车载系统实测!操作流畅 可跟手机媲美
  14. linux命令行查地图,linux n地图 命令
  15. jQuery unload事件
  16. ps命令 proc文件系统
  17. 穿越寒冬春暖花开,当下便是在社科院杜兰金融管理硕士项目读研的好时光
  18. vue声明周期_Vue生命周期的理解
  19. 两台电脑组件局域网,一方访问对方mysql数据库;一方充当服务器,对方充当客户端
  20. 2018网易游戏校招笔试题

热门文章

  1. matlab speex的语音处理模块_基于MATLAB的条形码识别系统[GUI,可识别几十个图片]...
  2. canvas 绘制直线 并选中_在画布中使用路径-Canvas的基本操作
  3. docker ubuntu镜像_macOS 下使用 Docker 搭建 ubuntu 环境
  4. idea安装activiti流程设计器_整合Activiti6.0流程设计器 | 字痕随行
  5. struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
  6. visual2019没有勾选的在如何加入_没有预留期权池,如何激励新加入者?
  7. LOGO设计没有灵感?5种方法来寻找标志设计的灵感和想法
  8. [设计纹理素材]可爱手绘淡雅清新图案花样背景素材
  9. Madagascar中的宏定义--圆周率PI
  10. 运行 sudo 时会发生什么?