数据库是现代社会数据管理的工具,数据库理论知识是每个程序员必不可少的。数据库的诞生和计算机的发展有着密切的关系。从古至今,数据都是存在的,人类也一直在使用数据和管理数据,比如结绳记事。而数据库是后来由计算机发展之后带来的概念。
在计算机的诞生初期,计算机主要是用于科学计算,虽然此时同样有数据管理的问题,但这时的数据管理是以人工的方式进行的,后来发展到文件系统,再后来才是数据库。
数据管理主要可以划分为以下三个阶段:
使用计算机进行数据管理也经历了一个由简单到复杂的变化过程。
时间:20世纪50年代中期以前。
发展背景:计算机主要用于科学计算。
当时的计算机的特点:
硬件上:没有可直接存取的存储设备。
软件上:没有操作系统,没有管理数据的软件。
所有的数据处理都是人工来完成。
人工管理阶段的特点:
所以这个时期的每一个程序都要包括数据存取、输入、输出和数据组织等。
因为程序是直接面向存储结构的,所以存储结构的任何一点修改都会导致程序的修改,程序与数据之间不具有独立性。
即程序的编写严重依赖于数据的存储结构。
时间:20世纪50年代后期到20世纪60年代中期这一阶段。
发展背景:计算机不仅大量用于科学计算,也开始大量用于信息管理。
当时的计算机的特点:
文件系统阶段大部分解决了人工管理阶段的缺点,有了文件的概念。
文件系统的特点:
文件系统管理阶段和人工管理阶段的简单区别:程序与数据之间多了一个文件系统为中介,相当于一个中心枢纽,这个文件系统专门对文件的各种管理操作。
虽然文件系统比人工管理有了长足的进步,但是文件系统所以能提供的存取方法和数据管理仅仅是初级水平。
文件系统有几方面的缺陷:
时间:数据库系统阶段从20世纪60年代后期。
发展背景:数据库技术的诞生既有计算机技术的发展做依托,又有数据管理的需求做动力。数据库的数据不再是面对某个应用或某个程序,而是面对整个企业(组织)或整个应用,它克服了上述人工管理阶段和文件系统阶段的缺陷。
数据管理由文件系统阶段到数据库系统阶段有一个质的变化。
层次数据库和网状数据库也可以看作是第一代数据库系统。
层次数据库和网状数据库是面向专业人员的,要求使用人员有较高的技术水平,使用起来比较困难。
关系数据库可以看作第二代数据库系统。
自20世纪80年代以来,关系数据库系统一直占据主流地位,层次数据库和网状数据库由于自身的缺点很快被关系数据库所取代。
经过了将近40年,关系数据库系统的技术也不断完善和提高,有关数据管理和数据库的新的研究课题不断取得进展。分布式数据库已成为实用技术,基于关系模型、支持面向对象方法的关系对象模型数据库也已问世,开放数据库技术和互联网上的Web数据库、支持移动应用的移动数据库等。同时随着大数据时代的到来,数据管理的范畴已经不局限于结构化数据管理,关系数据库不再一枝独秀,NoSQL技术应运而生。