数据库原理与应用第3章-数据库设计-2版课件.ppt

上传人(卖家):三亚风情 文档编号:3492242 上传时间:2022-09-07 格式:PPT 页数:131 大小:1.65MB
下载 相关 举报
数据库原理与应用第3章-数据库设计-2版课件.ppt_第1页
第1页 / 共131页
数据库原理与应用第3章-数据库设计-2版课件.ppt_第2页
第2页 / 共131页
数据库原理与应用第3章-数据库设计-2版课件.ppt_第3页
第3页 / 共131页
数据库原理与应用第3章-数据库设计-2版课件.ppt_第4页
第4页 / 共131页
数据库原理与应用第3章-数据库设计-2版课件.ppt_第5页
第5页 / 共131页
点击查看更多>>
资源描述

1、第第3章章 数据库设计数据库设计3.1 概述概述v数据库设计是指对于一个给定的应用环境,构造数据库设计是指对于一个给定的应用环境,构造最优的数据库最优的数据库模式模式,建立数据库及其应用系统,使之能够有效地存储数据,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求,包括信息需求和处理需求。满足各种用户的应用需求,包括信息需求和处理需求。信息需求信息需求:表示一个单位所需要的数据及其结构,该部分的表示一个单位所需要的数据及其结构,该部分的数据库设计是将应用系统所要用到的所有信息描述成实体、数据库设计是将应用系统所要用到的所有信息描述成实体、属性及实体间的联系,主要用来描述数

2、据之间的联系。属性及实体间的联系,主要用来描述数据之间的联系。处理需求处理需求:表示一个单位需要经常进行的数据处理,该部分表示一个单位需要经常进行的数据处理,该部分的数据库设计是将要进行的数据处理描述为操作的优先次序、的数据库设计是将要进行的数据处理描述为操作的优先次序、操作执行的频率和场合,主要用来描述操作与数据之间的联操作执行的频率和场合,主要用来描述操作与数据之间的联系。系。v信息需求表达了对数据库的内容及结构的要求,是静态要求,信息需求表达了对数据库的内容及结构的要求,是静态要求,处理需求表达了基于数据库的数据处理要求,是动态要求。处理需求表达了基于数据库的数据处理要求,是动态要求。3

3、.1.1 数据库设计的定义数据库设计的定义v 数据库的基本知识和数据库设计技术。数据库的基本知识和数据库设计技术。v 计算机科学的基础知识和程序设计的方法和技巧。计算机科学的基础知识和程序设计的方法和技巧。v 软件工程的原理和方法。软件工程的原理和方法。v 应用领域的知识。应用领域的知识。由于数据库系统的复杂性及其与环境联系的密切性,由于数据库系统的复杂性及其与环境联系的密切性,使得数据库设计成为一个困难、复杂和费时的过程。大型数使得数据库设计成为一个困难、复杂和费时的过程。大型数据库设计和实施涉及多学科的综合与交叉,是一项开发周期据库设计和实施涉及多学科的综合与交叉,是一项开发周期长、耗资巨

4、大、风险较高的工程,因此,一个从事数据库设长、耗资巨大、风险较高的工程,因此,一个从事数据库设计的专业人员至少应该具备以下计的专业人员至少应该具备以下4 4个方面的技术和知识:个方面的技术和知识:3.1.2 数据库设计的任务数据库设计的任务v数据库系统的设计主要包括数据库的结构特性设计以及数据库系统的设计主要包括数据库的结构特性设计以及数据库的行为特性设计。数据库的行为特性设计。设计数据库的结构特性,是为特定应用环境构造出最优的数设计数据库的结构特性,是为特定应用环境构造出最优的数据模型。据模型。设计数据库的行为特性,是建立满足各种用户对数据库应用设计数据库的行为特性,是建立满足各种用户对数据

5、库应用需求的功能模型。需求的功能模型。v设计数据库系统,首先应进行结构设计,数据库结构设设计数据库系统,首先应进行结构设计,数据库结构设计是否合理,直接影响到系统中各个处理过程的性能和计是否合理,直接影响到系统中各个处理过程的性能和质量。另一方面,结构特性又不能与行为特性分离,静质量。另一方面,结构特性又不能与行为特性分离,静态的结构特性的设计与动态的行为特性的设计分离,会态的结构特性的设计与动态的行为特性的设计分离,会导致数据与程序不易结合,增加数据库设计的复杂性。导致数据与程序不易结合,增加数据库设计的复杂性。3.1.3 数据库设计的原则数据库设计的原则v 不依赖性原则不依赖性原则:指数据

