版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 关系数据库运算及设计由于现在数据库及数据库管理系统基本上都使用关系模型,因此基于关系模型的数据库管理系统就称为关系数据库管理系统(简称RDBMS),基于关系模型的数据库也称为关系数据库。本章主要介绍关系数据库的数据结构、基本运算及其设计。2.1 关系数据结构2.2 关系代数2.3 规范化2.4 数据库设计12.1 关系数据结构关系数据库采用关系模型作为数据的组织形式。关系模型其实就是用二维表格结构来表示实体及实体内部或实体之间的联系,结构单一。关系模型的数据结构虽然简单却能够表达丰富的语义,描述出现实世界的实体以及实体之间的各种联系。2.1.1 关系模型的组成2.1.2 关系的数学定义
2、2.1.3 关系的基本性质2.1.4 关系操作2.1.5 关系的完整性约束22.1.1 关系模型的组成关系数据库是支持关系模型的数据库系统,可以应用数学的方法来处理数据库中的数据。关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。1. 关系数据结构关系模型的数据结构简单清晰,关系单一。在关系模型中,现实世界的实体以及实体间的各种联系都可以使用关系来表示。从用户角度来看,关系模型中数据的逻辑结构就是一张扁平的二维表,由行列组成。在二维表中,存放数据库数据。2. 关系操作关系模型给出了关系操作的能力,但不对RDBMS语句给出具体的语法要求。关系操作能力通常用代数方式或逻辑方式来表示,分别
3、称为关系代数、关系演算和域关系演算。三种语言在表达能力上是完全等价的。32.1.1 关系模型的组成3. 关系的三类完整性约束关系模型提供了完备的完整性控制机制,定义了三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户定义的完整性是特定数据库在特定的应用领域需要遵循的约束条件,体现了具体领域中的语义约束。42.1.2 关系的数学定义关系模型中,数据在用户观点下是一个逻辑结构为二维表的数据模型。而关系模型是建立在关系(或集合)代数基础之上的。【定义1】域(Domain)是一组具有相同数据类型的值的集合
4、。例如,自然数、正整数、所有字符集合,都是域。【定义2】设D1,D2,Dn为任意域,定义D1,D2,Dn的笛卡尔积(Cartesian Product)为:52.1.2 关系的数学定义【定义3】D1D2Dn的任意一个子集叫做D1D2Dn上的一个关系(Relation),用R(D1D2Dn)表示。这里R表示关系名,n表示关系的目或度(Degree)。 元组 t 属性 候选键 主码(主键) 主属性62.1.3 关系的基本性质关系有3种基本类型:基本表、查询表和视图表。基本表:即物理表,是数据存储的逻辑表示。查询表:查询结果对应的表。视图表:由基本表或其他视图导出的表,是虚表,不存储数据。关系具有以
5、下性质:1) 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。2) 不同的列可以出自同一个域,每一列称为一个属性。在同一关系中,属性名不能相同。3) 列的顺序无关紧要,即列的顺序可以任意转换。4) 任意两个元组(行或记录)不能完全相同5) 行的顺序也无关紧要,即行的顺序也可以任意转换。6) 行列的交集称为分量,每个分量的取值必须是原子值,即分量不能再分。72.1.4 关系操作关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-time)的方式。关系模型中常用的关
6、系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作。其中查询的表达能力是其最主要的部分。82.1.5 关系的完整性约束关系模型定义三类完整性约束:1. 实体完整性【规则1】若属性(或属性组)A是基本关系R的主属性,则属性A不能取空值。例:学生关系:学生(学号,姓名,性别,出生日期)例:学生成绩关系:成绩(学号,课程号,分数)92.1.5 关系的完整性约束2. 参照完整性【规则2】若
7、属性(或属性组)A不是基本关系R的主码,它与基本关系S的主码B相对应(基本关系R和关系S不一定是不同的关系),称A是关系S的外(部)码(Foreign Key)。则对于R中的每个元组在A上的值必须为:或者取空值,或者等于S的主码B的某个元组的主码值。例如:职工(职工编号,职工姓名,部门编号,) 部门(部门编号,部门名称,地址,联系电话)102.1.5 关系的完整性约束3. 用户定义的完整性【规则3】用户针对某一具体数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如:职工关系的“性别”属性取值只能是“男”或“女”其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,
8、应该由关系系统自动支持。用户定义的完整性是特定数据库在特定的应用领域需要遵循的约束条件,体现了具体领域中的语义约束。112.2 关系代数关系代数是关系操作的理论基础,是关系数据操作的传统方式。关系代数是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式,它是用对关系的运算来表达查询的。2.2.1 关系代数的分类及运算2.2.2 传统的集合运算2.2.3 专门的关系运算122.2.1 关系代数的分类及运算关系的数据操纵语言按照表达查询方式的不同可以分为两大类:1) 用对关系的运算来表达查询的方式,称为关系代数。2) 用谓词来表达查询的方式,称为关系演算。132.2.1 关系代数的分类及运算
9、1. 关系代数和关系运算关系代数的运算按运算符性质的不同可以分为两大类:(1) 传统的集合运算传统的集合运算将关系(二维表)看成是元组(记录)的集合,其运算是以关系的“水平”方向即行的角度来进行运算的。传统的集合运算包括并、差、交、广义笛卡尔积。(2) 专门的关系运算专门的关系运算将关系(二维表)看成是元组(记录)或列(属性)的集合。其运算不仅可以从“水平”方向,还可以从“垂直”角度来进行运算。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,包括大于、大于等于、小于、小于等于、等于、不小于、与、或、非。专门的关系运算包括选择、投影、连接、除。关系代数的运算对象是关系(或表),运算结
10、果也是关系(或表)。142.2.1 关系代数的分类及运算2. 关系代数用到的运算符关系代数用到的运算符有:1) 集合运算符:(并),(差),(交),(广义笛卡尔积)。2) 专门的关系运算符:(选择),(投影),(连接),(除)。3) 算术比较符:= ,=, 4) 逻辑运算符:(非),(与),(或)152.2.2 传统的集合运算传统的集合运算包括并、差、交、广义笛卡尔积四种运算。它们都是二目运算,即集合运算符两边都必须有运算对象。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域(或值域),则可以定义并、差、交运算如下:1. 并(Union)关系R与关系S的并记作
11、:。162.2.2 传统的集合运算2. 差(Difference)关系R与关系S的差记作:其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。3. 交(Intersection)关系R与关系S的交记作:其结果关系仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即。172.2.2 传统的集合运算4. 广义笛卡尔积(Extended Cartesian Product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1
12、k2个元组。记作:182.2.3 专门的关系运算1. 与专门的关系运算有关的概念在介绍专门的关系运算之前,先介绍几个概念。1) 关系模式R (A1 , A2 , An )的一个关系为R,而t R表示t是关系R中的一个元组。则t(Ai)则表示t这个元组中相应于属性Ai的一个分量。2) 若A=( Ai1 , Ai2 ,Aik .),其中Ai1 , Ai2 ,Aik是A1 , A2 , An的一部分,则A称为域列或属性列。表示(A1 , A2 , An)中去掉(Ai1 , Ai2 ,Aik)各列后所余的列的总体,tA=(tAi1, tAi2, tAik)则表示元组t在属性列A上诸分量的集合。3) R
13、为n度关系,S为m度关系。trR, tsS,称为元组的连接。这是一个( n+m )度元组,后m个分量为S中的一个元组。4) 给定一个关系R( X , Z ),其中X,Z为属性组。我们定义当tX=x时,x在R中的像集为:192.2.3 专门的关系运算2. 选择(Selection)选择是在关系R中选择满足给定条件的诸元组,记作:其中F表示选择条件,F中可以使用逻辑运算符,也可以使用比较运算符。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行(记录)的角度来进行的运算。202.2.3 专门的关系运算2. 投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系
14、。记作:其中A为R中的属性列。投影操作是从列(属性)的角度进行的运算。投影操作是从列的角度进行的运算。212.2.3 专门的关系运算3. 连接(Join)连接也称为连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。222.2.3 专门的关系运算连接运算中有两种连接:等值连接,自然连接。为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,即等值连接为:自然连接本质
15、上也是等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,是一种特殊的等值连接。即若R和S具有相同的属性组B,则自然连接可记作:一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。232.2.3 专门的关系运算4 除(Division)给定关系R ( X , Y )和S ( Y , Z ),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P ( X ),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集包含S在Y上投影的集合
16、。记作:其中为x 在R中的象集,x=X。242.3 规范化为了使关系数据库中各个关系(表)的结构更为清晰,关系(表)内部的记录更为合理,提出了规范化的概念。2.3.1 范式简介2.3.2 函数依赖2.3.3 范式的定义252.3.1 范式简介关系数据库中的关系要符合规范化要求。根据规范化理论,人们提出了范式的概念,根据范式来设计关系数据库的逻辑结构。1. 范式的种类第一范式、第一范式、第三范式,BC范式、第四范式、第五范式。所谓第几范式是指一个关系模式按照规范化理论设计,符合哪一级别的要求。262.3.1 范式简介1) 第一范式要求删除表中的所有重复组,一个重复组是一个记录中的一组属性,它多次
17、不定量地出现在每个记录中。1NF就是要删除重复组。2) 第二范式指其中包含有组合主键,所有的非关键字字段必须完全依赖于整个主关键字。2NF删除了部分依赖。3) 第三范式非主关键字属性之间不允许互相依赖。3NF删除非关键字依赖。4) Boyce-Codd范式(鲍依斯-柯德范式BCNF):当实体已经是第三范式的,并且任何属性所依赖的都是某个候选关键字,则此实体就属于BCNF。5) 第四范式就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。272.3.1 范式简介2. 范式的之间的关系及规范化各范式之间的关系及规范化过程如下:1) 取原始的1NF关系模式,消去任何非主属性对关键字的部分
18、函数依赖从而产生一组2NF的关系模式。2) 取2NF关系模式,消去任何非主属性对关键字的传递函数依赖,产生一组3NF的关系模式。3) 取3NF的关系模式的投影,消去决定因素不是候选关键字的函数依赖,产生一组BCNF 的关系模式。4) 取BCNF关系模式的投影,消去其中不是函数依赖的非平凡的多值依赖,产生一组4NF关系模式。所以有282.3.2 函数依赖函数依赖(Functional DePendency)是关系模式中各个属性之间的一种依赖关系,是规范化理论中一个最重要最基本的概念。【定义5】设R(U)是属性集U上的关系模式,X和Y均为U的子集。如果R(U)的任意一个可能的关系r都存在着,对于X
19、的每一个具体值,Y都有唯一的具体值与之对应,则称X函数决定Y,或Y函数依赖于X,记为:XY。我们称X为决定因素,Y是依赖因素。292.3.2 函数依赖【定义6】在R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作:X Y若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X Y【定义7】在R(U)中,如果XY,(Y不属于X),YX,YZ,则称Z对X传递函致依赖。302.3.3 范式的定义1. 第一范式第一范式是关系模式满足所要遵循的最基本的条件,是所有范式的基础,即关系中的每个属性必须是不可再分的原子项,不能是属性组合。【定义8】如果关系模式R
20、,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式(First Normal Form),简称为1NF,记作REINF。不满足第一范式条件的关系模式称之为非规范化关系。在关系数据库系统中只讨论规范化的关系,凡非规范化关系模式必须化成规范化的关系。在非规范化的关系中去掉组合属性和重复数据项,即让所有的属性均为原子项,就满足第一范式的条件,变为规范化的关系。 312.3.3 范式的定义2. 第二范式【定义9】设有关系模式R是属于1NF的关系模式,如果它的所有非主属性都完全函数依赖于码,则称R是第二范式的关系模式,记为R2NF。3. 第三范式【定义10】关系模式R中若不存在这样
21、的码X,属性组Y及非主属性Z(Z不是Y的子集),使得XY,(YX)YZ成立,则称R3NF。由定义可以证明,若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。322.3.3 范式的定义4. BCNFBCNF是由Boyce和Codd提出来的,通常认为BCNF是修正的第三范式,有时也称为扩充的确第三范式。【定义11】关系模式R是1NF,若XY,且Y不是X的子集时,X必含有码,那么称R是BCNF的模式。如果数据库模式中每个关系模式都属于BCNF,则称为BCNF的数据库模式。定理 如果R是BCNF模式,那么R也是3NF模式。332.3.3 范式的定义5. 第四范式【定义12】关系模式 ,如果
22、对于R的每个非平凡多值依赖 ,X都含有码,则称 。342.3.3 范式的定义综上所述,关系的规范化就是将一个不规范的关系(表)分解为多个规范化的关系(表)的过程。关系的规范化程度越高,意味着关系的规范级别也越高,要求也越严格。但并不是规范化程度越高,关系模式就越好。因为当规范化程度越高时,对数据库设计者的要求也越高,在对数据库数据操作时付出的运算代价也越大。至于一个具体的数据库关系模式设计要分解到第几范式,应综合利弊,全面衡量,依实际情况而定。在实际设计关系模式时,一般分解进行到3NF就可以了。352.4 数据库设计数据库设计(Database Design)是建立数据库及其应用系统的技术,是
23、信息系统开发和建设中的核心技术。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。2.4.1 数据库设计特点2.4.2 数据库设计步骤2.4.3 需求分析2.4.4 概念结构设计2.4.5 逻辑结构设计2.4.6 物理结构设计2.4.7 数据库实施2.4.8 数据库运行和维护362.4.1 数据库设计特点数据库设计既是一项涉及多学科的综合性技术,又是一项庞大的工程项目,是一个范围很大、设计面很广的课题。数据库设计是信息系统开发和建设的重要组成部分。数据库设计的3个特点:(1) 反复性(Iterative)(2) 试探性(Tentative)(3) 分步进行(Multistage)372.4.2 数据库设计步骤通常将数据库设计分为以下六个阶段:1) 需求分析阶段。2) 概念设计阶段。3) 逻辑设计阶段。4) 物理设计阶段。5) 实现阶段。6) 运行维护阶段。382.4.2 数据库设计步骤392.4.3 需求分析需求分析就是分析用户对数据库的具体要求,是整个数据库设计的起点和基础。1. 需求分析的任务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐车买卖合同范本
- 北京市科技 技术开发合同模板 申请免税
- 重庆市第九十四中学校2024-2025学年高二上学期期中考试英语试题(含答案无听力原文及音频)
- 柳州市2025届高三第一次模拟考试(一模)数学试卷(含答案)
- 湖北省武汉市江夏实验高级中学2024-2025学年高三上学期11月模拟历史试题(含答案)
- 广东省深圳高级中学北校区等多校2024-2025学年七年级上学期期中生物学试题(含答案)
- 邮政专用机械及器材相关行业投资方案
- 环保特种电线电缆相关行业投资方案范本
- 民宿旅游相关行业投资规划报告范本
- 温控仪表相关项目投资计划书范本
- 电子琴伴奏及音色中英文对照表
- 苏教版初中化学常见气体的检验与除杂教案
- 网络教研——开辟校本教研新模式
- 火灾报警系统技术规范书
- 鱼塘租赁合同
- 教材自编传统节日校本课程
- 楼宇自控系统调试方案
- 排水管道施工方案(完整版)
- hydac压力继电器说明书
- 中成药上市公司组织架构及部门职责
- 《教育学原理》课程教学大纲
评论
0/150
提交评论