本文正在参加「技术专题19期 漫谈数据库技术」活动
一、由一个简单的类比到数据库发展史
类比
书店,采购的书籍集合是书库,店员和书店是现实存在的用来存储、管理和检索这个书库的系统。
数据库管理系统,存储的数据集合叫做数据库,数据库管理系统是在计算机上用于存储、管理和检索数据库的系统。
发展史
书店里的书籍使用人力管理,难以移动、流通性差、不便于查询和管理。随着科学技术的不断发展和现代化信息的膨胀,仅仅用人力管理数据远不能满足需求。
所以当计算机开始普及时,人们开始使用计算机中的文件系统,此时虽然数据管理更加方便了,但是文件系统仍然存在一些缺点:
(1) 数据冗余:文件之间有大量重复的数据,数据不一致、难以维护。祇、祗、衹、袛,这几个字存在不同的文件里面,甚至看不出来有什么不一样的。姓名:周衹祗,周祇祗,周袛衹...
(2) 共享性差:应用不能同时存取文件中的数据,比如你在一个应用打开了文件,再使用另一个应用尝试打开该文件,很可能会收到“该文件被占用”的提示信息并且无法打开;
(3) 结构性差:文件虽然可以放在文件夹里,但是经常出现将文件放到不关联的文件夹、或者重复建相似文件夹的操作,导致文件系统结构性很差。就像把所有文件全部都放到C盘而不进行任何整理,这就已经不存在所谓的结构性了;
(4) 数据逻辑独立性差:数据逻辑结构改变会导致应用程序改变。你会发现文件系统很难实现多对多的逻辑结构,会出现大量数据冗余。
数据独立性分为物理和逻辑独立性,物理独立指数据存储结构和应用程序相互独立;逻辑独立指数据逻辑结构和应用程序相互独立。
简单地说,物理独立就是不管这个数据在计算机里怎么存储的,喜欢跳着、倒着、回旋螺旋DNA存储都和应用程序没关系,应用程序能读写数据就行;逻辑独立就是有一个程序现在能存储一对一的数据关系,它也能存储一对多,多对多的数据关系,而应用程序不会受到影响。
为了解决这些问题,数据库管理系统 (DBMS) 应运而生。
注:常说某数据库,实质上是指某数据库管理系统。以下数据库管理系统简称为数据库。
二、数据库的优势及数据管理各阶段对比
优势
(1) 数据共享性好:多个用户、多个应用可以同时存取数据库中的数据,可以用各种方式如接口使用数据库中的数据;
(2) 结构化存储:数据库可以对大量数据进行分类保存,并且能够提供快速的查询,方便用户进行有效的检索和访问;
(3) 数据冗余度低:数据库具有避免重复数据的功能,可以很好的保证数据的完整性和一致性;
(4) 数据独立性好:数据的物理结构和逻辑结构变化不会对应用程序产生影响;
(5) 安全性高:可以控制不同用户/应用权限不同。比如把员工信息,包括名字、电话、身份证等放在数据库里,那么可以控制员工只能查看名字和电话,而管理员才能查看和维护所有信息;
(6) 数据统一管理:利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
对比
| 数据管理的3个阶段 | 人工管理 | 文件系统 | 数据库管理系统 |
|---|---|---|---|
| 应用背景 | 科学计算 | 科学计算、管理 | 大规模数据、分布数据的管理 |
| 硬件背景 | 无直接存取存储设备 | 磁带、磁盘、磁鼓 | 大容量磁盘、可擦写光盘、按需增容磁带机等 |
| 软件背景 | 无专门管理的软件 | 利用操作系统的文件系统 | 由 DBMS 支撑 |
| 数据处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、批处理、分布处理 |
| 数据的管理者 | 用户/程序管理 | 文件系统代理 | DBMS 管理 |
| 数据应用及其扩充 | 面向某一应用程序,难以扩充 | 面向某一应用系统、不易扩充 | 面向多种应用系统、易扩充 |
| 数据的共享性 | 无共享、冗余度极大 | 共享性差、冗余度大 | 共享性好、冗余度小 |
| 数据的独立性 | 数据的独立性差 | 物理独立性好、逻辑独立性差 | 具有高度的物理独立性、具有较好的逻辑独立性 |
| 数据的结构化 | 数据无结构 | 记录内有结构、整体无结构 | 统一数据模型、整体结构化 |
| 数据的安全性 | 应用程序保护 | 文件系统保护 | 由 DBMS 提供完善的安全保护 |
总结
tips:生气的时候不要用手砸门,手会痛
参考: