数据库、数据库系统、数据库管理系统三者的关系是什么

说实话,这三者之间的关系很复杂,但说白了,数据库系统就是一个大杂烩,什么都有,数据库就是存储数据的“仓库”,数据库管理系统(DBMS)就是拿着扫帚的看门人,负责让仓库保持井然有序。

首先我们来谈谈数据库。
我之前为一家电子商务公司做过一个使用关系数据库的项目。
您可能知道用户信息和订单记录都是以表格形式存储的。
数据冗余确实很小,独立性很高,特别适合共享。
例如,当用户登录时,后端直接从数据库中检索数据,而不必每次都重新检查,效率很高。
但是,如果索引设计不当,数据解析可能会变得非常慢,以致整个系统可能陷入困境。
这是数据库的另一个问题。

我们来谈谈 DBMS。
这就是灵魂。
我接触过 MySQL,它非常容易使用。
所有数据的添加、删除、修改和检索都是通过编写SQL语句来完成的。
权限管理不错。
例如,有些数据只有财务部门可见,普通员工无法访问。
交易处理也很重要。
如果系统崩溃,DBMS 会在重新启动后回滚所有未完成的订单。
否则,损失将是巨大的。
然而,DBMS 并不是万能的。
过于复杂的查询可能会导致问题。
这时候,你就需要优化你的SQL或者更换为更高级的数据库。

最后是数据库系统。
当包括硬件、软件和人员时,问题就更大了。
上次在老家医院建系统,我自己购买了几十台服务器,还得雇一个全职DBA来2 4 小时监控。
ERP系统和电子商务网站都运行在数据库系统上。
想一想。
如果没有数据库系统,订单就无法处理,用户数据就会混乱,公司就会崩溃。

有趣的是,这三者经常被混淆。
有人认为数据库就是DBMS,有人认为数据库系统就是数据库。
其实他们各有分工,缺一不可。
就像做饭一样,食材是数据库,厨房用具是DBMS,整个厨房和厨师都是数据库系统。
你觉得这三者之间的关系复杂吗?

数据库系统,数据库,数据库管理系统三者关系?

好吧,我来帮你解释一下我提到的数据库系统和数据库与DBMS之间的关系。

上周一位客户问我是否无法区分这三者之间的区别。
我直接给他举了个例子。

我们先来说说数据库。
只需将其视为存放物品的壁橱即可。
该柜子专为存储重要文件而设计,例如公司的客户名单和订单记录。
这些数据会长期保存在计算机中并进行组织以便其他人可以使用。
您必须确保文件不被篡改或丢失,并且需要它们的人可以快速找到它们。
比如我2 02 3 年在上海的一个商场做的一个项目,顾客信息库就是一个典型的数据库,顾客姓名、电话号码、消费记录,一应俱全。

然后是数据库管理系统(DBMS)。
这是管理坦克的安全+管理员系统。
你不会直接接触这些文件,而是告诉保安“查找XX客户信息”,保安就会通过内部系统为你找到这些文件。
这就是 DBMS 的作用。
它负责允许用户选择数据(例如创建新表)、操作数据(验证、修改和删除)以及控制谁可以查看和谁可以更改。
MySQL和Oracle就是两个这样的安全系统。
你可以使用SQL语句给它指令,它会帮助你管理数据。
2 02 2 年我在北京帮助一家小公司搭建系统时,使用的是MySQL。
他们的开发者只能在程序中直接调用MySQL命令。

最后是数据库系统。
这并不意味着一件事。
它是一个完整的生态系统,包括前面提到的数据库(金库中的文件)、DBMS(安全系统)、也使用这些数据的软件(例如网站的后端)以及最终用户(老板和员工)。
例如,当你在电子商务平台上购物时,数据库系统在后台工作:数据库存储产品信息,数据库管理系统(可能是MySQL)管理数据,网站软件使用这些数据来展示产品。
您和客户服务是用户。

想一想,这三者之间是什么关系?数据库系统是整个建筑,数据库管理系统(DBMS)是电梯和自动扶梯系统、数据库是建筑物中人员(用户)和设备(应用程序)活动的不同房间。
DBMS 隐藏了复杂的低级流程(例如如何保存文件以及如何查找文件)。
人和设备只需要知道如何使用电梯和楼梯即可。

分层设计的好处是灵活性。
如果以后要改变DBMS,比如把MySQL改成Oracle,只要改变DBMS层就可以了,数据库(数据本身)、用户和应用程序都不需要动。
就像如果你想更换建筑物中的电梯一样,你不必拆除整栋建筑物。

但是请注意,这种分层并不是绝对的。
有时对于非常小的系统,DBMS 可能会直接集成到应用程序中,并且边界是模糊的。
但一般来说,一个数据库系统应该具备这三个基本部分。

这个解释是不是更清楚了?如果你还是不明白,欢迎来问我。