第二篇 数据库基础篇
第3章 熟悉数据库
数据库从字面的意思上理解它就是一个存储数据库的仓库,就像用来存储药品的药库或用来存放粮食的粮库一样。要使用数据库就要先对数据库有一个了解。本章主要学习以下知识点:
❑数据库的历史和模型
❑数据库的三级模式和二级映像
❑关系型数据库的设计
❑实体-联系图的绘制
本章内容基本涵盖了关系型数据库的设计和实体-联系图的绘制以及数据库的基本知识。通过本章的学习,读者可以了解数据库的历史,掌握关系型数据库的设计方法以及实体-联系图的绘制。
3.1 什么是数据库
随着计算机和网络的普及,我们日常的工作和学习都离不开数据库了,如果没有数据库,我们就不能在网上订书,网上也就没有我们浏览的网站了。那么什么是数据库呢?本节就将讲解数据库的历史、数据库的模型、数据库的三级模式和二级映像、数据库相关的术语以及数据库设计的完整性。
3.1.1 了解数据管理的历史
任何事物的发展都有一段历史,数据管理的发展也不例外。在数据管理的发展过程中,主要经历了3个阶段,即人工管理阶段、文件系统阶段、数据库系统阶段。
1.人工管理阶段
20世纪50年代中期以前是人工管理阶段,世界上第一台计算机(ENIAC)是1946年2月14日在美国诞生的。那时计算机还是一个陌生的词汇,对于计算机来说,存储信息的设备没有磁盘,只有磁带、卡片等存储设备;计算机中也没有操作系统更没有管理软件;处理数据的方式只有批处理方式。在人工管理阶段,主要负责数据管理的是人。人工管理数据具有以下4个特点:
1)不能长期保存数据。在20世纪50年代中期之前,计算机一般在信息中心这样的研究机构里才能拥有,当时由于存储的设备有限,都是在做实验的时候暂存实验数据,做完实验就把结果打在纸带或者磁带上带走,所以数据一般不需要长期保存。
2)数据并不是由应用软件管理的而是由应用程序自己管理的。作为程序员在编写程序时既要设计程序逻辑结构又要设计物理结构以及数据的存取方式等,因此,对程序员编写代码的工作量和质量要求都很高。
3)数据不能共享。在人工管理阶段,可以说数据是面向程序的,由于每一个应用程序都是独立的,即使要使用的相同数据已经在其他应用程序中存在,在应用程序之间也是不能共享的,这样也造成了大量的数据冗余。
4)数据不具有独立性。应用程序中只要发生改变,数据的逻辑结构和物理结构就相应地发生变化。因而程序员都要做出相应的修改,给程序员的工作带来很多的负担。
根据人工管理阶段管理数据的特点,如果计算机中有3个应用程序,那么它们和各自数据集之间的对应关系就如图3.1所示。
图 3.1 人工管理阶段管理数据
2.文件系统阶段
20世纪50年代后期到60年代中期,计算机开始应用于数据管理方面。此时,计算机的存储设备也不再是磁带和卡片了,已经可以用磁盘直接存储了。此时,存储数据使用的是文件系统也称为管理软件,文件系统是操作系统中负责管理和存储文件信息的软件机构。文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。文件系统阶段存储数据就是以文件的形式来存储,由操作系统统一处理。文件系统阶段也是数据库发展的初级阶段,使用文件系统存储数据具有以下四个特点:
1)可以长期保存数据。有了大容量的磁盘作为存储设备,计算机开始被用来处理大量的数据并可以存储数据。
2)有简单的数据管理功能。文件的逻辑结构与物理结构脱钩,程序和数据分离,使数据与程序有了一定的独立性,减少了程序员的工作量。
3)共享数据能力差。由于每一个文件都是独立的,当需要用到相同的数据时,必须建立各自的文件,数据还是无法共享,也会造成大量的数据冗余。
4)数据不具有独立性。在此阶段数据仍然不具有独立性,当数据的结构发生改变时,也必须修改应用程序,修改文件的结构定义;而应用程序的改变也将改变数据的结构。
根据文件系统阶段管理数据的特点,如果计算机中有3个应用程序,那么它们和各自文件之间的对应关系就如图3.2所示。
图 3.2 文件系统阶段管理数据
说明 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
3.数据库系统阶段
从20世纪60年代后期开始就进入了数据库系统阶段。随着计算机的普及,同时计算机的外存设备磁盘的容量也得到了扩充,需要管理的数据也与日俱增,此时,在文件系统的基础上就开始有了数据库技术。最早的数据库管理系统是在1961年由通用电气公司开发的,此后,数据库的技术得到了飞速的发展。数据库存储数据不仅存储数据的本身同时也存储数据之间的联系。在数据库系统阶段管理数据具有以下4个特点:
1)实现数据的共享。进入数据库系统阶段之后,数据终于可以得到共享。也就是说,数据在存入数据库后,想使用数据的用户可以同时来访问数据库使用数据,这样就减少了数据的冗余。
2)数据具有了独立性。在数据库中数据库的逻辑结构和应用程序之间是相互独立的,同时数据库的物理结构变化也不会影响数据库的逻辑结构,这就给程序员减少了很多的工作量。
3)数据实现集中控制。此时,数据不再由各自的应用程序管理,而是由数据库管理系统统一管理,这样可以保证数据的安全性和可维护性。
4)故障恢复。在没有数据库管理系统之前,如果数据出现丢失或损坏的情况,那么数据是无法恢复的;但是有了数据库之后,数据库管理系统的备份恢复机制就可以帮助用户找回丢失和损坏的数据,可以最大限度地减少损失。
根据数据库系统阶段管理数据的特点,如果计算机中有3个应用程序,那么它们与数据库之间的对应关系就如图3.3所示。
图 3.3 数据库系统阶段管理数据
从文件系统发展到数据库系统,这在信息领域中具有里程碑的意义。在文件系统阶段,人们在信息处理中关注的中心问题是系统功能的设计,因此程序设计占主导地位;而在数据库方式下,数据开始占据了中心位置,数据的结构设计成为信息系统首要关心的问题,而应用程序则以既定的结构为基础进行设计。