直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证
法国通信系统工程师学校与研究中心(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 验证相关推荐
- 大数据有多可怕?科学家成功在DNA上编写sql,或能实现永生
几年前,连研究人员都不愿使用DNA来存储数据,觉得这么做太超前了,不具有任何实用价值.而在前不久,科学家宣称可以使用合适的软件和生化模块来扩展PostgreSQL,并在DNA上运行SQL,一时间关于大 ...
- html页面执行sql语句,关于在页面上执行sql语句
在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句. html代码如下: New Document 执行 输入的sql: 然后最重要的是如何获取选中的文本并且让其在后台执 ...
- Java 8 如何以并发方式在同一个流 上执行多种操作
Java 8 中,流有一个非常大的(也可能是最大的)局限性,使用时,对它操作一次仅能得到一个处理结果.实际操作中,如果你试图多次遍历同一个流,结果只有一个,那就是遭遇下面这样的异常: java.lan ...
- oracle:使用cmd命令在远程oracle服务器上执行sql语句
在自动化测试过程中有时候我们需要自动跑一些sql脚本来维护自动化测试数据库,那么这时候我们可以选择批处理命令来执行sql语句. 环境准备: 执行sql服务器需要安装有oracle客户端. 步骤如下: ...
- 字段为NULL导致MyBatis在Oracle上执行SQL报错,无效的列类型
在oracle中的null为不确定的意思,存储null时,mybatis解析不到oracle字段类型.所以写SQL时最好加上具体的字段类型.如 insert into user(id,name,age ...
- 怎样在sqlite3上执行SQL语句
1. 简单sql语句使用: 在任意目录下新建一个数据库,比如student . 命令: sqlite3 student.db 出现如下提示: SQLite version 3.7.2 Enter &q ...
- linux上执行sql乱码,linux sqlplus乱码怎么办
linux sqlplus乱码怎么办?Linux下SQLPlus中文乱码处理 1.首先查询数据库字符集SQL> select userenv('language') from dual; USE ...
- HTML5:插入视频及在视频层面上执行的操作
DEMO:http://craftymind.com/factory/html5video/CanvasVideo.html 点击播放的视频将产生奇特的效果. 注:请使用FF及Chrome浏览器浏 ...
- 如何在多个SQL Server上执行作业
介绍 (Introduction) In earlier chapter, we explained how to run queries in multiple SQL servers using ...
最新文章
- Citrix Synergy 2014 重要信息快速一览
- WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
- Node.js学习(篇章一)
- jQuery 1.11 / 2.1 beta 版发布
- Linux学习-0927
- android stuido 快捷键
- 玛雅Maya 2022 for Mac(三维动画制作软件)
- 如何批量新建文件夹并命名
- Django下载、安装
- Arduino 和 TB6612FNG 驱动直流电机
- Ps钢笔工具及其附属工具的用法
- OpenMAX编程-音视频等组件介绍
- 安卓原生系统_全球首个原生安卓车载系统实测!操作流畅 可跟手机媲美
- linux命令行查地图,linux n地图 命令
- jQuery unload事件
- ps命令 proc文件系统
- 穿越寒冬春暖花开,当下便是在社科院杜兰金融管理硕士项目读研的好时光
- vue声明周期_Vue生命周期的理解
- 两台电脑组件局域网,一方访问对方mysql数据库;一方充当服务器,对方充当客户端
- 2018网易游戏校招笔试题
热门文章
- matlab speex的语音处理模块_基于MATLAB的条形码识别系统[GUI,可识别几十个图片]...
- canvas 绘制直线 并选中_在画布中使用路径-Canvas的基本操作
- docker ubuntu镜像_macOS 下使用 Docker 搭建 ubuntu 环境
- idea安装activiti流程设计器_整合Activiti6.0流程设计器 | 字痕随行
- struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
- visual2019没有勾选的在如何加入_没有预留期权池,如何激励新加入者?
- LOGO设计没有灵感?5种方法来寻找标志设计的灵感和想法
- [设计纹理素材]可爱手绘淡雅清新图案花样背景素材
- Madagascar中的宏定义--圆周率PI
- 运行 sudo 时会发生什么?