6、库系统对各种原始成果数据的格式和内容进行存储和管指数据库系统对各种原始成果数据的格式和内容进行存储和管理,对数据的存储和管理不依赖于某个特定的软件系统。理,对数据的存储和管理不依赖于某个特定的软件系统。v 开放性原则开放性原则:指系统不限定数据的存储格式,即原则上能存储任意格式的数据,指系统不限定数据的存储格式,即原则上能存储任意格式的数据,在系统中,数据的存储位置、存储方法、数据格式等对系统管理者来说是透在系统中,数据的存储位置、存储方法、数据格式等对系统管理者来说是透明的和开放的,原则上没有数据黑匣子。系统管理员能够知道数据以什么样明的和开放的,原则上没有数据黑匣子。系统管理员能够知道数据

7、以什么样的格式存放在系统中的什么位置,为实现真正意义上的数据管理(特别是数的格式存放在系统中的什么位置,为实现真正意义上的数据管理(特别是数据备份)提供条件。据备份)提供条件。v 可扩展性原则可扩展性原则:随着新数据源的出现和用户需求的增加,今后数据库所包含的随着新数据源的出现和用户需求的增加,今后数据库所包含的数据种类可能会比现在多,因此要求系统具有一定的可扩充性。当增加新种数据种类可能会比现在多,因此要求系统具有一定的可扩充性。当增加新种类的数据时,系统只要在原来的基础上增加一个对新数据的管理模块和若干类的数据时,系统只要在原来的基础上增加一个对新数据的管理模块和若干数据库表后,就可实现对

8、新数据的存储和管理。此外,数据的可扩展性还包数据库表后,就可实现对新数据的存储和管理。此外,数据的可扩展性还包含数据服务的可扩展性,生产出的数据和建立的数据库系统,不仅要能满足含数据服务的可扩展性,生产出的数据和建立的数据库系统,不仅要能满足用户今天的要求,还应该考虑到用户在未来几年内可能提出的从数据的种类用户今天的要求,还应该考虑到用户在未来几年内可能提出的从数据的种类到数据服务的方式等方面的新的需求。到数据服务的方式等方面的新的需求。v 检索和管理的高效性原则检索和管理的高效性原则:数据库系统的重点是对数据的管理和数据的提供,数据库系统的重点是对数据的管理和数据的提供,因此如何高效地实现因

9、此如何高效地实现“知道有什么数据、在什么地方、迅速提取数据并加工知道有什么数据、在什么地方、迅速提取数据并加工成用户所要求的产品成用户所要求的产品”,是进行系统设计时考虑的一个主要因素。,是进行系统设计时考虑的一个主要因素。v 规范设计法规范设计法:比较著名的有新奥尔良方法,它将数据库设计分为比较著名的有新奥尔良方法,它将数据库设计分为4 4个阶段:需求分析(分析用户要求)、概念设计(信息分析和定个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后,许多科学家对此进行了改进,

10、认为数据库系统设计应分其后,许多科学家对此进行了改进,认为数据库系统设计应分6 6个阶段进行,分别是需求分析、概念结构设计、逻辑结构设计、个阶段进行,分别是需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行及维护。物理结构设计、数据库实施和数据库运行及维护。v 基于基于E-RE-R模型的设计方法、基于模型的设计方法、基于3NF3NF(第三范式)的设计方法、基(第三范式)的设计方法、基于抽象语法规范的设计方法等。于抽象语法规范的设计方法等。v 数据库设计工具:数据库设计工具:经过多年努力,数据库设计工具已经实用化和经过多年努力,数据库设计工具已经实用化和产品化。例如,产品

11、化。例如,Design 2000Design 2000和和PowerDesignerPowerDesigner,分别是,分别是OracleOracle公公司和司和SybaseSybase公司推出的数据库设计工具软件,这些工具软件可以公司推出的数据库设计工具软件,这些工具软件可以自动或辅助设计人员完成数据库设计过程中的很多任务,特别是自动或辅助设计人员完成数据库设计过程中的很多任务,特别是大型数据库的设计需要自动设计工具的支持。大型数据库的设计需要自动设计工具的支持。3.1.4 数据库设计的方法数据库设计的方法3.1.5 数据库设计的步骤数据库设计的步骤 在数据库需求分析的基础上,按照规范化、结

12、构化设计方法,将在数据库需求分析的基础上,按照规范化、结构化设计方法,将数据库设计分为以下三个步骤:数据库设计分为以下三个步骤:v逻辑结构设计逻辑结构设计:将系统需求分析的结果设计成数据库的逻辑模式,即适:将系统需求分析的结果设计成数据库的逻辑模式,即适应于某种特定应于某种特定DBMSDBMS所支持的逻辑数据模型,与此同时,还需为各种数据所支持的逻辑数据模型,与此同时,还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果是处理应用领域产生相应的逻辑子模式。这一步设计的结果是“逻辑数据逻辑数据库库”。v物理结构设计:物理结构设计:根据特定根据特定DBMSDBMS所提供的、依赖于具体计

13、算机结构的多种所提供的、依赖于具体计算机结构的多种存储结构和存取方法等,对具体的应用任务选定最合适的物理存储结构存储结构和存取方法等,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序等)、存取方法和存取路(包括文件类型、索引结构和数据的存放次序等)、存取方法和存取路径等。这一步设计的结果是径等。这一步设计的结果是“物理数据库物理数据库”。v验证设计验证设计:在逻辑结构、物理结构设计的基础上,收集数据并具体建立:在逻辑结构、物理结构设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务,来验证数据库设计的正确性和一个数据库,运行一些典型的应用任务,来验

