《第5章计算机软件技术基础.ppt》由会员分享,可在线阅读,更多相关《第5章计算机软件技术基础.ppt(73页珍藏版)》请在三一文库上搜索。
1、第5章 数据库技术,5.1 数据库基本概念 5.2 关系代数 5.3 数据库设计,5.1 数据库基本概念,5.1.1 数据库技术与数据库系统 5.1.2 数据描述 5.1.3 数据模型,5.1.1 数据库技术与数据库系统 1. 数据库管理技术 (1)人工管理,(2)文件管理,1) 数据的冗余度比较大。 2) 由于数据是面向应用的,使程序与数据还是 互相依赖。 3) 文件系统对数据的控制没有统一的方法,而 是完全靠应用程序自己对文件中的数据进行 控制,因此,使应用程序的编制很麻烦,而 且缺乏对数据的正确性、安全性、保密性等 有效且统一的控制手段。,(3)数据库管理 1) 数据是结构化的,是面向系
2、统的,数据的冗余度小。 2) 数据具有独立性。 3) 保证了数据的完整性、安全性和并发性。,2. 数据库管理系统 数据库管理系统功能: 1) 定义数据库。 2) 管理数据库。 3) 建立和维护数据库。 4) 数据通信。,(1) 语言处理部分 分为以下四部分。 数据描述语言DDL(Data Description Language)解释程序。 模式DDL是数据库管理员用来定义数据库总体逻辑数据结构的。 子模式DDL是用户用来定义其所用的局部逻辑数据结构的。 物理DDL又称为设备介质语言,主要用来定义数据的物理存储方式。 数据操纵语言DML处理程序。 终端询问解释程序。 数据库控制命令解释程序。,
3、(2) 系统运行控制程序 分为以下几个模块。 系统总控程序。 访问控制程序。 并发控制程序。 保密控制程序。 数据完整性控制程序。 数据访问程序。 通信控制程序。,(3) 系统建立与维护程序 分为以下几个模块: 数据装入程序。 工作日志程序。 性能监督程序。 系统恢复程序。 重新组织程序。,3. 数据库系统的构成,(1) 用户在应用程序中向DBMS发出读取记录的请求,同时给出记录 名和要读取记录的关键字值; (2) DBMS接到请求后,利用应用程序A所用的子模式来分析这一请求; (3) DBMS调用模式,进一步分析请求,根据子模式与模式之间变换 的定义,决定应读入哪些模式记录; (4) DBM
4、S通过物理模式将数据的逻辑记录转换为实际的物理记录; (5) DBMS向操作系统发出读取所需物理记录的请求; (6) 操作系统对实际的物理存储设备启动读操作; (7) 读出的记录从保存数据的物理设备送到系统缓冲区; (8) DBMS根据模式和子模式的规定,将记录转换为应用程序所需要 的形式; (9) DBMS将数据从系统缓冲区传送到应用程序A的工作区; (10) DBMS向用户程序A发出本次请求执行情况的信息。,5.1.2 数据描述 1. 信息的存在形态 (1) 现实世界 (2) 观念世界,属性 实体 实体型 实体集,(3) 数据世界 数据项(字段)(field) 记录(record) 记录型
5、(record type) 文件(fild) 关键字(key),“教师”记录型,教师”记录型与“教师”文件的示意图,2. 实体间的联系 (1) 一对一(1:1)的联系 设有两个实体集E1和E2,如果E1和E2中的每一个实体最 多与另一个实体集中的一个实体有联系,则称实体集E1和 E2的联系是一对一的联系,通常表示为“1:1的联系”。 例如,实体集学校与实体集校长之间的联系就是1:1的 联系。,(2) 一对多(1:n)的联系 设有两个实体集E1和E2,如果E2中的每一个实体与E1中 的任意个实体(包括零个)有联系,而E1中的每一个实体 最多与E2中的一个实体有联系,则称这样的联系为“从E2 到E
6、1的一对多的联系”,通常表示为“1:n的联系”。 例如,实体集学校与实体集教师之间的联系为一对多的 联系。,(3) 多对多(m:n)的联系 设有两个实体集E1和E2,其中的每一个实体都与另 一个实体集中的任意个(包括零个)实体有联系,则称 这两个实体集之间的联系是“多对多的联系”,通常表示 为“m:n的联系”。 例如,教师实体集与学生实体集之间的联系是多对多的 联系。 又如。学生实体集和课程实体集之间的联系也是一种多 对多的联系。,5.1.3 数据模型 1. 层次模型 建立数据的层次模型需要满足下列两个条件: (1) 有一个数据记录没有“父亲”,这个记录即是 根结点; (2) 其他数据记录有且
7、只有一个“父亲”。,学校行政机构的层次模型,2. 网状模型 网状数据模型的特点: (1) 可以有一个以上的结点无“父亲”; (2) 至少有一个结点有多于一个的“父亲”。,学校教学情况的网状模型,3. 关系模型 把数据看成一个二维表,每一个二维表称为一个关系。,关系模型的优点。 (1) 数据结构比较简单 (2) 具有很高的数据独立性 (3) 可以直接处理多对多的联系 (4) 有坚实的理论基础,一个关系的属性名表称为关系模式,也就 是二维表的表框架,相当于记录型。 若某一关系的关系名为R,其属性名为 A1,A2,An 则该关系的关系模式记为 R(A1,A2,An),关系名为ER 关系模式(即二维表
8、的表框架)为ER(S#,SN,SD) 其中:S#,SN,SD分别是这个关系中的三个属性的名字 S1,S2,S3,S4,S5是属性S#(即学号)的值域 CHANG,WANG,LI,HU,MA是属性SN(即学生姓名)的值域 MATH,EL,PHYS,COM是属性SD(即所属系)的值域,1. 并运算(union) 假设有n元关系R和n元关系S,它们相应的属性值取自 同一个域,则它们的并仍然是一个n元关系,它由属于关 系R或属于关系S的元组组成,并记为RS。 并运算满足交换律,即RS与SR是相等的。,2. 差运算(difference) 假设有n元关系R和n元关系S,它们相应的属性值取自 同一个域,则
9、n元关系R和n元关系S的差仍然是一个n元关 系,它由属于关系R而不属于关系S的元组组成,并记为 RS。 差运算不满足交换律,即RS与SR是不相等的。,3. 交运算(intersection) 假设有n元关系R和n元关系S,它们相应的属性值取自 同一个域,则它们的交仍然是一个n元关系,它由属于关 系R且又属于关系S的元组组成,并记为RS。 交运算满足交换律,即RS与SR是相等的。,4. 笛卡尔积(Cartesian product) 设有m元关系R和n元关系S,则R与S的笛卡尔积记 为RS,它是一个mn元组的集合(即mn元关系), 其中每个元组的前m个分量是R的一个元组,后n个分量是 S的一个元
10、组。RS是所有具备这种条件的元组组成的集 合。 在实际进行组合时,可以从R的第一个元组开始到最 后一个元组,依次与S的所有元组组合,最后得到RS的 全部元组。 RS共有m*n个元组。,5. 选择运算(selection) 选择运算是在指定的关系中选取所有满足给定条件的元组,构成 一个新的关系,而这个新的关系是原关系的一个子集。选择运算用 公式表示为 Rg r|rR且g(r)为真 或 g(R) r|rR且g(r)为真 公式中的R是关系名;g为一个逻辑表达式,取值为真或假。g由逻辑运算符或and(与)、或or(或)、或not(非)联接各算术比较表达式组成;算术比较符有、,其运算对象为常量、或者是属
11、性名、或者是简单函数。在后一种表示中,为选择运算符。,6. 投影运算(projection) 投影运算是在给定关系的某些域上进行的运算。通过 投影运算可以从一个关系中选择出所需要的属性成分, 并且按要求排列成一个新的关系,而新关系的各个属性 值来自原关系中相应的属性值。 给定关系R在其域列SN和C上的投影用公式表示为 RSN,C 或 SN,C(R),7. 联接运算(join) 联接运算是对两个关系进行的运算,其意义是从两个 关系的笛卡尔积中选出满足给定属性间一定条件的那些 元组。 设m元关系R和n元关系S,则R和S两个关系的联接运算 用公式表示为,运算的结果为mn元关系。其中:|是联接运算符;
12、为算术比 较符;i与j分别表示关系R中第i个属性的属性名和关系S中第 j个属性的属性名,它们之间应具有可比性。 这个式子的意思是:在关系R和关系S的笛卡尔积中,找出关系R的第 i个属性和关系S的第j个属性之间满足关系的所有元组。 比较符有以下三种情况: 当为“”时,称为等值联接; 当为“”时,称为小于联接; 当为“”时,称为大于联接。 联接运算的上述公式还可以表示为 RfS rs|rR且sS且f(r,s)为真 其中:f为布尔函数(即联接条件),其取值为真或假;rs是关系R和关系S的笛卡尔积中的任一元组。,8. 自然联接运算(Natural join) 设关系R和关系S具有公共的属性,则关系R和
13、关系S的 自然联接的结果,是从它们的笛卡尔积RS中选出公共 属性值相等的那些元组。 如果关系R和关系S具有相同的属性名A1,A2,Ak, 则它们的自然联接是从笛卡尔积RS中选出 RA1SA1RA2SA2RAkSAk 的所有元组,并去掉重复属性的元组集合,记为 R|S,其中RA1,RA2,RAk表示RS中对应于关系R中的属性 A1,A2,Ak的属性名;同样,SA1,SA2,SAk表示RS中对 应于关系S中的属性A1,A2,Ak的属性名。 如果用j1,j2,jm来表示RS中除去 SA1,SA2,SAk 以后按顺序列出的所有其他分量的序号,则根据自然联 接的定义,可以用选择运算和投影运算来表示自然联
14、接: R|Sj1,j2,jm(RA1SA1RA2SA2RAkSAk (RS) 上式表明,自然联接运算分以下三步进行: (1) 计算笛卡尔积RS; (2) 选出同时满足RAiSAi(Ai为为R和S的公共属性)的所有元组; (3) 去掉重复属性。,例 找出关系R平均成绩(AVER)在85分以上的学生姓名和学号。 即 PS#,SN(AVER85(R)(S1,MA),(S3,FAN),(S4,WANG),例 有关系T和P。要找出讲授课程G1的教师姓名、所在系和他的职称。 即 TPTN,TD,T(TGG1(T|P),例 设有一关系W,现要在关系W中存入一个元组 (a,b,c,d,e,f,g)。 对于这个
15、操作可以用以下运算来实现: W(a,b,c,d,e,f,g) GIVING W 其中GIVING表示经过并运算后的结果赋于W。,5.3 数据库设计,5.3.1 数据库设计的基本概念 5.3.2 数据库设计的过程 5.3.3 数据字典,5.3.1 数据库设计的基本概念 可行性分析与研究阶段 系统设计阶段 设计实施与系统运行阶段,5.3.2 数据库设计的过程 1. 需求分析 (1) 了解组织机构。 (2) 了解具体的业务现状。 (3) 了解外部要求。 (4) 了解长远规划中的应用范围和要求。,2. 概念结构设计 概念模型主要特点: 能充分反映实际应用中的实体及其相互之间的联系,是现实世界 的一个真
16、实模型。 由于概念模型独立于具体的计算机系统和具体的数据库管理系统, 因此,便于用户理解,有利于用户积极参与设计工作。 概念模型容易修改。当问题有变化时,反映实际问题的概念模型 可以很方便地扩充和修改。 便于向各种模型转换。由于概念模型不依赖于具体的数据库管理 系统,因此,容易向关系模型、网状模型和层次模型等各种模型 转换。,概念结构设计要借助于某种方便又直观的描述工具,E-R (实体-联系,Entity-Relationship)图是设计概念模 型的有力工具。 在E-R图中,用三种图框分别表示实体、属性和实体之间 的联系,其规定如下: 用矩形框表示实体,框内标明实体名; 用椭圆状框表示实体的
17、属性,框内标明属性名; 用菱形框表示实体间的联系,框内标明联系名; 实体与其属性之间以无向边联接,菱形框与相关实 体之间也用无向边联接,并在无向边旁标明联系的 类型。,描述实体集联系的E-R图,多个实体集联系的E-R图,同一个实体集内实体联系的E-R图,实体属性的E-R图,实体集之间联系属性的E-R图,(1) 建立分E-R图 划分实体和属性的原则: 属性与其所描述的实体之间的联系只能是一对多的; 属性本身不能再具有需要描述的性质或与其他事物具 有联系。 能作为属性的尽量作为属性而不划分为实体, 以简化E-R图。,例 在一个简单的教学管理系统中,主要的实体型是学生、教师、课程、 课外科技小组,在
18、这些实体型之间有以下几种联系: “课程-学生”联系,记为“C-S”联系,这是多对多的联系; “课程-教师”联系,记为“C-T”联系,这也是多对多的联系; “学生-科技小组”联系,记为“S-R”联系,这也是多对多的联系; “教师-科技小组”联系,记为“T-R”联系,这是一对一的联系。,(2) 设计初步E-R图 属性域冲突。即同一个属性在不同的分E-R图中其值的 类型、取值范围等不一致或者是属性取值单位不同。 命名冲突。即属性名、实体名、联系名之间有同名异 义或异名同义的问题存在。 结构冲突。这主要表现在同一对象在不同的应用中有 不同的抽象。,(3) 设计基本E-R图 商店管理的初步E-R图 商店
19、管理的基本E-R图,3. 逻辑结构设计 (1) 逻辑结构设计的步骤 将概念模型转换成一般的数据模型; 将一般的数据模型转换为特定的数据库管理系统所支持的数据模 型。 (2) 逻辑结构设计的目标 确定整个数据库由哪些关系模式组成,即确定有哪些“表”组成; 确定每个关系模式由哪些属性组成,即确定每个“表”中的字段; 确定每个关系模式中的关键字属性。,(3) 逻辑结构设计的规则 每一个实体型转换为一个关系模式,每个联系分别转换为关系模式,4. 物理结构设计 (1) 物理结构设计的准备工作 要充分了解和掌握所用的数据库管理系统的性能和特点。 要十分熟悉存放数据的外存设备的特性。 要了解并熟悉应用要求。 (2) 物理结构设计的内容 确定数据的存储结构 选择存取路径 确定数据存放的位置 确定存储分配,5.3.3 数据字典 1. 数据字典的作用 (1) 对数据进行标准化管理 (2) 使收集的信息文本化 (3) 为数据库设计和系统分析提供了有力的工具 (4) 为数据库管理系统对数据库的存取控制和管理提供 条件 (5) 为数据库的维护和扩充提供依据,2. 数据字典的内容 描述数据库系统的所有对象。 描述数据库中各种对象之间的联系。 记录所有对象在不同场合、不同视图中的名称对照。 描述模式、子模式和物理模式,包括这些模式的修改 情况记录。,
链接地址:https://www.31doc.com/p-2987446.html