数据库概论
数据库是现代社会数据管理的工具,数据库理论知识是每个程序员必不可少的。数据库的诞生和计算机的发展有着密切的关系。从古至今,数据都是存在的,人类也一直在使用数据和管理数据,比如结绳记事。而数据库是后来由计算机发展之后带来的概念。
数据管理
在计算机的诞生初期,计算机主要是用于科学计算,虽然此时同样有数据管理的问题,但这时的数据管理是以人工的方式进行的,后来发展到文件系统,再后来才是数据库。
数据管理主要可以划分为以下三个阶段:
- 人工管理阶段
- 文件系统阶段
- 数据库系统管理阶段
使用计算机进行数据管理也经历了一个由简单到复杂的变化过程。
人工管理阶段
时间:20世纪50年代中期以前。
发展背景:计算机主要用于科学计算。
当时的计算机的特点:
-
硬件上:没有可直接存取的存储设备。
-
软件上:没有操作系统,没有管理数据的软件。
所有的数据处理都是人工来完成。
人工管理阶段的特点:
- 数据不保存。因为没有磁盘,当时用于科学计算的数据没有想要长期保存。数据是直接生成直接使用、直接销毁。
- 没有文件的概念。这个时期的数据必须由每个程序的程序员自行组织安排。
- 一组数据对应一个程序。每组数据值对应一个应用,即便连个程序用到相同的数据,也必须各自定义、各自组织。数据无法共享、无法相互利用和相互参照。
- 没有形成完整的数据管理的概念。
所以这个时期的每一个程序都要包括数据存取、输入、输出和数据组织等。
因为程序是直接面向存储结构的,所以存储结构的任何一点修改都会导致程序的修改,程序与数据之间不具有独立性。
即程序的编写严重依赖于数据的存储结构。
文件系统阶段
时间:20世纪50年代后期到20世纪60年代中期这一阶段。
发展背景:计算机不仅大量用于科学计算,也开始大量用于信息管理。
当时的计算机的特点:
- 硬件上:磁盘已经出现
- 软件上:有了操作系统和高级语言,也有了专门用于数据管理的软件
文件系统阶段大部分解决了人工管理阶段的缺点,有了文件的概念。
文件系统的特点:
- 数据可以长期保存在磁盘上,可以对文件进行增删改查等的操作。
- 操作系统提供了文件管理功能和访问文件的存取方法,程序和数据之间有了数据存取的接口,程序开始通过文件名和数据打交道,不再关心数据的物理存放位置。因此,这时也有了数据的物理结构和逻辑结构的区别。程序和数据之间有了一定的独立性。
- 文件的形式已经多样化。由于有了磁盘,对文件的访问可以顺序访问也可以直接访问。文件之间是独立的,但文件之间的联系还需要通过程序去构造,文件的共享性也还比较差。
- 数据可以由多个程序反复使用。但文件结构的设计仍然是基于特定的用途,程序仍然是基于特定的物理结构和存取方法编制的。因此数据的存储结构和程序之间的依赖关系并未根本改变。
- 数据的存取基本上以记录为单位。
文件系统管理阶段和人工管理阶段的简单区别:程序与数据之间多了一个文件系统为中介,相当于一个中心枢纽,这个文件系统专门对文件的各种管理操作。
虽然文件系统比人工管理有了长足的进步,但是文件系统所以能提供的存取方法和数据管理仅仅是初级水平。
文件系统有几方面的缺陷:
- 数据冗余大。因为每个文件都是为特定的用途设计的,所以就会在多个文件中找出同样的数据。
- 数据不一致性。这往往是有数据冗余造成的,在进行更新时,稍有不慎就会造成同一数据在不同文件中的不一致性。
- 程序和数据之间的独立性差。应用程序依赖于文件的存储结构,是若修改文件的存储结构则必须修改程序。
- 数据联系弱。文件与文件之间是相对独立的,文件之间的联系必须通过程序来构造。因此,文件系统是一个不具有弹性的、无结构的数据集合,不能反映显示世界事物之间的联系。
数据库系统阶段及其发展过程
时间:数据库系统阶段从20世纪60年代后期。
发展背景:数据库技术的诞生既有计算机技术的发展做依托,又有数据管理的需求做动力。数据库的数据不再是面对某个应用或某个程序,而是面对整个企业(组织)或整个应用,它克服了上述人工管理阶段和文件系统阶段的缺陷。
数据管理由文件系统阶段到数据库系统阶段有一个质的变化。
层次数据库和网状数据库也可以看作是第一代数据库系统。
层次数据库和网状数据库是面向专业人员的,要求使用人员有较高的技术水平,使用起来比较困难。
关系数据库可以看作第二代数据库系统。
自20世纪80年代以来,关系数据库系统一直占据主流地位,层次数据库和网状数据库由于自身的缺点很快被关系数据库所取代。
经过了将近40年,关系数据库系统的技术也不断完善和提高,有关数据管理和数据库的新的研究课题不断取得进展。分布式数据库已成为实用技术,基于关系模型、支持面向对象方法的关系对象模型数据库也已问世,开放数据库技术和互联网上的Web数据库、支持移动应用的移动数据库等。同时随着大数据时代的到来,数据管理的范畴已经不局限于结构化数据管理,关系数据库不再一枝独秀,NoSQL技术应运而生。