14、证数据库设计的正确性和合理性,当发现问题时,可能需要返回到前面的步骤进行修改。一般一合理性,当发现问题时,可能需要返回到前面的步骤进行修改。一般一个大型数据库的设计过程往往需要经过多次循环反复,因此,在做上述个大型数据库的设计过程往往需要经过多次循环反复,因此,在做上述数据库设计时,就应考虑到今后修改设计的可能性和方便性。数据库设计时,就应考虑到今后修改设计的可能性和方便性。3.2 关系数据库的基本概念关系数据库的基本概念 数据模型是现实世界数据特征的模拟和抽象。在数据库中用数据模型这数据模型是现实世界数据特征的模拟和抽象。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

15、数据模型通常由数据个工具来抽象、表示和处理现实世界中的数据和信息。数据模型通常由数据结构、数据操纵和完整性约束三部分组成,称为数据模型三要素。结构、数据操纵和完整性约束三部分组成,称为数据模型三要素。v 数据结构:数据结构:所研究对象类型的集合。这些对象是数据库的组成部分,主要包所研究对象类型的集合。这些对象是数据库的组成部分,主要包括两类:一类是与数据类型、内容、性质有关的对象。另一类是与数据之间括两类:一类是与数据类型、内容、性质有关的对象。另一类是与数据之间联系有关的对象。数据结构是对系统静态特性的描述,是刻画一个数据模型联系有关的对象。数据结构是对系统静态特性的描述,是刻画一个数据模型

16、性质最重要的方面,因此在数据库系统中,人们通常按照其数据结构的类型性质最重要的方面,因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。名为层次模型、网状模型和关系模型。v 数据操纵:数据操纵:对数据库中各种对象允许执行的操作集合及有关的操作规则。常对数据库中各种对象允许执行的操作集合及有关的操作规则。常用的数据操纵有检索和更新(包括新增、删除、修改)。数据模型必须定义用的数据操纵有检索和更新(包括新增、删除、修改)。数据模型必须定义

17、这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操纵是对系统动态特性的描述。言。数据操纵是对系统动态特性的描述。v 数据的约束条件:数据的约束条件:是一组完整性规则的集合。完整性规则是给定数据模型中是一组完整性规则的集合。完整性规则是给定数据模型中数据及其联系所具有的制约和储存规则,用来限定符合数据模型的数据库状数据及其联系所具有的制约和储存规则,用来限定符合数据模型的数据库状态以及状态变化,以保证数据的正确性、有效性和相容性。态以及状态变化,以保证数据的正确性、有效性和相容性。3.2.2 关系模型关系

18、模型v关系模型的数据结构:关系模型的数据结构:数据结构非常单一,无论是实体还是数据结构非常单一,无论是实体还是实体间的联系,均由单一的结构来表示,该结构是一张规范实体间的联系,均由单一的结构来表示,该结构是一张规范化了的二维表,由行和列组成,称之为关系。化了的二维表,由行和列组成,称之为关系。v关系模型的数据操纵:关系模型的数据操纵:包括查询、新增、删除、修改,其中包括查询、新增、删除、修改,其中查询的表达能力是最主要的部分。关系模型数据操纵的特点查询的表达能力是最主要的部分。关系模型数据操纵的特点是集合操作,即操作的对象和结果都是集合,这种操作方式是集合操作,即操作的对象和结果都是集合,这种

