1、大型数据库系统技术、应用与实例分析大型数据库系统技术、应用与实例分析基于基于SQL Server(第三版)(第三版) 提醒提醒各位同仁:课件编写有点仓促,难免有错误,各位同仁:课件编写有点仓促,难免有错误,希望您使用它前能认真审阅,改正错误。谢谢!希望您使用它前能认真审阅,改正错误。谢谢!XXXXXXXX大学大学XXXX学院学院XXXXXX 1参考书和软件 参考书 大型数据库系统技术、应用与实例分析基于SQL Server(第三版) 电子工业出版社 上机软件 SQL Server 2000SQL Server 2000版本以上版本以上2第第1章章 数据库基础和数据库设计数据库基础和数据库设计
2、1.1 数据库系统数据库系统 1.2 数据库系统结构数据库系统结构 1.3 关系数据库及设计关系数据库及设计 31.1 数据库系统1.1.1 数据、信息、数据库数据、信息、数据库 1.1.2 数据库管理系统数据库管理系统 41.1.1 数据、信息、数据库1数据(数据(Data) 数据是描述事物的符号记录,是数据库中存储的基本数据是描述事物的符号记录,是数据库中存储的基本对象。对象。2信息(信息(Information) 信息是具有一定含义的、经过加工的、对决策有价值信息是具有一定含义的、经过加工的、对决策有价值的数据。所以说信息是有用的数据,数据是信息的表的数据。所以说信息是有用的数据,数据是
3、信息的表现形式。现形式。 51.1.1 数据、信息、数据库 3信息与数据的关系信息与数据的关系在计算机中,为了存储和处理某些事物,需要抽象出对这些事物感兴趣在计算机中,为了存储和处理某些事物,需要抽象出对这些事物感兴趣的特征组成一个记录来描述。例如:(李明,男,的特征组成一个记录来描述。例如:(李明,男,1985,浙江,计算机,浙江,计算机系,系,2004),这里可以是学生记录的数据,解释为:李明是个大学生,),这里可以是学生记录的数据,解释为:李明是个大学生,1985年出生,男,浙江人,年出生,男,浙江人,2004年考入计算机系。也可以解释为:李明年考入计算机系。也可以解释为:李明是个教师,
4、是个教师,19851985年出生,男,浙江人,年出生,男,浙江人,20042004年入职计算机系。年入职计算机系。所以,数据的形式不能完全表达其内容,需要经过解释。所以,数据的形式不能完全表达其内容,需要经过解释。数据的解释是指对数据含义的说明,数据的含义又称为数据的语义,也数据的解释是指对数据含义的说明,数据的含义又称为数据的语义,也就是数据的信息。就是数据的信息。 61.1.1 数据、信息、数据库 4数据库(DataBase,DB) 数据库是长期存储在计算机内的、有组织的、数据库是长期存储在计算机内的、有组织的、可共享的数据集合。可共享的数据集合。 数据库中的数据按一定的数据模型组织、描述
5、数据库中的数据按一定的数据模型组织、描述和存储,用于满足各种不同的信息需求,并且和存储,用于满足各种不同的信息需求,并且集中的数据彼此之间有相互的联系。具有较小集中的数据彼此之间有相互的联系。具有较小的冗余度,较高的数据独立性和易扩展性。的冗余度,较高的数据独立性和易扩展性。 71.1.2 数据库管理系统 主要功能包括以下几个方面:主要功能包括以下几个方面:1数据定义功能数据定义功能2数据操纵功能数据操纵功能3数据库的运行管理数据库的运行管理4数据库的建立和维护功能数据库的建立和维护功能81.2 数据库系统结构 1.2.1 1.2.1 数据库系统模式的概念数据库系统模式的概念 1.2.2 1.
6、2.2 数据库系统的三级模式结构数据库系统的三级模式结构 1.2.3 1.2.3 数据库的二级映象功能与数据独立性数据库的二级映象功能与数据独立性 1.2.4 1.2.4 数据库系统用户结构数据库系统用户结构 91.2.1 数据库系统模式的概念 模式(模式(Schema)是数据库中全体数据的逻辑结构和)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及到型的描述,不涉及到具体特征的描述,它仅涉及到型的描述,不涉及到具体的值。的值。 实例(实例(Instance)是模式的具体值。)是模式的具体值。 同一个模式可以有很多实例。模式是相对稳定的,同一个模式可以有很多实例。模式是相对稳定的,而实例是相
7、对变动的,因为数据库中的数据是在不而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。实例反映的是数据库某一时刻的状态。 101.2.2 数据库系统的三级模式结构数据库系统结构分为数据库系统结构分为三层:即内模式、概三层:即内模式、概念模式(模式)和外念模式(模式)和外模式,见图模式,见图1-1。 111.2.2 数据库系统的三级模式结构1概念模式(所有用户的公共视图)概念模式(所有用户的公共视图) 一个数据库只有一个概念模式,它以某一种数据模型为基础,一个数据库只有一个概念模式,
8、它以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。合成一个逻辑整体。 概念模式由许多记录类型的值组成。模式根本不涉及物理表概念模式由许多记录类型的值组成。模式根本不涉及物理表示和访问的技术,它只定义信息的内容。这样模式就可真正示和访问的技术,它只定义信息的内容。这样模式就可真正实现物理数据的独立性。实现物理数据的独立性。 定义模式时,不仅定义数据的逻辑结构,还要定义数据之间定义模式时,不仅定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关安全性、完整性要求。的联系,定义与数据有关安全性、完
9、整性要求。 在数据库管理系统(在数据库管理系统(DBMS)中,描述概念模式的数据定义)中,描述概念模式的数据定义语言称为语言称为“模式模式DDL” 121.2.2 数据库系统的三级模式结构 2外模式(用户可见的视图)外模式(用户可见的视图) 外模式也称子模式(外模式也称子模式(SubschemaSubschema)或用户模式,它是数据库)或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,是用户和数据库系统的接口,
10、是用户用到的那部辑表示,是用户和数据库系统的接口,是用户用到的那部分数据的描述。一个系统一般有多个外模式,通常又称分数据的描述。一个系统一般有多个外模式,通常又称“用户模式用户模式”或或“子模式子模式” 外模式是保证数据库安全性的一个有力措施。每个用户只外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。用户使用数据操纵语言数据是不可见的。用户使用数据操纵语言DDLDDL语句对数据库语句对数据库进行操作。进行操作。 131.2.2 数据库系统的三级模式结构3内模式(存储模式)内模式
11、(存储模式) 一个数据库只有一个内模式,它是数据物理结构和存储方一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法。它定义所有式的描述,是数据在数据库内部的表示方法。它定义所有的内部记录类型、索引和文件的组织方式、以及数据控制的内部记录类型、索引和文件的组织方式、以及数据控制方面的细节。方面的细节。 注意,内模式和物理层仍然不同。内部记录并不涉及到物注意,内模式和物理层仍然不同。内部记录并不涉及到物理记录,也不涉及到设备的约束。比内模式更接近物理存理记录,也不涉及到设备的约束。比内模式更接近物理存储和访问的那些软件机制是操作系统的一部分,即文件系储和访问的
12、那些软件机制是操作系统的一部分,即文件系统。统。 描述内模式的数据定义语言称为内模式描述内模式的数据定义语言称为内模式DDL。 141.2.3 数据库的二级映象功能与数据独立性数据库的二级映象功能与数据独立性 数据库的三级模式结构是数据的三个抽象级别。它数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给把数据的具体组织留给DBMSDBMS去做,用户只要抽象的去做,用户只要抽象的处理数据,而不必关心数据在计算机中的表示和存处理数据,而不必关心数据在计算机中的表示和存储。三级结构之间一般差别很大,为了实现这三个储。三级结构之间一般差别很大,为了实现这三个抽象级别在内部联系和转换,抽象
13、级别在内部联系和转换,DBMSDBMS在三级结构之间在三级结构之间提供了两个层次的映象:外模式提供了两个层次的映象:外模式/ /概念模式映象,概概念模式映象,概念模式念模式/ /内模式映象。内模式映象。 这两层映象保证了数据库系统中的数据能够具有较这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。高的逻辑独立性和物理独立性。 151.2.3 数据库的二级映象功能与数据独立性数据库的二级映象功能与数据独立性 1模式模式/概念模式映象概念模式映象 用于定义外模式和概念模式之间的对应性,即外部记用于定义外模式和概念模式之间的对应性,即外部记录和内部记录间的关系。录和内部记录间的
14、关系。 当模式发生改变时,由数据库管理员对各个外模式当模式发生改变时,由数据库管理员对各个外模式/模模式的映象作相应改变,可以使外模式保持不变,应用式的映象作相应改变,可以使外模式保持不变,应用程序是依据数据的外模式编写的,从而应用程序不必程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。逻辑独立性。 161.2.3 数据库的二级映象功能与数据独立性数据库的二级映象功能与数据独立性 2模式模式/内模式映象内模式映象 用于定义概念模式和内模式间的对应性,实现两级用于定义概念模式和内模式间的对应性,
15、实现两级的数据结构、数据组成等的映象对应关系。的数据结构、数据组成等的映象对应关系。 模式模式/内模式映象定义了数据库全局逻辑结构与存内模式映象定义了数据库全局逻辑结构与存储结构之间的对应关系,当数据库的存储结构改变储结构之间的对应关系,当数据库的存储结构改变了,由数据库管理员对模式了,由数据库管理员对模式/内模式映象作相应改内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的变,保证了数据与程序的物理独立性,简称数据的物理独立性。物理独立性。 171.2.4 数据库系统用户结构 1单用户数据库系
16、统 单用户数据库系统是一种早单用户数据库系统是一种早期的最简单的数据库系统。期的最简单的数据库系统。在这种系统中,整个数据库在这种系统中,整个数据库系统(包括应用程序、系统(包括应用程序、DBMS、数据)都装在一台、数据)都装在一台计算机上,由一个用户独占,计算机上,由一个用户独占,不同机器之间不能共享数据。不同机器之间不能共享数据。如图如图1-2所示。所示。 图图1-2 181.2.4 数据库系统用户结构2主从式结构数据库系统主从式结构数据库系统主从式结构是指一个主机带多个主从式结构是指一个主机带多个终端的多用户结构。在这种结构终端的多用户结构。在这种结构中,数据库系统(包括应用程序、中,数
17、据库系统(包括应用程序、DBMS、数据)都集中存放在主、数据)都集中存放在主机上,所有处理任务都由主机来机上,所有处理任务都由主机来完成,各个用户通过主机的终端完成,各个用户通过主机的终端并发地存取数据库,共享数据资并发地存取数据库,共享数据资源。如图源。如图1-3所示。所示。 图图1-3 191.2.4 数据库系统用户结构 3客户客户/服务器结构数据库系统服务器结构数据库系统 网络中某个(些)节点上的计网络中某个(些)节点上的计算机专门用于执行算机专门用于执行DBMSDBMS功能,功能,称为数据库服务器,简称服务称为数据库服务器,简称服务器;其他节点上的计算机安装器;其他节点上的计算机安装D
18、BMSDBMS的外围应用开发工具,支的外围应用开发工具,支持用户的应用,称为客户机,持用户的应用,称为客户机,这就是客户这就是客户/ /服务器结构的数据服务器结构的数据库系统。如图库系统。如图1-41-4所示。所示。 图图1-4201.2.4 数据库系统用户结构4分布式结构数据库系统分布式结构数据库系统 分布式结构是指数据库中的分布式结构是指数据库中的数据在逻辑上是一个整体,数据在逻辑上是一个整体,但物理地分布在计算机网络但物理地分布在计算机网络的不同节点上。网络中的每的不同节点上。网络中的每个节点都可以独立处理本地个节点都可以独立处理本地数据库中的数据,执行局部数据库中的数据,执行局部应用;
19、同时也可以同时存取应用;同时也可以同时存取和处理多个异地数据库中的和处理多个异地数据库中的数据,执行全局应用。如图数据,执行全局应用。如图1-5所示。所示。 图图1-5 211.3 关系数据库及其设计 1.3.1 关系数据库关系数据库 1.3.2 关系数据库设计关系数据库设计 1.3.3 关系数据库的完整性关系数据库的完整性 221.3.1 关系数据库 在关系数据库中,一个关在关系数据库中,一个关系就是一张二维表,它由系就是一张二维表,它由行和列组成。如图行和列组成。如图1-6所示。所示。 表中的一行就是一个元组表中的一行就是一个元组(也称记录),表中的列(也称记录),表中的列为一个属性,给每
20、个属性为一个属性,给每个属性起一个名即为其属性名起一个名即为其属性名(也称字段名)。(也称字段名)。 图图1-6231.3.2 关系数据库设计 1需求分析需求分析 需求分析阶段的任务是收集数据库所需要的信息需求分析阶段的任务是收集数据库所需要的信息内容和数据处理规则,确定建立数据库的目的。内容和数据处理规则,确定建立数据库的目的。在需求分析调研中,必须和用户充分讨论,确定在需求分析调研中,必须和用户充分讨论,确定数据库所要进行的数据处理范围,数据处理的流数据库所要进行的数据处理范围,数据处理的流程以及数据取值范围的界定。程以及数据取值范围的界定。 描述需求分析常用的方法有数据流图、数据字典描述
21、需求分析常用的方法有数据流图、数据字典等。等。 241.3.2 关系数据库设计2概念结构设计概念结构设计 概念结构设计是对现实世界的一种抽象,即对实际的人、概念结构设计是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以忽略非本质的细节,并把这些特性用各种概念精确地加以描述。描述。 为了能够完成上述目标,我们把现实世界中客观存在并可为了能够完成上述目标,我们把现实世界中客观存在并可相互区别的事物称为实体。相互区别的事物称为实体。 实体集之间存在各种联系(实体集
22、之间存在各种联系(RelationshipRelationship),主要有三类:),主要有三类:一对一联系(一对一联系(1:11:1)、一对多联系()、一对多联系(1:n1:n)、多对多联系)、多对多联系(m:nm:n)。)。 描述概念模型的有力工具是描述概念模型的有力工具是E-RE-R模型。模型。 251.3.2 关系数据库设计 3逻辑结构设计逻辑结构设计 关系模型的逻辑结构是一组关系模式的集合。将关系模型的逻辑结构是一组关系模式的集合。将E-RE-R图转换为关系模型一般遵循如下原则:图转换为关系模型一般遵循如下原则: (1 1)实体与实体属性的转换)实体与实体属性的转换 一个实体型转换为
23、一个关系模式。实体的属性就一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。是关系的属性。实体的码就是关系的码。 见书中例子。见书中例子。261.3.2 关系数据库设计 关系模型的逻辑结构是一组关系模式的集合。将关系模型的逻辑结构是一组关系模式的集合。将E-RE-R图图转换为关系模型一般遵循如下原则:转换为关系模型一般遵循如下原则: (2 2)实体间联系的转换)实体间联系的转换 一个一个1:11:1联系可以转换为一个独立关系模式,也可联系可以转换为一个独立关系模式,也可以将任意一端关系中的码合并到另一端的关系模式中。以将任意一端关系中的码合并到另一端的关系模式中。
24、一个一个1:n联系可以转换为一个独立的关系模式,也可联系可以转换为一个独立的关系模式,也可以将一端关系中的码与以将一端关系中的码与n端对应的关系模式合并。端对应的关系模式合并。 一个一个m:n联系必须转换为一个关系模式。联系必须转换为一个关系模式。 见书中例子。见书中例子。271.3.2 关系数据库设计4数据库表的优化与规范化数据库表的优化与规范化 在数据需求分析的基础上,进行概念结构和逻辑结构设计,并将在数据需求分析的基础上,进行概念结构和逻辑结构设计,并将数据信息分割成数个大小适当的数据表。数据信息分割成数个大小适当的数据表。 关系模型的规范化理论是研究如何将一个不规范的关系模型转化关系模
25、型的规范化理论是研究如何将一个不规范的关系模型转化为一个规范的关系模型理论。数据库的规范化设计,要求分析数为一个规范的关系模型理论。数据库的规范化设计,要求分析数据需求,去除不符合语义的数据。确定对象的数据结构,并进行据需求,去除不符合语义的数据。确定对象的数据结构,并进行性能评价和规范化处理,避免数据重复、更正、删除、插入异常。性能评价和规范化处理,避免数据重复、更正、删除、插入异常。 规范化理论认为,关系数据库中的每一个关系都要满足一定的规规范化理论认为,关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以划分为五个等级,通常在解范。根据满足规范的条件不同,可以划分为五
26、个等级,通常在解决一般性问题时,只要把数据规范到第三范式标准就可满足需要。决一般性问题时,只要把数据规范到第三范式标准就可满足需要。 281.3.2 关系数据库设计 5规范化的大学数据库规范化的大学数据库 (1 1)学生基本资料表)学生基本资料表(学号、身份证号、姓名、性别、(学号、身份证号、姓名、性别、移动电话、城市、专业、所在院系、累计学分),主移动电话、城市、专业、所在院系、累计学分),主键为学号。键为学号。 (2 2)课程基本资料表)课程基本资料表(课号、课名、教材名称、编著(课号、课名、教材名称、编著者、出版社、版号、定价),者、出版社、版号、定价),主键为课号主键为课号。 (3 3
27、)教师基本资料表)教师基本资料表TEACHERTEACHER(工号、身份证号、姓(工号、身份证号、姓名、性别、移动电话、城市、院系、职称、负责人工名、性别、移动电话、城市、院系、职称、负责人工号),主键为工号,外键是负责人工号,参考本表的号),主键为工号,外键是负责人工号,参考本表的工号。工号。 291.3.2 关系数据库设计 5规范化的大学数据库规范化的大学数据库 (4 4)开课计划表)开课计划表(开课号、课号、工号、开课地点、(开课号、课号、工号、开课地点、开课学年、开课学期、开课周数、开课时间、学分)开课学年、开课学期、开课周数、开课时间、学分) 主键为开课号,外键一是课号,参照课程表中
28、的属性主键为开课号,外键一是课号,参照课程表中的属性课号,外键二是工号,参照教师表中的属性工号。课号,外键二是工号,参照教师表中的属性工号。 (5 5)注册选课表)注册选课表(学号、开课号、成绩)(学号、开课号、成绩) 主键为学号和主键为学号和开课号开课号,外键为,外键为开课号开课号,参考开课计划,参考开课计划表中的表中的开课号开课号。 301.3.2 关系数据库设计 6数据库中表间联系数据库中表间联系 31学生表、开课表和选课表之学生表、开课表和选课表之间的联系,选课表中每一行间的联系,选课表中每一行表示一个学生选择了某门计表示一个学生选择了某门计划开设的课程。选课表的学划开设的课程。选课表
29、的学号列中的每个值都与学生表号列中的每个值都与学生表中的学号列的某个值相匹配;中的学号列的某个值相匹配;同样,开课号列中的每个值同样,开课号列中的每个值也都与开课表中的开课号列也都与开课表中的开课号列的某个值相匹配。的某个值相匹配。1.3.3 关系数据库的完整性 1实体完整性约束(实体完整性约束(PRIMARY) 实体完整性规则是主关键字段中的诸属性值不能实体完整性规则是主关键字段中的诸属性值不能取空值。取空值。 例如,在学生基本资料表中,我们规定主键学号例如,在学生基本资料表中,我们规定主键学号O O不能取空值。不能取空值。 321.3.3 关系数据库的完整性 2唯一性约束(唯一性约束(UN
30、IQUE) 唯一性约束规则是在约束的字段上不能有相同值唯一性约束规则是在约束的字段上不能有相同值出现。出现。 例如,在学生基本资料表中,学号是唯一标识每例如,在学生基本资料表中,学号是唯一标识每个学生实体的,所以该字段的值就不能出现重复个学生实体的,所以该字段的值就不能出现重复的学号值。又例如在课程基本资料表中,学校设的学号值。又例如在课程基本资料表中,学校设置的课程一般是不允许有一样名字的,所以课号置的课程一般是不允许有一样名字的,所以课号值(或课程名,取决谁是主键)就必须有唯一。值(或课程名,取决谁是主键)就必须有唯一。 331.3.3 关系数据库的完整性 3参照完整性约束(参照完整性约束
31、(FOREIGN) 参照完整性约束规则要求外关键字的值必须来源参照完整性约束规则要求外关键字的值必须来源于被参照关系表的取值或为空值。于被参照关系表的取值或为空值。 所谓外键是:设所谓外键是:设F F是基本关系是基本关系R R的一个或一组属性,的一个或一组属性,但不是关系但不是关系R R的关键字。如果的关键字。如果F F与基本关系与基本关系S S的主关的主关键字键字KsKs相对应,则称相对应,则称F F是基本关系是基本关系R R的外关键字,的外关键字,并称基本关系并称基本关系R R为参照关系,基本关系为参照关系,基本关系S S为被参照为被参照关系或目标关系。关系或目标关系。 341.3.3 关
32、系数据库的完整性 例如,选课表中的学号和开课号字段,单独都不例如,选课表中的学号和开课号字段,单独都不是选课表的关键字。但是,学号是学生表的主关是选课表的关键字。但是,学号是学生表的主关键字,开课号是开课表的主关键字。所以选课表键字,开课号是开课表的主关键字。所以选课表中的学号相对学生表就是外关键字,参照完整性中的学号相对学生表就是外关键字,参照完整性约束要求选课表中的学号值必须在学生表的学号约束要求选课表中的学号值必须在学生表的学号中可以找到,否则就只能取空值。同理,选课表中可以找到,否则就只能取空值。同理,选课表中的开课号相对开课表就是外关键字,参照完整中的开课号相对开课表就是外关键字,参
33、照完整性约束要求选课表中的开课号值必须在开课表的性约束要求选课表中的开课号值必须在开课表的开课号中可以找到,否则就只能取空值。开课号中可以找到,否则就只能取空值。351.3.3 关系数据库的完整性 4检查(检查(CHECK)和缺省值()和缺省值(DEFAULT)约束)约束 该类完整性约束是针对某一具体关系数据库的约该类完整性约束是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满束条件,反映某一具体应用所涉及的数据必须满足的语义要求。足的语义要求。 例如:注册选课表的成绩字段通过这种约束,其例如:注册选课表的成绩字段通过这种约束,其值只能在值只能在0100之间,或者是空值,可以把缺省值之间,或者是空值,可以把缺省值设为设为0。 36Thank you very much!Thank you very much!谢谢您的光临!谢谢您的光临!下一章下一章 37