经典黑书,程序员不得不品的一环。没有看过黑书的人只能度过一个相对失败的一生。
数据库管理系统(DataBase-Management System,DBMS)由一个相互关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库(database),其中包含了关于某个企业的信息。DBMS的主要目标是提供一种可以方便、高效地存取数据库信息的途径。
在我初次学习数据库系统的时候,搞混过DBMS和DB的概念。
DBMS是软件,DB是文件。比如给你个csv文件(excel的文件后缀),这是数据库。给你一个打开csv的软件,比如Microsoft Excel,这是DBMS。像MySQL,Redis这种就属于DBMS,更具体的说就是MySQL这些DBMS帮你搞定了如何从磁盘上读取数据、数据之间的关系等基础操作。
数据库文件还有很多形式,有的直接就是一堆二进制文件,又或者是一堆字节数组(bytes[])存储到txt文本里。如果你纯人工对几GB甚至几百PB的二进制或者字节数组操作......有点难以想象的坐牢。
你也可以自己写个DBMS。搞定数据存储格式、存储和读取方法,还有数据之间的关系(如果是关系型数据库的话),就能实现一个比较基础的DBMS了。
配套的数据库管理工具也有很多,除了常见的商业化软件,像navicat啊,redis insight啊,又或者是phpMyAdmin这种开源的工具。需要注意的是这些不是DBMS,这些只是工具。
DB,DBMS和工具的关系是自底向上的。DB被DBMS所管理,各种工具则是为DBMS提供可视化界面,或者是简化DBMS的操作流程之类的。