19、操作方式也称为一次一集合方式。也称为一次一集合方式。v关系模型的完整性约束:关系模型的完整性约束:包括实体完整性、参照完整性和用包括实体完整性、参照完整性和用户定义的完整性三大类。其中实体完整性和参照完整性是关户定义的完整性三大类。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,由关系系模型必须满足的完整性约束条件,由关系DBMSDBMS自动支持,自动支持,用户定义的完整性是由应用领域需要遵循的约束条件,是具用户定义的完整性是由应用领域需要遵循的约束条件,是具体领域中的语义约束体领域中的语义约束。1.关系的数学定义关系的数学定义v域域(Domain)(Domain):一组具有相同

20、数据类型的值的集合,一组具有相同数据类型的值的集合,如整数、实数等。形式化表示为如整数、实数等。形式化表示为D Dv笛卡尔积笛卡尔积(Cartesian Product)(Cartesian Product):一组域:一组域D D1 1,D,D2 2,D Dn n的笛卡尔积:的笛卡尔积:其中其中(d(d1 1,d,d2 2,d,d3 3,d dn n)称为一个称为一个元组元组,d di i称为一个分量;称为一个分量;若若D Di i的基数的基数(值的个数值的个数)为为M Mi i,则笛卡尔积的,则笛卡尔积的基数基数M M为:为:1212.(,.)|,1,2,.nniiD DDd dddD in

21、 1niiMm笛卡尔积笛卡尔积(Cartesian Product)例如:教师关系中姓名例如:教师关系中姓名、性别两个域、性别两个域D1、D2分别如下:分别如下:D1=李力,王平,刘伟李力,王平,刘伟D2=男,女男,女则则D1、D2的笛卡尔积为:的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)(王平,女),(刘伟,男),(刘伟,女)姓名性别李力男李力女王平男王平女刘伟男刘伟女D1和D2的笛卡尔积1.关系的数学定义关系的数学定义v关系:的子集称作在域上的关系,并表示为:。几点说明:几点说明:1.R

