第1章数据库系统概论第1章数据库系统概论1.1数据管理技术的发展1.2现实世界的数据化过程1.3数据库系统的结构第1章数据库系统概论1.1数据管理技术的发展数据库技术是使用计算机管理数据的一门最新技术。使用数据库对数据进行管理是计算机应用的一个重要而广阔的领域。数据管理是数据处理的中心问题。数据处理是指对各种形式的数据进行收集、储存、加工和传播等一系列活动的总和。数据处理的目的有两个:一是借助计算机科学地保存和管理大量复杂的数据,以便人们能方便而充分地利用这些宝贵的信息资源;第1章数据库系统概论其二是从大量的原始数据中抽取、推导出对人们有价值的信息。数据管理指的是对数据的分类、组织、编码、储存、检索和维护。数据库技术所研究的问题是如何科学地组织和储存数据,如何高效地处理数据以获取其内在信息。数据库技术是数据管理的最新技术。数据库系统是当代计算机系统的重要组成部分。第1章数据库系统概论计算机数据管理方法是不断发展的,至今大致经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。1.1.1人工管理阶段20世纪50年代中期以前,计算机本身的水平较低。在硬件方面,计算机的运算速度低、内存容量小,外存还没有磁盘等直接存取的存储设备;在软件方面,还没有操作系统,没有管理数据的软件。第1章数据库系统概论这一阶段的计算机主要用于科学计算。这个时期数据管理的特点是:(1)数据不保存。需要时把数据输入,用完就撤走。数据不保存在计算机中。(2)没有管理数据的软件系统。应用程序中不仅要管理数据的逻辑结构,还要设计其物理结构、存取方法、输入输出方法等。当存储改变时,应用程序中存取数据的子程序就需随之改变,即数据和程序不具有独立性。第1章数据库系统概论(3)基本上没有文件概念。数据的组织方式必须由程序员自行设计。(4)数据是面向应用的。一组数据只对应于一个应用程序。即使两个应用程序都涉及到了某些相同数据,也必须各自定义,无法相互利用。不仅在程序之间有大量重复数据,还易产生数据的不一致性(相同数据在不同程序中出现的值不同)。在人工管理阶段,上述数据与程序关系的特点如图1―1所示。第1章数据库系统概论图1―1人工管理阶段数据与程序的关系用户1应用程序1应用程序2应用程序3数据组1数据组2数据组3用户2………应用程序n数据组n用户m第1章数据库系统概论1.1.2文件系统阶段从20世纪50年代后期到60年代中期,计算机的硬件、软件都有了很大发展:有了磁盘、磁鼓等直接存取的存储设备;有了操作系统,其中有专门管理数据的文件系统。从处理方式讲,不仅有了文件批处理,而且能够联机实时处理。此时,计算机不仅用于科学计算,还大量用于管理。文件系统管理阶段有以下几个特点:(1)数据存放在文件中,文件可长期保存在外存。可经常方便地对文件进行检索、修改、插入和删除等操作。第1章数据库系统概论(2)程序和数据有了一定的独立性。由于有了管理数据的软件——文件系统,文件的逻辑结构与存储结构由系统进行转换。数据在存储上的改变不一定反映到程序上,既可大大节省维护程序的工作量,程序员也可不必过多地考虑物理细节,可把精力集中在算法上。(3)文件多样化。由于有了直接存取存储设备,也就有了索引文件、链接文件、直接存取文件等。第1章数据库系统概论(4)数据的存取基本上以记录为单位。按文件名访问,按记录进行存取。在文件系统阶段,用户虽有了一定的方便,但仍有很多缺点。这主要有:(1)数据冗余度大。由于数据的基本存取单位是记录,因此,程序员之间很难明白他人数据文件的逻辑结构。这样,一个数据文件只能对应于同一程序员的一个或几个程序,不能共享,数据仍然是面向应用的。数据冗余度大,不仅浪费存储空间,而且数据的修改和维护也较困难,容易造成数据的不一致性。第1章数据库系统概论(2)数据和程序缺乏独立性。文件是为特定程序服务的,改变数据的逻辑结构就必须修改程序。应用程序若有改变,就可能影响文件的数据结构,因此,数据和程序之间缺乏独立性。这样,文件系统仍然是一个不具有弹性的无结构的数据集合。文件之间是孤立的、不能反映现实世界中事物之间的内在联系。在文件系统阶段,数据与程序的关系如图1―2所示。第1章数据库系统概论图1―2文件系统阶段数据与程序的关系用户1应用程序1应用程序2应用程序3数据文件1数据文件2数据文件3用户2………应用程序n数据文件n用户m文件管理系统第1章数据库系统概论1.1.3数据库系统阶段20世纪60年代后期,计算机硬件、软件有了进一步的发展。计算机的运算速度越来越快、内存容量越来越大,并有了大容量磁盘。随着管理数据规模的增大,文件系统的缺点越来越令人难以忍受。人们迫切盼望能有数据冗余度小,可共享数据的系统。文件系统中,数据为什么难以共享呢?基本原因在于:数据的含义不明显。在文件系统中,采用“按文件名访问,按记录存取”的数据管理技术。第1章数据库系统概论一般用户虽然都可以访问文件、访问数据,但却不知这些数据的含义,当然就不能共享数据了。以如下一条记录为例:1005张三7006151800设计所一般用户怎能理解其含义呢!甚至连数据的创建者,在经过一段时间后,重新看到此记录时,也会感到不可理解了。但如果数据的显示形式为:职工号姓名出生日期工资部门1005张三7006151800则数据的含义就比较清楚了,共享自然就容易了。第1章数据库系统概论定义数据时,能把数据的含义也定义进去;存储数据时,能一起存储数据的含义;显示数据时,能同时显示数据的含义,就成了改进文件系统的关键。从而出现了数据管理的新方式——数据库系统。在数据库系统中,数据以一种全新的方式——数据库存储;管理数据库的生成、修改、使用的是一种新的管理数据的软件——数据库管理系统。第1章数据库系统概论一、数据库(DB:DataBase)在数据库中,数据与数据的含义(数据名称及说明)同时存储。数据的最小存取单位是构成记录的、有名称有含义的最小数据单位:数据项。定义数据库时,必须定义数据项的名称及说明,以数据项名存储数据,以数据项名更新数据,以数据项名查询和使用数据。在数据库中,数据不再以各个应用程序各目的要求来分别储存,而是把整个系统所有的数据,根据它们之间固有的关系而整体规划,分门别类地加以储存。第1章数据库系统概论也就是说,数据库中的数据不再是互相独立、毫无联系的了,不再有有害的、不必要的冗余了,数据与应用程序互相独立,数据可为所有合法用户共享了。数据库是储存在计算机系统内的有结构的数据的集合,数据是由数据库管理系统管理的。第1章数据库系统概论二、数据库管理系统(DBMS:DataBaseManagementSystem)DBMS是在操作系统支持下工作的数据管理软件。对内,它负责管理数据库;对外,它向用户提供一整套命令,利用这些命令,合法用户可以建立数据库,可以定义数据,可以对数据库中的数据进行各种合法的操作,数据是可以共享的,操作是可以同时进行的。DBMS的基本功能有:第1章数据库系统概论1.数据定义功能DBMS提供数据定义语言(DDL:DataDefinitionLanguage)。用户利用DDL可方便地定义数据库中数据的逻辑结构(其中最基本的是数据与数据的含义同时定义)。用户在分析、研究整个系统所有数据的基础上,全面安排和定义数据的结构。2.数据操纵功能DBMS提供数据操纵语言(DML:DataManipulationLanguage)。用户利用DML实现对数据库中数据的各种操纵,如插入、查询、修改或删除等。第1章数据库系统概论3.完整性约束检查所谓完整性约束,是指数据必须符合的一些规定。如学生的学号必须唯一,所属部门必须存在,出生年份不能在1900年以前等。DBMS应能支持一些常用的完整性约束检查功能。4.访问控制数据库中的数据不属于任何程序,数据可以共享。但只有合法用户才可以访问他可以访问的数据,才能进行他可以执行的数据操作,这就是访问控制。DBMS应该有访问控制的功能。第1章数据库系统概论5.并发控制DBMS允许多个用户同时访问数据库,这就可能引起冲突,引起数据的不一致。因此,DBMS应有并发控制的功能,以避免并发操作时可能带来的数据不一致性。6.恢复功能数据库是有可能遭到破坏的。因此,DBMS应具有恢复数据库的功能。第1章数据库系统概论三、数据库系统(DBS:DataBaseSystem)DBS是指在计算机系统中引入数据库后的系统构成,由计算机硬件、操作系统、DBMS、DB、应用程序和用户,以及数据库开发和管理人员等组成。数据库系统中,程序与数据的关系如图1―3所示。第1章数据库系统概论图1―3数据库系统阶段数据与程序的关系用户1应用程序1应用程序2应用程序3用户2……应用程序n用户m数据库管理系统数据库第1章数据库系统概论DBMS是DBS的关键内容。只有采用高质量的DBMS,才有可能建立高质量的DBS。与文件系统相比,DBS有如下4个主要特点。1.整体数据结构化有了DBMS后,数据库中的任何数据都不属于任何应用。数据是公共的,结构是全面的。它是在对整个组织的各种应用(包括将来可能的应用)进行通盘考虑后建立起来的总的数据结构。在数据库中,数据文件的个数是有限的、固定的,但数据库系统的应用却是无限制的。第1章数据库系统概论整体数据的结构化是数据库的主要特征之一。数据的最小存取单位为有名称有含义的数据项,是数据库组织的基础。由于整体数据的结构化,可减少乃至消除不必要的数据冗余,节约整体数据的存储空间,避免数据的不一致性和不相容性。第1章数据库系统概论2.数据的共享性高在DBMS的管理下,数据与数据的定义同时存储在数据库中;显示数据时,可同时显示数据的定义;整个组织的整体数据被通盘考虑,整体数据结构化,因而,DBS的数据共享性较高。合法用户都可很方便地使用数据库中的数据,且不用担心出现数据的不一致性和不相容性。数据库中的数据可适应各种合法用户的合理要求,可适应各种应用的要求,可以方便地扩充新的应用,因而,数据高度共享。第1章数据库系统概论3.数据独立性高数据的独立性是指数据与应用程序之间的关联性。数据是存储在数据库中的,是由DBMS管理的。应用程序不存储数据,不负责数据的定义。当用户需要数据时,DBMS把数据库中的数据转换成用户需要的格式后,再提供给用户使用。用户程序要处理的只是所面对的数据。用户所面对数据的结构并非数据库中数据的实际存储结构,也非数据库中数据的逻辑结构,仅仅是所面对数据的逻辑结构而已。第1章数据库系统概论当数据库中数据的实际存储方式改变时,DBMS可以适当改变转换数据的方式,而使用户面对数据的逻辑结构保持不变,从而处理数据的应用程序也可保持不变,这称为数据的物理独立性;当数据库中数据的逻辑结构发生变化时,DBMS也可适当改变数据的转换方式,而使用户面对数据的逻辑结构保持不变,使得处理数据的应用程序仍可保持不变,这称为数据的逻辑独立性。数据与程序互相独立,不仅可方便地编制各种应用程序,而且可大大减轻应用程序的维护工作。第1章数据库系统概论4.高度的数据控制能力由于有专门的数据管理软件——DBMS管理数据,就可由DBMS来提供各种数据控制功能:1)较高的数据安全性(Security)在DBMS管理下,只有合法用户才能访问数据库,才能访问他有权访问的数据,才能对数据进行他有权进行的操作,且操作必须合法。2)较好的数据完整性(Integrity)由DBMS而不是由用户程序自动检查数据的一致性、相容性,保证数据应符合完整性约束条件。第1章数据库系统概论3)较强的并发控制能力DBMS提供并发控制手段,使多个用户程序同时对数据库数据操作时,可以得到有效控制。即保证共享、并发操作,且不致破坏数据的完整性。4)较强的数据恢复能力计算机系统出现各种故障是很正常的,数据库中的数据被破坏、被丢失也是可能的。DBMS必须具有某些数据库的恢复功能——使数据库从错误状态恢复到正确状态的功能。第1章数据库系统概论四、数据库管理员(DBA:DataBaseAdministrator)参与一个数据库系统开发和应用的人员很多,大致可分为用户、