生物医学数据库简介-张国庆老师PPT整理
目前,大量的原始数据存放在众多的开放存取数据库中。随着新一代技术在实验室中变得越来越流行,大型数据集将变得比现在更加普遍。持续更新,准确审编,有效分析以及对所有这些数据的精确解释是一项挑战。总的来说,数据库开发和生物定位是努力理解这种日益严重的数据泛滥的最前沿。
各类数据的特点
生物医学大数据的基本特点:多尺度、高维度、异质性、复杂体系
生命科学基础研究数据:种类多 质量高 机理性 结构化+知识化
生物医学核心研究数据:高维度 结构化 有设计+质控
自然个人真实生活数据:非标、质杂、有偏、实时、量大、难控
生物医学数据库特征:持续更新,准确的审编,有效的分析,专业的呈现
数据库基本功能:
检索
简单检索(一键检索)
输入关键词,按照数据库内置的检索逻辑,获取符合条件的数据
方便用户快速熟悉(部分数据库有浏览功能)
复杂检索(组合检索)
选择需要检索的字段,按照与、或的关系自由组合查询需求。
面向专业用户,精准搜索结果
检索语法
大型数据库支持语法级的查询,用户熟悉查询条件,直接输入查询语句
耗时操作:排序, NOT查询,聚合分组,多层关联
优化策略:预编译,数据库缓存,数据库优化
结果列表
按照查询条件,展示符合条件的结果。展示最体现数据特点的内容(物种,数量,大小等)
常见功能包括:
1 结果数量:直观感受检索条件是否合理
2 分页浏览:提高用户界面友好性
3 导出结果:一般导出为csv格式
4 排序:部分中小型数据库提供
结果筛选
根据用户的需求,提供更多的属性,供用户缩小数据范围,更精准地找到结果。
持续根据数据特点优化筛选条件。
记录展示
尽可能详细的展示数据特点/仅可能提供数据的跨库关联/推荐相关数据
总结:数据库的特性
数据库的基本功能:检索,结果列表,结果筛选,结果展示。
数据库的增值功能:更新,审编,分析,可视化。
其他功能:数据审计与操作日志、数据备份与安全。
数据库的更新
维持数据库活力的基本保证。
主要更新方式:
-
用户提交数据:数据库成熟后的主要更新方式,在得到用户信任后,用户自发提交数据。
-
维护团队采集数据:数据库在被充分认可之前的主要更新方式,包括定期更新与不定期更新。
数据审编
数据格式符合数据库要求
数据内容完整,正确
内部逻辑合理
数据展示
• 表格式展示(化合物)
• 适用于数据字段长度变化不大
• 导出后可以直接分析,机器友好
• 列表式展示(文献,网页)
• 适用于不同记录的数据长度差异较大
• 非结构化文本,阅读友好
• 可视化浏览
• 基因组浏览器
• 指标变动趋势图、柱状图
数据分析
• 补充的检索途径
• 序列搜索(Blast):重度资源消耗型服务
• 结构搜索(小分子结构)
• 化学反应检索(拓扑图)
• 实时分析
• 在秒/分内能够完成计算
• 在线计算
• 需要分/小时内才能完成
• 生成任务编号,提供独立的结果查看界面,或者邮件通知
• 离线计算
• Mapping,Variation Calling、InterProScan等操作
• 需要多线程甚至集群计算,严格限制用户数量和计算任务规模
注意:开发环境和发布环境的差异、资源是否足够
数据汇总与统计
• 静态统计
• 无法反应数据更新
• 预先计算
• 独立的统计表格
• 非高峰时段更新
• 实时统计
• 数据无延时
• 性能影响
注意:
设计合理的统计类别
了解数据规模
提供分类导航
数据审计与操作日志
重要数据的修改情况
• 数据库自带工具(日志)
• 程序开发时记录修改情况
敏感数据的访问情况
• 数据库自带审计工具(日志)
• 服务器访问日志
• 程序开发
优点:
修改可溯源
实时监控
备查
缺点:
增加开发量
影响性能
数据备份与安全
一般依托数据库管理工具
• 异盘备份
• 异机备份
• 异地备份
• 定期确认备份可恢复
增量备份与全库备份相结合
• 自动备份
• 检查备份结果
数据安全
• 操作系统安全(普通账号,专用账号)
• 数据库安全(根据需要授权)
• 应用程序安全(防全库下载,限IP,限数量),及时修复安全漏洞
生物医学知识库-二级数据库
知识库的关键特征
关联:与其他类型的数据有生物学/统计上的关系。
集成:生化、分子、细胞等实验、组学实验、预测数据、文献数 据,保留证据。
审编:软件工具自动化质控,人工校对结果,知识分级。
生物医学数据库与知识库开发概述
数据汇交
•数据格式 •业务流程 •质控措施
数据管理
•实验信息 •样本信息 •组织方式
数据共享
•可视化 •查询浏览 •批处理
分析挖掘
•分析工具 •单次分析时间 •资源需求 主要两点:安全、性能。
建立数据库之前需要思考的问题。
1 做什么-限定数据范围
明确数据的类型,区分核心数据和外围数据。约定数据格式。
2 在哪儿-知晓数据来源
谁提供数据,自己实验室或者合作实验室或者公共数据库?是什么阶段的数据,原始数据,质控后的数据,或者分析后的数据?
3 有多少-规划存储和计算需求
每类数据有多少条?需要多少存储空间
4 活多久-更新方式与频率
在线提交,后台提交,直接操作数据库?
5 谁来用-约定共享方式
谁都可以访问吗?是否进行权限控制?
数据获取与入库
人工通过界面录入(电脑或平板电脑)
人工提交结构化数据(约定好CSV、Excel、XML、JSON等格式)
第三方数据访问接口(医疗数据定期开放)
自动上传(FTP为代表,实验数据)
仪器接口(实验数据)
数据整理?标准化,结构化,质量控制。
最容易被忽视的工作?直接决定数据库质量的工作!
数据库基本概念
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
数据入库关键概念-ETL(详见PPT)
ETL即数据抽取Extract、转换Transform、装载Load的过程
表-文件:从源表到目标表;从查询源到目标表 文件-表:从表到外部文件(txt/csv)或者从外部文件到目标表
数据存储方式
• 文件存储
关系型数据库
• MySQL适用于小型数据库,有免费的社区版使用
• Oracle/Sql Server适用于大中型数据库,必须购买License
• ACID(原子性Atomicity、一致性Consistency、隔离性Isolation、持久性 Durability)良好
• 横向扩展性能有限,部署相对简单
NoSQL数据库/列式数据库
• 适用于海量数据
• 横向扩展性能良好,分布式部署
• 存储、搜索与挖掘可以分离
关系数据库处理大数据遇到的问题
面对高并发读写的需求,数据库读写压力巨大,硬盘IO无法承受。
面对海量数据,数据库存储记录数量有限, SQL查询效率极低。
横向扩展艰难,无法通过快速增加服务器节点实现,系统升级和维护造成服务不可用。
NoSQL处理大数据的优势
易扩展,数据之间无关系,这样就非常容易扩展。
灵活的数据模型,可以随时存储自定义的数据格式。而在关系数据库里,增删字段是件非常麻烦的事情。如果是大数据量的表,增加字段简直就是一-个噩梦。高可用,通过复制模型实现高可用性。
高性能,得益于数据无关系性,数据库的结构简单,这样就有非常高的读写性能,尤其在大数据量下。
什么是NoSQL ?
NoSQL是Not Only SQL的缩写,而不是Not SQL,它不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。
相比传统数据库,叫它分布式数据管理系统更贴切,数据存偖被简化灵活,重点被放在了分布式数据管理上。
分布式数据管理系统的CAP原理三要素
一致性(Consistency)
可用性(Availability)
分区容忍性(Partition tolerance)
CAP定理
在分布式数据管理系统中,这三个要素最多只能同时实现两点,不可能三者兼顾。
分区容忍性是基本要求,对于大多数web应用,牺牲-致性而换取高可用性,是目前多数分布式数据库产品的方向。
弱事务性
在一些要求事务一致性较高、 业务逻辑比较复杂,或者一些需要复杂分析查询的环境中, NoSQL难以担当重任。
弱联表查询
只能提供简单的查询,无法进行多表联合查询等复杂的查询操作。
MongoDB简介
一个基于分布式文件存储的数据库。由C+ +语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的产品。
它支持的数据结构非常松散,是类似JSON的BSON格式,因此可以存储比较复杂的数据类型。
它最大特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,支持MadReduce功能。
适用场合 网站数据,实时的插入,更新与查询。 由于性能很高,可做持久化缓存层。 存储大尺寸,低价值的数据。高伸缩性的集群场景。 BSON格式非常适合文档化数据的存储及查询。
不适用场合 高度事务性的系统,例如银行或会计系统。 传统的商业智能应用,针对特定问题的B数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
补充
ACID特性
数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。(执行单个逻辑功能的一组指令或操作称为事务)
1. 原子性
原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
可采用“A向B转账”这个例子来说明解释
在DBMS中,默认情况下一条SQL就是一个单独事务,事务是自动提交的。只有显式的使用start transaction开启一个事务,才能将一个代码块放在事务中执行。
2. 一致性
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
如A给B转账,不论转账的事务操作是否成功,其两者的存款总额不变(这是业务逻辑的一致性,至于数据库关系约束的完整性就更好理解了)。
保障机制(也从两方面着手):数据库层面会在一个事务执行之前和之后,数据会符合你设置的约束(唯一约束,外键约束,check约束等)和触发器设置;此外,数据库的内部数据结构(如 B 树索引或双向链表)都必须是正确的。业务的一致性一般由开发人员进行保证,亦可转移至数据库层面。
3. 隔离性
多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
事务最复杂问题都是由事务隔离性引起的。完全的隔离性是不现实的,完全的隔离性要求数据库同一时间只执行一条事务,这样会严重影响性能。
关于隔离性中的事务隔离等级(事务之间影响),参见相应博文
4. 持久性
这是最好理解的一个特性:持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。(完成的事务是系统永久的部分,对系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持)
write ahead logging:SQL Server中使用了WAL(Write-Ahead Logging)技术来保证事务日志的ACID特性,在数据写入到数据库之前,先写入到日志,再将日志记录变更到存储器中。