22、为关系名,为关系名,n称为关系的目或度(称为关系的目或度(Degree)。)。当当n=1时,称为时,称为单元单元关系。关系。当当n=2时,称为时,称为二元二元关系。关系。当当n=n时,称为时,称为n元元关系。关系。nDDD21),(21nDDDRv数学上关系是笛卡尔积的任意子集,但在实际应用中关数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。系是笛卡尔积中所取的有意义的子集。v例如:教师关系中的两个域姓名例如:教师关系中的两个域姓名D1 D1、性别、性别D2D2分别如下:分别如下:D1=D1=李力,王平,刘伟李力,王平,刘伟,D2=D2=男,女男,女。表。表2

23、 2虽然是表虽然是表1 1的子集,但在实际中却如任何意义。因此可以说的子集,但在实际中却如任何意义。因此可以说关系是关系是有意义的笛卡尔积的子集。有意义的笛卡尔积的子集。姓名性别李力男李力女1.关系的数学定义关系的数学定义姓名性别李力男李力女王平男王平女刘伟男刘伟女表1:D1和D2的笛卡尔积表2:D1和D2的笛卡尔积的一个子集2.关系的基本术语关系的基本术语v元组(元组(TupleTuple):):关系表中每一个横行称作一个元组,关系表中每一个横行称作一个元组,组成元组的元素称为分量。组成元组的元素称为分量。v属性(属性(AttributeAttribute):):关系中的每一列即为一个属性,

24、关系中的每一列即为一个属性,都有一个属性名。一个关系中往往有多个属性,用于刻都有一个属性名。一个关系中往往有多个属性,用于刻画实体的特征,由于关系中的属性名具有标识列的作用,画实体的特征,由于关系中的属性名具有标识列的作用,因而同一关系中的属性名不能相同。因而同一关系中的属性名不能相同。v候选码(候选码(Candidate KeyCandidate Key):):若关系中的某一属若关系中的某一属性组(或单个属性)的值能唯一地标识一个元组,性组(或单个属性)的值能唯一地标识一个元组,则称该属性组(或属性)为候选码。则称该属性组(或属性)为候选码。最简单情况下,候选码仅由单个属性组成。如表最简单情

25、况下,候选码仅由单个属性组成。如表3-23-2中,由于只有学生的姓名不重复,在这种情况下,只中,由于只有学生的姓名不重复,在这种情况下,只有姓名可以唯一地标识一个元组,所以有姓名可以唯一地标识一个元组,所以“姓名姓名”这个这个单属性可以为候选码。单属性可以为候选码。最极端的情况下,候选码由该关系所有属性组合而成,最极端的情况下,候选码由该关系所有属性组合而成,这时,候选码也称为全码。这时,候选码也称为全码。2.关系的基本术语关系的基本术语v最极端的情况下,候选码由该关系所有属性组合最极端的情况下,候选码由该关系所有属性组合而成,这时,候选码也称为全码。而成,这时,候选码也称为全码。如表3-3中

26、:图书馆有借阅关系(TCS),分别有三个属性,分别为:读者编号(T)、图书编号(C)和借阅时间(S)。在这种情况下,T、C、S三者之间是多对多关系,所以T、C、S这三个属性的组合才能是借阅关系(TCS)的候选码,在这种情况下,该候选码也称为全码。候选码(候选码(Candidate Key)v主码(主码(Primary KeyPrimary Key)当一个关系有多个候)当一个关系有多个候选码时,选定其中的一个候选码为主码。选码时,选定其中的一个候选码为主码。若关系中只有一个候选码,则这个唯一的若关系中只有一个候选码,则这个唯一的候选码就是主码。候选码就是主码。主码是关系模型中的一个重要概念。每主

27、码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,个关系必需选择一个主码,选定以后,不能随意改变。每个关系必定有且仅有不能随意改变。每个关系必定有且仅有一个主码,因为关系的元组无重复,至一个主码,因为关系的元组无重复,至少关系的所有属性的组合可作为主码。少关系的所有属性的组合可作为主码。2.关系的基本术语关系的基本术语2.关系的基本术语关系的基本术语v主属性(主属性(Prime AttributePrime Attribute)和非主属性()和非主属性(Non-Non-Prime AttributePrime Attribute)主码中的属性称为主属性,)主码中的属性称为主属性

28、,不包含在主码中的属性称为非主属性。不包含在主码中的属性称为非主属性。v有些教科书把候选码中的属性称为主属性,有些教科书把候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属不包含在任何候选码中的属性称为非主属性。如表性。如表3-23-2中,中,“姓名姓名”为主属性,为主属性,“性性别别”及及“年龄年龄”属性是非主属性。属性是非主属性。v若无特别申明,本书采用前一定义,即主若无特别申明,本书采用前一定义,即主码中的属性称为主属性。码中的属性称为主属性。v外码(外码(Foreign KeyForeign Key)如果关系如果关系R R2 2的一个或一组的一个或一组属性属性X X不是不是

29、R R2 2的主码,而是另一关系的主码,而是另一关系R R1 1的主码,的主码,则该属性或属性组则该属性或属性组X X称为关系称为关系R R2 2的外码,并称关的外码,并称关系系R R2 2为参照关系为参照关系(Referencing Relation)(Referencing Relation),关系,关系R R1 1为被参照关系(为被参照关系(Referenced RelationReferenced Relation)。)。v由外码的定义可知,被参照关系的主码和参照关由外码的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。在实际的应用系的外码必须定义在同一个域上。在实际的

30、应用中,为了便于识别,当外码与相应的主码属于不中,为了便于识别,当外码与相应的主码属于不同的关系时,往往给它们取相同的名字,不过需同的关系时,往往给它们取相同的名字,不过需要指出的是,外码并不一定要与相应的主码同名。要指出的是,外码并不一定要与相应的主码同名。2.关系的基本术语关系的基本术语v例如,表例如,表3-43-4是学生关系,学号属性为其主码,是学生关系,学号属性为其主码,表表3-53-5是选课关系,学号与课程号的属性组合为是选课关系,学号与课程号的属性组合为其主码,则选课关系中的其主码,则选课关系中的“学号学号”属性不是该关属性不是该关系的主码,但却是学生关系的主码。根据外码定系的主码

31、,但却是学生关系的主码。根据外码定义,义,“学号学号”属性为选课关系的外码,选课关系属性为选课关系的外码,选课关系为参照关系,学生关系为被参照关系。为参照关系,学生关系为被参照关系。外码(外码(Foreign Key)3.关系的类型关系的类型v 关系分为基本表、视图表和查询表。这三种类型的关系以不同的身份保存在数据库中,其作用和处理方法也各不相同。基本表:是关系数据库中实际存在的表,是实际存储数据的逻辑表示。视图表:是由基本表或其他视图表导出的表。视图表是为数据查询方便、数据处理简便及数据安全要求而设计的虚表,它不对应实际存储的数据。由于视图表依附于基本表,我们可以利用视图表进行数据查询,或利

32、用视图表对基本表进行数据维护,但视图表本身不需要进行数据维护。查询表:是查询结果表或查询中生成的临时表。由于关系运算是集合运算,在关系操作过程中会产生一些临时表,称为查询表。尽管这些查询表是实际存在的表,但其数据可以从基本表中再抽取,且一般不再重复使用,所以查询表具有冗余性和一次性,可以认为它们是关系数据库的派生表。4关系的基本性质关系的基本性质 1 1)列是同质的。)列是同质的。每一列中的分量是同一类型的数据,来自同一个每一列中的分量是同一类型的数据,来自同一个域。域。2 2)不同列可来自同一个域。)不同列可来自同一个域。每一列为一个属性,不同的属性要给每一列为一个属性,不同的属性要给予不同

