您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库原理及应用第2章关系数据库系统结构
2020/6/6数据库技术及应用1第2章关系数据库系统结构关系模型的数据模式关系代数关系的完整性规则关系数据库的规范化数据库存储技术2020/6/6数据库技术及应用2关系数据库系统的特点①简单明了的数据模型。②具有严禁的理论基础。③实体表示方法和实体之间联系的表示方法一致。④处理多对多的联系方便。⑤使用的关系数据语言功能强大。2020/6/6数据库技术及应用3关系模型的数据模式关系数据结构关系操作和关系数据语言2020/6/6数据库技术及应用4关系模型的数据模式关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构非常单一,在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。关系模型允许定义三类完整性约束:实体完整性、参照完整性、和用户定义的完整性。2020/6/6数据库技术及应用5关系数据结构关系模型的数据结构很单一,就是关系,它是建立在集合代数基础上的。在关系数据库中,关系模型是型,关系是值,关系模式是对关系的描述。2020/6/6数据库技术及应用6术语关系。一个关系实质上是一张二维表,每个关系有一个关系名。在计算机里,一个关系存储为一个文件。元组。表中的行称为元组,每一行为一个元组,对应存储文件中的一个记录值。属性。表中的列称为属性,每一列有一个属性名,属性值相当于记录中的数据项或者字段值。域。属性的取值范围称为域,即不同元组对同一个属性的取值所限定的范围,或称为属性的值域。每一个属性都对应一个值域,不同的属性也可以有相同的值域。2020/6/6数据库技术及应用7术语关系模式。对关系的描述称为关系模式,一个关系模式对应一个关系文件的结构。其格式为:关系名(属性名1,属性名2,……,属性名n)。笛卡儿积。设一组域D1,D2,…,Dn(n≥2),允许有相同的域,这一组域D1,D2,…,Dn的笛卡儿积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},其中每一个元素(d1,d2,…,dn)叫作一个n元组或简称元组,元组中的每一个值di叫作一个分量。2020/6/6数据库技术及应用8关系中的键主键:关系有一个重要的性质,即在任何关系中,不能有两个完全相同的元组。确定了主键的值,就能唯一地确定一个元组。主键可以为单个属性,也可以为属性的组合。候选键:凡是在一个关系中具有主键特性的属性或属性组,均称为候选键。因为它们都具有被选为主键的条件,所以一个关系可能有多个候选键,但只能选其中一个为主键。外键:当关系中的某个或某些属性由另一个关系的主键构成时,则该属性或属性组称为外键。2020/6/6数据库技术及应用9关系的性质任意两个元组(两个行)不能完全相同。关系中元组(行)的次序是不重要的,可以任意交换。属性(列)的次序也是不重要的,可以任意交换。同一列中的分量,必须来自同一个域,是同类型的数据。属性必须有不同的名称,但不同的属性可以出自相同的域,即它们的分量可以取值于同一个域。每一个分量必须是原子的,即是不可再分的数据项。2020/6/6数据库技术及应用10关系操作关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等查询操作和增加、删除、修改操作两大部分。查询的表达能力是其中最主要的部分。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。2020/6/6数据库技术及应用11关系数据语言数据库操作语言包括查询和增加、删除、修改两大部分功能。查询的表达方式是数据操纵语言中最主要的部分。关系的数据操纵语言按照表达查询的方式可以分为两大类。用对关系的运算来表达查询的方式称为关系代数。用谓词来表达查询要求的方式称为关系演算。2020/6/6数据库技术及应用12关系代数传统的集合运算专门的关系运算2020/6/6数据库技术及应用13关系代数关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。2020/6/6数据库技术及应用14关系代数运算符2020/6/6数据库技术及应用15传统的集合运算传统的集合运算是二目运算,包括并、差、交、广义笛卡儿积四种运算。当并、差、交用于关系运算时,参加运算的关系必须是相容的和可并的,即它们应有相同的目n(即两个关系都有n个属性),且相应的属性值来自同一个域。两个分别为n目和m目关系R和S的广义笛卡儿积是一个(n+m)目的关系,关系中的每一个元组的前n列是关系R中的一个元组,后m列是关系S中的一个元组。2020/6/6数据库技术及应用16专门的关系运算专门的关系运算,包括选择、投影、连接和除。选择是一种单目运算,操作对象仅有一个关系,其作用是在关系的水平方向上选取符合给定条件的子集。投影是一种单目运算,其作用为在关系的垂直方向上选取含有给定属性的子集。连接是一种二目运算,即操作对象有两个关系,其作用是按照给定的条件,把两个关系中的所有元组按一切可能的组合方式拼接起来。除是一种二目运算,用文字表示为:关系1关系2。2020/6/6数据库技术及应用17关系的完整性规则数据完整性由完整性规则来定义,关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。2020/6/6数据库技术及应用18实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则是对关系中的主属性值的约束,规定关系中的元组在组成主键的属性上不能有空值。基本关系的所有主属性都不能取空值,而不仅是主键整体不能取空值。2020/6/6数据库技术及应用19实体完整性规则的说明①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。②现实世界中的实体是可区分的,即它们具有某种唯一性标识。③相应地,关系模型中以主键作为唯一性标识。④主键中的属性即主属性不能取空值。2020/6/6数据库技术及应用20参照完整性参照完整性规则:若属性(属性组)F是关系R的外键,它与关系S的主键Ks相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主键值。2020/6/6数据库技术及应用21用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件。这是针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。用户定义的完整性通常是定义对关系中除主键与外键属性之外的其他属性取值的约束,即对其他属性的值域的约束。2020/6/6数据库技术及应用22关系完整性的操作当执行插入操作时,首先检查实体完整性规则,插入行在主键属性上的值,是否已经存在。当执行删除操作时,一般只需要检查参照完整性规则。当执行更新操作时,先执行删除操作,再执行插入操作,即上述两种情况的结合。2020/6/6数据库技术及应用23关系数据库的规范化数据库逻辑设计的一个有力工具就是关系数据库的规范化。规范化就是一系列规则,用于检验数据库逻辑设计的正确性,它可以帮助用户避免一些不完善的数据库设计存在的问题。2020/6/6数据库技术及应用24不完善的关系模式数据冗余信息内容有限不一致的数据更新异常(不一致性的危险)插入异常删除异常2020/6/6数据库技术及应用25函数依赖函数依赖是最重要的数据依赖,类似于变量之间的单值函数关系。函数依赖X→Y的定义为:对于X的每一个具体值,Y有唯一的具体值与之对应,则称Y函数依赖于X,或X函数决定Y,X称做决定因素。2020/6/6数据库技术及应用26部分函数依赖设X→Y是关系模式的一个函数依赖,如果存在X的真子集X´,使得X´→Y成立,则称Y部分依赖于X,否则,称Y完全依赖于X。2020/6/6数据库技术及应用27传递函数依赖在同一关系模式中,如果存在非平凡的函数依赖X→Y,Y→Z,而不存在Y→X,则称Z传递依赖于X。2020/6/6数据库技术及应用28关系数据库的规范化关系数据库的规范化主要有三种标准的规范化规则。如果一个数据库设计符合第n个规则(n=1,2,3),就称它满足第n范式。或者说,关系模式要满足一定的条件,不同程度的条件称做不同的范式。2020/6/6数据库技术及应用29第1范式第1范式(1NF)——每个属性值都是不可再分的最小数据单位。关系模式的最低要求的规则是元组的每个分量必须是不可分的数据项,这叫做第1范式,简称1NF,是最基本的规范化。2020/6/6数据库技术及应用30第2范式第2范式(2NF)——非主属性不部分依赖于关系的主键。在第1范式的基础上进一步增加一些规则,则为第2范式。其定义为:在第1范式基础上,关系的每一个非主属性完全依赖于主键。第2范式就是不允许关系模式的属性之间有这样的函数依赖X→Y,其中X是键的真子集,Y是非主属性。即不允许有非主属性对健的部分函数依赖。2020/6/6数据库技术及应用31第3范式第3范式(3NF)——属性不依赖于关系的非主属性。在第2范式的基础上,每一个非主属性都不传递依赖于键,则为第3范式。第3范式就是不允许关系模式的属性之间有这样的非平凡函数依赖X→Y,其中X不包含键,Y是非主属性。X不包含键有两种情况,一种情况X是键的真子集,这是第2范式所不允许的,另一种情况X不是键的真子集,这是第3范式所不允许的。2020/6/6数据库技术及应用32BCNF范式Boyce-Codd(BCNF)范式——所有属性都不传递依赖于关系的任何候选键。BCNF是3NF的进一步规范化,即限制条件更严格。其定义为:如果关系模式的所有属性都不传递依赖于关系的任何候选键,则称关系属于BCNF范式。2020/6/6数据库技术及应用33数据库存储技术物理存储介质记录的存储结构文件组织2020/6/6数据库技术及应用34物理存储介质内存一般不能用来存储持久数据;另外,内存储器存储单位数据的成本要比辅助存储器高得多。在当前技术条件下,采用多级存储器是不可避免的。目前,用得最多的辅助存储器是磁盘。磁盘上的数据划分为大小相等的物理块。每个物理块间须留有间隙,以便在磁盘初始化时写入控制信息,用以识别和选择后续的物理块。磁盘和内存交换数据也是以物理块为单位的,即每次访问磁盘,至少存取一个物理块。2020/6/6数据库技术及应用35记录的物理表示定位法:每个字段按其最大可能长度分配固定长的位置,数据从左向右填入,多余的部分添以空格符。相对法:各个字段不是分配固定长的空间,而是用特殊的字符分开,例如用?或%隔开。用此法表示的记录是变长的。计数法:在每个字段的开始,加上一个定长的字段,表示该字段的长度。2020/6/6数据库技术及应用36记录的分配连续分配法:将一个文件的块分配在磁盘的连续空间上,块的次序也就是它们存储的次序。链接分配法:物理块不一定分配在磁盘上的连续区域,各物理块用指针链接。聚簇(簇集)分配法:这是上面两种方法的结合,把文件分为若干聚簇。所谓聚簇是物理上邻接的若干物理块,聚簇以指针链接。索引分配法:每个文件有一个逻辑块号与其物理块地址对照的索引。通过索引,可以查看文件中任一块的地址。2020/6/6数据库技术及应用37数据压缩技术消零或空格符法:数据中常常出现一串零或空格符,可用一个特殊符号和一个表示零或空格个数的数字表示。串型代替法:对于反复出现的字符串可用一个省略符代替,在转换时,须查串型表。2020/6/6
本文标题:数据库原理及应用第2章关系数据库系统结构
链接地址:https://www.777doc.com/doc-5728623 .html