对于不那么复杂的系统,文件系统可能也能实现数据管理,甚至使用万能的excel就够了。但是程序员使用文件系统时,需要不时关注记录的结构和不同文件间记录的联系,而且文件系统提供的打开、读、写、移动、关闭等操作流程,编程起来工作量大、过程复杂,开发速度慢。而数据库系统可能只需要一句语句就实现了复杂的查询,大大提高了程序员的开发效率。
与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:


1.数据结构化


整体数据的结构化是数据库的主要特征,也是和文件系统的本质区别。所谓“整体”结构指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业,不仅数据内部是结构化的。而且整体是结构化的。例如我们考虑一个简单的学校信息系统,里面既有学生,又有教师。教务处、人事处、选课系统都是不同的应用程序,教务处的学生选课,成绩管理等,人事处的教师人事管理,科研处的科研管理、预算等。所以,如何将数据结构设计更合理更适合也是需要仔细研究的。

2.数据的共享度高、冗余度第且易扩充


数据系统从整体角度来看待和描述数据,数据面向整个系统,可以被多用户、多应用共享使用。数据结构化和数据共享可以大大减少数据冗余,节约存储空间。数据共享还能避免数据之间的不相容性和不一致性。在人工或者文件系统管理数据时,由于数据重复存储,不同的应用使用和修改副本就容易造成数据的不一致。应用A和应用B同时获取了小A的账户余额100,应用A修改副本为了105,应用B修改副本为了99。然后两个应用同时保存了修改,小A不知道到底有多少钱了。
由于数据库面向整个系统,因此容易增加新的应用,是的数据库系统弹性大,易于扩充,适应各种用户的需求。可以选取整体数据的自己用于不同的应用系统。比如新建的饭卡系统可以获取已有的学生和教师的集合。


3.数据独立性高


数据独立性是数据库领域的一个常用术语和重要概念,包括物理独立性和逻辑独立性。
−物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。应用程序不需要关注数据到底存在哪个磁盘的哪个文件,是堆存储还是按照某些属性值升(降)序放。就像在存包柜存包时,只需要根据钥匙就能对应你的包。
−逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据逻辑结构改变时用户程序也可以不变。
数据与程序的独立把数据的定义从程序中分离出去,加上存取数据的方法又由DBMS提供,从而大大简化了应用程序的维护和修改。


4.数据由DBMS统一管理和控制

数据库的共享会带来安全隐患,而且数据库的共享是并发共享(即多用户可能会同时存取访问数据库中的数据),不要紧张,强大的DBMS替我们解决这些问题。
DBMS必须提供的几个数据控制功能:
−数据的安全性(security)保护,指保护数据以防止不合法使用造成数据泄密和破坏。用户只能按规定对某些数据以某些方式进行处理和使用。比如你只能看自己帐户的余额,而且你不希望自己的账户被黑客给清零。
−数据的完整性(integrity)检查,指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,并保证数据之间满足一定的关系。比如,我们录入信息时性别只能选择“男”或“女”,出生年月只能是1900年以后。
−并发(concurrency)控制,指当多用户并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误结果或使得数据库完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。比如学期开始大家抢热门选修课的场景。
−数据库恢复(recovery),指计算机系统的软硬件故障、操作员失误以及故意破坏影响数据库的正确性,甚至造成数据库部分或全部数据的丢失。想想大家在银行的钱突然都查不到是多么可怕的事情。因此,DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态的功能。

更多推荐

数据库系统的特点