1、第7章 数据信息管理 第7章 数据信息管理 7.1 实现实现“数字化生活数字化生活”的关键技术的关键技术数据库系数据库系统统 7.2 在计算机中模拟现实在计算机中模拟现实数据模型数据模型 7.3 二维表的王国二维表的王国关系数据库基础关系数据库基础 7.4 遏制非法用户侵入遏制非法用户侵入数据库安全数据库安全 7.5 数据库技术之冰山一角数据库技术之冰山一角Access数据库数据库 第7章 数据信息管理 7.1 实现实现“数字化生活数字化生活”的关键技术的关键技术数据库系数据库系统统7.1.1 数据为什么要管理数据为什么要管理收集数据的目的是为了高效的利用数据,通过对收集的海量数据进行分析统计
2、得到有价值的信息。如果收集了大量的数据却无法方便地使用这些数据,那么收集数据也就变得毫无意义了。数据管理就是利用计算机技术对数据进行有效的收集、存储、处理和应用的过程,目的是充分有效的发挥数据的作用。数据管理经历了人工管理、文件系统管理和数据库管理三个发展阶段。第7章 数据信息管理 1人工管理人工管理20世纪50年代中期之前,计算机主要用于科学计算。当时的计算机软、硬件都不完善,没有操作系统,没有数据管理的软件,程序员在设计程序时不仅要规定数据的逻辑结构,还要设计其物理结构;没有大容量的存储设备,当时的外存只有卡片、纸带、磁带。这一阶段数据管理的主要特点是:(1)数据不保存。当时计算机的主要用
3、途是科学计算,只是在计算某一课题时才将数据输入,计算完就撤走。一般不需要将数据长期保存。第7章 数据信息管理(2)应用程序管理数据,数据不共享、冗余大。没有相应的软件负责数据的管理工作,数据需要由应用程序自己设计、说明和管理。数据的组织是面向应用程序的,一组数据只能对应一个应用程序。不同的应用程序之间不能共享数据,程序与程序之间存在大量的数据冗余。应用程序和数据的关系见图7.1。图7.1 应用程序和数据的关系(1)第7章 数据信息管理(3)数据不具有独立性。数据的逻辑结构(如修改、增加新数据类型、改变数据联系等)或者物理结构(比如说存储设备的更换、物理存储方式)发生变化后,必须对应用程序做相应
4、的修改,大大增加了程序员的负担。2文件系统阶段文件系统阶段20世纪50年代后期至60年代中期,计算机不仅用于科学计算,还用于数据管理。计算机硬件方面有了磁盘、磁鼓等直接存取设备;软件方面出现了操作系统,操作系统中有专门负责数据管理的文件系统,把数据按照内容、结构和用途组织成若干个相互独立的文件,按文件名进行存取。这一阶段数据管理的特点是:第7章 数据信息管理(1)数据可以长期保存。由于出现了磁盘这样的外部存储设备,可将数据长期保存,可反复用于查询、修改、插入和删除操作。(2)文件系统管理数据,有一定的数据共享性。数据以文件为单位存储在外存中,由文件系统进行统一管理,操作系统为用户提供了良好的操
5、作界面。用户的程序与数据可分别存储在外存中,应用程序之间可以共享一组数据,实现了以文件为单位的数据共享。应用程序和数据的关系见图7.2。第7章 数据信息管理 图7.2 应用程序和数据的关系(2)第7章 数据信息管理(3)具有一定的数据独立性。文件的逻辑结构与物理结构分开,程序和数据分离,使数据和程序有了一定的独立性。(4)实时处理。由于有了直接存取设备,也有了索引文件、链接存取文件、直接存取文件等机制,所以既可以采用顺序批处理方式,也可以采用实时处理方式。在文件系统阶段,一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。由于文件之间是相互独立的,因而不能反映现实世界中事物之间的联系,当
6、不同的应用程序具有部分相同但又不完全相同的数据时,也必须建立各自的数据文件,而不能共享相同部分的数据,因此数据冗余度大。同时由于相同的数据重复存储,各自管理,容易造成数据的不一致性,给数据的维护和修改带来了困难。第7章 数据信息管理 3数据库系统阶段数据库系统阶段20世纪60年代后期,计算机应用于社会各个领域,应用于管理的规模更加庞大,数据量急速剧增。计算机软硬件方面也有了进一步的发展,软件方面出现了专门管理数据的软件数据库管理系统(DBMS,Database Management System);硬件方面出现了大容量高速存取的磁盘。这一阶段数据管理的特点是:(1)数据结构化。数据库系统采用数
7、据模型表示数据结构。数据模型能够表示现实世界中各种数据组织和数据间的联系,是实现数据的集成化控制和减少数据冗余的前提和保证,实现整体数据的结构化。第7章 数据信息管理 文件系统中每个文件内部也是有结构的,文件由若干条记录构成,每条记录又由若干个属性构成。如“学生”文件由很多条记录构成,每条记录就是一个学生信息,见图7.3。“课程”文件中保存着课程信息,每条记录就是一条课程信息,“选课”文件中保存着学生选课信息,每条记录就是一条选课信息,见图7.4和图7.5。图7.4 “课程”信息 图7.5 “选课”信息图7.3 “学生”信息第7章 数据信息管理 文件系统阶段尽管记录内部已经有了结构,但是记录之
8、间没有联系。有可能在“选课”文件中出现这样的记录:某个学生选了某一门课程,有一个对应的考试成绩,但是这个学生的学号或者所选课程的课号并不存在。也就是说该学生的学号信息并没有保存在“学生”文件中,或者该生所选课程的课号没有保存在“课程”文件中,所以不能保证数据的正确性。如果要实现这样的约束,必须由程序员在应用程序中编写相应代码来实现。而数据库系统可以通过定义约束条件来实现这种约束,如关系数据库就可以通过定义关系的参照完整性规则来保证数据之间的这种联系。数据库系统阶段数据的结构见图7.6。第7章 数据信息管理 图7.6 数据的结构第7章 数据信息管理 数据结构化是数据库系统的主要特征之一,也是数据
9、库系统与文件系统的本质区别。(2)具有较高的数据独立性。数据库中的数据在磁盘上如何存储,是由DBMS进行管理的,应用程序不需要关心,应用程序要处理的是程序的逻辑结构,所以当数据的物理存储设备发生改变时,应用程序不用修改。另外,数据与程序独立,把数据的定义从程序中剥离,加上存取数据的方法又由DBMS负责提供,简化了应用程序的编写,减少了应用程序的维护和修改,当数据的逻辑结构改变了,应用程序也可以不用修改。数据库阶段应用程序和数据的关系见图7.7。第7章 数据信息管理 图7.7 应用程序和数据的关系第7章 数据信息管理(3)数据共享性高,冗余小。数据库系统从整体角度看待和描述数据,数据面向整个系统
10、,而不是面向某个应用程序,因此数据可以被多个应用程序和多个用户共享,减少了数据冗余。(4)数据由DBMS统一控制管理。DBMS在数据库建立、运行和维护时对数据库进行统一控制和管理,以保证数据的完整性、安全性、共享性,并在多用户同时使用数据库时进行并发控制,并在数据库发生故障时进行恢复。充分有效的管理和利用各类信息资源,是进行科学研究和管理决策的前提条件。数据库系统是为适应数据管理的需求而发展起来的一种较为理想的数据处理系统,它既便于数据的集中管理,又有利于应用程序的开发和维护,提高了数据的利用率,为科学研究和企业决策提供了技术保证。第7章 数据信息管理 7.1.2 什么是数据库什么是数据库1数
11、据库数据库什么是数据库?当人们从不同的角度来描述这一概念时就会有不同的定义。数据库,就是存放数据的仓库。就像粮库是存放粮食的,军火库是存放军火的,水库是存水的等。这种说法虽然形象,但并不严谨。也有人把数据库定义为“以一定的方式存储在一起的、能为多个用户、多个应用程序所共享的、具有较小冗余度的数据的集合”。这种定义侧重于数据的组织。第7章 数据信息管理 所有的信息(数据事实等)的编纂物,不论其是以印刷形式,计算机存储单元形式,还是其它形式存在,都应视为“数据库”(伯尔尼公约议定书专家委员会的观点)。数据库是依照某种数据模型组织起来并存放在外部存储器中的数据集合。这种数据集合具有如下特点:尽可能不
12、重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增加、删除、修改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。第7章 数据信息管理 通常意义下,“数据库”这个术语是指由数据库管理系统(DBMS)管理的数据聚集,数据库的基本特征是“长期储存、有组织、可共享”。人们收集并抽取出一个应用所需要的大量数据以后,将其保存起来,便于进一步加工处理,从中获取有用的信息。第7章 数据信息管理 2数据数据数据(Data)是指数据库中存储的基本对象,是对客观事物的逻辑归纳,用于表示客观事物的未经加工的原始素材。数据
13、是信息的表现形式和载体,并不仅仅指数字,它可以是数值、字符、图像、语音、视频等。数据经过加工后就成为信息。记录是关系数据库中用来表示和存储数据的一种格式。如图7.8所示的学生记录就是描述该学生的数据。图7.8 学生记录第7章 数据信息管理 在信息量不是很大的情况下,可以将数据保存在文件中,比如上面提到的学生记录,可以保存在一个电子表格文件中。但是对于数据量很大,且要频繁查询、增加、修改、删除数据的时候,用文件来存储和管理数据就比较困难了,所以在信息量剧增的今天,人们需要借助计算机和数据库技术来保存和管理大量复杂的数据,以便能方便且充分的利用这些宝贵的信息资源。第7章 数据信息管理 3数据库管理
14、系统数据库管理系统了解了什么是数据库和数据之后,读者可能就会思考数据库中的数据是如何科学的组织和存储的,又如何才能高效的从数据库中获取所需的信息呢?如何对数据库中的大量数据进行管理和维护?这些都是由数据库管理系统来实现的。数据库管理系统(DBMS)是位于用户和操作系统之间的一种大型软件,用于建立、使用和维护数据库。它对数据库进行统一的操纵和管理,以保证数据库的安全性、完整性、一致性,是数据库系统的核心。它主要具有以下几方面功能:(1)数据模式定义。数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。第7章 数据信息管理(2)数据存取的物理构建。数据库管理系统负责为数据模式的物理存
15、取及构建提供有效的存取方法及手段。(3)数据操纵。数据库管理系统为用户使用数据库中的数据提供方法,它一般提供查询、插入、修改及删除数据的功能。此外,它自身还具有简单算术运算及统计的能力,而且还可以与某些过程性语言结合,使其具有强大的过程性操作能力。(4)数据的完整性、安全性定义与检查。数据的完整性是保证数据库中数据正确的必要条件,因此必须经常检查以维护数据的正确性;数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,必须要对数据正确使用做出必要的规定,并在使用时作检查,以保证数据的安全性。第7章 数据信息管理(5)数据库的并发控制与故障恢复。数据库中的数据能为多个应用程序服务,所以就
16、存在着多个应用程序对数据库的并发操作(即处理多个用户/应用程序的同时使用某些数据时可能产生的问题),在并发操作中如果不加控制和管理,多个应用程序之间就会相互干扰,从而对数据库中的数据造成破坏,数据库管理系统必须对多个应用程序的并发操作做出必要的控制以保证数据不被破坏,如果数据库中的数据一旦遭到破坏,数据库管理系统能够及时进行恢复。(6)数据的服务。数据库管理系统提供对数据库中数据的多种服务功能,如数据拷贝、转存、重组、性能监测、分析等。第7章 数据信息管理 为了实现上述功能,数据库管理系统一般提供相应的数据语言。数据定义语言(DDL,Data Define Language)和数据操纵语言(D
17、ML,Data Manipulation Language)供用户定义数据库模式结构与权限约束,实现对数据的查询、修改等操作,通过数据控制语言(DCL,Date Control Language)对数据库运行进行控制,包括并发控制、安全性检查、完整性约束条件的检查和执行,数据库的内部维护(例如索引的自动维护)等。常用的数据库管理系统有SQL Server、Oracle、DB2、Sybase、Access、MySQL等。第7章 数据信息管理 7.1.3 数据库系统的构成数据库系统的构成数据库系统是指有数据库技术支持的计算机系统,它可以实现有组织、动态地存储大量相关数据,提供数据处理和信息资源共享
18、服务的功能。数据库系统主要由四部分构成:数据库、软件系统、硬件系统和用户,见图7.9。图7.9 数据库系统第7章 数据信息管理 1数据库数据库在一个数据库系统中,可以根据需要创建多个数据库,并且数据库中的数据通常可以被多个用户共享。2软件系统软件系统软件系统包括操作系统、数据库管理系统及其应用开发工具、数据库应用系统。其中数据库管理系统是数据库系统的核心。3硬件系统硬件系统硬件系统指运行数据库系统所需要的硬件设备。一个数据库系统需要有足够快的CPU来处理数据,以便快速响应用户的数据处理和数据检索请求,同时还需要有足够大的内存和外存来运行和存储大量的数据。对于分布式数据库系统还需要有网络通信设备
19、的支持。第7章 数据信息管理 4用户用户用户指的是管理和使用数据库的人。用户有三类:数据库管理员、应用程序员和终端用户。(1)数据库管理员(DBA,Database Administrator):对数据库进行设计、维护和管理的专门人员。DBA必须要有较高的技术水平,还应具有了解和阐明管理要求的能力,他不仅要熟悉数据库管理系统软件,还应熟悉本单位的业务工作流程。DBA应参与数据库设计的全过程,决定数据库的结构和内容;负责定义数据的安全性和完整性,分配终端用户对数据库的使用权限和密码的管理;控制数据库的运行和使用,改进和重新构造数据库系统,当数据库遭到破坏时,负责恢复数据库等。数据库管理员一般由业
20、务水平高,资历深的人担任。第7章 数据信息管理(2)应用程序员:负责为终端用户设计和编写应用程序,方便终端用户对数据库进行操作。(3)终端用户:最终使用数据库的人员。如使用超市管理系统工作的超市收银员,使用图书管理系统借书的学生,使用火车售票系统卖票的铁路售票员等。终端用户一般为非计算机专业人员,他们通过窗口、菜单、对话框等方式使用数据库,不需要懂编程和数据库技术。第7章 数据信息管理 7.1.4 数据库新技术数据库新技术随着计算机系统硬件、Internet和Web技术的发展,数据库技术不断应用到新的领域。数据库出现了许多新的分支:有面向决策支持的数据仓库、面向科学计算的科学数据库、面向工程设
21、计的工程数据库、面向地理信息系统的空间数据库、面向移动计算环境的移动数据库,以及Web数据库、实时数据库、统计数据库等。第7章 数据信息管理 随着数据库系统所管理的数据格式、数据处理方法以及应用环境不断变化,同时随着人工智能、多媒体和其它学科技术的发展,数据库与相关技术结合出现了面向对象数据库、分布式数据库、并行数据库、多媒体数据库、传感器网络管理数据库、主动数据库、知识数据库、模糊数据库等。数据库技术是计算机领域中发展最快的技术之一,数据库技术的发展是沿着数据模型这条主线展开的。第7章 数据信息管理 7.2 在计算机中模拟现实在计算机中模拟现实数据模型数据模型7.2.1 数据模型概述数据模型
22、概述几个世界几个世界通俗地讲,数据模型就是对现实世界的模拟。在数据库中使用数据模型来抽象表示和处理现实世界,使之可以存放于数据库中。数据模型应满足三方面要求:(1)能比较真实地模拟现实世界。(2)容易为人所理解。(3)便于在计算机上实现。图7.10 几个“世界”间的关系一种数据模型要很好地满足这三个方面的要求,目前尚很困难。在数据库系统中应针对不同的使用对象和应用目的,采用不同的数据模型。第7章 数据信息管理 图7.10 几个“世界”间的关系第7章 数据信息管理 现实世界中的河流山川、花草树木、人和动物,都是计算机不可能直接处理的,所以必须先对现实世界中的具体事物进行分析、归纳、抽象形成信息,
23、再对这些信息进行记录、整理、归类后就构成了信息世界。将信息世界中的信息用二维表或其它形式表示出来就形成了数据世界,最后再将这些数据转换成计算机能够处理的二进制形式,就是数字世界。几个“世界”间的关系如图7.10所示。数据模型按不同的应用层次分成三种类型:概念数据模型、逻辑数据模型、物理数据模型。第7章 数据信息管理 7.2.2 概念模型概念模型信息世界信息世界概念数据模型简称概念模型,又称为信息模型。概念模型是对现实世界的第一次抽象,是按照用户的观点对现实世界进行建模,描述用户的需求,是数据库设计人员和用户之间交流的语言。概念模型既要具有较强的语义表达能力,能够方便、直观地表达应用中的各种语义
24、知识,还应该简单、清晰,易于用户理解。概念模型主要用于数据库设计,它与具体的计算机系统和DBMS无关,重点在于分析数据及数据间的联系等。第7章 数据信息管理 概念模型的表示方法有很多种,最著名也最常用的是实体联系模型。实体联系(Entity Relationship)模型也称为E-R模型,它是由Peter-Chen(美籍华裔计算机科学家陈品山)于1976年在题为“实体联系模型:将来的数据视图”论文中提出的。E-R模型中有以下几个基本概念:(1)实体:是指客观存在并可相互区别的事物。实体可以是具体的对象,如一所学校、一名学生、一门课程等;也可以是抽象的概念,如一次选课、一个操作流程等。(2)属性
25、:实体和联系所具有的特征。现实世界中的实体可由若干属性来描述,如学生有学号、姓名、性别、年龄等属性,选课有选课编号、成绩等属性。第7章 数据信息管理(3)实体集:所有属性完全相同的实体的集合。例如,全体学生、全体教师等。每个实体集都有一个名称,即实体名,在不引起混淆的情况下,实体集往往简称为实体。(4)实体型:用实体名和属性集表示。例如,学生(学号、姓名、性别、年龄、院/系、家庭住址、入学年份)就是一个实体型。(5)联系:表示相关联的实体集之间的关系。如学生和课程之间的关系为选课,教师和课程之间的关系为讲授,校长和学校的关系为任职等。E-R模型中,实体集之间的联系可归为三种:第7章 数据信息管
26、理 一对一(1 1)联系。如果实体集A中的每一个实体,在实体集B中至多只有一个实体与之联系;反之,对于实体集B,在实体集A中也至多只有一个实体与之联系,那么称实体集A与实体集B是1 1联系。如学校和校长、班级和班长之间的联系。一对多(1 M)联系。如果实体集A中的每一个实体,在实体集B中有M个实体(M0)与之联系;反之,对于实体集B中的每一个实体,在实体集A中至多有一个实体与之联系,那么称实体集A与实体集B是1 M联系。如学校和教师、班级和学生、部门和员工之间的联系。第7章 数据信息管理 多对多(M N)联系。如果实体集A中的每一个实体,在实体集B中有M个实体(M0)与之联系;反之,对于实体集
27、B中的每一个实体,在实体集A中也有N个实体(N0)与之联系,则称实体集A与实体集B是M N联系。如学生和课程、老师和学生之间的联系。实体联系模型用E-R图来描述,实体集用矩形表示,联系用菱形表示,属性用椭圆表示。例如有一个简单的教务系统,能实现对学生、教师、学生选课和老师授课进行管理,那么在该教务系统涉及的实体有:第7章 数据信息管理 学生(学号,姓名,性别,年龄,院/系,家庭住址,入学年份)课程(课号,课程名称,课程性质,学分,课时)选课(学号,课号,成绩)授课(授课ID,课号,教师编号)教师(教师编号,姓名,性别,出生日期,职称,院/系)用E-R图可描述为图7.11。实体联系模型是抽象和描
28、述现实世界的有效工具,它独立于计算机系统,独立于数据库管理系统,是各种数据模型的基础。第7章 数据信息管理 图7.11 简单教务系统的E-R图第7章 数据信息管理 7.2.3 逻辑模型逻辑模型数据世界数据世界逻辑模型又称为数据结构模型,简称数据模型。它负责将概念模型具体化,要实现概念模型所描述的信息。目前,数据库领域中常用的数据模型有层次模型、网状模型和关系模型,其中层次模型和网状模型又称为非关系模型。关系模型是目前使用最广泛的数据模型。由于面向对象的方法和技术在计算机各个领域都产生了深远的影响,也促进了数据库技术中面向对象数据模型的研究和发展,许多关系数据库厂商为了支持面向对象技术,对关系模
29、型作扩展,从而产生了对象关系模型。本节简要介绍一下常用的三种数据模型。第7章 数据信息管理 1层次模型层次模型层次模型是数据库系统中最早出现的数据模型。层次模型用树型结构来表示实体与实体间的联系,它只能直接表示出一对多(包括一对一)的联系,对于多对多的联系必须先分解成一对多联系。所以层次模型比较适合于表示自然的层次关系,如家族关系、行政机构等,描述直观、自然,容易理解,这是层次数据库的突出优点。层次模型的典型代表是IBM公司于1968年推出的第一个大型商用的数据库管理系统IMS(Information Management System)。第7章 数据信息管理 2网状模型网状模型现实世界中很多
30、实体之间的联系是非层次结构的,用树型结构描述就很不直接,网状模型可以克服这一弊端。网状模型用网状结构表示实体之间的联系,最具有代表性的网状数据库管理系统是1971年4月数据系统语言协会(CODASYL,Conference On Data System Language)下属的数据库任务组(DBTG,Database Task Group)提出的一个系统方案,习惯称为CODASYL系统或DBTG系统。虽然DBTG不是实际的系统软件,但是它对网状数据库系统的研制和发展起了重大影响。网状模型能够直观地表示现实世界,但是结构复杂,用户不容易掌握和使用。第7章 数据信息管理 3关系模型关系模型1970
31、年,美国IBM公司的研究员E.F.Codd首次提出了数据系统的关系数据模型。与层次模型和网状模型相比,关系模型的概念简单、清晰,并且具有严格的数学基础,形成了关系数据理论基础,操作也直观、容易。无论是数据库的设计和建立,还是数据库的使用和维护,都比非关系模型简便很多。由于E.F.Codd在数据库领域的杰出贡献,他获得了1981年ACM图灵奖。关系模型中,实体和联系都表示为关系,一个关系可表示为一张二维表的形式。数据模型的目标是尽可能详细地描述数据,但并不考虑数据在物理上如何实现。第7章 数据信息管理 7.2.4 物理模型物理模型数字世界数字世界物理模型是面向计算机物理表示的模型,它描述了数据如
32、何在计算机中存储,如何表达记录结构、记录顺序和访问路径等信息。物理模型不但与具体的DBMS有关,还与计算机系统有关。物理模型是在逻辑模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。DBMS为了保证其独立性与可移植性,大部分物理模型的实现工作由系统自动完成。第7章 数据信息管理 7.3 二维表的王国二维表的王国关系数据库基础关系数据库基础关系模型是目前最重要的一种数据模型,是以集合论中的关系概念为基础发展起来的,关系模型中无论是实体还是联系都由单一的结构类型关系来表示。在实际的关系数据库中,关系也称表,一个关系数据库就是由若干个表组成的。7.3.1
33、 关系数据库的基本概念关系数据库的基本概念关系数据库中的实体和联系都表示为关系,一个关系在逻辑结构上就是一张二维表,由行和列构成。下面以学生表(表7-1)为例,介绍关系数据库中常用的术语。第7章 数据信息管理 表表7-1 学学 生生 表表第7章 数据信息管理 关系:一个关系对应于一张二维表。如学生表就是一个关系。关系名:每个关系都有个名字,称为关系名。元组:表中的每一行都称为一个元组,也叫一条记录。关系中元组的顺序可任意交换,可根据需要对元组进行排序。例如,在学生表中,可根据学号对元组进行排序,也可根据入学日期进行排序等。属性:表中的每一列都是一个属性,也叫一个字段,属性必须是不可再分的。如“
34、工资”可以分为基本工资、岗位工资、职位补贴,那么工资就不能作为一个属性。每个属性都有一个属性名,体现在表的标题行。第7章 数据信息管理 域:每个属性的取值范围。例如性别属性只能取“男”或“女”两个值。分量:元组的一个属性称为一个分量。如“张峰”就是第一个元组的一个分量。关系模式:对关系的描述,用关系名和属性的集合来表示。如学生表(学号,姓名,性别,年龄,院/系,家庭住址,入学日期)就是一个关系模式。主键:又称为主码,主关键字。表中的某个属性或属性组合,能够唯一地确定一条记录。所以主键的值不能为空,不能重复。如“学号”为学生表的主键。第7章 数据信息管理 外键:表中的某个属性或属性的集合不是本表
35、的主键,但却是另外一张表的主键,称该属性或属性组为此表的外键。例如:教师编号为“教师表”的主键,但却不是“课程表”的主键,则称教师编号为“课程表”的外键。表的内容:元组的集合。基数:关系中元组的个数。如学生表的基数为10,表示表中共有10条记录。元数:关系中属性的个数。如学生表的元数为7,表示表中共有7个不同的属性。关系数据库:数据库中所有关系的集合。比如前面提到的简单教务系统数据库就由五张表组成:“学生”表、“教师”表、“课程”表、“选课”表和“授课”表。第7章 数据信息管理 关系数据库是基于关系模型的。关系模型描述了一个关系的结构,一个关系就是一张二维表。关系是元组的集合,是某一时刻关系模
36、式的状态或内容。因此,关系模式是稳定的、静态的,而关系则是随时间变化的、动态的。关系是关系模型中最基本的数据结构,关系既用来表示实体,也用来表示实体间的关系。第7章 数据信息管理 7.3.2 关系数据库的基本操作关系数据库的基本操作关系数据库是建立在数学理论之上的,集合代数理论是关系理论的基础,关系数据库是用数学的方法来处理数据库中的数据。本节将对关系数据库的理论关系代数作个简单介绍。关系模型的数据结构非常简单,实体和联系都表示为单一的关系。在用户看来一个关系就是一张二维表,表的每一行对应一个元组,表中的每一列对应一个域(一组具有相同数据类型的值的集合)。关系可以有三种类型:基本关系、查询表和
37、视图表。基本关系:又称为基本表,数据库中的数据都存在基本表中,只有基本表可以存储数据。第7章 数据信息管理 查询表:是查询结果对应的表,在执行查询时动态获取数据显示查询结果。视图表:是由基本表或其它视图导出的表。三种关系中只有基本表中存储数据,查询表和视图表中并不存储数据。1关系代数的基本操作关系代数的基本操作关系数据库中的数据都以关系的形式存在,对数据的操作就是对关系的操作,而关系是元组的集合,因此,可以将关系操作看成是集合的运算。关系数据库中常用的操作有查询、插入、删除、修改,关系的查询表达能力很强,是关系操作中最主要的部分。第7章 数据信息管理 关系操作可分为传统的集合运算(交、并、差、
38、广义笛卡尔积)和专门的关系运算(选择、投影连接、除)。1)传统的集合运算设有关系R和S:第7章 数据信息管理(1)交运算:R和S的交集是由既属于R又属于S的元组组成的集合。交运算用符号“”表示,结果用T表示,那么T=RS。第7章 数据信息管理(2)并运算:两个关系R和S的并集是由属于R或属于S的元组组成的集合。并运算用符号“”表示,结果用T表示,那么T=RS。第7章 数据信息管理(3)差运算:R和S的差是由属于R但不属于S的元组组成的集合。差运算用符号“”表示。差运算不满足交换律,所以RS与SR的结果不同。第7章 数据信息管理(4)广义笛卡尔积(乘法运算):把两个关系的元组以所有可能的方式组成
39、对。笛卡尔积运算用符号“”表示。设有关系R和S,R的基数为m,S的基数为n,那么经过笛卡尔积运算后,新关系T的基数为mn,即T=RS。第7章 数据信息管理 集合运算把关系当做元组的集合,从水平方向(行)上进行运算。在关系中增加元组时,使用并运算;删除元组时,使用差运算;修改元组时,可使用差运算及并运算(在关系R中作修改操作,可将需要修改的元组组成关系R,修改后的元组记为关系R,可通过(R-R)R实现修改操作)。第7章 数据信息管理 2)专门的关系运算(1)选择运算:从关系中找出满足给定条件的那些元组。在行上做选择,选择运算用符号“”表示。设有关系R、S,在关系R中要找出符合条件B=2的元组,结
40、果用T表示,T=F(R)。第7章 数据信息管理(2)投影运算:从关系中找出若干属性组成新的关系,是从列的角度进行的运算,相当于对关系进行垂直分解,投影运算用符号“”表示。设有关系R,在关系R中做投影操作,只保留属性B,C,运算结果用T表示为T=B,C(R)。第7章 数据信息管理(3)连接运算:是从两个关系的笛卡尔积中选择属性间满足一定条件的元组。常用的连接操作有等值连接和自然连接。等值连接:从行的角度进行运算,要求将两个关系中指定属性值相同的元组连接起来。指定的属性可以不是共同的属性,也可以是共同的属性,等值连接用运算符“”表示。设有关系R、S,在关系R和S中进行等值连接,连接条件为B=E,运
41、算结果用T表示,T=。第7章 数据信息管理 第7章 数据信息管理 自然连接:要求两个关系必须有相同的属性(公共属性),通过相同的属性值将两个关系连接起来,最后去掉重复的列,所以是同时从行和列上进行运算。等值连接用运算符号“”表示。在关系R和S中进行自然连接,结果用T表示,T=RS。第7章 数据信息管理(4)除法运算:设被除关系R为m元关系,除关系S为n元关系,那么它们的商为mn元关系,记为RS。商的构成原则是:将被除关系R中的mn列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取mn列的值作为商的一个元组,否则不取。除运算可理解为笛卡尔积的逆运算。除法运算用运算符号“”
42、表示。关系R除关系S,结果用T表示,那么T=RS。第7章 数据信息管理 第7章 数据信息管理 2关系代数在简单教务系统中的应用关系代数在简单教务系统中的应用例例7-1 新一届学生入学,现要将140101班学生表(表7-2)和140201班学生表(表7-3)的内容插入到学生表。插入操作可使用并运算,插入新生记录后的学生表如表7-4所示。表表7-2第7章 数据信息管理 表表7-3第7章 数据信息管理 表表7-4第7章 数据信息管理 例例7-2 假设有三好生(表7-5)和学生干部(表7-6)两张表,现要找出既是三好生又是学生干部的学生信息。可使用交运算实现,结果如表7-7所示。第7章 数据信息管理
43、例例7-3 现有学生选课成绩表(表7-8)和平时成绩表(表7-9),现要找出考试或平时成绩及格的学生信息。可使用差运算实现,运算结果如表7-10所示。第7章 数据信息管理 例例7-4 在课程表(表7-11)中找出课程性质为必修的课程信息。可使用选择运算实现,运算条件为课程性质为必修。运算结果如表7-12。第7章 数据信息管理 例例7-5 在课程表中(表7-11),只显示课号、课程名称和学时信息。可使用投影操作实现,在课号、课程名称和学时上进行投影。运算结果如表7-13所示。表表7-13第7章 数据信息管理 例例7-6 在学生表(表7-14)、课程表(表7-15)及选课成绩表(表7-16)中找出
44、选修了高等数学,并且考试成绩不及格的学生姓名和成绩。(综合使用选择,投影,连接操作)。表表7-14第7章 数据信息管理 第7章 数据信息管理 首先进行连接操作,学生表和选课成绩表进行自然连接,公共属性为“学号”;课程表和选课成绩表进行自然连接,公共属性为“课号”,再将连接后的两张表进行自然连接,公共字段为“学号”、“课号”和“成绩”。然连接后的关系如图7.12所示。图7.12 自然连接关系第7章 数据信息管理 第二步进行选择操作,选择的条件是课程名称=高等数学,成绩60,运算结果如图7.13所示。第三步,进行投影操作,选择“姓名”和“成绩”列内容,运算结果如图7.14所示。图7.13 运算结果
45、图7.14 运算结果第7章 数据信息管理 7.3.3 关系数据库的完整性约束关系数据库的完整性约束数据模型通常是由数据结构、数据操作和完整性约束三部分构成的。数据结构描述数据库的组成对象及对象之间的联系,是刻画一个数据模型性质最重要的一个方面。因此,人们通常会根据数据结构的类型来命名数据模型,如关系数据结构的数据模型命名为关系模型。数据操作指对数据库中的各种对象的实例所允许的操作的集合,包括操作及有关操作的规则。数据库主要有查询和更新两类操作。数据模型必须定义这两类操作的确切含义、操作符号、操作规则以及实现操作的语言。数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述。第7章 数据
46、信息管理 数据完整性是一组规则的集合,用来保证数据库中数据的正确性和相容性。数据完整性和数据安全性是两个不同的概念,数据的完整性用来防止数据库中存在不符合语义的数据,也就是防止存在不正确的数据,而安全性是保护数据库防止遭受恶意的破坏和非法的存取。本节主要讨论关系数据库的完整性。为了保证数据库中数据的完整性,关系模型提供了三类完整性约束:实体完整性、参照完整性和用户自定义的完整性。第7章 数据信息管理 1实体完整性实体完整性实体完整性是指表中行的完整性,实体完整性要求主键不能为空、不能重复。在关系模型中,主键(主关键字)作为唯一的标识,不能重复、不能为空。主关键字是否可以修改或整个列是否可以被删
47、除,取决于主关键字与其它表之间要求的完整性。例如,简单教务系统中,选课关系是由学号、课号和成绩构成,学号和课号共同做主键,那么要求学号和课号两个属性的值都不能为空,因为只有学生选了课,才会有成绩,也就是说,没有学号的成绩或是没有课号的成绩是错误的,是不应该存在的。第7章 数据信息管理 2参照完整性参照完整性参照完整性要求关系中不允许引用不存在的实体。参照完整性属于表之间的约束规则。实施了参照完整性规则之后,对表中主关键字进行操作时,系统会自动检查该字段,看看是否被添加、修改或删除了。如果对主关键字的修改违背了参照完整性的要求,那么系统会强制执行参照完整性。例如,在简单教务系统中,课程表和教师表
48、之间通过教师编号建立关联,当向课程表中添加一条记录时,系统要检查新记录的教师编号是否存在于主表(教师信息表)中,如果存在,则允许执行插入操作,否则拒绝插入。参照完整性还体现在对主表中主键值的删除和更新操作。第7章 数据信息管理 如果删除主表中的一条记录,那么从表中凡是与主表中主键值相同的外键值均被删除,称为级联删除。如果修改主表中某条记录主键的值,那么从表中相应记录中的外键值也随着修改,称为级联更新。参照完整性和实体完整性是关系模型必须要满足的完整性约束条件,目的是保证数据的一致性。3用户自定义的完整性用户自定义的完整性用户自定义的完整性指的是针对某一关系数据库的约束条件,是反映某一具体应用所
49、涉及的数据必须满足的语义要求。第7章 数据信息管理 实体完整性和参照完整性约束是任何关系数据库都必须遵守的规则,除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要设置一些特殊的约束条件,用户自定义的完整性规则就是针对某一具体的应用而设计的约束条件。例如在教师表中,教师职称字段的内容只可能是列表“教授、副教授、高级实验师、讲师、助教”中的内容,那么当用户输入或修改教师信息时,系统会在职称字段中进行完整性检查,检查该字段的值是否满足用户自定义的规则,如果不满足则拒绝执行操作,并给出相关提示信息。关系完整性规则是对关系的约束条件,这些约束条件实际上是对现实世界的要求,任何关系在任何时刻都
50、要满足这些条件。第7章 数据信息管理 7.3.4 关系数据库系统的设计方法关系数据库系统的设计方法前面我们介绍过数据库系统是指拥有数据库技术支持的计算机系统,它主要由数据库、软件系统、硬件系统和用户构成。在具备了数据库管理系统、系统软件、操作系统和硬件环境时,对数据库应用开发人员来说,就是如何使用这个环境表达用户的要求,构造最优的数据模型,然后建立数据库及其应用系统,这个过程就是数据库设计。在数据库领域内,通常把使用数据库的各类信息系统都称为数据库应用系统,例如以数据库为基础的各种信息管理系统、办公自动化系统、电子商务系统等。数据库设计是数据库系统的核心,是信息系统开发和建设的重要组成部分。第