33、的属性名。予不同的属性名。3 3)列的位置具有顺序无关性,)列的位置具有顺序无关性,列的次序可以任意交换。由于列顺列的次序可以任意交换。由于列顺序是无关紧要的,因此在许多实际关系数据库产品中,增加新序是无关紧要的,因此在许多实际关系数据库产品中,增加新属性时,一般是插至最后一列。属性时,一般是插至最后一列。4 4)任意两个元组不能完全相同。)任意两个元组不能完全相同。这是由笛卡尔积的性质决定的。这是由笛卡尔积的性质决定的。5 5)元组的位置具有顺序无关性,)元组的位置具有顺序无关性,元组的次序可以任意交换。元组的次序可以任意交换。6 6)分量必须取原子值,)分量必须取原子值,即每一个分量都必须

34、是不可分的数据项。即每一个分量都必须是不可分的数据项。下表是数据库中不允许出现的结构。下表是数据库中不允许出现的结构。5关系模式关系模式关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,其形式化描述为:R(U,D,dom,F),简记作R(U)或R(A1,A2,An)。R(U,D,DOM,F)关系名关系名属性名集合属性名集合域的集合域的集合属性向域属性向域的映象的映象属性间数据属性间数据的依赖关系的依赖关系v 属性向域的映象一般直接说明为属性的类型、长度等。属性向域的映象一般直接说明为属性的类型、长度等。v 某一时刻对应某个关系模式的内容(元组的集合)称

35、作关系。某一时刻对应某个关系模式的内容(元组的集合)称作关系。v 关系模式是型,是稳定的,静态的。关系是某一时刻的值,是关系模式是型,是稳定的,静态的。关系是某一时刻的值,是随时间不断变化的,是动态的。随时间不断变化的,是动态的。5关系模式关系模式R(U,D,DOM,F)关系名关系名属性名集合属性名集合域的集合域的集合属性向域属性向域的映象的映象属性间数据属性间数据的依赖关系的依赖关系3.3 关系操作关系操作v关系操作:关系操作:包括数据查询、数据维护和数据控制包括数据查询、数据维护和数据控制三大功能。三大功能。v关系操作语言根据其理论(查询的表达方式)的关系操作语言根据其理论(查询的表达方式

36、)的不同可分为以下三类:不同可分为以下三类:关系代数语言:关系代数语言:关系代数语言是一种通过关系的运算关系代数语言是一种通过关系的运算来表达查询要求的语言。来表达查询要求的语言。关系演算语言:关系演算语言:关系演算语言是一种通过查询结果元关系演算语言是一种通过查询结果元组应满足的谓词条件来表达查询要求的语言。组应满足的谓词条件来表达查询要求的语言。基于映象的语言:基于映象的语言:基于映象的语言是一种具有关系代基于映象的语言是一种具有关系代数和关系演算双重特点的语言。数和关系演算双重特点的语言。v关系代数的关系代数的运算对象运算对象是是关系关系,运算结果运算结果也是也是关系关系,关系,关系代数

37、用到的运算符主要包括四类:代数用到的运算符主要包括四类:集合运算符集合运算符:(并),(并),-(差),(差),(交),(交),X X(广义笛卡尔积)。(广义笛卡尔积)。专门的关系运算符专门的关系运算符:(选择选择),(投影),(投影),(连接),(连接),*(自然连接),(自然连接),(除)。(除)。算术比较运算符算术比较运算符:(大于),(大于),(大于等于),(大于等于),=,)和逻辑运算符()和逻辑运算符()连接起来的逻辑表达式,结果为逻辑值连接起来的逻辑表达式,结果为逻辑值“真真”或或“假假”。v选取运算实际上是从关系选取运算实际上是从关系R R中选取使逻辑表达式为真的中选取使逻辑表

