几年前,连研究人员都不愿使用DNA来存储数据,觉得这么做太超前了,不具有任何实用价值。如今,你可以使用合适的软件和生化模块来扩展PostgreSQL,并在DNA上运行SQL。
使用DNA存储数据乍一听很奇怪,实际上大有意义。现在研究人员已取得了重大突破,他们因而能够将DNA存储整合到PostgreSQL这种流行的开源数据库中。

序列确定的聚合物(sequence-defined polymers)具有确定的单体序列,确定的化学结构和多个小分子单体连接而成。所以这类聚合物如果在一条链中存在不同种类的单体,那么可以为不同类型的单体赋值,因此这些聚合物天然具有存储信息的功能。
针对DNA,它是由四种不同的单体(脱氧核糖核苷酸,包含四种碱基A,C,G,T)组成的主链为磷酸酯的脱氧核糖核酸。DNA是序列确定的生物大分子,它是绝大多数生物体的遗传物质,本身携带大量的遗传信息。这些遗传信息体现在两个方面:一是不同类型的碱基,二是碱基之间的相对序列。
如果把碱基进行赋值,比如A & T = 0, G & C = 1,那么就能把化学信号转变成数字信号。这就是一个二进制的数据存储材料。
所以,用DNA进行数据存储没毛病。
与使用硅或磁性介质(其工作原理基于将状态存储为1和0序列的能力)一样,我们可以使用DNA,存储A、G、C和T组成的序列。但是这实际上如何运作?——该如何将数据写入到DNA和从DNA中读取数据?
这可能听起来太过遥远,但分子技术的进步使其变得切实可行,尽管并不称心如意。这一切意味着,确实能够以一种可以在DNA上存储和检索信息的方式来编码信息,分别利用DNA合成和DNA测序。比如说,微软已展示了世界上第一个自动化的DNA数据存储和检索系统。
天然存在的DNA呈现有两条核苷酸链的双螺旋这种结构。相比之下,用于数据存储的DNA是单链核苷酸序列,又叫寡核苷酸(oligo),它是使用每次一个核苷酸来组装DNA的化学过程合成的。
将结构化数据存储在数据库系统中,后端使用DNA,并通过SQL来查询,这在当前已成为现实。
研究人员为PostgreSQL构建了归档和恢复工具(pg_oligo_dump和pg_oligo_restore),这些工具在DNA上对关系数据执行感知模式的编码和解码,然后他们用这些工具将12KB TPC-H数据库归档到DNA,执行体外计算,然后再恢复该数据库。
这意味着现在DNA存储还可以支持SQL操作,选择性地访问和处理部分数据。
虽然目前这种技术仅仅处于起步阶段,并且成本极高,但是,一切皆有可能,这些困难不会阻挡科学的进步。
如果,SQL可以操纵DNA,用SQL写个DNA,消灭所有的癌细胞;
如果,SQL可以操纵DNA,用SQL改写容貌,SQL整容公司了解一下;
如果,SQL可以操纵DNA,用SQL存储知识,唐诗三百首出口成章;
…
来,说出你的梦想!





