保存资料【数据库】

为什么要学数据库?

数据库是一种管理数据的计算机系统,发展了几十年了。在现在的大数据时代,数据库从最初的关系型数据库发展出新的一些非关系型数据库,比如key-value结构、面向文档结构等。尽管如此,关系型数据库仍然具有重要的地位。

科研工作同样涉及到数据的采集、保存、分析和管理。传统的通过Excel软件处理数据的方法有其便利之处,但也存在一些问题:

  1. Excel的说明性功能较少。经常出现打开很久之前使用过的一个Excel文件,发现自己不记得这个字段是什么意思,甚至这个文件有什么作用:这些CSV文件都是些啥?。此时能帮助你的可能就是文件名、每一列的列名、某些列或单元格的公式。如果你还是想不起来,就比较尴尬了。在大多数数据库里,不管是表格还是字段都有专门的注释栏,能提供更多的说明信息。
  2. Excel的组织性较差。除非你有很好的文件管理习惯,否则你的Excel数据文件应该是散落在硬盘的各个地方,这也是你容易忘记数据含义和重要性的一个重要原因。数据库的是专门管理数据的,不同主题的数据可以用不同的库区分,易于分门别类。
  3. Excel的权限管理不足。基本上只能用一种文档打开密码保护数据,缺乏对不同用户的权限管理。这方面数据库强大很多,可定义不同的组和用户,设置不同的数据访问权限。这对于大型的实验室而言很有用,有利于核心数据的保护和团队协作。
  4. Excel的多表增删改查效率不高。如果你能掌握很多Excel的技巧,甚至会VBA编程,那么Excel是一个非常强大的工具。但即便如此,和SQL语句比起来,Excel处理复杂数据的效率还是要差一些。这主要是因为关系型数据库在建立的时候就设计好了多个表之间的关系,以便SQL实现复杂的关联查询。

综上,还是建议学有余力的同学学习数据库的使用,打造自己的数据宝藏。

几点建议

  1. 数据库软件的选择。我之前使用MySQL(已被Oracle收购),但考虑到美国的制裁建议慎重使用MySQL、Oracle、SQL Server等数据库软件,可以考虑PostgreSQL、MariaDB等开源且未被收购的数据库软件。此外,国产的TiDB、GaussDB、Ocean DB也方兴未艾。
  2. 数据库管理软件。一些数据库软件在安装的时候自带管理软件,不过也有非常优秀的第三方管理软件,如Navicat。由于Navicat收费,我常用HeidiSQL,能兼容大部分的开源数据库,故推荐。
  3. 数据库的学习。必须认真学习SQL语言,网上教程很多,比如菜鸟教程网站提供了PostgreSQL等数据库的学习教程。各类数据库对SQL语言都有一些扩展,但大同小异。学会了SQL之后,可以再学习ORM思想、体验key-value型数据库,大致了解数据库的发展趋势。
  4. 数据的收集。在导出和收集数据的时候,尽量使用便于和数据库交互的格式,比如CSV、SQL格式等。这些格式实际上都是文本文件,可以被进一步压缩,以便降低数据大小。
  5. 数据表的管理。尽量避免通过数据库管理软件手动建表。建议在Python等程序中通过SQL命令或ORM框架完成数据表的全部操作,比如建表CREATE和删表DROP等。这样做的好处是所有的数据库操作都能被细微修改、完整记录、精确复现、自动执行。总之,能用程序完成数据处理的各项工作的话,就别用其他方式。

更多的建议,待补充完善~