38、达式为真的元组,是从行的角度进行的运算。元组,是从行的角度进行的运算。1.选取(选取(Selection)例例3-1 查询自动化系全体学生。其中下角标“5”为Sdept的属性序号,结果如图3-7所示。1.选取(选取(Selection)v投影投影是单目运算。关系是单目运算。关系R R上的投影是从上的投影是从R R中选择出若干属中选择出若干属性列,组成新的关系,从左到右按照指定的若干属性及性列,组成新的关系,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:顺序取出相应列,删去重复元组。记作:v其中其中A A是是R R中的属性列,中的属性列,为投影运算符,为投影运算符,为为R R中

39、元组中元组相应于属性集相应于属性集A A的分量。的分量。v从其定义可看出,投影运算是从列的角度进行的运算。从其定义可看出,投影运算是从列的角度进行的运算。2.投影(投影(Projection)()|ARt A tRP=PAtv例例3-23-2 查询学生关系Student中有哪些系 2.投影(投影(Projection)结果如图3-8所示。3.连接(连接(Join)v其中,其中,是连接运算符,是连接运算符,为算术比较运算符,也称为算术比较运算符,也称连接;连接;XYXY为连接条件;为连接条件;为为“=”时,称为等值连接;时,称为等值连接;为为“”时,称为大于连接。时,称为大于连接。v连接运算是二

40、目运算,它是从两个关系的笛卡尔积中选连接运算是二目运算,它是从两个关系的笛卡尔积中选取属性间满足连接条件的元组,组成新的关系取属性间满足连接条件的元组,组成新的关系。(a)和和(b)分别为关系分别为关系R和关系和关系S,(c)为为 的结果,的结果,图图3-9(d)为等值连接为等值连接 的结果,的结果,ABCa1b15a1b26a2b28BEb23b37b210AR.BCS.BEa1b15b37a1b15b210a1b26b37a1b26b210a2b28b210AR.BCS.BEa1b26b23a1b26b210a2b28b23a2b28b210v在连接运算中,一种最常用的连接是在连接运算中,

41、一种最常用的连接是自然连接自然连接。所谓自。所谓自然连接就是在等值连接的情况下,当连接属性然连接就是在等值连接的情况下,当连接属性X X与与Y Y具有具有相同属性组时,把在连接结果中重复的属性列去掉。即相同属性组时,把在连接结果中重复的属性列去掉。即如果如果R R与与S S具有相同的属性组具有相同的属性组Y Y,则自然连接可记作:,则自然连接可记作:v自然连接是在广义笛卡尔积自然连接是在广义笛卡尔积R RS S中选出同名属性上符合中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。成新的关系。3.连接(连接(Join)

42、-自然连接自然连接v等值连接不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。v等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。等值连接与自然连接的区别:等值连接与自然连接的区别:3.连接(连接(Join)-自然连接自然连接ABCa1b15a1b26a2b28BEb23b37b210ABCEa1b263a1b2610a2b283a2b2810关系代数关系代数除(Division):除运算是二目运算。给定关系 和 ,其中X、Y、Z为属性组。R中的Y与S中的Y 可以有不同的属性名,但必须来自相

43、同的域集。R与S的除运算得到一个新的关系 ,P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集 包含S在Y上投影的集合。记作:),(YXR),(ZYS)(XPxY除运算除运算A AB BC CD DE Ea1a1b1b15 5d1d13 3a1a1b1b15 5d2d27 7a1a1b2b25 5d3d31010a2a2b3b35 5d3d32 2a2a2b1b15 5d5d52 2a3a3b2b26 6d1d13 3a4a4b5b56 6d2d27 7a4a4b5b56 6d3d31010a4a4b5b56 6d3d32 2a6a6b6b66 6d5d52 2XY=C C

44、D DE EF F6 6d2d27 7fafa6 6d3d31010 fbfb6 6d3d32 2fcfcYR上分量值上分量值X 的象集的象集Yx包含包含S在在Y上的投影上的投影除运算除运算v关系除法运算的步骤:关系除法运算的步骤:将被除关系属性分为象集属性集和结果属性集,如本将被除关系属性分为象集属性集和结果属性集,如本例分别为例分别为C,D,EC,D,E和和A,BA,B。除关系中,对象集属性进行投影,得到目标关系数据除关系中,对象集属性进行投影,得到目标关系数据集。集。将被除关系分组,与结果属性值一样的元组分为一组,将被除关系分组,与结果属性值一样的元组分为一组,得到每一个结果属性值的象集

45、。得到每一个结果属性值的象集。若象集包含目标关系数据集,则该结果数据值作为结若象集包含目标关系数据集,则该结果数据值作为结果输出。果输出。除运算除运算v例例:查询选择了选修了所有课程的学生的学号。查询选择了选修了所有课程的学生的学号。)()(,CourseSCcnocnosno3.3.3 存储过程存储过程v 存储过程是一组预先定义并编译好的的程序,它可以接受参数、存储过程是一组预先定义并编译好的的程序,它可以接受参数、返回状态值和参数值。使用存储过程主要有以下优点:返回状态值和参数值。使用存储过程主要有以下优点:(1 1)存储过程能够提高程序的执行速度。)存储过程能够提高程序的执行速度。因为存

46、储过程只在创建因为存储过程只在创建时进行编译,以后每次执行存储过程都不需再重新编译,所以使时进行编译,以后每次执行存储过程都不需再重新编译,所以使用存储过程可提高数据库执行速度。用存储过程可提高数据库执行速度。(2 2)当对数据库进行复杂操作时,可将此复杂操作用存储过程封)当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。而且,存储过程装起来与数据库提供的事务处理结合一起使用。而且,存储过程可以重复使用,从而减少数据库开发人员的工作量。可以重复使用,从而减少数据库开发人员的工作量。(3 3)存储过程能够减少网络流量。)存储过程能够减少网络流量。对于同

47、一个针对数据库对象的对于同一个针对数据库对象的操作,如查询修改,如果这一操作所涉及到的语句被组织成一个操作,如查询修改,如果这一操作所涉及到的语句被组织成一个存储过程,那么当在客户计算机上调用该存储过程时,网络中传存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是调用语句,而不是查询过程的所有语句,这就大大降低送的只是调用语句,而不是查询过程的所有语句,这就大大降低了网络的传输量。了网络的传输量。(4 4)安全性高。)安全性高。可设定只有某类用户才具有对指定存储过程的使可设定只有某类用户才具有对指定存储过程的使用权限。用权限。3.3.3 存储过程存储过程v不同的数据库管理系统,存

48、储过程的定义略有不同的数据库管理系统,存储过程的定义略有差异。在差异。在OracleOracle中,存储过程可以用中,存储过程可以用PL/SQLPL/SQL或或JavaJava编写,在编写,在SQL ServerSQL Server中,存储过程可以使中,存储过程可以使用用T-SQLT-SQL编写。本书重点讨论编写。本书重点讨论SQL Server 2012SQL Server 2012数据库管理系统下的存储过程。数据库管理系统下的存储过程。vSQL Server 2012SQL Server 2012存储过程分为三类:系统存储存储过程分为三类:系统存储过程、扩展储存过程和用户自定义存储过程。过

49、程、扩展储存过程和用户自定义存储过程。3.3.3 存储过程存储过程1 1)系统存储过程:)系统存储过程:是系统提供的存储过程,可以作为命是系统提供的存储过程,可以作为命令进行各种操作,并可作为样本存储过程,指导用户令进行各种操作,并可作为样本存储过程,指导用户如何编写有效的存储过程。系统存储过程在如何编写有效的存储过程。系统存储过程在mastermaster数数据库中,其前缀为据库中,其前缀为sp_sp_,用来进行系统的各项设定、获,用来进行系统的各项设定、获取信息及相关管理工作,常用的系统存储过程有:取信息及相关管理工作,常用的系统存储过程有:sp_helpsp_help 显示参数清单和其数

50、据类型。显示参数清单和其数据类型。sp_helptextsp_helptext 显示存储过程的定义文本。显示存储过程的定义文本。sp_dependssp_depends 列出存储过程依据的对象或依据存储过列出存储过程依据的对象或依据存储过程的对象。程的对象。sp_stored_proceduressp_stored_procedures 返回当前数据库中的存储过返回当前数据库中的存储过程的清单。程的清单。3.3.3 存储过程存储过程2 2)扩展存储过程:)扩展存储过程:扩展存储过程以前缀扩展存储过程以前缀xpxp_ _来标识,对来标识,对于用户来说,扩展存储过程和普通存储过程一样,可于用户来说

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库原理与应用第3章-数据库设计-2版课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|